From def19833253304f9bf4ededcfb8cecc31a0293cf Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Fri, 19 Jan 2018 21:23:24 -0800 Subject: [PATCH 001/530] Enforce consistent line endings Most files in this project were already using LF, so standardize on that. --- .editorconfig | 26 +++++++++++++------------- .gitattributes | 5 +++++ 2 files changed, 18 insertions(+), 13 deletions(-) create mode 100644 .gitattributes diff --git a/.editorconfig b/.editorconfig index a127657e3..9ac2a53b9 100644 --- a/.editorconfig +++ b/.editorconfig @@ -1,13 +1,13 @@ -# editorconfig.org -root = true - -[*] -charset = utf-8 -end_of_line = crlf -indent_size = 4 -indent_style = tab -insert_final_newline = true - -[*.json] -indent_size = 2 -indent_style = space \ No newline at end of file +# editorconfig.org +root = true + +[*] +charset = utf-8 +end_of_line = lf +indent_size = 4 +indent_style = tab +insert_final_newline = true + +[*.json] +indent_size = 2 +indent_style = space diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 000000000..90b9f343a --- /dev/null +++ b/.gitattributes @@ -0,0 +1,5 @@ +* text eol=lf +*.png binary +*.exe binary +*.dll binary + From 26908e3b8599c119900819aa8fbb3cda0fac6ee4 Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Fri, 19 Jan 2018 21:30:38 -0800 Subject: [PATCH 002/530] Normalize line edings --- src/React.Core/Babel.cs | 18 +- src/React.Core/React.Core.csproj | 8 +- src/React.Sample.CoreMvc/Startup.cs | 4 +- src/React.Sample.Owin/Content/Index.html | 8 +- .../Controllers/HomeController.cs | 24 +- src/React.Sample.Router.CoreMvc/Program.cs | 36 +- .../Properties/launchSettings.json | 58 +- .../React.Sample.Router.CoreMvc.csproj | 40 +- src/React.Sample.Router.CoreMvc/Startup.cs | 118 +- .../Views/Home/Index.cshtml | 30 +- .../appsettings.Development.json | 20 +- .../appsettings.json | 30 +- src/React.Sample.Router.CoreMvc/package.json | 42 +- src/React.Sample.Router.CoreMvc/yarn.lock | 5760 ++++++++--------- tests/React.Tests/Core/ReactComponentTest.cs | 4 +- .../Mvc/HtmlHelperExtensionsTests.cs | 4 +- tests/React.Tests/Properties/AssemblyInfo.cs | 8 +- tutorial-code/ReactDemo.sln | 60 +- tutorial-code/tutorial-code.csproj | 62 +- 19 files changed, 3167 insertions(+), 3167 deletions(-) diff --git a/src/React.Core/Babel.cs b/src/React.Core/Babel.cs index 9c816a5ca..bd93d962b 100644 --- a/src/React.Core/Babel.cs +++ b/src/React.Core/Babel.cs @@ -353,7 +353,7 @@ string filename var contents = _fileSystem.ReadAsString(filename); if (CacheIsValid(contents, outputPath)) return outputPath; - + var result = TransformWithHeader(filename, contents, null); var sourceMapPath = GetSourceMapOutputPath(filename); @@ -363,14 +363,14 @@ string filename return outputPath; } - /// - /// Checks whether an input file (given as inputFileContents) should be transpiled - /// by calculating the hash and comparing it to the hash value stored - /// in the file given by outputPath. If the outputPath file does not - /// exist the input file should always be transpiled. - /// - /// The contents of the input file. - /// The output path of the (possibly previously) generated file. + /// + /// Checks whether an input file (given as inputFileContents) should be transpiled + /// by calculating the hash and comparing it to the hash value stored + /// in the file given by outputPath. If the outputPath file does not + /// exist the input file should always be transpiled. + /// + /// The contents of the input file. + /// The output path of the (possibly previously) generated file. /// Returns false if the file should be transpiled, true otherwise. public virtual bool CacheIsValid(string inputFileContents, string outputPath) { diff --git a/src/React.Core/React.Core.csproj b/src/React.Core/React.Core.csproj index 31b4755af..473a9a86e 100644 --- a/src/React.Core/React.Core.csproj +++ b/src/React.Core/React.Core.csproj @@ -19,10 +19,10 @@ false - - - - + + + + diff --git a/src/React.Sample.CoreMvc/Startup.cs b/src/React.Sample.CoreMvc/Startup.cs index d4b0da082..35607cdea 100644 --- a/src/React.Sample.CoreMvc/Startup.cs +++ b/src/React.Sample.CoreMvc/Startup.cs @@ -5,8 +5,8 @@ * This source code is licensed under the BSD-style license found in the * LICENSE file in the root directory of this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. - */ - + */ + using System; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; diff --git a/src/React.Sample.Owin/Content/Index.html b/src/React.Sample.Owin/Content/Index.html index 7b42c3bd8..c5f413438 100644 --- a/src/React.Sample.Owin/Content/Index.html +++ b/src/React.Sample.Owin/Content/Index.html @@ -8,9 +8,9 @@
- - - + + + - + diff --git a/src/React.Sample.Router.CoreMvc/Controllers/HomeController.cs b/src/React.Sample.Router.CoreMvc/Controllers/HomeController.cs index 0f1c70e49..3d099718d 100644 --- a/src/React.Sample.Router.CoreMvc/Controllers/HomeController.cs +++ b/src/React.Sample.Router.CoreMvc/Controllers/HomeController.cs @@ -1,12 +1,12 @@ -using Microsoft.AspNetCore.Mvc; - -namespace React.Sample.Router.CoreMvc.Controllers -{ - public class HomeController : Controller - { - public IActionResult Index() - { - return View(); - } - } -} +using Microsoft.AspNetCore.Mvc; + +namespace React.Sample.Router.CoreMvc.Controllers +{ + public class HomeController : Controller + { + public IActionResult Index() + { + return View(); + } + } +} diff --git a/src/React.Sample.Router.CoreMvc/Program.cs b/src/React.Sample.Router.CoreMvc/Program.cs index 9154c7c99..995f131b8 100644 --- a/src/React.Sample.Router.CoreMvc/Program.cs +++ b/src/React.Sample.Router.CoreMvc/Program.cs @@ -1,18 +1,18 @@ -using Microsoft.AspNetCore; -using Microsoft.AspNetCore.Hosting; - -namespace React.Sample.Router.CoreMvc -{ - public class Program - { - public static void Main(string[] args) - { - BuildWebHost(args).Run(); - } - - public static IWebHost BuildWebHost(string[] args) => - WebHost.CreateDefaultBuilder(args) - .UseStartup() - .Build(); - } -} +using Microsoft.AspNetCore; +using Microsoft.AspNetCore.Hosting; + +namespace React.Sample.Router.CoreMvc +{ + public class Program + { + public static void Main(string[] args) + { + BuildWebHost(args).Run(); + } + + public static IWebHost BuildWebHost(string[] args) => + WebHost.CreateDefaultBuilder(args) + .UseStartup() + .Build(); + } +} diff --git a/src/React.Sample.Router.CoreMvc/Properties/launchSettings.json b/src/React.Sample.Router.CoreMvc/Properties/launchSettings.json index b67a686f9..6b13dfad6 100644 --- a/src/React.Sample.Router.CoreMvc/Properties/launchSettings.json +++ b/src/React.Sample.Router.CoreMvc/Properties/launchSettings.json @@ -1,29 +1,29 @@ -{ - "iisSettings": { - "windowsAuthentication": false, - "anonymousAuthentication": true, - "iisExpress": { - "applicationUrl": "http://localhost:9456/", - "sslPort": 0 - } - }, - "profiles": { - "IIS Express": { - "commandName": "IISExpress", - "launchBrowser": true, - "launchUrl": "", - "environmentVariables": { - "ASPNETCORE_ENVIRONMENT": "Development" - } - }, - "React.Sample.Router.CoreMvc": { - "commandName": "Project", - "launchBrowser": true, - "launchUrl": "", - "environmentVariables": { - "ASPNETCORE_ENVIRONMENT": "Development" - }, - "applicationUrl": "http://localhost:9457/" - } - } -} +{ + "iisSettings": { + "windowsAuthentication": false, + "anonymousAuthentication": true, + "iisExpress": { + "applicationUrl": "http://localhost:9456/", + "sslPort": 0 + } + }, + "profiles": { + "IIS Express": { + "commandName": "IISExpress", + "launchBrowser": true, + "launchUrl": "", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + }, + "React.Sample.Router.CoreMvc": { + "commandName": "Project", + "launchBrowser": true, + "launchUrl": "", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + }, + "applicationUrl": "http://localhost:9457/" + } + } +} diff --git a/src/React.Sample.Router.CoreMvc/React.Sample.Router.CoreMvc.csproj b/src/React.Sample.Router.CoreMvc/React.Sample.Router.CoreMvc.csproj index e53e41ef7..f8198dea8 100644 --- a/src/React.Sample.Router.CoreMvc/React.Sample.Router.CoreMvc.csproj +++ b/src/React.Sample.Router.CoreMvc/React.Sample.Router.CoreMvc.csproj @@ -1,21 +1,21 @@ - - - netcoreapp2.0 - - - - - - - - - - - - - - - - - + + + netcoreapp2.0 + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/React.Sample.Router.CoreMvc/Startup.cs b/src/React.Sample.Router.CoreMvc/Startup.cs index 529ac71af..a329a2e17 100644 --- a/src/React.Sample.Router.CoreMvc/Startup.cs +++ b/src/React.Sample.Router.CoreMvc/Startup.cs @@ -1,59 +1,59 @@ -using System; -using JavaScriptEngineSwitcher.Core; -using JavaScriptEngineSwitcher.Msie; -using Microsoft.AspNetCore.Builder; -using Microsoft.AspNetCore.Hosting; -using Microsoft.AspNetCore.Http; -using Microsoft.Extensions.Configuration; -using Microsoft.Extensions.DependencyInjection; -using React.AspNet; - -namespace React.Sample.Router.CoreMvc -{ - public class Startup - { - public Startup(IConfiguration configuration) - { - Configuration = configuration; - } - - public IConfiguration Configuration { get; } - - // This method gets called by the runtime. Use this method to add services to the container. - public IServiceProvider ConfigureServices(IServiceCollection services) - { - services.AddMvc(); - services.AddReact(); - services.AddSingleton(); - - // Build the intermediate service provider then return it - return services.BuildServiceProvider(); - } - - // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. - public void Configure(IApplicationBuilder app, IHostingEnvironment env) - { - if (env.IsDevelopment()) - { - app.UseDeveloperExceptionPage(); - } - - app.UseStaticFiles(); - - // Initialise ReactJS.NET. Must be before static files. - app.UseReact(config => - { - config - .SetReuseJavaScriptEngines(true) - .SetLoadBabel(false) - .SetLoadReact(false) - .AddScriptWithoutTransform("~/components-bundle.generated.js"); - }); - - app.UseMvc(routes => - { - routes.MapRoute("default", "{path?}", new { controller = "Home", action = "Index" }); - }); - } - } -} +using System; +using JavaScriptEngineSwitcher.Core; +using JavaScriptEngineSwitcher.Msie; +using Microsoft.AspNetCore.Builder; +using Microsoft.AspNetCore.Hosting; +using Microsoft.AspNetCore.Http; +using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.DependencyInjection; +using React.AspNet; + +namespace React.Sample.Router.CoreMvc +{ + public class Startup + { + public Startup(IConfiguration configuration) + { + Configuration = configuration; + } + + public IConfiguration Configuration { get; } + + // This method gets called by the runtime. Use this method to add services to the container. + public IServiceProvider ConfigureServices(IServiceCollection services) + { + services.AddMvc(); + services.AddReact(); + services.AddSingleton(); + + // Build the intermediate service provider then return it + return services.BuildServiceProvider(); + } + + // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. + public void Configure(IApplicationBuilder app, IHostingEnvironment env) + { + if (env.IsDevelopment()) + { + app.UseDeveloperExceptionPage(); + } + + app.UseStaticFiles(); + + // Initialise ReactJS.NET. Must be before static files. + app.UseReact(config => + { + config + .SetReuseJavaScriptEngines(true) + .SetLoadBabel(false) + .SetLoadReact(false) + .AddScriptWithoutTransform("~/components-bundle.generated.js"); + }); + + app.UseMvc(routes => + { + routes.MapRoute("default", "{path?}", new { controller = "Home", action = "Index" }); + }); + } + } +} diff --git a/src/React.Sample.Router.CoreMvc/Views/Home/Index.cshtml b/src/React.Sample.Router.CoreMvc/Views/Home/Index.cshtml index 8557b1cd8..8636186c9 100644 --- a/src/React.Sample.Router.CoreMvc/Views/Home/Index.cshtml +++ b/src/React.Sample.Router.CoreMvc/Views/Home/Index.cshtml @@ -1,15 +1,15 @@ -@using React.AspNet -@using React.Router - - - - - React Router Sample - - - - @Html.ReactRouterWithContext("RootComponent", new { }) - - @Html.ReactInitJavaScript() - - +@using React.AspNet +@using React.Router + + + + + React Router Sample + + + + @Html.ReactRouterWithContext("RootComponent", new { }) + + @Html.ReactInitJavaScript() + + diff --git a/src/React.Sample.Router.CoreMvc/appsettings.Development.json b/src/React.Sample.Router.CoreMvc/appsettings.Development.json index f334029a3..fa8ce71a9 100644 --- a/src/React.Sample.Router.CoreMvc/appsettings.Development.json +++ b/src/React.Sample.Router.CoreMvc/appsettings.Development.json @@ -1,10 +1,10 @@ -{ - "Logging": { - "IncludeScopes": false, - "LogLevel": { - "Default": "Debug", - "System": "Information", - "Microsoft": "Information" - } - } -} +{ + "Logging": { + "IncludeScopes": false, + "LogLevel": { + "Default": "Debug", + "System": "Information", + "Microsoft": "Information" + } + } +} diff --git a/src/React.Sample.Router.CoreMvc/appsettings.json b/src/React.Sample.Router.CoreMvc/appsettings.json index 647f1a9ce..26bb0ac7a 100644 --- a/src/React.Sample.Router.CoreMvc/appsettings.json +++ b/src/React.Sample.Router.CoreMvc/appsettings.json @@ -1,15 +1,15 @@ -{ - "Logging": { - "IncludeScopes": false, - "Debug": { - "LogLevel": { - "Default": "Warning" - } - }, - "Console": { - "LogLevel": { - "Default": "Warning" - } - } - } -} +{ + "Logging": { + "IncludeScopes": false, + "Debug": { + "LogLevel": { + "Default": "Warning" + } + }, + "Console": { + "LogLevel": { + "Default": "Warning" + } + } + } +} diff --git a/src/React.Sample.Router.CoreMvc/package.json b/src/React.Sample.Router.CoreMvc/package.json index 0029ad832..f2c963281 100644 --- a/src/React.Sample.Router.CoreMvc/package.json +++ b/src/React.Sample.Router.CoreMvc/package.json @@ -1,21 +1,21 @@ -{ - "name": "React.Sample.Router.CoreMvc", - "version": "1.0.0", - "main": "index.js", - "license": "MIT", - "scripts": { - "build": "webpack" - }, - "dependencies": { - "babel-core": "^6.26.0", - "babel-loader": "^7.1.2", - "babel-plugin-add-module-exports": "^0.2.1", - "babel-preset-env": "^1.6.1", - "babel-preset-react": "^6.24.1", - "expose-loader": "^0.7.3", - "react": "^16.1.1", - "react-dom": "^16.1.1", - "react-router-dom": "^4.2.2", - "webpack": "^3.8.1" - } -} +{ + "name": "React.Sample.Router.CoreMvc", + "version": "1.0.0", + "main": "index.js", + "license": "MIT", + "scripts": { + "build": "webpack" + }, + "dependencies": { + "babel-core": "^6.26.0", + "babel-loader": "^7.1.2", + "babel-plugin-add-module-exports": "^0.2.1", + "babel-preset-env": "^1.6.1", + "babel-preset-react": "^6.24.1", + "expose-loader": "^0.7.3", + "react": "^16.1.1", + "react-dom": "^16.1.1", + "react-router-dom": "^4.2.2", + "webpack": "^3.8.1" + } +} diff --git a/src/React.Sample.Router.CoreMvc/yarn.lock b/src/React.Sample.Router.CoreMvc/yarn.lock index 048658a52..5a39d3e2d 100644 --- a/src/React.Sample.Router.CoreMvc/yarn.lock +++ b/src/React.Sample.Router.CoreMvc/yarn.lock @@ -1,2880 +1,2880 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -abbrev@1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" - -acorn-dynamic-import@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/acorn-dynamic-import/-/acorn-dynamic-import-2.0.2.tgz#c752bd210bef679501b6c6cb7fc84f8f47158cc4" - dependencies: - acorn "^4.0.3" - -acorn@^4.0.3: - version "4.0.13" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.13.tgz#105495ae5361d697bd195c825192e1ad7f253787" - -acorn@^5.0.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.2.1.tgz#317ac7821826c22c702d66189ab8359675f135d7" - -ajv-keywords@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-2.1.1.tgz#617997fc5f60576894c435f940d819e135b80762" - -ajv@^4.9.1: - version "4.11.8" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.8.tgz#82ffb02b29e662ae53bdc20af15947706739c536" - dependencies: - co "^4.6.0" - json-stable-stringify "^1.0.1" - -ajv@^5.1.5: - version "5.3.0" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.3.0.tgz#4414ff74a50879c208ee5fdc826e32c303549eda" - dependencies: - co "^4.6.0" - fast-deep-equal "^1.0.0" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.3.0" - -align-text@^0.1.1, align-text@^0.1.3: - version "0.1.4" - resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117" - dependencies: - kind-of "^3.0.2" - longest "^1.0.1" - repeat-string "^1.5.2" - -ansi-regex@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" - -ansi-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" - -ansi-styles@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" - -anymatch@^1.3.0: - version "1.3.2" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-1.3.2.tgz#553dcb8f91e3c889845dfdba34c77721b90b9d7a" - dependencies: - micromatch "^2.1.5" - normalize-path "^2.0.0" - -aproba@^1.0.3: - version "1.2.0" - resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" - -are-we-there-yet@~1.1.2: - version "1.1.4" - resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz#bb5dca382bb94f05e15194373d16fd3ba1ca110d" - dependencies: - delegates "^1.0.0" - readable-stream "^2.0.6" - -arr-diff@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf" - dependencies: - arr-flatten "^1.0.1" - -arr-flatten@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" - -array-unique@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" - -asap@~2.0.3: - version "2.0.6" - resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" - -asn1.js@^4.0.0: - version "4.9.2" - resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.9.2.tgz#8117ef4f7ed87cd8f89044b5bff97ac243a16c9a" - dependencies: - bn.js "^4.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - -asn1@~0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86" - -assert-plus@1.0.0, assert-plus@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" - -assert-plus@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.2.0.tgz#d74e1b87e7affc0db8aadb7021f3fe48101ab234" - -assert@^1.1.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/assert/-/assert-1.4.1.tgz#99912d591836b5a6f5b345c0f07eefc08fc65d91" - dependencies: - util "0.10.3" - -async-each@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" - -async@^2.1.2: - version "2.6.0" - resolved "https://registry.yarnpkg.com/async/-/async-2.6.0.tgz#61a29abb6fcc026fea77e56d1c6ec53a795951f4" - dependencies: - lodash "^4.14.0" - -asynckit@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" - -aws-sign2@~0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.6.0.tgz#14342dd38dbcc94d0e5b87d763cd63612c0e794f" - -aws4@^1.2.1: - version "1.6.0" - resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.6.0.tgz#83ef5ca860b2b32e4a0deedee8c771b9db57471e" - -babel-code-frame@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" - dependencies: - chalk "^1.1.3" - esutils "^2.0.2" - js-tokens "^3.0.2" - -babel-core@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.0.tgz#af32f78b31a6fcef119c87b0fd8d9753f03a0bb8" - dependencies: - babel-code-frame "^6.26.0" - babel-generator "^6.26.0" - babel-helpers "^6.24.1" - babel-messages "^6.23.0" - babel-register "^6.26.0" - babel-runtime "^6.26.0" - babel-template "^6.26.0" - babel-traverse "^6.26.0" - babel-types "^6.26.0" - babylon "^6.18.0" - convert-source-map "^1.5.0" - debug "^2.6.8" - json5 "^0.5.1" - lodash "^4.17.4" - minimatch "^3.0.4" - path-is-absolute "^1.0.1" - private "^0.1.7" - slash "^1.0.0" - source-map "^0.5.6" - -babel-generator@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.0.tgz#ac1ae20070b79f6e3ca1d3269613053774f20dc5" - dependencies: - babel-messages "^6.23.0" - babel-runtime "^6.26.0" - babel-types "^6.26.0" - detect-indent "^4.0.0" - jsesc "^1.3.0" - lodash "^4.17.4" - source-map "^0.5.6" - trim-right "^1.0.1" - -babel-helper-builder-binary-assignment-operator-visitor@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz#cce4517ada356f4220bcae8a02c2b346f9a56664" - dependencies: - babel-helper-explode-assignable-expression "^6.24.1" - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-helper-builder-react-jsx@^6.24.1: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.26.0.tgz#39ff8313b75c8b65dceff1f31d383e0ff2a408a0" - dependencies: - babel-runtime "^6.26.0" - babel-types "^6.26.0" - esutils "^2.0.2" - -babel-helper-call-delegate@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz#ece6aacddc76e41c3461f88bfc575bd0daa2df8d" - dependencies: - babel-helper-hoist-variables "^6.24.1" - babel-runtime "^6.22.0" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-define-map@^6.24.1: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz#a5f56dab41a25f97ecb498c7ebaca9819f95be5f" - dependencies: - babel-helper-function-name "^6.24.1" - babel-runtime "^6.26.0" - babel-types "^6.26.0" - lodash "^4.17.4" - -babel-helper-explode-assignable-expression@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz#f25b82cf7dc10433c55f70592d5746400ac22caa" - dependencies: - babel-runtime "^6.22.0" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-function-name@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz#d3475b8c03ed98242a25b48351ab18399d3580a9" - dependencies: - babel-helper-get-function-arity "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-get-function-arity@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz#8f7782aa93407c41d3aa50908f89b031b1b6853d" - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-helper-hoist-variables@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz#1ecb27689c9d25513eadbc9914a73f5408be7a76" - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-helper-optimise-call-expression@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz#f7a13427ba9f73f8f4fa993c54a97882d1244257" - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-helper-regex@^6.24.1: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz#325c59f902f82f24b74faceed0363954f6495e72" - dependencies: - babel-runtime "^6.26.0" - babel-types "^6.26.0" - lodash "^4.17.4" - -babel-helper-remap-async-to-generator@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz#5ec581827ad723fecdd381f1c928390676e4551b" - dependencies: - babel-helper-function-name "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-replace-supers@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz#bf6dbfe43938d17369a213ca8a8bf74b6a90ab1a" - dependencies: - babel-helper-optimise-call-expression "^6.24.1" - babel-messages "^6.23.0" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helpers@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2" - dependencies: - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-loader@^7.1.2: - version "7.1.2" - resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-7.1.2.tgz#f6cbe122710f1aa2af4d881c6d5b54358ca24126" - dependencies: - find-cache-dir "^1.0.0" - loader-utils "^1.0.2" - mkdirp "^0.5.1" - -babel-messages@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-add-module-exports@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/babel-plugin-add-module-exports/-/babel-plugin-add-module-exports-0.2.1.tgz#9ae9a1f4a8dc67f0cdec4f4aeda1e43a5ff65e25" - -babel-plugin-check-es2015-constants@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz#35157b101426fd2ffd3da3f75c7d1e91835bbf8a" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-syntax-async-functions@^6.8.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz#cad9cad1191b5ad634bf30ae0872391e0647be95" - -babel-plugin-syntax-exponentiation-operator@^6.8.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz#9ee7e8337290da95288201a6a57f4170317830de" - -babel-plugin-syntax-flow@^6.18.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-flow/-/babel-plugin-syntax-flow-6.18.0.tgz#4c3ab20a2af26aa20cd25995c398c4eb70310c8d" - -babel-plugin-syntax-jsx@^6.3.13, babel-plugin-syntax-jsx@^6.8.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz#0af32a9a6e13ca7a3fd5069e62d7b0f58d0d8946" - -babel-plugin-syntax-trailing-function-commas@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz#ba0360937f8d06e40180a43fe0d5616fff532cf3" - -babel-plugin-transform-async-to-generator@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz#6536e378aff6cb1d5517ac0e40eb3e9fc8d08761" - dependencies: - babel-helper-remap-async-to-generator "^6.24.1" - babel-plugin-syntax-async-functions "^6.8.0" - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-arrow-functions@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz#452692cb711d5f79dc7f85e440ce41b9f244d221" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-block-scoped-functions@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz#bbc51b49f964d70cb8d8e0b94e820246ce3a6141" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-block-scoping@^6.23.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz#d70f5299c1308d05c12f463813b0a09e73b1895f" - dependencies: - babel-runtime "^6.26.0" - babel-template "^6.26.0" - babel-traverse "^6.26.0" - babel-types "^6.26.0" - lodash "^4.17.4" - -babel-plugin-transform-es2015-classes@^6.23.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz#5a4c58a50c9c9461e564b4b2a3bfabc97a2584db" - dependencies: - babel-helper-define-map "^6.24.1" - babel-helper-function-name "^6.24.1" - babel-helper-optimise-call-expression "^6.24.1" - babel-helper-replace-supers "^6.24.1" - babel-messages "^6.23.0" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-computed-properties@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz#6fe2a8d16895d5634f4cd999b6d3480a308159b3" - dependencies: - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-plugin-transform-es2015-destructuring@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz#997bb1f1ab967f682d2b0876fe358d60e765c56d" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-duplicate-keys@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz#73eb3d310ca969e3ef9ec91c53741a6f1576423e" - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-for-of@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz#f47c95b2b613df1d3ecc2fdb7573623c75248691" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-function-name@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz#834c89853bc36b1af0f3a4c5dbaa94fd8eacaa8b" - dependencies: - babel-helper-function-name "^6.24.1" - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-literals@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz#4f54a02d6cd66cf915280019a31d31925377ca2e" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-modules-amd@^6.22.0, babel-plugin-transform-es2015-modules-amd@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz#3b3e54017239842d6d19c3011c4bd2f00a00d154" - dependencies: - babel-plugin-transform-es2015-modules-commonjs "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-plugin-transform-es2015-modules-commonjs@^6.23.0, babel-plugin-transform-es2015-modules-commonjs@^6.24.1: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.0.tgz#0d8394029b7dc6abe1a97ef181e00758dd2e5d8a" - dependencies: - babel-plugin-transform-strict-mode "^6.24.1" - babel-runtime "^6.26.0" - babel-template "^6.26.0" - babel-types "^6.26.0" - -babel-plugin-transform-es2015-modules-systemjs@^6.23.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz#ff89a142b9119a906195f5f106ecf305d9407d23" - dependencies: - babel-helper-hoist-variables "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-plugin-transform-es2015-modules-umd@^6.23.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz#ac997e6285cd18ed6176adb607d602344ad38468" - dependencies: - babel-plugin-transform-es2015-modules-amd "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-plugin-transform-es2015-object-super@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz#24cef69ae21cb83a7f8603dad021f572eb278f8d" - dependencies: - babel-helper-replace-supers "^6.24.1" - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-parameters@^6.23.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz#57ac351ab49caf14a97cd13b09f66fdf0a625f2b" - dependencies: - babel-helper-call-delegate "^6.24.1" - babel-helper-get-function-arity "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-shorthand-properties@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz#24f875d6721c87661bbd99a4622e51f14de38aa0" - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-spread@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz#d6d68a99f89aedc4536c81a542e8dd9f1746f8d1" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-sticky-regex@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz#00c1cdb1aca71112cdf0cf6126c2ed6b457ccdbc" - dependencies: - babel-helper-regex "^6.24.1" - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-template-literals@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz#a84b3450f7e9f8f1f6839d6d687da84bb1236d8d" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-typeof-symbol@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz#dec09f1cddff94b52ac73d505c84df59dcceb372" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-unicode-regex@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz#d38b12f42ea7323f729387f18a7c5ae1faeb35e9" - dependencies: - babel-helper-regex "^6.24.1" - babel-runtime "^6.22.0" - regexpu-core "^2.0.0" - -babel-plugin-transform-exponentiation-operator@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz#2ab0c9c7f3098fa48907772bb813fe41e8de3a0e" - dependencies: - babel-helper-builder-binary-assignment-operator-visitor "^6.24.1" - babel-plugin-syntax-exponentiation-operator "^6.8.0" - babel-runtime "^6.22.0" - -babel-plugin-transform-flow-strip-types@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.22.0.tgz#84cb672935d43714fdc32bce84568d87441cf7cf" - dependencies: - babel-plugin-syntax-flow "^6.18.0" - babel-runtime "^6.22.0" - -babel-plugin-transform-react-display-name@^6.23.0: - version "6.25.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-display-name/-/babel-plugin-transform-react-display-name-6.25.0.tgz#67e2bf1f1e9c93ab08db96792e05392bf2cc28d1" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-react-jsx-self@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-jsx-self/-/babel-plugin-transform-react-jsx-self-6.22.0.tgz#df6d80a9da2612a121e6ddd7558bcbecf06e636e" - dependencies: - babel-plugin-syntax-jsx "^6.8.0" - babel-runtime "^6.22.0" - -babel-plugin-transform-react-jsx-source@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-jsx-source/-/babel-plugin-transform-react-jsx-source-6.22.0.tgz#66ac12153f5cd2d17b3c19268f4bf0197f44ecd6" - dependencies: - babel-plugin-syntax-jsx "^6.8.0" - babel-runtime "^6.22.0" - -babel-plugin-transform-react-jsx@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.24.1.tgz#840a028e7df460dfc3a2d29f0c0d91f6376e66a3" - dependencies: - babel-helper-builder-react-jsx "^6.24.1" - babel-plugin-syntax-jsx "^6.8.0" - babel-runtime "^6.22.0" - -babel-plugin-transform-regenerator@^6.22.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz#e0703696fbde27f0a3efcacf8b4dca2f7b3a8f2f" - dependencies: - regenerator-transform "^0.10.0" - -babel-plugin-transform-strict-mode@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz#d5faf7aa578a65bbe591cf5edae04a0c67020758" - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-preset-env@^1.6.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/babel-preset-env/-/babel-preset-env-1.6.1.tgz#a18b564cc9b9afdf4aae57ae3c1b0d99188e6f48" - dependencies: - babel-plugin-check-es2015-constants "^6.22.0" - babel-plugin-syntax-trailing-function-commas "^6.22.0" - babel-plugin-transform-async-to-generator "^6.22.0" - babel-plugin-transform-es2015-arrow-functions "^6.22.0" - babel-plugin-transform-es2015-block-scoped-functions "^6.22.0" - babel-plugin-transform-es2015-block-scoping "^6.23.0" - babel-plugin-transform-es2015-classes "^6.23.0" - babel-plugin-transform-es2015-computed-properties "^6.22.0" - babel-plugin-transform-es2015-destructuring "^6.23.0" - babel-plugin-transform-es2015-duplicate-keys "^6.22.0" - babel-plugin-transform-es2015-for-of "^6.23.0" - babel-plugin-transform-es2015-function-name "^6.22.0" - babel-plugin-transform-es2015-literals "^6.22.0" - babel-plugin-transform-es2015-modules-amd "^6.22.0" - babel-plugin-transform-es2015-modules-commonjs "^6.23.0" - babel-plugin-transform-es2015-modules-systemjs "^6.23.0" - babel-plugin-transform-es2015-modules-umd "^6.23.0" - babel-plugin-transform-es2015-object-super "^6.22.0" - babel-plugin-transform-es2015-parameters "^6.23.0" - babel-plugin-transform-es2015-shorthand-properties "^6.22.0" - babel-plugin-transform-es2015-spread "^6.22.0" - babel-plugin-transform-es2015-sticky-regex "^6.22.0" - babel-plugin-transform-es2015-template-literals "^6.22.0" - babel-plugin-transform-es2015-typeof-symbol "^6.23.0" - babel-plugin-transform-es2015-unicode-regex "^6.22.0" - babel-plugin-transform-exponentiation-operator "^6.22.0" - babel-plugin-transform-regenerator "^6.22.0" - browserslist "^2.1.2" - invariant "^2.2.2" - semver "^5.3.0" - -babel-preset-flow@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-preset-flow/-/babel-preset-flow-6.23.0.tgz#e71218887085ae9a24b5be4169affb599816c49d" - dependencies: - babel-plugin-transform-flow-strip-types "^6.22.0" - -babel-preset-react@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-preset-react/-/babel-preset-react-6.24.1.tgz#ba69dfaea45fc3ec639b6a4ecea6e17702c91380" - dependencies: - babel-plugin-syntax-jsx "^6.3.13" - babel-plugin-transform-react-display-name "^6.23.0" - babel-plugin-transform-react-jsx "^6.24.1" - babel-plugin-transform-react-jsx-self "^6.22.0" - babel-plugin-transform-react-jsx-source "^6.22.0" - babel-preset-flow "^6.23.0" - -babel-register@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.26.0.tgz#6ed021173e2fcb486d7acb45c6009a856f647071" - dependencies: - babel-core "^6.26.0" - babel-runtime "^6.26.0" - core-js "^2.5.0" - home-or-tmp "^2.0.0" - lodash "^4.17.4" - mkdirp "^0.5.1" - source-map-support "^0.4.15" - -babel-runtime@^6.18.0, babel-runtime@^6.22.0, babel-runtime@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" - dependencies: - core-js "^2.4.0" - regenerator-runtime "^0.11.0" - -babel-template@^6.24.1, babel-template@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02" - dependencies: - babel-runtime "^6.26.0" - babel-traverse "^6.26.0" - babel-types "^6.26.0" - babylon "^6.18.0" - lodash "^4.17.4" - -babel-traverse@^6.24.1, babel-traverse@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee" - dependencies: - babel-code-frame "^6.26.0" - babel-messages "^6.23.0" - babel-runtime "^6.26.0" - babel-types "^6.26.0" - babylon "^6.18.0" - debug "^2.6.8" - globals "^9.18.0" - invariant "^2.2.2" - lodash "^4.17.4" - -babel-types@^6.19.0, babel-types@^6.24.1, babel-types@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" - dependencies: - babel-runtime "^6.26.0" - esutils "^2.0.2" - lodash "^4.17.4" - to-fast-properties "^1.0.3" - -babylon@^6.18.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" - -balanced-match@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" - -base64-js@^1.0.2: - version "1.2.1" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.2.1.tgz#a91947da1f4a516ea38e5b4ec0ec3773675e0886" - -bcrypt-pbkdf@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz#63bc5dcb61331b92bc05fd528953c33462a06f8d" - dependencies: - tweetnacl "^0.14.3" - -big.js@^3.1.3: - version "3.2.0" - resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.2.0.tgz#a5fc298b81b9e0dca2e458824784b65c52ba588e" - -binary-extensions@^1.0.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.10.0.tgz#9aeb9a6c5e88638aad171e167f5900abe24835d0" - -block-stream@*: - version "0.0.9" - resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a" - dependencies: - inherits "~2.0.0" - -bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0: - version "4.11.8" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" - -boom@2.x.x: - version "2.10.1" - resolved "https://registry.yarnpkg.com/boom/-/boom-2.10.1.tgz#39c8918ceff5799f83f9492a848f625add0c766f" - dependencies: - hoek "2.x.x" - -brace-expansion@^1.1.7: - version "1.1.8" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.8.tgz#c07b211c7c952ec1f8efd51a77ef0d1d3990a292" - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" - -braces@^1.8.2: - version "1.8.5" - resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7" - dependencies: - expand-range "^1.8.1" - preserve "^0.2.0" - repeat-element "^1.1.2" - -brorand@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" - -browserify-aes@^1.0.0, browserify-aes@^1.0.4: - version "1.1.1" - resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.1.1.tgz#38b7ab55edb806ff2dcda1a7f1620773a477c49f" - dependencies: - buffer-xor "^1.0.3" - cipher-base "^1.0.0" - create-hash "^1.1.0" - evp_bytestokey "^1.0.3" - inherits "^2.0.1" - safe-buffer "^5.0.1" - -browserify-cipher@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.0.tgz#9988244874bf5ed4e28da95666dcd66ac8fc363a" - dependencies: - browserify-aes "^1.0.4" - browserify-des "^1.0.0" - evp_bytestokey "^1.0.0" - -browserify-des@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.0.tgz#daa277717470922ed2fe18594118a175439721dd" - dependencies: - cipher-base "^1.0.1" - des.js "^1.0.0" - inherits "^2.0.1" - -browserify-rsa@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524" - dependencies: - bn.js "^4.1.0" - randombytes "^2.0.1" - -browserify-sign@^4.0.0: - version "4.0.4" - resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.0.4.tgz#aa4eb68e5d7b658baa6bf6a57e630cbd7a93d298" - dependencies: - bn.js "^4.1.1" - browserify-rsa "^4.0.0" - create-hash "^1.1.0" - create-hmac "^1.1.2" - elliptic "^6.0.0" - inherits "^2.0.1" - parse-asn1 "^5.0.0" - -browserify-zlib@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" - dependencies: - pako "~1.0.5" - -browserslist@^2.1.2: - version "2.9.0" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-2.9.0.tgz#706aca15c53be15610f466e348cbfa0c00a6a379" - dependencies: - caniuse-lite "^1.0.30000760" - electron-to-chromium "^1.3.27" - -buffer-xor@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" - -buffer@^4.3.0: - version "4.9.1" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.1.tgz#6d1bb601b07a4efced97094132093027c95bc298" - dependencies: - base64-js "^1.0.2" - ieee754 "^1.1.4" - isarray "^1.0.0" - -builtin-modules@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" - -builtin-status-codes@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" - -camelcase@^1.0.2: - version "1.2.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39" - -camelcase@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" - -caniuse-lite@^1.0.30000760: - version "1.0.30000765" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000765.tgz#aa1a75019276b48463c0fca2a5257fb9f26a7c9d" - -caseless@~0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" - -center-align@^0.1.1: - version "0.1.3" - resolved "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad" - dependencies: - align-text "^0.1.3" - lazy-cache "^1.0.3" - -chalk@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" - dependencies: - 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" - -chokidar@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.7.0.tgz#798e689778151c8076b4b360e5edd28cda2bb468" - dependencies: - anymatch "^1.3.0" - async-each "^1.0.0" - glob-parent "^2.0.0" - inherits "^2.0.1" - is-binary-path "^1.0.0" - is-glob "^2.0.0" - path-is-absolute "^1.0.0" - readdirp "^2.0.0" - optionalDependencies: - fsevents "^1.0.0" - -cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - -cliui@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1" - dependencies: - center-align "^0.1.1" - right-align "^0.1.1" - wordwrap "0.0.2" - -cliui@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d" - dependencies: - string-width "^1.0.1" - strip-ansi "^3.0.1" - wrap-ansi "^2.0.0" - -co@^4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" - -code-point-at@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" - -combined-stream@^1.0.5, combined-stream@~1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.5.tgz#938370a57b4a51dea2c77c15d5c5fdf895164009" - dependencies: - delayed-stream "~1.0.0" - -commondir@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - -console-browserify@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10" - dependencies: - date-now "^0.1.4" - -console-control-strings@^1.0.0, console-control-strings@~1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" - -constants-browserify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" - -convert-source-map@^1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.0.tgz#9acd70851c6d5dfdd93d9282e5edf94a03ff46b5" - -core-js@^1.0.0: - version "1.2.7" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636" - -core-js@^2.4.0, core-js@^2.5.0: - version "2.5.1" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.1.tgz#ae6874dc66937789b80754ff5428df66819ca50b" - -core-util-is@1.0.2, core-util-is@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" - -create-ecdh@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.0.tgz#888c723596cdf7612f6498233eebd7a35301737d" - dependencies: - bn.js "^4.1.0" - elliptic "^6.0.0" - -create-hash@^1.1.0, create-hash@^1.1.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.1.3.tgz#606042ac8b9262750f483caddab0f5819172d8fd" - dependencies: - cipher-base "^1.0.1" - inherits "^2.0.1" - ripemd160 "^2.0.0" - sha.js "^2.4.0" - -create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4: - version "1.1.6" - resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.6.tgz#acb9e221a4e17bdb076e90657c42b93e3726cf06" - dependencies: - 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@^5.0.1: - version "5.1.0" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" - dependencies: - lru-cache "^4.0.1" - shebang-command "^1.2.0" - which "^1.2.9" - -cryptiles@2.x.x: - version "2.0.5" - resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-2.0.5.tgz#3bdfecdc608147c1c67202fa291e7dca59eaa3b8" - dependencies: - boom "2.x.x" - -crypto-browserify@^3.11.0: - version "3.12.0" - resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" - dependencies: - 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" - -d@1: - version "1.0.0" - resolved "https://registry.yarnpkg.com/d/-/d-1.0.0.tgz#754bb5bfe55451da69a58b94d45f4c5b0462d58f" - dependencies: - es5-ext "^0.10.9" - -dashdash@^1.12.0: - version "1.14.1" - resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" - dependencies: - assert-plus "^1.0.0" - -date-now@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b" - -debug@^2.2.0, debug@^2.6.8: - version "2.6.9" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" - dependencies: - ms "2.0.0" - -decamelize@^1.0.0, decamelize@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" - -deep-extend@~0.4.0: - version "0.4.2" - resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.4.2.tgz#48b699c27e334bf89f10892be432f6e4c7d34a7f" - -delayed-stream@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" - -delegates@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" - -des.js@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.0.tgz#c074d2e2aa6a8a9a07dbd61f9a15c2cd83ec8ecc" - dependencies: - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - -detect-indent@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208" - dependencies: - repeating "^2.0.0" - -detect-libc@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.2.tgz#71ad5d204bf17a6a6ca8f450c61454066ef461e1" - -diffie-hellman@^5.0.0: - version "5.0.2" - resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.2.tgz#b5835739270cfe26acf632099fded2a07f209e5e" - dependencies: - bn.js "^4.1.0" - miller-rabin "^4.0.0" - randombytes "^2.0.0" - -domain-browser@^1.1.1: - version "1.1.7" - resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.1.7.tgz#867aa4b093faa05f1de08c06f4d7b21fdf8698bc" - -ecc-jsbn@~0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505" - dependencies: - jsbn "~0.1.0" - -electron-to-chromium@^1.3.27: - version "1.3.27" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.27.tgz#78ecb8a399066187bb374eede35d9c70565a803d" - -elliptic@^6.0.0: - version "6.4.0" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.4.0.tgz#cac9af8762c85836187003c8dfe193e5e2eae5df" - dependencies: - 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" - -emojis-list@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" - -encoding@^0.1.11: - version "0.1.12" - resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.12.tgz#538b66f3ee62cd1ab51ec323829d1f9480c74beb" - dependencies: - iconv-lite "~0.4.13" - -enhanced-resolve@^3.4.0: - version "3.4.1" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz#0421e339fd71419b3da13d129b3979040230476e" - dependencies: - graceful-fs "^4.1.2" - memory-fs "^0.4.0" - object-assign "^4.0.1" - tapable "^0.2.7" - -errno@^0.1.3: - version "0.1.4" - resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.4.tgz#b896e23a9e5e8ba33871fc996abd3635fc9a1c7d" - dependencies: - prr "~0.0.0" - -error-ex@^1.2.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.1.tgz#f855a86ce61adc4e8621c3cda21e7a7612c3a8dc" - dependencies: - is-arrayish "^0.2.1" - -es5-ext@^0.10.14, es5-ext@^0.10.35, es5-ext@^0.10.9, es5-ext@~0.10.14: - version "0.10.35" - resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.35.tgz#18ee858ce6a3c45c7d79e91c15fcca9ec568494f" - dependencies: - es6-iterator "~2.0.1" - es6-symbol "~3.1.1" - -es6-iterator@^2.0.1, es6-iterator@~2.0.1: - version "2.0.3" - resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" - dependencies: - d "1" - es5-ext "^0.10.35" - es6-symbol "^3.1.1" - -es6-map@^0.1.3: - version "0.1.5" - resolved "https://registry.yarnpkg.com/es6-map/-/es6-map-0.1.5.tgz#9136e0503dcc06a301690f0bb14ff4e364e949f0" - dependencies: - d "1" - es5-ext "~0.10.14" - es6-iterator "~2.0.1" - es6-set "~0.1.5" - es6-symbol "~3.1.1" - event-emitter "~0.3.5" - -es6-set@~0.1.5: - version "0.1.5" - resolved "https://registry.yarnpkg.com/es6-set/-/es6-set-0.1.5.tgz#d2b3ec5d4d800ced818db538d28974db0a73ccb1" - dependencies: - d "1" - es5-ext "~0.10.14" - es6-iterator "~2.0.1" - es6-symbol "3.1.1" - event-emitter "~0.3.5" - -es6-symbol@3.1.1, es6-symbol@^3.1.1, es6-symbol@~3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.1.tgz#bf00ef4fdab6ba1b46ecb7b629b4c7ed5715cc77" - dependencies: - d "1" - es5-ext "~0.10.14" - -es6-weak-map@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.2.tgz#5e3ab32251ffd1538a1f8e5ffa1357772f92d96f" - dependencies: - d "1" - es5-ext "^0.10.14" - es6-iterator "^2.0.1" - es6-symbol "^3.1.1" - -escape-string-regexp@^1.0.2: - version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - -escope@^3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/escope/-/escope-3.6.0.tgz#e01975e812781a163a6dadfdd80398dc64c889c3" - dependencies: - es6-map "^0.1.3" - es6-weak-map "^2.0.1" - esrecurse "^4.1.0" - estraverse "^4.1.1" - -esrecurse@^4.1.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.0.tgz#fa9568d98d3823f9a41d91e902dcab9ea6e5b163" - dependencies: - estraverse "^4.1.0" - object-assign "^4.0.1" - -estraverse@^4.1.0, estraverse@^4.1.1: - version "4.2.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" - -esutils@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" - -event-emitter@~0.3.5: - version "0.3.5" - resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39" - dependencies: - d "1" - es5-ext "~0.10.14" - -events@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924" - -evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" - dependencies: - md5.js "^1.3.4" - safe-buffer "^5.1.1" - -execa@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" - dependencies: - cross-spawn "^5.0.1" - get-stream "^3.0.0" - is-stream "^1.1.0" - npm-run-path "^2.0.0" - p-finally "^1.0.0" - signal-exit "^3.0.0" - strip-eof "^1.0.0" - -expand-brackets@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" - dependencies: - is-posix-bracket "^0.1.0" - -expand-range@^1.8.1: - version "1.8.2" - resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337" - dependencies: - fill-range "^2.1.0" - -expose-loader@^0.7.3: - version "0.7.3" - resolved "https://registry.yarnpkg.com/expose-loader/-/expose-loader-0.7.3.tgz#35fbd3659789e4faa81f59de8b7e9fc39e466d51" - -extend@~3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444" - -extglob@^0.3.1: - version "0.3.2" - resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1" - dependencies: - is-extglob "^1.0.0" - -extsprintf@1.3.0, extsprintf@^1.2.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" - -fast-deep-equal@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz#96256a3bc975595eb36d82e9929d060d893439ff" - -fast-json-stable-stringify@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" - -fbjs@^0.8.16: - version "0.8.16" - resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.16.tgz#5e67432f550dc41b572bf55847b8aca64e5337db" - dependencies: - core-js "^1.0.0" - isomorphic-fetch "^2.1.1" - loose-envify "^1.0.0" - object-assign "^4.1.0" - promise "^7.1.1" - setimmediate "^1.0.5" - ua-parser-js "^0.7.9" - -filename-regex@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26" - -fill-range@^2.1.0: - version "2.2.3" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.3.tgz#50b77dfd7e469bc7492470963699fe7a8485a723" - dependencies: - is-number "^2.1.0" - isobject "^2.0.0" - randomatic "^1.1.3" - repeat-element "^1.1.2" - repeat-string "^1.5.2" - -find-cache-dir@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-1.0.0.tgz#9288e3e9e3cc3748717d39eade17cf71fc30ee6f" - dependencies: - commondir "^1.0.1" - make-dir "^1.0.0" - pkg-dir "^2.0.0" - -find-up@^2.0.0, find-up@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" - dependencies: - locate-path "^2.0.0" - -for-in@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" - -for-own@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce" - dependencies: - for-in "^1.0.1" - -forever-agent@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" - -form-data@~2.1.1: - version "2.1.4" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.1.4.tgz#33c183acf193276ecaa98143a69e94bfee1750d1" - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.5" - mime-types "^2.1.12" - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - -fsevents@^1.0.0: - version "1.1.3" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.1.3.tgz#11f82318f5fe7bb2cd22965a108e9306208216d8" - dependencies: - nan "^2.3.0" - node-pre-gyp "^0.6.39" - -fstream-ignore@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/fstream-ignore/-/fstream-ignore-1.0.5.tgz#9c31dae34767018fe1d249b24dada67d092da105" - dependencies: - fstream "^1.0.0" - inherits "2" - minimatch "^3.0.0" - -fstream@^1.0.0, fstream@^1.0.10, fstream@^1.0.2: - version "1.0.11" - resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.11.tgz#5c1fb1f117477114f0632a0eb4b71b3cb0fd3171" - dependencies: - graceful-fs "^4.1.2" - inherits "~2.0.0" - mkdirp ">=0.5 0" - rimraf "2" - -gauge@~2.7.3: - version "2.7.4" - resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" - dependencies: - 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" - -get-caller-file@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.2.tgz#f702e63127e7e231c160a80c1554acb70d5047e5" - -get-stream@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" - -getpass@^0.1.1: - version "0.1.7" - resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" - dependencies: - assert-plus "^1.0.0" - -glob-base@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" - dependencies: - glob-parent "^2.0.0" - is-glob "^2.0.0" - -glob-parent@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28" - dependencies: - is-glob "^2.0.0" - -glob@^7.0.5: - version "7.1.2" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" - dependencies: - 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" - -globals@^9.18.0: - version "9.18.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" - -graceful-fs@^4.1.2: - version "4.1.11" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" - -har-schema@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-1.0.5.tgz#d263135f43307c02c602afc8fe95970c0151369e" - -har-validator@~4.2.1: - version "4.2.1" - resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-4.2.1.tgz#33481d0f1bbff600dd203d75812a6a5fba002e2a" - dependencies: - ajv "^4.9.1" - har-schema "^1.0.5" - -has-ansi@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" - dependencies: - ansi-regex "^2.0.0" - -has-flag@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51" - -has-unicode@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" - -hash-base@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-2.0.2.tgz#66ea1d856db4e8a5470cadf6fce23ae5244ef2e1" - dependencies: - inherits "^2.0.1" - -hash-base@^3.0.0: - version "3.0.4" - resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.0.4.tgz#5fc8686847ecd73499403319a6b0a3f3f6ae4918" - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - -hash.js@^1.0.0, hash.js@^1.0.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.3.tgz#340dedbe6290187151c1ea1d777a3448935df846" - dependencies: - inherits "^2.0.3" - minimalistic-assert "^1.0.0" - -hawk@3.1.3, hawk@~3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/hawk/-/hawk-3.1.3.tgz#078444bd7c1640b0fe540d2c9b73d59678e8e1c4" - dependencies: - boom "2.x.x" - cryptiles "2.x.x" - hoek "2.x.x" - sntp "1.x.x" - -history@^4.7.2: - version "4.7.2" - resolved "https://registry.yarnpkg.com/history/-/history-4.7.2.tgz#22b5c7f31633c5b8021c7f4a8a954ac139ee8d5b" - dependencies: - invariant "^2.2.1" - loose-envify "^1.2.0" - resolve-pathname "^2.2.0" - value-equal "^0.4.0" - warning "^3.0.0" - -hmac-drbg@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" - dependencies: - hash.js "^1.0.3" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.1" - -hoek@2.x.x: - version "2.16.3" - resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed" - -hoist-non-react-statics@^2.3.0: - version "2.3.1" - resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-2.3.1.tgz#343db84c6018c650778898240135a1420ee22ce0" - -home-or-tmp@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8" - dependencies: - os-homedir "^1.0.0" - os-tmpdir "^1.0.1" - -hosted-git-info@^2.1.4: - version "2.5.0" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.5.0.tgz#6d60e34b3abbc8313062c3b798ef8d901a07af3c" - -http-signature@~1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.1.1.tgz#df72e267066cd0ac67fb76adf8e134a8fbcf91bf" - dependencies: - assert-plus "^0.2.0" - jsprim "^1.2.2" - sshpk "^1.7.0" - -https-browserify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" - -iconv-lite@~0.4.13: - version "0.4.19" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b" - -ieee754@^1.1.4: - version "1.1.8" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.8.tgz#be33d40ac10ef1926701f6f08a2d86fbfd1ad3e4" - -indexof@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" - -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" - -inherits@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" - -ini@~1.3.0: - version "1.3.4" - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.4.tgz#0537cb79daf59b59a1a517dff706c86ec039162e" - -interpret@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.0.4.tgz#820cdd588b868ffb191a809506d6c9c8f212b1b0" - -invariant@^2.2.1, invariant@^2.2.2: - version "2.2.2" - resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.2.tgz#9e1f56ac0acdb6bf303306f338be3b204ae60360" - dependencies: - loose-envify "^1.0.0" - -invert-kv@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" - -is-arrayish@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" - -is-binary-path@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" - dependencies: - binary-extensions "^1.0.0" - -is-buffer@^1.1.5: - version "1.1.6" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" - -is-builtin-module@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe" - dependencies: - builtin-modules "^1.0.0" - -is-dotfile@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1" - -is-equal-shallow@^0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534" - dependencies: - is-primitive "^2.0.0" - -is-extendable@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" - -is-extglob@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" - -is-finite@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa" - dependencies: - number-is-nan "^1.0.0" - -is-fullwidth-code-point@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" - dependencies: - number-is-nan "^1.0.0" - -is-fullwidth-code-point@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" - -is-glob@^2.0.0, is-glob@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" - dependencies: - is-extglob "^1.0.0" - -is-number@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" - dependencies: - kind-of "^3.0.2" - -is-number@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" - dependencies: - kind-of "^3.0.2" - -is-posix-bracket@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4" - -is-primitive@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" - -is-stream@^1.0.1, is-stream@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" - -is-typedarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" - -isarray@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" - -isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - -isobject@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" - dependencies: - isarray "1.0.0" - -isomorphic-fetch@^2.1.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz#611ae1acf14f5e81f729507472819fe9733558a9" - dependencies: - node-fetch "^1.0.1" - whatwg-fetch ">=0.10.0" - -isstream@~0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" - -js-tokens@^3.0.0, js-tokens@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" - -jsbn@~0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" - -jsesc@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" - -jsesc@~0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" - -json-loader@^0.5.4: - version "0.5.7" - resolved "https://registry.yarnpkg.com/json-loader/-/json-loader-0.5.7.tgz#dca14a70235ff82f0ac9a3abeb60d337a365185d" - -json-schema-traverse@^0.3.0: - version "0.3.1" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340" - -json-schema@0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" - -json-stable-stringify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" - dependencies: - jsonify "~0.0.0" - -json-stringify-safe@~5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" - -json5@^0.5.0, json5@^0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" - -jsonify@~0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" - -jsprim@^1.2.2: - version "1.4.1" - resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" - dependencies: - assert-plus "1.0.0" - extsprintf "1.3.0" - json-schema "0.2.3" - verror "1.10.0" - -kind-of@^3.0.2: - version "3.2.2" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" - dependencies: - is-buffer "^1.1.5" - -kind-of@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" - dependencies: - is-buffer "^1.1.5" - -lazy-cache@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" - -lcid@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" - dependencies: - invert-kv "^1.0.0" - -load-json-file@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8" - dependencies: - graceful-fs "^4.1.2" - parse-json "^2.2.0" - pify "^2.0.0" - strip-bom "^3.0.0" - -loader-runner@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.3.0.tgz#f482aea82d543e07921700d5a46ef26fdac6b8a2" - -loader-utils@^1.0.2, loader-utils@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.1.0.tgz#c98aef488bcceda2ffb5e2de646d6a754429f5cd" - dependencies: - big.js "^3.1.3" - emojis-list "^2.0.0" - json5 "^0.5.0" - -locate-path@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" - dependencies: - p-locate "^2.0.0" - path-exists "^3.0.0" - -lodash@^4.14.0, lodash@^4.17.4: - version "4.17.4" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" - -longest@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" - -loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.2.0, loose-envify@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848" - dependencies: - js-tokens "^3.0.0" - -lru-cache@^4.0.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.1.tgz#622e32e82488b49279114a4f9ecf45e7cd6bba55" - dependencies: - pseudomap "^1.0.2" - yallist "^2.1.2" - -make-dir@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.1.0.tgz#19b4369fe48c116f53c2af95ad102c0e39e85d51" - dependencies: - pify "^3.0.0" - -md5.js@^1.3.4: - version "1.3.4" - resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.4.tgz#e9bdbde94a20a5ac18b04340fc5764d5b09d901d" - dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" - -mem@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/mem/-/mem-1.1.0.tgz#5edd52b485ca1d900fe64895505399a0dfa45f76" - dependencies: - mimic-fn "^1.0.0" - -memory-fs@^0.4.0, memory-fs@~0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" - dependencies: - errno "^0.1.3" - readable-stream "^2.0.1" - -micromatch@^2.1.5: - version "2.3.11" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" - dependencies: - arr-diff "^2.0.0" - array-unique "^0.2.1" - braces "^1.8.2" - expand-brackets "^0.1.4" - extglob "^0.3.1" - filename-regex "^2.0.0" - is-extglob "^1.0.0" - is-glob "^2.0.1" - kind-of "^3.0.2" - normalize-path "^2.0.1" - object.omit "^2.0.0" - parse-glob "^3.0.4" - regex-cache "^0.4.2" - -miller-rabin@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" - dependencies: - bn.js "^4.0.0" - brorand "^1.0.1" - -mime-db@~1.30.0: - version "1.30.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.30.0.tgz#74c643da2dd9d6a45399963465b26d5ca7d71f01" - -mime-types@^2.1.12, mime-types@~2.1.7: - version "2.1.17" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.17.tgz#09d7a393f03e995a79f8af857b70a9e0ab16557a" - dependencies: - mime-db "~1.30.0" - -mimic-fn@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.1.0.tgz#e667783d92e89dbd342818b5230b9d62a672ad18" - -minimalistic-assert@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz#702be2dda6b37f4836bcb3f5db56641b64a1d3d3" - -minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" - -minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" - dependencies: - brace-expansion "^1.1.7" - -minimist@0.0.8: - version "0.0.8" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" - -minimist@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" - -"mkdirp@>=0.5 0", mkdirp@^0.5.1, mkdirp@~0.5.0: - version "0.5.1" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" - dependencies: - minimist "0.0.8" - -ms@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - -nan@^2.3.0: - version "2.8.0" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.8.0.tgz#ed715f3fe9de02b57a5e6252d90a96675e1f085a" - -node-fetch@^1.0.1: - version "1.7.3" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.3.tgz#980f6f72d85211a5347c6b2bc18c5b84c3eb47ef" - dependencies: - encoding "^0.1.11" - is-stream "^1.0.1" - -node-libs-browser@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.1.0.tgz#5f94263d404f6e44767d726901fff05478d600df" - dependencies: - assert "^1.1.1" - browserify-zlib "^0.2.0" - buffer "^4.3.0" - console-browserify "^1.1.0" - constants-browserify "^1.0.0" - crypto-browserify "^3.11.0" - domain-browser "^1.1.1" - events "^1.0.0" - https-browserify "^1.0.0" - os-browserify "^0.3.0" - path-browserify "0.0.0" - process "^0.11.10" - punycode "^1.2.4" - querystring-es3 "^0.2.0" - readable-stream "^2.3.3" - stream-browserify "^2.0.1" - stream-http "^2.7.2" - string_decoder "^1.0.0" - timers-browserify "^2.0.4" - tty-browserify "0.0.0" - url "^0.11.0" - util "^0.10.3" - vm-browserify "0.0.4" - -node-pre-gyp@^0.6.39: - version "0.6.39" - resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.6.39.tgz#c00e96860b23c0e1420ac7befc5044e1d78d8649" - dependencies: - detect-libc "^1.0.2" - hawk "3.1.3" - mkdirp "^0.5.1" - nopt "^4.0.1" - npmlog "^4.0.2" - rc "^1.1.7" - request "2.81.0" - rimraf "^2.6.1" - semver "^5.3.0" - tar "^2.2.1" - tar-pack "^3.4.0" - -nopt@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" - dependencies: - abbrev "1" - osenv "^0.1.4" - -normalize-package-data@^2.3.2: - version "2.4.0" - resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.4.0.tgz#12f95a307d58352075a04907b84ac8be98ac012f" - dependencies: - hosted-git-info "^2.1.4" - is-builtin-module "^1.0.0" - semver "2 || 3 || 4 || 5" - validate-npm-package-license "^3.0.1" - -normalize-path@^2.0.0, normalize-path@^2.0.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" - dependencies: - remove-trailing-separator "^1.0.1" - -npm-run-path@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" - dependencies: - path-key "^2.0.0" - -npmlog@^4.0.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" - dependencies: - are-we-there-yet "~1.1.2" - console-control-strings "~1.1.0" - gauge "~2.7.3" - set-blocking "~2.0.0" - -number-is-nan@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" - -oauth-sign@~0.8.1: - version "0.8.2" - resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43" - -object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" - -object.omit@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" - dependencies: - for-own "^0.1.4" - is-extendable "^0.1.1" - -once@^1.3.0, once@^1.3.3: - version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - dependencies: - wrappy "1" - -os-browserify@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" - -os-homedir@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" - -os-locale@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-2.1.0.tgz#42bc2900a6b5b8bd17376c8e882b65afccf24bf2" - dependencies: - execa "^0.7.0" - lcid "^1.0.0" - mem "^1.1.0" - -os-tmpdir@^1.0.0, os-tmpdir@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" - -osenv@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.4.tgz#42fe6d5953df06c8064be6f176c3d05aaaa34644" - dependencies: - os-homedir "^1.0.0" - os-tmpdir "^1.0.0" - -p-finally@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" - -p-limit@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.1.0.tgz#b07ff2d9a5d88bec806035895a2bab66a27988bc" - -p-locate@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" - dependencies: - p-limit "^1.1.0" - -pako@~1.0.5: - version "1.0.6" - resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.6.tgz#0101211baa70c4bca4a0f63f2206e97b7dfaf258" - -parse-asn1@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.0.tgz#37c4f9b7ed3ab65c74817b5f2480937fbf97c712" - dependencies: - asn1.js "^4.0.0" - browserify-aes "^1.0.0" - create-hash "^1.1.0" - evp_bytestokey "^1.0.0" - pbkdf2 "^3.0.3" - -parse-glob@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" - dependencies: - glob-base "^0.3.0" - is-dotfile "^1.0.0" - is-extglob "^1.0.0" - is-glob "^2.0.0" - -parse-json@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" - dependencies: - error-ex "^1.2.0" - -path-browserify@0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.0.tgz#a0b870729aae214005b7d5032ec2cbbb0fb4451a" - -path-exists@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" - -path-is-absolute@^1.0.0, path-is-absolute@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - -path-key@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" - -path-to-regexp@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.7.0.tgz#59fde0f435badacba103a84e9d3bc64e96b9937d" - dependencies: - isarray "0.0.1" - -path-type@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73" - dependencies: - pify "^2.0.0" - -pbkdf2@^3.0.3: - version "3.0.14" - resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.14.tgz#a35e13c64799b06ce15320f459c230e68e73bade" - dependencies: - 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@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-0.2.0.tgz#33ef30c5c77d4ea21c5a53869d91b56d8f2555e5" - -pify@^2.0.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" - -pify@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" - -pkg-dir@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b" - dependencies: - find-up "^2.1.0" - -preserve@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" - -private@^0.1.6, private@^0.1.7: - version "0.1.8" - resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" - -process-nextick-args@~1.0.6: - version "1.0.7" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" - -process@^0.11.10: - version "0.11.10" - resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" - -promise@^7.1.1: - version "7.3.1" - resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf" - dependencies: - asap "~2.0.3" - -prop-types@^15.5.4, prop-types@^15.6.0: - version "15.6.0" - resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.6.0.tgz#ceaf083022fc46b4a35f69e13ef75aed0d639856" - dependencies: - fbjs "^0.8.16" - loose-envify "^1.3.1" - object-assign "^4.1.1" - -prr@~0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/prr/-/prr-0.0.0.tgz#1a84b85908325501411853d0081ee3fa86e2926a" - -pseudomap@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" - -public-encrypt@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.0.tgz#39f699f3a46560dd5ebacbca693caf7c65c18cc6" - dependencies: - bn.js "^4.1.0" - browserify-rsa "^4.0.0" - create-hash "^1.1.0" - parse-asn1 "^5.0.0" - randombytes "^2.0.1" - -punycode@1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" - -punycode@^1.2.4, punycode@^1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" - -qs@~6.4.0: - version "6.4.0" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.4.0.tgz#13e26d28ad6b0ffaa91312cd3bf708ed351e7233" - -querystring-es3@^0.2.0: - version "0.2.1" - resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" - -querystring@0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" - -randomatic@^1.1.3: - version "1.1.7" - resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-1.1.7.tgz#c7abe9cc8b87c0baa876b19fde83fd464797e38c" - dependencies: - is-number "^3.0.0" - kind-of "^4.0.0" - -randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.0.5.tgz#dc009a246b8d09a177b4b7a0ae77bc570f4b1b79" - dependencies: - safe-buffer "^5.1.0" - -randomfill@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.3.tgz#b96b7df587f01dd91726c418f30553b1418e3d62" - dependencies: - randombytes "^2.0.5" - safe-buffer "^5.1.0" - -rc@^1.1.7: - version "1.2.2" - resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.2.tgz#d8ce9cb57e8d64d9c7badd9876c7c34cbe3c7077" - dependencies: - deep-extend "~0.4.0" - ini "~1.3.0" - minimist "^1.2.0" - strip-json-comments "~2.0.1" - -react-dom@^16.1.1: - version "16.1.1" - resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.1.1.tgz#b2e331b6d752faf1a2d31399969399a41d8d45f8" - dependencies: - fbjs "^0.8.16" - loose-envify "^1.1.0" - object-assign "^4.1.1" - prop-types "^15.6.0" - -react-router-dom@^4.2.2: - version "4.2.2" - resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-4.2.2.tgz#c8a81df3adc58bba8a76782e946cbd4eae649b8d" - dependencies: - history "^4.7.2" - invariant "^2.2.2" - loose-envify "^1.3.1" - prop-types "^15.5.4" - react-router "^4.2.0" - warning "^3.0.0" - -react-router@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/react-router/-/react-router-4.2.0.tgz#61f7b3e3770daeb24062dae3eedef1b054155986" - dependencies: - history "^4.7.2" - hoist-non-react-statics "^2.3.0" - invariant "^2.2.2" - loose-envify "^1.3.1" - path-to-regexp "^1.7.0" - prop-types "^15.5.4" - warning "^3.0.0" - -react@^16.1.1: - version "16.1.1" - resolved "https://registry.yarnpkg.com/react/-/react-16.1.1.tgz#d5c4ef795507e3012282dd51261ff9c0e824fe1f" - dependencies: - fbjs "^0.8.16" - loose-envify "^1.1.0" - object-assign "^4.1.1" - prop-types "^15.6.0" - -read-pkg-up@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be" - dependencies: - find-up "^2.0.0" - read-pkg "^2.0.0" - -read-pkg@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8" - dependencies: - load-json-file "^2.0.0" - normalize-package-data "^2.3.2" - path-type "^2.0.0" - -readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.4, readable-stream@^2.2.6, readable-stream@^2.3.3: - version "2.3.3" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.3.tgz#368f2512d79f9d46fdfc71349ae7878bbc1eb95c" - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.3" - isarray "~1.0.0" - process-nextick-args "~1.0.6" - safe-buffer "~5.1.1" - string_decoder "~1.0.3" - util-deprecate "~1.0.1" - -readdirp@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.1.0.tgz#4ed0ad060df3073300c48440373f72d1cc642d78" - dependencies: - graceful-fs "^4.1.2" - minimatch "^3.0.2" - readable-stream "^2.0.2" - set-immediate-shim "^1.0.1" - -regenerate@^1.2.1: - version "1.3.3" - resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.3.3.tgz#0c336d3980553d755c39b586ae3b20aa49c82b7f" - -regenerator-runtime@^0.11.0: - version "0.11.0" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz#7e54fe5b5ccd5d6624ea6255c3473be090b802e1" - -regenerator-transform@^0.10.0: - version "0.10.1" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.10.1.tgz#1e4996837231da8b7f3cf4114d71b5691a0680dd" - dependencies: - babel-runtime "^6.18.0" - babel-types "^6.19.0" - private "^0.1.6" - -regex-cache@^0.4.2: - version "0.4.4" - resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.4.tgz#75bdc58a2a1496cec48a12835bc54c8d562336dd" - dependencies: - is-equal-shallow "^0.1.3" - -regexpu-core@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-2.0.0.tgz#49d038837b8dcf8bfa5b9a42139938e6ea2ae240" - dependencies: - regenerate "^1.2.1" - regjsgen "^0.2.0" - regjsparser "^0.1.4" - -regjsgen@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7" - -regjsparser@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.1.5.tgz#7ee8f84dc6fa792d3fd0ae228d24bd949ead205c" - dependencies: - jsesc "~0.5.0" - -remove-trailing-separator@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" - -repeat-element@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a" - -repeat-string@^1.5.2: - version "1.6.1" - resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" - -repeating@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" - dependencies: - is-finite "^1.0.0" - -request@2.81.0: - version "2.81.0" - resolved "https://registry.yarnpkg.com/request/-/request-2.81.0.tgz#c6928946a0e06c5f8d6f8a9333469ffda46298a0" - dependencies: - aws-sign2 "~0.6.0" - aws4 "^1.2.1" - caseless "~0.12.0" - combined-stream "~1.0.5" - extend "~3.0.0" - forever-agent "~0.6.1" - form-data "~2.1.1" - har-validator "~4.2.1" - hawk "~3.1.3" - http-signature "~1.1.0" - is-typedarray "~1.0.0" - isstream "~0.1.2" - json-stringify-safe "~5.0.1" - mime-types "~2.1.7" - oauth-sign "~0.8.1" - performance-now "^0.2.0" - qs "~6.4.0" - safe-buffer "^5.0.1" - stringstream "~0.0.4" - tough-cookie "~2.3.0" - tunnel-agent "^0.6.0" - uuid "^3.0.0" - -require-directory@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - -require-main-filename@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" - -resolve-pathname@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/resolve-pathname/-/resolve-pathname-2.2.0.tgz#7e9ae21ed815fd63ab189adeee64dc831eefa879" - -right-align@^0.1.1: - version "0.1.3" - resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef" - dependencies: - align-text "^0.1.1" - -rimraf@2, rimraf@^2.5.1, rimraf@^2.6.1: - version "2.6.2" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36" - dependencies: - glob "^7.0.5" - -ripemd160@^2.0.0, ripemd160@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.1.tgz#0f4584295c53a3628af7e6d79aca21ce57d1c6e7" - dependencies: - hash-base "^2.0.0" - inherits "^2.0.1" - -safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@~5.1.0, safe-buffer@~5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" - -"semver@2 || 3 || 4 || 5", semver@^5.3.0: - version "5.4.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.4.1.tgz#e059c09d8571f0540823733433505d3a2f00b18e" - -set-blocking@^2.0.0, set-blocking@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" - -set-immediate-shim@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61" - -setimmediate@^1.0.4, setimmediate@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" - -sha.js@^2.4.0, sha.js@^2.4.8: - version "2.4.9" - resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.9.tgz#98f64880474b74f4a38b8da9d3c0f2d104633e7d" - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - -shebang-command@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" - dependencies: - shebang-regex "^1.0.0" - -shebang-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" - -signal-exit@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" - -slash@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" - -sntp@1.x.x: - version "1.0.9" - resolved "https://registry.yarnpkg.com/sntp/-/sntp-1.0.9.tgz#6541184cc90aeea6c6e7b35e2659082443c66198" - dependencies: - hoek "2.x.x" - -source-list-map@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.0.tgz#aaa47403f7b245a92fbc97ea08f250d6087ed085" - -source-map-support@^0.4.15: - version "0.4.18" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f" - dependencies: - source-map "^0.5.6" - -source-map@^0.5.3, source-map@^0.5.6, source-map@~0.5.1: - version "0.5.7" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" - -source-map@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" - -spdx-correct@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-1.0.2.tgz#4b3073d933ff51f3912f03ac5519498a4150db40" - dependencies: - spdx-license-ids "^1.0.2" - -spdx-expression-parse@~1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz#9bdf2f20e1f40ed447fbe273266191fced51626c" - -spdx-license-ids@^1.0.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz#c9df7a3424594ade6bd11900d596696dc06bac57" - -sshpk@^1.7.0: - version "1.13.1" - resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.13.1.tgz#512df6da6287144316dc4c18fe1cf1d940739be3" - dependencies: - asn1 "~0.2.3" - assert-plus "^1.0.0" - dashdash "^1.12.0" - getpass "^0.1.1" - optionalDependencies: - bcrypt-pbkdf "^1.0.0" - ecc-jsbn "~0.1.1" - jsbn "~0.1.0" - tweetnacl "~0.14.0" - -stream-browserify@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.1.tgz#66266ee5f9bdb9940a4e4514cafb43bb71e5c9db" - dependencies: - inherits "~2.0.1" - readable-stream "^2.0.2" - -stream-http@^2.7.2: - version "2.7.2" - resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.7.2.tgz#40a050ec8dc3b53b33d9909415c02c0bf1abfbad" - dependencies: - builtin-status-codes "^3.0.0" - inherits "^2.0.1" - readable-stream "^2.2.6" - to-arraybuffer "^1.0.0" - xtend "^4.0.0" - -string-width@^1.0.1, string-width@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" - dependencies: - code-point-at "^1.0.0" - is-fullwidth-code-point "^1.0.0" - strip-ansi "^3.0.0" - -string-width@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" - dependencies: - is-fullwidth-code-point "^2.0.0" - strip-ansi "^4.0.0" - -string_decoder@^1.0.0, string_decoder@~1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.0.3.tgz#0fc67d7c141825de94282dd536bec6b9bce860ab" - dependencies: - safe-buffer "~5.1.0" - -stringstream@~0.0.4: - version "0.0.5" - resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878" - -strip-ansi@^3.0.0, strip-ansi@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" - dependencies: - ansi-regex "^2.0.0" - -strip-ansi@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" - dependencies: - ansi-regex "^3.0.0" - -strip-bom@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" - -strip-eof@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" - -strip-json-comments@~2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" - -supports-color@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" - -supports-color@^4.2.1: - version "4.5.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.5.0.tgz#be7a0de484dec5c5cddf8b3d59125044912f635b" - dependencies: - has-flag "^2.0.0" - -tapable@^0.2.7: - version "0.2.8" - resolved "https://registry.yarnpkg.com/tapable/-/tapable-0.2.8.tgz#99372a5c999bf2df160afc0d74bed4f47948cd22" - -tar-pack@^3.4.0: - version "3.4.1" - resolved "https://registry.yarnpkg.com/tar-pack/-/tar-pack-3.4.1.tgz#e1dbc03a9b9d3ba07e896ad027317eb679a10a1f" - dependencies: - debug "^2.2.0" - fstream "^1.0.10" - fstream-ignore "^1.0.5" - once "^1.3.3" - readable-stream "^2.1.4" - rimraf "^2.5.1" - tar "^2.2.1" - uid-number "^0.0.6" - -tar@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1" - dependencies: - block-stream "*" - fstream "^1.0.2" - inherits "2" - -timers-browserify@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.4.tgz#96ca53f4b794a5e7c0e1bd7cc88a372298fa01e6" - dependencies: - setimmediate "^1.0.4" - -to-arraybuffer@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" - -to-fast-properties@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" - -tough-cookie@~2.3.0: - version "2.3.3" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.3.tgz#0b618a5565b6dea90bf3425d04d55edc475a7561" - dependencies: - punycode "^1.4.1" - -trim-right@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" - -tty-browserify@0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" - -tunnel-agent@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" - dependencies: - safe-buffer "^5.0.1" - -tweetnacl@^0.14.3, tweetnacl@~0.14.0: - version "0.14.5" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" - -ua-parser-js@^0.7.9: - version "0.7.17" - resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.17.tgz#e9ec5f9498b9ec910e7ae3ac626a805c4d09ecac" - -uglify-js@^2.8.29: - version "2.8.29" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.29.tgz#29c5733148057bb4e1f75df35b7a9cb72e6a59dd" - dependencies: - source-map "~0.5.1" - yargs "~3.10.0" - optionalDependencies: - uglify-to-browserify "~1.0.0" - -uglify-to-browserify@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7" - -uglifyjs-webpack-plugin@^0.4.6: - version "0.4.6" - resolved "https://registry.yarnpkg.com/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-0.4.6.tgz#b951f4abb6bd617e66f63eb891498e391763e309" - dependencies: - source-map "^0.5.6" - uglify-js "^2.8.29" - webpack-sources "^1.0.1" - -uid-number@^0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81" - -url@^0.11.0: - version "0.11.0" - resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" - dependencies: - punycode "1.3.2" - querystring "0.2.0" - -util-deprecate@~1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - -util@0.10.3, util@^0.10.3: - version "0.10.3" - resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" - dependencies: - inherits "2.0.1" - -uuid@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.1.0.tgz#3dd3d3e790abc24d7b0d3a034ffababe28ebbc04" - -validate-npm-package-license@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz#2804babe712ad3379459acfbe24746ab2c303fbc" - dependencies: - spdx-correct "~1.0.0" - spdx-expression-parse "~1.0.0" - -value-equal@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/value-equal/-/value-equal-0.4.0.tgz#c5bdd2f54ee093c04839d71ce2e4758a6890abc7" - -verror@1.10.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" - dependencies: - assert-plus "^1.0.0" - core-util-is "1.0.2" - extsprintf "^1.2.0" - -vm-browserify@0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-0.0.4.tgz#5d7ea45bbef9e4a6ff65f95438e0a87c357d5a73" - dependencies: - indexof "0.0.1" - -warning@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/warning/-/warning-3.0.0.tgz#32e5377cb572de4ab04753bdf8821c01ed605b7c" - dependencies: - loose-envify "^1.0.0" - -watchpack@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.4.0.tgz#4a1472bcbb952bd0a9bb4036801f954dfb39faac" - dependencies: - async "^2.1.2" - chokidar "^1.7.0" - graceful-fs "^4.1.2" - -webpack-sources@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.0.2.tgz#d0148ec083b3b5ccef1035a6b3ec16442983b27a" - dependencies: - source-list-map "^2.0.0" - source-map "~0.6.1" - -webpack@^3.8.1: - version "3.8.1" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-3.8.1.tgz#b16968a81100abe61608b0153c9159ef8bb2bd83" - dependencies: - acorn "^5.0.0" - acorn-dynamic-import "^2.0.0" - ajv "^5.1.5" - ajv-keywords "^2.0.0" - async "^2.1.2" - enhanced-resolve "^3.4.0" - escope "^3.6.0" - interpret "^1.0.0" - json-loader "^0.5.4" - json5 "^0.5.1" - loader-runner "^2.3.0" - loader-utils "^1.1.0" - memory-fs "~0.4.1" - mkdirp "~0.5.0" - node-libs-browser "^2.0.0" - source-map "^0.5.3" - supports-color "^4.2.1" - tapable "^0.2.7" - uglifyjs-webpack-plugin "^0.4.6" - watchpack "^1.4.0" - webpack-sources "^1.0.1" - yargs "^8.0.2" - -whatwg-fetch@>=0.10.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz#9c84ec2dcf68187ff00bc64e1274b442176e1c84" - -which-module@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" - -which@^1.2.9: - version "1.3.0" - resolved "https://registry.yarnpkg.com/which/-/which-1.3.0.tgz#ff04bdfc010ee547d780bec38e1ac1c2777d253a" - dependencies: - isexe "^2.0.0" - -wide-align@^1.1.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.2.tgz#571e0f1b0604636ebc0dfc21b0339bbe31341710" - dependencies: - string-width "^1.0.2" - -window-size@0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d" - -wordwrap@0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f" - -wrap-ansi@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" - dependencies: - string-width "^1.0.1" - strip-ansi "^3.0.1" - -wrappy@1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - -xtend@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" - -y18n@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" - -yallist@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" - -yargs-parser@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-7.0.0.tgz#8d0ac42f16ea55debd332caf4c4038b3e3f5dfd9" - dependencies: - camelcase "^4.1.0" - -yargs@^8.0.2: - version "8.0.2" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-8.0.2.tgz#6299a9055b1cefc969ff7e79c1d918dceb22c360" - dependencies: - camelcase "^4.1.0" - cliui "^3.2.0" - decamelize "^1.1.1" - get-caller-file "^1.0.1" - os-locale "^2.0.0" - read-pkg-up "^2.0.0" - require-directory "^2.1.1" - require-main-filename "^1.0.1" - set-blocking "^2.0.0" - string-width "^2.0.0" - which-module "^2.0.0" - y18n "^3.2.1" - yargs-parser "^7.0.0" - -yargs@~3.10.0: - version "3.10.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1" - dependencies: - camelcase "^1.0.2" - cliui "^2.1.0" - decamelize "^1.0.0" - window-size "0.1.0" +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +abbrev@1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" + +acorn-dynamic-import@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/acorn-dynamic-import/-/acorn-dynamic-import-2.0.2.tgz#c752bd210bef679501b6c6cb7fc84f8f47158cc4" + dependencies: + acorn "^4.0.3" + +acorn@^4.0.3: + version "4.0.13" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.13.tgz#105495ae5361d697bd195c825192e1ad7f253787" + +acorn@^5.0.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.2.1.tgz#317ac7821826c22c702d66189ab8359675f135d7" + +ajv-keywords@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-2.1.1.tgz#617997fc5f60576894c435f940d819e135b80762" + +ajv@^4.9.1: + version "4.11.8" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.8.tgz#82ffb02b29e662ae53bdc20af15947706739c536" + dependencies: + co "^4.6.0" + json-stable-stringify "^1.0.1" + +ajv@^5.1.5: + version "5.3.0" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.3.0.tgz#4414ff74a50879c208ee5fdc826e32c303549eda" + dependencies: + co "^4.6.0" + fast-deep-equal "^1.0.0" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.3.0" + +align-text@^0.1.1, align-text@^0.1.3: + version "0.1.4" + resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117" + dependencies: + kind-of "^3.0.2" + longest "^1.0.1" + repeat-string "^1.5.2" + +ansi-regex@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + +ansi-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" + +ansi-styles@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" + +anymatch@^1.3.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-1.3.2.tgz#553dcb8f91e3c889845dfdba34c77721b90b9d7a" + dependencies: + micromatch "^2.1.5" + normalize-path "^2.0.0" + +aproba@^1.0.3: + version "1.2.0" + resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" + +are-we-there-yet@~1.1.2: + version "1.1.4" + resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz#bb5dca382bb94f05e15194373d16fd3ba1ca110d" + dependencies: + delegates "^1.0.0" + readable-stream "^2.0.6" + +arr-diff@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf" + dependencies: + arr-flatten "^1.0.1" + +arr-flatten@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" + +array-unique@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" + +asap@~2.0.3: + version "2.0.6" + resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" + +asn1.js@^4.0.0: + version "4.9.2" + resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.9.2.tgz#8117ef4f7ed87cd8f89044b5bff97ac243a16c9a" + dependencies: + bn.js "^4.0.0" + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + +asn1@~0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86" + +assert-plus@1.0.0, assert-plus@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" + +assert-plus@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.2.0.tgz#d74e1b87e7affc0db8aadb7021f3fe48101ab234" + +assert@^1.1.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/assert/-/assert-1.4.1.tgz#99912d591836b5a6f5b345c0f07eefc08fc65d91" + dependencies: + util "0.10.3" + +async-each@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" + +async@^2.1.2: + version "2.6.0" + resolved "https://registry.yarnpkg.com/async/-/async-2.6.0.tgz#61a29abb6fcc026fea77e56d1c6ec53a795951f4" + dependencies: + lodash "^4.14.0" + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + +aws-sign2@~0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.6.0.tgz#14342dd38dbcc94d0e5b87d763cd63612c0e794f" + +aws4@^1.2.1: + version "1.6.0" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.6.0.tgz#83ef5ca860b2b32e4a0deedee8c771b9db57471e" + +babel-code-frame@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" + dependencies: + chalk "^1.1.3" + esutils "^2.0.2" + js-tokens "^3.0.2" + +babel-core@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.0.tgz#af32f78b31a6fcef119c87b0fd8d9753f03a0bb8" + dependencies: + babel-code-frame "^6.26.0" + babel-generator "^6.26.0" + babel-helpers "^6.24.1" + babel-messages "^6.23.0" + babel-register "^6.26.0" + babel-runtime "^6.26.0" + babel-template "^6.26.0" + babel-traverse "^6.26.0" + babel-types "^6.26.0" + babylon "^6.18.0" + convert-source-map "^1.5.0" + debug "^2.6.8" + json5 "^0.5.1" + lodash "^4.17.4" + minimatch "^3.0.4" + path-is-absolute "^1.0.1" + private "^0.1.7" + slash "^1.0.0" + source-map "^0.5.6" + +babel-generator@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.0.tgz#ac1ae20070b79f6e3ca1d3269613053774f20dc5" + dependencies: + babel-messages "^6.23.0" + babel-runtime "^6.26.0" + babel-types "^6.26.0" + detect-indent "^4.0.0" + jsesc "^1.3.0" + lodash "^4.17.4" + source-map "^0.5.6" + trim-right "^1.0.1" + +babel-helper-builder-binary-assignment-operator-visitor@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz#cce4517ada356f4220bcae8a02c2b346f9a56664" + dependencies: + babel-helper-explode-assignable-expression "^6.24.1" + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-helper-builder-react-jsx@^6.24.1: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.26.0.tgz#39ff8313b75c8b65dceff1f31d383e0ff2a408a0" + dependencies: + babel-runtime "^6.26.0" + babel-types "^6.26.0" + esutils "^2.0.2" + +babel-helper-call-delegate@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz#ece6aacddc76e41c3461f88bfc575bd0daa2df8d" + dependencies: + babel-helper-hoist-variables "^6.24.1" + babel-runtime "^6.22.0" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helper-define-map@^6.24.1: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz#a5f56dab41a25f97ecb498c7ebaca9819f95be5f" + dependencies: + babel-helper-function-name "^6.24.1" + babel-runtime "^6.26.0" + babel-types "^6.26.0" + lodash "^4.17.4" + +babel-helper-explode-assignable-expression@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz#f25b82cf7dc10433c55f70592d5746400ac22caa" + dependencies: + babel-runtime "^6.22.0" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helper-function-name@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz#d3475b8c03ed98242a25b48351ab18399d3580a9" + dependencies: + babel-helper-get-function-arity "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helper-get-function-arity@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz#8f7782aa93407c41d3aa50908f89b031b1b6853d" + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-helper-hoist-variables@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz#1ecb27689c9d25513eadbc9914a73f5408be7a76" + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-helper-optimise-call-expression@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz#f7a13427ba9f73f8f4fa993c54a97882d1244257" + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-helper-regex@^6.24.1: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz#325c59f902f82f24b74faceed0363954f6495e72" + dependencies: + babel-runtime "^6.26.0" + babel-types "^6.26.0" + lodash "^4.17.4" + +babel-helper-remap-async-to-generator@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz#5ec581827ad723fecdd381f1c928390676e4551b" + dependencies: + babel-helper-function-name "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helper-replace-supers@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz#bf6dbfe43938d17369a213ca8a8bf74b6a90ab1a" + dependencies: + babel-helper-optimise-call-expression "^6.24.1" + babel-messages "^6.23.0" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helpers@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2" + dependencies: + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-loader@^7.1.2: + version "7.1.2" + resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-7.1.2.tgz#f6cbe122710f1aa2af4d881c6d5b54358ca24126" + dependencies: + find-cache-dir "^1.0.0" + loader-utils "^1.0.2" + mkdirp "^0.5.1" + +babel-messages@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-add-module-exports@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/babel-plugin-add-module-exports/-/babel-plugin-add-module-exports-0.2.1.tgz#9ae9a1f4a8dc67f0cdec4f4aeda1e43a5ff65e25" + +babel-plugin-check-es2015-constants@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz#35157b101426fd2ffd3da3f75c7d1e91835bbf8a" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-syntax-async-functions@^6.8.0: + version "6.13.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz#cad9cad1191b5ad634bf30ae0872391e0647be95" + +babel-plugin-syntax-exponentiation-operator@^6.8.0: + version "6.13.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz#9ee7e8337290da95288201a6a57f4170317830de" + +babel-plugin-syntax-flow@^6.18.0: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-flow/-/babel-plugin-syntax-flow-6.18.0.tgz#4c3ab20a2af26aa20cd25995c398c4eb70310c8d" + +babel-plugin-syntax-jsx@^6.3.13, babel-plugin-syntax-jsx@^6.8.0: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz#0af32a9a6e13ca7a3fd5069e62d7b0f58d0d8946" + +babel-plugin-syntax-trailing-function-commas@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz#ba0360937f8d06e40180a43fe0d5616fff532cf3" + +babel-plugin-transform-async-to-generator@^6.22.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz#6536e378aff6cb1d5517ac0e40eb3e9fc8d08761" + dependencies: + babel-helper-remap-async-to-generator "^6.24.1" + babel-plugin-syntax-async-functions "^6.8.0" + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-arrow-functions@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz#452692cb711d5f79dc7f85e440ce41b9f244d221" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-block-scoped-functions@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz#bbc51b49f964d70cb8d8e0b94e820246ce3a6141" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-block-scoping@^6.23.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz#d70f5299c1308d05c12f463813b0a09e73b1895f" + dependencies: + babel-runtime "^6.26.0" + babel-template "^6.26.0" + babel-traverse "^6.26.0" + babel-types "^6.26.0" + lodash "^4.17.4" + +babel-plugin-transform-es2015-classes@^6.23.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz#5a4c58a50c9c9461e564b4b2a3bfabc97a2584db" + dependencies: + babel-helper-define-map "^6.24.1" + babel-helper-function-name "^6.24.1" + babel-helper-optimise-call-expression "^6.24.1" + babel-helper-replace-supers "^6.24.1" + babel-messages "^6.23.0" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-computed-properties@^6.22.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz#6fe2a8d16895d5634f4cd999b6d3480a308159b3" + dependencies: + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-plugin-transform-es2015-destructuring@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz#997bb1f1ab967f682d2b0876fe358d60e765c56d" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-duplicate-keys@^6.22.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz#73eb3d310ca969e3ef9ec91c53741a6f1576423e" + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-for-of@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz#f47c95b2b613df1d3ecc2fdb7573623c75248691" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-function-name@^6.22.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz#834c89853bc36b1af0f3a4c5dbaa94fd8eacaa8b" + dependencies: + babel-helper-function-name "^6.24.1" + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-literals@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz#4f54a02d6cd66cf915280019a31d31925377ca2e" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-modules-amd@^6.22.0, babel-plugin-transform-es2015-modules-amd@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz#3b3e54017239842d6d19c3011c4bd2f00a00d154" + dependencies: + babel-plugin-transform-es2015-modules-commonjs "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-plugin-transform-es2015-modules-commonjs@^6.23.0, babel-plugin-transform-es2015-modules-commonjs@^6.24.1: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.0.tgz#0d8394029b7dc6abe1a97ef181e00758dd2e5d8a" + dependencies: + babel-plugin-transform-strict-mode "^6.24.1" + babel-runtime "^6.26.0" + babel-template "^6.26.0" + babel-types "^6.26.0" + +babel-plugin-transform-es2015-modules-systemjs@^6.23.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz#ff89a142b9119a906195f5f106ecf305d9407d23" + dependencies: + babel-helper-hoist-variables "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-plugin-transform-es2015-modules-umd@^6.23.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz#ac997e6285cd18ed6176adb607d602344ad38468" + dependencies: + babel-plugin-transform-es2015-modules-amd "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-plugin-transform-es2015-object-super@^6.22.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz#24cef69ae21cb83a7f8603dad021f572eb278f8d" + dependencies: + babel-helper-replace-supers "^6.24.1" + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-parameters@^6.23.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz#57ac351ab49caf14a97cd13b09f66fdf0a625f2b" + dependencies: + babel-helper-call-delegate "^6.24.1" + babel-helper-get-function-arity "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-shorthand-properties@^6.22.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz#24f875d6721c87661bbd99a4622e51f14de38aa0" + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-spread@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz#d6d68a99f89aedc4536c81a542e8dd9f1746f8d1" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-sticky-regex@^6.22.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz#00c1cdb1aca71112cdf0cf6126c2ed6b457ccdbc" + dependencies: + babel-helper-regex "^6.24.1" + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-template-literals@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz#a84b3450f7e9f8f1f6839d6d687da84bb1236d8d" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-typeof-symbol@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz#dec09f1cddff94b52ac73d505c84df59dcceb372" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-unicode-regex@^6.22.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz#d38b12f42ea7323f729387f18a7c5ae1faeb35e9" + dependencies: + babel-helper-regex "^6.24.1" + babel-runtime "^6.22.0" + regexpu-core "^2.0.0" + +babel-plugin-transform-exponentiation-operator@^6.22.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz#2ab0c9c7f3098fa48907772bb813fe41e8de3a0e" + dependencies: + babel-helper-builder-binary-assignment-operator-visitor "^6.24.1" + babel-plugin-syntax-exponentiation-operator "^6.8.0" + babel-runtime "^6.22.0" + +babel-plugin-transform-flow-strip-types@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.22.0.tgz#84cb672935d43714fdc32bce84568d87441cf7cf" + dependencies: + babel-plugin-syntax-flow "^6.18.0" + babel-runtime "^6.22.0" + +babel-plugin-transform-react-display-name@^6.23.0: + version "6.25.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-display-name/-/babel-plugin-transform-react-display-name-6.25.0.tgz#67e2bf1f1e9c93ab08db96792e05392bf2cc28d1" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-react-jsx-self@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-jsx-self/-/babel-plugin-transform-react-jsx-self-6.22.0.tgz#df6d80a9da2612a121e6ddd7558bcbecf06e636e" + dependencies: + babel-plugin-syntax-jsx "^6.8.0" + babel-runtime "^6.22.0" + +babel-plugin-transform-react-jsx-source@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-jsx-source/-/babel-plugin-transform-react-jsx-source-6.22.0.tgz#66ac12153f5cd2d17b3c19268f4bf0197f44ecd6" + dependencies: + babel-plugin-syntax-jsx "^6.8.0" + babel-runtime "^6.22.0" + +babel-plugin-transform-react-jsx@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.24.1.tgz#840a028e7df460dfc3a2d29f0c0d91f6376e66a3" + dependencies: + babel-helper-builder-react-jsx "^6.24.1" + babel-plugin-syntax-jsx "^6.8.0" + babel-runtime "^6.22.0" + +babel-plugin-transform-regenerator@^6.22.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz#e0703696fbde27f0a3efcacf8b4dca2f7b3a8f2f" + dependencies: + regenerator-transform "^0.10.0" + +babel-plugin-transform-strict-mode@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz#d5faf7aa578a65bbe591cf5edae04a0c67020758" + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-preset-env@^1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/babel-preset-env/-/babel-preset-env-1.6.1.tgz#a18b564cc9b9afdf4aae57ae3c1b0d99188e6f48" + dependencies: + babel-plugin-check-es2015-constants "^6.22.0" + babel-plugin-syntax-trailing-function-commas "^6.22.0" + babel-plugin-transform-async-to-generator "^6.22.0" + babel-plugin-transform-es2015-arrow-functions "^6.22.0" + babel-plugin-transform-es2015-block-scoped-functions "^6.22.0" + babel-plugin-transform-es2015-block-scoping "^6.23.0" + babel-plugin-transform-es2015-classes "^6.23.0" + babel-plugin-transform-es2015-computed-properties "^6.22.0" + babel-plugin-transform-es2015-destructuring "^6.23.0" + babel-plugin-transform-es2015-duplicate-keys "^6.22.0" + babel-plugin-transform-es2015-for-of "^6.23.0" + babel-plugin-transform-es2015-function-name "^6.22.0" + babel-plugin-transform-es2015-literals "^6.22.0" + babel-plugin-transform-es2015-modules-amd "^6.22.0" + babel-plugin-transform-es2015-modules-commonjs "^6.23.0" + babel-plugin-transform-es2015-modules-systemjs "^6.23.0" + babel-plugin-transform-es2015-modules-umd "^6.23.0" + babel-plugin-transform-es2015-object-super "^6.22.0" + babel-plugin-transform-es2015-parameters "^6.23.0" + babel-plugin-transform-es2015-shorthand-properties "^6.22.0" + babel-plugin-transform-es2015-spread "^6.22.0" + babel-plugin-transform-es2015-sticky-regex "^6.22.0" + babel-plugin-transform-es2015-template-literals "^6.22.0" + babel-plugin-transform-es2015-typeof-symbol "^6.23.0" + babel-plugin-transform-es2015-unicode-regex "^6.22.0" + babel-plugin-transform-exponentiation-operator "^6.22.0" + babel-plugin-transform-regenerator "^6.22.0" + browserslist "^2.1.2" + invariant "^2.2.2" + semver "^5.3.0" + +babel-preset-flow@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-preset-flow/-/babel-preset-flow-6.23.0.tgz#e71218887085ae9a24b5be4169affb599816c49d" + dependencies: + babel-plugin-transform-flow-strip-types "^6.22.0" + +babel-preset-react@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-preset-react/-/babel-preset-react-6.24.1.tgz#ba69dfaea45fc3ec639b6a4ecea6e17702c91380" + dependencies: + babel-plugin-syntax-jsx "^6.3.13" + babel-plugin-transform-react-display-name "^6.23.0" + babel-plugin-transform-react-jsx "^6.24.1" + babel-plugin-transform-react-jsx-self "^6.22.0" + babel-plugin-transform-react-jsx-source "^6.22.0" + babel-preset-flow "^6.23.0" + +babel-register@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.26.0.tgz#6ed021173e2fcb486d7acb45c6009a856f647071" + dependencies: + babel-core "^6.26.0" + babel-runtime "^6.26.0" + core-js "^2.5.0" + home-or-tmp "^2.0.0" + lodash "^4.17.4" + mkdirp "^0.5.1" + source-map-support "^0.4.15" + +babel-runtime@^6.18.0, babel-runtime@^6.22.0, babel-runtime@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" + dependencies: + core-js "^2.4.0" + regenerator-runtime "^0.11.0" + +babel-template@^6.24.1, babel-template@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02" + dependencies: + babel-runtime "^6.26.0" + babel-traverse "^6.26.0" + babel-types "^6.26.0" + babylon "^6.18.0" + lodash "^4.17.4" + +babel-traverse@^6.24.1, babel-traverse@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee" + dependencies: + babel-code-frame "^6.26.0" + babel-messages "^6.23.0" + babel-runtime "^6.26.0" + babel-types "^6.26.0" + babylon "^6.18.0" + debug "^2.6.8" + globals "^9.18.0" + invariant "^2.2.2" + lodash "^4.17.4" + +babel-types@^6.19.0, babel-types@^6.24.1, babel-types@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" + dependencies: + babel-runtime "^6.26.0" + esutils "^2.0.2" + lodash "^4.17.4" + to-fast-properties "^1.0.3" + +babylon@^6.18.0: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" + +balanced-match@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" + +base64-js@^1.0.2: + version "1.2.1" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.2.1.tgz#a91947da1f4a516ea38e5b4ec0ec3773675e0886" + +bcrypt-pbkdf@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz#63bc5dcb61331b92bc05fd528953c33462a06f8d" + dependencies: + tweetnacl "^0.14.3" + +big.js@^3.1.3: + version "3.2.0" + resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.2.0.tgz#a5fc298b81b9e0dca2e458824784b65c52ba588e" + +binary-extensions@^1.0.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.10.0.tgz#9aeb9a6c5e88638aad171e167f5900abe24835d0" + +block-stream@*: + version "0.0.9" + resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a" + dependencies: + inherits "~2.0.0" + +bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0: + version "4.11.8" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" + +boom@2.x.x: + version "2.10.1" + resolved "https://registry.yarnpkg.com/boom/-/boom-2.10.1.tgz#39c8918ceff5799f83f9492a848f625add0c766f" + dependencies: + hoek "2.x.x" + +brace-expansion@^1.1.7: + version "1.1.8" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.8.tgz#c07b211c7c952ec1f8efd51a77ef0d1d3990a292" + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +braces@^1.8.2: + version "1.8.5" + resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7" + dependencies: + expand-range "^1.8.1" + preserve "^0.2.0" + repeat-element "^1.1.2" + +brorand@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" + +browserify-aes@^1.0.0, browserify-aes@^1.0.4: + version "1.1.1" + resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.1.1.tgz#38b7ab55edb806ff2dcda1a7f1620773a477c49f" + dependencies: + buffer-xor "^1.0.3" + cipher-base "^1.0.0" + create-hash "^1.1.0" + evp_bytestokey "^1.0.3" + inherits "^2.0.1" + safe-buffer "^5.0.1" + +browserify-cipher@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.0.tgz#9988244874bf5ed4e28da95666dcd66ac8fc363a" + dependencies: + browserify-aes "^1.0.4" + browserify-des "^1.0.0" + evp_bytestokey "^1.0.0" + +browserify-des@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.0.tgz#daa277717470922ed2fe18594118a175439721dd" + dependencies: + cipher-base "^1.0.1" + des.js "^1.0.0" + inherits "^2.0.1" + +browserify-rsa@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524" + dependencies: + bn.js "^4.1.0" + randombytes "^2.0.1" + +browserify-sign@^4.0.0: + version "4.0.4" + resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.0.4.tgz#aa4eb68e5d7b658baa6bf6a57e630cbd7a93d298" + dependencies: + bn.js "^4.1.1" + browserify-rsa "^4.0.0" + create-hash "^1.1.0" + create-hmac "^1.1.2" + elliptic "^6.0.0" + inherits "^2.0.1" + parse-asn1 "^5.0.0" + +browserify-zlib@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" + dependencies: + pako "~1.0.5" + +browserslist@^2.1.2: + version "2.9.0" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-2.9.0.tgz#706aca15c53be15610f466e348cbfa0c00a6a379" + dependencies: + caniuse-lite "^1.0.30000760" + electron-to-chromium "^1.3.27" + +buffer-xor@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" + +buffer@^4.3.0: + version "4.9.1" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.1.tgz#6d1bb601b07a4efced97094132093027c95bc298" + dependencies: + base64-js "^1.0.2" + ieee754 "^1.1.4" + isarray "^1.0.0" + +builtin-modules@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" + +builtin-status-codes@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" + +camelcase@^1.0.2: + version "1.2.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39" + +camelcase@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" + +caniuse-lite@^1.0.30000760: + version "1.0.30000765" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000765.tgz#aa1a75019276b48463c0fca2a5257fb9f26a7c9d" + +caseless@~0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" + +center-align@^0.1.1: + version "0.1.3" + resolved "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad" + dependencies: + align-text "^0.1.3" + lazy-cache "^1.0.3" + +chalk@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" + dependencies: + 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" + +chokidar@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.7.0.tgz#798e689778151c8076b4b360e5edd28cda2bb468" + dependencies: + anymatch "^1.3.0" + async-each "^1.0.0" + glob-parent "^2.0.0" + inherits "^2.0.1" + is-binary-path "^1.0.0" + is-glob "^2.0.0" + path-is-absolute "^1.0.0" + readdirp "^2.0.0" + optionalDependencies: + fsevents "^1.0.0" + +cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +cliui@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1" + dependencies: + center-align "^0.1.1" + right-align "^0.1.1" + wordwrap "0.0.2" + +cliui@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d" + dependencies: + string-width "^1.0.1" + strip-ansi "^3.0.1" + wrap-ansi "^2.0.0" + +co@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" + +code-point-at@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" + +combined-stream@^1.0.5, combined-stream@~1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.5.tgz#938370a57b4a51dea2c77c15d5c5fdf895164009" + dependencies: + delayed-stream "~1.0.0" + +commondir@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + +console-browserify@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10" + dependencies: + date-now "^0.1.4" + +console-control-strings@^1.0.0, console-control-strings@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" + +constants-browserify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" + +convert-source-map@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.0.tgz#9acd70851c6d5dfdd93d9282e5edf94a03ff46b5" + +core-js@^1.0.0: + version "1.2.7" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636" + +core-js@^2.4.0, core-js@^2.5.0: + version "2.5.1" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.1.tgz#ae6874dc66937789b80754ff5428df66819ca50b" + +core-util-is@1.0.2, core-util-is@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + +create-ecdh@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.0.tgz#888c723596cdf7612f6498233eebd7a35301737d" + dependencies: + bn.js "^4.1.0" + elliptic "^6.0.0" + +create-hash@^1.1.0, create-hash@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.1.3.tgz#606042ac8b9262750f483caddab0f5819172d8fd" + dependencies: + cipher-base "^1.0.1" + inherits "^2.0.1" + ripemd160 "^2.0.0" + sha.js "^2.4.0" + +create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4: + version "1.1.6" + resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.6.tgz#acb9e221a4e17bdb076e90657c42b93e3726cf06" + dependencies: + 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@^5.0.1: + version "5.1.0" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" + dependencies: + lru-cache "^4.0.1" + shebang-command "^1.2.0" + which "^1.2.9" + +cryptiles@2.x.x: + version "2.0.5" + resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-2.0.5.tgz#3bdfecdc608147c1c67202fa291e7dca59eaa3b8" + dependencies: + boom "2.x.x" + +crypto-browserify@^3.11.0: + version "3.12.0" + resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" + dependencies: + 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" + +d@1: + version "1.0.0" + resolved "https://registry.yarnpkg.com/d/-/d-1.0.0.tgz#754bb5bfe55451da69a58b94d45f4c5b0462d58f" + dependencies: + es5-ext "^0.10.9" + +dashdash@^1.12.0: + version "1.14.1" + resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" + dependencies: + assert-plus "^1.0.0" + +date-now@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b" + +debug@^2.2.0, debug@^2.6.8: + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + dependencies: + ms "2.0.0" + +decamelize@^1.0.0, decamelize@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + +deep-extend@~0.4.0: + version "0.4.2" + resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.4.2.tgz#48b699c27e334bf89f10892be432f6e4c7d34a7f" + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + +delegates@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" + +des.js@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.0.tgz#c074d2e2aa6a8a9a07dbd61f9a15c2cd83ec8ecc" + dependencies: + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + +detect-indent@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208" + dependencies: + repeating "^2.0.0" + +detect-libc@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.2.tgz#71ad5d204bf17a6a6ca8f450c61454066ef461e1" + +diffie-hellman@^5.0.0: + version "5.0.2" + resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.2.tgz#b5835739270cfe26acf632099fded2a07f209e5e" + dependencies: + bn.js "^4.1.0" + miller-rabin "^4.0.0" + randombytes "^2.0.0" + +domain-browser@^1.1.1: + version "1.1.7" + resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.1.7.tgz#867aa4b093faa05f1de08c06f4d7b21fdf8698bc" + +ecc-jsbn@~0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505" + dependencies: + jsbn "~0.1.0" + +electron-to-chromium@^1.3.27: + version "1.3.27" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.27.tgz#78ecb8a399066187bb374eede35d9c70565a803d" + +elliptic@^6.0.0: + version "6.4.0" + resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.4.0.tgz#cac9af8762c85836187003c8dfe193e5e2eae5df" + dependencies: + 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" + +emojis-list@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" + +encoding@^0.1.11: + version "0.1.12" + resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.12.tgz#538b66f3ee62cd1ab51ec323829d1f9480c74beb" + dependencies: + iconv-lite "~0.4.13" + +enhanced-resolve@^3.4.0: + version "3.4.1" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz#0421e339fd71419b3da13d129b3979040230476e" + dependencies: + graceful-fs "^4.1.2" + memory-fs "^0.4.0" + object-assign "^4.0.1" + tapable "^0.2.7" + +errno@^0.1.3: + version "0.1.4" + resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.4.tgz#b896e23a9e5e8ba33871fc996abd3635fc9a1c7d" + dependencies: + prr "~0.0.0" + +error-ex@^1.2.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.1.tgz#f855a86ce61adc4e8621c3cda21e7a7612c3a8dc" + dependencies: + is-arrayish "^0.2.1" + +es5-ext@^0.10.14, es5-ext@^0.10.35, es5-ext@^0.10.9, es5-ext@~0.10.14: + version "0.10.35" + resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.35.tgz#18ee858ce6a3c45c7d79e91c15fcca9ec568494f" + dependencies: + es6-iterator "~2.0.1" + es6-symbol "~3.1.1" + +es6-iterator@^2.0.1, es6-iterator@~2.0.1: + version "2.0.3" + resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" + dependencies: + d "1" + es5-ext "^0.10.35" + es6-symbol "^3.1.1" + +es6-map@^0.1.3: + version "0.1.5" + resolved "https://registry.yarnpkg.com/es6-map/-/es6-map-0.1.5.tgz#9136e0503dcc06a301690f0bb14ff4e364e949f0" + dependencies: + d "1" + es5-ext "~0.10.14" + es6-iterator "~2.0.1" + es6-set "~0.1.5" + es6-symbol "~3.1.1" + event-emitter "~0.3.5" + +es6-set@~0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/es6-set/-/es6-set-0.1.5.tgz#d2b3ec5d4d800ced818db538d28974db0a73ccb1" + dependencies: + d "1" + es5-ext "~0.10.14" + es6-iterator "~2.0.1" + es6-symbol "3.1.1" + event-emitter "~0.3.5" + +es6-symbol@3.1.1, es6-symbol@^3.1.1, es6-symbol@~3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.1.tgz#bf00ef4fdab6ba1b46ecb7b629b4c7ed5715cc77" + dependencies: + d "1" + es5-ext "~0.10.14" + +es6-weak-map@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.2.tgz#5e3ab32251ffd1538a1f8e5ffa1357772f92d96f" + dependencies: + d "1" + es5-ext "^0.10.14" + es6-iterator "^2.0.1" + es6-symbol "^3.1.1" + +escape-string-regexp@^1.0.2: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + +escope@^3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/escope/-/escope-3.6.0.tgz#e01975e812781a163a6dadfdd80398dc64c889c3" + dependencies: + es6-map "^0.1.3" + es6-weak-map "^2.0.1" + esrecurse "^4.1.0" + estraverse "^4.1.1" + +esrecurse@^4.1.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.0.tgz#fa9568d98d3823f9a41d91e902dcab9ea6e5b163" + dependencies: + estraverse "^4.1.0" + object-assign "^4.0.1" + +estraverse@^4.1.0, estraverse@^4.1.1: + version "4.2.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" + +esutils@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" + +event-emitter@~0.3.5: + version "0.3.5" + resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39" + dependencies: + d "1" + es5-ext "~0.10.14" + +events@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924" + +evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" + dependencies: + md5.js "^1.3.4" + safe-buffer "^5.1.1" + +execa@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" + dependencies: + cross-spawn "^5.0.1" + get-stream "^3.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + +expand-brackets@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" + dependencies: + is-posix-bracket "^0.1.0" + +expand-range@^1.8.1: + version "1.8.2" + resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337" + dependencies: + fill-range "^2.1.0" + +expose-loader@^0.7.3: + version "0.7.3" + resolved "https://registry.yarnpkg.com/expose-loader/-/expose-loader-0.7.3.tgz#35fbd3659789e4faa81f59de8b7e9fc39e466d51" + +extend@~3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444" + +extglob@^0.3.1: + version "0.3.2" + resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1" + dependencies: + is-extglob "^1.0.0" + +extsprintf@1.3.0, extsprintf@^1.2.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" + +fast-deep-equal@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz#96256a3bc975595eb36d82e9929d060d893439ff" + +fast-json-stable-stringify@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" + +fbjs@^0.8.16: + version "0.8.16" + resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.16.tgz#5e67432f550dc41b572bf55847b8aca64e5337db" + dependencies: + core-js "^1.0.0" + isomorphic-fetch "^2.1.1" + loose-envify "^1.0.0" + object-assign "^4.1.0" + promise "^7.1.1" + setimmediate "^1.0.5" + ua-parser-js "^0.7.9" + +filename-regex@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26" + +fill-range@^2.1.0: + version "2.2.3" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.3.tgz#50b77dfd7e469bc7492470963699fe7a8485a723" + dependencies: + is-number "^2.1.0" + isobject "^2.0.0" + randomatic "^1.1.3" + repeat-element "^1.1.2" + repeat-string "^1.5.2" + +find-cache-dir@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-1.0.0.tgz#9288e3e9e3cc3748717d39eade17cf71fc30ee6f" + dependencies: + commondir "^1.0.1" + make-dir "^1.0.0" + pkg-dir "^2.0.0" + +find-up@^2.0.0, find-up@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" + dependencies: + locate-path "^2.0.0" + +for-in@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" + +for-own@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce" + dependencies: + for-in "^1.0.1" + +forever-agent@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" + +form-data@~2.1.1: + version "2.1.4" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.1.4.tgz#33c183acf193276ecaa98143a69e94bfee1750d1" + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.5" + mime-types "^2.1.12" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + +fsevents@^1.0.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.1.3.tgz#11f82318f5fe7bb2cd22965a108e9306208216d8" + dependencies: + nan "^2.3.0" + node-pre-gyp "^0.6.39" + +fstream-ignore@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/fstream-ignore/-/fstream-ignore-1.0.5.tgz#9c31dae34767018fe1d249b24dada67d092da105" + dependencies: + fstream "^1.0.0" + inherits "2" + minimatch "^3.0.0" + +fstream@^1.0.0, fstream@^1.0.10, fstream@^1.0.2: + version "1.0.11" + resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.11.tgz#5c1fb1f117477114f0632a0eb4b71b3cb0fd3171" + dependencies: + graceful-fs "^4.1.2" + inherits "~2.0.0" + mkdirp ">=0.5 0" + rimraf "2" + +gauge@~2.7.3: + version "2.7.4" + resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" + dependencies: + 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" + +get-caller-file@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.2.tgz#f702e63127e7e231c160a80c1554acb70d5047e5" + +get-stream@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" + +getpass@^0.1.1: + version "0.1.7" + resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" + dependencies: + assert-plus "^1.0.0" + +glob-base@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" + dependencies: + glob-parent "^2.0.0" + is-glob "^2.0.0" + +glob-parent@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28" + dependencies: + is-glob "^2.0.0" + +glob@^7.0.5: + version "7.1.2" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" + dependencies: + 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" + +globals@^9.18.0: + version "9.18.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" + +graceful-fs@^4.1.2: + version "4.1.11" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" + +har-schema@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-1.0.5.tgz#d263135f43307c02c602afc8fe95970c0151369e" + +har-validator@~4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-4.2.1.tgz#33481d0f1bbff600dd203d75812a6a5fba002e2a" + dependencies: + ajv "^4.9.1" + har-schema "^1.0.5" + +has-ansi@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" + dependencies: + ansi-regex "^2.0.0" + +has-flag@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51" + +has-unicode@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" + +hash-base@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-2.0.2.tgz#66ea1d856db4e8a5470cadf6fce23ae5244ef2e1" + dependencies: + inherits "^2.0.1" + +hash-base@^3.0.0: + version "3.0.4" + resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.0.4.tgz#5fc8686847ecd73499403319a6b0a3f3f6ae4918" + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +hash.js@^1.0.0, hash.js@^1.0.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.3.tgz#340dedbe6290187151c1ea1d777a3448935df846" + dependencies: + inherits "^2.0.3" + minimalistic-assert "^1.0.0" + +hawk@3.1.3, hawk@~3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/hawk/-/hawk-3.1.3.tgz#078444bd7c1640b0fe540d2c9b73d59678e8e1c4" + dependencies: + boom "2.x.x" + cryptiles "2.x.x" + hoek "2.x.x" + sntp "1.x.x" + +history@^4.7.2: + version "4.7.2" + resolved "https://registry.yarnpkg.com/history/-/history-4.7.2.tgz#22b5c7f31633c5b8021c7f4a8a954ac139ee8d5b" + dependencies: + invariant "^2.2.1" + loose-envify "^1.2.0" + resolve-pathname "^2.2.0" + value-equal "^0.4.0" + warning "^3.0.0" + +hmac-drbg@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" + dependencies: + hash.js "^1.0.3" + minimalistic-assert "^1.0.0" + minimalistic-crypto-utils "^1.0.1" + +hoek@2.x.x: + version "2.16.3" + resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed" + +hoist-non-react-statics@^2.3.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-2.3.1.tgz#343db84c6018c650778898240135a1420ee22ce0" + +home-or-tmp@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8" + dependencies: + os-homedir "^1.0.0" + os-tmpdir "^1.0.1" + +hosted-git-info@^2.1.4: + version "2.5.0" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.5.0.tgz#6d60e34b3abbc8313062c3b798ef8d901a07af3c" + +http-signature@~1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.1.1.tgz#df72e267066cd0ac67fb76adf8e134a8fbcf91bf" + dependencies: + assert-plus "^0.2.0" + jsprim "^1.2.2" + sshpk "^1.7.0" + +https-browserify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" + +iconv-lite@~0.4.13: + version "0.4.19" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b" + +ieee754@^1.1.4: + version "1.1.8" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.8.tgz#be33d40ac10ef1926701f6f08a2d86fbfd1ad3e4" + +indexof@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + +inherits@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" + +ini@~1.3.0: + version "1.3.4" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.4.tgz#0537cb79daf59b59a1a517dff706c86ec039162e" + +interpret@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.0.4.tgz#820cdd588b868ffb191a809506d6c9c8f212b1b0" + +invariant@^2.2.1, invariant@^2.2.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.2.tgz#9e1f56ac0acdb6bf303306f338be3b204ae60360" + dependencies: + loose-envify "^1.0.0" + +invert-kv@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + +is-binary-path@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" + dependencies: + binary-extensions "^1.0.0" + +is-buffer@^1.1.5: + version "1.1.6" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" + +is-builtin-module@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe" + dependencies: + builtin-modules "^1.0.0" + +is-dotfile@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1" + +is-equal-shallow@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534" + dependencies: + is-primitive "^2.0.0" + +is-extendable@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" + +is-extglob@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" + +is-finite@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa" + dependencies: + number-is-nan "^1.0.0" + +is-fullwidth-code-point@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" + dependencies: + number-is-nan "^1.0.0" + +is-fullwidth-code-point@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" + +is-glob@^2.0.0, is-glob@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" + dependencies: + is-extglob "^1.0.0" + +is-number@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" + dependencies: + kind-of "^3.0.2" + +is-number@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" + dependencies: + kind-of "^3.0.2" + +is-posix-bracket@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4" + +is-primitive@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" + +is-stream@^1.0.1, is-stream@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" + +is-typedarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + +isarray@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" + +isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + +isobject@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" + dependencies: + isarray "1.0.0" + +isomorphic-fetch@^2.1.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz#611ae1acf14f5e81f729507472819fe9733558a9" + dependencies: + node-fetch "^1.0.1" + whatwg-fetch ">=0.10.0" + +isstream@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" + +js-tokens@^3.0.0, js-tokens@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" + +jsbn@~0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" + +jsesc@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" + +jsesc@~0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" + +json-loader@^0.5.4: + version "0.5.7" + resolved "https://registry.yarnpkg.com/json-loader/-/json-loader-0.5.7.tgz#dca14a70235ff82f0ac9a3abeb60d337a365185d" + +json-schema-traverse@^0.3.0: + version "0.3.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340" + +json-schema@0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" + +json-stable-stringify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" + dependencies: + jsonify "~0.0.0" + +json-stringify-safe@~5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + +json5@^0.5.0, json5@^0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" + +jsonify@~0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" + +jsprim@^1.2.2: + version "1.4.1" + resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" + dependencies: + assert-plus "1.0.0" + extsprintf "1.3.0" + json-schema "0.2.3" + verror "1.10.0" + +kind-of@^3.0.2: + version "3.2.2" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" + dependencies: + is-buffer "^1.1.5" + +kind-of@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" + dependencies: + is-buffer "^1.1.5" + +lazy-cache@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" + +lcid@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" + dependencies: + invert-kv "^1.0.0" + +load-json-file@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8" + dependencies: + graceful-fs "^4.1.2" + parse-json "^2.2.0" + pify "^2.0.0" + strip-bom "^3.0.0" + +loader-runner@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.3.0.tgz#f482aea82d543e07921700d5a46ef26fdac6b8a2" + +loader-utils@^1.0.2, loader-utils@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.1.0.tgz#c98aef488bcceda2ffb5e2de646d6a754429f5cd" + dependencies: + big.js "^3.1.3" + emojis-list "^2.0.0" + json5 "^0.5.0" + +locate-path@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" + dependencies: + p-locate "^2.0.0" + path-exists "^3.0.0" + +lodash@^4.14.0, lodash@^4.17.4: + version "4.17.4" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" + +longest@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" + +loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.2.0, loose-envify@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848" + dependencies: + js-tokens "^3.0.0" + +lru-cache@^4.0.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.1.tgz#622e32e82488b49279114a4f9ecf45e7cd6bba55" + dependencies: + pseudomap "^1.0.2" + yallist "^2.1.2" + +make-dir@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.1.0.tgz#19b4369fe48c116f53c2af95ad102c0e39e85d51" + dependencies: + pify "^3.0.0" + +md5.js@^1.3.4: + version "1.3.4" + resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.4.tgz#e9bdbde94a20a5ac18b04340fc5764d5b09d901d" + dependencies: + hash-base "^3.0.0" + inherits "^2.0.1" + +mem@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/mem/-/mem-1.1.0.tgz#5edd52b485ca1d900fe64895505399a0dfa45f76" + dependencies: + mimic-fn "^1.0.0" + +memory-fs@^0.4.0, memory-fs@~0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" + dependencies: + errno "^0.1.3" + readable-stream "^2.0.1" + +micromatch@^2.1.5: + version "2.3.11" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" + dependencies: + arr-diff "^2.0.0" + array-unique "^0.2.1" + braces "^1.8.2" + expand-brackets "^0.1.4" + extglob "^0.3.1" + filename-regex "^2.0.0" + is-extglob "^1.0.0" + is-glob "^2.0.1" + kind-of "^3.0.2" + normalize-path "^2.0.1" + object.omit "^2.0.0" + parse-glob "^3.0.4" + regex-cache "^0.4.2" + +miller-rabin@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" + dependencies: + bn.js "^4.0.0" + brorand "^1.0.1" + +mime-db@~1.30.0: + version "1.30.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.30.0.tgz#74c643da2dd9d6a45399963465b26d5ca7d71f01" + +mime-types@^2.1.12, mime-types@~2.1.7: + version "2.1.17" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.17.tgz#09d7a393f03e995a79f8af857b70a9e0ab16557a" + dependencies: + mime-db "~1.30.0" + +mimic-fn@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.1.0.tgz#e667783d92e89dbd342818b5230b9d62a672ad18" + +minimalistic-assert@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz#702be2dda6b37f4836bcb3f5db56641b64a1d3d3" + +minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" + +minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + dependencies: + brace-expansion "^1.1.7" + +minimist@0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" + +minimist@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" + +"mkdirp@>=0.5 0", mkdirp@^0.5.1, mkdirp@~0.5.0: + version "0.5.1" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" + dependencies: + minimist "0.0.8" + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + +nan@^2.3.0: + version "2.8.0" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.8.0.tgz#ed715f3fe9de02b57a5e6252d90a96675e1f085a" + +node-fetch@^1.0.1: + version "1.7.3" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.3.tgz#980f6f72d85211a5347c6b2bc18c5b84c3eb47ef" + dependencies: + encoding "^0.1.11" + is-stream "^1.0.1" + +node-libs-browser@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.1.0.tgz#5f94263d404f6e44767d726901fff05478d600df" + dependencies: + assert "^1.1.1" + browserify-zlib "^0.2.0" + buffer "^4.3.0" + console-browserify "^1.1.0" + constants-browserify "^1.0.0" + crypto-browserify "^3.11.0" + domain-browser "^1.1.1" + events "^1.0.0" + https-browserify "^1.0.0" + os-browserify "^0.3.0" + path-browserify "0.0.0" + process "^0.11.10" + punycode "^1.2.4" + querystring-es3 "^0.2.0" + readable-stream "^2.3.3" + stream-browserify "^2.0.1" + stream-http "^2.7.2" + string_decoder "^1.0.0" + timers-browserify "^2.0.4" + tty-browserify "0.0.0" + url "^0.11.0" + util "^0.10.3" + vm-browserify "0.0.4" + +node-pre-gyp@^0.6.39: + version "0.6.39" + resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.6.39.tgz#c00e96860b23c0e1420ac7befc5044e1d78d8649" + dependencies: + detect-libc "^1.0.2" + hawk "3.1.3" + mkdirp "^0.5.1" + nopt "^4.0.1" + npmlog "^4.0.2" + rc "^1.1.7" + request "2.81.0" + rimraf "^2.6.1" + semver "^5.3.0" + tar "^2.2.1" + tar-pack "^3.4.0" + +nopt@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" + dependencies: + abbrev "1" + osenv "^0.1.4" + +normalize-package-data@^2.3.2: + version "2.4.0" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.4.0.tgz#12f95a307d58352075a04907b84ac8be98ac012f" + dependencies: + hosted-git-info "^2.1.4" + is-builtin-module "^1.0.0" + semver "2 || 3 || 4 || 5" + validate-npm-package-license "^3.0.1" + +normalize-path@^2.0.0, normalize-path@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" + dependencies: + remove-trailing-separator "^1.0.1" + +npm-run-path@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" + dependencies: + path-key "^2.0.0" + +npmlog@^4.0.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" + dependencies: + are-we-there-yet "~1.1.2" + console-control-strings "~1.1.0" + gauge "~2.7.3" + set-blocking "~2.0.0" + +number-is-nan@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" + +oauth-sign@~0.8.1: + version "0.8.2" + resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43" + +object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + +object.omit@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" + dependencies: + for-own "^0.1.4" + is-extendable "^0.1.1" + +once@^1.3.0, once@^1.3.3: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + dependencies: + wrappy "1" + +os-browserify@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" + +os-homedir@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" + +os-locale@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-2.1.0.tgz#42bc2900a6b5b8bd17376c8e882b65afccf24bf2" + dependencies: + execa "^0.7.0" + lcid "^1.0.0" + mem "^1.1.0" + +os-tmpdir@^1.0.0, os-tmpdir@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" + +osenv@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.4.tgz#42fe6d5953df06c8064be6f176c3d05aaaa34644" + dependencies: + os-homedir "^1.0.0" + os-tmpdir "^1.0.0" + +p-finally@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" + +p-limit@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.1.0.tgz#b07ff2d9a5d88bec806035895a2bab66a27988bc" + +p-locate@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" + dependencies: + p-limit "^1.1.0" + +pako@~1.0.5: + version "1.0.6" + resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.6.tgz#0101211baa70c4bca4a0f63f2206e97b7dfaf258" + +parse-asn1@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.0.tgz#37c4f9b7ed3ab65c74817b5f2480937fbf97c712" + dependencies: + asn1.js "^4.0.0" + browserify-aes "^1.0.0" + create-hash "^1.1.0" + evp_bytestokey "^1.0.0" + pbkdf2 "^3.0.3" + +parse-glob@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" + dependencies: + glob-base "^0.3.0" + is-dotfile "^1.0.0" + is-extglob "^1.0.0" + is-glob "^2.0.0" + +parse-json@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" + dependencies: + error-ex "^1.2.0" + +path-browserify@0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.0.tgz#a0b870729aae214005b7d5032ec2cbbb0fb4451a" + +path-exists@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" + +path-is-absolute@^1.0.0, path-is-absolute@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + +path-key@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" + +path-to-regexp@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.7.0.tgz#59fde0f435badacba103a84e9d3bc64e96b9937d" + dependencies: + isarray "0.0.1" + +path-type@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73" + dependencies: + pify "^2.0.0" + +pbkdf2@^3.0.3: + version "3.0.14" + resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.14.tgz#a35e13c64799b06ce15320f459c230e68e73bade" + dependencies: + 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@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-0.2.0.tgz#33ef30c5c77d4ea21c5a53869d91b56d8f2555e5" + +pify@^2.0.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + +pify@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" + +pkg-dir@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b" + dependencies: + find-up "^2.1.0" + +preserve@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" + +private@^0.1.6, private@^0.1.7: + version "0.1.8" + resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" + +process-nextick-args@~1.0.6: + version "1.0.7" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" + +process@^0.11.10: + version "0.11.10" + resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" + +promise@^7.1.1: + version "7.3.1" + resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf" + dependencies: + asap "~2.0.3" + +prop-types@^15.5.4, prop-types@^15.6.0: + version "15.6.0" + resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.6.0.tgz#ceaf083022fc46b4a35f69e13ef75aed0d639856" + dependencies: + fbjs "^0.8.16" + loose-envify "^1.3.1" + object-assign "^4.1.1" + +prr@~0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/prr/-/prr-0.0.0.tgz#1a84b85908325501411853d0081ee3fa86e2926a" + +pseudomap@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" + +public-encrypt@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.0.tgz#39f699f3a46560dd5ebacbca693caf7c65c18cc6" + dependencies: + bn.js "^4.1.0" + browserify-rsa "^4.0.0" + create-hash "^1.1.0" + parse-asn1 "^5.0.0" + randombytes "^2.0.1" + +punycode@1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" + +punycode@^1.2.4, punycode@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" + +qs@~6.4.0: + version "6.4.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.4.0.tgz#13e26d28ad6b0ffaa91312cd3bf708ed351e7233" + +querystring-es3@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" + +querystring@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" + +randomatic@^1.1.3: + version "1.1.7" + resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-1.1.7.tgz#c7abe9cc8b87c0baa876b19fde83fd464797e38c" + dependencies: + is-number "^3.0.0" + kind-of "^4.0.0" + +randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.0.5.tgz#dc009a246b8d09a177b4b7a0ae77bc570f4b1b79" + dependencies: + safe-buffer "^5.1.0" + +randomfill@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.3.tgz#b96b7df587f01dd91726c418f30553b1418e3d62" + dependencies: + randombytes "^2.0.5" + safe-buffer "^5.1.0" + +rc@^1.1.7: + version "1.2.2" + resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.2.tgz#d8ce9cb57e8d64d9c7badd9876c7c34cbe3c7077" + dependencies: + deep-extend "~0.4.0" + ini "~1.3.0" + minimist "^1.2.0" + strip-json-comments "~2.0.1" + +react-dom@^16.1.1: + version "16.1.1" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.1.1.tgz#b2e331b6d752faf1a2d31399969399a41d8d45f8" + dependencies: + fbjs "^0.8.16" + loose-envify "^1.1.0" + object-assign "^4.1.1" + prop-types "^15.6.0" + +react-router-dom@^4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-4.2.2.tgz#c8a81df3adc58bba8a76782e946cbd4eae649b8d" + dependencies: + history "^4.7.2" + invariant "^2.2.2" + loose-envify "^1.3.1" + prop-types "^15.5.4" + react-router "^4.2.0" + warning "^3.0.0" + +react-router@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/react-router/-/react-router-4.2.0.tgz#61f7b3e3770daeb24062dae3eedef1b054155986" + dependencies: + history "^4.7.2" + hoist-non-react-statics "^2.3.0" + invariant "^2.2.2" + loose-envify "^1.3.1" + path-to-regexp "^1.7.0" + prop-types "^15.5.4" + warning "^3.0.0" + +react@^16.1.1: + version "16.1.1" + resolved "https://registry.yarnpkg.com/react/-/react-16.1.1.tgz#d5c4ef795507e3012282dd51261ff9c0e824fe1f" + dependencies: + fbjs "^0.8.16" + loose-envify "^1.1.0" + object-assign "^4.1.1" + prop-types "^15.6.0" + +read-pkg-up@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be" + dependencies: + find-up "^2.0.0" + read-pkg "^2.0.0" + +read-pkg@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8" + dependencies: + load-json-file "^2.0.0" + normalize-package-data "^2.3.2" + path-type "^2.0.0" + +readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.4, readable-stream@^2.2.6, readable-stream@^2.3.3: + version "2.3.3" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.3.tgz#368f2512d79f9d46fdfc71349ae7878bbc1eb95c" + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~1.0.6" + safe-buffer "~5.1.1" + string_decoder "~1.0.3" + util-deprecate "~1.0.1" + +readdirp@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.1.0.tgz#4ed0ad060df3073300c48440373f72d1cc642d78" + dependencies: + graceful-fs "^4.1.2" + minimatch "^3.0.2" + readable-stream "^2.0.2" + set-immediate-shim "^1.0.1" + +regenerate@^1.2.1: + version "1.3.3" + resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.3.3.tgz#0c336d3980553d755c39b586ae3b20aa49c82b7f" + +regenerator-runtime@^0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz#7e54fe5b5ccd5d6624ea6255c3473be090b802e1" + +regenerator-transform@^0.10.0: + version "0.10.1" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.10.1.tgz#1e4996837231da8b7f3cf4114d71b5691a0680dd" + dependencies: + babel-runtime "^6.18.0" + babel-types "^6.19.0" + private "^0.1.6" + +regex-cache@^0.4.2: + version "0.4.4" + resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.4.tgz#75bdc58a2a1496cec48a12835bc54c8d562336dd" + dependencies: + is-equal-shallow "^0.1.3" + +regexpu-core@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-2.0.0.tgz#49d038837b8dcf8bfa5b9a42139938e6ea2ae240" + dependencies: + regenerate "^1.2.1" + regjsgen "^0.2.0" + regjsparser "^0.1.4" + +regjsgen@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7" + +regjsparser@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.1.5.tgz#7ee8f84dc6fa792d3fd0ae228d24bd949ead205c" + dependencies: + jsesc "~0.5.0" + +remove-trailing-separator@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" + +repeat-element@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a" + +repeat-string@^1.5.2: + version "1.6.1" + resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" + +repeating@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" + dependencies: + is-finite "^1.0.0" + +request@2.81.0: + version "2.81.0" + resolved "https://registry.yarnpkg.com/request/-/request-2.81.0.tgz#c6928946a0e06c5f8d6f8a9333469ffda46298a0" + dependencies: + aws-sign2 "~0.6.0" + aws4 "^1.2.1" + caseless "~0.12.0" + combined-stream "~1.0.5" + extend "~3.0.0" + forever-agent "~0.6.1" + form-data "~2.1.1" + har-validator "~4.2.1" + hawk "~3.1.3" + http-signature "~1.1.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.7" + oauth-sign "~0.8.1" + performance-now "^0.2.0" + qs "~6.4.0" + safe-buffer "^5.0.1" + stringstream "~0.0.4" + tough-cookie "~2.3.0" + tunnel-agent "^0.6.0" + uuid "^3.0.0" + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + +require-main-filename@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" + +resolve-pathname@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/resolve-pathname/-/resolve-pathname-2.2.0.tgz#7e9ae21ed815fd63ab189adeee64dc831eefa879" + +right-align@^0.1.1: + version "0.1.3" + resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef" + dependencies: + align-text "^0.1.1" + +rimraf@2, rimraf@^2.5.1, rimraf@^2.6.1: + version "2.6.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36" + dependencies: + glob "^7.0.5" + +ripemd160@^2.0.0, ripemd160@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.1.tgz#0f4584295c53a3628af7e6d79aca21ce57d1c6e7" + dependencies: + hash-base "^2.0.0" + inherits "^2.0.1" + +safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" + +"semver@2 || 3 || 4 || 5", semver@^5.3.0: + version "5.4.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.4.1.tgz#e059c09d8571f0540823733433505d3a2f00b18e" + +set-blocking@^2.0.0, set-blocking@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + +set-immediate-shim@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61" + +setimmediate@^1.0.4, setimmediate@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" + +sha.js@^2.4.0, sha.js@^2.4.8: + version "2.4.9" + resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.9.tgz#98f64880474b74f4a38b8da9d3c0f2d104633e7d" + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +shebang-command@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" + dependencies: + shebang-regex "^1.0.0" + +shebang-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" + +signal-exit@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" + +slash@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" + +sntp@1.x.x: + version "1.0.9" + resolved "https://registry.yarnpkg.com/sntp/-/sntp-1.0.9.tgz#6541184cc90aeea6c6e7b35e2659082443c66198" + dependencies: + hoek "2.x.x" + +source-list-map@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.0.tgz#aaa47403f7b245a92fbc97ea08f250d6087ed085" + +source-map-support@^0.4.15: + version "0.4.18" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f" + dependencies: + source-map "^0.5.6" + +source-map@^0.5.3, source-map@^0.5.6, source-map@~0.5.1: + version "0.5.7" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" + +source-map@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + +spdx-correct@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-1.0.2.tgz#4b3073d933ff51f3912f03ac5519498a4150db40" + dependencies: + spdx-license-ids "^1.0.2" + +spdx-expression-parse@~1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz#9bdf2f20e1f40ed447fbe273266191fced51626c" + +spdx-license-ids@^1.0.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz#c9df7a3424594ade6bd11900d596696dc06bac57" + +sshpk@^1.7.0: + version "1.13.1" + resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.13.1.tgz#512df6da6287144316dc4c18fe1cf1d940739be3" + dependencies: + asn1 "~0.2.3" + assert-plus "^1.0.0" + dashdash "^1.12.0" + getpass "^0.1.1" + optionalDependencies: + bcrypt-pbkdf "^1.0.0" + ecc-jsbn "~0.1.1" + jsbn "~0.1.0" + tweetnacl "~0.14.0" + +stream-browserify@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.1.tgz#66266ee5f9bdb9940a4e4514cafb43bb71e5c9db" + dependencies: + inherits "~2.0.1" + readable-stream "^2.0.2" + +stream-http@^2.7.2: + version "2.7.2" + resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.7.2.tgz#40a050ec8dc3b53b33d9909415c02c0bf1abfbad" + dependencies: + builtin-status-codes "^3.0.0" + inherits "^2.0.1" + readable-stream "^2.2.6" + to-arraybuffer "^1.0.0" + xtend "^4.0.0" + +string-width@^1.0.1, string-width@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" + dependencies: + code-point-at "^1.0.0" + is-fullwidth-code-point "^1.0.0" + strip-ansi "^3.0.0" + +string-width@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" + dependencies: + is-fullwidth-code-point "^2.0.0" + strip-ansi "^4.0.0" + +string_decoder@^1.0.0, string_decoder@~1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.0.3.tgz#0fc67d7c141825de94282dd536bec6b9bce860ab" + dependencies: + safe-buffer "~5.1.0" + +stringstream@~0.0.4: + version "0.0.5" + resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878" + +strip-ansi@^3.0.0, strip-ansi@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + dependencies: + ansi-regex "^2.0.0" + +strip-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" + dependencies: + ansi-regex "^3.0.0" + +strip-bom@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + +strip-eof@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" + +strip-json-comments@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" + +supports-color@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" + +supports-color@^4.2.1: + version "4.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.5.0.tgz#be7a0de484dec5c5cddf8b3d59125044912f635b" + dependencies: + has-flag "^2.0.0" + +tapable@^0.2.7: + version "0.2.8" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-0.2.8.tgz#99372a5c999bf2df160afc0d74bed4f47948cd22" + +tar-pack@^3.4.0: + version "3.4.1" + resolved "https://registry.yarnpkg.com/tar-pack/-/tar-pack-3.4.1.tgz#e1dbc03a9b9d3ba07e896ad027317eb679a10a1f" + dependencies: + debug "^2.2.0" + fstream "^1.0.10" + fstream-ignore "^1.0.5" + once "^1.3.3" + readable-stream "^2.1.4" + rimraf "^2.5.1" + tar "^2.2.1" + uid-number "^0.0.6" + +tar@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1" + dependencies: + block-stream "*" + fstream "^1.0.2" + inherits "2" + +timers-browserify@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.4.tgz#96ca53f4b794a5e7c0e1bd7cc88a372298fa01e6" + dependencies: + setimmediate "^1.0.4" + +to-arraybuffer@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" + +to-fast-properties@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" + +tough-cookie@~2.3.0: + version "2.3.3" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.3.tgz#0b618a5565b6dea90bf3425d04d55edc475a7561" + dependencies: + punycode "^1.4.1" + +trim-right@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" + +tty-browserify@0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" + +tunnel-agent@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + dependencies: + safe-buffer "^5.0.1" + +tweetnacl@^0.14.3, tweetnacl@~0.14.0: + version "0.14.5" + resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" + +ua-parser-js@^0.7.9: + version "0.7.17" + resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.17.tgz#e9ec5f9498b9ec910e7ae3ac626a805c4d09ecac" + +uglify-js@^2.8.29: + version "2.8.29" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.29.tgz#29c5733148057bb4e1f75df35b7a9cb72e6a59dd" + dependencies: + source-map "~0.5.1" + yargs "~3.10.0" + optionalDependencies: + uglify-to-browserify "~1.0.0" + +uglify-to-browserify@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7" + +uglifyjs-webpack-plugin@^0.4.6: + version "0.4.6" + resolved "https://registry.yarnpkg.com/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-0.4.6.tgz#b951f4abb6bd617e66f63eb891498e391763e309" + dependencies: + source-map "^0.5.6" + uglify-js "^2.8.29" + webpack-sources "^1.0.1" + +uid-number@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81" + +url@^0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" + dependencies: + punycode "1.3.2" + querystring "0.2.0" + +util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + +util@0.10.3, util@^0.10.3: + version "0.10.3" + resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" + dependencies: + inherits "2.0.1" + +uuid@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.1.0.tgz#3dd3d3e790abc24d7b0d3a034ffababe28ebbc04" + +validate-npm-package-license@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz#2804babe712ad3379459acfbe24746ab2c303fbc" + dependencies: + spdx-correct "~1.0.0" + spdx-expression-parse "~1.0.0" + +value-equal@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/value-equal/-/value-equal-0.4.0.tgz#c5bdd2f54ee093c04839d71ce2e4758a6890abc7" + +verror@1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" + dependencies: + assert-plus "^1.0.0" + core-util-is "1.0.2" + extsprintf "^1.2.0" + +vm-browserify@0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-0.0.4.tgz#5d7ea45bbef9e4a6ff65f95438e0a87c357d5a73" + dependencies: + indexof "0.0.1" + +warning@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/warning/-/warning-3.0.0.tgz#32e5377cb572de4ab04753bdf8821c01ed605b7c" + dependencies: + loose-envify "^1.0.0" + +watchpack@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.4.0.tgz#4a1472bcbb952bd0a9bb4036801f954dfb39faac" + dependencies: + async "^2.1.2" + chokidar "^1.7.0" + graceful-fs "^4.1.2" + +webpack-sources@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.0.2.tgz#d0148ec083b3b5ccef1035a6b3ec16442983b27a" + dependencies: + source-list-map "^2.0.0" + source-map "~0.6.1" + +webpack@^3.8.1: + version "3.8.1" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-3.8.1.tgz#b16968a81100abe61608b0153c9159ef8bb2bd83" + dependencies: + acorn "^5.0.0" + acorn-dynamic-import "^2.0.0" + ajv "^5.1.5" + ajv-keywords "^2.0.0" + async "^2.1.2" + enhanced-resolve "^3.4.0" + escope "^3.6.0" + interpret "^1.0.0" + json-loader "^0.5.4" + json5 "^0.5.1" + loader-runner "^2.3.0" + loader-utils "^1.1.0" + memory-fs "~0.4.1" + mkdirp "~0.5.0" + node-libs-browser "^2.0.0" + source-map "^0.5.3" + supports-color "^4.2.1" + tapable "^0.2.7" + uglifyjs-webpack-plugin "^0.4.6" + watchpack "^1.4.0" + webpack-sources "^1.0.1" + yargs "^8.0.2" + +whatwg-fetch@>=0.10.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz#9c84ec2dcf68187ff00bc64e1274b442176e1c84" + +which-module@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" + +which@^1.2.9: + version "1.3.0" + resolved "https://registry.yarnpkg.com/which/-/which-1.3.0.tgz#ff04bdfc010ee547d780bec38e1ac1c2777d253a" + dependencies: + isexe "^2.0.0" + +wide-align@^1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.2.tgz#571e0f1b0604636ebc0dfc21b0339bbe31341710" + dependencies: + string-width "^1.0.2" + +window-size@0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d" + +wordwrap@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f" + +wrap-ansi@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" + dependencies: + string-width "^1.0.1" + strip-ansi "^3.0.1" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + +xtend@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" + +y18n@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" + +yallist@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" + +yargs-parser@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-7.0.0.tgz#8d0ac42f16ea55debd332caf4c4038b3e3f5dfd9" + dependencies: + camelcase "^4.1.0" + +yargs@^8.0.2: + version "8.0.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-8.0.2.tgz#6299a9055b1cefc969ff7e79c1d918dceb22c360" + dependencies: + camelcase "^4.1.0" + cliui "^3.2.0" + decamelize "^1.1.1" + get-caller-file "^1.0.1" + os-locale "^2.0.0" + read-pkg-up "^2.0.0" + require-directory "^2.1.1" + require-main-filename "^1.0.1" + set-blocking "^2.0.0" + string-width "^2.0.0" + which-module "^2.0.0" + y18n "^3.2.1" + yargs-parser "^7.0.0" + +yargs@~3.10.0: + version "3.10.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1" + dependencies: + camelcase "^1.0.2" + cliui "^2.1.0" + decamelize "^1.0.0" + window-size "0.1.0" diff --git a/tests/React.Tests/Core/ReactComponentTest.cs b/tests/React.Tests/Core/ReactComponentTest.cs index 234825b05..d131543b9 100644 --- a/tests/React.Tests/Core/ReactComponentTest.cs +++ b/tests/React.Tests/Core/ReactComponentTest.cs @@ -5,8 +5,8 @@ * This source code is licensed under the BSD-style license found in the * LICENSE file in the root directory of this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. - */ - + */ + using System; using JavaScriptEngineSwitcher.Core; using Moq; diff --git a/tests/React.Tests/Mvc/HtmlHelperExtensionsTests.cs b/tests/React.Tests/Mvc/HtmlHelperExtensionsTests.cs index 14d1253a4..3d303a84d 100644 --- a/tests/React.Tests/Mvc/HtmlHelperExtensionsTests.cs +++ b/tests/React.Tests/Mvc/HtmlHelperExtensionsTests.cs @@ -5,8 +5,8 @@ * This source code is licensed under the BSD-style license found in the * LICENSE file in the root directory of this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. - */ - + */ + using Moq; using React.Web.Mvc; using Xunit; diff --git a/tests/React.Tests/Properties/AssemblyInfo.cs b/tests/React.Tests/Properties/AssemblyInfo.cs index d91008107..d7dc747f0 100644 --- a/tests/React.Tests/Properties/AssemblyInfo.cs +++ b/tests/React.Tests/Properties/AssemblyInfo.cs @@ -1,9 +1,9 @@ using System.Reflection; using System.Runtime.InteropServices; -using Xunit; - +using Xunit; + [assembly: AssemblyTitle("React.Tests.Core")] [assembly: AssemblyDescription("Unit tests for ReactJS.NET")] [assembly: ComVisible(false)] -[assembly: Guid("30a20b1c-18fd-4c3c-a18d-44875dba0c73")] -[assembly: CollectionBehavior(DisableTestParallelization = true)] +[assembly: Guid("30a20b1c-18fd-4c3c-a18d-44875dba0c73")] +[assembly: CollectionBehavior(DisableTestParallelization = true)] diff --git a/tutorial-code/ReactDemo.sln b/tutorial-code/ReactDemo.sln index 6f9734124..f37610f01 100644 --- a/tutorial-code/ReactDemo.sln +++ b/tutorial-code/ReactDemo.sln @@ -1,30 +1,30 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27004.2002 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{C71B9157-9688-4CFB-812C-D0DD3AB74F21}" - ProjectSection(SolutionItems) = preProject - global.json = global.json - EndProjectSection -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "tutorial-code", "tutorial-code.csproj", "{F8367AC0-D731-4946-BCA8-972A6DBE9730}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {F8367AC0-D731-4946-BCA8-972A6DBE9730}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F8367AC0-D731-4946-BCA8-972A6DBE9730}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F8367AC0-D731-4946-BCA8-972A6DBE9730}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F8367AC0-D731-4946-BCA8-972A6DBE9730}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {B65CC77E-EFFF-479D-978E-F346AF031352} - EndGlobalSection -EndGlobal + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 15 +VisualStudioVersion = 15.0.27004.2002 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{C71B9157-9688-4CFB-812C-D0DD3AB74F21}" + ProjectSection(SolutionItems) = preProject + global.json = global.json + EndProjectSection +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "tutorial-code", "tutorial-code.csproj", "{F8367AC0-D731-4946-BCA8-972A6DBE9730}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {F8367AC0-D731-4946-BCA8-972A6DBE9730}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F8367AC0-D731-4946-BCA8-972A6DBE9730}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F8367AC0-D731-4946-BCA8-972A6DBE9730}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F8367AC0-D731-4946-BCA8-972A6DBE9730}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {B65CC77E-EFFF-479D-978E-F346AF031352} + EndGlobalSection +EndGlobal diff --git a/tutorial-code/tutorial-code.csproj b/tutorial-code/tutorial-code.csproj index 5207e16b0..d669627f9 100644 --- a/tutorial-code/tutorial-code.csproj +++ b/tutorial-code/tutorial-code.csproj @@ -1,31 +1,31 @@ - - - - netcoreapp2.0 - true - tutorial-code - Exe - tutorial-code - - - - - - PreserveNewest - - - - - - - - - - - - - - - - - + + + + netcoreapp2.0 + true + tutorial-code + Exe + tutorial-code + + + + + + PreserveNewest + + + + + + + + + + + + + + + + + From d03553e07a36086071b92d06455ddc6670d6aeee Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Sun, 21 Jan 2018 14:14:54 -0800 Subject: [PATCH 003/530] Add npm lockfiles This will prevent unexpected failures caused by patch or minor versions of dependencies getting updated. --- src/React.Core/package-lock.json | 5894 +++++++++++++++++ .../package-lock.json | 3876 +++++++++++ src/React.Sample.Router.CoreMvc/yarn.lock | 2880 -------- src/React.Sample.Webpack/package-lock.json | 3342 ++++++++++ 4 files changed, 13112 insertions(+), 2880 deletions(-) create mode 100644 src/React.Core/package-lock.json create mode 100644 src/React.Sample.Router.CoreMvc/package-lock.json delete mode 100644 src/React.Sample.Router.CoreMvc/yarn.lock create mode 100644 src/React.Sample.Webpack/package-lock.json diff --git a/src/React.Core/package-lock.json b/src/React.Core/package-lock.json new file mode 100644 index 000000000..73b69dc13 --- /dev/null +++ b/src/React.Core/package-lock.json @@ -0,0 +1,5894 @@ +{ + "name": "React.Core", + "version": "1.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "Base64": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/Base64/-/Base64-0.2.1.tgz", + "integrity": "sha1-ujpCMHCOGGcFBl5mur3Uw1z2ACg=", + "dev": true + }, + "acorn": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", + "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=", + "dev": true + }, + "align-text": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", + "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", + "dev": true, + "requires": { + "kind-of": "3.2.2", + "longest": "1.0.1", + "repeat-string": "1.6.1" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "amdefine": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", + "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", + "dev": true + }, + "ansi-gray": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/ansi-gray/-/ansi-gray-0.1.1.tgz", + "integrity": "sha1-KWLPVOyXksSFEKPetSRDaGHvclE=", + "dev": true, + "requires": { + "ansi-wrap": "0.1.0" + } + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "ansi-wrap": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz", + "integrity": "sha1-qCJQ3bABXponyoLoLqYDu/pF768=", + "dev": true + }, + "anymatch": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", + "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", + "dev": true, + "requires": { + "micromatch": "2.3.11", + "normalize-path": "2.1.1" + }, + "dependencies": { + "arr-diff": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", + "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", + "dev": true, + "requires": { + "arr-flatten": "1.1.0" + } + }, + "array-unique": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", + "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", + "dev": true + }, + "braces": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", + "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", + "dev": true, + "requires": { + "expand-range": "1.8.2", + "preserve": "0.2.0", + "repeat-element": "1.1.2" + } + }, + "expand-brackets": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", + "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", + "dev": true, + "requires": { + "is-posix-bracket": "0.1.1" + } + }, + "extglob": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", + "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", + "dev": true, + "requires": { + "is-extglob": "1.0.0" + } + }, + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "dev": true + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "dev": true, + "requires": { + "is-extglob": "1.0.0" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + }, + "micromatch": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", + "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", + "dev": true, + "requires": { + "arr-diff": "2.0.0", + "array-unique": "0.2.1", + "braces": "1.8.5", + "expand-brackets": "0.1.5", + "extglob": "0.3.2", + "filename-regex": "2.0.1", + "is-extglob": "1.0.0", + "is-glob": "2.0.1", + "kind-of": "3.2.2", + "normalize-path": "2.1.1", + "object.omit": "2.0.1", + "parse-glob": "3.0.4", + "regex-cache": "0.4.4" + } + } + } + }, + "archy": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", + "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", + "dev": true + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "dev": true + }, + "array-differ": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz", + "integrity": "sha1-7/UuN1gknTO+QCuLuOVkuytdQDE=", + "dev": true + }, + "array-each": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz", + "integrity": "sha1-p5SvDAWrF1KEbudTofIRoFugxE8=", + "dev": true + }, + "array-slice": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz", + "integrity": "sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==", + "dev": true + }, + "array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", + "dev": true + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=", + "dev": true + }, + "assert": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz", + "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=", + "dev": true, + "requires": { + "util": "0.10.3" + } + }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "dev": true + }, + "async": { + "version": "0.2.10", + "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz", + "integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E=", + "dev": true + }, + "async-each": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", + "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=", + "dev": true + }, + "atob": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.0.3.tgz", + "integrity": "sha1-GcenYEc3dEaPILLS0DNyrX1Mv10=", + "dev": true + }, + "babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "dev": true, + "requires": { + "chalk": "1.1.3", + "esutils": "2.0.2", + "js-tokens": "3.0.2" + } + }, + "babel-core": { + "version": "6.9.1", + "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.9.1.tgz", + "integrity": "sha1-SNRx7r9N5GngqUL+RW3MlLGL6A0=", + "dev": true, + "requires": { + "babel-code-frame": "6.26.0", + "babel-generator": "6.26.0", + "babel-helpers": "6.24.1", + "babel-messages": "6.23.0", + "babel-register": "6.26.0", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "convert-source-map": "1.5.1", + "debug": "2.6.9", + "json5": "0.4.0", + "lodash": "4.17.4", + "minimatch": "2.0.10", + "path-exists": "1.0.0", + "path-is-absolute": "1.0.1", + "private": "0.1.8", + "shebang-regex": "1.0.0", + "slash": "1.0.0", + "source-map": "0.5.7" + } + }, + "babel-generator": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.0.tgz", + "integrity": "sha1-rBriAHC3n248odMmlhMFN3TyDcU=", + "dev": true, + "requires": { + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "detect-indent": "4.0.0", + "jsesc": "1.3.0", + "lodash": "4.17.4", + "source-map": "0.5.7", + "trim-right": "1.0.1" + } + }, + "babel-helper-bindify-decorators": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-bindify-decorators/-/babel-helper-bindify-decorators-6.24.1.tgz", + "integrity": "sha1-FMGeXxQte0fxmlJDHlKxzLxAozA=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-helper-builder-binary-assignment-operator-visitor": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz", + "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=", + "dev": true, + "requires": { + "babel-helper-explode-assignable-expression": "6.24.1", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-helper-call-delegate": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz", + "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", + "dev": true, + "requires": { + "babel-helper-hoist-variables": "6.24.1", + "babel-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-helper-define-map": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz", + "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=", + "dev": true, + "requires": { + "babel-helper-function-name": "6.24.1", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "lodash": "4.17.4" + } + }, + "babel-helper-explode-assignable-expression": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz", + "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-helper-explode-class": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-explode-class/-/babel-helper-explode-class-6.24.1.tgz", + "integrity": "sha1-fcKjkQ3uAHBW4eMdZAztPVTqqes=", + "dev": true, + "requires": { + "babel-helper-bindify-decorators": "6.24.1", + "babel-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-helper-function-name": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", + "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", + "dev": true, + "requires": { + "babel-helper-get-function-arity": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-helper-get-function-arity": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", + "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-helper-hoist-variables": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz", + "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-helper-optimise-call-expression": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz", + "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-helper-regex": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz", + "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "lodash": "4.17.4" + } + }, + "babel-helper-remap-async-to-generator": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz", + "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=", + "dev": true, + "requires": { + "babel-helper-function-name": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-helper-replace-supers": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz", + "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=", + "dev": true, + "requires": { + "babel-helper-optimise-call-expression": "6.24.1", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-helpers": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", + "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-template": "6.26.0" + } + }, + "babel-loader": { + "version": "6.2.10", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-6.2.10.tgz", + "integrity": "sha1-re/CskIyDNXRXmWzHOoOixsC1LA=", + "dev": true, + "requires": { + "find-cache-dir": "0.1.1", + "loader-utils": "0.2.17", + "mkdirp": "0.5.1", + "object-assign": "4.1.1" + } + }, + "babel-messages": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-check-es2015-constants": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz", + "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-syntax-async-functions": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz", + "integrity": "sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU=", + "dev": true + }, + "babel-plugin-syntax-async-generators": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-generators/-/babel-plugin-syntax-async-generators-6.13.0.tgz", + "integrity": "sha1-a8lj67FuzLrmuStZbrfzXDQqi5o=", + "dev": true + }, + "babel-plugin-syntax-class-constructor-call": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-class-constructor-call/-/babel-plugin-syntax-class-constructor-call-6.18.0.tgz", + "integrity": "sha1-nLnTn+Q8hgC+yBRkVt3L1OGnZBY=", + "dev": true + }, + "babel-plugin-syntax-class-properties": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-class-properties/-/babel-plugin-syntax-class-properties-6.13.0.tgz", + "integrity": "sha1-1+sjt5oxf4VDlixQW4J8fWysJ94=", + "dev": true + }, + "babel-plugin-syntax-decorators": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-decorators/-/babel-plugin-syntax-decorators-6.13.0.tgz", + "integrity": "sha1-MSVjtNvePMgGzuPkFszurd0RrAs=", + "dev": true + }, + "babel-plugin-syntax-do-expressions": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-do-expressions/-/babel-plugin-syntax-do-expressions-6.13.0.tgz", + "integrity": "sha1-V0d1YTmqJtOQ0JQQsDdEugfkeW0=", + "dev": true + }, + "babel-plugin-syntax-dynamic-import": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-dynamic-import/-/babel-plugin-syntax-dynamic-import-6.18.0.tgz", + "integrity": "sha1-jWomIpyDdFqZgqRBBRVyyqF5sdo=", + "dev": true + }, + "babel-plugin-syntax-exponentiation-operator": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz", + "integrity": "sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4=", + "dev": true + }, + "babel-plugin-syntax-export-extensions": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-export-extensions/-/babel-plugin-syntax-export-extensions-6.13.0.tgz", + "integrity": "sha1-cKFITw+QiaToStRLrDU8lbmxJyE=", + "dev": true + }, + "babel-plugin-syntax-function-bind": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-function-bind/-/babel-plugin-syntax-function-bind-6.13.0.tgz", + "integrity": "sha1-SMSV8Xe98xqYHnMvVa3AvdJgH0Y=", + "dev": true + }, + "babel-plugin-syntax-object-rest-spread": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz", + "integrity": "sha1-/WU28rzhODb/o6VFjEkDpZe7O/U=", + "dev": true + }, + "babel-plugin-syntax-trailing-function-commas": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz", + "integrity": "sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM=", + "dev": true + }, + "babel-plugin-transform-async-generator-functions": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-generator-functions/-/babel-plugin-transform-async-generator-functions-6.24.1.tgz", + "integrity": "sha1-8FiQAUX9PpkHpt3yjaWfIVJYpds=", + "dev": true, + "requires": { + "babel-helper-remap-async-to-generator": "6.24.1", + "babel-plugin-syntax-async-generators": "6.13.0", + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-async-to-generator": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz", + "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=", + "dev": true, + "requires": { + "babel-helper-remap-async-to-generator": "6.24.1", + "babel-plugin-syntax-async-functions": "6.13.0", + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-class-constructor-call": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-class-constructor-call/-/babel-plugin-transform-class-constructor-call-6.24.1.tgz", + "integrity": "sha1-gNwoVQWsBn3LjWxl4vbxGrd2Xvk=", + "dev": true, + "requires": { + "babel-plugin-syntax-class-constructor-call": "6.18.0", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0" + } + }, + "babel-plugin-transform-class-properties": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.24.1.tgz", + "integrity": "sha1-anl2PqYdM9NvN7YRqp3vgagbRqw=", + "dev": true, + "requires": { + "babel-helper-function-name": "6.24.1", + "babel-plugin-syntax-class-properties": "6.13.0", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0" + } + }, + "babel-plugin-transform-decorators": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-decorators/-/babel-plugin-transform-decorators-6.24.1.tgz", + "integrity": "sha1-eIAT2PjGtSIr33s0Q5Df13Vp4k0=", + "dev": true, + "requires": { + "babel-helper-explode-class": "6.24.1", + "babel-plugin-syntax-decorators": "6.13.0", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-plugin-transform-do-expressions": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-do-expressions/-/babel-plugin-transform-do-expressions-6.22.0.tgz", + "integrity": "sha1-KMyvkoEtlJws0SgfaQyP3EaK6bs=", + "dev": true, + "requires": { + "babel-plugin-syntax-do-expressions": "6.13.0", + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-es2015-arrow-functions": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", + "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-es2015-block-scoped-functions": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", + "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-es2015-block-scoping": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz", + "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "lodash": "4.17.4" + } + }, + "babel-plugin-transform-es2015-classes": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz", + "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=", + "dev": true, + "requires": { + "babel-helper-define-map": "6.26.0", + "babel-helper-function-name": "6.24.1", + "babel-helper-optimise-call-expression": "6.24.1", + "babel-helper-replace-supers": "6.24.1", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-plugin-transform-es2015-computed-properties": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz", + "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-template": "6.26.0" + } + }, + "babel-plugin-transform-es2015-destructuring": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", + "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-es2015-duplicate-keys": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz", + "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-plugin-transform-es2015-for-of": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz", + "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-es2015-function-name": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz", + "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", + "dev": true, + "requires": { + "babel-helper-function-name": "6.24.1", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-plugin-transform-es2015-literals": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz", + "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-es2015-modules-commonjs": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.0.tgz", + "integrity": "sha1-DYOUApt9xqvhqX7xgeAHWN0uXYo=", + "dev": true, + "requires": { + "babel-plugin-transform-strict-mode": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-plugin-transform-es2015-object-super": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz", + "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=", + "dev": true, + "requires": { + "babel-helper-replace-supers": "6.24.1", + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-es2015-parameters": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz", + "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", + "dev": true, + "requires": { + "babel-helper-call-delegate": "6.24.1", + "babel-helper-get-function-arity": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-plugin-transform-es2015-shorthand-properties": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz", + "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-plugin-transform-es2015-spread": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz", + "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-es2015-sticky-regex": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", + "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", + "dev": true, + "requires": { + "babel-helper-regex": "6.26.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-plugin-transform-es2015-template-literals": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz", + "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-es2015-typeof-symbol": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", + "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-es2015-unicode-regex": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", + "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", + "dev": true, + "requires": { + "babel-helper-regex": "6.26.0", + "babel-runtime": "6.26.0", + "regexpu-core": "2.0.0" + } + }, + "babel-plugin-transform-exponentiation-operator": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz", + "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=", + "dev": true, + "requires": { + "babel-helper-builder-binary-assignment-operator-visitor": "6.24.1", + "babel-plugin-syntax-exponentiation-operator": "6.13.0", + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-export-extensions": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-export-extensions/-/babel-plugin-transform-export-extensions-6.22.0.tgz", + "integrity": "sha1-U3OLR+deghhYnuqUbLvTkQm75lM=", + "dev": true, + "requires": { + "babel-plugin-syntax-export-extensions": "6.13.0", + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-function-bind": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-function-bind/-/babel-plugin-transform-function-bind-6.22.0.tgz", + "integrity": "sha1-xvuOlqwpajELjPjqQBRiQH3fapc=", + "dev": true, + "requires": { + "babel-plugin-syntax-function-bind": "6.13.0", + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-object-rest-spread": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz", + "integrity": "sha1-DzZpLVD+9rfi1LOsFHgTepY7ewY=", + "dev": true, + "requires": { + "babel-plugin-syntax-object-rest-spread": "6.13.0", + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-regenerator": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz", + "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=", + "dev": true, + "requires": { + "regenerator-transform": "0.10.1" + } + }, + "babel-plugin-transform-strict-mode": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", + "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-preset-es2015": { + "version": "6.9.0", + "resolved": "https://registry.npmjs.org/babel-preset-es2015/-/babel-preset-es2015-6.9.0.tgz", + "integrity": "sha1-leRxasRIHfswmZy1wRGBThraD0E=", + "dev": true, + "requires": { + "babel-plugin-check-es2015-constants": "6.22.0", + "babel-plugin-transform-es2015-arrow-functions": "6.22.0", + "babel-plugin-transform-es2015-block-scoped-functions": "6.22.0", + "babel-plugin-transform-es2015-block-scoping": "6.26.0", + "babel-plugin-transform-es2015-classes": "6.24.1", + "babel-plugin-transform-es2015-computed-properties": "6.24.1", + "babel-plugin-transform-es2015-destructuring": "6.23.0", + "babel-plugin-transform-es2015-duplicate-keys": "6.24.1", + "babel-plugin-transform-es2015-for-of": "6.23.0", + "babel-plugin-transform-es2015-function-name": "6.24.1", + "babel-plugin-transform-es2015-literals": "6.22.0", + "babel-plugin-transform-es2015-modules-commonjs": "6.26.0", + "babel-plugin-transform-es2015-object-super": "6.24.1", + "babel-plugin-transform-es2015-parameters": "6.24.1", + "babel-plugin-transform-es2015-shorthand-properties": "6.24.1", + "babel-plugin-transform-es2015-spread": "6.22.0", + "babel-plugin-transform-es2015-sticky-regex": "6.24.1", + "babel-plugin-transform-es2015-template-literals": "6.22.0", + "babel-plugin-transform-es2015-typeof-symbol": "6.23.0", + "babel-plugin-transform-es2015-unicode-regex": "6.24.1", + "babel-plugin-transform-regenerator": "6.26.0" + } + }, + "babel-preset-stage-0": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/babel-preset-stage-0/-/babel-preset-stage-0-6.5.0.tgz", + "integrity": "sha1-i4R5sgd0grjz3I+PXwyceXiM3iI=", + "dev": true, + "requires": { + "babel-plugin-transform-do-expressions": "6.22.0", + "babel-plugin-transform-function-bind": "6.22.0", + "babel-preset-stage-1": "6.24.1" + } + }, + "babel-preset-stage-1": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-preset-stage-1/-/babel-preset-stage-1-6.24.1.tgz", + "integrity": "sha1-dpLNfc1oSZB+auSgqFWJz7niv7A=", + "dev": true, + "requires": { + "babel-plugin-transform-class-constructor-call": "6.24.1", + "babel-plugin-transform-export-extensions": "6.22.0", + "babel-preset-stage-2": "6.24.1" + } + }, + "babel-preset-stage-2": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-preset-stage-2/-/babel-preset-stage-2-6.24.1.tgz", + "integrity": "sha1-2eKWD7PXEYfw5k7sYrwHdnIZvcE=", + "dev": true, + "requires": { + "babel-plugin-syntax-dynamic-import": "6.18.0", + "babel-plugin-transform-class-properties": "6.24.1", + "babel-plugin-transform-decorators": "6.24.1", + "babel-preset-stage-3": "6.24.1" + } + }, + "babel-preset-stage-3": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-preset-stage-3/-/babel-preset-stage-3-6.24.1.tgz", + "integrity": "sha1-g2raCp56f6N8sTj7kyb4eTSkg5U=", + "dev": true, + "requires": { + "babel-plugin-syntax-trailing-function-commas": "6.22.0", + "babel-plugin-transform-async-generator-functions": "6.24.1", + "babel-plugin-transform-async-to-generator": "6.24.1", + "babel-plugin-transform-exponentiation-operator": "6.24.1", + "babel-plugin-transform-object-rest-spread": "6.26.0" + } + }, + "babel-register": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", + "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", + "dev": true, + "requires": { + "babel-core": "6.26.0", + "babel-runtime": "6.26.0", + "core-js": "2.5.3", + "home-or-tmp": "2.0.0", + "lodash": "4.17.4", + "mkdirp": "0.5.1", + "source-map-support": "0.4.18" + }, + "dependencies": { + "babel-core": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.0.tgz", + "integrity": "sha1-rzL3izGm/O8RnIew/Y2XU/A6C7g=", + "dev": true, + "requires": { + "babel-code-frame": "6.26.0", + "babel-generator": "6.26.0", + "babel-helpers": "6.24.1", + "babel-messages": "6.23.0", + "babel-register": "6.26.0", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "convert-source-map": "1.5.1", + "debug": "2.6.9", + "json5": "0.5.1", + "lodash": "4.17.4", + "minimatch": "3.0.4", + "path-is-absolute": "1.0.1", + "private": "0.1.8", + "slash": "1.0.0", + "source-map": "0.5.7" + } + }, + "json5": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", + "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", + "dev": true + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "1.1.8" + } + } + } + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "2.5.3", + "regenerator-runtime": "0.11.1" + } + }, + "babel-standalone": { + "version": "6.7.7", + "resolved": "https://registry.npmjs.org/babel-standalone/-/babel-standalone-6.7.7.tgz", + "integrity": "sha1-JnxxcocZp66FHtjsQKbZvznCJiM=", + "dev": true + }, + "babel-template": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", + "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "lodash": "4.17.4" + } + }, + "babel-traverse": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", + "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", + "dev": true, + "requires": { + "babel-code-frame": "6.26.0", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "debug": "2.6.9", + "globals": "9.18.0", + "invariant": "2.2.2", + "lodash": "4.17.4" + } + }, + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.4", + "to-fast-properties": "1.0.3" + } + }, + "babylon": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", + "dev": true + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "dev": true, + "requires": { + "cache-base": "1.0.1", + "class-utils": "0.3.6", + "component-emitter": "1.2.1", + "define-property": "1.0.0", + "isobject": "3.0.1", + "mixin-deep": "1.3.0", + "pascalcase": "0.1.1" + } + }, + "base64-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.2.1.tgz", + "integrity": "sha512-dwVUVIXsBZXwTuwnXI9RK8sBmgq09NDHzyR9SAph9eqk76gKK2JSQmZARC2zRC81JC2QTtxD0ARU5qTS25gIGw==", + "dev": true + }, + "beeper": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/beeper/-/beeper-1.1.1.tgz", + "integrity": "sha1-5tXqjF2tABMEpwsiY4RH9pyy+Ak=", + "dev": true + }, + "big.js": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz", + "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==", + "dev": true + }, + "binary-extensions": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.11.0.tgz", + "integrity": "sha1-RqoXUftqL5PuXmibsQh9SxTGwgU=", + "dev": true + }, + "brace-expansion": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", + "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", + "dev": true, + "requires": { + "balanced-match": "1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.0.tgz", + "integrity": "sha512-P4O8UQRdGiMLWSizsApmXVQDBS6KCt7dSexgLKBmH5Hr1CZq7vsnscFh8oR1sP1ab1Zj0uCHCEzZeV6SfUf3rA==", + "dev": true, + "requires": { + "arr-flatten": "1.1.0", + "array-unique": "0.3.2", + "define-property": "1.0.0", + "extend-shallow": "2.0.1", + "fill-range": "4.0.0", + "isobject": "3.0.1", + "repeat-element": "1.1.2", + "snapdragon": "0.8.1", + "snapdragon-node": "2.1.1", + "split-string": "3.1.0", + "to-regex": "3.0.1" + } + }, + "browserify-zlib": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz", + "integrity": "sha1-uzX4pRn2AOD6a4SFJByXnQFB+y0=", + "dev": true, + "requires": { + "pako": "0.2.9" + } + }, + "buffer": { + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", + "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=", + "dev": true, + "requires": { + "base64-js": "1.2.1", + "ieee754": "1.1.8", + "isarray": "1.0.0" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + } + } + }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "dev": true, + "requires": { + "collection-visit": "1.0.0", + "component-emitter": "1.2.1", + "get-value": "2.0.6", + "has-value": "1.0.0", + "isobject": "3.0.1", + "set-value": "2.0.0", + "to-object-path": "0.3.0", + "union-value": "1.0.0", + "unset-value": "1.0.0" + } + }, + "camelcase": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", + "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", + "dev": true + }, + "center-align": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", + "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", + "dev": true, + "requires": { + "align-text": "0.1.4", + "lazy-cache": "1.0.4" + }, + "dependencies": { + "lazy-cache": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", + "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", + "dev": true + } + } + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "2.2.1", + "escape-string-regexp": "1.0.5", + "has-ansi": "2.0.0", + "strip-ansi": "3.0.1", + "supports-color": "2.0.0" + } + }, + "chokidar": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", + "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", + "dev": true, + "requires": { + "anymatch": "1.3.2", + "async-each": "1.0.1", + "fsevents": "1.1.3", + "glob-parent": "2.0.0", + "inherits": "2.0.3", + "is-binary-path": "1.0.1", + "is-glob": "2.0.1", + "path-is-absolute": "1.0.1", + "readdirp": "2.1.0" + }, + "dependencies": { + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "dev": true + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "dev": true, + "requires": { + "is-extglob": "1.0.0" + } + } + } + }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dev": true, + "requires": { + "arr-union": "3.1.0", + "define-property": "0.2.5", + "isobject": "3.0.1", + "static-extend": "0.1.2" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "cliui": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", + "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", + "dev": true, + "requires": { + "center-align": "0.1.3", + "right-align": "0.1.3", + "wordwrap": "0.0.2" + } + }, + "clone": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.3.tgz", + "integrity": "sha1-KY1+IjFmD0DAA8LtMUDezz9TCF8=", + "dev": true + }, + "clone-stats": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz", + "integrity": "sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE=", + "dev": true + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "dev": true, + "requires": { + "map-visit": "1.0.0", + "object-visit": "1.0.1" + } + }, + "color-support": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", + "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", + "dev": true + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "dev": true + }, + "component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "console-browserify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", + "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", + "dev": true, + "requires": { + "date-now": "0.1.4" + } + }, + "constants-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-0.0.1.tgz", + "integrity": "sha1-kld9tSe6bEzwpFaNhLwDH0QeIfI=", + "dev": true + }, + "convert-source-map": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz", + "integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU=", + "dev": true + }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "dev": true + }, + "core-js": { + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.3.tgz", + "integrity": "sha1-isw4NFgk8W2DZbfJtCWRaOjtYD4=", + "dev": true + }, + "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=", + "dev": true + }, + "crypto-browserify": { + "version": "3.2.8", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.2.8.tgz", + "integrity": "sha1-ubEdvm2WUd2IKgHmzEZ99xjs8Yk=", + "dev": true, + "requires": { + "pbkdf2-compat": "2.0.1", + "ripemd160": "0.2.0", + "sha.js": "2.2.6" + } + }, + "date-now": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", + "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=", + "dev": true + }, + "dateformat": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-2.2.0.tgz", + "integrity": "sha1-QGXiATz5+5Ft39gu+1Bq1MZ2kGI=", + "dev": true + }, + "deap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/deap/-/deap-1.0.0.tgz", + "integrity": "sha1-sUi/gkMKJ2mbdIOgPra2dYW/yIg=", + "dev": true + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true + }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "dev": true + }, + "defaults": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", + "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", + "dev": true, + "requires": { + "clone": "1.0.3" + } + }, + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "1.0.2" + } + }, + "deprecated": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/deprecated/-/deprecated-0.0.1.tgz", + "integrity": "sha1-+cmvVGSvoeepcUWKi97yqpTVuxk=", + "dev": true + }, + "detect-file": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", + "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=", + "dev": true + }, + "detect-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", + "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", + "dev": true, + "requires": { + "repeating": "2.0.1" + } + }, + "domain-browser": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.1.7.tgz", + "integrity": "sha1-hnqksJP6oF8d4IwG9NeyH9+GmLw=", + "dev": true + }, + "duplexer2": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.0.2.tgz", + "integrity": "sha1-xhTc9n4vsUmVqRcR5aYX6KYKMds=", + "dev": true, + "requires": { + "readable-stream": "1.1.14" + } + }, + "emojis-list": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", + "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", + "dev": true + }, + "encoding": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", + "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", + "dev": true, + "requires": { + "iconv-lite": "0.4.19" + } + }, + "end-of-stream": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-0.1.5.tgz", + "integrity": "sha1-jhdyBsPICDfYVjLouTWd/osvbq8=", + "dev": true, + "requires": { + "once": "1.3.3" + } + }, + "enhanced-resolve": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-0.9.1.tgz", + "integrity": "sha1-TW5omzcl+GCQknzMhs2fFjW4ni4=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "memory-fs": "0.2.0", + "tapable": "0.1.10" + }, + "dependencies": { + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true + }, + "memory-fs": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.2.0.tgz", + "integrity": "sha1-8rslNovBIeORwlIN6Slpyu4KApA=", + "dev": true + } + } + }, + "errno": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.6.tgz", + "integrity": "sha512-IsORQDpaaSwcDP4ZZnHxgE85werpo34VYn1Ud3mq+eUsF593faR8oCZNXrROVkpFu2TsbrNhHin0aUrTsQ9vNw==", + "dev": true, + "requires": { + "prr": "1.0.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=", + "dev": true + }, + "esutils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true + }, + "events": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", + "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=", + "dev": true + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "requires": { + "debug": "2.6.9", + "define-property": "0.2.5", + "extend-shallow": "2.0.1", + "posix-character-classes": "0.1.1", + "regex-not": "1.0.0", + "snapdragon": "0.8.1", + "to-regex": "3.0.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "expand-range": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", + "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", + "dev": true, + "requires": { + "fill-range": "2.2.3" + }, + "dependencies": { + "fill-range": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz", + "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=", + "dev": true, + "requires": { + "is-number": "2.1.0", + "isobject": "2.1.0", + "randomatic": "1.1.7", + "repeat-element": "1.1.2", + "repeat-string": "1.6.1" + } + }, + "is-number": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", + "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + } + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "expand-tilde": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", + "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", + "dev": true, + "requires": { + "homedir-polyfill": "1.0.1" + } + }, + "extend": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", + "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=", + "dev": true + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "requires": { + "array-unique": "0.3.2", + "define-property": "1.0.0", + "expand-brackets": "2.1.4", + "extend-shallow": "2.0.1", + "fragment-cache": "0.2.1", + "regex-not": "1.0.0", + "snapdragon": "0.8.1", + "to-regex": "3.0.1" + } + }, + "fancy-log": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.2.tgz", + "integrity": "sha1-9BEl49hPLn2JpD0G2VjI94vha+E=", + "dev": true, + "requires": { + "ansi-gray": "0.1.1", + "color-support": "1.1.3", + "time-stamp": "1.1.0" + } + }, + "fbjs": { + "version": "0.8.16", + "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.16.tgz", + "integrity": "sha1-XmdDL1UNxBtXK/VYR7ispk5TN9s=", + "dev": true, + "requires": { + "core-js": "1.2.7", + "isomorphic-fetch": "2.2.1", + "loose-envify": "1.3.1", + "object-assign": "4.1.1", + "promise": "7.3.1", + "setimmediate": "1.0.5", + "ua-parser-js": "0.7.17" + }, + "dependencies": { + "core-js": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz", + "integrity": "sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY=", + "dev": true + } + } + }, + "filename-regex": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", + "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", + "dev": true + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "2.0.1", + "is-number": "3.0.0", + "repeat-string": "1.6.1", + "to-regex-range": "2.1.1" + } + }, + "find-cache-dir": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-0.1.1.tgz", + "integrity": "sha1-yN765XyKUqinhPnjHFfHQumToLk=", + "dev": true, + "requires": { + "commondir": "1.0.1", + "mkdirp": "0.5.1", + "pkg-dir": "1.0.0" + } + }, + "find-index": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/find-index/-/find-index-0.1.1.tgz", + "integrity": "sha1-Z101iyyjiS15Whq0cjL4tuLg3eQ=", + "dev": true + }, + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "dev": true, + "requires": { + "path-exists": "2.1.0", + "pinkie-promise": "2.0.1" + }, + "dependencies": { + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "dev": true, + "requires": { + "pinkie-promise": "2.0.1" + } + } + } + }, + "findup-sync": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz", + "integrity": "sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw=", + "dev": true, + "requires": { + "detect-file": "1.0.0", + "is-glob": "3.1.0", + "micromatch": "3.1.5", + "resolve-dir": "1.0.1" + } + }, + "fined": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fined/-/fined-1.1.0.tgz", + "integrity": "sha1-s33IRLdqL15wgeiE98CuNE8VNHY=", + "dev": true, + "requires": { + "expand-tilde": "2.0.2", + "is-plain-object": "2.0.4", + "object.defaults": "1.1.0", + "object.pick": "1.3.0", + "parse-filepath": "1.0.2" + } + }, + "first-chunk-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/first-chunk-stream/-/first-chunk-stream-1.0.0.tgz", + "integrity": "sha1-Wb+1DNkF9g18OUzT2ayqtOatk04=", + "dev": true + }, + "flagged-respawn": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.0.tgz", + "integrity": "sha1-Tnmumy6zi/hrO7Vr8+ClaqX8q9c=", + "dev": true + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true + }, + "for-own": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", + "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", + "dev": true, + "requires": { + "for-in": "1.0.2" + } + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "dev": true, + "requires": { + "map-cache": "0.2.2" + } + }, + "fsevents": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.1.3.tgz", + "integrity": "sha512-WIr7iDkdmdbxu/Gh6eKEZJL6KPE74/5MEsf2whTOFNxbIoIixogroLdKYqB6FDav4Wavh/lZdzzd3b2KxIXC5Q==", + "dev": true, + "optional": true, + "requires": { + "nan": "2.8.0", + "node-pre-gyp": "0.6.39" + }, + "dependencies": { + "abbrev": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "optional": true + }, + "ajv": { + "version": "4.11.8", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "co": "4.6.0", + "json-stable-stringify": "1.0.1" + } + }, + "ansi-regex": { + "version": "2.1.1", + "bundled": true, + "dev": true + }, + "aproba": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "are-we-there-yet": { + "version": "1.1.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "delegates": "1.0.0", + "readable-stream": "2.2.9" + } + }, + "asn1": { + "version": "0.2.3", + "bundled": true, + "dev": true, + "optional": true + }, + "assert-plus": { + "version": "0.2.0", + "bundled": true, + "dev": true, + "optional": true + }, + "asynckit": { + "version": "0.4.0", + "bundled": true, + "dev": true, + "optional": true + }, + "aws-sign2": { + "version": "0.6.0", + "bundled": true, + "dev": true, + "optional": true + }, + "aws4": { + "version": "1.6.0", + "bundled": true, + "dev": true, + "optional": true + }, + "balanced-match": { + "version": "0.4.2", + "bundled": true, + "dev": true + }, + "bcrypt-pbkdf": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "tweetnacl": "0.14.5" + } + }, + "block-stream": { + "version": "0.0.9", + "bundled": true, + "dev": true, + "requires": { + "inherits": "2.0.3" + } + }, + "boom": { + "version": "2.10.1", + "bundled": true, + "dev": true, + "requires": { + "hoek": "2.16.3" + } + }, + "brace-expansion": { + "version": "1.1.7", + "bundled": true, + "dev": true, + "requires": { + "balanced-match": "0.4.2", + "concat-map": "0.0.1" + } + }, + "buffer-shims": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "caseless": { + "version": "0.12.0", + "bundled": true, + "dev": true, + "optional": true + }, + "co": { + "version": "4.6.0", + "bundled": true, + "dev": true, + "optional": true + }, + "code-point-at": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "combined-stream": { + "version": "1.0.5", + "bundled": true, + "dev": true, + "requires": { + "delayed-stream": "1.0.0" + } + }, + "concat-map": { + "version": "0.0.1", + "bundled": true, + "dev": true + }, + "console-control-strings": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "core-util-is": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "cryptiles": { + "version": "2.0.5", + "bundled": true, + "dev": true, + "requires": { + "boom": "2.10.1" + } + }, + "dashdash": { + "version": "1.14.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "assert-plus": "1.0.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "debug": { + "version": "2.6.8", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ms": "2.0.0" + } + }, + "deep-extend": { + "version": "0.4.2", + "bundled": true, + "dev": true, + "optional": true + }, + "delayed-stream": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "delegates": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "detect-libc": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "ecc-jsbn": { + "version": "0.1.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "jsbn": "0.1.1" + } + }, + "extend": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "extsprintf": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "forever-agent": { + "version": "0.6.1", + "bundled": true, + "dev": true, + "optional": true + }, + "form-data": { + "version": "2.1.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "asynckit": "0.4.0", + "combined-stream": "1.0.5", + "mime-types": "2.1.15" + } + }, + "fs.realpath": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "fstream": { + "version": "1.0.11", + "bundled": true, + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "inherits": "2.0.3", + "mkdirp": "0.5.1", + "rimraf": "2.6.1" + } + }, + "fstream-ignore": { + "version": "1.0.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "fstream": "1.0.11", + "inherits": "2.0.3", + "minimatch": "3.0.4" + } + }, + "gauge": { + "version": "2.7.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "aproba": "1.1.1", + "console-control-strings": "1.1.0", + "has-unicode": "2.0.1", + "object-assign": "4.1.1", + "signal-exit": "3.0.2", + "string-width": "1.0.2", + "strip-ansi": "3.0.1", + "wide-align": "1.1.2" + } + }, + "getpass": { + "version": "0.1.7", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "assert-plus": "1.0.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "glob": { + "version": "7.1.2", + "bundled": true, + "dev": true, + "requires": { + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" + } + }, + "graceful-fs": { + "version": "4.1.11", + "bundled": true, + "dev": true + }, + "har-schema": { + "version": "1.0.5", + "bundled": true, + "dev": true, + "optional": true + }, + "har-validator": { + "version": "4.2.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ajv": "4.11.8", + "har-schema": "1.0.5" + } + }, + "has-unicode": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "hawk": { + "version": "3.1.3", + "bundled": true, + "dev": true, + "requires": { + "boom": "2.10.1", + "cryptiles": "2.0.5", + "hoek": "2.16.3", + "sntp": "1.0.9" + } + }, + "hoek": { + "version": "2.16.3", + "bundled": true, + "dev": true + }, + "http-signature": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "assert-plus": "0.2.0", + "jsprim": "1.4.0", + "sshpk": "1.13.0" + } + }, + "inflight": { + "version": "1.0.6", + "bundled": true, + "dev": true, + "requires": { + "once": "1.4.0", + "wrappy": "1.0.2" + } + }, + "inherits": { + "version": "2.0.3", + "bundled": true, + "dev": true + }, + "ini": { + "version": "1.3.4", + "bundled": true, + "dev": true, + "optional": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "is-typedarray": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "isarray": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "isstream": { + "version": "0.1.2", + "bundled": true, + "dev": true, + "optional": true + }, + "jodid25519": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "jsbn": "0.1.1" + } + }, + "jsbn": { + "version": "0.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "json-schema": { + "version": "0.2.3", + "bundled": true, + "dev": true, + "optional": true + }, + "json-stable-stringify": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "jsonify": "0.0.0" + } + }, + "json-stringify-safe": { + "version": "5.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "jsonify": { + "version": "0.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "jsprim": { + "version": "1.4.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.0.2", + "json-schema": "0.2.3", + "verror": "1.3.6" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "mime-db": { + "version": "1.27.0", + "bundled": true, + "dev": true + }, + "mime-types": { + "version": "2.1.15", + "bundled": true, + "dev": true, + "requires": { + "mime-db": "1.27.0" + } + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "dev": true, + "requires": { + "brace-expansion": "1.1.7" + } + }, + "minimist": { + "version": "0.0.8", + "bundled": true, + "dev": true + }, + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "dev": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "node-pre-gyp": { + "version": "0.6.39", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "detect-libc": "1.0.2", + "hawk": "3.1.3", + "mkdirp": "0.5.1", + "nopt": "4.0.1", + "npmlog": "4.1.0", + "rc": "1.2.1", + "request": "2.81.0", + "rimraf": "2.6.1", + "semver": "5.3.0", + "tar": "2.2.1", + "tar-pack": "3.4.0" + } + }, + "nopt": { + "version": "4.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "abbrev": "1.1.0", + "osenv": "0.1.4" + } + }, + "npmlog": { + "version": "4.1.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "are-we-there-yet": "1.1.4", + "console-control-strings": "1.1.0", + "gauge": "2.7.4", + "set-blocking": "2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "oauth-sign": { + "version": "0.8.2", + "bundled": true, + "dev": true, + "optional": true + }, + "object-assign": { + "version": "4.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "once": { + "version": "1.4.0", + "bundled": true, + "dev": true, + "requires": { + "wrappy": "1.0.2" + } + }, + "os-homedir": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "os-tmpdir": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "osenv": { + "version": "0.1.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "os-homedir": "1.0.2", + "os-tmpdir": "1.0.2" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "performance-now": { + "version": "0.2.0", + "bundled": true, + "dev": true, + "optional": true + }, + "process-nextick-args": { + "version": "1.0.7", + "bundled": true, + "dev": true + }, + "punycode": { + "version": "1.4.1", + "bundled": true, + "dev": true, + "optional": true + }, + "qs": { + "version": "6.4.0", + "bundled": true, + "dev": true, + "optional": true + }, + "rc": { + "version": "1.2.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "deep-extend": "0.4.2", + "ini": "1.3.4", + "minimist": "1.2.0", + "strip-json-comments": "2.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "readable-stream": { + "version": "2.2.9", + "bundled": true, + "dev": true, + "requires": { + "buffer-shims": "1.0.0", + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "1.0.7", + "string_decoder": "1.0.1", + "util-deprecate": "1.0.2" + } + }, + "request": { + "version": "2.81.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "aws-sign2": "0.6.0", + "aws4": "1.6.0", + "caseless": "0.12.0", + "combined-stream": "1.0.5", + "extend": "3.0.1", + "forever-agent": "0.6.1", + "form-data": "2.1.4", + "har-validator": "4.2.1", + "hawk": "3.1.3", + "http-signature": "1.1.1", + "is-typedarray": "1.0.0", + "isstream": "0.1.2", + "json-stringify-safe": "5.0.1", + "mime-types": "2.1.15", + "oauth-sign": "0.8.2", + "performance-now": "0.2.0", + "qs": "6.4.0", + "safe-buffer": "5.0.1", + "stringstream": "0.0.5", + "tough-cookie": "2.3.2", + "tunnel-agent": "0.6.0", + "uuid": "3.0.1" + } + }, + "rimraf": { + "version": "2.6.1", + "bundled": true, + "dev": true, + "requires": { + "glob": "7.1.2" + } + }, + "safe-buffer": { + "version": "5.0.1", + "bundled": true, + "dev": true + }, + "semver": { + "version": "5.3.0", + "bundled": true, + "dev": true, + "optional": true + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "sntp": { + "version": "1.0.9", + "bundled": true, + "dev": true, + "requires": { + "hoek": "2.16.3" + } + }, + "sshpk": { + "version": "1.13.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "asn1": "0.2.3", + "assert-plus": "1.0.0", + "bcrypt-pbkdf": "1.0.1", + "dashdash": "1.14.1", + "ecc-jsbn": "0.1.1", + "getpass": "0.1.7", + "jodid25519": "1.0.2", + "jsbn": "0.1.1", + "tweetnacl": "0.14.5" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "string-width": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "requires": { + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + } + }, + "string_decoder": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "requires": { + "safe-buffer": "5.0.1" + } + }, + "stringstream": { + "version": "0.0.5", + "bundled": true, + "dev": true, + "optional": true + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "tar": { + "version": "2.2.1", + "bundled": true, + "dev": true, + "requires": { + "block-stream": "0.0.9", + "fstream": "1.0.11", + "inherits": "2.0.3" + } + }, + "tar-pack": { + "version": "3.4.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "debug": "2.6.8", + "fstream": "1.0.11", + "fstream-ignore": "1.0.5", + "once": "1.4.0", + "readable-stream": "2.2.9", + "rimraf": "2.6.1", + "tar": "2.2.1", + "uid-number": "0.0.6" + } + }, + "tough-cookie": { + "version": "2.3.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "punycode": "1.4.1" + } + }, + "tunnel-agent": { + "version": "0.6.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safe-buffer": "5.0.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "bundled": true, + "dev": true, + "optional": true + }, + "uid-number": { + "version": "0.0.6", + "bundled": true, + "dev": true, + "optional": true + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "uuid": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "verror": { + "version": "1.3.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "extsprintf": "1.0.2" + } + }, + "wide-align": { + "version": "1.1.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "string-width": "1.0.2" + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true, + "dev": true + } + } + }, + "gaze": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/gaze/-/gaze-0.5.2.tgz", + "integrity": "sha1-QLcJU30k0dRXZ9takIaJ3+aaxE8=", + "dev": true, + "requires": { + "globule": "0.1.0" + } + }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "dev": true + }, + "glob": { + "version": "4.5.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-4.5.3.tgz", + "integrity": "sha1-xstz0yJsHv7wTePFbQEvAzd+4V8=", + "dev": true, + "requires": { + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "2.0.10", + "once": "1.3.3" + } + }, + "glob-base": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", + "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", + "dev": true, + "requires": { + "glob-parent": "2.0.0", + "is-glob": "2.0.1" + }, + "dependencies": { + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "dev": true + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "dev": true, + "requires": { + "is-extglob": "1.0.0" + } + } + } + }, + "glob-parent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", + "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", + "dev": true, + "requires": { + "is-glob": "2.0.1" + }, + "dependencies": { + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "dev": true + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "dev": true, + "requires": { + "is-extglob": "1.0.0" + } + } + } + }, + "glob-stream": { + "version": "3.1.18", + "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-3.1.18.tgz", + "integrity": "sha1-kXCl8St5Awb9/lmPMT+PeVT9FDs=", + "dev": true, + "requires": { + "glob": "4.5.3", + "glob2base": "0.0.12", + "minimatch": "2.0.10", + "ordered-read-streams": "0.1.0", + "through2": "0.6.5", + "unique-stream": "1.0.0" + }, + "dependencies": { + "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.2", + "inherits": "2.0.3", + "isarray": "0.0.1", + "string_decoder": "0.10.31" + } + }, + "through2": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", + "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", + "dev": true, + "requires": { + "readable-stream": "1.0.34", + "xtend": "4.0.1" + } + } + } + }, + "glob-watcher": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-0.0.6.tgz", + "integrity": "sha1-uVtKjfdLOcgymLDAXJeLTZo7cQs=", + "dev": true, + "requires": { + "gaze": "0.5.2" + } + }, + "glob2base": { + "version": "0.0.12", + "resolved": "https://registry.npmjs.org/glob2base/-/glob2base-0.0.12.tgz", + "integrity": "sha1-nUGbPijxLoOjYhZKJ3BVkiycDVY=", + "dev": true, + "requires": { + "find-index": "0.1.1" + } + }, + "global-modules": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", + "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", + "dev": true, + "requires": { + "global-prefix": "1.0.2", + "is-windows": "1.0.1", + "resolve-dir": "1.0.1" + } + }, + "global-prefix": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", + "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", + "dev": true, + "requires": { + "expand-tilde": "2.0.2", + "homedir-polyfill": "1.0.1", + "ini": "1.3.5", + "is-windows": "1.0.1", + "which": "1.3.0" + } + }, + "globals": { + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", + "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", + "dev": true + }, + "globule": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/globule/-/globule-0.1.0.tgz", + "integrity": "sha1-2cjt3h2nnRJaFRt5UzuXhnY0auU=", + "dev": true, + "requires": { + "glob": "3.1.21", + "lodash": "1.0.2", + "minimatch": "0.2.14" + }, + "dependencies": { + "glob": { + "version": "3.1.21", + "resolved": "https://registry.npmjs.org/glob/-/glob-3.1.21.tgz", + "integrity": "sha1-0p4KBV3qUTj00H7UDomC6DwgZs0=", + "dev": true, + "requires": { + "graceful-fs": "1.2.3", + "inherits": "1.0.2", + "minimatch": "0.2.14" + } + }, + "graceful-fs": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz", + "integrity": "sha1-FaSAaldUfLLS2/J/QuiajDRRs2Q=", + "dev": true + }, + "inherits": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-1.0.2.tgz", + "integrity": "sha1-ykMJ2t7mtUzAuNJH6NfHoJdb3Js=", + "dev": true + }, + "lodash": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-1.0.2.tgz", + "integrity": "sha1-j1dWDIO1n8JwvT1WG2kAQ0MOJVE=", + "dev": true + }, + "minimatch": { + "version": "0.2.14", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz", + "integrity": "sha1-x054BXT2PG+aCQ6Q775u9TpqdWo=", + "dev": true, + "requires": { + "lru-cache": "2.7.3", + "sigmund": "1.0.1" + } + } + } + }, + "glogg": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.0.tgz", + "integrity": "sha1-f+DxmfV6yQbPUS/urY+Q7kooT8U=", + "dev": true, + "requires": { + "sparkles": "1.0.0" + } + }, + "graceful-fs": { + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.11.tgz", + "integrity": "sha1-dhPHeKGv6mLyXGMKCG1/Osu92Bg=", + "dev": true, + "requires": { + "natives": "1.1.1" + } + }, + "gulp": { + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/gulp/-/gulp-3.9.1.tgz", + "integrity": "sha1-VxzkWSjdQK9lFPxAEYZgFsE4RbQ=", + "dev": true, + "requires": { + "archy": "1.0.0", + "chalk": "1.1.3", + "deprecated": "0.0.1", + "gulp-util": "3.0.8", + "interpret": "1.1.0", + "liftoff": "2.5.0", + "minimist": "1.2.0", + "orchestrator": "0.3.8", + "pretty-hrtime": "1.0.3", + "semver": "4.3.6", + "tildify": "1.2.0", + "v8flags": "2.1.1", + "vinyl-fs": "0.3.14" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + } + } + }, + "gulp-uglify": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/gulp-uglify/-/gulp-uglify-1.5.4.tgz", + "integrity": "sha1-UkeI2HZm0J+dDCH7IXf5ADmmWMk=", + "dev": true, + "requires": { + "deap": "1.0.0", + "fancy-log": "1.3.2", + "gulp-util": "3.0.8", + "isobject": "2.1.0", + "through2": "2.0.3", + "uglify-js": "2.6.4", + "uglify-save-license": "0.4.1", + "vinyl-sourcemaps-apply": "0.2.1" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "gulp-util": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/gulp-util/-/gulp-util-3.0.8.tgz", + "integrity": "sha1-AFTh50RQLifATBh8PsxQXdVLu08=", + "dev": true, + "requires": { + "array-differ": "1.0.0", + "array-uniq": "1.0.3", + "beeper": "1.1.1", + "chalk": "1.1.3", + "dateformat": "2.2.0", + "fancy-log": "1.3.2", + "gulplog": "1.0.0", + "has-gulplog": "0.1.0", + "lodash._reescape": "3.0.0", + "lodash._reevaluate": "3.0.0", + "lodash._reinterpolate": "3.0.0", + "lodash.template": "3.6.2", + "minimist": "1.2.0", + "multipipe": "0.1.2", + "object-assign": "3.0.0", + "replace-ext": "0.0.1", + "through2": "2.0.3", + "vinyl": "0.5.3" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + }, + "object-assign": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz", + "integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I=", + "dev": true + } + } + }, + "gulplog": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz", + "integrity": "sha1-4oxNRdBey77YGDY86PnFkmIp/+U=", + "dev": true, + "requires": { + "glogg": "1.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=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } + }, + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "has-gulplog": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/has-gulplog/-/has-gulplog-0.1.0.tgz", + "integrity": "sha1-ZBTIKRNpfaUVkDl9r7EvIpZ4Ec4=", + "dev": true, + "requires": { + "sparkles": "1.0.0" + } + }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "dev": true, + "requires": { + "get-value": "2.0.6", + "has-values": "1.0.0", + "isobject": "3.0.1" + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "dev": true, + "requires": { + "is-number": "3.0.0", + "kind-of": "4.0.0" + }, + "dependencies": { + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "home-or-tmp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", + "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", + "dev": true, + "requires": { + "os-homedir": "1.0.2", + "os-tmpdir": "1.0.2" + } + }, + "homedir-polyfill": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz", + "integrity": "sha1-TCu8inWJmP7r9e1oWA921GdotLw=", + "dev": true, + "requires": { + "parse-passwd": "1.0.0" + } + }, + "http-browserify": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/http-browserify/-/http-browserify-1.7.0.tgz", + "integrity": "sha1-M3la3nLfiKz7/TZ3PO/tp2RzWyA=", + "dev": true, + "requires": { + "Base64": "0.2.1", + "inherits": "2.0.3" + } + }, + "https-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-0.0.0.tgz", + "integrity": "sha1-s//f5zSyo9Sp79WOhlTJH86G6v0=", + "dev": true + }, + "iconv-lite": { + "version": "0.4.19", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz", + "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==", + "dev": true + }, + "ieee754": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.8.tgz", + "integrity": "sha1-vjPUCsEO8ZJnAfbwii2G+/0a0+Q=", + "dev": true + }, + "indexof": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", + "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "1.3.3", + "wrappy": "1.0.2" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "ini": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", + "dev": true + }, + "interpret": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz", + "integrity": "sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ=", + "dev": true + }, + "invariant": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz", + "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=", + "dev": true, + "requires": { + "loose-envify": "1.3.1" + } + }, + "is-absolute": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", + "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", + "dev": true, + "requires": { + "is-relative": "1.0.0", + "is-windows": "1.0.1" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "dev": true, + "requires": { + "binary-extensions": "1.11.0" + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + }, + "is-dotfile": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", + "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=", + "dev": true + }, + "is-equal-shallow": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", + "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", + "dev": true, + "requires": { + "is-primitive": "2.0.0" + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true + }, + "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.0.2", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "2.1.1" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-odd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-odd/-/is-odd-1.0.0.tgz", + "integrity": "sha1-O4qTLrAos3dcObsJ6RdnrM22kIg=", + "dev": true, + "requires": { + "is-number": "3.0.0" + } + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "3.0.1" + } + }, + "is-posix-bracket": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", + "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=", + "dev": true + }, + "is-primitive": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", + "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", + "dev": true + }, + "is-relative": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", + "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", + "dev": true, + "requires": { + "is-unc-path": "1.0.0" + } + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "dev": true + }, + "is-unc-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", + "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", + "dev": true, + "requires": { + "unc-path-regex": "0.1.2" + } + }, + "is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", + "dev": true + }, + "is-windows": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.1.tgz", + "integrity": "sha1-MQ23D3QtJZoWo2kgK1GvhCMzENk=", + "dev": true + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "isomorphic-fetch": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", + "integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=", + "dev": true, + "requires": { + "node-fetch": "1.7.3", + "whatwg-fetch": "2.0.3" + } + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + }, + "jsesc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", + "dev": true + }, + "json-loader": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/json-loader/-/json-loader-0.5.7.tgz", + "integrity": "sha512-QLPs8Dj7lnf3e3QYS1zkCo+4ZwqOiF9d/nZnYozTISxXWCfNs9yuky5rJw4/W34s7POaNlbZmQGaB5NiXCbP4w==", + "dev": true + }, + "json5": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/json5/-/json5-0.4.0.tgz", + "integrity": "sha1-BUNS5MTIDIbAkjh31EneF2pzLI0=", + "dev": true + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + }, + "lazy-cache": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-2.0.2.tgz", + "integrity": "sha1-uRkKT5EzVGlIQIWfio9whNiCImQ=", + "dev": true, + "requires": { + "set-getter": "0.1.0" + } + }, + "liftoff": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-2.5.0.tgz", + "integrity": "sha1-IAkpG7Mc6oYbvxCnwVooyvdcMew=", + "dev": true, + "requires": { + "extend": "3.0.1", + "findup-sync": "2.0.0", + "fined": "1.1.0", + "flagged-respawn": "1.0.0", + "is-plain-object": "2.0.4", + "object.map": "1.0.1", + "rechoir": "0.6.2", + "resolve": "1.5.0" + } + }, + "loader-utils": { + "version": "0.2.17", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz", + "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=", + "dev": true, + "requires": { + "big.js": "3.2.0", + "emojis-list": "2.1.0", + "json5": "0.5.1", + "object-assign": "4.1.1" + }, + "dependencies": { + "json5": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", + "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", + "dev": true + } + } + }, + "lodash": { + "version": "4.17.4", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", + "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", + "dev": true + }, + "lodash._basecopy": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz", + "integrity": "sha1-jaDmqHbPNEwK2KVIghEd08XHyjY=", + "dev": true + }, + "lodash._basetostring": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz", + "integrity": "sha1-0YYdh3+CSlL2aYMtyvPuFVZqB9U=", + "dev": true + }, + "lodash._basevalues": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._basevalues/-/lodash._basevalues-3.0.0.tgz", + "integrity": "sha1-W3dXYoAr3j0yl1A+JjAIIP32Ybc=", + "dev": true + }, + "lodash._getnative": { + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz", + "integrity": "sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=", + "dev": true + }, + "lodash._isiterateecall": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz", + "integrity": "sha1-UgOte6Ql+uhCRg5pbbnPPmqsBXw=", + "dev": true + }, + "lodash._reescape": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._reescape/-/lodash._reescape-3.0.0.tgz", + "integrity": "sha1-Kx1vXf4HyKNVdT5fJ/rH8c3hYWo=", + "dev": true + }, + "lodash._reevaluate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._reevaluate/-/lodash._reevaluate-3.0.0.tgz", + "integrity": "sha1-WLx0xAZklTrgsSTYBpltrKQx4u0=", + "dev": true + }, + "lodash._reinterpolate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", + "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=", + "dev": true + }, + "lodash._root": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/lodash._root/-/lodash._root-3.0.1.tgz", + "integrity": "sha1-+6HEUkwZ7ppfgTa0YJ8BfPTe1pI=", + "dev": true + }, + "lodash.clone": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.clone/-/lodash.clone-4.5.0.tgz", + "integrity": "sha1-GVhwRQ9aExkkeN9Lw9I9LeoZB7Y=", + "dev": true + }, + "lodash.escape": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/lodash.escape/-/lodash.escape-3.2.0.tgz", + "integrity": "sha1-mV7g3BjBtIzJLv+ucaEKq1tIdpg=", + "dev": true, + "requires": { + "lodash._root": "3.0.1" + } + }, + "lodash.isarguments": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", + "integrity": "sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=", + "dev": true + }, + "lodash.isarray": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz", + "integrity": "sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U=", + "dev": true + }, + "lodash.keys": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz", + "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=", + "dev": true, + "requires": { + "lodash._getnative": "3.9.1", + "lodash.isarguments": "3.1.0", + "lodash.isarray": "3.0.4" + } + }, + "lodash.restparam": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/lodash.restparam/-/lodash.restparam-3.6.1.tgz", + "integrity": "sha1-k2pOMJ7zMKdkXtQUWYbIWuWyCAU=", + "dev": true + }, + "lodash.some": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.some/-/lodash.some-4.6.0.tgz", + "integrity": "sha1-G7nzFO9ri63tE7VJFpsqlF62jk0=", + "dev": true + }, + "lodash.template": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-3.6.2.tgz", + "integrity": "sha1-+M3sxhaaJVvpCYrosMU9N4kx0U8=", + "dev": true, + "requires": { + "lodash._basecopy": "3.0.1", + "lodash._basetostring": "3.0.1", + "lodash._basevalues": "3.0.0", + "lodash._isiterateecall": "3.0.9", + "lodash._reinterpolate": "3.0.0", + "lodash.escape": "3.2.0", + "lodash.keys": "3.1.2", + "lodash.restparam": "3.6.1", + "lodash.templatesettings": "3.1.1" + } + }, + "lodash.templatesettings": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-3.1.1.tgz", + "integrity": "sha1-+zB4RHU7Zrnxr6VOJix0UwfbqOU=", + "dev": true, + "requires": { + "lodash._reinterpolate": "3.0.0", + "lodash.escape": "3.2.0" + } + }, + "longest": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", + "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", + "dev": true + }, + "loose-envify": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", + "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", + "dev": true, + "requires": { + "js-tokens": "3.0.2" + } + }, + "lru-cache": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz", + "integrity": "sha1-bUUk6LlV+V1PW1iFHOId1y+06VI=", + "dev": true + }, + "make-iterator": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.0.tgz", + "integrity": "sha1-V7713IXSOSO6I3ZzJNjo+PPZaUs=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "dev": true + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "dev": true, + "requires": { + "object-visit": "1.0.1" + } + }, + "memory-fs": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.3.0.tgz", + "integrity": "sha1-e8xrYp46Q+hx1+Kaymrop/FcuyA=", + "dev": true, + "requires": { + "errno": "0.1.6", + "readable-stream": "2.3.3" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "readable-stream": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", + "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", + "dev": true, + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "1.0.7", + "safe-buffer": "5.1.1", + "string_decoder": "1.0.3", + "util-deprecate": "1.0.2" + } + }, + "string_decoder": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", + "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", + "dev": true, + "requires": { + "safe-buffer": "5.1.1" + } + } + } + }, + "micromatch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.5.tgz", + "integrity": "sha512-ykttrLPQrz1PUJcXjwsTUjGoPJ64StIGNE2lGVD1c9CuguJ+L7/navsE8IcDNndOoCMvYV0qc/exfVbMHkUhvA==", + "dev": true, + "requires": { + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "braces": "2.3.0", + "define-property": "1.0.0", + "extend-shallow": "2.0.1", + "extglob": "2.0.4", + "fragment-cache": "0.2.1", + "kind-of": "6.0.2", + "nanomatch": "1.2.7", + "object.pick": "1.3.0", + "regex-not": "1.0.0", + "snapdragon": "0.8.1", + "to-regex": "3.0.1" + } + }, + "minimatch": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.10.tgz", + "integrity": "sha1-jQh8OcazjAAbl/ynzm0OHoCvusc=", + "dev": true, + "requires": { + "brace-expansion": "1.1.8" + } + }, + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "dev": true + }, + "mixin-deep": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.0.tgz", + "integrity": "sha512-dgaCvoh6i1nosAUBKb0l0pfJ78K8+S9fluyIR2YvAeUD/QuMahnFnF3xYty5eYXMjhGSsB0DsW6A0uAZyetoAg==", + "dev": true, + "requires": { + "for-in": "1.0.2", + "is-extendable": "1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "2.0.4" + } + } + } + }, + "mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "dev": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "multipipe": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/multipipe/-/multipipe-0.1.2.tgz", + "integrity": "sha1-Ko8t33Du1WTf8tV/HhoTfZ8FB4s=", + "dev": true, + "requires": { + "duplexer2": "0.0.2" + } + }, + "nan": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.8.0.tgz", + "integrity": "sha1-7XFfP+neArV6XmJS2QqWZ14fCFo=", + "dev": true, + "optional": true + }, + "nanomatch": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.7.tgz", + "integrity": "sha512-/5ldsnyurvEw7wNpxLFgjVvBLMta43niEYOy0CJ4ntcYSbx6bugRUTQeFb4BR/WanEL1o3aQgHuVLHQaB6tOqg==", + "dev": true, + "requires": { + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "define-property": "1.0.0", + "extend-shallow": "2.0.1", + "fragment-cache": "0.2.1", + "is-odd": "1.0.0", + "kind-of": "5.1.0", + "object.pick": "1.3.0", + "regex-not": "1.0.0", + "snapdragon": "0.8.1", + "to-regex": "3.0.1" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "natives": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/natives/-/natives-1.1.1.tgz", + "integrity": "sha512-8eRaxn8u/4wN8tGkhlc2cgwwvOLMLUMUn4IYTexMgWd+LyUDfeXVkk2ygQR0hvIHbJQXgHujia3ieUUDwNGkEA==", + "dev": true + }, + "node-fetch": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", + "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", + "dev": true, + "requires": { + "encoding": "0.1.12", + "is-stream": "1.1.0" + } + }, + "node-libs-browser": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-0.6.0.tgz", + "integrity": "sha1-JEgG1E0xngSLyGB7XMTq+aKdLjw=", + "dev": true, + "requires": { + "assert": "1.4.1", + "browserify-zlib": "0.1.4", + "buffer": "4.9.1", + "console-browserify": "1.1.0", + "constants-browserify": "0.0.1", + "crypto-browserify": "3.2.8", + "domain-browser": "1.1.7", + "events": "1.1.1", + "http-browserify": "1.7.0", + "https-browserify": "0.0.0", + "os-browserify": "0.1.2", + "path-browserify": "0.0.0", + "process": "0.11.10", + "punycode": "1.4.1", + "querystring-es3": "0.2.1", + "readable-stream": "1.1.14", + "stream-browserify": "1.0.0", + "string_decoder": "0.10.31", + "timers-browserify": "1.4.2", + "tty-browserify": "0.0.0", + "url": "0.10.3", + "util": "0.10.3", + "vm-browserify": "0.0.4" + } + }, + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "1.1.0" + } + }, + "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=", + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true + }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "dev": true, + "requires": { + "copy-descriptor": "0.1.1", + "define-property": "0.2.5", + "kind-of": "3.2.2" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "dev": true, + "requires": { + "isobject": "3.0.1" + } + }, + "object.defaults": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz", + "integrity": "sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8=", + "dev": true, + "requires": { + "array-each": "1.0.1", + "array-slice": "1.1.0", + "for-own": "1.0.0", + "isobject": "3.0.1" + } + }, + "object.map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz", + "integrity": "sha1-z4Plncj8wK1fQlDh94s7gb2AHTc=", + "dev": true, + "requires": { + "for-own": "1.0.0", + "make-iterator": "1.0.0" + } + }, + "object.omit": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", + "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", + "dev": true, + "requires": { + "for-own": "0.1.5", + "is-extendable": "0.1.1" + }, + "dependencies": { + "for-own": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", + "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", + "dev": true, + "requires": { + "for-in": "1.0.2" + } + } + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "dev": true, + "requires": { + "isobject": "3.0.1" + } + }, + "once": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz", + "integrity": "sha1-suJhVXzkwxTsgwTz+oJmPkKXyiA=", + "dev": true, + "requires": { + "wrappy": "1.0.2" + } + }, + "optimist": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", + "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", + "dev": true, + "requires": { + "minimist": "0.0.8", + "wordwrap": "0.0.2" + } + }, + "orchestrator": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/orchestrator/-/orchestrator-0.3.8.tgz", + "integrity": "sha1-FOfp4nZPcxX7rBhOUGx6pt+UrX4=", + "dev": true, + "requires": { + "end-of-stream": "0.1.5", + "sequencify": "0.0.7", + "stream-consume": "0.1.0" + } + }, + "ordered-read-streams": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-0.1.0.tgz", + "integrity": "sha1-/VZamvjrRHO6abbtijQ1LLVS8SY=", + "dev": true + }, + "os-browserify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.1.2.tgz", + "integrity": "sha1-ScoCk+CxlZCl9d4Qx/JlphfY/lQ=", + "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=", + "dev": true + }, + "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=", + "dev": true + }, + "pako": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", + "integrity": "sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU=", + "dev": true + }, + "parse-filepath": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz", + "integrity": "sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE=", + "dev": true, + "requires": { + "is-absolute": "1.0.0", + "map-cache": "0.2.2", + "path-root": "0.1.1" + } + }, + "parse-glob": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", + "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", + "dev": true, + "requires": { + "glob-base": "0.3.0", + "is-dotfile": "1.0.3", + "is-extglob": "1.0.0", + "is-glob": "2.0.1" + }, + "dependencies": { + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "dev": true + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "dev": true, + "requires": { + "is-extglob": "1.0.0" + } + } + } + }, + "parse-passwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", + "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", + "dev": true + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "dev": true + }, + "path-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz", + "integrity": "sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo=", + "dev": true + }, + "path-exists": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-1.0.0.tgz", + "integrity": "sha1-1aiZjrce83p0w06w2eum6HjuoIE=", + "dev": true + }, + "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=", + "dev": true + }, + "path-parse": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", + "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=", + "dev": true + }, + "path-root": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz", + "integrity": "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=", + "dev": true, + "requires": { + "path-root-regex": "0.1.2" + } + }, + "path-root-regex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz", + "integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0=", + "dev": true + }, + "pbkdf2-compat": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pbkdf2-compat/-/pbkdf2-compat-2.0.1.tgz", + "integrity": "sha1-tuDI+plJTZTgURV1gCpZpcFC8og=", + "dev": true + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "dev": true + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "dev": true, + "requires": { + "pinkie": "2.0.4" + } + }, + "pkg-dir": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", + "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", + "dev": true, + "requires": { + "find-up": "1.1.2" + } + }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "dev": true + }, + "preserve": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", + "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", + "dev": true + }, + "pretty-hrtime": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", + "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=", + "dev": true + }, + "private": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", + "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", + "dev": true + }, + "process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", + "dev": true + }, + "process-nextick-args": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", + "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=", + "dev": true + }, + "promise": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", + "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", + "dev": true, + "requires": { + "asap": "2.0.6" + } + }, + "prop-types": { + "version": "15.6.0", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.0.tgz", + "integrity": "sha1-zq8IMCL8RrSjX2nhPvda7Q1jmFY=", + "dev": true, + "requires": { + "fbjs": "0.8.16", + "loose-envify": "1.3.1", + "object-assign": "4.1.1" + } + }, + "prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", + "dev": true + }, + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true + }, + "querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", + "dev": true + }, + "querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", + "dev": true + }, + "randomatic": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz", + "integrity": "sha512-D5JUjPyJbaJDkuAazpVnSfVkLlpeO3wDlPROTMLGKG1zMFNFRgrciKo1ltz/AzNTkqE0HzDx655QOL51N06how==", + "dev": true, + "requires": { + "is-number": "3.0.0", + "kind-of": "4.0.0" + }, + "dependencies": { + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "react": { + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/react/-/react-16.0.0.tgz", + "integrity": "sha1-zn348ZQbA28Cssyp29DLHw6FXi0=", + "dev": true, + "requires": { + "fbjs": "0.8.16", + "loose-envify": "1.3.1", + "object-assign": "4.1.1", + "prop-types": "15.6.0" + } + }, + "react-dom": { + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.0.0.tgz", + "integrity": "sha1-nMMHnD3NcNTG4BuEqrKn40wwP1g=", + "dev": true, + "requires": { + "fbjs": "0.8.16", + "loose-envify": "1.3.1", + "object-assign": "4.1.1", + "prop-types": "15.6.0" + } + }, + "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.2", + "inherits": "2.0.3", + "isarray": "0.0.1", + "string_decoder": "0.10.31" + } + }, + "readdirp": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz", + "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "minimatch": "3.0.4", + "readable-stream": "2.3.3", + "set-immediate-shim": "1.0.1" + }, + "dependencies": { + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "1.1.8" + } + }, + "readable-stream": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", + "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", + "dev": true, + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "1.0.7", + "safe-buffer": "5.1.1", + "string_decoder": "1.0.3", + "util-deprecate": "1.0.2" + } + }, + "string_decoder": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", + "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", + "dev": true, + "requires": { + "safe-buffer": "5.1.1" + } + } + } + }, + "rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", + "dev": true, + "requires": { + "resolve": "1.5.0" + } + }, + "regenerate": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.3.3.tgz", + "integrity": "sha512-jVpo1GadrDAK59t/0jRx5VxYWQEDkkEKi6+HjE3joFVLfDOh9Xrdh0dF1eSq+BI/SwvTQ44gSscJ8N5zYL61sg==", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", + "dev": true + }, + "regenerator-transform": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz", + "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "private": "0.1.8" + } + }, + "regex-cache": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", + "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", + "dev": true, + "requires": { + "is-equal-shallow": "0.1.3" + } + }, + "regex-not": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.0.tgz", + "integrity": "sha1-Qvg+OXcWIt+CawKvF2Ul1qXxV/k=", + "dev": true, + "requires": { + "extend-shallow": "2.0.1" + } + }, + "regexpu-core": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", + "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", + "dev": true, + "requires": { + "regenerate": "1.3.3", + "regjsgen": "0.2.0", + "regjsparser": "0.1.5" + } + }, + "regjsgen": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", + "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=", + "dev": true + }, + "regjsparser": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", + "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", + "dev": true, + "requires": { + "jsesc": "0.5.0" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "dev": true + } + } + }, + "remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", + "dev": true + }, + "repeat-element": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", + "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=", + "dev": true + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "dev": true + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "dev": true, + "requires": { + "is-finite": "1.0.2" + } + }, + "replace-ext": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz", + "integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=", + "dev": true + }, + "resolve": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.5.0.tgz", + "integrity": "sha512-hgoSGrc3pjzAPHNBg+KnFcK2HwlHTs/YrAGUr6qgTVUZmXv1UEXXl0bZNBKMA9fud6lRYFdPGz0xXxycPzmmiw==", + "dev": true, + "requires": { + "path-parse": "1.0.5" + } + }, + "resolve-dir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", + "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", + "dev": true, + "requires": { + "expand-tilde": "2.0.2", + "global-modules": "1.0.0" + } + }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "dev": true + }, + "right-align": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", + "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", + "dev": true, + "requires": { + "align-text": "0.1.4" + } + }, + "ripemd160": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-0.2.0.tgz", + "integrity": "sha1-K/GYveFnys+lHAqSjoS2i74XH84=", + "dev": true + }, + "safe-buffer": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", + "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==", + "dev": true + }, + "semver": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz", + "integrity": "sha1-MAvG4OhjdPe6YQaLWx7NV/xlMto=", + "dev": true + }, + "sequencify": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/sequencify/-/sequencify-0.0.7.tgz", + "integrity": "sha1-kM/xnQLgcCf9dn9erT57ldHnOAw=", + "dev": true + }, + "set-getter": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/set-getter/-/set-getter-0.1.0.tgz", + "integrity": "sha1-12nBgsnVpR9AkUXy+6guXoboA3Y=", + "dev": true, + "requires": { + "to-object-path": "0.3.0" + } + }, + "set-immediate-shim": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", + "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", + "dev": true + }, + "set-value": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", + "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", + "dev": true, + "requires": { + "extend-shallow": "2.0.1", + "is-extendable": "0.1.1", + "is-plain-object": "2.0.4", + "split-string": "3.1.0" + } + }, + "setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", + "dev": true + }, + "sha.js": { + "version": "2.2.6", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.2.6.tgz", + "integrity": "sha1-F93t3F9yL7ZlAWWIlUYZd4ZzFbo=", + "dev": true + }, + "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 + }, + "sigmund": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", + "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=", + "dev": true + }, + "slash": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", + "dev": true + }, + "snapdragon": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.1.tgz", + "integrity": "sha1-4StUh/re0+PeoKyR6UAL91tAE3A=", + "dev": true, + "requires": { + "base": "0.11.2", + "debug": "2.6.9", + "define-property": "0.2.5", + "extend-shallow": "2.0.1", + "map-cache": "0.2.2", + "source-map": "0.5.7", + "source-map-resolve": "0.5.1", + "use": "2.0.2" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dev": true, + "requires": { + "define-property": "1.0.0", + "isobject": "3.0.1", + "snapdragon-util": "3.0.1" + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "source-list-map": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-0.1.8.tgz", + "integrity": "sha1-xVCyq1Qn9rPyH1r+rYjE9Vh7IQY=", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "source-map-resolve": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.1.tgz", + "integrity": "sha512-0KW2wvzfxm8NCTb30z0LMNyPqWCdDGE2viwzUaucqJdkTRXtZiSY3I+2A6nVAjmdOy0I4gU8DwnVVGsk9jvP2A==", + "dev": true, + "requires": { + "atob": "2.0.3", + "decode-uri-component": "0.2.0", + "resolve-url": "0.2.1", + "source-map-url": "0.4.0", + "urix": "0.1.0" + } + }, + "source-map-support": { + "version": "0.4.18", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", + "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", + "dev": true, + "requires": { + "source-map": "0.5.7" + } + }, + "source-map-url": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", + "dev": true + }, + "sparkles": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.0.tgz", + "integrity": "sha1-Gsu/tZJDbRC76PeFt8xvgoFQEsM=", + "dev": true + }, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dev": true, + "requires": { + "extend-shallow": "3.0.2" + }, + "dependencies": { + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "requires": { + "assign-symbols": "1.0.0", + "is-extendable": "1.0.1" + } + }, + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "2.0.4" + } + } + } + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "dev": true, + "requires": { + "define-property": "0.2.5", + "object-copy": "0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "stream-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-1.0.0.tgz", + "integrity": "sha1-v5tKv7QrJ011FHnkTg/yZWtvEZM=", + "dev": true, + "requires": { + "inherits": "2.0.3", + "readable-stream": "1.1.14" + } + }, + "stream-consume": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/stream-consume/-/stream-consume-0.1.0.tgz", + "integrity": "sha1-pB6tGm1ggc63n2WwYZAbbY89HQ8=", + "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 + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } + }, + "strip-bom": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-1.0.0.tgz", + "integrity": "sha1-hbiGLzhEtabV7IRnqTWYFzo295Q=", + "dev": true, + "requires": { + "first-chunk-stream": "1.0.0", + "is-utf8": "0.2.1" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + }, + "tapable": { + "version": "0.1.10", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.1.10.tgz", + "integrity": "sha1-KcNXB8K3DlDQdIK10gLo7URtr9Q=", + "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 + }, + "through2": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", + "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", + "dev": true, + "requires": { + "readable-stream": "2.3.3", + "xtend": "4.0.1" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "readable-stream": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", + "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", + "dev": true, + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "1.0.7", + "safe-buffer": "5.1.1", + "string_decoder": "1.0.3", + "util-deprecate": "1.0.2" + } + }, + "string_decoder": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", + "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", + "dev": true, + "requires": { + "safe-buffer": "5.1.1" + } + } + } + }, + "tildify": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/tildify/-/tildify-1.2.0.tgz", + "integrity": "sha1-3OwD9V3Km3qj5bBPIYF+tW5jWIo=", + "dev": true, + "requires": { + "os-homedir": "1.0.2" + } + }, + "time-stamp": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz", + "integrity": "sha1-dkpaEa9QVhkhsTPztE5hhofg9cM=", + "dev": true + }, + "timers-browserify": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-1.4.2.tgz", + "integrity": "sha1-ycWLV1voQHN1y14kYtrO50NZ9B0=", + "dev": true, + "requires": { + "process": "0.11.10" + } + }, + "to-fast-properties": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "dev": true + }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "to-regex": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.1.tgz", + "integrity": "sha1-FTWL7kosg712N3uh3ASdDxiDeq4=", + "dev": true, + "requires": { + "define-property": "0.2.5", + "extend-shallow": "2.0.1", + "regex-not": "1.0.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "3.0.0", + "repeat-string": "1.6.1" + } + }, + "trim-right": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", + "dev": true + }, + "tty-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", + "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", + "dev": true + }, + "ua-parser-js": { + "version": "0.7.17", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.17.tgz", + "integrity": "sha512-uRdSdu1oA1rncCQL7sCj8vSyZkgtL7faaw9Tc9rZ3mGgraQ7+Pdx7w5mnOSF3gw9ZNG6oc+KXfkon3bKuROm0g==", + "dev": true + }, + "uglify-js": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.6.4.tgz", + "integrity": "sha1-ZeovswWck5RpLxX+2HwrNsFrmt8=", + "dev": true, + "requires": { + "async": "0.2.10", + "source-map": "0.5.7", + "uglify-to-browserify": "1.0.2", + "yargs": "3.10.0" + } + }, + "uglify-save-license": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/uglify-save-license/-/uglify-save-license-0.4.1.tgz", + "integrity": "sha1-lXJsF8xv0XHDYX479NjYKqjEzOE=", + "dev": true + }, + "uglify-to-browserify": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", + "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", + "dev": true + }, + "unc-path-regex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", + "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=", + "dev": true + }, + "union-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", + "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", + "dev": true, + "requires": { + "arr-union": "3.1.0", + "get-value": "2.0.6", + "is-extendable": "0.1.1", + "set-value": "0.4.3" + }, + "dependencies": { + "set-value": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", + "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", + "dev": true, + "requires": { + "extend-shallow": "2.0.1", + "is-extendable": "0.1.1", + "is-plain-object": "2.0.4", + "to-object-path": "0.3.0" + } + } + } + }, + "unique-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-1.0.0.tgz", + "integrity": "sha1-1ZpKdUJ0R9mqbJHnAmP40mpLEEs=", + "dev": true + }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "dev": true, + "requires": { + "has-value": "0.3.1", + "isobject": "3.0.1" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "dev": true, + "requires": { + "get-value": "2.0.6", + "has-values": "0.1.4", + "isobject": "2.1.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + } + } + }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "dev": true + }, + "url": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/url/-/url-0.10.3.tgz", + "integrity": "sha1-Ah5NnHcF8hu/N9A861h2dAJ3TGQ=", + "dev": true, + "requires": { + "punycode": "1.3.2", + "querystring": "0.2.0" + }, + "dependencies": { + "punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", + "dev": true + } + } + }, + "use": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/use/-/use-2.0.2.tgz", + "integrity": "sha1-riig1y+TvyJCKhii43mZMRLeyOg=", + "dev": true, + "requires": { + "define-property": "0.2.5", + "isobject": "3.0.1", + "lazy-cache": "2.0.2" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "user-home": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz", + "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA=", + "dev": true + }, + "util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", + "dev": true, + "requires": { + "inherits": "2.0.1" + }, + "dependencies": { + "inherits": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", + "dev": true + } + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true + }, + "v8flags": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz", + "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=", + "dev": true, + "requires": { + "user-home": "1.1.1" + } + }, + "vinyl": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.5.3.tgz", + "integrity": "sha1-sEVbOPxeDPMNQyUTLkYZcMIJHN4=", + "dev": true, + "requires": { + "clone": "1.0.3", + "clone-stats": "0.0.1", + "replace-ext": "0.0.1" + } + }, + "vinyl-fs": { + "version": "0.3.14", + "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-0.3.14.tgz", + "integrity": "sha1-mmhRzhysHBzqX+hsCTHWIMLPqeY=", + "dev": true, + "requires": { + "defaults": "1.0.3", + "glob-stream": "3.1.18", + "glob-watcher": "0.0.6", + "graceful-fs": "3.0.11", + "mkdirp": "0.5.1", + "strip-bom": "1.0.0", + "through2": "0.6.5", + "vinyl": "0.4.6" + }, + "dependencies": { + "clone": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/clone/-/clone-0.2.0.tgz", + "integrity": "sha1-xhJqkK1Pctv1rNskPMN3JP6T/B8=", + "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.2", + "inherits": "2.0.3", + "isarray": "0.0.1", + "string_decoder": "0.10.31" + } + }, + "through2": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", + "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", + "dev": true, + "requires": { + "readable-stream": "1.0.34", + "xtend": "4.0.1" + } + }, + "vinyl": { + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.4.6.tgz", + "integrity": "sha1-LzVsh6VQolVGHza76ypbqL94SEc=", + "dev": true, + "requires": { + "clone": "0.2.0", + "clone-stats": "0.0.1" + } + } + } + }, + "vinyl-named": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/vinyl-named/-/vinyl-named-1.1.0.tgz", + "integrity": "sha1-lOT+dB442w7DA+Wz2Giyl6Leq2Y=", + "dev": true, + "requires": { + "through": "2.3.8" + } + }, + "vinyl-sourcemaps-apply": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/vinyl-sourcemaps-apply/-/vinyl-sourcemaps-apply-0.2.1.tgz", + "integrity": "sha1-q2VJ1h0XLCsbh75cUI0jnI74dwU=", + "dev": true, + "requires": { + "source-map": "0.5.7" + } + }, + "vm-browserify": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", + "integrity": "sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=", + "dev": true, + "requires": { + "indexof": "0.0.1" + } + }, + "watchpack": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-0.2.9.tgz", + "integrity": "sha1-Yuqkq15bo1/fwBgnVibjwPXj+ws=", + "dev": true, + "requires": { + "async": "0.9.2", + "chokidar": "1.7.0", + "graceful-fs": "4.1.11" + }, + "dependencies": { + "async": { + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz", + "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=", + "dev": true + }, + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true + } + } + }, + "webpack": { + "version": "1.13.3", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-1.13.3.tgz", + "integrity": "sha1-55xG/lo3xcpwCEugiUxZXNy0KBU=", + "dev": true, + "requires": { + "acorn": "3.3.0", + "async": "1.5.2", + "clone": "1.0.3", + "enhanced-resolve": "0.9.1", + "interpret": "0.6.6", + "loader-utils": "0.2.17", + "memory-fs": "0.3.0", + "mkdirp": "0.5.1", + "node-libs-browser": "0.6.0", + "optimist": "0.6.1", + "supports-color": "3.2.3", + "tapable": "0.1.10", + "uglify-js": "2.7.5", + "watchpack": "0.2.9", + "webpack-core": "0.6.9" + }, + "dependencies": { + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "dev": true + }, + "interpret": { + "version": "0.6.6", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-0.6.6.tgz", + "integrity": "sha1-/s16GOfOXKar+5U+H4YhOknxYls=", + "dev": true + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "requires": { + "has-flag": "1.0.0" + } + }, + "uglify-js": { + "version": "2.7.5", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.7.5.tgz", + "integrity": "sha1-RhLAx7qu4rp8SH3kkErhIgefLKg=", + "dev": true, + "requires": { + "async": "0.2.10", + "source-map": "0.5.7", + "uglify-to-browserify": "1.0.2", + "yargs": "3.10.0" + }, + "dependencies": { + "async": { + "version": "0.2.10", + "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz", + "integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E=", + "dev": true + } + } + } + } + }, + "webpack-core": { + "version": "0.6.9", + "resolved": "https://registry.npmjs.org/webpack-core/-/webpack-core-0.6.9.tgz", + "integrity": "sha1-/FcViMhVjad76e+23r3Fo7FyvcI=", + "dev": true, + "requires": { + "source-list-map": "0.1.8", + "source-map": "0.4.4" + }, + "dependencies": { + "source-map": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", + "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", + "dev": true, + "requires": { + "amdefine": "1.0.1" + } + } + } + }, + "webpack-stream": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/webpack-stream/-/webpack-stream-3.2.0.tgz", + "integrity": "sha1-Oh0WD7EdQXJ7fObzL3IkZPmLIYY=", + "dev": true, + "requires": { + "gulp-util": "3.0.8", + "lodash.clone": "4.5.0", + "lodash.some": "4.6.0", + "memory-fs": "0.3.0", + "through": "2.3.8", + "vinyl": "1.2.0", + "webpack": "1.13.3" + }, + "dependencies": { + "vinyl": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-1.2.0.tgz", + "integrity": "sha1-XIgDbPVl5d8FVYv8kR+GVt8hiIQ=", + "dev": true, + "requires": { + "clone": "1.0.3", + "clone-stats": "0.0.1", + "replace-ext": "0.0.1" + } + } + } + }, + "whatwg-fetch": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz", + "integrity": "sha1-nITsLc9oGH/wC8ZOEnS0QhduHIQ=", + "dev": true + }, + "which": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz", + "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", + "dev": true, + "requires": { + "isexe": "2.0.0" + } + }, + "window-size": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", + "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", + "dev": true + }, + "wordwrap": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", + "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", + "dev": true + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "xtend": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", + "dev": true + }, + "yargs": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", + "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", + "dev": true, + "requires": { + "camelcase": "1.2.1", + "cliui": "2.1.0", + "decamelize": "1.2.0", + "window-size": "0.1.0" + } + } + } +} diff --git a/src/React.Sample.Router.CoreMvc/package-lock.json b/src/React.Sample.Router.CoreMvc/package-lock.json new file mode 100644 index 000000000..520c08892 --- /dev/null +++ b/src/React.Sample.Router.CoreMvc/package-lock.json @@ -0,0 +1,3876 @@ +{ + "name": "React.Sample.Router.CoreMvc", + "version": "1.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "acorn": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.3.0.tgz", + "integrity": "sha512-Yej+zOJ1Dm/IMZzzj78OntP/r3zHEaKcyNoU2lAaxPtrseM6rF0xwqoz5Q5ysAiED9hTjI2hgtvLXitlCN1/Ug==" + }, + "acorn-dynamic-import": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-2.0.2.tgz", + "integrity": "sha1-x1K9IQvvZ5UBtsbLf8hPj0cVjMQ=", + "requires": { + "acorn": "4.0.13" + }, + "dependencies": { + "acorn": { + "version": "4.0.13", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", + "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=" + } + } + }, + "ajv": { + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", + "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", + "requires": { + "co": "4.6.0", + "fast-deep-equal": "1.0.0", + "fast-json-stable-stringify": "2.0.0", + "json-schema-traverse": "0.3.1" + } + }, + "ajv-keywords": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.1.tgz", + "integrity": "sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I=" + }, + "align-text": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", + "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", + "requires": { + "kind-of": "3.2.2", + "longest": "1.0.1", + "repeat-string": "1.6.1" + } + }, + "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=" + }, + "anymatch": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", + "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", + "requires": { + "micromatch": "2.3.11", + "normalize-path": "2.1.1" + } + }, + "arr-diff": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", + "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", + "requires": { + "arr-flatten": "1.1.0" + } + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==" + }, + "array-unique": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", + "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=" + }, + "asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" + }, + "asn1.js": { + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.9.2.tgz", + "integrity": "sha512-b/OsSjvWEo8Pi8H0zsDd2P6Uqo2TK2pH8gNLSJtNLM2Db0v2QaAZ0pBQJXVjAn4gBuugeVDr7s63ZogpUIwWDg==", + "requires": { + "bn.js": "4.11.8", + "inherits": "2.0.3", + "minimalistic-assert": "1.0.0" + } + }, + "assert": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz", + "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=", + "requires": { + "util": "0.10.3" + } + }, + "async": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.0.tgz", + "integrity": "sha512-xAfGg1/NTLBBKlHFmnd7PlmUW9KhVQIUuSrYem9xzFUZy13ScvtyGGejaae9iAVRiRq9+Cx7DPFaAAhCpyxyPw==", + "requires": { + "lodash": "4.17.4" + } + }, + "async-each": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", + "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=" + }, + "babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "requires": { + "chalk": "1.1.3", + "esutils": "2.0.2", + "js-tokens": "3.0.2" + } + }, + "babel-core": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.0.tgz", + "integrity": "sha1-rzL3izGm/O8RnIew/Y2XU/A6C7g=", + "requires": { + "babel-code-frame": "6.26.0", + "babel-generator": "6.26.0", + "babel-helpers": "6.24.1", + "babel-messages": "6.23.0", + "babel-register": "6.26.0", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "convert-source-map": "1.5.1", + "debug": "2.6.9", + "json5": "0.5.1", + "lodash": "4.17.4", + "minimatch": "3.0.4", + "path-is-absolute": "1.0.1", + "private": "0.1.8", + "slash": "1.0.0", + "source-map": "0.5.7" + } + }, + "babel-generator": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.0.tgz", + "integrity": "sha1-rBriAHC3n248odMmlhMFN3TyDcU=", + "requires": { + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "detect-indent": "4.0.0", + "jsesc": "1.3.0", + "lodash": "4.17.4", + "source-map": "0.5.7", + "trim-right": "1.0.1" + } + }, + "babel-helper-builder-binary-assignment-operator-visitor": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz", + "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=", + "requires": { + "babel-helper-explode-assignable-expression": "6.24.1", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-helper-builder-react-jsx": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.26.0.tgz", + "integrity": "sha1-Of+DE7dci2Xc7/HzHTg+D/KkCKA=", + "requires": { + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "esutils": "2.0.2" + } + }, + "babel-helper-call-delegate": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz", + "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", + "requires": { + "babel-helper-hoist-variables": "6.24.1", + "babel-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-helper-define-map": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz", + "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=", + "requires": { + "babel-helper-function-name": "6.24.1", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "lodash": "4.17.4" + } + }, + "babel-helper-explode-assignable-expression": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz", + "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=", + "requires": { + "babel-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-helper-function-name": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", + "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", + "requires": { + "babel-helper-get-function-arity": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-helper-get-function-arity": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", + "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", + "requires": { + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-helper-hoist-variables": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz", + "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", + "requires": { + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-helper-optimise-call-expression": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz", + "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=", + "requires": { + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-helper-regex": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz", + "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", + "requires": { + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "lodash": "4.17.4" + } + }, + "babel-helper-remap-async-to-generator": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz", + "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=", + "requires": { + "babel-helper-function-name": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-helper-replace-supers": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz", + "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=", + "requires": { + "babel-helper-optimise-call-expression": "6.24.1", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-helpers": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", + "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", + "requires": { + "babel-runtime": "6.26.0", + "babel-template": "6.26.0" + } + }, + "babel-loader": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-7.1.2.tgz", + "integrity": "sha512-jRwlFbINAeyDStqK6Dd5YuY0k5YuzQUvlz2ZamuXrXmxav3pNqe9vfJ402+2G+OmlJSXxCOpB6Uz0INM7RQe2A==", + "requires": { + "find-cache-dir": "1.0.0", + "loader-utils": "1.1.0", + "mkdirp": "0.5.1" + } + }, + "babel-messages": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-add-module-exports": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/babel-plugin-add-module-exports/-/babel-plugin-add-module-exports-0.2.1.tgz", + "integrity": "sha1-mumh9KjcZ/DN7E9K7aHkOl/2XiU=" + }, + "babel-plugin-check-es2015-constants": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz", + "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-syntax-async-functions": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz", + "integrity": "sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU=" + }, + "babel-plugin-syntax-exponentiation-operator": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz", + "integrity": "sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4=" + }, + "babel-plugin-syntax-flow": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-flow/-/babel-plugin-syntax-flow-6.18.0.tgz", + "integrity": "sha1-TDqyCiryaqIM0lmVw5jE63AxDI0=" + }, + "babel-plugin-syntax-jsx": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz", + "integrity": "sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY=" + }, + "babel-plugin-syntax-trailing-function-commas": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz", + "integrity": "sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM=" + }, + "babel-plugin-transform-async-to-generator": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz", + "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=", + "requires": { + "babel-helper-remap-async-to-generator": "6.24.1", + "babel-plugin-syntax-async-functions": "6.13.0", + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-es2015-arrow-functions": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", + "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=", + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-es2015-block-scoped-functions": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", + "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=", + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-es2015-block-scoping": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz", + "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=", + "requires": { + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "lodash": "4.17.4" + } + }, + "babel-plugin-transform-es2015-classes": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz", + "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=", + "requires": { + "babel-helper-define-map": "6.26.0", + "babel-helper-function-name": "6.24.1", + "babel-helper-optimise-call-expression": "6.24.1", + "babel-helper-replace-supers": "6.24.1", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-plugin-transform-es2015-computed-properties": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz", + "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=", + "requires": { + "babel-runtime": "6.26.0", + "babel-template": "6.26.0" + } + }, + "babel-plugin-transform-es2015-destructuring": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", + "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-es2015-duplicate-keys": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz", + "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=", + "requires": { + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-plugin-transform-es2015-for-of": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz", + "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=", + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-es2015-function-name": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz", + "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", + "requires": { + "babel-helper-function-name": "6.24.1", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-plugin-transform-es2015-literals": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz", + "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=", + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-es2015-modules-amd": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", + "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=", + "requires": { + "babel-plugin-transform-es2015-modules-commonjs": "6.26.0", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0" + } + }, + "babel-plugin-transform-es2015-modules-commonjs": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.0.tgz", + "integrity": "sha1-DYOUApt9xqvhqX7xgeAHWN0uXYo=", + "requires": { + "babel-plugin-transform-strict-mode": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-plugin-transform-es2015-modules-systemjs": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz", + "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=", + "requires": { + "babel-helper-hoist-variables": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0" + } + }, + "babel-plugin-transform-es2015-modules-umd": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz", + "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=", + "requires": { + "babel-plugin-transform-es2015-modules-amd": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0" + } + }, + "babel-plugin-transform-es2015-object-super": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz", + "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=", + "requires": { + "babel-helper-replace-supers": "6.24.1", + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-es2015-parameters": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz", + "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", + "requires": { + "babel-helper-call-delegate": "6.24.1", + "babel-helper-get-function-arity": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-plugin-transform-es2015-shorthand-properties": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz", + "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=", + "requires": { + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-plugin-transform-es2015-spread": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz", + "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-es2015-sticky-regex": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", + "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", + "requires": { + "babel-helper-regex": "6.26.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-plugin-transform-es2015-template-literals": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz", + "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=", + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-es2015-typeof-symbol": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", + "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=", + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-es2015-unicode-regex": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", + "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", + "requires": { + "babel-helper-regex": "6.26.0", + "babel-runtime": "6.26.0", + "regexpu-core": "2.0.0" + } + }, + "babel-plugin-transform-exponentiation-operator": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz", + "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=", + "requires": { + "babel-helper-builder-binary-assignment-operator-visitor": "6.24.1", + "babel-plugin-syntax-exponentiation-operator": "6.13.0", + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-flow-strip-types": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.22.0.tgz", + "integrity": "sha1-hMtnKTXUNxT9wyvOhFaNh0Qc988=", + "requires": { + "babel-plugin-syntax-flow": "6.18.0", + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-react-display-name": { + "version": "6.25.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-display-name/-/babel-plugin-transform-react-display-name-6.25.0.tgz", + "integrity": "sha1-Z+K/Hx6ck6sI25Z5LgU5K/LMKNE=", + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-react-jsx": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.24.1.tgz", + "integrity": "sha1-hAoCjn30YN/DotKfDA2R9jduZqM=", + "requires": { + "babel-helper-builder-react-jsx": "6.26.0", + "babel-plugin-syntax-jsx": "6.18.0", + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-react-jsx-self": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-self/-/babel-plugin-transform-react-jsx-self-6.22.0.tgz", + "integrity": "sha1-322AqdomEqEh5t3XVYvL7PBuY24=", + "requires": { + "babel-plugin-syntax-jsx": "6.18.0", + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-react-jsx-source": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-source/-/babel-plugin-transform-react-jsx-source-6.22.0.tgz", + "integrity": "sha1-ZqwSFT9c0tF7PBkmj0vwGX9E7NY=", + "requires": { + "babel-plugin-syntax-jsx": "6.18.0", + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-regenerator": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz", + "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=", + "requires": { + "regenerator-transform": "0.10.1" + } + }, + "babel-plugin-transform-strict-mode": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", + "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", + "requires": { + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-preset-env": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.6.1.tgz", + "integrity": "sha512-W6VIyA6Ch9ePMI7VptNn2wBM6dbG0eSz25HEiL40nQXCsXGTGZSTZu1Iap+cj3Q0S5a7T9+529l/5Bkvd+afNA==", + "requires": { + "babel-plugin-check-es2015-constants": "6.22.0", + "babel-plugin-syntax-trailing-function-commas": "6.22.0", + "babel-plugin-transform-async-to-generator": "6.24.1", + "babel-plugin-transform-es2015-arrow-functions": "6.22.0", + "babel-plugin-transform-es2015-block-scoped-functions": "6.22.0", + "babel-plugin-transform-es2015-block-scoping": "6.26.0", + "babel-plugin-transform-es2015-classes": "6.24.1", + "babel-plugin-transform-es2015-computed-properties": "6.24.1", + "babel-plugin-transform-es2015-destructuring": "6.23.0", + "babel-plugin-transform-es2015-duplicate-keys": "6.24.1", + "babel-plugin-transform-es2015-for-of": "6.23.0", + "babel-plugin-transform-es2015-function-name": "6.24.1", + "babel-plugin-transform-es2015-literals": "6.22.0", + "babel-plugin-transform-es2015-modules-amd": "6.24.1", + "babel-plugin-transform-es2015-modules-commonjs": "6.26.0", + "babel-plugin-transform-es2015-modules-systemjs": "6.24.1", + "babel-plugin-transform-es2015-modules-umd": "6.24.1", + "babel-plugin-transform-es2015-object-super": "6.24.1", + "babel-plugin-transform-es2015-parameters": "6.24.1", + "babel-plugin-transform-es2015-shorthand-properties": "6.24.1", + "babel-plugin-transform-es2015-spread": "6.22.0", + "babel-plugin-transform-es2015-sticky-regex": "6.24.1", + "babel-plugin-transform-es2015-template-literals": "6.22.0", + "babel-plugin-transform-es2015-typeof-symbol": "6.23.0", + "babel-plugin-transform-es2015-unicode-regex": "6.24.1", + "babel-plugin-transform-exponentiation-operator": "6.24.1", + "babel-plugin-transform-regenerator": "6.26.0", + "browserslist": "2.11.3", + "invariant": "2.2.2", + "semver": "5.5.0" + } + }, + "babel-preset-flow": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-preset-flow/-/babel-preset-flow-6.23.0.tgz", + "integrity": "sha1-5xIYiHCFrpoktb5Baa/7WZgWxJ0=", + "requires": { + "babel-plugin-transform-flow-strip-types": "6.22.0" + } + }, + "babel-preset-react": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-preset-react/-/babel-preset-react-6.24.1.tgz", + "integrity": "sha1-umnfrqRfw+xjm2pOzqbhdwLJE4A=", + "requires": { + "babel-plugin-syntax-jsx": "6.18.0", + "babel-plugin-transform-react-display-name": "6.25.0", + "babel-plugin-transform-react-jsx": "6.24.1", + "babel-plugin-transform-react-jsx-self": "6.22.0", + "babel-plugin-transform-react-jsx-source": "6.22.0", + "babel-preset-flow": "6.23.0" + } + }, + "babel-register": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", + "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", + "requires": { + "babel-core": "6.26.0", + "babel-runtime": "6.26.0", + "core-js": "2.5.3", + "home-or-tmp": "2.0.0", + "lodash": "4.17.4", + "mkdirp": "0.5.1", + "source-map-support": "0.4.18" + } + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "requires": { + "core-js": "2.5.3", + "regenerator-runtime": "0.11.1" + } + }, + "babel-template": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", + "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", + "requires": { + "babel-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "lodash": "4.17.4" + } + }, + "babel-traverse": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", + "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", + "requires": { + "babel-code-frame": "6.26.0", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "debug": "2.6.9", + "globals": "9.18.0", + "invariant": "2.2.2", + "lodash": "4.17.4" + } + }, + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "requires": { + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.4", + "to-fast-properties": "1.0.3" + } + }, + "babylon": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==" + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + }, + "base64-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.2.1.tgz", + "integrity": "sha512-dwVUVIXsBZXwTuwnXI9RK8sBmgq09NDHzyR9SAph9eqk76gKK2JSQmZARC2zRC81JC2QTtxD0ARU5qTS25gIGw==" + }, + "big.js": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz", + "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==" + }, + "binary-extensions": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.11.0.tgz", + "integrity": "sha1-RqoXUftqL5PuXmibsQh9SxTGwgU=" + }, + "bn.js": { + "version": "4.11.8", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", + "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==" + }, + "brace-expansion": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", + "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", + "requires": { + "balanced-match": "1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", + "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", + "requires": { + "expand-range": "1.8.2", + "preserve": "0.2.0", + "repeat-element": "1.1.2" + } + }, + "brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" + }, + "browserify-aes": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.1.1.tgz", + "integrity": "sha512-UGnTYAnB2a3YuYKIRy1/4FB2HdM866E0qC46JXvVTYKlBlZlnvfpSfY6OKfXZAkv70eJ2a1SqzpAo5CRhZGDFg==", + "requires": { + "buffer-xor": "1.0.3", + "cipher-base": "1.0.4", + "create-hash": "1.1.3", + "evp_bytestokey": "1.0.3", + "inherits": "2.0.3", + "safe-buffer": "5.1.1" + } + }, + "browserify-cipher": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.0.tgz", + "integrity": "sha1-mYgkSHS/XtTijalWZtzWasj8Njo=", + "requires": { + "browserify-aes": "1.1.1", + "browserify-des": "1.0.0", + "evp_bytestokey": "1.0.3" + } + }, + "browserify-des": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.0.tgz", + "integrity": "sha1-2qJ3cXRwki7S/hhZQRihdUOXId0=", + "requires": { + "cipher-base": "1.0.4", + "des.js": "1.0.0", + "inherits": "2.0.3" + } + }, + "browserify-rsa": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", + "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", + "requires": { + "bn.js": "4.11.8", + "randombytes": "2.0.6" + } + }, + "browserify-sign": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz", + "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=", + "requires": { + "bn.js": "4.11.8", + "browserify-rsa": "4.0.1", + "create-hash": "1.1.3", + "create-hmac": "1.1.6", + "elliptic": "6.4.0", + "inherits": "2.0.3", + "parse-asn1": "5.1.0" + } + }, + "browserify-zlib": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", + "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "requires": { + "pako": "1.0.6" + } + }, + "browserslist": { + "version": "2.11.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-2.11.3.tgz", + "integrity": "sha512-yWu5cXT7Av6mVwzWc8lMsJMHWn4xyjSuGYi4IozbVTLUOEYPSagUB8kiMDUHA1fS3zjr8nkxkn9jdvug4BBRmA==", + "requires": { + "caniuse-lite": "1.0.30000792", + "electron-to-chromium": "1.3.31" + } + }, + "buffer": { + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", + "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=", + "requires": { + "base64-js": "1.2.1", + "ieee754": "1.1.8", + "isarray": "1.0.0" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + } + } + }, + "buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=" + }, + "builtin-modules": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", + "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=" + }, + "builtin-status-codes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", + "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=" + }, + "camelcase": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", + "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=" + }, + "caniuse-lite": { + "version": "1.0.30000792", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000792.tgz", + "integrity": "sha1-0M6pgfgRjzlhRxr7tDyaHlu/AzI=" + }, + "center-align": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", + "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", + "requires": { + "align-text": "0.1.4", + "lazy-cache": "1.0.4" + } + }, + "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.5", + "has-ansi": "2.0.0", + "strip-ansi": "3.0.1", + "supports-color": "2.0.0" + } + }, + "chokidar": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", + "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", + "requires": { + "anymatch": "1.3.2", + "async-each": "1.0.1", + "fsevents": "1.1.3", + "glob-parent": "2.0.0", + "inherits": "2.0.3", + "is-binary-path": "1.0.1", + "is-glob": "2.0.1", + "path-is-absolute": "1.0.1", + "readdirp": "2.1.0" + } + }, + "cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "requires": { + "inherits": "2.0.3", + "safe-buffer": "5.1.1" + } + }, + "cliui": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", + "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", + "requires": { + "center-align": "0.1.3", + "right-align": "0.1.3", + "wordwrap": "0.0.2" + } + }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" + }, + "code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "console-browserify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", + "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", + "requires": { + "date-now": "0.1.4" + } + }, + "constants-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", + "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=" + }, + "convert-source-map": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz", + "integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU=" + }, + "core-js": { + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.3.tgz", + "integrity": "sha1-isw4NFgk8W2DZbfJtCWRaOjtYD4=" + }, + "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.0", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.0.tgz", + "integrity": "sha1-iIxyNZbN92EvZJgjPuvXo1MBc30=", + "requires": { + "bn.js": "4.11.8", + "elliptic": "6.4.0" + } + }, + "create-hash": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.1.3.tgz", + "integrity": "sha1-YGBCrIuSYnUPSDyt2rD1gZFy2P0=", + "requires": { + "cipher-base": "1.0.4", + "inherits": "2.0.3", + "ripemd160": "2.0.1", + "sha.js": "2.4.9" + } + }, + "create-hmac": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.6.tgz", + "integrity": "sha1-rLniIaThe9sHbpBlfEK5PjcmzwY=", + "requires": { + "cipher-base": "1.0.4", + "create-hash": "1.1.3", + "inherits": "2.0.3", + "ripemd160": "2.0.1", + "safe-buffer": "5.1.1", + "sha.js": "2.4.9" + } + }, + "cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "requires": { + "lru-cache": "4.1.1", + "shebang-command": "1.2.0", + "which": "1.3.0" + } + }, + "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==", + "requires": { + "browserify-cipher": "1.0.0", + "browserify-sign": "4.0.4", + "create-ecdh": "4.0.0", + "create-hash": "1.1.3", + "create-hmac": "1.1.6", + "diffie-hellman": "5.0.2", + "inherits": "2.0.3", + "pbkdf2": "3.0.14", + "public-encrypt": "4.0.0", + "randombytes": "2.0.6", + "randomfill": "1.0.3" + } + }, + "d": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz", + "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=", + "requires": { + "es5-ext": "0.10.38" + } + }, + "date-now": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", + "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=" + }, + "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" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" + }, + "des.js": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz", + "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=", + "requires": { + "inherits": "2.0.3", + "minimalistic-assert": "1.0.0" + } + }, + "detect-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", + "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", + "requires": { + "repeating": "2.0.1" + } + }, + "diffie-hellman": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.2.tgz", + "integrity": "sha1-tYNXOScM/ias9jIJn97SoH8gnl4=", + "requires": { + "bn.js": "4.11.8", + "miller-rabin": "4.0.1", + "randombytes": "2.0.6" + } + }, + "domain-browser": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.1.7.tgz", + "integrity": "sha1-hnqksJP6oF8d4IwG9NeyH9+GmLw=" + }, + "electron-to-chromium": { + "version": "1.3.31", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.31.tgz", + "integrity": "sha512-XE4CLbswkZgZFn34cKFy1xaX+F5LHxeDLjY1+rsK9asDzknhbrd9g/n/01/acbU25KTsUSiLKwvlLyA+6XLUOA==" + }, + "elliptic": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.0.tgz", + "integrity": "sha1-ysmvh2LIWDYYcAPI3+GT5eLq5d8=", + "requires": { + "bn.js": "4.11.8", + "brorand": "1.1.0", + "hash.js": "1.1.3", + "hmac-drbg": "1.0.1", + "inherits": "2.0.3", + "minimalistic-assert": "1.0.0", + "minimalistic-crypto-utils": "1.0.1" + } + }, + "emojis-list": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", + "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=" + }, + "encoding": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", + "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", + "requires": { + "iconv-lite": "0.4.19" + } + }, + "enhanced-resolve": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz", + "integrity": "sha1-BCHjOf1xQZs9oT0Smzl5BAIwR24=", + "requires": { + "graceful-fs": "4.1.11", + "memory-fs": "0.4.1", + "object-assign": "4.1.1", + "tapable": "0.2.8" + } + }, + "errno": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.6.tgz", + "integrity": "sha512-IsORQDpaaSwcDP4ZZnHxgE85werpo34VYn1Ud3mq+eUsF593faR8oCZNXrROVkpFu2TsbrNhHin0aUrTsQ9vNw==", + "requires": { + "prr": "1.0.1" + } + }, + "error-ex": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", + "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", + "requires": { + "is-arrayish": "0.2.1" + } + }, + "es5-ext": { + "version": "0.10.38", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.38.tgz", + "integrity": "sha512-jCMyePo7AXbUESwbl8Qi01VSH2piY9s/a3rSU/5w/MlTIx8HPL1xn2InGN8ejt/xulcJgnTO7vqNtOAxzYd2Kg==", + "requires": { + "es6-iterator": "2.0.3", + "es6-symbol": "3.1.1" + } + }, + "es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", + "requires": { + "d": "1.0.0", + "es5-ext": "0.10.38", + "es6-symbol": "3.1.1" + } + }, + "es6-map": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz", + "integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=", + "requires": { + "d": "1.0.0", + "es5-ext": "0.10.38", + "es6-iterator": "2.0.3", + "es6-set": "0.1.5", + "es6-symbol": "3.1.1", + "event-emitter": "0.3.5" + } + }, + "es6-set": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz", + "integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=", + "requires": { + "d": "1.0.0", + "es5-ext": "0.10.38", + "es6-iterator": "2.0.3", + "es6-symbol": "3.1.1", + "event-emitter": "0.3.5" + } + }, + "es6-symbol": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz", + "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=", + "requires": { + "d": "1.0.0", + "es5-ext": "0.10.38" + } + }, + "es6-weak-map": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.2.tgz", + "integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=", + "requires": { + "d": "1.0.0", + "es5-ext": "0.10.38", + "es6-iterator": "2.0.3", + "es6-symbol": "3.1.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=" + }, + "escope": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/escope/-/escope-3.6.0.tgz", + "integrity": "sha1-4Bl16BJ4GhY6ba392AOY3GTIicM=", + "requires": { + "es6-map": "0.1.5", + "es6-weak-map": "2.0.2", + "esrecurse": "4.2.0", + "estraverse": "4.2.0" + } + }, + "esrecurse": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.0.tgz", + "integrity": "sha1-+pVo2Y04I/mkHZHpAtyrnqblsWM=", + "requires": { + "estraverse": "4.2.0", + "object-assign": "4.1.1" + } + }, + "estraverse": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", + "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=" + }, + "esutils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=" + }, + "event-emitter": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", + "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", + "requires": { + "d": "1.0.0", + "es5-ext": "0.10.38" + } + }, + "events": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", + "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=" + }, + "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==", + "requires": { + "md5.js": "1.3.4", + "safe-buffer": "5.1.1" + } + }, + "execa": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", + "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", + "requires": { + "cross-spawn": "5.1.0", + "get-stream": "3.0.0", + "is-stream": "1.1.0", + "npm-run-path": "2.0.2", + "p-finally": "1.0.0", + "signal-exit": "3.0.2", + "strip-eof": "1.0.0" + } + }, + "expand-brackets": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", + "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", + "requires": { + "is-posix-bracket": "0.1.1" + } + }, + "expand-range": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", + "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", + "requires": { + "fill-range": "2.2.3" + } + }, + "expose-loader": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/expose-loader/-/expose-loader-0.7.4.tgz", + "integrity": "sha512-lweINkewAXcQtNjd7j1gO3cd8O/8lNYijsEwH4YZ+Dv3gT2Kh9/YvJov5Mdp2A75QIhgOvsSyRa/ZG3wYjNZpA==" + }, + "extglob": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", + "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", + "requires": { + "is-extglob": "1.0.0" + } + }, + "fast-deep-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz", + "integrity": "sha1-liVqO8l1WV6zbYLpkp0GDYk0Of8=" + }, + "fast-json-stable-stringify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", + "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=" + }, + "fbjs": { + "version": "0.8.16", + "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.16.tgz", + "integrity": "sha1-XmdDL1UNxBtXK/VYR7ispk5TN9s=", + "requires": { + "core-js": "1.2.7", + "isomorphic-fetch": "2.2.1", + "loose-envify": "1.3.1", + "object-assign": "4.1.1", + "promise": "7.3.1", + "setimmediate": "1.0.5", + "ua-parser-js": "0.7.17" + }, + "dependencies": { + "core-js": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz", + "integrity": "sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY=" + } + } + }, + "filename-regex": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", + "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=" + }, + "fill-range": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz", + "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=", + "requires": { + "is-number": "2.1.0", + "isobject": "2.1.0", + "randomatic": "1.1.7", + "repeat-element": "1.1.2", + "repeat-string": "1.6.1" + } + }, + "find-cache-dir": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-1.0.0.tgz", + "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=", + "requires": { + "commondir": "1.0.1", + "make-dir": "1.1.0", + "pkg-dir": "2.0.0" + } + }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "requires": { + "locate-path": "2.0.0" + } + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" + }, + "for-own": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", + "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", + "requires": { + "for-in": "1.0.2" + } + }, + "fsevents": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.1.3.tgz", + "integrity": "sha512-WIr7iDkdmdbxu/Gh6eKEZJL6KPE74/5MEsf2whTOFNxbIoIixogroLdKYqB6FDav4Wavh/lZdzzd3b2KxIXC5Q==", + "optional": true, + "requires": { + "nan": "2.8.0", + "node-pre-gyp": "0.6.39" + }, + "dependencies": { + "abbrev": { + "version": "1.1.0", + "bundled": true, + "optional": true + }, + "ajv": { + "version": "4.11.8", + "bundled": true, + "optional": true, + "requires": { + "co": "4.6.0", + "json-stable-stringify": "1.0.1" + } + }, + "ansi-regex": { + "version": "2.1.1", + "bundled": true + }, + "aproba": { + "version": "1.1.1", + "bundled": true, + "optional": true + }, + "are-we-there-yet": { + "version": "1.1.4", + "bundled": true, + "optional": true, + "requires": { + "delegates": "1.0.0", + "readable-stream": "2.2.9" + } + }, + "asn1": { + "version": "0.2.3", + "bundled": true, + "optional": true + }, + "assert-plus": { + "version": "0.2.0", + "bundled": true, + "optional": true + }, + "asynckit": { + "version": "0.4.0", + "bundled": true, + "optional": true + }, + "aws-sign2": { + "version": "0.6.0", + "bundled": true, + "optional": true + }, + "aws4": { + "version": "1.6.0", + "bundled": true, + "optional": true + }, + "balanced-match": { + "version": "0.4.2", + "bundled": true + }, + "bcrypt-pbkdf": { + "version": "1.0.1", + "bundled": true, + "optional": true, + "requires": { + "tweetnacl": "0.14.5" + } + }, + "block-stream": { + "version": "0.0.9", + "bundled": true, + "requires": { + "inherits": "2.0.3" + } + }, + "boom": { + "version": "2.10.1", + "bundled": true, + "requires": { + "hoek": "2.16.3" + } + }, + "brace-expansion": { + "version": "1.1.7", + "bundled": true, + "requires": { + "balanced-match": "0.4.2", + "concat-map": "0.0.1" + } + }, + "buffer-shims": { + "version": "1.0.0", + "bundled": true + }, + "caseless": { + "version": "0.12.0", + "bundled": true, + "optional": true + }, + "co": { + "version": "4.6.0", + "bundled": true, + "optional": true + }, + "code-point-at": { + "version": "1.1.0", + "bundled": true + }, + "combined-stream": { + "version": "1.0.5", + "bundled": true, + "requires": { + "delayed-stream": "1.0.0" + } + }, + "concat-map": { + "version": "0.0.1", + "bundled": true + }, + "console-control-strings": { + "version": "1.1.0", + "bundled": true + }, + "core-util-is": { + "version": "1.0.2", + "bundled": true + }, + "cryptiles": { + "version": "2.0.5", + "bundled": true, + "requires": { + "boom": "2.10.1" + } + }, + "dashdash": { + "version": "1.14.1", + "bundled": true, + "optional": true, + "requires": { + "assert-plus": "1.0.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "bundled": true, + "optional": true + } + } + }, + "debug": { + "version": "2.6.8", + "bundled": true, + "optional": true, + "requires": { + "ms": "2.0.0" + } + }, + "deep-extend": { + "version": "0.4.2", + "bundled": true, + "optional": true + }, + "delayed-stream": { + "version": "1.0.0", + "bundled": true + }, + "delegates": { + "version": "1.0.0", + "bundled": true, + "optional": true + }, + "detect-libc": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "ecc-jsbn": { + "version": "0.1.1", + "bundled": true, + "optional": true, + "requires": { + "jsbn": "0.1.1" + } + }, + "extend": { + "version": "3.0.1", + "bundled": true, + "optional": true + }, + "extsprintf": { + "version": "1.0.2", + "bundled": true + }, + "forever-agent": { + "version": "0.6.1", + "bundled": true, + "optional": true + }, + "form-data": { + "version": "2.1.4", + "bundled": true, + "optional": true, + "requires": { + "asynckit": "0.4.0", + "combined-stream": "1.0.5", + "mime-types": "2.1.15" + } + }, + "fs.realpath": { + "version": "1.0.0", + "bundled": true + }, + "fstream": { + "version": "1.0.11", + "bundled": true, + "requires": { + "graceful-fs": "4.1.11", + "inherits": "2.0.3", + "mkdirp": "0.5.1", + "rimraf": "2.6.1" + } + }, + "fstream-ignore": { + "version": "1.0.5", + "bundled": true, + "optional": true, + "requires": { + "fstream": "1.0.11", + "inherits": "2.0.3", + "minimatch": "3.0.4" + } + }, + "gauge": { + "version": "2.7.4", + "bundled": true, + "optional": true, + "requires": { + "aproba": "1.1.1", + "console-control-strings": "1.1.0", + "has-unicode": "2.0.1", + "object-assign": "4.1.1", + "signal-exit": "3.0.2", + "string-width": "1.0.2", + "strip-ansi": "3.0.1", + "wide-align": "1.1.2" + } + }, + "getpass": { + "version": "0.1.7", + "bundled": true, + "optional": true, + "requires": { + "assert-plus": "1.0.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "bundled": true, + "optional": true + } + } + }, + "glob": { + "version": "7.1.2", + "bundled": true, + "requires": { + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" + } + }, + "graceful-fs": { + "version": "4.1.11", + "bundled": true + }, + "har-schema": { + "version": "1.0.5", + "bundled": true, + "optional": true + }, + "har-validator": { + "version": "4.2.1", + "bundled": true, + "optional": true, + "requires": { + "ajv": "4.11.8", + "har-schema": "1.0.5" + } + }, + "has-unicode": { + "version": "2.0.1", + "bundled": true, + "optional": true + }, + "hawk": { + "version": "3.1.3", + "bundled": true, + "requires": { + "boom": "2.10.1", + "cryptiles": "2.0.5", + "hoek": "2.16.3", + "sntp": "1.0.9" + } + }, + "hoek": { + "version": "2.16.3", + "bundled": true + }, + "http-signature": { + "version": "1.1.1", + "bundled": true, + "optional": true, + "requires": { + "assert-plus": "0.2.0", + "jsprim": "1.4.0", + "sshpk": "1.13.0" + } + }, + "inflight": { + "version": "1.0.6", + "bundled": true, + "requires": { + "once": "1.4.0", + "wrappy": "1.0.2" + } + }, + "inherits": { + "version": "2.0.3", + "bundled": true + }, + "ini": { + "version": "1.3.4", + "bundled": true, + "optional": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "is-typedarray": { + "version": "1.0.0", + "bundled": true, + "optional": true + }, + "isarray": { + "version": "1.0.0", + "bundled": true + }, + "isstream": { + "version": "0.1.2", + "bundled": true, + "optional": true + }, + "jodid25519": { + "version": "1.0.2", + "bundled": true, + "optional": true, + "requires": { + "jsbn": "0.1.1" + } + }, + "jsbn": { + "version": "0.1.1", + "bundled": true, + "optional": true + }, + "json-schema": { + "version": "0.2.3", + "bundled": true, + "optional": true + }, + "json-stable-stringify": { + "version": "1.0.1", + "bundled": true, + "optional": true, + "requires": { + "jsonify": "0.0.0" + } + }, + "json-stringify-safe": { + "version": "5.0.1", + "bundled": true, + "optional": true + }, + "jsonify": { + "version": "0.0.0", + "bundled": true, + "optional": true + }, + "jsprim": { + "version": "1.4.0", + "bundled": true, + "optional": true, + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.0.2", + "json-schema": "0.2.3", + "verror": "1.3.6" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "bundled": true, + "optional": true + } + } + }, + "mime-db": { + "version": "1.27.0", + "bundled": true + }, + "mime-types": { + "version": "2.1.15", + "bundled": true, + "requires": { + "mime-db": "1.27.0" + } + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "requires": { + "brace-expansion": "1.1.7" + } + }, + "minimist": { + "version": "0.0.8", + "bundled": true + }, + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.0.0", + "bundled": true, + "optional": true + }, + "node-pre-gyp": { + "version": "0.6.39", + "bundled": true, + "optional": true, + "requires": { + "detect-libc": "1.0.2", + "hawk": "3.1.3", + "mkdirp": "0.5.1", + "nopt": "4.0.1", + "npmlog": "4.1.0", + "rc": "1.2.1", + "request": "2.81.0", + "rimraf": "2.6.1", + "semver": "5.3.0", + "tar": "2.2.1", + "tar-pack": "3.4.0" + } + }, + "nopt": { + "version": "4.0.1", + "bundled": true, + "optional": true, + "requires": { + "abbrev": "1.1.0", + "osenv": "0.1.4" + } + }, + "npmlog": { + "version": "4.1.0", + "bundled": true, + "optional": true, + "requires": { + "are-we-there-yet": "1.1.4", + "console-control-strings": "1.1.0", + "gauge": "2.7.4", + "set-blocking": "2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "bundled": true + }, + "oauth-sign": { + "version": "0.8.2", + "bundled": true, + "optional": true + }, + "object-assign": { + "version": "4.1.1", + "bundled": true, + "optional": true + }, + "once": { + "version": "1.4.0", + "bundled": true, + "requires": { + "wrappy": "1.0.2" + } + }, + "os-homedir": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "os-tmpdir": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "osenv": { + "version": "0.1.4", + "bundled": true, + "optional": true, + "requires": { + "os-homedir": "1.0.2", + "os-tmpdir": "1.0.2" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true + }, + "performance-now": { + "version": "0.2.0", + "bundled": true, + "optional": true + }, + "process-nextick-args": { + "version": "1.0.7", + "bundled": true + }, + "punycode": { + "version": "1.4.1", + "bundled": true, + "optional": true + }, + "qs": { + "version": "6.4.0", + "bundled": true, + "optional": true + }, + "rc": { + "version": "1.2.1", + "bundled": true, + "optional": true, + "requires": { + "deep-extend": "0.4.2", + "ini": "1.3.4", + "minimist": "1.2.0", + "strip-json-comments": "2.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "bundled": true, + "optional": true + } + } + }, + "readable-stream": { + "version": "2.2.9", + "bundled": true, + "requires": { + "buffer-shims": "1.0.0", + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "1.0.7", + "string_decoder": "1.0.1", + "util-deprecate": "1.0.2" + } + }, + "request": { + "version": "2.81.0", + "bundled": true, + "optional": true, + "requires": { + "aws-sign2": "0.6.0", + "aws4": "1.6.0", + "caseless": "0.12.0", + "combined-stream": "1.0.5", + "extend": "3.0.1", + "forever-agent": "0.6.1", + "form-data": "2.1.4", + "har-validator": "4.2.1", + "hawk": "3.1.3", + "http-signature": "1.1.1", + "is-typedarray": "1.0.0", + "isstream": "0.1.2", + "json-stringify-safe": "5.0.1", + "mime-types": "2.1.15", + "oauth-sign": "0.8.2", + "performance-now": "0.2.0", + "qs": "6.4.0", + "safe-buffer": "5.0.1", + "stringstream": "0.0.5", + "tough-cookie": "2.3.2", + "tunnel-agent": "0.6.0", + "uuid": "3.0.1" + } + }, + "rimraf": { + "version": "2.6.1", + "bundled": true, + "requires": { + "glob": "7.1.2" + } + }, + "safe-buffer": { + "version": "5.0.1", + "bundled": true + }, + "semver": { + "version": "5.3.0", + "bundled": true, + "optional": true + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true, + "optional": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true, + "optional": true + }, + "sntp": { + "version": "1.0.9", + "bundled": true, + "requires": { + "hoek": "2.16.3" + } + }, + "sshpk": { + "version": "1.13.0", + "bundled": true, + "optional": true, + "requires": { + "asn1": "0.2.3", + "assert-plus": "1.0.0", + "bcrypt-pbkdf": "1.0.1", + "dashdash": "1.14.1", + "ecc-jsbn": "0.1.1", + "getpass": "0.1.7", + "jodid25519": "1.0.2", + "jsbn": "0.1.1", + "tweetnacl": "0.14.5" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "bundled": true, + "optional": true + } + } + }, + "string-width": { + "version": "1.0.2", + "bundled": true, + "requires": { + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + } + }, + "string_decoder": { + "version": "1.0.1", + "bundled": true, + "requires": { + "safe-buffer": "5.0.1" + } + }, + "stringstream": { + "version": "0.0.5", + "bundled": true, + "optional": true + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "requires": { + "ansi-regex": "2.1.1" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "bundled": true, + "optional": true + }, + "tar": { + "version": "2.2.1", + "bundled": true, + "requires": { + "block-stream": "0.0.9", + "fstream": "1.0.11", + "inherits": "2.0.3" + } + }, + "tar-pack": { + "version": "3.4.0", + "bundled": true, + "optional": true, + "requires": { + "debug": "2.6.8", + "fstream": "1.0.11", + "fstream-ignore": "1.0.5", + "once": "1.4.0", + "readable-stream": "2.2.9", + "rimraf": "2.6.1", + "tar": "2.2.1", + "uid-number": "0.0.6" + } + }, + "tough-cookie": { + "version": "2.3.2", + "bundled": true, + "optional": true, + "requires": { + "punycode": "1.4.1" + } + }, + "tunnel-agent": { + "version": "0.6.0", + "bundled": true, + "optional": true, + "requires": { + "safe-buffer": "5.0.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "bundled": true, + "optional": true + }, + "uid-number": { + "version": "0.0.6", + "bundled": true, + "optional": true + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true + }, + "uuid": { + "version": "3.0.1", + "bundled": true, + "optional": true + }, + "verror": { + "version": "1.3.6", + "bundled": true, + "optional": true, + "requires": { + "extsprintf": "1.0.2" + } + }, + "wide-align": { + "version": "1.1.2", + "bundled": true, + "optional": true, + "requires": { + "string-width": "1.0.2" + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true + } + } + }, + "get-caller-file": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz", + "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=" + }, + "get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" + }, + "glob-base": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", + "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", + "requires": { + "glob-parent": "2.0.0", + "is-glob": "2.0.1" + } + }, + "glob-parent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", + "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", + "requires": { + "is-glob": "2.0.1" + } + }, + "globals": { + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", + "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==" + }, + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" + }, + "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.1.1" + } + }, + "has-flag": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", + "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=" + }, + "hash-base": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-2.0.2.tgz", + "integrity": "sha1-ZuodhW206KVHDK32/OI65SRO8uE=", + "requires": { + "inherits": "2.0.3" + } + }, + "hash.js": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", + "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", + "requires": { + "inherits": "2.0.3", + "minimalistic-assert": "1.0.0" + } + }, + "history": { + "version": "4.7.2", + "resolved": "https://registry.npmjs.org/history/-/history-4.7.2.tgz", + "integrity": "sha512-1zkBRWW6XweO0NBcjiphtVJVsIQ+SXF29z9DVkceeaSLVMFXHool+fdCZD4spDCfZJCILPILc3bm7Bc+HRi0nA==", + "requires": { + "invariant": "2.2.2", + "loose-envify": "1.3.1", + "resolve-pathname": "2.2.0", + "value-equal": "0.4.0", + "warning": "3.0.0" + } + }, + "hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "requires": { + "hash.js": "1.1.3", + "minimalistic-assert": "1.0.0", + "minimalistic-crypto-utils": "1.0.1" + } + }, + "hoist-non-react-statics": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-2.3.1.tgz", + "integrity": "sha1-ND24TGAYxlB3iJgkATWhQg7iLOA=" + }, + "home-or-tmp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", + "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", + "requires": { + "os-homedir": "1.0.2", + "os-tmpdir": "1.0.2" + } + }, + "hosted-git-info": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.5.0.tgz", + "integrity": "sha512-pNgbURSuab90KbTqvRPsseaTxOJCZBD0a7t+haSN33piP9cCM4l0CqdzAif2hUqm716UovKB2ROmiabGAKVXyg==" + }, + "https-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", + "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=" + }, + "iconv-lite": { + "version": "0.4.19", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz", + "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==" + }, + "ieee754": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.8.tgz", + "integrity": "sha1-vjPUCsEO8ZJnAfbwii2G+/0a0+Q=" + }, + "indexof": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", + "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=" + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + }, + "interpret": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz", + "integrity": "sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ=" + }, + "invariant": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz", + "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=", + "requires": { + "loose-envify": "1.3.1" + } + }, + "invert-kv": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", + "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=" + }, + "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": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "requires": { + "binary-extensions": "1.11.0" + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + }, + "is-builtin-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", + "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", + "requires": { + "builtin-modules": "1.1.1" + } + }, + "is-dotfile": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", + "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=" + }, + "is-equal-shallow": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", + "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", + "requires": { + "is-primitive": "2.0.0" + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" + }, + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=" + }, + "is-finite": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "requires": { + "number-is-nan": "1.0.1" + } + }, + "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.1" + } + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "requires": { + "is-extglob": "1.0.0" + } + }, + "is-number": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", + "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", + "requires": { + "kind-of": "3.2.2" + } + }, + "is-posix-bracket": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", + "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=" + }, + "is-primitive": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", + "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=" + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + }, + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "requires": { + "isarray": "1.0.0" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + } + } + }, + "isomorphic-fetch": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", + "integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=", + "requires": { + "node-fetch": "1.7.3", + "whatwg-fetch": "2.0.3" + } + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=" + }, + "jsesc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=" + }, + "json-loader": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/json-loader/-/json-loader-0.5.7.tgz", + "integrity": "sha512-QLPs8Dj7lnf3e3QYS1zkCo+4ZwqOiF9d/nZnYozTISxXWCfNs9yuky5rJw4/W34s7POaNlbZmQGaB5NiXCbP4w==" + }, + "json-schema-traverse": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", + "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=" + }, + "json5": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", + "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=" + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "1.1.6" + } + }, + "lazy-cache": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", + "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=" + }, + "lcid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", + "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", + "requires": { + "invert-kv": "1.0.0" + } + }, + "load-json-file": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", + "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", + "requires": { + "graceful-fs": "4.1.11", + "parse-json": "2.2.0", + "pify": "2.3.0", + "strip-bom": "3.0.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + } + } + }, + "loader-runner": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.3.0.tgz", + "integrity": "sha1-9IKuqC1UPgeSFwDVpG7yb9rGuKI=" + }, + "loader-utils": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz", + "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=", + "requires": { + "big.js": "3.2.0", + "emojis-list": "2.1.0", + "json5": "0.5.1" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "requires": { + "p-locate": "2.0.0", + "path-exists": "3.0.0" + } + }, + "lodash": { + "version": "4.17.4", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", + "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=" + }, + "longest": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", + "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=" + }, + "loose-envify": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", + "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", + "requires": { + "js-tokens": "3.0.2" + } + }, + "lru-cache": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.1.tgz", + "integrity": "sha512-q4spe4KTfsAS1SUHLO0wz8Qiyf1+vMIAgpRYioFYDMNqKfHQbg+AVDH3i4fvpl71/P1L0dBl+fQi+P37UYf0ew==", + "requires": { + "pseudomap": "1.0.2", + "yallist": "2.1.2" + } + }, + "make-dir": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.1.0.tgz", + "integrity": "sha512-0Pkui4wLJ7rxvmfUvs87skoEaxmu0hCUApF8nonzpl7q//FWp9zu8W61Scz4sd/kUiqDxvUhtoam2efDyiBzcA==", + "requires": { + "pify": "3.0.0" + } + }, + "md5.js": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.4.tgz", + "integrity": "sha1-6b296UogpawYsENA/Fdk1bCdkB0=", + "requires": { + "hash-base": "3.0.4", + "inherits": "2.0.3" + }, + "dependencies": { + "hash-base": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", + "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", + "requires": { + "inherits": "2.0.3", + "safe-buffer": "5.1.1" + } + } + } + }, + "mem": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", + "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", + "requires": { + "mimic-fn": "1.1.0" + } + }, + "memory-fs": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", + "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", + "requires": { + "errno": "0.1.6", + "readable-stream": "2.3.3" + } + }, + "micromatch": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", + "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", + "requires": { + "arr-diff": "2.0.0", + "array-unique": "0.2.1", + "braces": "1.8.5", + "expand-brackets": "0.1.5", + "extglob": "0.3.2", + "filename-regex": "2.0.1", + "is-extglob": "1.0.0", + "is-glob": "2.0.1", + "kind-of": "3.2.2", + "normalize-path": "2.1.1", + "object.omit": "2.0.1", + "parse-glob": "3.0.4", + "regex-cache": "0.4.4" + } + }, + "miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "requires": { + "bn.js": "4.11.8", + "brorand": "1.1.0" + } + }, + "mimic-fn": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.1.0.tgz", + "integrity": "sha1-5md4PZLonb00KBi1IwudYqZyrRg=" + }, + "minimalistic-assert": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz", + "integrity": "sha1-cCvi3aazf0g2vLP121ZkG2Sh09M=" + }, + "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=" + }, + "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.8" + } + }, + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" + }, + "mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "nan": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.8.0.tgz", + "integrity": "sha1-7XFfP+neArV6XmJS2QqWZ14fCFo=", + "optional": true + }, + "node-fetch": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", + "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", + "requires": { + "encoding": "0.1.12", + "is-stream": "1.1.0" + } + }, + "node-libs-browser": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.1.0.tgz", + "integrity": "sha512-5AzFzdoIMb89hBGMZglEegffzgRg+ZFoUmisQ8HI4j1KDdpx13J0taNp2y9xPbur6W61gepGDDotGBVQ7mfUCg==", + "requires": { + "assert": "1.4.1", + "browserify-zlib": "0.2.0", + "buffer": "4.9.1", + "console-browserify": "1.1.0", + "constants-browserify": "1.0.0", + "crypto-browserify": "3.12.0", + "domain-browser": "1.1.7", + "events": "1.1.1", + "https-browserify": "1.0.0", + "os-browserify": "0.3.0", + "path-browserify": "0.0.0", + "process": "0.11.10", + "punycode": "1.4.1", + "querystring-es3": "0.2.1", + "readable-stream": "2.3.3", + "stream-browserify": "2.0.1", + "stream-http": "2.8.0", + "string_decoder": "1.0.3", + "timers-browserify": "2.0.4", + "tty-browserify": "0.0.0", + "url": "0.11.0", + "util": "0.10.3", + "vm-browserify": "0.0.4" + } + }, + "normalize-package-data": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", + "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", + "requires": { + "hosted-git-info": "2.5.0", + "is-builtin-module": "1.0.0", + "semver": "5.5.0", + "validate-npm-package-license": "3.0.1" + } + }, + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "requires": { + "remove-trailing-separator": "1.1.0" + } + }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "requires": { + "path-key": "2.0.1" + } + }, + "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=" + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + }, + "object.omit": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", + "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", + "requires": { + "for-own": "0.1.5", + "is-extendable": "0.1.1" + } + }, + "os-browserify": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", + "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=" + }, + "os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" + }, + "os-locale": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", + "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", + "requires": { + "execa": "0.7.0", + "lcid": "1.0.0", + "mem": "1.1.0" + } + }, + "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=" + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" + }, + "p-limit": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.2.0.tgz", + "integrity": "sha512-Y/OtIaXtUPr4/YpMv1pCL5L5ed0rumAaAeBSj12F+bSlMdys7i8oQF/GUJmfpTS/QoaRrS/k6pma29haJpsMng==", + "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=", + "requires": { + "p-limit": "1.2.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=" + }, + "pako": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.6.tgz", + "integrity": "sha512-lQe48YPsMJAig+yngZ87Lus+NF+3mtu7DVOBu6b/gHO1YpKwIj5AWjZ/TOS7i46HD/UixzWb1zeWDZfGZ3iYcg==" + }, + "parse-asn1": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.0.tgz", + "integrity": "sha1-N8T5t+06tlx0gXtfJICTf7+XxxI=", + "requires": { + "asn1.js": "4.9.2", + "browserify-aes": "1.1.1", + "create-hash": "1.1.3", + "evp_bytestokey": "1.0.3", + "pbkdf2": "3.0.14" + } + }, + "parse-glob": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", + "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", + "requires": { + "glob-base": "0.3.0", + "is-dotfile": "1.0.3", + "is-extglob": "1.0.0", + "is-glob": "2.0.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.3.1" + } + }, + "path-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz", + "integrity": "sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo=" + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" + }, + "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=" + }, + "path-to-regexp": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.7.0.tgz", + "integrity": "sha1-Wf3g9DW62suhA6hOnTvGTpa5k30=", + "requires": { + "isarray": "0.0.1" + } + }, + "path-type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", + "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", + "requires": { + "pify": "2.3.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + } + } + }, + "pbkdf2": { + "version": "3.0.14", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.14.tgz", + "integrity": "sha512-gjsZW9O34fm0R7PaLHRJmLLVfSoesxztjPjE9o6R+qtVJij90ltg1joIovN9GKrRW3t1PzhDDG3UMEMFfZ+1wA==", + "requires": { + "create-hash": "1.1.3", + "create-hmac": "1.1.6", + "ripemd160": "2.0.1", + "safe-buffer": "5.1.1", + "sha.js": "2.4.9" + } + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" + }, + "pkg-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", + "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", + "requires": { + "find-up": "2.1.0" + } + }, + "preserve": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", + "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=" + }, + "private": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", + "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==" + }, + "process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=" + }, + "process-nextick-args": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", + "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=" + }, + "promise": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", + "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", + "requires": { + "asap": "2.0.6" + } + }, + "prop-types": { + "version": "15.6.0", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.0.tgz", + "integrity": "sha1-zq8IMCL8RrSjX2nhPvda7Q1jmFY=", + "requires": { + "fbjs": "0.8.16", + "loose-envify": "1.3.1", + "object-assign": "4.1.1" + } + }, + "prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=" + }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" + }, + "public-encrypt": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.0.tgz", + "integrity": "sha1-OfaZ86RlYN1eusvKaTyvfGXBjMY=", + "requires": { + "bn.js": "4.11.8", + "browserify-rsa": "4.0.1", + "create-hash": "1.1.3", + "parse-asn1": "5.1.0", + "randombytes": "2.0.6" + } + }, + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" + }, + "querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=" + }, + "querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=" + }, + "randomatic": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz", + "integrity": "sha512-D5JUjPyJbaJDkuAazpVnSfVkLlpeO3wDlPROTMLGKG1zMFNFRgrciKo1ltz/AzNTkqE0HzDx655QOL51N06how==", + "requires": { + "is-number": "3.0.0", + "kind-of": "4.0.0" + }, + "dependencies": { + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "randombytes": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.6.tgz", + "integrity": "sha512-CIQ5OFxf4Jou6uOKe9t1AOgqpeU5fd70A8NPdHSGeYXqXsPe6peOwI0cUl88RWZ6sP1vPMV3avd/R6cZ5/sP1A==", + "requires": { + "safe-buffer": "5.1.1" + } + }, + "randomfill": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.3.tgz", + "integrity": "sha512-YL6GrhrWoic0Eq8rXVbMptH7dAxCs0J+mh5Y0euNekPPYaxEmdVGim6GdoxoRzKW2yJoU8tueifS7mYxvcFDEQ==", + "requires": { + "randombytes": "2.0.6", + "safe-buffer": "5.1.1" + } + }, + "react": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/react/-/react-16.2.0.tgz", + "integrity": "sha512-ZmIomM7EE1DvPEnSFAHZn9Vs9zJl5A9H7el0EGTE6ZbW9FKe/14IYAlPbC8iH25YarEQxZL+E8VW7Mi7kfQrDQ==", + "requires": { + "fbjs": "0.8.16", + "loose-envify": "1.3.1", + "object-assign": "4.1.1", + "prop-types": "15.6.0" + } + }, + "react-dom": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.2.0.tgz", + "integrity": "sha512-zpGAdwHVn9K0091d+hr+R0qrjoJ84cIBFL2uU60KvWBPfZ7LPSrfqviTxGHWN0sjPZb2hxWzMexwrvJdKePvjg==", + "requires": { + "fbjs": "0.8.16", + "loose-envify": "1.3.1", + "object-assign": "4.1.1", + "prop-types": "15.6.0" + } + }, + "react-router": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-4.2.0.tgz", + "integrity": "sha512-DY6pjwRhdARE4TDw7XjxjZsbx9lKmIcyZoZ+SDO7SBJ1KUeWNxT22Kara2AC7u6/c2SYEHlEDLnzBCcNhLE8Vg==", + "requires": { + "history": "4.7.2", + "hoist-non-react-statics": "2.3.1", + "invariant": "2.2.2", + "loose-envify": "1.3.1", + "path-to-regexp": "1.7.0", + "prop-types": "15.6.0", + "warning": "3.0.0" + } + }, + "react-router-dom": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-4.2.2.tgz", + "integrity": "sha512-cHMFC1ZoLDfEaMFoKTjN7fry/oczMgRt5BKfMAkTu5zEuJvUiPp1J8d0eXSVTnBh6pxlbdqDhozunOOLtmKfPA==", + "requires": { + "history": "4.7.2", + "invariant": "2.2.2", + "loose-envify": "1.3.1", + "prop-types": "15.6.0", + "react-router": "4.2.0", + "warning": "3.0.0" + } + }, + "read-pkg": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", + "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", + "requires": { + "load-json-file": "2.0.0", + "normalize-package-data": "2.4.0", + "path-type": "2.0.0" + } + }, + "read-pkg-up": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", + "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", + "requires": { + "find-up": "2.1.0", + "read-pkg": "2.0.0" + } + }, + "readable-stream": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", + "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "1.0.7", + "safe-buffer": "5.1.1", + "string_decoder": "1.0.3", + "util-deprecate": "1.0.2" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + } + } + }, + "readdirp": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz", + "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=", + "requires": { + "graceful-fs": "4.1.11", + "minimatch": "3.0.4", + "readable-stream": "2.3.3", + "set-immediate-shim": "1.0.1" + } + }, + "regenerate": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.3.3.tgz", + "integrity": "sha512-jVpo1GadrDAK59t/0jRx5VxYWQEDkkEKi6+HjE3joFVLfDOh9Xrdh0dF1eSq+BI/SwvTQ44gSscJ8N5zYL61sg==" + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==" + }, + "regenerator-transform": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz", + "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==", + "requires": { + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "private": "0.1.8" + } + }, + "regex-cache": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", + "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", + "requires": { + "is-equal-shallow": "0.1.3" + } + }, + "regexpu-core": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", + "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", + "requires": { + "regenerate": "1.3.3", + "regjsgen": "0.2.0", + "regjsparser": "0.1.5" + } + }, + "regjsgen": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", + "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=" + }, + "regjsparser": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", + "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", + "requires": { + "jsesc": "0.5.0" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=" + } + } + }, + "remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=" + }, + "repeat-element": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", + "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=" + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "requires": { + "is-finite": "1.0.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": "1.0.1", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=" + }, + "resolve-pathname": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/resolve-pathname/-/resolve-pathname-2.2.0.tgz", + "integrity": "sha512-bAFz9ld18RzJfddgrO2e/0S2O81710++chRMUxHjXOYKF6jTAMrUNZrEZ1PvV0zlhfjidm08iRPdTLPno1FuRg==" + }, + "right-align": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", + "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", + "requires": { + "align-text": "0.1.4" + } + }, + "ripemd160": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.1.tgz", + "integrity": "sha1-D0WEKVxTo2KK9+bXmsohzlfRxuc=", + "requires": { + "hash-base": "2.0.2", + "inherits": "2.0.3" + } + }, + "safe-buffer": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", + "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" + }, + "semver": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", + "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==" + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" + }, + "set-immediate-shim": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", + "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=" + }, + "setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" + }, + "sha.js": { + "version": "2.4.9", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.9.tgz", + "integrity": "sha512-G8zektVqbiPHrylgew9Zg1VRB1L/DtXNUVAM6q4QLy8NE3qtHlFXTf8VLL4k1Yl6c7NMjtZUTdXV+X44nFaT6A==", + "requires": { + "inherits": "2.0.3", + "safe-buffer": "5.1.1" + } + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "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=" + }, + "signal-exit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" + }, + "slash": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=" + }, + "source-list-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.0.tgz", + "integrity": "sha512-I2UmuJSRr/T8jisiROLU3A3ltr+swpniSmNPI4Ml3ZCX6tVnDsuZzK7F2hl5jTqbZBWCEKlj5HRQiPExXLgE8A==" + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + }, + "source-map-support": { + "version": "0.4.18", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", + "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", + "requires": { + "source-map": "0.5.7" + } + }, + "spdx-correct": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", + "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=", + "requires": { + "spdx-license-ids": "1.2.2" + } + }, + "spdx-expression-parse": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz", + "integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw=" + }, + "spdx-license-ids": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz", + "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=" + }, + "stream-browserify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz", + "integrity": "sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=", + "requires": { + "inherits": "2.0.3", + "readable-stream": "2.3.3" + } + }, + "stream-http": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.0.tgz", + "integrity": "sha512-sZOFxI/5xw058XIRHl4dU3dZ+TTOIGJR78Dvo0oEAejIt4ou27k+3ne1zYmCV+v7UucbxIFQuOgnkTVHh8YPnw==", + "requires": { + "builtin-status-codes": "3.0.0", + "inherits": "2.0.3", + "readable-stream": "2.3.3", + "to-arraybuffer": "1.0.1", + "xtend": "4.0.1" + } + }, + "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" + }, + "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=" + }, + "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" + } + } + } + }, + "string_decoder": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", + "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", + "requires": { + "safe-buffer": "5.1.1" + } + }, + "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.1.1" + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=" + }, + "strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" + }, + "tapable": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.2.8.tgz", + "integrity": "sha1-mTcqXJmb8t8WCvwNdL7U9HlIzSI=" + }, + "timers-browserify": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.4.tgz", + "integrity": "sha512-uZYhyU3EX8O7HQP+J9fTVYwsq90Vr68xPEFo7yrVImIxYvHgukBEgOB/SgGoorWVTzGM/3Z+wUNnboA4M8jWrg==", + "requires": { + "setimmediate": "1.0.5" + } + }, + "to-arraybuffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", + "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=" + }, + "to-fast-properties": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=" + }, + "trim-right": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=" + }, + "tty-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", + "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=" + }, + "ua-parser-js": { + "version": "0.7.17", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.17.tgz", + "integrity": "sha512-uRdSdu1oA1rncCQL7sCj8vSyZkgtL7faaw9Tc9rZ3mGgraQ7+Pdx7w5mnOSF3gw9ZNG6oc+KXfkon3bKuROm0g==" + }, + "uglify-js": { + "version": "2.8.29", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", + "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", + "requires": { + "source-map": "0.5.7", + "uglify-to-browserify": "1.0.2", + "yargs": "3.10.0" + }, + "dependencies": { + "yargs": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", + "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", + "requires": { + "camelcase": "1.2.1", + "cliui": "2.1.0", + "decamelize": "1.2.0", + "window-size": "0.1.0" + } + } + } + }, + "uglify-to-browserify": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", + "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", + "optional": true + }, + "uglifyjs-webpack-plugin": { + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-0.4.6.tgz", + "integrity": "sha1-uVH0q7a9YX5m9j64kUmOORdj4wk=", + "requires": { + "source-map": "0.5.7", + "uglify-js": "2.8.29", + "webpack-sources": "1.1.0" + } + }, + "url": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", + "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "requires": { + "punycode": "1.3.2", + "querystring": "0.2.0" + }, + "dependencies": { + "punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=" + } + } + }, + "util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", + "requires": { + "inherits": "2.0.1" + }, + "dependencies": { + "inherits": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=" + } + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "validate-npm-package-license": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz", + "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=", + "requires": { + "spdx-correct": "1.0.2", + "spdx-expression-parse": "1.0.4" + } + }, + "value-equal": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/value-equal/-/value-equal-0.4.0.tgz", + "integrity": "sha512-x+cYdNnaA3CxvMaTX0INdTCN8m8aF2uY9BvEqmxuYp8bL09cs/kWVQPVGcA35fMktdOsP69IgU7wFj/61dJHEw==" + }, + "vm-browserify": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", + "integrity": "sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=", + "requires": { + "indexof": "0.0.1" + } + }, + "warning": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/warning/-/warning-3.0.0.tgz", + "integrity": "sha1-MuU3fLVy3kqwR1O9+IIcAe1gW3w=", + "requires": { + "loose-envify": "1.3.1" + } + }, + "watchpack": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.4.0.tgz", + "integrity": "sha1-ShRyvLuVK9Cpu0A2gB+VTfs5+qw=", + "requires": { + "async": "2.6.0", + "chokidar": "1.7.0", + "graceful-fs": "4.1.11" + } + }, + "webpack": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-3.10.0.tgz", + "integrity": "sha512-fxxKXoicjdXNUMY7LIdY89tkJJJ0m1Oo8PQutZ5rLgWbV5QVKI15Cn7+/IHnRTd3vfKfiwBx6SBqlorAuNA8LA==", + "requires": { + "acorn": "5.3.0", + "acorn-dynamic-import": "2.0.2", + "ajv": "5.5.2", + "ajv-keywords": "2.1.1", + "async": "2.6.0", + "enhanced-resolve": "3.4.1", + "escope": "3.6.0", + "interpret": "1.1.0", + "json-loader": "0.5.7", + "json5": "0.5.1", + "loader-runner": "2.3.0", + "loader-utils": "1.1.0", + "memory-fs": "0.4.1", + "mkdirp": "0.5.1", + "node-libs-browser": "2.1.0", + "source-map": "0.5.7", + "supports-color": "4.5.0", + "tapable": "0.2.8", + "uglifyjs-webpack-plugin": "0.4.6", + "watchpack": "1.4.0", + "webpack-sources": "1.1.0", + "yargs": "8.0.2" + }, + "dependencies": { + "supports-color": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "requires": { + "has-flag": "2.0.0" + } + } + } + }, + "webpack-sources": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.1.0.tgz", + "integrity": "sha512-aqYp18kPphgoO5c/+NaUvEeACtZjMESmDChuD3NBciVpah3XpMEU9VAAtIaB1BsfJWWTSdv8Vv1m3T0aRk2dUw==", + "requires": { + "source-list-map": "2.0.0", + "source-map": "0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + } + } + }, + "whatwg-fetch": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz", + "integrity": "sha1-nITsLc9oGH/wC8ZOEnS0QhduHIQ=" + }, + "which": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz", + "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", + "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=" + }, + "window-size": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", + "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=" + }, + "wordwrap": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", + "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=" + }, + "wrap-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "requires": { + "string-width": "1.0.2", + "strip-ansi": "3.0.1" + }, + "dependencies": { + "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.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + } + } + } + }, + "xtend": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=" + }, + "y18n": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", + "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=" + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" + }, + "yargs": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-8.0.2.tgz", + "integrity": "sha1-YpmpBVsc78lp/355wdkY3Osiw2A=", + "requires": { + "camelcase": "4.1.0", + "cliui": "3.2.0", + "decamelize": "1.2.0", + "get-caller-file": "1.0.2", + "os-locale": "2.1.0", + "read-pkg-up": "2.0.0", + "require-directory": "2.1.1", + "require-main-filename": "1.0.1", + "set-blocking": "2.0.0", + "string-width": "2.1.1", + "which-module": "2.0.0", + "y18n": "3.2.1", + "yargs-parser": "7.0.0" + }, + "dependencies": { + "camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" + }, + "cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "requires": { + "string-width": "1.0.2", + "strip-ansi": "3.0.1", + "wrap-ansi": "2.1.0" + }, + "dependencies": { + "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.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + } + } + } + } + } + }, + "yargs-parser": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz", + "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=", + "requires": { + "camelcase": "4.1.0" + }, + "dependencies": { + "camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" + } + } + } + } +} diff --git a/src/React.Sample.Router.CoreMvc/yarn.lock b/src/React.Sample.Router.CoreMvc/yarn.lock deleted file mode 100644 index 5a39d3e2d..000000000 --- a/src/React.Sample.Router.CoreMvc/yarn.lock +++ /dev/null @@ -1,2880 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -abbrev@1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" - -acorn-dynamic-import@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/acorn-dynamic-import/-/acorn-dynamic-import-2.0.2.tgz#c752bd210bef679501b6c6cb7fc84f8f47158cc4" - dependencies: - acorn "^4.0.3" - -acorn@^4.0.3: - version "4.0.13" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.13.tgz#105495ae5361d697bd195c825192e1ad7f253787" - -acorn@^5.0.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.2.1.tgz#317ac7821826c22c702d66189ab8359675f135d7" - -ajv-keywords@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-2.1.1.tgz#617997fc5f60576894c435f940d819e135b80762" - -ajv@^4.9.1: - version "4.11.8" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.8.tgz#82ffb02b29e662ae53bdc20af15947706739c536" - dependencies: - co "^4.6.0" - json-stable-stringify "^1.0.1" - -ajv@^5.1.5: - version "5.3.0" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.3.0.tgz#4414ff74a50879c208ee5fdc826e32c303549eda" - dependencies: - co "^4.6.0" - fast-deep-equal "^1.0.0" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.3.0" - -align-text@^0.1.1, align-text@^0.1.3: - version "0.1.4" - resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117" - dependencies: - kind-of "^3.0.2" - longest "^1.0.1" - repeat-string "^1.5.2" - -ansi-regex@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" - -ansi-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" - -ansi-styles@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" - -anymatch@^1.3.0: - version "1.3.2" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-1.3.2.tgz#553dcb8f91e3c889845dfdba34c77721b90b9d7a" - dependencies: - micromatch "^2.1.5" - normalize-path "^2.0.0" - -aproba@^1.0.3: - version "1.2.0" - resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" - -are-we-there-yet@~1.1.2: - version "1.1.4" - resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz#bb5dca382bb94f05e15194373d16fd3ba1ca110d" - dependencies: - delegates "^1.0.0" - readable-stream "^2.0.6" - -arr-diff@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf" - dependencies: - arr-flatten "^1.0.1" - -arr-flatten@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" - -array-unique@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" - -asap@~2.0.3: - version "2.0.6" - resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" - -asn1.js@^4.0.0: - version "4.9.2" - resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.9.2.tgz#8117ef4f7ed87cd8f89044b5bff97ac243a16c9a" - dependencies: - bn.js "^4.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - -asn1@~0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86" - -assert-plus@1.0.0, assert-plus@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" - -assert-plus@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.2.0.tgz#d74e1b87e7affc0db8aadb7021f3fe48101ab234" - -assert@^1.1.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/assert/-/assert-1.4.1.tgz#99912d591836b5a6f5b345c0f07eefc08fc65d91" - dependencies: - util "0.10.3" - -async-each@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" - -async@^2.1.2: - version "2.6.0" - resolved "https://registry.yarnpkg.com/async/-/async-2.6.0.tgz#61a29abb6fcc026fea77e56d1c6ec53a795951f4" - dependencies: - lodash "^4.14.0" - -asynckit@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" - -aws-sign2@~0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.6.0.tgz#14342dd38dbcc94d0e5b87d763cd63612c0e794f" - -aws4@^1.2.1: - version "1.6.0" - resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.6.0.tgz#83ef5ca860b2b32e4a0deedee8c771b9db57471e" - -babel-code-frame@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" - dependencies: - chalk "^1.1.3" - esutils "^2.0.2" - js-tokens "^3.0.2" - -babel-core@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.0.tgz#af32f78b31a6fcef119c87b0fd8d9753f03a0bb8" - dependencies: - babel-code-frame "^6.26.0" - babel-generator "^6.26.0" - babel-helpers "^6.24.1" - babel-messages "^6.23.0" - babel-register "^6.26.0" - babel-runtime "^6.26.0" - babel-template "^6.26.0" - babel-traverse "^6.26.0" - babel-types "^6.26.0" - babylon "^6.18.0" - convert-source-map "^1.5.0" - debug "^2.6.8" - json5 "^0.5.1" - lodash "^4.17.4" - minimatch "^3.0.4" - path-is-absolute "^1.0.1" - private "^0.1.7" - slash "^1.0.0" - source-map "^0.5.6" - -babel-generator@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.0.tgz#ac1ae20070b79f6e3ca1d3269613053774f20dc5" - dependencies: - babel-messages "^6.23.0" - babel-runtime "^6.26.0" - babel-types "^6.26.0" - detect-indent "^4.0.0" - jsesc "^1.3.0" - lodash "^4.17.4" - source-map "^0.5.6" - trim-right "^1.0.1" - -babel-helper-builder-binary-assignment-operator-visitor@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz#cce4517ada356f4220bcae8a02c2b346f9a56664" - dependencies: - babel-helper-explode-assignable-expression "^6.24.1" - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-helper-builder-react-jsx@^6.24.1: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.26.0.tgz#39ff8313b75c8b65dceff1f31d383e0ff2a408a0" - dependencies: - babel-runtime "^6.26.0" - babel-types "^6.26.0" - esutils "^2.0.2" - -babel-helper-call-delegate@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz#ece6aacddc76e41c3461f88bfc575bd0daa2df8d" - dependencies: - babel-helper-hoist-variables "^6.24.1" - babel-runtime "^6.22.0" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-define-map@^6.24.1: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz#a5f56dab41a25f97ecb498c7ebaca9819f95be5f" - dependencies: - babel-helper-function-name "^6.24.1" - babel-runtime "^6.26.0" - babel-types "^6.26.0" - lodash "^4.17.4" - -babel-helper-explode-assignable-expression@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz#f25b82cf7dc10433c55f70592d5746400ac22caa" - dependencies: - babel-runtime "^6.22.0" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-function-name@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz#d3475b8c03ed98242a25b48351ab18399d3580a9" - dependencies: - babel-helper-get-function-arity "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-get-function-arity@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz#8f7782aa93407c41d3aa50908f89b031b1b6853d" - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-helper-hoist-variables@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz#1ecb27689c9d25513eadbc9914a73f5408be7a76" - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-helper-optimise-call-expression@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz#f7a13427ba9f73f8f4fa993c54a97882d1244257" - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-helper-regex@^6.24.1: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz#325c59f902f82f24b74faceed0363954f6495e72" - dependencies: - babel-runtime "^6.26.0" - babel-types "^6.26.0" - lodash "^4.17.4" - -babel-helper-remap-async-to-generator@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz#5ec581827ad723fecdd381f1c928390676e4551b" - dependencies: - babel-helper-function-name "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-replace-supers@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz#bf6dbfe43938d17369a213ca8a8bf74b6a90ab1a" - dependencies: - babel-helper-optimise-call-expression "^6.24.1" - babel-messages "^6.23.0" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helpers@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2" - dependencies: - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-loader@^7.1.2: - version "7.1.2" - resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-7.1.2.tgz#f6cbe122710f1aa2af4d881c6d5b54358ca24126" - dependencies: - find-cache-dir "^1.0.0" - loader-utils "^1.0.2" - mkdirp "^0.5.1" - -babel-messages@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-add-module-exports@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/babel-plugin-add-module-exports/-/babel-plugin-add-module-exports-0.2.1.tgz#9ae9a1f4a8dc67f0cdec4f4aeda1e43a5ff65e25" - -babel-plugin-check-es2015-constants@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz#35157b101426fd2ffd3da3f75c7d1e91835bbf8a" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-syntax-async-functions@^6.8.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz#cad9cad1191b5ad634bf30ae0872391e0647be95" - -babel-plugin-syntax-exponentiation-operator@^6.8.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz#9ee7e8337290da95288201a6a57f4170317830de" - -babel-plugin-syntax-flow@^6.18.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-flow/-/babel-plugin-syntax-flow-6.18.0.tgz#4c3ab20a2af26aa20cd25995c398c4eb70310c8d" - -babel-plugin-syntax-jsx@^6.3.13, babel-plugin-syntax-jsx@^6.8.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz#0af32a9a6e13ca7a3fd5069e62d7b0f58d0d8946" - -babel-plugin-syntax-trailing-function-commas@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz#ba0360937f8d06e40180a43fe0d5616fff532cf3" - -babel-plugin-transform-async-to-generator@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz#6536e378aff6cb1d5517ac0e40eb3e9fc8d08761" - dependencies: - babel-helper-remap-async-to-generator "^6.24.1" - babel-plugin-syntax-async-functions "^6.8.0" - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-arrow-functions@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz#452692cb711d5f79dc7f85e440ce41b9f244d221" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-block-scoped-functions@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz#bbc51b49f964d70cb8d8e0b94e820246ce3a6141" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-block-scoping@^6.23.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz#d70f5299c1308d05c12f463813b0a09e73b1895f" - dependencies: - babel-runtime "^6.26.0" - babel-template "^6.26.0" - babel-traverse "^6.26.0" - babel-types "^6.26.0" - lodash "^4.17.4" - -babel-plugin-transform-es2015-classes@^6.23.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz#5a4c58a50c9c9461e564b4b2a3bfabc97a2584db" - dependencies: - babel-helper-define-map "^6.24.1" - babel-helper-function-name "^6.24.1" - babel-helper-optimise-call-expression "^6.24.1" - babel-helper-replace-supers "^6.24.1" - babel-messages "^6.23.0" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-computed-properties@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz#6fe2a8d16895d5634f4cd999b6d3480a308159b3" - dependencies: - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-plugin-transform-es2015-destructuring@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz#997bb1f1ab967f682d2b0876fe358d60e765c56d" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-duplicate-keys@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz#73eb3d310ca969e3ef9ec91c53741a6f1576423e" - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-for-of@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz#f47c95b2b613df1d3ecc2fdb7573623c75248691" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-function-name@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz#834c89853bc36b1af0f3a4c5dbaa94fd8eacaa8b" - dependencies: - babel-helper-function-name "^6.24.1" - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-literals@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz#4f54a02d6cd66cf915280019a31d31925377ca2e" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-modules-amd@^6.22.0, babel-plugin-transform-es2015-modules-amd@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz#3b3e54017239842d6d19c3011c4bd2f00a00d154" - dependencies: - babel-plugin-transform-es2015-modules-commonjs "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-plugin-transform-es2015-modules-commonjs@^6.23.0, babel-plugin-transform-es2015-modules-commonjs@^6.24.1: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.0.tgz#0d8394029b7dc6abe1a97ef181e00758dd2e5d8a" - dependencies: - babel-plugin-transform-strict-mode "^6.24.1" - babel-runtime "^6.26.0" - babel-template "^6.26.0" - babel-types "^6.26.0" - -babel-plugin-transform-es2015-modules-systemjs@^6.23.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz#ff89a142b9119a906195f5f106ecf305d9407d23" - dependencies: - babel-helper-hoist-variables "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-plugin-transform-es2015-modules-umd@^6.23.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz#ac997e6285cd18ed6176adb607d602344ad38468" - dependencies: - babel-plugin-transform-es2015-modules-amd "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-plugin-transform-es2015-object-super@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz#24cef69ae21cb83a7f8603dad021f572eb278f8d" - dependencies: - babel-helper-replace-supers "^6.24.1" - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-parameters@^6.23.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz#57ac351ab49caf14a97cd13b09f66fdf0a625f2b" - dependencies: - babel-helper-call-delegate "^6.24.1" - babel-helper-get-function-arity "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-shorthand-properties@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz#24f875d6721c87661bbd99a4622e51f14de38aa0" - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-spread@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz#d6d68a99f89aedc4536c81a542e8dd9f1746f8d1" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-sticky-regex@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz#00c1cdb1aca71112cdf0cf6126c2ed6b457ccdbc" - dependencies: - babel-helper-regex "^6.24.1" - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-template-literals@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz#a84b3450f7e9f8f1f6839d6d687da84bb1236d8d" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-typeof-symbol@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz#dec09f1cddff94b52ac73d505c84df59dcceb372" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-unicode-regex@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz#d38b12f42ea7323f729387f18a7c5ae1faeb35e9" - dependencies: - babel-helper-regex "^6.24.1" - babel-runtime "^6.22.0" - regexpu-core "^2.0.0" - -babel-plugin-transform-exponentiation-operator@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz#2ab0c9c7f3098fa48907772bb813fe41e8de3a0e" - dependencies: - babel-helper-builder-binary-assignment-operator-visitor "^6.24.1" - babel-plugin-syntax-exponentiation-operator "^6.8.0" - babel-runtime "^6.22.0" - -babel-plugin-transform-flow-strip-types@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.22.0.tgz#84cb672935d43714fdc32bce84568d87441cf7cf" - dependencies: - babel-plugin-syntax-flow "^6.18.0" - babel-runtime "^6.22.0" - -babel-plugin-transform-react-display-name@^6.23.0: - version "6.25.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-display-name/-/babel-plugin-transform-react-display-name-6.25.0.tgz#67e2bf1f1e9c93ab08db96792e05392bf2cc28d1" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-react-jsx-self@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-jsx-self/-/babel-plugin-transform-react-jsx-self-6.22.0.tgz#df6d80a9da2612a121e6ddd7558bcbecf06e636e" - dependencies: - babel-plugin-syntax-jsx "^6.8.0" - babel-runtime "^6.22.0" - -babel-plugin-transform-react-jsx-source@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-jsx-source/-/babel-plugin-transform-react-jsx-source-6.22.0.tgz#66ac12153f5cd2d17b3c19268f4bf0197f44ecd6" - dependencies: - babel-plugin-syntax-jsx "^6.8.0" - babel-runtime "^6.22.0" - -babel-plugin-transform-react-jsx@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.24.1.tgz#840a028e7df460dfc3a2d29f0c0d91f6376e66a3" - dependencies: - babel-helper-builder-react-jsx "^6.24.1" - babel-plugin-syntax-jsx "^6.8.0" - babel-runtime "^6.22.0" - -babel-plugin-transform-regenerator@^6.22.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz#e0703696fbde27f0a3efcacf8b4dca2f7b3a8f2f" - dependencies: - regenerator-transform "^0.10.0" - -babel-plugin-transform-strict-mode@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz#d5faf7aa578a65bbe591cf5edae04a0c67020758" - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-preset-env@^1.6.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/babel-preset-env/-/babel-preset-env-1.6.1.tgz#a18b564cc9b9afdf4aae57ae3c1b0d99188e6f48" - dependencies: - babel-plugin-check-es2015-constants "^6.22.0" - babel-plugin-syntax-trailing-function-commas "^6.22.0" - babel-plugin-transform-async-to-generator "^6.22.0" - babel-plugin-transform-es2015-arrow-functions "^6.22.0" - babel-plugin-transform-es2015-block-scoped-functions "^6.22.0" - babel-plugin-transform-es2015-block-scoping "^6.23.0" - babel-plugin-transform-es2015-classes "^6.23.0" - babel-plugin-transform-es2015-computed-properties "^6.22.0" - babel-plugin-transform-es2015-destructuring "^6.23.0" - babel-plugin-transform-es2015-duplicate-keys "^6.22.0" - babel-plugin-transform-es2015-for-of "^6.23.0" - babel-plugin-transform-es2015-function-name "^6.22.0" - babel-plugin-transform-es2015-literals "^6.22.0" - babel-plugin-transform-es2015-modules-amd "^6.22.0" - babel-plugin-transform-es2015-modules-commonjs "^6.23.0" - babel-plugin-transform-es2015-modules-systemjs "^6.23.0" - babel-plugin-transform-es2015-modules-umd "^6.23.0" - babel-plugin-transform-es2015-object-super "^6.22.0" - babel-plugin-transform-es2015-parameters "^6.23.0" - babel-plugin-transform-es2015-shorthand-properties "^6.22.0" - babel-plugin-transform-es2015-spread "^6.22.0" - babel-plugin-transform-es2015-sticky-regex "^6.22.0" - babel-plugin-transform-es2015-template-literals "^6.22.0" - babel-plugin-transform-es2015-typeof-symbol "^6.23.0" - babel-plugin-transform-es2015-unicode-regex "^6.22.0" - babel-plugin-transform-exponentiation-operator "^6.22.0" - babel-plugin-transform-regenerator "^6.22.0" - browserslist "^2.1.2" - invariant "^2.2.2" - semver "^5.3.0" - -babel-preset-flow@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-preset-flow/-/babel-preset-flow-6.23.0.tgz#e71218887085ae9a24b5be4169affb599816c49d" - dependencies: - babel-plugin-transform-flow-strip-types "^6.22.0" - -babel-preset-react@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-preset-react/-/babel-preset-react-6.24.1.tgz#ba69dfaea45fc3ec639b6a4ecea6e17702c91380" - dependencies: - babel-plugin-syntax-jsx "^6.3.13" - babel-plugin-transform-react-display-name "^6.23.0" - babel-plugin-transform-react-jsx "^6.24.1" - babel-plugin-transform-react-jsx-self "^6.22.0" - babel-plugin-transform-react-jsx-source "^6.22.0" - babel-preset-flow "^6.23.0" - -babel-register@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.26.0.tgz#6ed021173e2fcb486d7acb45c6009a856f647071" - dependencies: - babel-core "^6.26.0" - babel-runtime "^6.26.0" - core-js "^2.5.0" - home-or-tmp "^2.0.0" - lodash "^4.17.4" - mkdirp "^0.5.1" - source-map-support "^0.4.15" - -babel-runtime@^6.18.0, babel-runtime@^6.22.0, babel-runtime@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" - dependencies: - core-js "^2.4.0" - regenerator-runtime "^0.11.0" - -babel-template@^6.24.1, babel-template@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02" - dependencies: - babel-runtime "^6.26.0" - babel-traverse "^6.26.0" - babel-types "^6.26.0" - babylon "^6.18.0" - lodash "^4.17.4" - -babel-traverse@^6.24.1, babel-traverse@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee" - dependencies: - babel-code-frame "^6.26.0" - babel-messages "^6.23.0" - babel-runtime "^6.26.0" - babel-types "^6.26.0" - babylon "^6.18.0" - debug "^2.6.8" - globals "^9.18.0" - invariant "^2.2.2" - lodash "^4.17.4" - -babel-types@^6.19.0, babel-types@^6.24.1, babel-types@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" - dependencies: - babel-runtime "^6.26.0" - esutils "^2.0.2" - lodash "^4.17.4" - to-fast-properties "^1.0.3" - -babylon@^6.18.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" - -balanced-match@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" - -base64-js@^1.0.2: - version "1.2.1" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.2.1.tgz#a91947da1f4a516ea38e5b4ec0ec3773675e0886" - -bcrypt-pbkdf@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz#63bc5dcb61331b92bc05fd528953c33462a06f8d" - dependencies: - tweetnacl "^0.14.3" - -big.js@^3.1.3: - version "3.2.0" - resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.2.0.tgz#a5fc298b81b9e0dca2e458824784b65c52ba588e" - -binary-extensions@^1.0.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.10.0.tgz#9aeb9a6c5e88638aad171e167f5900abe24835d0" - -block-stream@*: - version "0.0.9" - resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a" - dependencies: - inherits "~2.0.0" - -bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0: - version "4.11.8" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" - -boom@2.x.x: - version "2.10.1" - resolved "https://registry.yarnpkg.com/boom/-/boom-2.10.1.tgz#39c8918ceff5799f83f9492a848f625add0c766f" - dependencies: - hoek "2.x.x" - -brace-expansion@^1.1.7: - version "1.1.8" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.8.tgz#c07b211c7c952ec1f8efd51a77ef0d1d3990a292" - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" - -braces@^1.8.2: - version "1.8.5" - resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7" - dependencies: - expand-range "^1.8.1" - preserve "^0.2.0" - repeat-element "^1.1.2" - -brorand@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" - -browserify-aes@^1.0.0, browserify-aes@^1.0.4: - version "1.1.1" - resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.1.1.tgz#38b7ab55edb806ff2dcda1a7f1620773a477c49f" - dependencies: - buffer-xor "^1.0.3" - cipher-base "^1.0.0" - create-hash "^1.1.0" - evp_bytestokey "^1.0.3" - inherits "^2.0.1" - safe-buffer "^5.0.1" - -browserify-cipher@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.0.tgz#9988244874bf5ed4e28da95666dcd66ac8fc363a" - dependencies: - browserify-aes "^1.0.4" - browserify-des "^1.0.0" - evp_bytestokey "^1.0.0" - -browserify-des@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.0.tgz#daa277717470922ed2fe18594118a175439721dd" - dependencies: - cipher-base "^1.0.1" - des.js "^1.0.0" - inherits "^2.0.1" - -browserify-rsa@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524" - dependencies: - bn.js "^4.1.0" - randombytes "^2.0.1" - -browserify-sign@^4.0.0: - version "4.0.4" - resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.0.4.tgz#aa4eb68e5d7b658baa6bf6a57e630cbd7a93d298" - dependencies: - bn.js "^4.1.1" - browserify-rsa "^4.0.0" - create-hash "^1.1.0" - create-hmac "^1.1.2" - elliptic "^6.0.0" - inherits "^2.0.1" - parse-asn1 "^5.0.0" - -browserify-zlib@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" - dependencies: - pako "~1.0.5" - -browserslist@^2.1.2: - version "2.9.0" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-2.9.0.tgz#706aca15c53be15610f466e348cbfa0c00a6a379" - dependencies: - caniuse-lite "^1.0.30000760" - electron-to-chromium "^1.3.27" - -buffer-xor@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" - -buffer@^4.3.0: - version "4.9.1" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.1.tgz#6d1bb601b07a4efced97094132093027c95bc298" - dependencies: - base64-js "^1.0.2" - ieee754 "^1.1.4" - isarray "^1.0.0" - -builtin-modules@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" - -builtin-status-codes@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" - -camelcase@^1.0.2: - version "1.2.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39" - -camelcase@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" - -caniuse-lite@^1.0.30000760: - version "1.0.30000765" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000765.tgz#aa1a75019276b48463c0fca2a5257fb9f26a7c9d" - -caseless@~0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" - -center-align@^0.1.1: - version "0.1.3" - resolved "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad" - dependencies: - align-text "^0.1.3" - lazy-cache "^1.0.3" - -chalk@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" - dependencies: - 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" - -chokidar@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.7.0.tgz#798e689778151c8076b4b360e5edd28cda2bb468" - dependencies: - anymatch "^1.3.0" - async-each "^1.0.0" - glob-parent "^2.0.0" - inherits "^2.0.1" - is-binary-path "^1.0.0" - is-glob "^2.0.0" - path-is-absolute "^1.0.0" - readdirp "^2.0.0" - optionalDependencies: - fsevents "^1.0.0" - -cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - -cliui@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1" - dependencies: - center-align "^0.1.1" - right-align "^0.1.1" - wordwrap "0.0.2" - -cliui@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d" - dependencies: - string-width "^1.0.1" - strip-ansi "^3.0.1" - wrap-ansi "^2.0.0" - -co@^4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" - -code-point-at@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" - -combined-stream@^1.0.5, combined-stream@~1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.5.tgz#938370a57b4a51dea2c77c15d5c5fdf895164009" - dependencies: - delayed-stream "~1.0.0" - -commondir@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - -console-browserify@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10" - dependencies: - date-now "^0.1.4" - -console-control-strings@^1.0.0, console-control-strings@~1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" - -constants-browserify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" - -convert-source-map@^1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.0.tgz#9acd70851c6d5dfdd93d9282e5edf94a03ff46b5" - -core-js@^1.0.0: - version "1.2.7" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636" - -core-js@^2.4.0, core-js@^2.5.0: - version "2.5.1" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.1.tgz#ae6874dc66937789b80754ff5428df66819ca50b" - -core-util-is@1.0.2, core-util-is@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" - -create-ecdh@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.0.tgz#888c723596cdf7612f6498233eebd7a35301737d" - dependencies: - bn.js "^4.1.0" - elliptic "^6.0.0" - -create-hash@^1.1.0, create-hash@^1.1.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.1.3.tgz#606042ac8b9262750f483caddab0f5819172d8fd" - dependencies: - cipher-base "^1.0.1" - inherits "^2.0.1" - ripemd160 "^2.0.0" - sha.js "^2.4.0" - -create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4: - version "1.1.6" - resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.6.tgz#acb9e221a4e17bdb076e90657c42b93e3726cf06" - dependencies: - 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@^5.0.1: - version "5.1.0" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" - dependencies: - lru-cache "^4.0.1" - shebang-command "^1.2.0" - which "^1.2.9" - -cryptiles@2.x.x: - version "2.0.5" - resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-2.0.5.tgz#3bdfecdc608147c1c67202fa291e7dca59eaa3b8" - dependencies: - boom "2.x.x" - -crypto-browserify@^3.11.0: - version "3.12.0" - resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" - dependencies: - 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" - -d@1: - version "1.0.0" - resolved "https://registry.yarnpkg.com/d/-/d-1.0.0.tgz#754bb5bfe55451da69a58b94d45f4c5b0462d58f" - dependencies: - es5-ext "^0.10.9" - -dashdash@^1.12.0: - version "1.14.1" - resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" - dependencies: - assert-plus "^1.0.0" - -date-now@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b" - -debug@^2.2.0, debug@^2.6.8: - version "2.6.9" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" - dependencies: - ms "2.0.0" - -decamelize@^1.0.0, decamelize@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" - -deep-extend@~0.4.0: - version "0.4.2" - resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.4.2.tgz#48b699c27e334bf89f10892be432f6e4c7d34a7f" - -delayed-stream@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" - -delegates@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" - -des.js@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.0.tgz#c074d2e2aa6a8a9a07dbd61f9a15c2cd83ec8ecc" - dependencies: - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - -detect-indent@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208" - dependencies: - repeating "^2.0.0" - -detect-libc@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.2.tgz#71ad5d204bf17a6a6ca8f450c61454066ef461e1" - -diffie-hellman@^5.0.0: - version "5.0.2" - resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.2.tgz#b5835739270cfe26acf632099fded2a07f209e5e" - dependencies: - bn.js "^4.1.0" - miller-rabin "^4.0.0" - randombytes "^2.0.0" - -domain-browser@^1.1.1: - version "1.1.7" - resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.1.7.tgz#867aa4b093faa05f1de08c06f4d7b21fdf8698bc" - -ecc-jsbn@~0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505" - dependencies: - jsbn "~0.1.0" - -electron-to-chromium@^1.3.27: - version "1.3.27" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.27.tgz#78ecb8a399066187bb374eede35d9c70565a803d" - -elliptic@^6.0.0: - version "6.4.0" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.4.0.tgz#cac9af8762c85836187003c8dfe193e5e2eae5df" - dependencies: - 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" - -emojis-list@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" - -encoding@^0.1.11: - version "0.1.12" - resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.12.tgz#538b66f3ee62cd1ab51ec323829d1f9480c74beb" - dependencies: - iconv-lite "~0.4.13" - -enhanced-resolve@^3.4.0: - version "3.4.1" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz#0421e339fd71419b3da13d129b3979040230476e" - dependencies: - graceful-fs "^4.1.2" - memory-fs "^0.4.0" - object-assign "^4.0.1" - tapable "^0.2.7" - -errno@^0.1.3: - version "0.1.4" - resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.4.tgz#b896e23a9e5e8ba33871fc996abd3635fc9a1c7d" - dependencies: - prr "~0.0.0" - -error-ex@^1.2.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.1.tgz#f855a86ce61adc4e8621c3cda21e7a7612c3a8dc" - dependencies: - is-arrayish "^0.2.1" - -es5-ext@^0.10.14, es5-ext@^0.10.35, es5-ext@^0.10.9, es5-ext@~0.10.14: - version "0.10.35" - resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.35.tgz#18ee858ce6a3c45c7d79e91c15fcca9ec568494f" - dependencies: - es6-iterator "~2.0.1" - es6-symbol "~3.1.1" - -es6-iterator@^2.0.1, es6-iterator@~2.0.1: - version "2.0.3" - resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" - dependencies: - d "1" - es5-ext "^0.10.35" - es6-symbol "^3.1.1" - -es6-map@^0.1.3: - version "0.1.5" - resolved "https://registry.yarnpkg.com/es6-map/-/es6-map-0.1.5.tgz#9136e0503dcc06a301690f0bb14ff4e364e949f0" - dependencies: - d "1" - es5-ext "~0.10.14" - es6-iterator "~2.0.1" - es6-set "~0.1.5" - es6-symbol "~3.1.1" - event-emitter "~0.3.5" - -es6-set@~0.1.5: - version "0.1.5" - resolved "https://registry.yarnpkg.com/es6-set/-/es6-set-0.1.5.tgz#d2b3ec5d4d800ced818db538d28974db0a73ccb1" - dependencies: - d "1" - es5-ext "~0.10.14" - es6-iterator "~2.0.1" - es6-symbol "3.1.1" - event-emitter "~0.3.5" - -es6-symbol@3.1.1, es6-symbol@^3.1.1, es6-symbol@~3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.1.tgz#bf00ef4fdab6ba1b46ecb7b629b4c7ed5715cc77" - dependencies: - d "1" - es5-ext "~0.10.14" - -es6-weak-map@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.2.tgz#5e3ab32251ffd1538a1f8e5ffa1357772f92d96f" - dependencies: - d "1" - es5-ext "^0.10.14" - es6-iterator "^2.0.1" - es6-symbol "^3.1.1" - -escape-string-regexp@^1.0.2: - version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - -escope@^3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/escope/-/escope-3.6.0.tgz#e01975e812781a163a6dadfdd80398dc64c889c3" - dependencies: - es6-map "^0.1.3" - es6-weak-map "^2.0.1" - esrecurse "^4.1.0" - estraverse "^4.1.1" - -esrecurse@^4.1.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.0.tgz#fa9568d98d3823f9a41d91e902dcab9ea6e5b163" - dependencies: - estraverse "^4.1.0" - object-assign "^4.0.1" - -estraverse@^4.1.0, estraverse@^4.1.1: - version "4.2.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" - -esutils@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" - -event-emitter@~0.3.5: - version "0.3.5" - resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39" - dependencies: - d "1" - es5-ext "~0.10.14" - -events@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924" - -evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" - dependencies: - md5.js "^1.3.4" - safe-buffer "^5.1.1" - -execa@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" - dependencies: - cross-spawn "^5.0.1" - get-stream "^3.0.0" - is-stream "^1.1.0" - npm-run-path "^2.0.0" - p-finally "^1.0.0" - signal-exit "^3.0.0" - strip-eof "^1.0.0" - -expand-brackets@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" - dependencies: - is-posix-bracket "^0.1.0" - -expand-range@^1.8.1: - version "1.8.2" - resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337" - dependencies: - fill-range "^2.1.0" - -expose-loader@^0.7.3: - version "0.7.3" - resolved "https://registry.yarnpkg.com/expose-loader/-/expose-loader-0.7.3.tgz#35fbd3659789e4faa81f59de8b7e9fc39e466d51" - -extend@~3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444" - -extglob@^0.3.1: - version "0.3.2" - resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1" - dependencies: - is-extglob "^1.0.0" - -extsprintf@1.3.0, extsprintf@^1.2.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" - -fast-deep-equal@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz#96256a3bc975595eb36d82e9929d060d893439ff" - -fast-json-stable-stringify@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" - -fbjs@^0.8.16: - version "0.8.16" - resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.16.tgz#5e67432f550dc41b572bf55847b8aca64e5337db" - dependencies: - core-js "^1.0.0" - isomorphic-fetch "^2.1.1" - loose-envify "^1.0.0" - object-assign "^4.1.0" - promise "^7.1.1" - setimmediate "^1.0.5" - ua-parser-js "^0.7.9" - -filename-regex@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26" - -fill-range@^2.1.0: - version "2.2.3" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.3.tgz#50b77dfd7e469bc7492470963699fe7a8485a723" - dependencies: - is-number "^2.1.0" - isobject "^2.0.0" - randomatic "^1.1.3" - repeat-element "^1.1.2" - repeat-string "^1.5.2" - -find-cache-dir@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-1.0.0.tgz#9288e3e9e3cc3748717d39eade17cf71fc30ee6f" - dependencies: - commondir "^1.0.1" - make-dir "^1.0.0" - pkg-dir "^2.0.0" - -find-up@^2.0.0, find-up@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" - dependencies: - locate-path "^2.0.0" - -for-in@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" - -for-own@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce" - dependencies: - for-in "^1.0.1" - -forever-agent@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" - -form-data@~2.1.1: - version "2.1.4" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.1.4.tgz#33c183acf193276ecaa98143a69e94bfee1750d1" - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.5" - mime-types "^2.1.12" - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - -fsevents@^1.0.0: - version "1.1.3" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.1.3.tgz#11f82318f5fe7bb2cd22965a108e9306208216d8" - dependencies: - nan "^2.3.0" - node-pre-gyp "^0.6.39" - -fstream-ignore@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/fstream-ignore/-/fstream-ignore-1.0.5.tgz#9c31dae34767018fe1d249b24dada67d092da105" - dependencies: - fstream "^1.0.0" - inherits "2" - minimatch "^3.0.0" - -fstream@^1.0.0, fstream@^1.0.10, fstream@^1.0.2: - version "1.0.11" - resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.11.tgz#5c1fb1f117477114f0632a0eb4b71b3cb0fd3171" - dependencies: - graceful-fs "^4.1.2" - inherits "~2.0.0" - mkdirp ">=0.5 0" - rimraf "2" - -gauge@~2.7.3: - version "2.7.4" - resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" - dependencies: - 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" - -get-caller-file@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.2.tgz#f702e63127e7e231c160a80c1554acb70d5047e5" - -get-stream@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" - -getpass@^0.1.1: - version "0.1.7" - resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" - dependencies: - assert-plus "^1.0.0" - -glob-base@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" - dependencies: - glob-parent "^2.0.0" - is-glob "^2.0.0" - -glob-parent@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28" - dependencies: - is-glob "^2.0.0" - -glob@^7.0.5: - version "7.1.2" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" - dependencies: - 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" - -globals@^9.18.0: - version "9.18.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" - -graceful-fs@^4.1.2: - version "4.1.11" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" - -har-schema@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-1.0.5.tgz#d263135f43307c02c602afc8fe95970c0151369e" - -har-validator@~4.2.1: - version "4.2.1" - resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-4.2.1.tgz#33481d0f1bbff600dd203d75812a6a5fba002e2a" - dependencies: - ajv "^4.9.1" - har-schema "^1.0.5" - -has-ansi@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" - dependencies: - ansi-regex "^2.0.0" - -has-flag@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51" - -has-unicode@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" - -hash-base@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-2.0.2.tgz#66ea1d856db4e8a5470cadf6fce23ae5244ef2e1" - dependencies: - inherits "^2.0.1" - -hash-base@^3.0.0: - version "3.0.4" - resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.0.4.tgz#5fc8686847ecd73499403319a6b0a3f3f6ae4918" - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - -hash.js@^1.0.0, hash.js@^1.0.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.3.tgz#340dedbe6290187151c1ea1d777a3448935df846" - dependencies: - inherits "^2.0.3" - minimalistic-assert "^1.0.0" - -hawk@3.1.3, hawk@~3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/hawk/-/hawk-3.1.3.tgz#078444bd7c1640b0fe540d2c9b73d59678e8e1c4" - dependencies: - boom "2.x.x" - cryptiles "2.x.x" - hoek "2.x.x" - sntp "1.x.x" - -history@^4.7.2: - version "4.7.2" - resolved "https://registry.yarnpkg.com/history/-/history-4.7.2.tgz#22b5c7f31633c5b8021c7f4a8a954ac139ee8d5b" - dependencies: - invariant "^2.2.1" - loose-envify "^1.2.0" - resolve-pathname "^2.2.0" - value-equal "^0.4.0" - warning "^3.0.0" - -hmac-drbg@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" - dependencies: - hash.js "^1.0.3" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.1" - -hoek@2.x.x: - version "2.16.3" - resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed" - -hoist-non-react-statics@^2.3.0: - version "2.3.1" - resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-2.3.1.tgz#343db84c6018c650778898240135a1420ee22ce0" - -home-or-tmp@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8" - dependencies: - os-homedir "^1.0.0" - os-tmpdir "^1.0.1" - -hosted-git-info@^2.1.4: - version "2.5.0" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.5.0.tgz#6d60e34b3abbc8313062c3b798ef8d901a07af3c" - -http-signature@~1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.1.1.tgz#df72e267066cd0ac67fb76adf8e134a8fbcf91bf" - dependencies: - assert-plus "^0.2.0" - jsprim "^1.2.2" - sshpk "^1.7.0" - -https-browserify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" - -iconv-lite@~0.4.13: - version "0.4.19" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b" - -ieee754@^1.1.4: - version "1.1.8" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.8.tgz#be33d40ac10ef1926701f6f08a2d86fbfd1ad3e4" - -indexof@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" - -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" - -inherits@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" - -ini@~1.3.0: - version "1.3.4" - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.4.tgz#0537cb79daf59b59a1a517dff706c86ec039162e" - -interpret@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.0.4.tgz#820cdd588b868ffb191a809506d6c9c8f212b1b0" - -invariant@^2.2.1, invariant@^2.2.2: - version "2.2.2" - resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.2.tgz#9e1f56ac0acdb6bf303306f338be3b204ae60360" - dependencies: - loose-envify "^1.0.0" - -invert-kv@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" - -is-arrayish@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" - -is-binary-path@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" - dependencies: - binary-extensions "^1.0.0" - -is-buffer@^1.1.5: - version "1.1.6" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" - -is-builtin-module@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe" - dependencies: - builtin-modules "^1.0.0" - -is-dotfile@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1" - -is-equal-shallow@^0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534" - dependencies: - is-primitive "^2.0.0" - -is-extendable@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" - -is-extglob@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" - -is-finite@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa" - dependencies: - number-is-nan "^1.0.0" - -is-fullwidth-code-point@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" - dependencies: - number-is-nan "^1.0.0" - -is-fullwidth-code-point@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" - -is-glob@^2.0.0, is-glob@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" - dependencies: - is-extglob "^1.0.0" - -is-number@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" - dependencies: - kind-of "^3.0.2" - -is-number@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" - dependencies: - kind-of "^3.0.2" - -is-posix-bracket@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4" - -is-primitive@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" - -is-stream@^1.0.1, is-stream@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" - -is-typedarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" - -isarray@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" - -isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - -isobject@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" - dependencies: - isarray "1.0.0" - -isomorphic-fetch@^2.1.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz#611ae1acf14f5e81f729507472819fe9733558a9" - dependencies: - node-fetch "^1.0.1" - whatwg-fetch ">=0.10.0" - -isstream@~0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" - -js-tokens@^3.0.0, js-tokens@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" - -jsbn@~0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" - -jsesc@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" - -jsesc@~0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" - -json-loader@^0.5.4: - version "0.5.7" - resolved "https://registry.yarnpkg.com/json-loader/-/json-loader-0.5.7.tgz#dca14a70235ff82f0ac9a3abeb60d337a365185d" - -json-schema-traverse@^0.3.0: - version "0.3.1" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340" - -json-schema@0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" - -json-stable-stringify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" - dependencies: - jsonify "~0.0.0" - -json-stringify-safe@~5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" - -json5@^0.5.0, json5@^0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" - -jsonify@~0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" - -jsprim@^1.2.2: - version "1.4.1" - resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" - dependencies: - assert-plus "1.0.0" - extsprintf "1.3.0" - json-schema "0.2.3" - verror "1.10.0" - -kind-of@^3.0.2: - version "3.2.2" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" - dependencies: - is-buffer "^1.1.5" - -kind-of@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" - dependencies: - is-buffer "^1.1.5" - -lazy-cache@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" - -lcid@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" - dependencies: - invert-kv "^1.0.0" - -load-json-file@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8" - dependencies: - graceful-fs "^4.1.2" - parse-json "^2.2.0" - pify "^2.0.0" - strip-bom "^3.0.0" - -loader-runner@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.3.0.tgz#f482aea82d543e07921700d5a46ef26fdac6b8a2" - -loader-utils@^1.0.2, loader-utils@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.1.0.tgz#c98aef488bcceda2ffb5e2de646d6a754429f5cd" - dependencies: - big.js "^3.1.3" - emojis-list "^2.0.0" - json5 "^0.5.0" - -locate-path@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" - dependencies: - p-locate "^2.0.0" - path-exists "^3.0.0" - -lodash@^4.14.0, lodash@^4.17.4: - version "4.17.4" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" - -longest@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" - -loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.2.0, loose-envify@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848" - dependencies: - js-tokens "^3.0.0" - -lru-cache@^4.0.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.1.tgz#622e32e82488b49279114a4f9ecf45e7cd6bba55" - dependencies: - pseudomap "^1.0.2" - yallist "^2.1.2" - -make-dir@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.1.0.tgz#19b4369fe48c116f53c2af95ad102c0e39e85d51" - dependencies: - pify "^3.0.0" - -md5.js@^1.3.4: - version "1.3.4" - resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.4.tgz#e9bdbde94a20a5ac18b04340fc5764d5b09d901d" - dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" - -mem@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/mem/-/mem-1.1.0.tgz#5edd52b485ca1d900fe64895505399a0dfa45f76" - dependencies: - mimic-fn "^1.0.0" - -memory-fs@^0.4.0, memory-fs@~0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" - dependencies: - errno "^0.1.3" - readable-stream "^2.0.1" - -micromatch@^2.1.5: - version "2.3.11" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" - dependencies: - arr-diff "^2.0.0" - array-unique "^0.2.1" - braces "^1.8.2" - expand-brackets "^0.1.4" - extglob "^0.3.1" - filename-regex "^2.0.0" - is-extglob "^1.0.0" - is-glob "^2.0.1" - kind-of "^3.0.2" - normalize-path "^2.0.1" - object.omit "^2.0.0" - parse-glob "^3.0.4" - regex-cache "^0.4.2" - -miller-rabin@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" - dependencies: - bn.js "^4.0.0" - brorand "^1.0.1" - -mime-db@~1.30.0: - version "1.30.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.30.0.tgz#74c643da2dd9d6a45399963465b26d5ca7d71f01" - -mime-types@^2.1.12, mime-types@~2.1.7: - version "2.1.17" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.17.tgz#09d7a393f03e995a79f8af857b70a9e0ab16557a" - dependencies: - mime-db "~1.30.0" - -mimic-fn@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.1.0.tgz#e667783d92e89dbd342818b5230b9d62a672ad18" - -minimalistic-assert@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz#702be2dda6b37f4836bcb3f5db56641b64a1d3d3" - -minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" - -minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" - dependencies: - brace-expansion "^1.1.7" - -minimist@0.0.8: - version "0.0.8" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" - -minimist@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" - -"mkdirp@>=0.5 0", mkdirp@^0.5.1, mkdirp@~0.5.0: - version "0.5.1" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" - dependencies: - minimist "0.0.8" - -ms@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - -nan@^2.3.0: - version "2.8.0" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.8.0.tgz#ed715f3fe9de02b57a5e6252d90a96675e1f085a" - -node-fetch@^1.0.1: - version "1.7.3" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.3.tgz#980f6f72d85211a5347c6b2bc18c5b84c3eb47ef" - dependencies: - encoding "^0.1.11" - is-stream "^1.0.1" - -node-libs-browser@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.1.0.tgz#5f94263d404f6e44767d726901fff05478d600df" - dependencies: - assert "^1.1.1" - browserify-zlib "^0.2.0" - buffer "^4.3.0" - console-browserify "^1.1.0" - constants-browserify "^1.0.0" - crypto-browserify "^3.11.0" - domain-browser "^1.1.1" - events "^1.0.0" - https-browserify "^1.0.0" - os-browserify "^0.3.0" - path-browserify "0.0.0" - process "^0.11.10" - punycode "^1.2.4" - querystring-es3 "^0.2.0" - readable-stream "^2.3.3" - stream-browserify "^2.0.1" - stream-http "^2.7.2" - string_decoder "^1.0.0" - timers-browserify "^2.0.4" - tty-browserify "0.0.0" - url "^0.11.0" - util "^0.10.3" - vm-browserify "0.0.4" - -node-pre-gyp@^0.6.39: - version "0.6.39" - resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.6.39.tgz#c00e96860b23c0e1420ac7befc5044e1d78d8649" - dependencies: - detect-libc "^1.0.2" - hawk "3.1.3" - mkdirp "^0.5.1" - nopt "^4.0.1" - npmlog "^4.0.2" - rc "^1.1.7" - request "2.81.0" - rimraf "^2.6.1" - semver "^5.3.0" - tar "^2.2.1" - tar-pack "^3.4.0" - -nopt@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" - dependencies: - abbrev "1" - osenv "^0.1.4" - -normalize-package-data@^2.3.2: - version "2.4.0" - resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.4.0.tgz#12f95a307d58352075a04907b84ac8be98ac012f" - dependencies: - hosted-git-info "^2.1.4" - is-builtin-module "^1.0.0" - semver "2 || 3 || 4 || 5" - validate-npm-package-license "^3.0.1" - -normalize-path@^2.0.0, normalize-path@^2.0.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" - dependencies: - remove-trailing-separator "^1.0.1" - -npm-run-path@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" - dependencies: - path-key "^2.0.0" - -npmlog@^4.0.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" - dependencies: - are-we-there-yet "~1.1.2" - console-control-strings "~1.1.0" - gauge "~2.7.3" - set-blocking "~2.0.0" - -number-is-nan@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" - -oauth-sign@~0.8.1: - version "0.8.2" - resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43" - -object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" - -object.omit@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" - dependencies: - for-own "^0.1.4" - is-extendable "^0.1.1" - -once@^1.3.0, once@^1.3.3: - version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - dependencies: - wrappy "1" - -os-browserify@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" - -os-homedir@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" - -os-locale@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-2.1.0.tgz#42bc2900a6b5b8bd17376c8e882b65afccf24bf2" - dependencies: - execa "^0.7.0" - lcid "^1.0.0" - mem "^1.1.0" - -os-tmpdir@^1.0.0, os-tmpdir@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" - -osenv@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.4.tgz#42fe6d5953df06c8064be6f176c3d05aaaa34644" - dependencies: - os-homedir "^1.0.0" - os-tmpdir "^1.0.0" - -p-finally@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" - -p-limit@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.1.0.tgz#b07ff2d9a5d88bec806035895a2bab66a27988bc" - -p-locate@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" - dependencies: - p-limit "^1.1.0" - -pako@~1.0.5: - version "1.0.6" - resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.6.tgz#0101211baa70c4bca4a0f63f2206e97b7dfaf258" - -parse-asn1@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.0.tgz#37c4f9b7ed3ab65c74817b5f2480937fbf97c712" - dependencies: - asn1.js "^4.0.0" - browserify-aes "^1.0.0" - create-hash "^1.1.0" - evp_bytestokey "^1.0.0" - pbkdf2 "^3.0.3" - -parse-glob@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" - dependencies: - glob-base "^0.3.0" - is-dotfile "^1.0.0" - is-extglob "^1.0.0" - is-glob "^2.0.0" - -parse-json@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" - dependencies: - error-ex "^1.2.0" - -path-browserify@0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.0.tgz#a0b870729aae214005b7d5032ec2cbbb0fb4451a" - -path-exists@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" - -path-is-absolute@^1.0.0, path-is-absolute@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - -path-key@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" - -path-to-regexp@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.7.0.tgz#59fde0f435badacba103a84e9d3bc64e96b9937d" - dependencies: - isarray "0.0.1" - -path-type@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73" - dependencies: - pify "^2.0.0" - -pbkdf2@^3.0.3: - version "3.0.14" - resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.14.tgz#a35e13c64799b06ce15320f459c230e68e73bade" - dependencies: - 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@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-0.2.0.tgz#33ef30c5c77d4ea21c5a53869d91b56d8f2555e5" - -pify@^2.0.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" - -pify@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" - -pkg-dir@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b" - dependencies: - find-up "^2.1.0" - -preserve@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" - -private@^0.1.6, private@^0.1.7: - version "0.1.8" - resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" - -process-nextick-args@~1.0.6: - version "1.0.7" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" - -process@^0.11.10: - version "0.11.10" - resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" - -promise@^7.1.1: - version "7.3.1" - resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf" - dependencies: - asap "~2.0.3" - -prop-types@^15.5.4, prop-types@^15.6.0: - version "15.6.0" - resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.6.0.tgz#ceaf083022fc46b4a35f69e13ef75aed0d639856" - dependencies: - fbjs "^0.8.16" - loose-envify "^1.3.1" - object-assign "^4.1.1" - -prr@~0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/prr/-/prr-0.0.0.tgz#1a84b85908325501411853d0081ee3fa86e2926a" - -pseudomap@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" - -public-encrypt@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.0.tgz#39f699f3a46560dd5ebacbca693caf7c65c18cc6" - dependencies: - bn.js "^4.1.0" - browserify-rsa "^4.0.0" - create-hash "^1.1.0" - parse-asn1 "^5.0.0" - randombytes "^2.0.1" - -punycode@1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" - -punycode@^1.2.4, punycode@^1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" - -qs@~6.4.0: - version "6.4.0" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.4.0.tgz#13e26d28ad6b0ffaa91312cd3bf708ed351e7233" - -querystring-es3@^0.2.0: - version "0.2.1" - resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" - -querystring@0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" - -randomatic@^1.1.3: - version "1.1.7" - resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-1.1.7.tgz#c7abe9cc8b87c0baa876b19fde83fd464797e38c" - dependencies: - is-number "^3.0.0" - kind-of "^4.0.0" - -randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.0.5.tgz#dc009a246b8d09a177b4b7a0ae77bc570f4b1b79" - dependencies: - safe-buffer "^5.1.0" - -randomfill@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.3.tgz#b96b7df587f01dd91726c418f30553b1418e3d62" - dependencies: - randombytes "^2.0.5" - safe-buffer "^5.1.0" - -rc@^1.1.7: - version "1.2.2" - resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.2.tgz#d8ce9cb57e8d64d9c7badd9876c7c34cbe3c7077" - dependencies: - deep-extend "~0.4.0" - ini "~1.3.0" - minimist "^1.2.0" - strip-json-comments "~2.0.1" - -react-dom@^16.1.1: - version "16.1.1" - resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.1.1.tgz#b2e331b6d752faf1a2d31399969399a41d8d45f8" - dependencies: - fbjs "^0.8.16" - loose-envify "^1.1.0" - object-assign "^4.1.1" - prop-types "^15.6.0" - -react-router-dom@^4.2.2: - version "4.2.2" - resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-4.2.2.tgz#c8a81df3adc58bba8a76782e946cbd4eae649b8d" - dependencies: - history "^4.7.2" - invariant "^2.2.2" - loose-envify "^1.3.1" - prop-types "^15.5.4" - react-router "^4.2.0" - warning "^3.0.0" - -react-router@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/react-router/-/react-router-4.2.0.tgz#61f7b3e3770daeb24062dae3eedef1b054155986" - dependencies: - history "^4.7.2" - hoist-non-react-statics "^2.3.0" - invariant "^2.2.2" - loose-envify "^1.3.1" - path-to-regexp "^1.7.0" - prop-types "^15.5.4" - warning "^3.0.0" - -react@^16.1.1: - version "16.1.1" - resolved "https://registry.yarnpkg.com/react/-/react-16.1.1.tgz#d5c4ef795507e3012282dd51261ff9c0e824fe1f" - dependencies: - fbjs "^0.8.16" - loose-envify "^1.1.0" - object-assign "^4.1.1" - prop-types "^15.6.0" - -read-pkg-up@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be" - dependencies: - find-up "^2.0.0" - read-pkg "^2.0.0" - -read-pkg@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8" - dependencies: - load-json-file "^2.0.0" - normalize-package-data "^2.3.2" - path-type "^2.0.0" - -readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.4, readable-stream@^2.2.6, readable-stream@^2.3.3: - version "2.3.3" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.3.tgz#368f2512d79f9d46fdfc71349ae7878bbc1eb95c" - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.3" - isarray "~1.0.0" - process-nextick-args "~1.0.6" - safe-buffer "~5.1.1" - string_decoder "~1.0.3" - util-deprecate "~1.0.1" - -readdirp@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.1.0.tgz#4ed0ad060df3073300c48440373f72d1cc642d78" - dependencies: - graceful-fs "^4.1.2" - minimatch "^3.0.2" - readable-stream "^2.0.2" - set-immediate-shim "^1.0.1" - -regenerate@^1.2.1: - version "1.3.3" - resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.3.3.tgz#0c336d3980553d755c39b586ae3b20aa49c82b7f" - -regenerator-runtime@^0.11.0: - version "0.11.0" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz#7e54fe5b5ccd5d6624ea6255c3473be090b802e1" - -regenerator-transform@^0.10.0: - version "0.10.1" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.10.1.tgz#1e4996837231da8b7f3cf4114d71b5691a0680dd" - dependencies: - babel-runtime "^6.18.0" - babel-types "^6.19.0" - private "^0.1.6" - -regex-cache@^0.4.2: - version "0.4.4" - resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.4.tgz#75bdc58a2a1496cec48a12835bc54c8d562336dd" - dependencies: - is-equal-shallow "^0.1.3" - -regexpu-core@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-2.0.0.tgz#49d038837b8dcf8bfa5b9a42139938e6ea2ae240" - dependencies: - regenerate "^1.2.1" - regjsgen "^0.2.0" - regjsparser "^0.1.4" - -regjsgen@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7" - -regjsparser@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.1.5.tgz#7ee8f84dc6fa792d3fd0ae228d24bd949ead205c" - dependencies: - jsesc "~0.5.0" - -remove-trailing-separator@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" - -repeat-element@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a" - -repeat-string@^1.5.2: - version "1.6.1" - resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" - -repeating@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" - dependencies: - is-finite "^1.0.0" - -request@2.81.0: - version "2.81.0" - resolved "https://registry.yarnpkg.com/request/-/request-2.81.0.tgz#c6928946a0e06c5f8d6f8a9333469ffda46298a0" - dependencies: - aws-sign2 "~0.6.0" - aws4 "^1.2.1" - caseless "~0.12.0" - combined-stream "~1.0.5" - extend "~3.0.0" - forever-agent "~0.6.1" - form-data "~2.1.1" - har-validator "~4.2.1" - hawk "~3.1.3" - http-signature "~1.1.0" - is-typedarray "~1.0.0" - isstream "~0.1.2" - json-stringify-safe "~5.0.1" - mime-types "~2.1.7" - oauth-sign "~0.8.1" - performance-now "^0.2.0" - qs "~6.4.0" - safe-buffer "^5.0.1" - stringstream "~0.0.4" - tough-cookie "~2.3.0" - tunnel-agent "^0.6.0" - uuid "^3.0.0" - -require-directory@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - -require-main-filename@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" - -resolve-pathname@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/resolve-pathname/-/resolve-pathname-2.2.0.tgz#7e9ae21ed815fd63ab189adeee64dc831eefa879" - -right-align@^0.1.1: - version "0.1.3" - resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef" - dependencies: - align-text "^0.1.1" - -rimraf@2, rimraf@^2.5.1, rimraf@^2.6.1: - version "2.6.2" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36" - dependencies: - glob "^7.0.5" - -ripemd160@^2.0.0, ripemd160@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.1.tgz#0f4584295c53a3628af7e6d79aca21ce57d1c6e7" - dependencies: - hash-base "^2.0.0" - inherits "^2.0.1" - -safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@~5.1.0, safe-buffer@~5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" - -"semver@2 || 3 || 4 || 5", semver@^5.3.0: - version "5.4.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.4.1.tgz#e059c09d8571f0540823733433505d3a2f00b18e" - -set-blocking@^2.0.0, set-blocking@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" - -set-immediate-shim@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61" - -setimmediate@^1.0.4, setimmediate@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" - -sha.js@^2.4.0, sha.js@^2.4.8: - version "2.4.9" - resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.9.tgz#98f64880474b74f4a38b8da9d3c0f2d104633e7d" - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - -shebang-command@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" - dependencies: - shebang-regex "^1.0.0" - -shebang-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" - -signal-exit@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" - -slash@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" - -sntp@1.x.x: - version "1.0.9" - resolved "https://registry.yarnpkg.com/sntp/-/sntp-1.0.9.tgz#6541184cc90aeea6c6e7b35e2659082443c66198" - dependencies: - hoek "2.x.x" - -source-list-map@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.0.tgz#aaa47403f7b245a92fbc97ea08f250d6087ed085" - -source-map-support@^0.4.15: - version "0.4.18" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f" - dependencies: - source-map "^0.5.6" - -source-map@^0.5.3, source-map@^0.5.6, source-map@~0.5.1: - version "0.5.7" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" - -source-map@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" - -spdx-correct@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-1.0.2.tgz#4b3073d933ff51f3912f03ac5519498a4150db40" - dependencies: - spdx-license-ids "^1.0.2" - -spdx-expression-parse@~1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz#9bdf2f20e1f40ed447fbe273266191fced51626c" - -spdx-license-ids@^1.0.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz#c9df7a3424594ade6bd11900d596696dc06bac57" - -sshpk@^1.7.0: - version "1.13.1" - resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.13.1.tgz#512df6da6287144316dc4c18fe1cf1d940739be3" - dependencies: - asn1 "~0.2.3" - assert-plus "^1.0.0" - dashdash "^1.12.0" - getpass "^0.1.1" - optionalDependencies: - bcrypt-pbkdf "^1.0.0" - ecc-jsbn "~0.1.1" - jsbn "~0.1.0" - tweetnacl "~0.14.0" - -stream-browserify@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.1.tgz#66266ee5f9bdb9940a4e4514cafb43bb71e5c9db" - dependencies: - inherits "~2.0.1" - readable-stream "^2.0.2" - -stream-http@^2.7.2: - version "2.7.2" - resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.7.2.tgz#40a050ec8dc3b53b33d9909415c02c0bf1abfbad" - dependencies: - builtin-status-codes "^3.0.0" - inherits "^2.0.1" - readable-stream "^2.2.6" - to-arraybuffer "^1.0.0" - xtend "^4.0.0" - -string-width@^1.0.1, string-width@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" - dependencies: - code-point-at "^1.0.0" - is-fullwidth-code-point "^1.0.0" - strip-ansi "^3.0.0" - -string-width@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" - dependencies: - is-fullwidth-code-point "^2.0.0" - strip-ansi "^4.0.0" - -string_decoder@^1.0.0, string_decoder@~1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.0.3.tgz#0fc67d7c141825de94282dd536bec6b9bce860ab" - dependencies: - safe-buffer "~5.1.0" - -stringstream@~0.0.4: - version "0.0.5" - resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878" - -strip-ansi@^3.0.0, strip-ansi@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" - dependencies: - ansi-regex "^2.0.0" - -strip-ansi@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" - dependencies: - ansi-regex "^3.0.0" - -strip-bom@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" - -strip-eof@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" - -strip-json-comments@~2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" - -supports-color@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" - -supports-color@^4.2.1: - version "4.5.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.5.0.tgz#be7a0de484dec5c5cddf8b3d59125044912f635b" - dependencies: - has-flag "^2.0.0" - -tapable@^0.2.7: - version "0.2.8" - resolved "https://registry.yarnpkg.com/tapable/-/tapable-0.2.8.tgz#99372a5c999bf2df160afc0d74bed4f47948cd22" - -tar-pack@^3.4.0: - version "3.4.1" - resolved "https://registry.yarnpkg.com/tar-pack/-/tar-pack-3.4.1.tgz#e1dbc03a9b9d3ba07e896ad027317eb679a10a1f" - dependencies: - debug "^2.2.0" - fstream "^1.0.10" - fstream-ignore "^1.0.5" - once "^1.3.3" - readable-stream "^2.1.4" - rimraf "^2.5.1" - tar "^2.2.1" - uid-number "^0.0.6" - -tar@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1" - dependencies: - block-stream "*" - fstream "^1.0.2" - inherits "2" - -timers-browserify@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.4.tgz#96ca53f4b794a5e7c0e1bd7cc88a372298fa01e6" - dependencies: - setimmediate "^1.0.4" - -to-arraybuffer@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" - -to-fast-properties@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" - -tough-cookie@~2.3.0: - version "2.3.3" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.3.tgz#0b618a5565b6dea90bf3425d04d55edc475a7561" - dependencies: - punycode "^1.4.1" - -trim-right@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" - -tty-browserify@0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" - -tunnel-agent@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" - dependencies: - safe-buffer "^5.0.1" - -tweetnacl@^0.14.3, tweetnacl@~0.14.0: - version "0.14.5" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" - -ua-parser-js@^0.7.9: - version "0.7.17" - resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.17.tgz#e9ec5f9498b9ec910e7ae3ac626a805c4d09ecac" - -uglify-js@^2.8.29: - version "2.8.29" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.29.tgz#29c5733148057bb4e1f75df35b7a9cb72e6a59dd" - dependencies: - source-map "~0.5.1" - yargs "~3.10.0" - optionalDependencies: - uglify-to-browserify "~1.0.0" - -uglify-to-browserify@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7" - -uglifyjs-webpack-plugin@^0.4.6: - version "0.4.6" - resolved "https://registry.yarnpkg.com/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-0.4.6.tgz#b951f4abb6bd617e66f63eb891498e391763e309" - dependencies: - source-map "^0.5.6" - uglify-js "^2.8.29" - webpack-sources "^1.0.1" - -uid-number@^0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81" - -url@^0.11.0: - version "0.11.0" - resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" - dependencies: - punycode "1.3.2" - querystring "0.2.0" - -util-deprecate@~1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - -util@0.10.3, util@^0.10.3: - version "0.10.3" - resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" - dependencies: - inherits "2.0.1" - -uuid@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.1.0.tgz#3dd3d3e790abc24d7b0d3a034ffababe28ebbc04" - -validate-npm-package-license@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz#2804babe712ad3379459acfbe24746ab2c303fbc" - dependencies: - spdx-correct "~1.0.0" - spdx-expression-parse "~1.0.0" - -value-equal@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/value-equal/-/value-equal-0.4.0.tgz#c5bdd2f54ee093c04839d71ce2e4758a6890abc7" - -verror@1.10.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" - dependencies: - assert-plus "^1.0.0" - core-util-is "1.0.2" - extsprintf "^1.2.0" - -vm-browserify@0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-0.0.4.tgz#5d7ea45bbef9e4a6ff65f95438e0a87c357d5a73" - dependencies: - indexof "0.0.1" - -warning@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/warning/-/warning-3.0.0.tgz#32e5377cb572de4ab04753bdf8821c01ed605b7c" - dependencies: - loose-envify "^1.0.0" - -watchpack@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.4.0.tgz#4a1472bcbb952bd0a9bb4036801f954dfb39faac" - dependencies: - async "^2.1.2" - chokidar "^1.7.0" - graceful-fs "^4.1.2" - -webpack-sources@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.0.2.tgz#d0148ec083b3b5ccef1035a6b3ec16442983b27a" - dependencies: - source-list-map "^2.0.0" - source-map "~0.6.1" - -webpack@^3.8.1: - version "3.8.1" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-3.8.1.tgz#b16968a81100abe61608b0153c9159ef8bb2bd83" - dependencies: - acorn "^5.0.0" - acorn-dynamic-import "^2.0.0" - ajv "^5.1.5" - ajv-keywords "^2.0.0" - async "^2.1.2" - enhanced-resolve "^3.4.0" - escope "^3.6.0" - interpret "^1.0.0" - json-loader "^0.5.4" - json5 "^0.5.1" - loader-runner "^2.3.0" - loader-utils "^1.1.0" - memory-fs "~0.4.1" - mkdirp "~0.5.0" - node-libs-browser "^2.0.0" - source-map "^0.5.3" - supports-color "^4.2.1" - tapable "^0.2.7" - uglifyjs-webpack-plugin "^0.4.6" - watchpack "^1.4.0" - webpack-sources "^1.0.1" - yargs "^8.0.2" - -whatwg-fetch@>=0.10.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz#9c84ec2dcf68187ff00bc64e1274b442176e1c84" - -which-module@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" - -which@^1.2.9: - version "1.3.0" - resolved "https://registry.yarnpkg.com/which/-/which-1.3.0.tgz#ff04bdfc010ee547d780bec38e1ac1c2777d253a" - dependencies: - isexe "^2.0.0" - -wide-align@^1.1.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.2.tgz#571e0f1b0604636ebc0dfc21b0339bbe31341710" - dependencies: - string-width "^1.0.2" - -window-size@0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d" - -wordwrap@0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f" - -wrap-ansi@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" - dependencies: - string-width "^1.0.1" - strip-ansi "^3.0.1" - -wrappy@1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - -xtend@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" - -y18n@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" - -yallist@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" - -yargs-parser@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-7.0.0.tgz#8d0ac42f16ea55debd332caf4c4038b3e3f5dfd9" - dependencies: - camelcase "^4.1.0" - -yargs@^8.0.2: - version "8.0.2" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-8.0.2.tgz#6299a9055b1cefc969ff7e79c1d918dceb22c360" - dependencies: - camelcase "^4.1.0" - cliui "^3.2.0" - decamelize "^1.1.1" - get-caller-file "^1.0.1" - os-locale "^2.0.0" - read-pkg-up "^2.0.0" - require-directory "^2.1.1" - require-main-filename "^1.0.1" - set-blocking "^2.0.0" - string-width "^2.0.0" - which-module "^2.0.0" - y18n "^3.2.1" - yargs-parser "^7.0.0" - -yargs@~3.10.0: - version "3.10.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1" - dependencies: - camelcase "^1.0.2" - cliui "^2.1.0" - decamelize "^1.0.0" - window-size "0.1.0" diff --git a/src/React.Sample.Webpack/package-lock.json b/src/React.Sample.Webpack/package-lock.json new file mode 100644 index 000000000..83261f170 --- /dev/null +++ b/src/React.Sample.Webpack/package-lock.json @@ -0,0 +1,3342 @@ +{ + "name": "React.Sample.Webpack", + "version": "0.0.1", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "acorn": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", + "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=", + "dev": true + }, + "align-text": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", + "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", + "dev": true, + "requires": { + "kind-of": "3.2.2", + "longest": "1.0.1", + "repeat-string": "1.6.1" + } + }, + "amdefine": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", + "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", + "dev": true + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "anymatch": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", + "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", + "dev": true, + "requires": { + "micromatch": "2.3.11", + "normalize-path": "2.1.1" + } + }, + "arr-diff": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", + "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", + "dev": true, + "requires": { + "arr-flatten": "1.1.0" + } + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true + }, + "array-unique": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", + "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", + "dev": true + }, + "assert": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz", + "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=", + "dev": true, + "requires": { + "util": "0.10.3" + } + }, + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "dev": true + }, + "async-each": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", + "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=", + "dev": true + }, + "babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "dev": true, + "requires": { + "chalk": "1.1.3", + "esutils": "2.0.2", + "js-tokens": "3.0.2" + } + }, + "babel-core": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.0.tgz", + "integrity": "sha1-rzL3izGm/O8RnIew/Y2XU/A6C7g=", + "dev": true, + "requires": { + "babel-code-frame": "6.26.0", + "babel-generator": "6.26.0", + "babel-helpers": "6.24.1", + "babel-messages": "6.23.0", + "babel-register": "6.26.0", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "convert-source-map": "1.5.1", + "debug": "2.6.9", + "json5": "0.5.1", + "lodash": "4.17.4", + "minimatch": "3.0.4", + "path-is-absolute": "1.0.1", + "private": "0.1.8", + "slash": "1.0.0", + "source-map": "0.5.7" + } + }, + "babel-generator": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.0.tgz", + "integrity": "sha1-rBriAHC3n248odMmlhMFN3TyDcU=", + "dev": true, + "requires": { + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "detect-indent": "4.0.0", + "jsesc": "1.3.0", + "lodash": "4.17.4", + "source-map": "0.5.7", + "trim-right": "1.0.1" + } + }, + "babel-helper-bindify-decorators": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-bindify-decorators/-/babel-helper-bindify-decorators-6.24.1.tgz", + "integrity": "sha1-FMGeXxQte0fxmlJDHlKxzLxAozA=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-helper-builder-binary-assignment-operator-visitor": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz", + "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=", + "dev": true, + "requires": { + "babel-helper-explode-assignable-expression": "6.24.1", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-helper-builder-react-jsx": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.26.0.tgz", + "integrity": "sha1-Of+DE7dci2Xc7/HzHTg+D/KkCKA=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "esutils": "2.0.2" + } + }, + "babel-helper-call-delegate": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz", + "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", + "dev": true, + "requires": { + "babel-helper-hoist-variables": "6.24.1", + "babel-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-helper-define-map": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz", + "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=", + "dev": true, + "requires": { + "babel-helper-function-name": "6.24.1", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "lodash": "4.17.4" + } + }, + "babel-helper-explode-assignable-expression": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz", + "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-helper-explode-class": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-explode-class/-/babel-helper-explode-class-6.24.1.tgz", + "integrity": "sha1-fcKjkQ3uAHBW4eMdZAztPVTqqes=", + "dev": true, + "requires": { + "babel-helper-bindify-decorators": "6.24.1", + "babel-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-helper-function-name": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", + "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", + "dev": true, + "requires": { + "babel-helper-get-function-arity": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-helper-get-function-arity": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", + "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-helper-hoist-variables": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz", + "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-helper-optimise-call-expression": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz", + "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-helper-regex": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz", + "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "lodash": "4.17.4" + } + }, + "babel-helper-remap-async-to-generator": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz", + "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=", + "dev": true, + "requires": { + "babel-helper-function-name": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-helper-replace-supers": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz", + "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=", + "dev": true, + "requires": { + "babel-helper-optimise-call-expression": "6.24.1", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-helpers": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", + "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-template": "6.26.0" + } + }, + "babel-loader": { + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-6.4.1.tgz", + "integrity": "sha1-CzQRLVsHSKjc2/Uaz2+b1C1QuMo=", + "dev": true, + "requires": { + "find-cache-dir": "0.1.1", + "loader-utils": "0.2.17", + "mkdirp": "0.5.1", + "object-assign": "4.1.1" + } + }, + "babel-messages": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-check-es2015-constants": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz", + "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-syntax-async-functions": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz", + "integrity": "sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU=", + "dev": true + }, + "babel-plugin-syntax-async-generators": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-generators/-/babel-plugin-syntax-async-generators-6.13.0.tgz", + "integrity": "sha1-a8lj67FuzLrmuStZbrfzXDQqi5o=", + "dev": true + }, + "babel-plugin-syntax-class-constructor-call": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-class-constructor-call/-/babel-plugin-syntax-class-constructor-call-6.18.0.tgz", + "integrity": "sha1-nLnTn+Q8hgC+yBRkVt3L1OGnZBY=", + "dev": true + }, + "babel-plugin-syntax-class-properties": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-class-properties/-/babel-plugin-syntax-class-properties-6.13.0.tgz", + "integrity": "sha1-1+sjt5oxf4VDlixQW4J8fWysJ94=", + "dev": true + }, + "babel-plugin-syntax-decorators": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-decorators/-/babel-plugin-syntax-decorators-6.13.0.tgz", + "integrity": "sha1-MSVjtNvePMgGzuPkFszurd0RrAs=", + "dev": true + }, + "babel-plugin-syntax-do-expressions": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-do-expressions/-/babel-plugin-syntax-do-expressions-6.13.0.tgz", + "integrity": "sha1-V0d1YTmqJtOQ0JQQsDdEugfkeW0=", + "dev": true + }, + "babel-plugin-syntax-dynamic-import": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-dynamic-import/-/babel-plugin-syntax-dynamic-import-6.18.0.tgz", + "integrity": "sha1-jWomIpyDdFqZgqRBBRVyyqF5sdo=", + "dev": true + }, + "babel-plugin-syntax-exponentiation-operator": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz", + "integrity": "sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4=", + "dev": true + }, + "babel-plugin-syntax-export-extensions": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-export-extensions/-/babel-plugin-syntax-export-extensions-6.13.0.tgz", + "integrity": "sha1-cKFITw+QiaToStRLrDU8lbmxJyE=", + "dev": true + }, + "babel-plugin-syntax-flow": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-flow/-/babel-plugin-syntax-flow-6.18.0.tgz", + "integrity": "sha1-TDqyCiryaqIM0lmVw5jE63AxDI0=", + "dev": true + }, + "babel-plugin-syntax-function-bind": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-function-bind/-/babel-plugin-syntax-function-bind-6.13.0.tgz", + "integrity": "sha1-SMSV8Xe98xqYHnMvVa3AvdJgH0Y=", + "dev": true + }, + "babel-plugin-syntax-jsx": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz", + "integrity": "sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY=", + "dev": true + }, + "babel-plugin-syntax-object-rest-spread": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz", + "integrity": "sha1-/WU28rzhODb/o6VFjEkDpZe7O/U=", + "dev": true + }, + "babel-plugin-syntax-trailing-function-commas": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz", + "integrity": "sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM=", + "dev": true + }, + "babel-plugin-transform-async-generator-functions": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-generator-functions/-/babel-plugin-transform-async-generator-functions-6.24.1.tgz", + "integrity": "sha1-8FiQAUX9PpkHpt3yjaWfIVJYpds=", + "dev": true, + "requires": { + "babel-helper-remap-async-to-generator": "6.24.1", + "babel-plugin-syntax-async-generators": "6.13.0", + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-async-to-generator": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz", + "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=", + "dev": true, + "requires": { + "babel-helper-remap-async-to-generator": "6.24.1", + "babel-plugin-syntax-async-functions": "6.13.0", + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-class-constructor-call": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-class-constructor-call/-/babel-plugin-transform-class-constructor-call-6.24.1.tgz", + "integrity": "sha1-gNwoVQWsBn3LjWxl4vbxGrd2Xvk=", + "dev": true, + "requires": { + "babel-plugin-syntax-class-constructor-call": "6.18.0", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0" + } + }, + "babel-plugin-transform-class-properties": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.24.1.tgz", + "integrity": "sha1-anl2PqYdM9NvN7YRqp3vgagbRqw=", + "dev": true, + "requires": { + "babel-helper-function-name": "6.24.1", + "babel-plugin-syntax-class-properties": "6.13.0", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0" + } + }, + "babel-plugin-transform-decorators": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-decorators/-/babel-plugin-transform-decorators-6.24.1.tgz", + "integrity": "sha1-eIAT2PjGtSIr33s0Q5Df13Vp4k0=", + "dev": true, + "requires": { + "babel-helper-explode-class": "6.24.1", + "babel-plugin-syntax-decorators": "6.13.0", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-plugin-transform-do-expressions": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-do-expressions/-/babel-plugin-transform-do-expressions-6.22.0.tgz", + "integrity": "sha1-KMyvkoEtlJws0SgfaQyP3EaK6bs=", + "dev": true, + "requires": { + "babel-plugin-syntax-do-expressions": "6.13.0", + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-es2015-arrow-functions": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", + "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-es2015-block-scoped-functions": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", + "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-es2015-block-scoping": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz", + "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "lodash": "4.17.4" + } + }, + "babel-plugin-transform-es2015-classes": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz", + "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=", + "dev": true, + "requires": { + "babel-helper-define-map": "6.26.0", + "babel-helper-function-name": "6.24.1", + "babel-helper-optimise-call-expression": "6.24.1", + "babel-helper-replace-supers": "6.24.1", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-plugin-transform-es2015-computed-properties": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz", + "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-template": "6.26.0" + } + }, + "babel-plugin-transform-es2015-destructuring": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", + "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-es2015-duplicate-keys": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz", + "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-plugin-transform-es2015-for-of": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz", + "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-es2015-function-name": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz", + "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", + "dev": true, + "requires": { + "babel-helper-function-name": "6.24.1", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-plugin-transform-es2015-literals": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz", + "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-es2015-modules-amd": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", + "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=", + "dev": true, + "requires": { + "babel-plugin-transform-es2015-modules-commonjs": "6.26.0", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0" + } + }, + "babel-plugin-transform-es2015-modules-commonjs": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.0.tgz", + "integrity": "sha1-DYOUApt9xqvhqX7xgeAHWN0uXYo=", + "dev": true, + "requires": { + "babel-plugin-transform-strict-mode": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-plugin-transform-es2015-modules-systemjs": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz", + "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=", + "dev": true, + "requires": { + "babel-helper-hoist-variables": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0" + } + }, + "babel-plugin-transform-es2015-modules-umd": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz", + "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=", + "dev": true, + "requires": { + "babel-plugin-transform-es2015-modules-amd": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0" + } + }, + "babel-plugin-transform-es2015-object-super": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz", + "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=", + "dev": true, + "requires": { + "babel-helper-replace-supers": "6.24.1", + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-es2015-parameters": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz", + "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", + "dev": true, + "requires": { + "babel-helper-call-delegate": "6.24.1", + "babel-helper-get-function-arity": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-plugin-transform-es2015-shorthand-properties": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz", + "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-plugin-transform-es2015-spread": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz", + "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-es2015-sticky-regex": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", + "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", + "dev": true, + "requires": { + "babel-helper-regex": "6.26.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-plugin-transform-es2015-template-literals": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz", + "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-es2015-typeof-symbol": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", + "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-es2015-unicode-regex": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", + "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", + "dev": true, + "requires": { + "babel-helper-regex": "6.26.0", + "babel-runtime": "6.26.0", + "regexpu-core": "2.0.0" + } + }, + "babel-plugin-transform-exponentiation-operator": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz", + "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=", + "dev": true, + "requires": { + "babel-helper-builder-binary-assignment-operator-visitor": "6.24.1", + "babel-plugin-syntax-exponentiation-operator": "6.13.0", + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-export-extensions": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-export-extensions/-/babel-plugin-transform-export-extensions-6.22.0.tgz", + "integrity": "sha1-U3OLR+deghhYnuqUbLvTkQm75lM=", + "dev": true, + "requires": { + "babel-plugin-syntax-export-extensions": "6.13.0", + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-flow-strip-types": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.22.0.tgz", + "integrity": "sha1-hMtnKTXUNxT9wyvOhFaNh0Qc988=", + "dev": true, + "requires": { + "babel-plugin-syntax-flow": "6.18.0", + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-function-bind": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-function-bind/-/babel-plugin-transform-function-bind-6.22.0.tgz", + "integrity": "sha1-xvuOlqwpajELjPjqQBRiQH3fapc=", + "dev": true, + "requires": { + "babel-plugin-syntax-function-bind": "6.13.0", + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-object-rest-spread": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz", + "integrity": "sha1-DzZpLVD+9rfi1LOsFHgTepY7ewY=", + "dev": true, + "requires": { + "babel-plugin-syntax-object-rest-spread": "6.13.0", + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-react-display-name": { + "version": "6.25.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-display-name/-/babel-plugin-transform-react-display-name-6.25.0.tgz", + "integrity": "sha1-Z+K/Hx6ck6sI25Z5LgU5K/LMKNE=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-react-jsx": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.24.1.tgz", + "integrity": "sha1-hAoCjn30YN/DotKfDA2R9jduZqM=", + "dev": true, + "requires": { + "babel-helper-builder-react-jsx": "6.26.0", + "babel-plugin-syntax-jsx": "6.18.0", + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-react-jsx-self": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-self/-/babel-plugin-transform-react-jsx-self-6.22.0.tgz", + "integrity": "sha1-322AqdomEqEh5t3XVYvL7PBuY24=", + "dev": true, + "requires": { + "babel-plugin-syntax-jsx": "6.18.0", + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-react-jsx-source": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-source/-/babel-plugin-transform-react-jsx-source-6.22.0.tgz", + "integrity": "sha1-ZqwSFT9c0tF7PBkmj0vwGX9E7NY=", + "dev": true, + "requires": { + "babel-plugin-syntax-jsx": "6.18.0", + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-regenerator": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz", + "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=", + "dev": true, + "requires": { + "regenerator-transform": "0.10.1" + } + }, + "babel-plugin-transform-strict-mode": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", + "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-preset-es2015": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz", + "integrity": "sha1-1EBQ1rwsn+6nAqrzjXJ6AhBTiTk=", + "dev": true, + "requires": { + "babel-plugin-check-es2015-constants": "6.22.0", + "babel-plugin-transform-es2015-arrow-functions": "6.22.0", + "babel-plugin-transform-es2015-block-scoped-functions": "6.22.0", + "babel-plugin-transform-es2015-block-scoping": "6.26.0", + "babel-plugin-transform-es2015-classes": "6.24.1", + "babel-plugin-transform-es2015-computed-properties": "6.24.1", + "babel-plugin-transform-es2015-destructuring": "6.23.0", + "babel-plugin-transform-es2015-duplicate-keys": "6.24.1", + "babel-plugin-transform-es2015-for-of": "6.23.0", + "babel-plugin-transform-es2015-function-name": "6.24.1", + "babel-plugin-transform-es2015-literals": "6.22.0", + "babel-plugin-transform-es2015-modules-amd": "6.24.1", + "babel-plugin-transform-es2015-modules-commonjs": "6.26.0", + "babel-plugin-transform-es2015-modules-systemjs": "6.24.1", + "babel-plugin-transform-es2015-modules-umd": "6.24.1", + "babel-plugin-transform-es2015-object-super": "6.24.1", + "babel-plugin-transform-es2015-parameters": "6.24.1", + "babel-plugin-transform-es2015-shorthand-properties": "6.24.1", + "babel-plugin-transform-es2015-spread": "6.22.0", + "babel-plugin-transform-es2015-sticky-regex": "6.24.1", + "babel-plugin-transform-es2015-template-literals": "6.22.0", + "babel-plugin-transform-es2015-typeof-symbol": "6.23.0", + "babel-plugin-transform-es2015-unicode-regex": "6.24.1", + "babel-plugin-transform-regenerator": "6.26.0" + } + }, + "babel-preset-flow": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-preset-flow/-/babel-preset-flow-6.23.0.tgz", + "integrity": "sha1-5xIYiHCFrpoktb5Baa/7WZgWxJ0=", + "dev": true, + "requires": { + "babel-plugin-transform-flow-strip-types": "6.22.0" + } + }, + "babel-preset-react": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-preset-react/-/babel-preset-react-6.24.1.tgz", + "integrity": "sha1-umnfrqRfw+xjm2pOzqbhdwLJE4A=", + "dev": true, + "requires": { + "babel-plugin-syntax-jsx": "6.18.0", + "babel-plugin-transform-react-display-name": "6.25.0", + "babel-plugin-transform-react-jsx": "6.24.1", + "babel-plugin-transform-react-jsx-self": "6.22.0", + "babel-plugin-transform-react-jsx-source": "6.22.0", + "babel-preset-flow": "6.23.0" + } + }, + "babel-preset-stage-0": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/babel-preset-stage-0/-/babel-preset-stage-0-6.5.0.tgz", + "integrity": "sha1-i4R5sgd0grjz3I+PXwyceXiM3iI=", + "dev": true, + "requires": { + "babel-plugin-transform-do-expressions": "6.22.0", + "babel-plugin-transform-function-bind": "6.22.0", + "babel-preset-stage-1": "6.24.1" + } + }, + "babel-preset-stage-1": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-preset-stage-1/-/babel-preset-stage-1-6.24.1.tgz", + "integrity": "sha1-dpLNfc1oSZB+auSgqFWJz7niv7A=", + "dev": true, + "requires": { + "babel-plugin-transform-class-constructor-call": "6.24.1", + "babel-plugin-transform-export-extensions": "6.22.0", + "babel-preset-stage-2": "6.24.1" + } + }, + "babel-preset-stage-2": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-preset-stage-2/-/babel-preset-stage-2-6.24.1.tgz", + "integrity": "sha1-2eKWD7PXEYfw5k7sYrwHdnIZvcE=", + "dev": true, + "requires": { + "babel-plugin-syntax-dynamic-import": "6.18.0", + "babel-plugin-transform-class-properties": "6.24.1", + "babel-plugin-transform-decorators": "6.24.1", + "babel-preset-stage-3": "6.24.1" + } + }, + "babel-preset-stage-3": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-preset-stage-3/-/babel-preset-stage-3-6.24.1.tgz", + "integrity": "sha1-g2raCp56f6N8sTj7kyb4eTSkg5U=", + "dev": true, + "requires": { + "babel-plugin-syntax-trailing-function-commas": "6.22.0", + "babel-plugin-transform-async-generator-functions": "6.24.1", + "babel-plugin-transform-async-to-generator": "6.24.1", + "babel-plugin-transform-exponentiation-operator": "6.24.1", + "babel-plugin-transform-object-rest-spread": "6.26.0" + } + }, + "babel-register": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", + "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", + "dev": true, + "requires": { + "babel-core": "6.26.0", + "babel-runtime": "6.26.0", + "core-js": "2.5.3", + "home-or-tmp": "2.0.0", + "lodash": "4.17.4", + "mkdirp": "0.5.1", + "source-map-support": "0.4.18" + } + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "2.5.3", + "regenerator-runtime": "0.11.1" + } + }, + "babel-template": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", + "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "lodash": "4.17.4" + } + }, + "babel-traverse": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", + "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", + "dev": true, + "requires": { + "babel-code-frame": "6.26.0", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "debug": "2.6.9", + "globals": "9.18.0", + "invariant": "2.2.2", + "lodash": "4.17.4" + } + }, + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.4", + "to-fast-properties": "1.0.3" + } + }, + "babylon": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", + "dev": true + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "base64-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.2.1.tgz", + "integrity": "sha512-dwVUVIXsBZXwTuwnXI9RK8sBmgq09NDHzyR9SAph9eqk76gKK2JSQmZARC2zRC81JC2QTtxD0ARU5qTS25gIGw==", + "dev": true + }, + "big.js": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz", + "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==", + "dev": true + }, + "binary-extensions": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.11.0.tgz", + "integrity": "sha1-RqoXUftqL5PuXmibsQh9SxTGwgU=", + "dev": true + }, + "brace-expansion": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", + "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", + "dev": true, + "requires": { + "balanced-match": "1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", + "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", + "dev": true, + "requires": { + "expand-range": "1.8.2", + "preserve": "0.2.0", + "repeat-element": "1.1.2" + } + }, + "browserify-aes": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-0.4.0.tgz", + "integrity": "sha1-BnFJtmjfMcS1hTPgLQHoBthgjiw=", + "dev": true, + "requires": { + "inherits": "2.0.3" + } + }, + "browserify-zlib": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz", + "integrity": "sha1-uzX4pRn2AOD6a4SFJByXnQFB+y0=", + "dev": true, + "requires": { + "pako": "0.2.9" + } + }, + "buffer": { + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", + "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=", + "dev": true, + "requires": { + "base64-js": "1.2.1", + "ieee754": "1.1.8", + "isarray": "1.0.0" + } + }, + "builtin-status-codes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", + "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", + "dev": true + }, + "camelcase": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", + "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", + "dev": true + }, + "center-align": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", + "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", + "dev": true, + "requires": { + "align-text": "0.1.4", + "lazy-cache": "1.0.4" + } + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "2.2.1", + "escape-string-regexp": "1.0.5", + "has-ansi": "2.0.0", + "strip-ansi": "3.0.1", + "supports-color": "2.0.0" + } + }, + "chokidar": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", + "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", + "dev": true, + "requires": { + "anymatch": "1.3.2", + "async-each": "1.0.1", + "fsevents": "1.1.3", + "glob-parent": "2.0.0", + "inherits": "2.0.3", + "is-binary-path": "1.0.1", + "is-glob": "2.0.1", + "path-is-absolute": "1.0.1", + "readdirp": "2.1.0" + } + }, + "cliui": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", + "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", + "dev": true, + "requires": { + "center-align": "0.1.3", + "right-align": "0.1.3", + "wordwrap": "0.0.2" + }, + "dependencies": { + "wordwrap": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", + "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", + "dev": true + } + } + }, + "clone": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.3.tgz", + "integrity": "sha1-KY1+IjFmD0DAA8LtMUDezz9TCF8=", + "dev": true + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "console-browserify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", + "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", + "dev": true, + "requires": { + "date-now": "0.1.4" + } + }, + "constants-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", + "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", + "dev": true + }, + "convert-source-map": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz", + "integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU=", + "dev": true + }, + "core-js": { + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.3.tgz", + "integrity": "sha1-isw4NFgk8W2DZbfJtCWRaOjtYD4=", + "dev": true + }, + "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=", + "dev": true + }, + "crypto-browserify": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.3.0.tgz", + "integrity": "sha1-ufx1u0oO1h3PHNXa6W6zDJw+UGw=", + "dev": true, + "requires": { + "browserify-aes": "0.4.0", + "pbkdf2-compat": "2.0.1", + "ripemd160": "0.2.0", + "sha.js": "2.2.6" + } + }, + "date-now": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", + "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=", + "dev": true + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true + }, + "detect-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", + "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", + "dev": true, + "requires": { + "repeating": "2.0.1" + } + }, + "domain-browser": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.1.7.tgz", + "integrity": "sha1-hnqksJP6oF8d4IwG9NeyH9+GmLw=", + "dev": true + }, + "emojis-list": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", + "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", + "dev": true + }, + "enhanced-resolve": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-0.9.1.tgz", + "integrity": "sha1-TW5omzcl+GCQknzMhs2fFjW4ni4=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "memory-fs": "0.2.0", + "tapable": "0.1.10" + }, + "dependencies": { + "memory-fs": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.2.0.tgz", + "integrity": "sha1-8rslNovBIeORwlIN6Slpyu4KApA=", + "dev": true + } + } + }, + "errno": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.6.tgz", + "integrity": "sha512-IsORQDpaaSwcDP4ZZnHxgE85werpo34VYn1Ud3mq+eUsF593faR8oCZNXrROVkpFu2TsbrNhHin0aUrTsQ9vNw==", + "dev": true, + "requires": { + "prr": "1.0.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=", + "dev": true + }, + "esutils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true + }, + "events": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", + "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=", + "dev": true + }, + "expand-brackets": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", + "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", + "dev": true, + "requires": { + "is-posix-bracket": "0.1.1" + } + }, + "expand-range": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", + "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", + "dev": true, + "requires": { + "fill-range": "2.2.3" + } + }, + "expose-loader": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/expose-loader/-/expose-loader-0.7.4.tgz", + "integrity": "sha512-lweINkewAXcQtNjd7j1gO3cd8O/8lNYijsEwH4YZ+Dv3gT2Kh9/YvJov5Mdp2A75QIhgOvsSyRa/ZG3wYjNZpA==", + "dev": true + }, + "extglob": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", + "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", + "dev": true, + "requires": { + "is-extglob": "1.0.0" + } + }, + "filename-regex": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", + "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", + "dev": true + }, + "fill-range": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz", + "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=", + "dev": true, + "requires": { + "is-number": "2.1.0", + "isobject": "2.1.0", + "randomatic": "1.1.7", + "repeat-element": "1.1.2", + "repeat-string": "1.6.1" + } + }, + "find-cache-dir": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-0.1.1.tgz", + "integrity": "sha1-yN765XyKUqinhPnjHFfHQumToLk=", + "dev": true, + "requires": { + "commondir": "1.0.1", + "mkdirp": "0.5.1", + "pkg-dir": "1.0.0" + } + }, + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "dev": true, + "requires": { + "path-exists": "2.1.0", + "pinkie-promise": "2.0.1" + } + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true + }, + "for-own": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", + "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", + "dev": true, + "requires": { + "for-in": "1.0.2" + } + }, + "fsevents": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.1.3.tgz", + "integrity": "sha512-WIr7iDkdmdbxu/Gh6eKEZJL6KPE74/5MEsf2whTOFNxbIoIixogroLdKYqB6FDav4Wavh/lZdzzd3b2KxIXC5Q==", + "dev": true, + "optional": true, + "requires": { + "nan": "2.8.0", + "node-pre-gyp": "0.6.39" + }, + "dependencies": { + "abbrev": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "optional": true + }, + "ajv": { + "version": "4.11.8", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "co": "4.6.0", + "json-stable-stringify": "1.0.1" + } + }, + "ansi-regex": { + "version": "2.1.1", + "bundled": true, + "dev": true + }, + "aproba": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "are-we-there-yet": { + "version": "1.1.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "delegates": "1.0.0", + "readable-stream": "2.2.9" + } + }, + "asn1": { + "version": "0.2.3", + "bundled": true, + "dev": true, + "optional": true + }, + "assert-plus": { + "version": "0.2.0", + "bundled": true, + "dev": true, + "optional": true + }, + "asynckit": { + "version": "0.4.0", + "bundled": true, + "dev": true, + "optional": true + }, + "aws-sign2": { + "version": "0.6.0", + "bundled": true, + "dev": true, + "optional": true + }, + "aws4": { + "version": "1.6.0", + "bundled": true, + "dev": true, + "optional": true + }, + "balanced-match": { + "version": "0.4.2", + "bundled": true, + "dev": true + }, + "bcrypt-pbkdf": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "tweetnacl": "0.14.5" + } + }, + "block-stream": { + "version": "0.0.9", + "bundled": true, + "dev": true, + "requires": { + "inherits": "2.0.3" + } + }, + "boom": { + "version": "2.10.1", + "bundled": true, + "dev": true, + "requires": { + "hoek": "2.16.3" + } + }, + "brace-expansion": { + "version": "1.1.7", + "bundled": true, + "dev": true, + "requires": { + "balanced-match": "0.4.2", + "concat-map": "0.0.1" + } + }, + "buffer-shims": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "caseless": { + "version": "0.12.0", + "bundled": true, + "dev": true, + "optional": true + }, + "co": { + "version": "4.6.0", + "bundled": true, + "dev": true, + "optional": true + }, + "code-point-at": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "combined-stream": { + "version": "1.0.5", + "bundled": true, + "dev": true, + "requires": { + "delayed-stream": "1.0.0" + } + }, + "concat-map": { + "version": "0.0.1", + "bundled": true, + "dev": true + }, + "console-control-strings": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "core-util-is": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "cryptiles": { + "version": "2.0.5", + "bundled": true, + "dev": true, + "requires": { + "boom": "2.10.1" + } + }, + "dashdash": { + "version": "1.14.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "assert-plus": "1.0.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "debug": { + "version": "2.6.8", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ms": "2.0.0" + } + }, + "deep-extend": { + "version": "0.4.2", + "bundled": true, + "dev": true, + "optional": true + }, + "delayed-stream": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "delegates": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "detect-libc": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "ecc-jsbn": { + "version": "0.1.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "jsbn": "0.1.1" + } + }, + "extend": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "extsprintf": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "forever-agent": { + "version": "0.6.1", + "bundled": true, + "dev": true, + "optional": true + }, + "form-data": { + "version": "2.1.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "asynckit": "0.4.0", + "combined-stream": "1.0.5", + "mime-types": "2.1.15" + } + }, + "fs.realpath": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "fstream": { + "version": "1.0.11", + "bundled": true, + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "inherits": "2.0.3", + "mkdirp": "0.5.1", + "rimraf": "2.6.1" + } + }, + "fstream-ignore": { + "version": "1.0.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "fstream": "1.0.11", + "inherits": "2.0.3", + "minimatch": "3.0.4" + } + }, + "gauge": { + "version": "2.7.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "aproba": "1.1.1", + "console-control-strings": "1.1.0", + "has-unicode": "2.0.1", + "object-assign": "4.1.1", + "signal-exit": "3.0.2", + "string-width": "1.0.2", + "strip-ansi": "3.0.1", + "wide-align": "1.1.2" + } + }, + "getpass": { + "version": "0.1.7", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "assert-plus": "1.0.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "glob": { + "version": "7.1.2", + "bundled": true, + "dev": true, + "requires": { + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" + } + }, + "graceful-fs": { + "version": "4.1.11", + "bundled": true, + "dev": true + }, + "har-schema": { + "version": "1.0.5", + "bundled": true, + "dev": true, + "optional": true + }, + "har-validator": { + "version": "4.2.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ajv": "4.11.8", + "har-schema": "1.0.5" + } + }, + "has-unicode": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "hawk": { + "version": "3.1.3", + "bundled": true, + "dev": true, + "requires": { + "boom": "2.10.1", + "cryptiles": "2.0.5", + "hoek": "2.16.3", + "sntp": "1.0.9" + } + }, + "hoek": { + "version": "2.16.3", + "bundled": true, + "dev": true + }, + "http-signature": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "assert-plus": "0.2.0", + "jsprim": "1.4.0", + "sshpk": "1.13.0" + } + }, + "inflight": { + "version": "1.0.6", + "bundled": true, + "dev": true, + "requires": { + "once": "1.4.0", + "wrappy": "1.0.2" + } + }, + "inherits": { + "version": "2.0.3", + "bundled": true, + "dev": true + }, + "ini": { + "version": "1.3.4", + "bundled": true, + "dev": true, + "optional": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "is-typedarray": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "isarray": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "isstream": { + "version": "0.1.2", + "bundled": true, + "dev": true, + "optional": true + }, + "jodid25519": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "jsbn": "0.1.1" + } + }, + "jsbn": { + "version": "0.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "json-schema": { + "version": "0.2.3", + "bundled": true, + "dev": true, + "optional": true + }, + "json-stable-stringify": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "jsonify": "0.0.0" + } + }, + "json-stringify-safe": { + "version": "5.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "jsonify": { + "version": "0.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "jsprim": { + "version": "1.4.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.0.2", + "json-schema": "0.2.3", + "verror": "1.3.6" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "mime-db": { + "version": "1.27.0", + "bundled": true, + "dev": true + }, + "mime-types": { + "version": "2.1.15", + "bundled": true, + "dev": true, + "requires": { + "mime-db": "1.27.0" + } + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "dev": true, + "requires": { + "brace-expansion": "1.1.7" + } + }, + "minimist": { + "version": "0.0.8", + "bundled": true, + "dev": true + }, + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "dev": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "node-pre-gyp": { + "version": "0.6.39", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "detect-libc": "1.0.2", + "hawk": "3.1.3", + "mkdirp": "0.5.1", + "nopt": "4.0.1", + "npmlog": "4.1.0", + "rc": "1.2.1", + "request": "2.81.0", + "rimraf": "2.6.1", + "semver": "5.3.0", + "tar": "2.2.1", + "tar-pack": "3.4.0" + } + }, + "nopt": { + "version": "4.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "abbrev": "1.1.0", + "osenv": "0.1.4" + } + }, + "npmlog": { + "version": "4.1.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "are-we-there-yet": "1.1.4", + "console-control-strings": "1.1.0", + "gauge": "2.7.4", + "set-blocking": "2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "oauth-sign": { + "version": "0.8.2", + "bundled": true, + "dev": true, + "optional": true + }, + "object-assign": { + "version": "4.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "once": { + "version": "1.4.0", + "bundled": true, + "dev": true, + "requires": { + "wrappy": "1.0.2" + } + }, + "os-homedir": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "os-tmpdir": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "osenv": { + "version": "0.1.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "os-homedir": "1.0.2", + "os-tmpdir": "1.0.2" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "performance-now": { + "version": "0.2.0", + "bundled": true, + "dev": true, + "optional": true + }, + "process-nextick-args": { + "version": "1.0.7", + "bundled": true, + "dev": true + }, + "punycode": { + "version": "1.4.1", + "bundled": true, + "dev": true, + "optional": true + }, + "qs": { + "version": "6.4.0", + "bundled": true, + "dev": true, + "optional": true + }, + "rc": { + "version": "1.2.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "deep-extend": "0.4.2", + "ini": "1.3.4", + "minimist": "1.2.0", + "strip-json-comments": "2.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "readable-stream": { + "version": "2.2.9", + "bundled": true, + "dev": true, + "requires": { + "buffer-shims": "1.0.0", + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "1.0.7", + "string_decoder": "1.0.1", + "util-deprecate": "1.0.2" + } + }, + "request": { + "version": "2.81.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "aws-sign2": "0.6.0", + "aws4": "1.6.0", + "caseless": "0.12.0", + "combined-stream": "1.0.5", + "extend": "3.0.1", + "forever-agent": "0.6.1", + "form-data": "2.1.4", + "har-validator": "4.2.1", + "hawk": "3.1.3", + "http-signature": "1.1.1", + "is-typedarray": "1.0.0", + "isstream": "0.1.2", + "json-stringify-safe": "5.0.1", + "mime-types": "2.1.15", + "oauth-sign": "0.8.2", + "performance-now": "0.2.0", + "qs": "6.4.0", + "safe-buffer": "5.0.1", + "stringstream": "0.0.5", + "tough-cookie": "2.3.2", + "tunnel-agent": "0.6.0", + "uuid": "3.0.1" + } + }, + "rimraf": { + "version": "2.6.1", + "bundled": true, + "dev": true, + "requires": { + "glob": "7.1.2" + } + }, + "safe-buffer": { + "version": "5.0.1", + "bundled": true, + "dev": true + }, + "semver": { + "version": "5.3.0", + "bundled": true, + "dev": true, + "optional": true + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "sntp": { + "version": "1.0.9", + "bundled": true, + "dev": true, + "requires": { + "hoek": "2.16.3" + } + }, + "sshpk": { + "version": "1.13.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "asn1": "0.2.3", + "assert-plus": "1.0.0", + "bcrypt-pbkdf": "1.0.1", + "dashdash": "1.14.1", + "ecc-jsbn": "0.1.1", + "getpass": "0.1.7", + "jodid25519": "1.0.2", + "jsbn": "0.1.1", + "tweetnacl": "0.14.5" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "string-width": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "requires": { + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + } + }, + "string_decoder": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "requires": { + "safe-buffer": "5.0.1" + } + }, + "stringstream": { + "version": "0.0.5", + "bundled": true, + "dev": true, + "optional": true + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "tar": { + "version": "2.2.1", + "bundled": true, + "dev": true, + "requires": { + "block-stream": "0.0.9", + "fstream": "1.0.11", + "inherits": "2.0.3" + } + }, + "tar-pack": { + "version": "3.4.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "debug": "2.6.8", + "fstream": "1.0.11", + "fstream-ignore": "1.0.5", + "once": "1.4.0", + "readable-stream": "2.2.9", + "rimraf": "2.6.1", + "tar": "2.2.1", + "uid-number": "0.0.6" + } + }, + "tough-cookie": { + "version": "2.3.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "punycode": "1.4.1" + } + }, + "tunnel-agent": { + "version": "0.6.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safe-buffer": "5.0.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "bundled": true, + "dev": true, + "optional": true + }, + "uid-number": { + "version": "0.0.6", + "bundled": true, + "dev": true, + "optional": true + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "uuid": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "verror": { + "version": "1.3.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "extsprintf": "1.0.2" + } + }, + "wide-align": { + "version": "1.1.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "string-width": "1.0.2" + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true, + "dev": true + } + } + }, + "glob-base": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", + "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", + "dev": true, + "requires": { + "glob-parent": "2.0.0", + "is-glob": "2.0.1" + } + }, + "glob-parent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", + "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", + "dev": true, + "requires": { + "is-glob": "2.0.1" + } + }, + "globals": { + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", + "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", + "dev": true + }, + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } + }, + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "home-or-tmp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", + "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", + "dev": true, + "requires": { + "os-homedir": "1.0.2", + "os-tmpdir": "1.0.2" + } + }, + "https-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-0.0.1.tgz", + "integrity": "sha1-P5E2XKvmC3ftDruiS0VOPgnZWoI=", + "dev": true + }, + "ieee754": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.8.tgz", + "integrity": "sha1-vjPUCsEO8ZJnAfbwii2G+/0a0+Q=", + "dev": true + }, + "indexof": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", + "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=", + "dev": true + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "interpret": { + "version": "0.6.6", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-0.6.6.tgz", + "integrity": "sha1-/s16GOfOXKar+5U+H4YhOknxYls=", + "dev": true + }, + "invariant": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz", + "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=", + "dev": true, + "requires": { + "loose-envify": "1.3.1" + } + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "dev": true, + "requires": { + "binary-extensions": "1.11.0" + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "is-dotfile": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", + "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=", + "dev": true + }, + "is-equal-shallow": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", + "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", + "dev": true, + "requires": { + "is-primitive": "2.0.0" + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true + }, + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "dev": true + }, + "is-finite": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "dev": true, + "requires": { + "is-extglob": "1.0.0" + } + }, + "is-number": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", + "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + } + }, + "is-posix-bracket": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", + "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=", + "dev": true + }, + "is-primitive": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", + "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + }, + "jsesc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", + "dev": true + }, + "json5": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", + "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", + "dev": true + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + }, + "lazy-cache": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", + "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", + "dev": true + }, + "loader-utils": { + "version": "0.2.17", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz", + "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=", + "dev": true, + "requires": { + "big.js": "3.2.0", + "emojis-list": "2.1.0", + "json5": "0.5.1", + "object-assign": "4.1.1" + } + }, + "lodash": { + "version": "4.17.4", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", + "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", + "dev": true + }, + "longest": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", + "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", + "dev": true + }, + "loose-envify": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", + "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", + "dev": true, + "requires": { + "js-tokens": "3.0.2" + } + }, + "memory-fs": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.3.0.tgz", + "integrity": "sha1-e8xrYp46Q+hx1+Kaymrop/FcuyA=", + "dev": true, + "requires": { + "errno": "0.1.6", + "readable-stream": "2.3.3" + } + }, + "micromatch": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", + "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", + "dev": true, + "requires": { + "arr-diff": "2.0.0", + "array-unique": "0.2.1", + "braces": "1.8.5", + "expand-brackets": "0.1.5", + "extglob": "0.3.2", + "filename-regex": "2.0.1", + "is-extglob": "1.0.0", + "is-glob": "2.0.1", + "kind-of": "3.2.2", + "normalize-path": "2.1.1", + "object.omit": "2.0.1", + "parse-glob": "3.0.4", + "regex-cache": "0.4.4" + } + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "1.1.8" + } + }, + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "dev": true + }, + "mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "dev": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "nan": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.8.0.tgz", + "integrity": "sha1-7XFfP+neArV6XmJS2QqWZ14fCFo=", + "dev": true, + "optional": true + }, + "node-libs-browser": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-0.7.0.tgz", + "integrity": "sha1-PicsCBnjCJNeJmdECNevDhSRuDs=", + "dev": true, + "requires": { + "assert": "1.4.1", + "browserify-zlib": "0.1.4", + "buffer": "4.9.1", + "console-browserify": "1.1.0", + "constants-browserify": "1.0.0", + "crypto-browserify": "3.3.0", + "domain-browser": "1.1.7", + "events": "1.1.1", + "https-browserify": "0.0.1", + "os-browserify": "0.2.1", + "path-browserify": "0.0.0", + "process": "0.11.10", + "punycode": "1.4.1", + "querystring-es3": "0.2.1", + "readable-stream": "2.3.3", + "stream-browserify": "2.0.1", + "stream-http": "2.8.0", + "string_decoder": "0.10.31", + "timers-browserify": "2.0.4", + "tty-browserify": "0.0.0", + "url": "0.11.0", + "util": "0.10.3", + "vm-browserify": "0.0.4" + }, + "dependencies": { + "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 + } + } + }, + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "1.1.0" + } + }, + "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=", + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true + }, + "object.omit": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", + "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", + "dev": true, + "requires": { + "for-own": "0.1.5", + "is-extendable": "0.1.1" + } + }, + "optimist": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", + "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", + "dev": true, + "requires": { + "minimist": "0.0.8", + "wordwrap": "0.0.3" + } + }, + "os-browserify": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.2.1.tgz", + "integrity": "sha1-Y/xMzuXS13Y9Jrv4YBB45sLgBE8=", + "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=", + "dev": true + }, + "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=", + "dev": true + }, + "pako": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", + "integrity": "sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU=", + "dev": true + }, + "parse-glob": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", + "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", + "dev": true, + "requires": { + "glob-base": "0.3.0", + "is-dotfile": "1.0.3", + "is-extglob": "1.0.0", + "is-glob": "2.0.1" + } + }, + "path-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz", + "integrity": "sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo=", + "dev": true + }, + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "dev": true, + "requires": { + "pinkie-promise": "2.0.1" + } + }, + "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=", + "dev": true + }, + "pbkdf2-compat": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pbkdf2-compat/-/pbkdf2-compat-2.0.1.tgz", + "integrity": "sha1-tuDI+plJTZTgURV1gCpZpcFC8og=", + "dev": true + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "dev": true + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "dev": true, + "requires": { + "pinkie": "2.0.4" + } + }, + "pkg-dir": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", + "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", + "dev": true, + "requires": { + "find-up": "1.1.2" + } + }, + "preserve": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", + "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", + "dev": true + }, + "private": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", + "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", + "dev": true + }, + "process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", + "dev": true + }, + "process-nextick-args": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", + "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=", + "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 + }, + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true + }, + "querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", + "dev": true + }, + "querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", + "dev": true + }, + "randomatic": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz", + "integrity": "sha512-D5JUjPyJbaJDkuAazpVnSfVkLlpeO3wDlPROTMLGKG1zMFNFRgrciKo1ltz/AzNTkqE0HzDx655QOL51N06how==", + "dev": true, + "requires": { + "is-number": "3.0.0", + "kind-of": "4.0.0" + }, + "dependencies": { + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "readable-stream": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", + "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", + "dev": true, + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "1.0.7", + "safe-buffer": "5.1.1", + "string_decoder": "1.0.3", + "util-deprecate": "1.0.2" + } + }, + "readdirp": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz", + "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "minimatch": "3.0.4", + "readable-stream": "2.3.3", + "set-immediate-shim": "1.0.1" + } + }, + "regenerate": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.3.3.tgz", + "integrity": "sha512-jVpo1GadrDAK59t/0jRx5VxYWQEDkkEKi6+HjE3joFVLfDOh9Xrdh0dF1eSq+BI/SwvTQ44gSscJ8N5zYL61sg==", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", + "dev": true + }, + "regenerator-transform": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz", + "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "private": "0.1.8" + } + }, + "regex-cache": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", + "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", + "dev": true, + "requires": { + "is-equal-shallow": "0.1.3" + } + }, + "regexpu-core": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", + "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", + "dev": true, + "requires": { + "regenerate": "1.3.3", + "regjsgen": "0.2.0", + "regjsparser": "0.1.5" + } + }, + "regjsgen": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", + "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=", + "dev": true + }, + "regjsparser": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", + "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", + "dev": true, + "requires": { + "jsesc": "0.5.0" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "dev": true + } + } + }, + "remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", + "dev": true + }, + "repeat-element": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", + "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=", + "dev": true + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "dev": true + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "dev": true, + "requires": { + "is-finite": "1.0.2" + } + }, + "right-align": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", + "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", + "dev": true, + "requires": { + "align-text": "0.1.4" + } + }, + "ripemd160": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-0.2.0.tgz", + "integrity": "sha1-K/GYveFnys+lHAqSjoS2i74XH84=", + "dev": true + }, + "safe-buffer": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", + "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==", + "dev": true + }, + "set-immediate-shim": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", + "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", + "dev": true + }, + "setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", + "dev": true + }, + "sha.js": { + "version": "2.2.6", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.2.6.tgz", + "integrity": "sha1-F93t3F9yL7ZlAWWIlUYZd4ZzFbo=", + "dev": true + }, + "slash": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", + "dev": true + }, + "source-list-map": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-0.1.8.tgz", + "integrity": "sha1-xVCyq1Qn9rPyH1r+rYjE9Vh7IQY=", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "source-map-support": { + "version": "0.4.18", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", + "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", + "dev": true, + "requires": { + "source-map": "0.5.7" + } + }, + "stream-browserify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz", + "integrity": "sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=", + "dev": true, + "requires": { + "inherits": "2.0.3", + "readable-stream": "2.3.3" + } + }, + "stream-http": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.0.tgz", + "integrity": "sha512-sZOFxI/5xw058XIRHl4dU3dZ+TTOIGJR78Dvo0oEAejIt4ou27k+3ne1zYmCV+v7UucbxIFQuOgnkTVHh8YPnw==", + "dev": true, + "requires": { + "builtin-status-codes": "3.0.0", + "inherits": "2.0.3", + "readable-stream": "2.3.3", + "to-arraybuffer": "1.0.1", + "xtend": "4.0.1" + } + }, + "string_decoder": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", + "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", + "dev": true, + "requires": { + "safe-buffer": "5.1.1" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + }, + "tapable": { + "version": "0.1.10", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.1.10.tgz", + "integrity": "sha1-KcNXB8K3DlDQdIK10gLo7URtr9Q=", + "dev": true + }, + "timers-browserify": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.4.tgz", + "integrity": "sha512-uZYhyU3EX8O7HQP+J9fTVYwsq90Vr68xPEFo7yrVImIxYvHgukBEgOB/SgGoorWVTzGM/3Z+wUNnboA4M8jWrg==", + "dev": true, + "requires": { + "setimmediate": "1.0.5" + } + }, + "to-arraybuffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", + "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", + "dev": true + }, + "to-fast-properties": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "dev": true + }, + "trim-right": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", + "dev": true + }, + "tty-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", + "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", + "dev": true + }, + "uglify-js": { + "version": "2.7.5", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.7.5.tgz", + "integrity": "sha1-RhLAx7qu4rp8SH3kkErhIgefLKg=", + "dev": true, + "requires": { + "async": "0.2.10", + "source-map": "0.5.7", + "uglify-to-browserify": "1.0.2", + "yargs": "3.10.0" + }, + "dependencies": { + "async": { + "version": "0.2.10", + "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz", + "integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E=", + "dev": true + } + } + }, + "uglify-to-browserify": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", + "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", + "dev": true + }, + "url": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", + "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "dev": true, + "requires": { + "punycode": "1.3.2", + "querystring": "0.2.0" + }, + "dependencies": { + "punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", + "dev": true + } + } + }, + "util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", + "dev": true, + "requires": { + "inherits": "2.0.1" + }, + "dependencies": { + "inherits": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", + "dev": true + } + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true + }, + "vm-browserify": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", + "integrity": "sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=", + "dev": true, + "requires": { + "indexof": "0.0.1" + } + }, + "watchpack": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-0.2.9.tgz", + "integrity": "sha1-Yuqkq15bo1/fwBgnVibjwPXj+ws=", + "dev": true, + "requires": { + "async": "0.9.2", + "chokidar": "1.7.0", + "graceful-fs": "4.1.11" + }, + "dependencies": { + "async": { + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz", + "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=", + "dev": true + } + } + }, + "webpack": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-1.15.0.tgz", + "integrity": "sha1-T/MfU9sDM55VFkqdRo7gMklo/pg=", + "dev": true, + "requires": { + "acorn": "3.3.0", + "async": "1.5.2", + "clone": "1.0.3", + "enhanced-resolve": "0.9.1", + "interpret": "0.6.6", + "loader-utils": "0.2.17", + "memory-fs": "0.3.0", + "mkdirp": "0.5.1", + "node-libs-browser": "0.7.0", + "optimist": "0.6.1", + "supports-color": "3.2.3", + "tapable": "0.1.10", + "uglify-js": "2.7.5", + "watchpack": "0.2.9", + "webpack-core": "0.6.9" + }, + "dependencies": { + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "requires": { + "has-flag": "1.0.0" + } + } + } + }, + "webpack-core": { + "version": "0.6.9", + "resolved": "https://registry.npmjs.org/webpack-core/-/webpack-core-0.6.9.tgz", + "integrity": "sha1-/FcViMhVjad76e+23r3Fo7FyvcI=", + "dev": true, + "requires": { + "source-list-map": "0.1.8", + "source-map": "0.4.4" + }, + "dependencies": { + "source-map": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", + "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", + "dev": true, + "requires": { + "amdefine": "1.0.1" + } + } + } + }, + "window-size": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", + "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", + "dev": true + }, + "wordwrap": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", + "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=", + "dev": true + }, + "xtend": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", + "dev": true + }, + "yargs": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", + "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", + "dev": true, + "requires": { + "camelcase": "1.2.1", + "cliui": "2.1.0", + "decamelize": "1.2.0", + "window-size": "0.1.0" + } + } + } +} From 0782582f8d15ead69e7ce9d0acf376c72df4138a Mon Sep 17 00:00:00 2001 From: Gunnar Date: Sun, 21 Jan 2018 14:25:15 -0800 Subject: [PATCH 004/530] Merge #499 (React.router.mvc4 package fixes) --- .../Content/Views/web.config.transform | 0 src/React.Router.Mvc4/React.Router.Mvc4.csproj | 5 +++++ src/React.Router/React.Router.csproj | 5 +---- 3 files changed, 6 insertions(+), 4 deletions(-) rename src/{React.Router => React.Router.Mvc4}/Content/Views/web.config.transform (100%) diff --git a/src/React.Router/Content/Views/web.config.transform b/src/React.Router.Mvc4/Content/Views/web.config.transform similarity index 100% rename from src/React.Router/Content/Views/web.config.transform rename to src/React.Router.Mvc4/Content/Views/web.config.transform diff --git a/src/React.Router.Mvc4/React.Router.Mvc4.csproj b/src/React.Router.Mvc4/React.Router.Mvc4.csproj index 58d7b9a1f..29723709d 100644 --- a/src/React.Router.Mvc4/React.Router.Mvc4.csproj +++ b/src/React.Router.Mvc4/React.Router.Mvc4.csproj @@ -30,6 +30,10 @@
+ + + + @@ -38,6 +42,7 @@ + diff --git a/src/React.Router/React.Router.csproj b/src/React.Router/React.Router.csproj index 9bcf26730..41b188fbc 100644 --- a/src/React.Router/React.Router.csproj +++ b/src/React.Router/React.Router.csproj @@ -22,10 +22,6 @@ - - true - content\ - @@ -34,6 +30,7 @@ + From e5cb5d86c541746565cc6fa9a0a5d162ef052ec4 Mon Sep 17 00:00:00 2001 From: Gustav Date: Sun, 21 Jan 2018 14:45:20 -0800 Subject: [PATCH 005/530] Improve server side only rendering (#497) --- src/React.AspNet/HtmlHelperExtensions.cs | 4 +- src/React.Core/IReactComponent.cs | 5 +++ src/React.Core/IReactEnvironment.cs | 3 +- src/React.Core/ReactComponent.cs | 10 +++++ src/React.Core/ReactEnvironment.cs | 15 ++++--- tests/React.Tests/Core/ReactComponentTest.cs | 39 +++++++++++++++++++ .../React.Tests/Core/ReactEnvironmentTest.cs | 11 ++++++ .../Mvc/HtmlHelperExtensionsTests.cs | 31 ++++++++------- 8 files changed, 96 insertions(+), 22 deletions(-) diff --git a/src/React.AspNet/HtmlHelperExtensions.cs b/src/React.AspNet/HtmlHelperExtensions.cs index b136ca42f..b83f1ad6c 100644 --- a/src/React.AspNet/HtmlHelperExtensions.cs +++ b/src/React.AspNet/HtmlHelperExtensions.cs @@ -54,7 +54,7 @@ private static IReactEnvironment Environment /// HTML tag to wrap the component in. Defaults to <div> /// ID to use for the container HTML tag. Defaults to an auto-generated ID /// Skip rendering server-side and only output client-side initialisation code. Defaults to false - /// Skip rendering React specific data-attributes during server side rendering. Defaults to false + /// Skip rendering React specific data-attributes, container and client-side initialisation during server side rendering. Defaults to false /// HTML class(es) to set on the container tag /// A custom exception handler that will be called if a component throws during a render. Args: (Exception ex, string componentName, string containerId) /// The component's HTML @@ -72,7 +72,7 @@ public static IHtmlString React( { try { - var reactComponent = Environment.CreateComponent(componentName, props, containerId, clientOnly); + var reactComponent = Environment.CreateComponent(componentName, props, containerId, clientOnly, serverOnly); if (!string.IsNullOrEmpty(htmlTag)) { reactComponent.ContainerTag = htmlTag; diff --git a/src/React.Core/IReactComponent.cs b/src/React.Core/IReactComponent.cs index 3cdf7f794..b4a6d4428 100644 --- a/src/React.Core/IReactComponent.cs +++ b/src/React.Core/IReactComponent.cs @@ -41,6 +41,11 @@ public interface IReactComponent /// string ContainerClass { get; set; } + /// + /// Get or sets if this components only should be rendered server side + /// + bool ServerOnly { get; set; } + /// /// Renders the HTML for this component. This will execute the component server-side and /// return the rendered HTML. diff --git a/src/React.Core/IReactEnvironment.cs b/src/React.Core/IReactEnvironment.cs index 39fccd721..599ffd1f8 100644 --- a/src/React.Core/IReactEnvironment.cs +++ b/src/React.Core/IReactEnvironment.cs @@ -81,8 +81,9 @@ public interface IReactEnvironment /// Props to use /// ID to use for the container HTML tag. Defaults to an auto-generated ID /// True if server-side rendering will be bypassed. Defaults to false. + /// True if this component only should be rendered server-side. Defaults to false. /// The component - IReactComponent CreateComponent(string componentName, T props, string containerId = null, bool clientOnly = false); + IReactComponent CreateComponent(string componentName, T props, string containerId = null, bool clientOnly = false, bool serverOnly = false); /// /// Adds the provided to the list of components to render client side. diff --git a/src/React.Core/ReactComponent.cs b/src/React.Core/ReactComponent.cs index e736604f0..012100403 100644 --- a/src/React.Core/ReactComponent.cs +++ b/src/React.Core/ReactComponent.cs @@ -68,6 +68,11 @@ public class ReactComponent : IReactComponent /// public string ContainerClass { get; set; } + /// + /// Get or sets if this components only should be rendered server side + /// + public bool ServerOnly { get; set; } + /// /// Gets or sets the props for this component /// @@ -130,6 +135,11 @@ public virtual string RenderHtml(bool renderContainerOnly = false, bool renderSe ? string.Format("ReactDOMServer.renderToStaticMarkup({0})", GetComponentInitialiser()) : string.Format("ReactDOMServer.renderToString({0})", GetComponentInitialiser()); html = _environment.Execute(reactRenderCommand); + + if (renderServerOnly) + { + return html; + } } catch (JsRuntimeException ex) { diff --git a/src/React.Core/ReactEnvironment.cs b/src/React.Core/ReactEnvironment.cs index e3a706812..ced8e1e95 100644 --- a/src/React.Core/ReactEnvironment.cs +++ b/src/React.Core/ReactEnvironment.cs @@ -14,9 +14,7 @@ using System.Text; using System.Threading; using JavaScriptEngineSwitcher.Core; -using JavaScriptEngineSwitcher.Core.Helpers; using JSPool; -using Newtonsoft.Json; using React.Exceptions; using React.TinyIoC; @@ -287,8 +285,9 @@ public virtual bool HasVariable(string name) /// Props to use /// ID to use for the container HTML tag. Defaults to an auto-generated ID /// True if server-side rendering will be bypassed. Defaults to false. + /// True if this component only should be rendered server-side. Defaults to false. /// The component - public virtual IReactComponent CreateComponent(string componentName, T props, string containerId = null, bool clientOnly = false) + public virtual IReactComponent CreateComponent(string componentName, T props, string containerId = null, bool clientOnly = false, bool serverOnly = false) { if (!clientOnly) { @@ -297,7 +296,8 @@ public virtual IReactComponent CreateComponent(string componentName, T props, var component = new ReactComponent(this, _config, componentName, containerId) { - Props = props + Props = props, + ServerOnly = serverOnly }; _components.Add(component); return component; @@ -339,8 +339,11 @@ public virtual string GetInitJavaScript(bool clientOnly = false) foreach (var component in _components) { - fullScript.Append(component.RenderJavaScript()); - fullScript.AppendLine(";"); + if (!component.ServerOnly) + { + fullScript.Append(component.RenderJavaScript()); + fullScript.AppendLine(";"); + } } return fullScript.ToString(); diff --git a/tests/React.Tests/Core/ReactComponentTest.cs b/tests/React.Tests/Core/ReactComponentTest.cs index d131543b9..94f26678b 100644 --- a/tests/React.Tests/Core/ReactComponentTest.cs +++ b/tests/React.Tests/Core/ReactComponentTest.cs @@ -124,6 +124,45 @@ public void RenderHtmlShouldWrapComponentInCustomElement() Assert.Equal(@"[HTML]", result); } + [Fact] + public void RenderHtmlShouldNotRenderComponentWhenContainerOnly() + { + var config = new Mock(); + config.Setup(x => x.UseServerSideRendering).Returns(true); + var environment = new Mock(); + environment.Setup(x => x.Execute("typeof Foo !== 'undefined'")).Returns(true); + environment.Setup(x => x.Execute(@"ReactDOMServer.renderToString(React.createElement(Foo, {""hello"":""World""}))")) + .Returns("[HTML]"); + + var component = new ReactComponent(environment.Object, config.Object, "Foo", "container") + { + Props = new { hello = "World" }, + ContainerTag = "span" + }; + var result = component.RenderHtml(true, false); + + Assert.Equal(@"", result); + } + + [Fact] + public void RenderHtmlShouldNotWrapComponentWhenServerSideOnly() + { + var config = new Mock(); + config.Setup(x => x.UseServerSideRendering).Returns(true); + var environment = new Mock(); + environment.Setup(x => x.Execute("typeof Foo !== 'undefined'")).Returns(true); + environment.Setup(x => x.Execute(@"ReactDOMServer.renderToStaticMarkup(React.createElement(Foo, {""hello"":""World""}))")) + .Returns("[HTML]"); + + var component = new ReactComponent(environment.Object, config.Object, "Foo", "container") + { + Props = new { hello = "World" }, + }; + var result = component.RenderHtml(false, true); + + Assert.Equal(@"[HTML]", result); + } + [Fact] public void RenderHtmlShouldAddClassToElement() { diff --git a/tests/React.Tests/Core/ReactEnvironmentTest.cs b/tests/React.Tests/Core/ReactEnvironmentTest.cs index 4017051ba..47fceeb51 100644 --- a/tests/React.Tests/Core/ReactEnvironmentTest.cs +++ b/tests/React.Tests/Core/ReactEnvironmentTest.cs @@ -137,6 +137,17 @@ public void CreatesIReactComponent() Assert.Equal(";\r\n", environment.GetInitJavaScript()); } + [Fact] + public void ServerSideOnlyComponentRendersNoJavaScript() + { + var mocks = new Mocks(); + var environment = mocks.CreateReactEnvironment(); + + environment.CreateComponent("HelloWorld", new { name = "Daniel" }, serverOnly: true); + + Assert.Equal(string.Empty, environment.GetInitJavaScript()); + } + public class Mocks { public Mock Engine { get; private set; } diff --git a/tests/React.Tests/Mvc/HtmlHelperExtensionsTests.cs b/tests/React.Tests/Mvc/HtmlHelperExtensionsTests.cs index 3d303a84d..1b2a59619 100644 --- a/tests/React.Tests/Mvc/HtmlHelperExtensionsTests.cs +++ b/tests/React.Tests/Mvc/HtmlHelperExtensionsTests.cs @@ -8,8 +8,8 @@ */ using Moq; -using React.Web.Mvc; using Xunit; +using React.Web.Mvc; namespace React.Tests.Mvc { @@ -36,8 +36,9 @@ public void ReactWithInitShouldReturnHtmlAndScript() var environment = ConfigureMockEnvironment(); environment.Setup(x => x.CreateComponent( "ComponentName", - new {}, + new { }, null, + false, false )).Returns(component.Object); @@ -63,7 +64,8 @@ public void EngineIsReturnedToPoolAfterRender() "ComponentName", new { }, null, - true + true, + false )).Returns(component.Object); environment.Verify(x => x.ReturnEngineToPool(), Times.Never); @@ -73,9 +75,9 @@ public void EngineIsReturnedToPoolAfterRender() props: new { }, htmlTag: "span", clientOnly: true, - serverOnly: true + serverOnly: false ); - component.Verify(x => x.RenderHtml(It.Is(y => y == true), It.Is(z => z == true), null), Times.Once); + component.Verify(x => x.RenderHtml(It.Is(y => y == true), It.Is(z => z == false), null), Times.Once); environment.Verify(x => x.ReturnEngineToPool(), Times.Once); } @@ -87,9 +89,10 @@ public void ReactWithClientOnlyTrueShouldCallRenderHtmlWithTrue() var environment = ConfigureMockEnvironment(); environment.Setup(x => x.CreateComponent( "ComponentName", - new {}, + new { }, null, - true + true, + false )).Returns(component.Object); var result = HtmlHelperExtensions.React( @@ -98,20 +101,22 @@ public void ReactWithClientOnlyTrueShouldCallRenderHtmlWithTrue() props: new { }, htmlTag: "span", clientOnly: true, - serverOnly: true + serverOnly: false ); - component.Verify(x => x.RenderHtml(It.Is(y => y == true), It.Is(z => z == true), null), Times.Once); + component.Verify(x => x.RenderHtml(It.Is(y => y == true), It.Is(z => z == false), null), Times.Once); } [Fact] - public void ReactWithServerOnlyTrueShouldCallRenderHtmlWithTrue() { + public void ReactWithServerOnlyTrueShouldCallRenderHtmlWithTrue() + { var component = new Mock(); - component.Setup(x => x.RenderHtml(true, true, null)).Returns("HTML"); + component.Setup(x => x.RenderHtml(false, true, null)).Returns("HTML"); var environment = ConfigureMockEnvironment(); environment.Setup(x => x.CreateComponent( "ComponentName", new { }, null, + false, true )).Returns(component.Object); @@ -120,10 +125,10 @@ public void ReactWithServerOnlyTrueShouldCallRenderHtmlWithTrue() { componentName: "ComponentName", props: new { }, htmlTag: "span", - clientOnly: true, + clientOnly: false, serverOnly: true ); - component.Verify(x => x.RenderHtml(It.Is(y => y == true), It.Is(z => z == true), null), Times.Once); + component.Verify(x => x.RenderHtml(It.Is(y => y == false), It.Is(z => z == true), null), Times.Once); } } } From 5f5f65d88c194d7c50e71ff8cb6d4a8e06b48aea Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Sun, 18 Feb 2018 21:41:14 -0800 Subject: [PATCH 006/530] Add support for script nonce attributes (#496) * Add support for script nonce attributes * Fix spacing nit * Fix ReactWithInit in .NET Core https://developercommunity.visualstudio.com/content/problem/17287/tagbuilder-tostring-returns-the-type-of-tagbuilder.html * Fix broken proptype references in mvc4 sample --- src/React.AspNet/HtmlHelperExtensions.cs | 65 ++++++++++++------- src/React.Core/IReactEnvironment.cs | 8 ++- src/React.Core/IReactSiteConfiguration.cs | 16 ++++- src/React.Core/ReactSiteConfiguration.cs | 18 +++++ src/React.Sample.Mvc4/Content/Sample.jsx | 10 +-- .../Mvc/HtmlHelperExtensionsTests.cs | 62 +++++++++++++++++- 6 files changed, 147 insertions(+), 32 deletions(-) diff --git a/src/React.AspNet/HtmlHelperExtensions.cs b/src/React.AspNet/HtmlHelperExtensions.cs index b83f1ad6c..a3d796eb2 100644 --- a/src/React.AspNet/HtmlHelperExtensions.cs +++ b/src/React.AspNet/HtmlHelperExtensions.cs @@ -1,4 +1,4 @@ -/* +/* * Copyright (c) 2014-Present, Facebook, Inc. * All rights reserved. * @@ -8,14 +8,14 @@ */ using System; -using React.Exceptions; -using React.TinyIoC; +using System.IO; #if LEGACYASPNET using System.Web; using System.Web.Mvc; using IHtmlHelper = System.Web.Mvc.HtmlHelper; #else +using System.Text.Encodings.Web; using Microsoft.AspNetCore.Mvc.Rendering; using IHtmlString = Microsoft.AspNetCore.Html.IHtmlContent; using Microsoft.AspNetCore.Html; @@ -129,16 +129,7 @@ public static IHtmlString ReactWithInit( } var html = reactComponent.RenderHtml(clientOnly, exceptionHandler: exceptionHandler); -#if LEGACYASPNET - var script = new TagBuilder("script") - { - InnerHtml = reactComponent.RenderJavaScript() - }; -#else - var script = new TagBuilder("script"); - script.InnerHtml.AppendHtml(reactComponent.RenderJavaScript()); -#endif - return new HtmlString(html + System.Environment.NewLine + script.ToString()); + return new HtmlString(html + System.Environment.NewLine + RenderToString(GetScriptTag(reactComponent.RenderJavaScript()))); } finally { @@ -155,23 +146,53 @@ public static IHtmlString ReactInitJavaScript(this IHtmlHelper htmlHelper, bool { try { - var script = Environment.GetInitJavaScript(clientOnly); + return GetScriptTag(Environment.GetInitJavaScript(clientOnly)); + } + finally + { + Environment.ReturnEngineToPool(); + } + } + + private static IHtmlString GetScriptTag(string script) + { #if LEGACYASPNET - var tag = new TagBuilder("script") - { - InnerHtml = script - }; - return new HtmlString(tag.ToString()); + var tag = new TagBuilder("script") + { + InnerHtml = script, + }; + + if (Environment.Configuration.ScriptNonceProvider != null) + { + tag.Attributes.Add("nonce", Environment.Configuration.ScriptNonceProvider()); + } + + return new HtmlString(tag.ToString()); #else var tag = new TagBuilder("script"); tag.InnerHtml.AppendHtml(script); + + if (Environment.Configuration.ScriptNonceProvider != null) + { + tag.Attributes.Add("nonce", Environment.Configuration.ScriptNonceProvider()); + } + return tag; #endif - } - finally + } + + // In ASP.NET Core, you can no longer call `.ToString` on `IHtmlString` + private static string RenderToString(IHtmlString source) + { +#if LEGACYASPNET + return source.ToString(); +#else + using (var writer = new StringWriter()) { - Environment.ReturnEngineToPool(); + source.WriteTo(writer, HtmlEncoder.Default); + return writer.ToString(); } +#endif } } } diff --git a/src/React.Core/IReactEnvironment.cs b/src/React.Core/IReactEnvironment.cs index 599ffd1f8..67991360f 100644 --- a/src/React.Core/IReactEnvironment.cs +++ b/src/React.Core/IReactEnvironment.cs @@ -1,4 +1,4 @@ -/* +/* * Copyright (c) 2014-Present, Facebook, Inc. * All rights reserved. * @@ -7,7 +7,6 @@ * of patent rights can be found in the PATENTS file in the same directory. */ -using System; namespace React { @@ -110,5 +109,10 @@ public interface IReactEnvironment /// Returns the currently held JS engine to the pool. (no-op if engine pooling is disabled) /// void ReturnEngineToPool(); + + /// + /// Gets the site-wide configuration. + /// + IReactSiteConfiguration Configuration { get; } } } diff --git a/src/React.Core/IReactSiteConfiguration.cs b/src/React.Core/IReactSiteConfiguration.cs index 8c3eed6da..b414e5d25 100644 --- a/src/React.Core/IReactSiteConfiguration.cs +++ b/src/React.Core/IReactSiteConfiguration.cs @@ -8,8 +8,8 @@ */ using System; -using Newtonsoft.Json; using System.Collections.Generic; +using Newtonsoft.Json; namespace React { @@ -193,5 +193,19 @@ public interface IReactSiteConfiguration /// /// IReactSiteConfiguration SetExceptionHandler(Action handler); + + /// + /// A provider that returns a nonce to be used on any script tags on the page. + /// This value must match the nonce used in the Content Security Policy header on the response. + /// + Func ScriptNonceProvider { get; set; } + + /// + /// Sets a provider that returns a nonce to be used on any script tags on the page. + /// This value must match the nonce used in the Content Security Policy header on the response. + /// + /// + /// + IReactSiteConfiguration SetScriptNonceProvider(Func provider); } } diff --git a/src/React.Core/ReactSiteConfiguration.cs b/src/React.Core/ReactSiteConfiguration.cs index 879a92db9..dd735b1c9 100644 --- a/src/React.Core/ReactSiteConfiguration.cs +++ b/src/React.Core/ReactSiteConfiguration.cs @@ -326,5 +326,23 @@ public IReactSiteConfiguration SetExceptionHandler(Action + /// A provider that returns a nonce to be used on any script tags on the page. + /// This value must match the nonce used in the Content Security Policy header on the response. + /// + public Func ScriptNonceProvider { get; set; } + + /// + /// Sets a provider that returns a nonce to be used on any script tags on the page. + /// This value must match the nonce used in the Content Security Policy header on the response. + /// + /// + /// + public IReactSiteConfiguration SetScriptNonceProvider(Func provider) + { + ScriptNonceProvider = provider; + return this; + } } } diff --git a/src/React.Sample.Mvc4/Content/Sample.jsx b/src/React.Sample.Mvc4/Content/Sample.jsx index 8875ef8f1..97d078f09 100644 --- a/src/React.Sample.Mvc4/Content/Sample.jsx +++ b/src/React.Sample.Mvc4/Content/Sample.jsx @@ -1,4 +1,4 @@ -/** +/** * Copyright (c) 2014-Present, Facebook, Inc. * All rights reserved. * @@ -9,8 +9,8 @@ class CommentsBox extends React.Component { static propTypes = { - initialComments: React.PropTypes.array.isRequired, - page: React.PropTypes.number + initialComments: PropTypes.array.isRequired, + page: PropTypes.number }; state = { @@ -76,7 +76,7 @@ class CommentsBox extends React.Component { class Comment extends React.Component { static propTypes = { - author: React.PropTypes.object.isRequired + author: PropTypes.object.isRequired }; render() { @@ -92,7 +92,7 @@ class Comment extends React.Component { class Avatar extends React.Component { static propTypes = { - author: React.PropTypes.object.isRequired + author: PropTypes.object.isRequired }; render() { diff --git a/tests/React.Tests/Mvc/HtmlHelperExtensionsTests.cs b/tests/React.Tests/Mvc/HtmlHelperExtensionsTests.cs index 1b2a59619..b1937b58c 100644 --- a/tests/React.Tests/Mvc/HtmlHelperExtensionsTests.cs +++ b/tests/React.Tests/Mvc/HtmlHelperExtensionsTests.cs @@ -7,9 +7,11 @@ * of patent rights can be found in the PATENTS file in the same directory. */ +using System; +using System.Security.Cryptography; using Moq; -using Xunit; using React.Web.Mvc; +using Xunit; namespace React.Tests.Mvc { @@ -20,9 +22,10 @@ public class HtmlHelperExtensionsTests /// This is only required because can not be /// injected :( /// - private Mock ConfigureMockEnvironment() + private Mock ConfigureMockEnvironment(IReactSiteConfiguration configuration = null) { var environment = new Mock(); + environment.Setup(x => x.Configuration).Returns(configuration ?? new ReactSiteConfiguration()); AssemblyRegistration.Container.Register(environment.Object); return environment; } @@ -54,6 +57,61 @@ public void ReactWithInitShouldReturnHtmlAndScript() ); } + [Fact] + public void ScriptNonceIsReturned() + { + string nonce; + using (var random = new RNGCryptoServiceProvider()) + { + byte[] nonceBytes = new byte[16]; + random.GetBytes(nonceBytes); + nonce = Convert.ToBase64String(nonceBytes); + } + + var component = new Mock(); + component.Setup(x => x.RenderHtml(false, false, null)).Returns("HTML"); + component.Setup(x => x.RenderJavaScript()).Returns("JS"); + + var config = new Mock(); + + var environment = ConfigureMockEnvironment(config.Object); + + environment.Setup(x => x.Configuration).Returns(config.Object); + environment.Setup(x => x.CreateComponent( + "ComponentName", + new { }, + null, + false, + false + )).Returns(component.Object); + + // without nonce + var result = HtmlHelperExtensions.ReactWithInit( + htmlHelper: null, + componentName: "ComponentName", + props: new { }, + htmlTag: "span" + ); + Assert.Equal( + "HTML" + System.Environment.NewLine + "", + result.ToString() + ); + + config.Setup(x => x.ScriptNonceProvider).Returns(() => nonce); + + // with nonce + result = HtmlHelperExtensions.ReactWithInit( + htmlHelper: null, + componentName: "ComponentName", + props: new { }, + htmlTag: "span" + ); + Assert.Equal( + "HTML" + System.Environment.NewLine + "", + result.ToString() + ); + } + [Fact] public void EngineIsReturnedToPoolAfterRender() { From bfd1360f95eb17465e9fb3701126e097796a544f Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Sun, 18 Feb 2018 21:50:15 -0800 Subject: [PATCH 007/530] Use NuGet reference for tutorial code (#509) --- tutorial-code/tutorial-code.csproj | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/tutorial-code/tutorial-code.csproj b/tutorial-code/tutorial-code.csproj index d669627f9..a3a4e1457 100644 --- a/tutorial-code/tutorial-code.csproj +++ b/tutorial-code/tutorial-code.csproj @@ -15,10 +15,6 @@
- - - - @@ -26,6 +22,7 @@ + From 5dd6dd3eb70b391cc8767b5cc8ed7c07bb65de47 Mon Sep 17 00:00:00 2001 From: Chad Burggraf Date: Thu, 1 Mar 2018 16:31:05 -0700 Subject: [PATCH 008/530] Replace "path" with "location" for SSR + React Router. According to the documentation, as well as my testing, React Router expects the URL supplied to `StaticRouter` to be provided via the `location` prop name. React.NET currently supplies this value via the `path` prop name. --- src/React.Router/ReactRouterComponent.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/React.Router/ReactRouterComponent.cs b/src/React.Router/ReactRouterComponent.cs index 44c4bb17f..02dce30ca 100644 --- a/src/React.Router/ReactRouterComponent.cs +++ b/src/React.Router/ReactRouterComponent.cs @@ -69,7 +69,7 @@ protected override string GetComponentInitialiser() { return string.Format( @"React.createElement - ({0}, Object.assign({1}, {{ path: '{2}', context: context }}))", + ({0}, Object.assign({1}, {{ location: '{2}', context: context }}))", ComponentName, _serializedProps, _path From 91706f6fbca40ead3642a00e854596700cf4b653 Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Fri, 2 Mar 2018 23:45:50 -0800 Subject: [PATCH 009/530] Update webpack sample: Fix prop-types usage This got missed in the initial update to React 16. It would be nice to have an automated regression test for the samples to catch oversights like this in the future. --- src/React.Sample.Webpack/Content/components/Avatar.jsx | 1 + src/React.Sample.Webpack/Content/components/Comment.jsx | 1 + src/React.Sample.Webpack/Content/components/CommentsBox.jsx | 1 + 3 files changed, 3 insertions(+) diff --git a/src/React.Sample.Webpack/Content/components/Avatar.jsx b/src/React.Sample.Webpack/Content/components/Avatar.jsx index 542dd2f2b..0898e91e3 100644 --- a/src/React.Sample.Webpack/Content/components/Avatar.jsx +++ b/src/React.Sample.Webpack/Content/components/Avatar.jsx @@ -8,6 +8,7 @@ */ var React = require('react'); +var PropTypes = require('prop-types'); class Avatar extends React.Component { static propTypes = { diff --git a/src/React.Sample.Webpack/Content/components/Comment.jsx b/src/React.Sample.Webpack/Content/components/Comment.jsx index 0b944b9f5..2704860d1 100644 --- a/src/React.Sample.Webpack/Content/components/Comment.jsx +++ b/src/React.Sample.Webpack/Content/components/Comment.jsx @@ -9,6 +9,7 @@ var Avatar = require('./Avatar'); var React = require('react'); +var PropTypes = require('prop-types'); class Comment extends React.Component { static propTypes = { diff --git a/src/React.Sample.Webpack/Content/components/CommentsBox.jsx b/src/React.Sample.Webpack/Content/components/CommentsBox.jsx index 95c6b30f0..5549c06dd 100644 --- a/src/React.Sample.Webpack/Content/components/CommentsBox.jsx +++ b/src/React.Sample.Webpack/Content/components/CommentsBox.jsx @@ -9,6 +9,7 @@ var Comment = require('./Comment'); var React = require('react'); +var PropTypes = require('prop-types'); class CommentsBox extends React.Component { static propTypes = { From 65bb5730923ab31422094ef7f6e798e26d178921 Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Fri, 2 Mar 2018 23:46:50 -0800 Subject: [PATCH 010/530] Update webpack sample: Add prop-types dependency --- src/React.Sample.Webpack/package-lock.json | 100 +++++++++++++++++++-- src/React.Sample.Webpack/package.json | 3 + 2 files changed, 96 insertions(+), 7 deletions(-) diff --git a/src/React.Sample.Webpack/package-lock.json b/src/React.Sample.Webpack/package-lock.json index 83261f170..a4a46ce37 100644 --- a/src/React.Sample.Webpack/package-lock.json +++ b/src/React.Sample.Webpack/package-lock.json @@ -70,6 +70,11 @@ "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", "dev": true }, + "asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" + }, "assert": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz", @@ -1267,6 +1272,14 @@ "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", "dev": true }, + "encoding": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", + "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", + "requires": { + "iconv-lite": "0.4.19" + } + }, "enhanced-resolve": { "version": "0.9.1", "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-0.9.1.tgz", @@ -1346,6 +1359,27 @@ "is-extglob": "1.0.0" } }, + "fbjs": { + "version": "0.8.16", + "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.16.tgz", + "integrity": "sha1-XmdDL1UNxBtXK/VYR7ispk5TN9s=", + "requires": { + "core-js": "1.2.7", + "isomorphic-fetch": "2.2.1", + "loose-envify": "1.3.1", + "object-assign": "4.1.1", + "promise": "7.3.1", + "setimmediate": "1.0.5", + "ua-parser-js": "0.7.17" + }, + "dependencies": { + "core-js": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz", + "integrity": "sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY=" + } + } + }, "filename-regex": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", @@ -2367,6 +2401,11 @@ "integrity": "sha1-P5E2XKvmC3ftDruiS0VOPgnZWoI=", "dev": true }, + "iconv-lite": { + "version": "0.4.19", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz", + "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==" + }, "ieee754": { "version": "1.1.8", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.8.tgz", @@ -2481,6 +2520,11 @@ "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", "dev": true }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" + }, "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", @@ -2496,11 +2540,19 @@ "isarray": "1.0.0" } }, + "isomorphic-fetch": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", + "integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=", + "requires": { + "node-fetch": "1.7.3", + "whatwg-fetch": "2.0.3" + } + }, "js-tokens": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", - "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", - "dev": true + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=" }, "jsesc": { "version": "1.3.0", @@ -2557,7 +2609,6 @@ "version": "1.3.1", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", - "dev": true, "requires": { "js-tokens": "3.0.2" } @@ -2630,6 +2681,15 @@ "dev": true, "optional": true }, + "node-fetch": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", + "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", + "requires": { + "encoding": "0.1.12", + "is-stream": "1.1.0" + } + }, "node-libs-browser": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-0.7.0.tgz", @@ -2687,8 +2747,7 @@ "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" }, "object.omit": { "version": "2.0.1", @@ -2821,6 +2880,24 @@ "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=", "dev": true }, + "promise": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", + "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", + "requires": { + "asap": "2.0.6" + } + }, + "prop-types": { + "version": "15.6.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.1.tgz", + "integrity": "sha512-4ec7bY1Y66LymSUOH/zARVYObB23AT2h8cf6e/O6ZALB/N0sqZFEx7rq6EYPX2MkOdKORuooI/H5k9TlR4q7kQ==", + "requires": { + "fbjs": "0.8.16", + "loose-envify": "1.3.1", + "object-assign": "4.1.1" + } + }, "prr": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", @@ -3036,8 +3113,7 @@ "setimmediate": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", - "dev": true + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" }, "sha.js": { "version": "2.2.6", @@ -3158,6 +3234,11 @@ "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", "dev": true }, + "ua-parser-js": { + "version": "0.7.17", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.17.tgz", + "integrity": "sha512-uRdSdu1oA1rncCQL7sCj8vSyZkgtL7faaw9Tc9rZ3mGgraQ7+Pdx7w5mnOSF3gw9ZNG6oc+KXfkon3bKuROm0g==" + }, "uglify-js": { "version": "2.7.5", "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.7.5.tgz", @@ -3308,6 +3389,11 @@ } } }, + "whatwg-fetch": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz", + "integrity": "sha1-nITsLc9oGH/wC8ZOEnS0QhduHIQ=" + }, "window-size": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", diff --git a/src/React.Sample.Webpack/package.json b/src/React.Sample.Webpack/package.json index 87edb9f90..47965446c 100644 --- a/src/React.Sample.Webpack/package.json +++ b/src/React.Sample.Webpack/package.json @@ -17,5 +17,8 @@ "babel-preset-stage-0": "~6.5.0", "expose-loader": "^0.7.1", "webpack": "^1.12.9" + }, + "dependencies": { + "prop-types": "^15.6.1" } } From 8c1c474e0f39c578b7aca438404e80a857cf96bb Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Sat, 3 Mar 2018 00:12:07 -0800 Subject: [PATCH 011/530] Update react router sample: Use `location` prop --- src/React.Sample.Router.CoreMvc/Content/components/home.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/React.Sample.Router.CoreMvc/Content/components/home.jsx b/src/React.Sample.Router.CoreMvc/Content/components/home.jsx index 89c458107..dd647388e 100644 --- a/src/React.Sample.Router.CoreMvc/Content/components/home.jsx +++ b/src/React.Sample.Router.CoreMvc/Content/components/home.jsx @@ -68,7 +68,7 @@ export default class HomeComponent extends Component { if (typeof window === 'undefined') { return ( - + {app} ); From 529df298de98ee2bfe15d502eedeb466356fe3d4 Mon Sep 17 00:00:00 2001 From: Daniel Lo Nigro Date: Sun, 4 Mar 2018 19:08:43 -0800 Subject: [PATCH 012/530] 3.3 release --- build.proj | 2 +- .../jekyll/_posts/2018-03-04-3.3.0-release.md | 25 +++++++++++++++++++ 2 files changed, 26 insertions(+), 1 deletion(-) create mode 100644 site/jekyll/_posts/2018-03-04-3.3.0-release.md diff --git a/build.proj b/build.proj index afedb050c..bcd3d597a 100644 --- a/build.proj +++ b/build.proj @@ -10,7 +10,7 @@ of patent rights can be found in the PATENTS file in the same directory. 3 - 2 + 3 0 0 http://reactjs.net/packages/ diff --git a/site/jekyll/_posts/2018-03-04-3.3.0-release.md b/site/jekyll/_posts/2018-03-04-3.3.0-release.md new file mode 100644 index 000000000..faa6291c9 --- /dev/null +++ b/site/jekyll/_posts/2018-03-04-3.3.0-release.md @@ -0,0 +1,25 @@ +--- +title: "ReactJS.NET 3.3" +layout: post +author: Daniel Lo Nigro +--- + +I'm happy to announce the release of ReactJS.NET 3.3! This is a minor release with a few changes: + +- [#449](https://github.com/reactjs/React.NET/pull/449) - Allow rendering HTML in an ASP.NET MVC web application outside of the context of a web request. *Thanks to [Bojan Čoka](https://github.com/coka)* +- [#479](https://github.com/reactjs/React.NET/pull/479) - Added example for ReactRouter. *Thanks to [Dustin Masters](https://www.dustinsoftware.com/)*. +- [#473](https://github.com/reactjs/React.NET/pull/473) - Added optional error boundary support. *Thanks to [Dustin Masters](https://www.dustinsoftware.com/)*. +- [#496](https://github.com/reactjs/React.NET/pull/496) - Added support for script nonce attributes. *Thanks to [Dustin Masters](https://www.dustinsoftware.com/)*. +- [#497](https://github.com/reactjs/React.NET/pull/497) - Several improvements to server-only rendering. Container elements are no longer rendered, and `Html.RenderInitJavaScript` no longer renders JS for these components. *[Thanks to Gustav Tonér](https://github.com/gazab)* +- [#438](https://github.com/reactjs/React.NET/pull/438) - Simplified name of the HtmlHelper function for ReactRouter. *Thanks to [gunnim](https://github.com/gunnim)*. +- [#514](https://github.com/reactjs/React.NET/pull/514) - Replaced "path" with "location" for ReactRouter server-side rendering. *[Thanks to Chad Burggraf](http://chadb.me/)* +- [#509](https://github.com/reactjs/React.NET/pull/509) - Use NuGet reference rather than local reference for tutorial code. *Thanks to [Dustin Masters](https://www.dustinsoftware.com/)*. +- [#475](https://github.com/reactjs/React.NET/pull/475) - Fixed flaky unit tests. +*Thanks to [Dustin Masters](https://www.dustinsoftware.com/)*. + +Huge thanks to [Dustin Masters](https://www.dustinsoftware.com/) for reviewing several of the pull requests. + +Have fun, and as always, please feel free to send feedback or bug reports +[on GitHub](https://github.com/reactjs/React.NET). + +— Daniel From 943baecf43f78a8075dae4a28a91707c1d87fbe2 Mon Sep 17 00:00:00 2001 From: Daniil Sokolyuk Date: Mon, 9 Apr 2018 02:00:20 +0300 Subject: [PATCH 013/530] Component name valid caching (#529) * component name valid cache * ordinal comparer for better performance --- src/React.Core/ReactComponent.cs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/React.Core/ReactComponent.cs b/src/React.Core/ReactComponent.cs index 012100403..481485b15 100644 --- a/src/React.Core/ReactComponent.cs +++ b/src/React.Core/ReactComponent.cs @@ -8,6 +8,7 @@ */ using System; +using System.Collections.Concurrent; using System.Linq; using System.Text.RegularExpressions; using JavaScriptEngineSwitcher.Core; @@ -21,6 +22,8 @@ namespace React /// public class ReactComponent : IReactComponent { + private static readonly ConcurrentDictionary _componentNameValidCache = new ConcurrentDictionary(StringComparer.Ordinal); + /// /// Regular expression used to validate JavaScript identifiers. Used to ensure component /// names are valid. @@ -220,13 +223,10 @@ protected virtual string GetComponentInitialiser() /// internal static void EnsureComponentNameValid(string componentName) { - var isValid = componentName.Split('.').All(segment => _identifierRegex.IsMatch(segment)); + var isValid = _componentNameValidCache.GetOrAdd(componentName, compName => compName.Split('.').All(segment => _identifierRegex.IsMatch(segment))); if (!isValid) { - throw new ReactInvalidComponentException(string.Format( - "Invalid component name '{0}'", - componentName - )); + throw new ReactInvalidComponentException($"Invalid component name '{componentName}'"); } } From d49bb119d0b596389f5d2747202f72147af95210 Mon Sep 17 00:00:00 2001 From: Daniil Sokolyuk Date: Thu, 12 Apr 2018 06:33:55 +0300 Subject: [PATCH 014/530] Fast React ID Generator (#528) * Fast ReactID Generator * review fixes * fix comment --- src/React.Core/AssemblyRegistration.cs | 3 +- src/React.Core/GuidExtensions.cs | 32 --------- .../React.Core/IReactIdGenerator.cs | 20 +++--- src/React.Core/ReactComponent.cs | 14 +--- src/React.Core/ReactEnvironment.cs | 13 +++- src/React.Core/ReactIdGenerator.cs | 68 +++++++++++++++++++ .../ReactEnvironmentExtensions.cs | 9 ++- src/React.Router/ReactRouterComponent.cs | 4 +- tests/React.Tests/Core/ReactComponentTest.cs | 42 ++++++++---- .../React.Tests/Core/ReactEnvironmentTest.cs | 23 ++----- .../React.Tests/Core/ReactIdGeneratorTests.cs | 48 +++++++++++++ .../Router/HtmlHelperExtensionsTest.cs | 27 ++++++-- .../Router/ReactEnvironmentExtensionsTest.cs | 4 +- .../Router/ReactRouterComponentTest.cs | 5 +- 14 files changed, 211 insertions(+), 101 deletions(-) delete mode 100644 src/React.Core/GuidExtensions.cs rename tests/React.Tests/Core/GuidExtensionsTests.cs => src/React.Core/IReactIdGenerator.cs (54%) create mode 100644 src/React.Core/ReactIdGenerator.cs create mode 100644 tests/React.Tests/Core/ReactIdGeneratorTests.cs diff --git a/src/React.Core/AssemblyRegistration.cs b/src/React.Core/AssemblyRegistration.cs index 2b7c40a91..fafe79e33 100644 --- a/src/React.Core/AssemblyRegistration.cs +++ b/src/React.Core/AssemblyRegistration.cs @@ -1,4 +1,4 @@ -/* +/* * Copyright (c) 2014-Present, Facebook, Inc. * All rights reserved. * @@ -37,6 +37,7 @@ public void Register(TinyIoCContainer container) container.Register().AsPerRequestSingleton(); container.Register((c, o) => JsEngineSwitcher.Instance); container.Register().AsSingleton(); + container.Register().AsSingleton(); container.Register().AsPerRequestSingleton(); } diff --git a/src/React.Core/GuidExtensions.cs b/src/React.Core/GuidExtensions.cs deleted file mode 100644 index 18a7dace9..000000000 --- a/src/React.Core/GuidExtensions.cs +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Copyright (c) 2016-Present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - */ - -using System; - -namespace React -{ - /// - /// Extension methods relating to GUIDs. - /// - public static class GuidExtensions - { - /// - /// Returns a short identifier for this GUID. - /// - /// The unique identifier. - /// A short version of the unique identifier - public static string ToShortGuid(this Guid guid) - { - return Convert.ToBase64String(guid.ToByteArray()) - .Replace("/", string.Empty) - .Replace("+", string.Empty) - .TrimEnd('='); - } - } -} diff --git a/tests/React.Tests/Core/GuidExtensionsTests.cs b/src/React.Core/IReactIdGenerator.cs similarity index 54% rename from tests/React.Tests/Core/GuidExtensionsTests.cs rename to src/React.Core/IReactIdGenerator.cs index 53429c24f..6e2dbfb9f 100644 --- a/tests/React.Tests/Core/GuidExtensionsTests.cs +++ b/src/React.Core/IReactIdGenerator.cs @@ -1,4 +1,4 @@ -/* +/* * Copyright (c) 2016-Present, Facebook, Inc. * All rights reserved. * @@ -7,18 +7,14 @@ * of patent rights can be found in the PATENTS file in the same directory. */ -using System; -using Xunit; - -namespace React.Tests.Core +namespace React { - public class GuidExtensionsTests + public interface IReactIdGenerator { - [Fact] - public void ToShortGuid() - { - var guid = Guid.Parse("c027191d-3785-485d-9fd7-5e0b376bd547"); - Assert.Equal("HRknwIU3XUif114LN2vVRw", guid.ToShortGuid()); - } + /// + /// Returns a short react identifier starts with "react_". + /// + /// + string Generate(); } } diff --git a/src/React.Core/ReactComponent.cs b/src/React.Core/ReactComponent.cs index 481485b15..511b97531 100644 --- a/src/React.Core/ReactComponent.cs +++ b/src/React.Core/ReactComponent.cs @@ -97,15 +97,16 @@ public object Props /// /// The environment. /// Site-wide configuration. + /// React Id generator. /// Name of the component. /// The ID of the container DIV for this component - public ReactComponent(IReactEnvironment environment, IReactSiteConfiguration configuration, string componentName, string containerId) + public ReactComponent(IReactEnvironment environment, IReactSiteConfiguration configuration, IReactIdGenerator reactIdGenerator, string componentName, string containerId) { EnsureComponentNameValid(componentName); _environment = environment; _configuration = configuration; ComponentName = componentName; - ContainerId = string.IsNullOrEmpty(containerId) ? GenerateId() : containerId; + ContainerId = string.IsNullOrEmpty(containerId) ? reactIdGenerator.Generate() : containerId; ContainerTag = "div"; } @@ -229,14 +230,5 @@ internal static void EnsureComponentNameValid(string componentName) throw new ReactInvalidComponentException($"Invalid component name '{componentName}'"); } } - - /// - /// Generates a unique identifier for this component, if one was not passed in. - /// - /// - private static string GenerateId() - { - return "react_" + Guid.NewGuid().ToShortGuid(); - } } } diff --git a/src/React.Core/ReactEnvironment.cs b/src/React.Core/ReactEnvironment.cs index ced8e1e95..edecc5e9d 100644 --- a/src/React.Core/ReactEnvironment.cs +++ b/src/React.Core/ReactEnvironment.cs @@ -1,4 +1,4 @@ -/* +/* * Copyright (c) 2014-Present, Facebook, Inc. * All rights reserved. * @@ -55,6 +55,10 @@ public class ReactEnvironment : IReactEnvironment, IDisposable /// Hash algorithm for file-based cache /// protected readonly IFileCacheHash _fileCacheHash; + /// + /// React Id generator + /// + private readonly IReactIdGenerator _reactIdGenerator; /// /// JSX Transformer instance for this environment @@ -120,12 +124,14 @@ public static IReactEnvironment GetCurrentOrThrow /// The cache to use for JSX compilation /// File system wrapper /// Hash algorithm for file-based cache + /// React ID generator public ReactEnvironment( IJavaScriptEngineFactory engineFactory, IReactSiteConfiguration config, ICache cache, IFileSystem fileSystem, - IFileCacheHash fileCacheHash + IFileCacheHash fileCacheHash, + IReactIdGenerator reactIdGenerator ) { _engineFactory = engineFactory; @@ -133,6 +139,7 @@ IFileCacheHash fileCacheHash _cache = cache; _fileSystem = fileSystem; _fileCacheHash = fileCacheHash; + _reactIdGenerator = reactIdGenerator; _babelTransformer = new Lazy(() => new Babel(this, _cache, _fileSystem, _fileCacheHash, _config) ); @@ -294,7 +301,7 @@ public virtual IReactComponent CreateComponent(string componentName, T props, EnsureUserScriptsLoaded(); } - var component = new ReactComponent(this, _config, componentName, containerId) + var component = new ReactComponent(this, _config, _reactIdGenerator, componentName, containerId) { Props = props, ServerOnly = serverOnly diff --git a/src/React.Core/ReactIdGenerator.cs b/src/React.Core/ReactIdGenerator.cs new file mode 100644 index 000000000..a61647b7e --- /dev/null +++ b/src/React.Core/ReactIdGenerator.cs @@ -0,0 +1,68 @@ +/* + * Copyright (c) 2016-Present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + */ + +using System; +using System.Threading; + +namespace React +{ + /// + /// React ID generator. + /// + public class ReactIdGenerator : IReactIdGenerator + { + private static readonly string _encode32Chars = "0123456789ABCDEFGHIJKLMNOPQRSTUV"; + + private static long _random = DateTime.UtcNow.Ticks; + + private static readonly char[] reactPrefix = "react_".ToCharArray(); + + /// + /// "react_".Length = 6 + 13 random symbols + /// + private const int reactIdLength = 19; + + [ThreadStatic] + private static char[] _chars; + + /// + /// Returns a short react identifier starts with "react_". + /// + /// + public string Generate() + { + var chars = _chars; + if (chars == null) + { + _chars = chars = new char[reactIdLength]; + Array.Copy(reactPrefix, 0, chars, 0, reactPrefix.Length); + } + + var id = Interlocked.Increment(ref _random); + + // from 6 because "react_".Length == 6, _encode32Chars.Length == 32 (base32), + // base32 characters are 5 bits in length and from long (64 bits) we can get 13 symbols + chars[6] = _encode32Chars[(int)(id >> 60) & 31]; + chars[7] = _encode32Chars[(int)(id >> 55) & 31]; + chars[8] = _encode32Chars[(int)(id >> 50) & 31]; + chars[9] = _encode32Chars[(int)(id >> 45) & 31]; + chars[10] = _encode32Chars[(int)(id >> 40) & 31]; + chars[11] = _encode32Chars[(int)(id >> 35) & 31]; + chars[12] = _encode32Chars[(int)(id >> 30) & 31]; + chars[13] = _encode32Chars[(int)(id >> 25) & 31]; + chars[14] = _encode32Chars[(int)(id >> 20) & 31]; + chars[15] = _encode32Chars[(int)(id >> 15) & 31]; + chars[16] = _encode32Chars[(int)(id >> 10) & 31]; + chars[17] = _encode32Chars[(int)(id >> 5) & 31]; + chars[18] = _encode32Chars[(int)id & 31]; + + return new string(chars, 0, reactIdLength); + } + } +} diff --git a/src/React.Router/ReactEnvironmentExtensions.cs b/src/React.Router/ReactEnvironmentExtensions.cs index 3137538cd..fb66b3021 100644 --- a/src/React.Router/ReactEnvironmentExtensions.cs +++ b/src/React.Router/ReactEnvironmentExtensions.cs @@ -1,4 +1,4 @@ -/* +/* * Copyright (c) 2014-Present, Facebook, Inc. * All rights reserved. * @@ -35,11 +35,10 @@ public static ReactRouterComponent CreateRouterComponent( bool clientOnly = false ) { - var config = AssemblyRegistration.Container.Resolve(); - var component = new ReactRouterComponent( - env, - config, + env, + AssemblyRegistration.Container.Resolve(), + AssemblyRegistration.Container.Resolve(), componentName, containerId, path diff --git a/src/React.Router/ReactRouterComponent.cs b/src/React.Router/ReactRouterComponent.cs index 02dce30ca..993ac2953 100644 --- a/src/React.Router/ReactRouterComponent.cs +++ b/src/React.Router/ReactRouterComponent.cs @@ -26,16 +26,18 @@ public class ReactRouterComponent : ReactComponent /// /// The environment. /// Site-wide configuration. + /// React Id generator. /// Name of the component. /// The ID of the container DIV for this component /// F.x. from Request.Path. Used by React Static Router to determine context and routing. public ReactRouterComponent( IReactEnvironment environment, IReactSiteConfiguration configuration, + IReactIdGenerator reactIdGenerator, string componentName, string containerId, string path - ) : base(environment, configuration, componentName, containerId) + ) : base(environment, configuration, reactIdGenerator, componentName, containerId) { _path = path; } diff --git a/tests/React.Tests/Core/ReactComponentTest.cs b/tests/React.Tests/Core/ReactComponentTest.cs index 94f26678b..735436b54 100644 --- a/tests/React.Tests/Core/ReactComponentTest.cs +++ b/tests/React.Tests/Core/ReactComponentTest.cs @@ -24,7 +24,9 @@ public void RenderHtmlShouldThrowExceptionIfComponentDoesNotExist() environment.Setup(x => x.Execute("typeof Foo !== 'undefined'")).Returns(false); var config = new Mock(); config.Setup(x => x.UseServerSideRendering).Returns(true); - var component = new ReactComponent(environment.Object, config.Object, "Foo", "container"); + var reactIdGenerator = new Mock(); + + var component = new ReactComponent(environment.Object, config.Object, reactIdGenerator.Object, "Foo", "container"); Assert.Throws(() => { @@ -39,8 +41,9 @@ public void RenderHtmlShouldCallRenderComponent() environment.Setup(x => x.Execute("typeof Foo !== 'undefined'")).Returns(true); var config = new Mock(); config.Setup(x => x.UseServerSideRendering).Returns(true); + var reactIdGenerator = new Mock(); - var component = new ReactComponent(environment.Object, config.Object, "Foo", "container") + var component = new ReactComponent(environment.Object, config.Object, reactIdGenerator.Object, "Foo", "container") { Props = new { hello = "World" } }; @@ -58,8 +61,9 @@ public void RenderHtmlShouldWrapComponentInDiv() .Returns("[HTML]"); var config = new Mock(); config.Setup(x => x.UseServerSideRendering).Returns(true); + var reactIdGenerator = new Mock(); - var component = new ReactComponent(environment.Object, config.Object, "Foo", "container") + var component = new ReactComponent(environment.Object, config.Object, reactIdGenerator.Object, "Foo", "container") { Props = new { hello = "World" } }; @@ -76,8 +80,9 @@ public void RenderHtmlShouldNotRenderComponentHtml() environment.Setup(x => x.Execute(@"React.renderToString(React.createElement(Foo, {""hello"":""World""}))")) .Returns("[HTML]"); var config = new Mock(); + var reactIdGenerator = new Mock(); - var component = new ReactComponent(environment.Object, config.Object, "Foo", "container") + var component = new ReactComponent(environment.Object, config.Object, reactIdGenerator.Object, "Foo", "container") { Props = new { hello = "World" } }; @@ -94,8 +99,9 @@ public void RenderHtmlShouldNotRenderClientSideAttributes() environment.Setup(x => x.Execute("typeof Foo !== 'undefined'")).Returns(true); var config = new Mock(); config.Setup(x => x.UseServerSideRendering).Returns(true); + var reactIdGenerator = new Mock(); - var component = new ReactComponent(environment.Object, config.Object, "Foo", "container") + var component = new ReactComponent(environment.Object, config.Object, reactIdGenerator.Object, "Foo", "container") { Props = new { hello = "World" } }; @@ -113,8 +119,9 @@ public void RenderHtmlShouldWrapComponentInCustomElement() environment.Setup(x => x.Execute("typeof Foo !== 'undefined'")).Returns(true); environment.Setup(x => x.Execute(@"ReactDOMServer.renderToString(React.createElement(Foo, {""hello"":""World""}))")) .Returns("[HTML]"); + var reactIdGenerator = new Mock(); - var component = new ReactComponent(environment.Object, config.Object, "Foo", "container") + var component = new ReactComponent(environment.Object, config.Object, reactIdGenerator.Object, "Foo", "container") { Props = new { hello = "World" }, ContainerTag = "span" @@ -133,8 +140,9 @@ public void RenderHtmlShouldNotRenderComponentWhenContainerOnly() environment.Setup(x => x.Execute("typeof Foo !== 'undefined'")).Returns(true); environment.Setup(x => x.Execute(@"ReactDOMServer.renderToString(React.createElement(Foo, {""hello"":""World""}))")) .Returns("[HTML]"); + var reactIdGenerator = new Mock(); - var component = new ReactComponent(environment.Object, config.Object, "Foo", "container") + var component = new ReactComponent(environment.Object, config.Object, reactIdGenerator.Object, "Foo", "container") { Props = new { hello = "World" }, ContainerTag = "span" @@ -153,8 +161,9 @@ public void RenderHtmlShouldNotWrapComponentWhenServerSideOnly() environment.Setup(x => x.Execute("typeof Foo !== 'undefined'")).Returns(true); environment.Setup(x => x.Execute(@"ReactDOMServer.renderToStaticMarkup(React.createElement(Foo, {""hello"":""World""}))")) .Returns("[HTML]"); + var reactIdGenerator = new Mock(); - var component = new ReactComponent(environment.Object, config.Object, "Foo", "container") + var component = new ReactComponent(environment.Object, config.Object, reactIdGenerator.Object, "Foo", "container") { Props = new { hello = "World" }, }; @@ -173,7 +182,9 @@ public void RenderHtmlShouldAddClassToElement() environment.Setup(x => x.Execute(@"ReactDOMServer.renderToString(React.createElement(Foo, {""hello"":""World""}))")) .Returns("[HTML]"); - var component = new ReactComponent(environment.Object, config.Object, "Foo", "container") + var reactIdGenerator = new Mock(); + + var component = new ReactComponent(environment.Object, config.Object, reactIdGenerator.Object, "Foo", "container") { Props = new { hello = "World" }, ContainerClass="test-class" @@ -188,8 +199,9 @@ public void RenderJavaScriptShouldCallRenderComponent() { var environment = new Mock(); var config = new Mock(); + var reactIdGenerator = new Mock(); - var component = new ReactComponent(environment.Object, config.Object, "Foo", "container") + var component = new ReactComponent(environment.Object, config.Object, reactIdGenerator.Object, "Foo", "container") { Props = new { hello = "World" } }; @@ -228,9 +240,11 @@ public void GeneratesContainerIdIfNotProvided() { var environment = new Mock(); var config = new Mock(); + var reactIdGenerator = new Mock(); + reactIdGenerator.Setup(x => x.Generate()).Returns("customReactId"); - var component = new ReactComponent(environment.Object, config.Object, "Foo", null); - Assert.StartsWith("react_", component.ContainerId); + var component = new ReactComponent(environment.Object, config.Object, reactIdGenerator.Object, "Foo", null); + Assert.Equal("customReactId", component.ContainerId); } [Fact] @@ -245,7 +259,9 @@ public void ExceptionThrownIsHandled() config.Setup(x => x.UseServerSideRendering).Returns(true); config.Setup(x => x.ExceptionHandler).Returns(() => throw new ReactServerRenderingException("test")); - var component = new ReactComponent(environment.Object, config.Object, "Foo", "container") + var reactIdGenerator = new Mock(); + + var component = new ReactComponent(environment.Object, config.Object, reactIdGenerator.Object, "Foo", "container") { Props = new { hello = "World" } }; diff --git a/tests/React.Tests/Core/ReactEnvironmentTest.cs b/tests/React.Tests/Core/ReactEnvironmentTest.cs index 47fceeb51..d70ad433a 100644 --- a/tests/React.Tests/Core/ReactEnvironmentTest.cs +++ b/tests/React.Tests/Core/ReactEnvironmentTest.cs @@ -1,4 +1,4 @@ -/* +/* * Copyright (c) 2014-Present, Facebook, Inc. * All rights reserved. * @@ -82,30 +82,18 @@ public void ExecuteWithBabelShouldThrowIfBabelDisabled() }); } - [Fact] - public void GeneratesContainerIdIfNotProvided() - { - var mocks = new Mocks(); - var environment = mocks.CreateReactEnvironment(); - mocks.Config.Setup(x => x.Scripts).Returns(new List()); - - var component1 = environment.CreateComponent("ComponentName", new { }); - var component2 = environment.CreateComponent("ComponentName", new { }); - Assert.StartsWith("react_", component1.ContainerId); - Assert.StartsWith("react_", component2.ContainerId); - } - [Fact] public void UsesProvidedContainerId() { var mocks = new Mocks(); var environment = mocks.CreateReactEnvironment(); mocks.Config.Setup(x => x.Scripts).Returns(new List()); + mocks.ReactIdGenerator.Setup(x => x.Generate()).Returns("react_customId"); var component1 = environment.CreateComponent("ComponentName", new { }, "foo"); var component2 = environment.CreateComponent("ComponentName", new { }); Assert.Equal("foo", component1.ContainerId); - Assert.StartsWith("react_", component2.ContainerId); + Assert.Equal("react_customId", component2.ContainerId); } [Fact] @@ -156,6 +144,7 @@ public class Mocks public Mock Cache { get; private set; } public Mock FileSystem { get; private set; } public Mock FileCacheHash { get; private set; } + public Mock ReactIdGenerator { get; private set; } public Mocks() { Engine = new Mock(); @@ -164,6 +153,7 @@ public Mocks() Cache = new Mock(); FileSystem = new Mock(); FileCacheHash = new Mock(); + ReactIdGenerator = new Mock(); EngineFactory.Setup(x => x.GetEngine()).Returns(Engine.Object); EngineFactory.Setup(x => x.GetEngineForCurrentThread()).Returns(Engine.Object); @@ -177,7 +167,8 @@ public ReactEnvironment CreateReactEnvironment() Config.Object, Cache.Object, FileSystem.Object, - FileCacheHash.Object + FileCacheHash.Object, + ReactIdGenerator.Object ); } diff --git a/tests/React.Tests/Core/ReactIdGeneratorTests.cs b/tests/React.Tests/Core/ReactIdGeneratorTests.cs new file mode 100644 index 000000000..c8466b432 --- /dev/null +++ b/tests/React.Tests/Core/ReactIdGeneratorTests.cs @@ -0,0 +1,48 @@ +/* + * Copyright (c) 2016-Present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + */ + +using System; +using Xunit; + +namespace React.Tests.Core +{ + public class ReactIdGeneratorTests + { + [Fact] + public void GuidShouldHaveFixedRange() + { + var generator = new ReactIdGenerator(); + + var shortGuid = generator.Generate(); + + Assert.Equal(19, shortGuid.Length); + } + + [Fact] + public void ShouldStartsWithReact() + { + var generator = new ReactIdGenerator(); + + var shortGuid = generator.Generate(); + + Assert.StartsWith("react_", shortGuid); + } + + [Fact] + public void TwoGuidsShouldNotEqual() + { + var generator = new ReactIdGenerator(); + + var shortGuid1 = generator.Generate(); + var shortGuid2 = generator.Generate(); + + Assert.NotEqual(shortGuid1, shortGuid2); + } + } +} diff --git a/tests/React.Tests/Router/HtmlHelperExtensionsTest.cs b/tests/React.Tests/Router/HtmlHelperExtensionsTest.cs index 7f1100cbd..3bac03c38 100644 --- a/tests/React.Tests/Router/HtmlHelperExtensionsTest.cs +++ b/tests/React.Tests/Router/HtmlHelperExtensionsTest.cs @@ -46,6 +46,13 @@ private Mock ConfigureMockConfiguration() return config; } + private Mock ConfigureReactIdGenerator() + { + var reactIdGenerator = new Mock(); + AssemblyRegistration.Container.Register(reactIdGenerator.Object); + return reactIdGenerator; + } + /// /// Mock an html helper with a mocked response object. /// Used when testing for server response modification. @@ -76,18 +83,22 @@ class ReactRouterMocks public Mock config; public Mock environment; public Mock component; + public Mock reactIdGenerator; public ReactRouterMocks( Mock conf, - Mock env + Mock env, + Mock idGenerator ) { config = conf; environment = env; + reactIdGenerator = idGenerator; component = new Mock( environment.Object, config.Object, + reactIdGenerator.Object, "ComponentName", "", "/" @@ -110,7 +121,8 @@ public void EngineIsReturnedToPoolAfterRender() { var config = ConfigureMockConfiguration(); var environment = ConfigureMockEnvironment(); - var routerMocks = new ReactRouterMocks(config, environment); + var reactIdGenerator = ConfigureReactIdGenerator(); + var routerMocks = new ReactRouterMocks(config, environment, reactIdGenerator); var htmlHelperMock = new HtmlHelperMocks(); environment.Verify(x => x.ReturnEngineToPool(), Times.Never); @@ -133,7 +145,8 @@ public void ReactWithClientOnlyTrueShouldCallRenderHtmlWithTrue() var htmlHelperMock = new HtmlHelperMocks(); var environment = ConfigureMockEnvironment(); - var routerMocks = new ReactRouterMocks(config, environment); + var reactIdGenerator = ConfigureReactIdGenerator(); + var routerMocks = new ReactRouterMocks(config, environment, reactIdGenerator); var result = HtmlHelperExtensions.ReactRouter( htmlHelper: htmlHelperMock.htmlHelper.Object, @@ -154,7 +167,8 @@ public void ReactWithServerOnlyTrueShouldCallRenderHtmlWithTrue() var htmlHelperMock = new HtmlHelperMocks(); var environment = ConfigureMockEnvironment(); - var routerMocks = new ReactRouterMocks(config, environment); + var reactIdGenerator = ConfigureReactIdGenerator(); + var routerMocks = new ReactRouterMocks(config, environment, reactIdGenerator); var result = HtmlHelperExtensions.ReactRouter( htmlHelper: htmlHelperMock.htmlHelper.Object, @@ -173,6 +187,7 @@ public void ShouldModifyStatusCode() { var mocks = ConfigureMockReactEnvironment(); ConfigureMockConfiguration(); + ConfigureReactIdGenerator(); mocks.Engine.Setup(x => x.Evaluate("JSON.stringify(context);")) .Returns("{ status: 200 }"); @@ -193,6 +208,7 @@ public void ShouldRunCustomContextHandler() { var mocks = ConfigureMockReactEnvironment(); ConfigureMockConfiguration(); + ConfigureReactIdGenerator(); mocks.Engine.Setup(x => x.Evaluate("JSON.stringify(context);")) .Returns("{ status: 200 }"); @@ -214,6 +230,7 @@ public void ShouldRedirectPermanent() { var mocks = ConfigureMockReactEnvironment(); ConfigureMockConfiguration(); + ConfigureReactIdGenerator(); mocks.Engine.Setup(x => x.Evaluate("JSON.stringify(context);")) .Returns(@"{ status: 301, url: ""/foo"" }"); @@ -234,6 +251,7 @@ public void ShouldRedirectWithJustUrl() { var mocks = ConfigureMockReactEnvironment(); ConfigureMockConfiguration(); + ConfigureReactIdGenerator(); mocks.Engine.Setup(x => x.Evaluate("JSON.stringify(context);")) .Returns(@"{ url: ""/foo"" }"); @@ -254,6 +272,7 @@ public void ShouldFailRedirectWithNoUrl() { var mocks = ConfigureMockReactEnvironment(); ConfigureMockConfiguration(); + ConfigureReactIdGenerator(); mocks.Engine.Setup(x => x.Evaluate("JSON.stringify(context);")) .Returns("{ status: 301 }"); diff --git a/tests/React.Tests/Router/ReactEnvironmentExtensionsTest.cs b/tests/React.Tests/Router/ReactEnvironmentExtensionsTest.cs index 98a486311..3e379303c 100644 --- a/tests/React.Tests/Router/ReactEnvironmentExtensionsTest.cs +++ b/tests/React.Tests/Router/ReactEnvironmentExtensionsTest.cs @@ -1,4 +1,4 @@ -/* +/* * Copyright (c) 2014-Present, Facebook, Inc. * All rights reserved. * @@ -24,6 +24,8 @@ public void EnvironmentShouldGetCalledClientOnly() AssemblyRegistration.Container.Register(environment.Object); var config = new Mock(); AssemblyRegistration.Container.Register(config.Object); + var reactIdGenerator = new Mock(); + AssemblyRegistration.Container.Register(reactIdGenerator.Object); var component = ReactEnvironmentExtensions.CreateRouterComponent( environment.Object, diff --git a/tests/React.Tests/Router/ReactRouterComponentTest.cs b/tests/React.Tests/Router/ReactRouterComponentTest.cs index 731b26341..0fa9a1209 100644 --- a/tests/React.Tests/Router/ReactRouterComponentTest.cs +++ b/tests/React.Tests/Router/ReactRouterComponentTest.cs @@ -1,4 +1,4 @@ -/* +/* * Copyright (c) 2014-Present, Facebook, Inc. * All rights reserved. * @@ -22,8 +22,9 @@ public void RenderJavaScriptShouldNotIncludeContextOrPath() { var environment = new Mock(); var config = new Mock(); + var reactIdGenerator = new Mock(); - var component = new ReactRouterComponent(environment.Object, config.Object, "Foo", "container", "/bar") + var component = new ReactRouterComponent(environment.Object, config.Object, reactIdGenerator.Object, "Foo", "container", "/bar") { Props = new { hello = "World" } }; From cb086ebb35609ac2d7a1a740099753132e6a21e7 Mon Sep 17 00:00:00 2001 From: Daniil Sokolyuk Date: Thu, 12 Apr 2018 07:15:21 +0300 Subject: [PATCH 015/530] Native IHtmlContent/IHtmlString (#527) --- src/React.AspNet/ActionHtmlString.cs | 64 +++++++++ src/React.AspNet/HtmlHelperExtensions.cs | 124 ++++++++---------- src/React.Web.Mvc4/React.Web.Mvc4.csproj | 2 +- .../Mvc/HtmlHelperExtensionsTests.cs | 12 +- 4 files changed, 125 insertions(+), 77 deletions(-) create mode 100644 src/React.AspNet/ActionHtmlString.cs diff --git a/src/React.AspNet/ActionHtmlString.cs b/src/React.AspNet/ActionHtmlString.cs new file mode 100644 index 000000000..a2879dde2 --- /dev/null +++ b/src/React.AspNet/ActionHtmlString.cs @@ -0,0 +1,64 @@ +/* + * Copyright (c) 2014-Present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + */ + +using System; +using System.IO; + +#if LEGACYASPNET +using System.Web; +#else +using System.Text.Encodings.Web; +using IHtmlString = Microsoft.AspNetCore.Html.IHtmlContent; +#endif + +#if LEGACYASPNET +namespace React.Web.Mvc +#else +namespace React.AspNet +#endif +{ + /// + /// IHtmlString or IHtmlString action wrapper implementation + /// + public class ActionHtmlString : IHtmlString + { + private readonly Action _textWriter; + + /// + /// Constructor IHtmlString or IHtmlString action wrapper implementation + /// + /// + public ActionHtmlString(Action textWriter) + { + _textWriter = textWriter; + } + +#if LEGACYASPNET + /// Returns an HTML-encoded string. + /// An HTML-encoded string. + public string ToHtmlString() + { + var sw = new StringWriter(); + _textWriter(sw); + return sw.ToString(); + } +#else + /// + /// Writes the content by encoding it with the specified + /// to the specified . + /// + /// The to which the content is written. + /// The which encodes the content to be written. + public void WriteTo(TextWriter writer, HtmlEncoder encoder) + { + _textWriter(writer); + } +#endif + } +} diff --git a/src/React.AspNet/HtmlHelperExtensions.cs b/src/React.AspNet/HtmlHelperExtensions.cs index a3d796eb2..cd821cd48 100644 --- a/src/React.AspNet/HtmlHelperExtensions.cs +++ b/src/React.AspNet/HtmlHelperExtensions.cs @@ -12,13 +12,10 @@ #if LEGACYASPNET using System.Web; -using System.Web.Mvc; using IHtmlHelper = System.Web.Mvc.HtmlHelper; #else -using System.Text.Encodings.Web; using Microsoft.AspNetCore.Mvc.Rendering; using IHtmlString = Microsoft.AspNetCore.Html.IHtmlContent; -using Microsoft.AspNetCore.Html; #endif #if LEGACYASPNET @@ -32,7 +29,6 @@ namespace React.AspNet /// public static class HtmlHelperExtensions { - /// /// Gets the React environment /// @@ -70,24 +66,28 @@ public static IHtmlString React( Action exceptionHandler = null ) { - try + return new ActionHtmlString(writer => { - var reactComponent = Environment.CreateComponent(componentName, props, containerId, clientOnly, serverOnly); - if (!string.IsNullOrEmpty(htmlTag)) + try { - reactComponent.ContainerTag = htmlTag; + var reactComponent = Environment.CreateComponent(componentName, props, containerId, clientOnly, serverOnly); + if (!string.IsNullOrEmpty(htmlTag)) + { + reactComponent.ContainerTag = htmlTag; + } + + if (!string.IsNullOrEmpty(containerClass)) + { + reactComponent.ContainerClass = containerClass; + } + + writer.Write(reactComponent.RenderHtml(clientOnly, serverOnly, exceptionHandler)); } - if (!string.IsNullOrEmpty(containerClass)) + finally { - reactComponent.ContainerClass = containerClass; + Environment.ReturnEngineToPool(); } - var result = reactComponent.RenderHtml(clientOnly, serverOnly, exceptionHandler); - return new HtmlString(result); - } - finally - { - Environment.ReturnEngineToPool(); - } + }); } /// @@ -116,25 +116,30 @@ public static IHtmlString ReactWithInit( Action exceptionHandler = null ) { - try + return new ActionHtmlString(writer => { - var reactComponent = Environment.CreateComponent(componentName, props, containerId, clientOnly); - if (!string.IsNullOrEmpty(htmlTag)) + try { - reactComponent.ContainerTag = htmlTag; + var reactComponent = Environment.CreateComponent(componentName, props, containerId, clientOnly); + if (!string.IsNullOrEmpty(htmlTag)) + { + reactComponent.ContainerTag = htmlTag; + } + + if (!string.IsNullOrEmpty(containerClass)) + { + reactComponent.ContainerClass = containerClass; + } + + writer.Write(reactComponent.RenderHtml(clientOnly, exceptionHandler: exceptionHandler)); + writer.WriteLine(); + WriteScriptTag(writer, bodyWriter => bodyWriter.Write(reactComponent.RenderJavaScript())); } - if (!string.IsNullOrEmpty(containerClass)) + finally { - reactComponent.ContainerClass = containerClass; + Environment.ReturnEngineToPool(); } - var html = reactComponent.RenderHtml(clientOnly, exceptionHandler: exceptionHandler); - - return new HtmlString(html + System.Environment.NewLine + RenderToString(GetScriptTag(reactComponent.RenderJavaScript()))); - } - finally - { - Environment.ReturnEngineToPool(); - } + }); } /// @@ -144,55 +149,34 @@ public static IHtmlString ReactWithInit( /// JavaScript for all components public static IHtmlString ReactInitJavaScript(this IHtmlHelper htmlHelper, bool clientOnly = false) { - try - { - return GetScriptTag(Environment.GetInitJavaScript(clientOnly)); - } - finally + return new ActionHtmlString(writer => { - Environment.ReturnEngineToPool(); - } + try + { + WriteScriptTag(writer, bodyWriter => bodyWriter.Write(Environment.GetInitJavaScript(clientOnly))); + } + finally + { + Environment.ReturnEngineToPool(); + } + }); } - private static IHtmlString GetScriptTag(string script) + private static void WriteScriptTag(TextWriter writer, Action bodyWriter) { -#if LEGACYASPNET - var tag = new TagBuilder("script") - { - InnerHtml = script, - }; - + writer.Write(""); - if (Environment.Configuration.ScriptNonceProvider != null) - { - tag.Attributes.Add("nonce", Environment.Configuration.ScriptNonceProvider()); - } + bodyWriter(writer); - return tag; -#endif - } - - // In ASP.NET Core, you can no longer call `.ToString` on `IHtmlString` - private static string RenderToString(IHtmlString source) - { -#if LEGACYASPNET - return source.ToString(); -#else - using (var writer = new StringWriter()) - { - source.WriteTo(writer, HtmlEncoder.Default); - return writer.ToString(); - } -#endif + writer.Write(""); } } } diff --git a/src/React.Web.Mvc4/React.Web.Mvc4.csproj b/src/React.Web.Mvc4/React.Web.Mvc4.csproj index a2e5c0043..a003753e9 100644 --- a/src/React.Web.Mvc4/React.Web.Mvc4.csproj +++ b/src/React.Web.Mvc4/React.Web.Mvc4.csproj @@ -21,7 +21,7 @@ - + true diff --git a/tests/React.Tests/Mvc/HtmlHelperExtensionsTests.cs b/tests/React.Tests/Mvc/HtmlHelperExtensionsTests.cs index b1937b58c..f2a41735f 100644 --- a/tests/React.Tests/Mvc/HtmlHelperExtensionsTests.cs +++ b/tests/React.Tests/Mvc/HtmlHelperExtensionsTests.cs @@ -50,7 +50,7 @@ public void ReactWithInitShouldReturnHtmlAndScript() componentName: "ComponentName", props: new { }, htmlTag: "span" - ); + ).ToHtmlString(); Assert.Equal( "HTML" + System.Environment.NewLine + "", result.ToString() @@ -91,7 +91,7 @@ public void ScriptNonceIsReturned() componentName: "ComponentName", props: new { }, htmlTag: "span" - ); + ).ToHtmlString(); Assert.Equal( "HTML" + System.Environment.NewLine + "", result.ToString() @@ -105,7 +105,7 @@ public void ScriptNonceIsReturned() componentName: "ComponentName", props: new { }, htmlTag: "span" - ); + ).ToHtmlString(); Assert.Equal( "HTML" + System.Environment.NewLine + "", result.ToString() @@ -134,7 +134,7 @@ public void EngineIsReturnedToPoolAfterRender() htmlTag: "span", clientOnly: true, serverOnly: false - ); + ).ToHtmlString(); component.Verify(x => x.RenderHtml(It.Is(y => y == true), It.Is(z => z == false), null), Times.Once); environment.Verify(x => x.ReturnEngineToPool(), Times.Once); } @@ -160,7 +160,7 @@ public void ReactWithClientOnlyTrueShouldCallRenderHtmlWithTrue() htmlTag: "span", clientOnly: true, serverOnly: false - ); + ).ToHtmlString(); component.Verify(x => x.RenderHtml(It.Is(y => y == true), It.Is(z => z == false), null), Times.Once); } @@ -185,7 +185,7 @@ public void ReactWithServerOnlyTrueShouldCallRenderHtmlWithTrue() htmlTag: "span", clientOnly: false, serverOnly: true - ); + ).ToHtmlString(); component.Verify(x => x.RenderHtml(It.Is(y => y == false), It.Is(z => z == true), null), Times.Once); } } From c90a4a645e493855877fcf8ebde9d0474e9b8a62 Mon Sep 17 00:00:00 2001 From: Andrey Taritsyn Date: Mon, 16 Apr 2018 06:54:09 +0300 Subject: [PATCH 016/530] Replace internal implementation of the VroomJsEngine by the JavaScriptEngineSwitcher.Vroom module (#533) --- src/React.Core/JavaScriptEngineFactory.cs | 5 +- src/React.Core/React.Core.csproj | 6 +- src/React.Core/VroomJsEngine.cs | 295 ---------------------- 3 files changed, 6 insertions(+), 300 deletions(-) delete mode 100644 src/React.Core/VroomJsEngine.cs diff --git a/src/React.Core/JavaScriptEngineFactory.cs b/src/React.Core/JavaScriptEngineFactory.cs index 725738a9c..e8905b2d0 100644 --- a/src/React.Core/JavaScriptEngineFactory.cs +++ b/src/React.Core/JavaScriptEngineFactory.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Concurrent; using System.Diagnostics; using System.Linq; @@ -11,6 +11,7 @@ #else using JavaScriptEngineSwitcher.ChakraCore; #endif +using JavaScriptEngineSwitcher.Vroom; using JSPool; using React.Exceptions; @@ -379,7 +380,7 @@ private static void EnsureJsEnginesRegistered(JsEngineSwitcher jsEngineSwitcher, #if NET40 jsEngineSwitcher.EngineFactories.AddV8(); #endif - jsEngineSwitcher.EngineFactories.Add(new VroomJsEngine.Factory()); + jsEngineSwitcher.EngineFactories.AddVroom(); if (allowMsie) { jsEngineSwitcher.EngineFactories.AddMsie(); diff --git a/src/React.Core/React.Core.csproj b/src/React.Core/React.Core.csproj index 473a9a86e..9056fafab 100644 --- a/src/React.Core/React.Core.csproj +++ b/src/React.Core/React.Core.csproj @@ -1,4 +1,4 @@ - + ReactJS and Babel tools for .NET. Important: This package does not do much on its own; you probably want an integration package (like React.Web.Mvc4) as well. Please refer to project site (http://reactjs.net/) for more details, usage examples and sample code. @@ -35,14 +35,15 @@ + + - @@ -50,7 +51,6 @@ - diff --git a/src/React.Core/VroomJsEngine.cs b/src/React.Core/VroomJsEngine.cs deleted file mode 100644 index b73e3e39e..000000000 --- a/src/React.Core/VroomJsEngine.cs +++ /dev/null @@ -1,295 +0,0 @@ -/* - * Copyright (c) 2014-Present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - */ - -#if NET40 || NETSTANDARD1_6 -using System; -using System.Linq; -using JavaScriptEngineSwitcher.Core; -using Newtonsoft.Json; -using VroomJs; -using OriginalJsEngine = VroomJs.JsEngine; -using OriginalJsException = VroomJs.JsException; - -namespace React -{ - /// - /// Basic implementation of a VroomJs JavaScript engine for JavaScriptEngineSwitcher. - /// Connects to the V8 JavaScript engine on Linux and Mac OS X. - /// - public class VroomJsEngine : JsEngineBase - { - private bool _disposed; - - /// - /// The VroomJs engine. One engine is shared for the whole app, and separate contexts are - /// used for each instance of this class. - /// - private static readonly Lazy _jsEngine = - new Lazy(() => new OriginalJsEngine()); - - /// - /// The V8 context - /// - private readonly JsContext _context; - - /// - /// Name of JavaScript engine - /// - public override string Name - { - get { return "VroomJs JavaScript engine"; } - } - - /// - /// Version of original JavaScript engine - /// - public override string Version - { - get { return "86f8558d (Aug 17, 2013)"; } - } - - /// - /// The VroomJs engine. One engine is shared for the whole app, and separate contexts are - /// used for each instance of this class. - /// - private OriginalJsEngine Engine - { - get { return _jsEngine.Value; } - } - - /// - /// Constructs instance of adapter for VroomJs - /// - public VroomJsEngine() - { - try - { - // We use one engine with multiple contexts - _context = Engine.CreateContext(); - } - catch (Exception e) - { - - throw new JsEngineLoadException( - string.Format( - JavaScriptEngineSwitcher.Core.Resources.Strings.Runtime_JsEngineNotLoaded, - Name, - e.Message - ), - Name, - Version, - e - ); - } - } - - /// - /// Converts a VroomJs exception into a . - /// - /// VroomJs exception - /// JavaScriptEngineSwitcher exception - private JsRuntimeException ConvertJavaScriptExceptionToJsRuntimeException( - OriginalJsException jsException - ) - { - return new JsRuntimeException(jsException.Message, Name, Version) - { - Category = jsException.Type, - LineNumber = jsException.Line, - ColumnNumber = jsException.Column - }; - } - - /// - /// Evaluates the specified JavaScript expression - /// - /// Expression to evaluate - /// Result of the expression - protected override object InnerEvaluate(string expression) - { - try - { - return _context.Execute(expression); - } - catch (OriginalJsException ex) - { - throw ConvertJavaScriptExceptionToJsRuntimeException(ex); - } - } - - /// - /// Evaluates the specified JavaScript expression - /// - /// Expression to evaluate - /// Return type - /// Result of the expression - protected override T InnerEvaluate(string expression) - { - return (T) InnerEvaluate(expression); - } - - /// - /// Executes the specified JavaScript code - /// - /// Code to execute - protected override void InnerExecute(string code) - { - try - { - _context.Execute(code); - } - catch (OriginalJsException ex) - { - throw ConvertJavaScriptExceptionToJsRuntimeException(ex); - } - } - - /// - /// Calls the specified JavaScript function - /// - /// Function to call - /// Arguments to pass to function - /// Result of the function - protected override object InnerCallFunction(string functionName, params object[] args) - { - var code = string.Format( - "{0}({1})", - functionName, - string.Join(", ", args.Select(JsonConvert.SerializeObject)) - ); - - try - { - return _context.Execute(code); - } - catch (OriginalJsException ex) - { - throw ConvertJavaScriptExceptionToJsRuntimeException(ex); - } - } - - /// - /// Calls the specified JavaScript function - /// - /// Function to call - /// Arguments to pass to function - /// Return type of the function - /// Result of the function - protected override T InnerCallFunction(string functionName, params object[] args) - { - return (T) InnerCallFunction(functionName, args); - } - - /// - /// Determines if the specified variable has been set - /// - /// Name of the variable - /// true if the variable is defined - protected override bool InnerHasVariable(string variableName) - { - var code = string.Format("typeof {0} !== 'undefined'", variableName); - return InnerEvaluate(code); - } - - /// - /// Gets the value of the specified variable - /// - /// Variable to get value of - /// Value - protected override object InnerGetVariableValue(string variableName) - { - try - { - return _context.GetVariable(variableName); - } - catch (OriginalJsException ex) - { - throw ConvertJavaScriptExceptionToJsRuntimeException(ex); - } - } - - /// - /// Gets the value of the specified variable - /// - /// Variable to get value of - /// Type of the variable - /// Value - protected override T InnerGetVariableValue(string variableName) - { - return (T)InnerGetVariableValue(variableName); - } - - /// - /// Sets the value of the specified variable - /// - /// Variable to get value of - /// New value to set - /// Value - protected override void InnerSetVariableValue(string variableName, object value) - { - try - { - _context.SetVariable(variableName, value); - } - catch (OriginalJsException ex) - { - throw ConvertJavaScriptExceptionToJsRuntimeException(ex); - } - } - - /// - /// Deletes a variable - /// - /// Variable to delete - protected override void InnerRemoveVariable(string variableName) - { - var code = string.Format("{0} = undefined", variableName); - try - { - _context.Execute(code); - } - catch (OriginalJsException ex) - { - throw ConvertJavaScriptExceptionToJsRuntimeException(ex); - } - } - - /// - /// Releases resources used by this engine. - /// - public override void Dispose() - { - if (!_disposed) - { - _context.Dispose(); - _disposed = true; - } - } - - /// - /// Engine factory for . - /// - public class Factory : IJsEngineFactory - { - /// - /// Creates the engine - /// - public IJsEngine CreateEngine() - { - return new VroomJsEngine(); - } - - /// - /// Gets the name of the engine. - /// - public string EngineName => "VroomJs"; - } - } -} -#endif From 9234c067e5bfc448899ca61c601a22e028dedcc5 Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Wed, 25 Apr 2018 21:08:11 -0700 Subject: [PATCH 017/530] Add benchmarking tool (#537) Useful for testing performance-related changes --- src/React.sln | 9 ++- tests/React.Tests.Benchmarks/Program.cs | 69 +++++++++++++++++++ .../React.Tests.Benchmarks.csproj | 29 ++++++++ tests/React.Tests.Benchmarks/Sample.jsx | 10 +++ 4 files changed, 116 insertions(+), 1 deletion(-) create mode 100644 tests/React.Tests.Benchmarks/Program.cs create mode 100644 tests/React.Tests.Benchmarks/React.Tests.Benchmarks.csproj create mode 100644 tests/React.Tests.Benchmarks/Sample.jsx diff --git a/src/React.sln b/src/React.sln index 667493019..c7771aa62 100644 --- a/src/React.sln +++ b/src/React.sln @@ -70,7 +70,9 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "React.Sample.CoreMvc", "Rea EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "React.Router.Mvc4", "React.Router.Mvc4\React.Router.Mvc4.csproj", "{2170D912-86E9-4CE3-8DA4-E1DE8D958E63}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "React.Sample.Router.CoreMvc", "React.Sample.Router.CoreMvc\React.Sample.Router.CoreMvc.csproj", "{5BFA69C8-2E66-4112-AC30-CE31503F4175}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "React.Sample.Router.CoreMvc", "React.Sample.Router.CoreMvc\React.Sample.Router.CoreMvc.csproj", "{5BFA69C8-2E66-4112-AC30-CE31503F4175}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "React.Tests.Benchmarks", "..\tests\React.Tests.Benchmarks\React.Tests.Benchmarks.csproj", "{083462CB-2FC0-4508-A7ED-4B77B44C3E23}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -154,6 +156,10 @@ Global {5BFA69C8-2E66-4112-AC30-CE31503F4175}.Debug|Any CPU.Build.0 = Debug|Any CPU {5BFA69C8-2E66-4112-AC30-CE31503F4175}.Release|Any CPU.ActiveCfg = Release|Any CPU {5BFA69C8-2E66-4112-AC30-CE31503F4175}.Release|Any CPU.Build.0 = Release|Any CPU + {083462CB-2FC0-4508-A7ED-4B77B44C3E23}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {083462CB-2FC0-4508-A7ED-4B77B44C3E23}.Debug|Any CPU.Build.0 = Debug|Any CPU + {083462CB-2FC0-4508-A7ED-4B77B44C3E23}.Release|Any CPU.ActiveCfg = Release|Any CPU + {083462CB-2FC0-4508-A7ED-4B77B44C3E23}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -178,6 +184,7 @@ Global {305918EF-AD05-4743-9B3A-DB1CE84D467E} = {A51CE5B6-294F-4D39-B32B-BF08DAF9B40B} {2170D912-86E9-4CE3-8DA4-E1DE8D958E63} = {681C45FB-103C-48BC-B992-20C5B6B78F92} {5BFA69C8-2E66-4112-AC30-CE31503F4175} = {A51CE5B6-294F-4D39-B32B-BF08DAF9B40B} + {083462CB-2FC0-4508-A7ED-4B77B44C3E23} = {F567B25C-E869-4C93-9C96-077761250F87} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {DCF4A41E-C60D-4086-98A9-6F8508D7E8D0} diff --git a/tests/React.Tests.Benchmarks/Program.cs b/tests/React.Tests.Benchmarks/Program.cs new file mode 100644 index 000000000..61eba1eb3 --- /dev/null +++ b/tests/React.Tests.Benchmarks/Program.cs @@ -0,0 +1,69 @@ +using System; +using BenchmarkDotNet.Attributes; +using BenchmarkDotNet.Running; +using JavaScriptEngineSwitcher.ChakraCore; +using JavaScriptEngineSwitcher.Core; +using Newtonsoft.Json.Linq; +using React.Web.Mvc; + +namespace React.Tests.Benchmarks +{ + public static class Program + { + public static void Main(string[] args) + { + var summary = BenchmarkRunner.Run(); + } + + [MemoryDiagnoser] + public class ComponentRenderBenchmarks + { + public static void PopulateTestData() + { + for (int i = 0; i < 10000; i++) + { + _testData.Add("key" + i, "value" + i); + } + } + + public ComponentRenderBenchmarks() + { + PopulateTestData(); + + Initializer.Initialize(registration => registration.AsSingleton()); + AssemblyRegistration.Container.Register(); + AssemblyRegistration.Container.Register(); + JsEngineSwitcher.Instance.EngineFactories.Add(new ChakraCoreJsEngineFactory()); + JsEngineSwitcher.Instance.DefaultEngineName = ChakraCoreJsEngine.EngineName; + + ReactSiteConfiguration.Configuration + .SetReuseJavaScriptEngines(false) + .AddScript("Sample.jsx"); + } + + [Benchmark] + public void HtmlHelperExtensions_React() + { + AssertContains("Hello Tester!", HtmlHelperExtensions.React(null, "HelloWorld", _testData, serverOnly: true).ToHtmlString()); + } + + [Benchmark] + public void Environment_CreateComponent() + { + var component = ReactEnvironment.Current.CreateComponent("HelloWorld", _testData, serverOnly: true); + AssertContains("Hello Tester!", component.RenderHtml(renderServerOnly: true)); + ReactEnvironment.Current.ReturnEngineToPool(); + } + + private static JObject _testData = JObject.FromObject(new System.Collections.Generic.Dictionary(){ ["name"] = "Tester" }); + } + + private static void AssertContains(string expected, string actual) + { + if (!actual.Contains(expected)) + { + throw new InvalidOperationException($"Strings were not equal. {expected} {actual}"); + } + } + } +} diff --git a/tests/React.Tests.Benchmarks/React.Tests.Benchmarks.csproj b/tests/React.Tests.Benchmarks/React.Tests.Benchmarks.csproj new file mode 100644 index 000000000..32211555e --- /dev/null +++ b/tests/React.Tests.Benchmarks/React.Tests.Benchmarks.csproj @@ -0,0 +1,29 @@ + + + + Exe + net461 + + + + + + + + + + + + + + + + + + + + Always + + + + diff --git a/tests/React.Tests.Benchmarks/Sample.jsx b/tests/React.Tests.Benchmarks/Sample.jsx new file mode 100644 index 000000000..582acfc97 --- /dev/null +++ b/tests/React.Tests.Benchmarks/Sample.jsx @@ -0,0 +1,10 @@ +class HelloWorld extends React.Component { + render() { + return ( +
+ Hello {this.props.name}! + All props: {JSON.stringify(this.props)} +
+ ); + } +} From 86115d784f64872c01c8faa3a9786be811b6dad3 Mon Sep 17 00:00:00 2001 From: Daniil Sokolyuk Date: Thu, 26 Apr 2018 07:22:21 +0300 Subject: [PATCH 018/530] Avoid large objects allocations and reuse everthing (#532) * Text writer implementation * Remove redundant verifiable calls --- src/React.AspNet/ActionHtmlString.cs | 20 +++- src/React.AspNet/HtmlHelperExtensions.cs | 8 +- src/React.Core/IReactComponent.cs | 20 ++++ src/React.Core/IReactEnvironment.cs | 11 ++ src/React.Core/ReactComponent.cs | 109 +++++++++++++----- src/React.Core/ReactEnvironment.cs | 29 +++-- src/React.Router/ReactRouterComponent.cs | 29 ++--- .../Mvc/HtmlHelperExtensionsTests.cs | 39 +++++-- 8 files changed, 199 insertions(+), 66 deletions(-) diff --git a/src/React.AspNet/ActionHtmlString.cs b/src/React.AspNet/ActionHtmlString.cs index a2879dde2..99179e9b5 100644 --- a/src/React.AspNet/ActionHtmlString.cs +++ b/src/React.AspNet/ActionHtmlString.cs @@ -11,6 +11,7 @@ using System.IO; #if LEGACYASPNET +using System.Text; using System.Web; #else using System.Text.Encodings.Web; @@ -40,13 +41,26 @@ public ActionHtmlString(Action textWriter) } #if LEGACYASPNET + [ThreadStatic] + private static StringWriter _sharedStringWriter; + /// Returns an HTML-encoded string. /// An HTML-encoded string. public string ToHtmlString() { - var sw = new StringWriter(); - _textWriter(sw); - return sw.ToString(); + var stringWriter = _sharedStringWriter; + if (stringWriter != null) + { + stringWriter.GetStringBuilder().Clear(); + } + else + { + _sharedStringWriter = stringWriter = new StringWriter(new StringBuilder(128)); + } + + _textWriter(stringWriter); + + return stringWriter.ToString(); } #else /// diff --git a/src/React.AspNet/HtmlHelperExtensions.cs b/src/React.AspNet/HtmlHelperExtensions.cs index cd821cd48..acc88f11f 100644 --- a/src/React.AspNet/HtmlHelperExtensions.cs +++ b/src/React.AspNet/HtmlHelperExtensions.cs @@ -81,7 +81,7 @@ public static IHtmlString React( reactComponent.ContainerClass = containerClass; } - writer.Write(reactComponent.RenderHtml(clientOnly, serverOnly, exceptionHandler)); + reactComponent.RenderHtml(writer, clientOnly, serverOnly, exceptionHandler); } finally { @@ -131,9 +131,9 @@ public static IHtmlString ReactWithInit( reactComponent.ContainerClass = containerClass; } - writer.Write(reactComponent.RenderHtml(clientOnly, exceptionHandler: exceptionHandler)); + reactComponent.RenderHtml(writer, clientOnly, exceptionHandler: exceptionHandler); writer.WriteLine(); - WriteScriptTag(writer, bodyWriter => bodyWriter.Write(reactComponent.RenderJavaScript())); + WriteScriptTag(writer, bodyWriter => reactComponent.RenderJavaScript(bodyWriter)); } finally { @@ -153,7 +153,7 @@ public static IHtmlString ReactInitJavaScript(this IHtmlHelper htmlHelper, bool { try { - WriteScriptTag(writer, bodyWriter => bodyWriter.Write(Environment.GetInitJavaScript(clientOnly))); + WriteScriptTag(writer, bodyWriter => Environment.GetInitJavaScript(bodyWriter, clientOnly)); } finally { diff --git a/src/React.Core/IReactComponent.cs b/src/React.Core/IReactComponent.cs index b4a6d4428..45ac47ffd 100644 --- a/src/React.Core/IReactComponent.cs +++ b/src/React.Core/IReactComponent.cs @@ -8,6 +8,7 @@ */ using System; +using System.IO; namespace React { @@ -63,5 +64,24 @@ public interface IReactComponent /// /// JavaScript string RenderJavaScript(); + + /// + /// Renders the HTML for this component. This will execute the component server-side and + /// return the rendered HTML. + /// + /// The to which the content is written + /// Only renders component container. Used for client-side only rendering. + /// Only renders the common HTML mark up and not any React specific data attributes. Used for server-side only rendering. + /// A custom exception handler that will be called if a component throws during a render. Args: (Exception ex, string componentName, string containerId) + /// HTML + void RenderHtml(TextWriter writer, bool renderContainerOnly = false, bool renderServerOnly = false, Action exceptionHandler = null); + + /// + /// Renders the JavaScript required to initialise this component client-side. This will + /// initialise the React component, which includes attach event handlers to the + /// server-rendered HTML. + /// + /// JavaScript + void RenderJavaScript(TextWriter writer); } } diff --git a/src/React.Core/IReactEnvironment.cs b/src/React.Core/IReactEnvironment.cs index 67991360f..4ffe32630 100644 --- a/src/React.Core/IReactEnvironment.cs +++ b/src/React.Core/IReactEnvironment.cs @@ -8,6 +8,8 @@ */ +using System.IO; + namespace React { /// @@ -114,5 +116,14 @@ public interface IReactEnvironment /// Gets the site-wide configuration. /// IReactSiteConfiguration Configuration { get; } + + /// + /// Renders the JavaScript required to initialise all components client-side. This will + /// attach event handlers to the server-rendered HTML. + /// + /// The to which the content is written + /// True if server-side rendering will be bypassed. Defaults to false. + /// JavaScript for all components + void GetInitJavaScript(TextWriter writer, bool clientOnly = false); } } diff --git a/src/React.Core/ReactComponent.cs b/src/React.Core/ReactComponent.cs index 511b97531..376315779 100644 --- a/src/React.Core/ReactComponent.cs +++ b/src/React.Core/ReactComponent.cs @@ -9,7 +9,9 @@ using System; using System.Collections.Concurrent; +using System.IO; using System.Linq; +using System.Text; using System.Text.RegularExpressions; using JavaScriptEngineSwitcher.Core; using Newtonsoft.Json; @@ -24,6 +26,9 @@ public class ReactComponent : IReactComponent { private static readonly ConcurrentDictionary _componentNameValidCache = new ConcurrentDictionary(StringComparer.Ordinal); + [ThreadStatic] + private static StringWriter _sharedStringWriter; + /// /// Regular expression used to validate JavaScript identifiers. Used to ensure component /// names are valid. @@ -87,8 +92,7 @@ public object Props _props = value; _serializedProps = JsonConvert.SerializeObject( value, - _configuration.JsonSerializerSettings - ); + _configuration.JsonSerializerSettings); } } @@ -119,6 +123,24 @@ public ReactComponent(IReactEnvironment environment, IReactSiteConfiguration con /// A custom exception handler that will be called if a component throws during a render. Args: (Exception ex, string componentName, string containerId) /// HTML public virtual string RenderHtml(bool renderContainerOnly = false, bool renderServerOnly = false, Action exceptionHandler = null) + { + using (var writer = new StringWriter()) + { + RenderHtml(writer, renderContainerOnly, renderServerOnly, exceptionHandler); + return writer.ToString(); + } + } + + /// + /// Renders the HTML for this component. This will execute the component server-side and + /// return the rendered HTML. + /// + /// The to which the content is written + /// Only renders component container. Used for client-side only rendering. + /// Only renders the common HTML mark up and not any React specific data attributes. Used for server-side only rendering. + /// A custom exception handler that will be called if a component throws during a render. Args: (Exception ex, string componentName, string containerId) + /// HTML + public virtual void RenderHtml(TextWriter writer, bool renderContainerOnly = false, bool renderServerOnly = false, Action exceptionHandler = null) { if (!_configuration.UseServerSideRendering) { @@ -133,16 +155,28 @@ public virtual string RenderHtml(bool renderContainerOnly = false, bool renderSe var html = string.Empty; if (!renderContainerOnly) { + var stringWriter = _sharedStringWriter; + if (stringWriter != null) + { + stringWriter.GetStringBuilder().Clear(); + } + else + { + _sharedStringWriter = stringWriter = new StringWriter(new StringBuilder(_serializedProps.Length + 128)); + } + try { - var reactRenderCommand = renderServerOnly - ? string.Format("ReactDOMServer.renderToStaticMarkup({0})", GetComponentInitialiser()) - : string.Format("ReactDOMServer.renderToString({0})", GetComponentInitialiser()); - html = _environment.Execute(reactRenderCommand); + stringWriter.Write(renderServerOnly ? "ReactDOMServer.renderToStaticMarkup(" : "ReactDOMServer.renderToString("); + WriteComponentInitialiser(stringWriter); + stringWriter.Write(')'); + + html = _environment.Execute(stringWriter.ToString()); if (renderServerOnly) { - return html; + writer.Write(html); + return; } } catch (JsRuntimeException ex) @@ -156,18 +190,23 @@ public virtual string RenderHtml(bool renderContainerOnly = false, bool renderSe } } - string attributes = string.Format("id=\"{0}\"", ContainerId); + writer.Write('<'); + writer.Write(ContainerTag); + writer.Write(" id=\""); + writer.Write(ContainerId); + writer.Write('"'); if (!string.IsNullOrEmpty(ContainerClass)) { - attributes += string.Format(" class=\"{0}\"", ContainerClass); + writer.Write(" class=\""); + writer.Write(ContainerClass); + writer.Write('"'); } - return string.Format( - "<{2} {0}>{1}", - attributes, - html, - ContainerTag - ); + writer.Write('>'); + writer.Write(html); + writer.Write("'); } /// @@ -178,11 +217,27 @@ public virtual string RenderHtml(bool renderContainerOnly = false, bool renderSe /// JavaScript public virtual string RenderJavaScript() { - return string.Format( - "ReactDOM.hydrate({0}, document.getElementById({1}))", - GetComponentInitialiser(), - JsonConvert.SerializeObject(ContainerId, _configuration.JsonSerializerSettings) // SerializeObject accepts null settings - ); + using (var writer = new StringWriter()) + { + RenderJavaScript(writer); + return writer.ToString(); + } + } + + /// + /// Renders the JavaScript required to initialise this component client-side. This will + /// initialise the React component, which includes attach event handlers to the + /// server-rendered HTML. + /// + /// The to which the content is written + /// JavaScript + public virtual void RenderJavaScript(TextWriter writer) + { + writer.Write("ReactDOM.hydrate("); + WriteComponentInitialiser(writer); + writer.Write(", document.getElementById(\""); + writer.Write(ContainerId); + writer.Write("\"))"); } /// @@ -208,14 +263,14 @@ protected virtual void EnsureComponentExists() /// /// Gets the JavaScript code to initialise the component /// - /// JavaScript for component initialisation - protected virtual string GetComponentInitialiser() + /// The to which the content is written + protected virtual void WriteComponentInitialiser(TextWriter writer) { - return string.Format( - "React.createElement({0}, {1})", - ComponentName, - _serializedProps - ); + writer.Write("React.createElement("); + writer.Write(ComponentName); + writer.Write(", "); + writer.Write(_serializedProps); + writer.Write(')'); } /// diff --git a/src/React.Core/ReactEnvironment.cs b/src/React.Core/ReactEnvironment.cs index edecc5e9d..1f9ebec9f 100644 --- a/src/React.Core/ReactEnvironment.cs +++ b/src/React.Core/ReactEnvironment.cs @@ -10,6 +10,7 @@ using System; using System.Collections.Generic; using System.Diagnostics; +using System.IO; using System.Reflection; using System.Text; using System.Threading; @@ -335,25 +336,37 @@ public virtual IReactComponent CreateComponent(IReactComponent component, bool c /// JavaScript for all components public virtual string GetInitJavaScript(bool clientOnly = false) { - var fullScript = new StringBuilder(); - + using (var writer = new StringWriter()) + { + GetInitJavaScript(writer, clientOnly); + return writer.ToString(); + } + } + + /// + /// Renders the JavaScript required to initialise all components client-side. This will + /// attach event handlers to the server-rendered HTML. + /// + /// The to which the content is written + /// True if server-side rendering will be bypassed. Defaults to false. + /// JavaScript for all components + public virtual void GetInitJavaScript(TextWriter writer, bool clientOnly = false) + { // Propagate any server-side console.log calls to corresponding client-side calls. if (!clientOnly) { var consoleCalls = Execute("console.getCalls()"); - fullScript.Append(consoleCalls); + writer.Write(consoleCalls); } - + foreach (var component in _components) { if (!component.ServerOnly) { - fullScript.Append(component.RenderJavaScript()); - fullScript.AppendLine(";"); + component.RenderJavaScript(writer); + writer.WriteLine(';'); } } - - return fullScript.ToString(); } /// diff --git a/src/React.Router/ReactRouterComponent.cs b/src/React.Router/ReactRouterComponent.cs index 993ac2953..631b2cb50 100644 --- a/src/React.Router/ReactRouterComponent.cs +++ b/src/React.Router/ReactRouterComponent.cs @@ -7,6 +7,7 @@ * of patent rights can be found in the PATENTS file in the same directory. */ +using System.IO; using Newtonsoft.Json; namespace React.Router @@ -67,15 +68,15 @@ public virtual ExecutionResult RenderRouterWithContext(bool renderContainerOnly /// Gets the JavaScript code to initialise the component /// /// JavaScript for component initialisation - protected override string GetComponentInitialiser() + protected override void WriteComponentInitialiser(TextWriter writer) { - return string.Format( - @"React.createElement - ({0}, Object.assign({1}, {{ location: '{2}', context: context }}))", - ComponentName, - _serializedProps, - _path - ); + writer.Write("React.createElement("); + writer.Write(ComponentName); + writer.Write(", Object.assign("); + writer.Write(_serializedProps); + writer.Write(", { location: '"); + writer.Write(_path); + writer.Write("', context: context }))"); } /// @@ -86,13 +87,13 @@ protected override string GetComponentInitialiser() /// Client side React Router does not need context nor explicit path parameter. /// /// JavaScript - public override string RenderJavaScript() + public override void RenderJavaScript(TextWriter writer) { - return string.Format( - "ReactDOM.hydrate({0}, document.getElementById({1}))", - base.GetComponentInitialiser(), - JsonConvert.SerializeObject(ContainerId, _configuration.JsonSerializerSettings) // SerializeObject accepts null settings - ); + writer.Write("ReactDOM.hydrate("); + base.WriteComponentInitialiser(writer); + writer.Write(", document.getElementById(\""); + writer.Write(ContainerId); + writer.Write("\"))"); } } } diff --git a/tests/React.Tests/Mvc/HtmlHelperExtensionsTests.cs b/tests/React.Tests/Mvc/HtmlHelperExtensionsTests.cs index f2a41735f..53c6b594e 100644 --- a/tests/React.Tests/Mvc/HtmlHelperExtensionsTests.cs +++ b/tests/React.Tests/Mvc/HtmlHelperExtensionsTests.cs @@ -8,6 +8,7 @@ */ using System; +using System.IO; using System.Security.Cryptography; using Moq; using React.Web.Mvc; @@ -34,8 +35,12 @@ private Mock ConfigureMockEnvironment(IReactSiteConfiguration public void ReactWithInitShouldReturnHtmlAndScript() { var component = new Mock(); - component.Setup(x => x.RenderHtml(false, false, null)).Returns("HTML"); - component.Setup(x => x.RenderJavaScript()).Returns("JS"); + + component.Setup(x => x.RenderHtml(It.IsAny(), false, false, null)) + .Callback((TextWriter writer, bool renderContainerOnly, bool renderServerOnly, Action exceptionHandler) => writer.Write("HTML")); + + component.Setup(x => x.RenderJavaScript(It.IsAny())).Callback((TextWriter writer) => writer.Write("JS")); + var environment = ConfigureMockEnvironment(); environment.Setup(x => x.CreateComponent( "ComponentName", @@ -51,6 +56,7 @@ public void ReactWithInitShouldReturnHtmlAndScript() props: new { }, htmlTag: "span" ).ToHtmlString(); + Assert.Equal( "HTML" + System.Environment.NewLine + "", result.ToString() @@ -69,8 +75,10 @@ public void ScriptNonceIsReturned() } var component = new Mock(); - component.Setup(x => x.RenderHtml(false, false, null)).Returns("HTML"); - component.Setup(x => x.RenderJavaScript()).Returns("JS"); + component.Setup(x => x.RenderHtml(It.IsAny(), false, false, null)) + .Callback((TextWriter writer, bool renderContainerOnly, bool renderServerOnly, Action exceptionHandler) => writer.Write("HTML")).Verifiable(); + + component.Setup(x => x.RenderJavaScript(It.IsAny())).Callback((TextWriter writer) => writer.Write("JS")).Verifiable(); var config = new Mock(); @@ -92,6 +100,7 @@ public void ScriptNonceIsReturned() props: new { }, htmlTag: "span" ).ToHtmlString(); + Assert.Equal( "HTML" + System.Environment.NewLine + "", result.ToString() @@ -106,6 +115,7 @@ public void ScriptNonceIsReturned() props: new { }, htmlTag: "span" ).ToHtmlString(); + Assert.Equal( "HTML" + System.Environment.NewLine + "", result.ToString() @@ -116,7 +126,9 @@ public void ScriptNonceIsReturned() public void EngineIsReturnedToPoolAfterRender() { var component = new Mock(); - component.Setup(x => x.RenderHtml(true, true, null)).Returns("HTML"); + component.Setup(x => x.RenderHtml(It.IsAny(), false, false, null)) + .Callback((TextWriter writer, bool renderContainerOnly, bool renderServerOnly, Action exceptionHandler) => writer.Write("HTML")).Verifiable(); + var environment = ConfigureMockEnvironment(); environment.Setup(x => x.CreateComponent( "ComponentName", @@ -135,7 +147,8 @@ public void EngineIsReturnedToPoolAfterRender() clientOnly: true, serverOnly: false ).ToHtmlString(); - component.Verify(x => x.RenderHtml(It.Is(y => y == true), It.Is(z => z == false), null), Times.Once); + + component.Verify(x => x.RenderHtml(It.IsAny(), It.Is(y => y == true), It.Is(z => z == false), null), Times.Once); environment.Verify(x => x.ReturnEngineToPool(), Times.Once); } @@ -143,7 +156,9 @@ public void EngineIsReturnedToPoolAfterRender() public void ReactWithClientOnlyTrueShouldCallRenderHtmlWithTrue() { var component = new Mock(); - component.Setup(x => x.RenderHtml(true, true, null)).Returns("HTML"); + component.Setup(x => x.RenderHtml(It.IsAny(), false, false, null)) + .Callback((TextWriter writer, bool renderContainerOnly, bool renderServerOnly, Action exceptionHandler) => writer.Write("HTML")).Verifiable(); + var environment = ConfigureMockEnvironment(); environment.Setup(x => x.CreateComponent( "ComponentName", @@ -161,14 +176,17 @@ public void ReactWithClientOnlyTrueShouldCallRenderHtmlWithTrue() clientOnly: true, serverOnly: false ).ToHtmlString(); - component.Verify(x => x.RenderHtml(It.Is(y => y == true), It.Is(z => z == false), null), Times.Once); + + component.Verify(x => x.RenderHtml(It.IsAny(), It.Is(y => y == true), It.Is(z => z == false), null), Times.Once); } [Fact] public void ReactWithServerOnlyTrueShouldCallRenderHtmlWithTrue() { var component = new Mock(); - component.Setup(x => x.RenderHtml(false, true, null)).Returns("HTML"); + component.Setup(x => x.RenderHtml(It.IsAny(), false, false, null)) + .Callback((TextWriter writer, bool renderContainerOnly, bool renderServerOnly, Action exceptionHandler) => writer.Write("HTML")).Verifiable(); + var environment = ConfigureMockEnvironment(); environment.Setup(x => x.CreateComponent( "ComponentName", @@ -186,7 +204,8 @@ public void ReactWithServerOnlyTrueShouldCallRenderHtmlWithTrue() clientOnly: false, serverOnly: true ).ToHtmlString(); - component.Verify(x => x.RenderHtml(It.Is(y => y == false), It.Is(z => z == true), null), Times.Once); + + component.Verify(x => x.RenderHtml(It.IsAny(), It.Is(y => y == false), It.Is(z => z == true), null), Times.Once); } } } From 9864ede2ea0f1e6bf1fa24f3f28bf68ca3a7de00 Mon Sep 17 00:00:00 2001 From: Miles Rausch Date: Wed, 16 May 2018 10:11:21 -0500 Subject: [PATCH 019/530] Updated the MVC tutorial for React 16 (#542) --- .../getting-started/tutorial_aspnet4.md | 629 ++++++++++-------- 1 file changed, 335 insertions(+), 294 deletions(-) diff --git a/site/jekyll/getting-started/tutorial_aspnet4.md b/site/jekyll/getting-started/tutorial_aspnet4.md index cfb995ac6..4496bed2f 100644 --- a/site/jekyll/getting-started/tutorial_aspnet4.md +++ b/site/jekyll/getting-started/tutorial_aspnet4.md @@ -8,9 +8,9 @@ layout: docs > > This tutorial is for Visual Studio 2013 and ASP.NET MVC 4. If you like, you can [see the tutorial for ASP.NET Core instead](/getting-started/tutorial.html) -This tutorial covers the end-to-end process of creating a brand new ASP.NET MVC website and adding a React component in it. We will start from scratch and end with a fully functioning component. It assumes you have basic knowledge of ASP.NET MVC and using Visual Studio. This tutorial is based off the [original React tutorial](http://facebook.github.io/react/docs/tutorial.html) but has been modified specifically for ReactJS.NET. +This tutorial covers the end-to-end process of creating a brand new ASP.NET MVC website and adding a React component in it. We will start from scratch and end with a fully functioning component. It assumes you have basic knowledge of ASP.NET MVC and using Visual Studio. This tutorial is based off the [original React tutorial](https://reactjs.org/tutorial/tutorial.html) but has been modified specifically for ReactJS.NET. -We'll be building a simple, but realistic comments box that you can drop into a blog, a basic version of the realtime comments offered by Disqus, LiveFyre or Facebook comments. +We'll be building a simple, but realistic, comments box that you can drop into a blog. It's a basic version of the realtime comments offered by Disqus, LiveFyre or Facebook comments. We'll provide: @@ -20,33 +20,34 @@ We'll provide: It'll also have a few neat features: -* **Optimistic commenting:** comments appear in the list before they're saved on the server so it feels fast. +* **Optimistic updates:** comments appear in the list before they're saved on the server so it feels fast. * **Live updates:** other users' comments are popped into the comment view in real time. * **Markdown formatting:** users can use Markdown to format their text. ## Getting started -For this tutorial we'll be using Visual Studio 2013, although any version of Visual Studio from 2010 onwards is fine, including [Visual Studio Express 2013](http://www.visualstudio.com/en-us/products/visual-studio-express-vs.aspx) which is completely free. We will be using ASP.NET MVC 4, although similar steps apply for ASP.NET MVC 5. +For this tutorial we'll be using Visual Studio 2013, although any version of Visual Studio from 2010 onwards is fine, including [Visual Studio Express](https://www.visualstudio.com/vs/express/) which is completely free. We will be using ASP.NET MVC 4, although similar steps apply for ASP.NET MVC 5. ### New Project Start by creating a new ASP.NET MVC 4 project: -1. File → New → Project -2. Select ".NET Framework 4" and Templates → Visual C# → Web → ASP.NET MVC 4 Web Application. Call it "ReactDemo" +1. File → New → Project +1. Select ".NET Framework 4" and Templates → Visual C# → Web → ASP.NET MVC 4 Web Application. +1. Call it "ReactDemo" Screenshot: New Project -3. In the "New ASP.NET MVC 4 Project" dialog, select the Empty template. I always recommend using this template for new sites, as the others include a large amount of third-party packages that you may not even use. +1. In the "New ASP.NET MVC 4 Project" dialog, select the Empty template. I always recommend using this template for new sites, as the others include a large number of third-party packages that you may not even use. Screenshot: New ASP.NET MVC 4 Project dialog ### Install ReactJS.NET -We need to install ReactJS.NET to the newly-created project. This is accomplished using NuGet, a package manager for .NET. Right-click on the "ReactDemo" project in the Solution Explorer and select "Manage NuGet Packages". Search for "ReactJS.NET" and install the **ReactJS.NET (MVC 4 and 5)** package. +We need to install ReactJS.NET to the newly-created project. This is accomplished using NuGet, a package manager for .NET. Right-click on the "ReactDemo" project in the Solution Explorer and select "Manage NuGet Packages". Search for "ReactJS.NET" and install the **React.Web.Mvc4** package. Screenshot: Install NuGet Packages ### Create basic controller and view -Since this tutorial focuses mainly on ReactJS.NET itself, we will not cover creation of an MVC controller in much detail. To learn more about ASP.NET MVC, refer to [its official website](http://www.asp.net/mvc). +Since this tutorial focuses mainly on ReactJS.NET itself, we will not cover creation of an MVC controller in much detail. To learn more about ASP.NET MVC, refer to [its official website](https://www.asp.net/mvc). Right-click on the Controllers folder and click Add → Controller. Name the controller "HomeController" and select "Empty MVC Controller" as the template. Once the controller has been created, right-click on `return View()` and click "Add View". Enter the following details: @@ -62,18 +63,18 @@ Replace the contents of the new view file with the following: ```html @{ - Layout = null; + Layout = null; } - Hello React + Hello React -
- - - - +
+ + + + ``` @@ -93,18 +94,19 @@ React is all about modular, composable components. For our comment box example, - CommentForm ``` -Let's build the `CommentBox` component, which is just a simple `
`. Add this code to `Tutorial.jsx`: +Let's build the `CommentBox` component, which just displays a simple `
`. Add this code to `Tutorial.jsx`: ```javascript -var CommentBox = React.createClass({ - render: function() { +class CommentBox extends React.Component { + render() { return (
Hello, world! I am a CommentBox.
); } -}); +} + ReactDOM.render( , document.getElementById('content') @@ -133,17 +135,18 @@ var CommentBox = React.createClass({displayName: 'CommentBox', ); } }); + ReactDOM.render( React.createElement(CommentBox, null), document.getElementById('content') ); ``` -Its use is optional but we've found JSX syntax easier to use than plain JavaScript. Read more on the [JSX Syntax article](http://facebook.github.io/react/docs/jsx-in-depth.html). +Its use is optional but we've found JSX syntax easier to use than plain JavaScript. Read more in React's ["JSX In Depth"](https://reactjs.org/docs/jsx-in-depth.html) article. #### What's going on -We pass some methods in a JavaScript object to `React.createClass()` to create a new React component. The most important of these methods is called `render` which returns a tree of React components that will eventually render to HTML. +We are defining a new JavaScript class that extends from the React.Component class. In our class, we will define some properties and some methods to build from what React.Component already gives us. The most important of these methods is called `render` which returns a tree of React components that will eventually render to HTML. The `
` tags are not actual DOM nodes; they are instantiations of React `div` components. You can think of these as markers or pieces of data that React knows how to handle. React is **safe**. We are not generating HTML strings so XSS protection is the default. @@ -151,38 +154,39 @@ You do not have to return basic HTML. You can return a tree of components that y `ReactDOM.render()` instantiates the root component, starts the framework, and injects the markup into a raw DOM element, provided as the second argument. -The `ReactDOM` module exposes DOM-specific methods, while `React` has the core tools shared by React on different platforms (e.g., [React Native](http://facebook.github.io/react-native/)). +The `ReactDOM` module exposes DOM-specific methods, while `React` has the core tools shared by React on different platforms (e.g., [React Native](https://facebook.github.io/react-native/)). + ## Composing components Let's build skeletons for `CommentList` and `CommentForm` which will, again, be simple `
`s. Add these two components to your file, keeping the existing `CommentBox` declaration and `ReactDOM.render` call: ```javascript -var CommentList = React.createClass({ - render: function() { +class CommentList extends React.Component { + render() { return (
Hello, world! I am a CommentList.
); } -}); +} -var CommentForm = React.createClass({ - render: function() { +class CommentForm extends React.Component { + render() { return (
Hello, world! I am a CommentForm.
); } -}); +} ``` Next, update the `CommentBox` component to use these new components: ```javascript{5-7} -var CommentBox = React.createClass({ - render: function() { +class CommentBox extends React.Component { + render() { return (

Comments

@@ -191,18 +195,18 @@ var CommentBox = React.createClass({
); } -}); +} ``` -Notice how we're mixing HTML tags and components we've built. HTML components are regular React components, just like the ones you define, with one difference. The JSX compiler will automatically rewrite HTML tags to `React.createElement(tagName)` expressions and leave everything else alone. This is to prevent the pollution of the global namespace. +Notice how we're mixing HTML tags and components we've built. HTML tags are React components just like the ones you define, but they have one difference. The JSX compiler will automatically rewrite HTML tags to `React.createElement(tagName)` expressions and leave everything else alone. This is to prevent the pollution of the global namespace. ### Using props Let's create the `Comment` component, which will depend on data passed in from our `CommentList` component. Data passed in from the `CommentList` component is available as a 'property' on our `Comment` component. These 'properties' are accessed through `this.props`. Using props, we will be able to read the data passed to the `Comment` from the `CommentList`, and render some markup: ```javascript -var Comment = React.createClass({ - render: function() { +class Comment extends React.Component { + render() { return (

@@ -212,18 +216,18 @@ var Comment = React.createClass({

); } -}); +} ``` -By surrounding a JavaScript expression in braces inside JSX (as either an attribute or child), you can drop text or React components into the tree. We access named attributes passed to the component as keys on `this.props` and any nested elements as `this.props.children`. +By surrounding a JavaScript expression with braces inside JSX (as either an attribute or child), you can drop text or React components into the tree. We access named attributes passed to the component as keys on `this.props` and any nested elements as `this.props.children`. ### Component Properties Now that we have defined the `Comment` component, we will want to pass it the author name and comment text. This allows us to reuse the same code for each unique comment. Now let's add some comments within our `CommentList`: ```javascript{5-7} -var CommentList = React.createClass({ - render: function() { +class CommentList extends React.Component { + render() { return (
Hello ReactJS.NET World! @@ -232,7 +236,7 @@ var CommentList = React.createClass({
); } -}); +} ``` Note that we have passed some data from the parent `CommentList` component to the child `Comment` components. For example, we passed *Daniel Lo Nigro* (via the `author` attribute) and *Hello ReactJS.NET World* (via an XML-like child node) to the first `Comment`. As noted above, the `Comment` component will access these 'properties' through `this.props.author`, and `this.props.children`. @@ -241,12 +245,12 @@ Note that we have passed some data from the parent `CommentList` component to th Markdown is a simple way to format your text inline. For example, surrounding text with asterisks will make it emphasized. -In this tutorial we use a third-party library **remarkable** which takes Markdown text and converts it to raw HTML. We already included this library with the original markup for the page, so we can just start using it. Let's convert the comment text to Markdown and output it: +In this tutorial we use a third-party library called [remarkable](https://github.com/jonschlinkert/remarkable) which takes Markdown text and converts it to raw HTML. We already included this library with the original markup for the page, so we can just start using it. Let's convert the comment text to Markdown and output it: ```javascript{3,9} -var Comment = React.createClass({ - render: function() { - var md = new Remarkable(); +class Comment extends React.Component { + render() { + const md = new Remarkable(); return (

@@ -256,7 +260,7 @@ var Comment = React.createClass({

); } -}); +} ``` All we're doing here is calling the remarkable library. We need to convert `this.props.children` from React's wrapped text to a raw string that remarkable will understand so we explicitly call `toString()`. @@ -265,15 +269,14 @@ But there's a problem! Our rendered comments look like this in the browser: "`

@@ -283,7 +286,7 @@ var Comment = React.createClass({

); } -}); +} ``` This is a special API that intentionally makes it difficult to insert raw HTML, but for remarkable we'll take advantage of this backdoor. @@ -295,7 +298,7 @@ This is a special API that intentionally makes it difficult to insert raw HTML, So far we've been inserting the comments directly in the source code. Instead, let's render a blob of JSON data into the comment list. Eventually this will come from the server, but for now, write it in your source: ```javascript -var data = [ +const data = [ { Id: 1, Author: "Daniel Lo Nigro", Text: "Hello ReactJS.NET World!" }, { Id: 2, Author: "Pete Hunt", Text: "This is one comment" }, { Id: 3, Author: "Jordan Walke", Text: "This is *another* comment" } @@ -305,8 +308,8 @@ var data = [ We need to get this data into `CommentList` in a modular way. Modify `CommentBox` and the `ReactDOM.render()` call to pass this data into the `CommentList` via props: ```javascript{6,14} -var CommentBox = React.createClass({ - render: function() { +class CommentBox extends React.Component { + render() { return (

Comments

@@ -315,7 +318,7 @@ var CommentBox = React.createClass({
); } -}); +} ReactDOM.render( , @@ -325,23 +328,21 @@ ReactDOM.render( Now that the data is available in the `CommentList`, let's render the comments dynamically: -```javascript{3-9,12} -var CommentList = React.createClass({ - render: function() { - var commentNodes = this.props.data.map(function(comment) { - return ( - - {comment.Text} - - ); - }); +```javascript{3-7,10} +class CommentList extends React.Component { + render() { + const commentNodes = this.props.data.map(comment => ( + + {comment.Text} + + )); return (
{commentNodes}
); } -}); +} ``` That's it! @@ -465,24 +466,25 @@ ReactDOM.render( ); ``` -Note that in a real app, you should generate the URL server-side (via `Url.Action` call) and pass it down, or use [RouteJs](http://dan.cx/projects/routejs) rather than hard-coding it. This tutorial hard-codes it for simplicity. +Note that in a real app, you should generate the URL server-side (via `Url.Action` call) and pass it down, or use [RouteJs](https://github.com/Daniel15/RouteJs) rather than hard-coding it. This tutorial hard-codes it for simplicity. This component is different from the prior components because it will have to re-render itself. The component won't have any data until the request from the server comes back, at which point the component may need to render some new comments. ### Reactive state -So far, based on its props, each component has rendered itself once. `props` are immutable: they are passed from the parent and are "owned" by the parent. To implement interactions, we introduce mutable **state** to the component. `this.state` is private to the component and can be changed by calling `this.setState()`. When the state updates, the component re-renders itself. +So far, based on its props, each component has rendered itself once. `props` are immutable: they are passed from the parent and are "owned" by the parent. To implement interactions, we introduce mutable **state** to the component. `this.state` is private to the component and can be changed by calling `this.setState()` and passing an object that represents changes in state. When the state updates, the component re-renders itself. `render()` methods are written declaratively as functions of `this.props` and `this.state`. The framework guarantees the UI is always consistent with the inputs. When the server fetches data, we will be changing the comment data we have. Let's add an array of comment data to the `CommentBox` component as its state: -```javascript{2-4,9} -var CommentBox = React.createClass({ - getInitialState: function() { - return {data: []}; - }, - render: function() { +```javascript{2-5,10} +class CommentBox extends React.Component { + constructor(props) { + super(props); + this.state = {data: []}; + } + render() { return (

Comments

@@ -491,29 +493,31 @@ var CommentBox = React.createClass({
); } -}); +} ``` -`getInitialState()` executes exactly once during the lifecycle of the component and sets up the initial state of the component. +The `constructor()` executes exactly once during the lifecycle of the component and sets up the initial state of the component. Remember to call the super class (the class we're extending, React.Component) via `super(props)` before using the `this` keyword. #### Updating state + When the component is first created, we want to GET some JSON from the server and update the state to reflect the latest data. We'll use the standard XMLHttpRequest API to retrieve the data. If you need support for old browsers (mainly old Internet Explorer), you can use an AJAX library or a multipurpose library such as jQuery. `componentWillMount()` executes immediately and only once before the rendering occurs. In the following example, `componentWillMount()` loads the data from our XMLHttpRequest and assigns it to the `data` variable. Finally, it sets the `data` variable in state, using `setState()`. -```javascript{6-12} -var CommentBox = React.createClass({ - getInitialState: function() { - return {data: []}; - }, - componentWillMount: function() { - var xhr = new XMLHttpRequest(); +```javascript{6-14} +class CommentBox extends React.Component { + constructor(props) { + super(props); + this.state = {data: []}; + } + componentWillMount() { + const xhr = new XMLHttpRequest(); xhr.open('get', this.props.url, true); - xhr.onload = function() { - var data = JSON.parse(xhr.responseText); + xhr.onload = () => { + const data = JSON.parse(xhr.responseText); this.setState({ data: data }); - }.bind(this); + }; xhr.send(); - }, - render: function() { + } + render() { return (

Comments

@@ -522,30 +526,33 @@ var CommentBox = React.createClass({
); } -}); +} ``` -Here, `componentDidMount()` is a method called automatically by React *after* a component is rendered for the first time. So, by moving the XMLHttpRequest call from `componentWillMount()`, which is executed only once *before* rendering, to a function called `loadCommentsFromServer()`, we can then call it multiple times from `componentDidMount()` at a set interval to check for any updates to the comments. The key to dynamic updates is the call to `this.setState()`. We replace the old array of comments with the new one from the server and the UI automatically updates itself. Because of this reactivity, it is only a minor change to add live updates. We will use simple polling here but you could easily use [SignalR](http://signalr.net/) or other technologies. +Below, we're using `componentDidMount()`, a method called automatically by React *after* a component is rendered for the first time. By moving the XMLHttpRequest call from `componentWillMount()`, which is executed only once *before* rendering, to a function called `loadCommentsFromServer()`, we can then call it multiple times from `componentDidMount()` at a set interval to check for any updates to the comments. + +The key to these dynamic updates is the call to `this.setState()`. We replace the old array of comments with the new one from the server and the UI automatically updates itself. Because of this reactivity, it is only a minor change to add live updates. We will use simple polling here but you could easily use [SignalR](http://signalr.net/) or other technologies. -```javascript{2,15-16,30} -var CommentBox = React.createClass({ - loadCommentsFromServer: function() { - var xhr = new XMLHttpRequest(); +```javascript{6,15-18,31} +class CommentBox extends React.Component { + constructor(props) { + super(props); + this.state = { data: [] }; + } + loadCommentsFromServer() { + const xhr = new XMLHttpRequest(); xhr.open('get', this.props.url, true); - xhr.onload = function() { - var data = JSON.parse(xhr.responseText); + xhr.onload = () => { + const data = JSON.parse(xhr.responseText); this.setState({ data: data }); - }.bind(this); + }; xhr.send(); - }, - getInitialState: function() { - return {data: []}; - }, - componentDidMount: function() { + } + componentDidMount() { this.loadCommentsFromServer(); - window.setInterval(this.loadCommentsFromServer, this.props.pollInterval); - }, - render: function() { + window.setInterval(() => this.loadCommentsFromServer(), this.props.pollInterval); + } + render() { return (

Comments

@@ -554,7 +561,7 @@ var CommentBox = React.createClass({
); } -}); +} ReactDOM.render( , @@ -578,6 +585,7 @@ public ActionResult AddComment(CommentModel comment) return Content("Success :)"); } ``` + Let's also add it to the `App_Start\RouteConfig.cs` file, like we did earlier for the comments list: ```csharp @@ -594,8 +602,8 @@ routes.MapRoute( Now it's time to build the form. Our `CommentForm` component should ask the user for their name and comment text and send a request to the server to save the comment. ```javascript{4-8} -var CommentForm = React.createClass({ - render: function() { +class CommentForm extends React.Component { + render() { return (
@@ -604,27 +612,30 @@ var CommentForm = React.createClass({
); } -}); +} ``` #### Controlled components With the traditional DOM, `input` elements are rendered and the browser manages the state (its rendered value). As a result, the state of the actual DOM will differ from that of the component. This is not ideal as the state of the view will differ from that of the component. In React, components should always represent the state of the view and not only at the point of initialization. -Hence, we will be using `this.state` to save the user's input as it is entered. We define an initial `state` with two properties `author` and `text` and set them to be empty strings. In our `` elements, we set the `value` prop to reflect the `state` of the component and attach `onChange` handlers to them. These `` elements with a `value` set are called controlled components. Read more about controlled components on the [Forms article](http://facebook.github.io/react/docs/forms.html#controlled-components). +Hence, we will be using `this.state` to save the user's input as it is entered. We define an initial `state` with two properties `author` and `text` and set them to be empty strings. In our `` elements, we set the `value` prop to reflect the `state` of the component and attach `onChange` handlers to them. These `` elements with a `value` set are called controlled components. Read more about controlled components on the [Forms article](https://reactjs.org/docs/forms.html#controlled-components). -```javascript{2-10,14-25} -var CommentForm = React.createClass({ - getInitialState: function() { - return {author: '', text: ''}; - }, - handleAuthorChange: function(e) { +```javascript{2-13,16-28} +class CommentForm extends React.Component { + constructor(props) { + super(props); + this.state = {author: '', text: ''}; + this.handleAuthorChange = this.handleAuthorChange.bind(this); + this.handleTextChange = this.handleTextChange.bind(this); + } + handleAuthorChange(e) { this.setState({author: e.target.value}); - }, - handleTextChange: function(e) { + } + handleTextChange(e) { this.setState({text: e.target.value}); - }, - render: function() { + } + render() { return (
); } -}); +} ``` #### Events React attaches event handlers to components using a camelCase naming convention. We attach `onChange` handlers to the two `` elements. Now, as the user enters text into the `` fields, the attached `onChange` callbacks are fired and the `state` of the component is modified. Subsequently, the rendered value of the `input` element will be updated to reflect the current component `state`. -(The astute reader may be surprised that these event handlers work as described, given that the method references are not explicitly bound to `this`. `React.createClass(...)` [automatically binds](/react/docs/interactivity-and-dynamic-uis.html#under-the-hood-autobinding-and-event-delegation) each method to its component instance, obviating the need for explicit binding.) +You'll notice that we are explicitly binding our event handlers to `this` in the constructor. While older techniques, like `React.createClass(...)`, featured automatic binding, we are using ES6 classes to define our components. React components declared as ES6 classes don't automatically bind `this` to the instance, so we have to explicitly use `.bind(this)`. #### Submitting the form Let's make the form interactive. When the user submits the form, we should clear it, submit a request to the server, and refresh the list of comments. To start, let's listen for the form's submit event and clear it. -```javascript{2-13,16-18,23} -var CommentForm = React.createClass({ - getInitialState: function() { - return {author: '', text: ''}; - }, - handleAuthorChange: function(e) { +```javascript{7,15-24,27} +class CommentForm extends React.Component { + constructor(props) { + super(props); + this.state = {author: '', text: ''}; + this.handleAuthorChange = this.handleAuthorChange.bind(this); + this.handleTextChange = this.handleTextChange.bind(this); + this.handleSubmit = this.handleSubmit.bind(this); + } + handleAuthorChange(e) { this.setState({author: e.target.value}); - }, - handleTextChange: function(e) { + } + handleTextChange(e) { this.setState({text: e.target.value}); - }, - handleSubmit: function(e) { + } + handleSubmit(e) { e.preventDefault(); - var author = this.state.author.trim(); - var text = this.state.text.trim(); + const author = this.state.author.trim(); + const text = this.state.text.trim(); if (!text || !author) { return; } // TODO: send request to the server - this.setState({author: '', text: ''}); - }, - render: function() { + this.setState({ author: '', text: '' }); + } + render() { return ( ); } -}); +} ``` -We attach an `onSubmit` handler to the form that clears the form fields when the form is submitted with valid input. - -Call `preventDefault()` on the event to prevent the browser's default action of submitting the form. +We attach an `onSubmit` handler to the form that clears the form fields when the form is submitted with valid input. We call `preventDefault()` on the event to prevent the browser's default action of submitting the form. #### Callbacks as props @@ -709,28 +722,30 @@ When a user submits a comment, we will need to refresh the list of comments to i We need to pass data from the child component back up to its parent. We do this in our parent's `render` method by passing a new callback (`handleCommentSubmit`) into the child, binding it to the child's `onCommentSubmit` event. Whenever the event is triggered, the callback will be invoked: -```javascript{11-13,26} -var CommentBox = React.createClass({ - loadCommentsFromServer: function() { - var xhr = new XMLHttpRequest(); +```javascript{5,16-18,28} +class CommentBox extends React.Component { + constructor(props) { + super(props); + this.state = { data: [] }; + this.handleCommentSubmit = this.handleCommentSubmit.bind(this); + } + loadCommentsFromServer() { + const xhr = new XMLHttpRequest(); xhr.open('get', this.props.url, true); - xhr.onload = function() { - var data = JSON.parse(xhr.responseText); + xhr.onload = () => { + const data = JSON.parse(xhr.responseText); this.setState({ data: data }); - }.bind(this); + }; xhr.send(); - }, - handleCommentSubmit: function(comment) { + } + handleCommentSubmit(comment) { // TODO: submit to the server and refresh the list - }, - getInitialState: function() { - return {data: []}; - }, - componentDidMount: function() { + } + componentDidMount() { this.loadCommentsFromServer(); - window.setInterval(this.loadCommentsFromServer, this.props.pollInterval); - }, - render: function() { + window.setInterval(() => this.loadCommentsFromServer(), this.props.pollInterval); + } + render() { return (

Comments

@@ -739,33 +754,37 @@ var CommentBox = React.createClass({
); } -}); +} ``` Now that `CommentBox` has made the callback available to `CommentForm` via the `onCommentSubmit` prop, the `CommentForm` can call the callback when the user submits the form: -```javascript{18} -var CommentForm = React.createClass({ - getInitialState: function() { - return {author: '', text: ''}; - }, - handleAuthorChange: function(e) { +```javascript{22} +class CommentForm extends React.Component { + constructor(props) { + super(props); + this.state = {author: '', text: ''}; + this.handleAuthorChange = this.handleAuthorChange.bind(this); + this.handleTextChange = this.handleTextChange.bind(this); + this.handleSubmit = this.handleSubmit.bind(this); + } + handleAuthorChange(e) { this.setState({author: e.target.value}); - }, - handleTextChange: function(e) { + } + handleTextChange(e) { this.setState({text: e.target.value}); - }, - handleSubmit: function(e) { + } + handleSubmit(e) { e.preventDefault(); - var author = this.state.author.trim(); - var text = this.state.text.trim(); + const author = this.state.author.trim(); + const text = this.state.text.trim(); if (!text || !author) { return; } this.props.onCommentSubmit({Author: author, Text: text}); - this.setState({author: '', text: ''}); - }, - render: function() { + this.setState({ author: '', text: '' }); + } + render() { return ( ); } -}); +} ``` Now that the callbacks are in place, all we have to do is submit to the server and refresh the list: -```javascript{12-21,42} -var CommentBox = React.createClass({ - loadCommentsFromServer: function() { - var xhr = new XMLHttpRequest(); +```javascript{16-25,42} +class CommentBox extends React.Component { + constructor(props) { + super(props); + this.state = { data: [] }; + this.handleCommentSubmit = this.handleCommentSubmit.bind(this); + } + loadCommentsFromServer() { + const xhr = new XMLHttpRequest(); xhr.open('get', this.props.url, true); - xhr.onload = function() { - var data = JSON.parse(xhr.responseText); + xhr.onload = () => { + const data = JSON.parse(xhr.responseText); this.setState({ data: data }); - }.bind(this); + }; xhr.send(); - }, - handleCommentSubmit: function(comment) { - var data = new FormData(); + } + handleCommentSubmit(comment) { + const data = new FormData(); data.append('Author', comment.Author); data.append('Text', comment.Text); - var xhr = new XMLHttpRequest(); + const xhr = new XMLHttpRequest(); xhr.open('post', this.props.submitUrl, true); - xhr.onload = function() { - this.loadCommentsFromServer(); - }.bind(this); + xhr.onload = () => this.loadCommentsFromServer(); xhr.send(data); - }, - getInitialState: function() { - return {data: []}; - }, - componentDidMount: function() { + } + componentDidMount() { this.loadCommentsFromServer(); - window.setInterval(this.loadCommentsFromServer, this.props.pollInterval); - }, - render: function() { + window.setInterval(() => this.loadCommentsFromServer(), this.props.pollInterval); + } + render() { return (

Comments

@@ -828,7 +847,7 @@ var CommentBox = React.createClass({
); } -}); +} ReactDOM.render( , @@ -838,9 +857,9 @@ ReactDOM.render( ## Congrats! -You have just built a comment box in a few simple steps. The below tweaks are not absolutely necessary, but they will improve the performance and polish of your application, so we suggest reading through them :) +You have just built a comment box in a few simple steps. The below tweaks are not absolutely necessary, but they will improve the performance and polish of your application, so we suggest reading through them. :) -We hope you have enjoyed learning about React, and how ReactJS.NET allows you to easily use it from an ASP.NET MVC web application. Learn more about [why to use React](http://facebook.github.io/react/docs/why-react.html) and how to [think about React components](http://facebook.github.io/react/docs/thinking-in-react.html), or dive into the [API reference](http://facebook.github.io/react/docs/top-level-api.html) and start hacking! +We hope you have enjoyed learning about React and how ReactJS.NET allows you to easily use it from an ASP.NET MVC web application. Learn more about [React from the project homepage](https://reactjs.org/) and how to [think about React components](https://reactjs.org/docs/thinking-in-react.html), or dive into the [API reference](https://reactjs.org/docs/react-api.html) and start hacking! Continue on for more awesomeness! @@ -848,45 +867,45 @@ Continue on for more awesomeness! Our application is now feature complete but it feels slow to have to wait for the request to complete before your comment appears in the list. We can optimistically add this comment to the list to make the app feel faster. -```javascript{12-18} -var CommentBox = React.createClass({ - loadCommentsFromServer: function() { - var xhr = new XMLHttpRequest(); +```javascript{17-23} +class CommentBox extends React.Component { + constructor(props) { + super(props); + this.state = { data: [] }; + this.handleCommentSubmit = this.handleCommentSubmit.bind(this); + } + loadCommentsFromServer() { + const xhr = new XMLHttpRequest(); xhr.open('get', this.props.url, true); - xhr.onload = function() { - var data = JSON.parse(xhr.responseText); + xhr.onload = () => { + const data = JSON.parse(xhr.responseText); this.setState({ data: data }); - }.bind(this); + }; xhr.send(); - }, - handleCommentSubmit: function(comment) { - var comments = this.state.data; + } + handleCommentSubmit(comment) { + const comments = this.state.data; // Optimistically set an id on the new comment. It will be replaced by an // id generated by the server. In a production application you would likely - // not use Date.now() for this and would have a more robust system in place. - comment.id = Date.now(); - var newComments = comments.concat([comment]); + // use a more robust system for ID generation. + comment.Id = comments.length + 1; + const newComments = comments.concat([comment]); this.setState({data: newComments}); - - var data = new FormData(); + + const data = new FormData(); data.append('Author', comment.Author); data.append('Text', comment.Text); - var xhr = new XMLHttpRequest(); + const xhr = new XMLHttpRequest(); xhr.open('post', this.props.submitUrl, true); - xhr.onload = function() { - this.loadCommentsFromServer(); - }.bind(this); + xhr.onload = () => this.loadCommentsFromServer(); xhr.send(data); - }, - getInitialState: function() { - return {data: []}; - }, - componentDidMount: function() { + } + componentDidMount() { this.loadCommentsFromServer(); - window.setInterval(this.loadCommentsFromServer, this.props.pollInterval); - }, - render: function() { + window.setInterval(() => this.loadCommentsFromServer(), this.props.pollInterval); + } + render() { return (

Comments

@@ -895,11 +914,12 @@ var CommentBox = React.createClass({
); } -}); +} ``` ## Optimization: Bundling and minification -Bundling refers to the practice of combining multiple JavaScript files into a single large file to reduce the number of HTTP requests to load a page. Minification refers to the removal of comments and unnecessary whitespace from JavaScript files to make them smaller. Together, bundling and minification can help to significantly improve the performance of your website. ReactJS.NET supports ASP.NET Bundling and Minification to achieve this. You can refer to [Microsoft's official documentation](http://www.asp.net/mvc/tutorials/mvc-4/bundling-and-minification) for more information on ASP.NET Bundling and Minification. This tutorial will just cover the basics. + +Bundling refers to the practice of combining multiple JavaScript files into a single large file to reduce the number of HTTP requests to load a page. Minification refers to the removal of comments and unnecessary whitespace from JavaScript files to make them smaller. Together, bundling and minification can help to significantly improve the performance of your website. ReactJS.NET supports ASP.NET Bundling and Minification to achieve this. You can refer to [Microsoft's official documentation on Bundling and Minification](https://docs.microsoft.com/en-us/aspnet/mvc/overview/performance/bundling-and-minification). This tutorial will just cover the basics. To get started, install the "System.Web.Optimization.React" NuGet package. This will automatically install the ASP.NET Bundling and Minification package along with all its dependencies. @@ -934,18 +954,18 @@ Now that the bundle has been registered, we need to reference it from the view: ```html{13} @model IEnumerable @{ - Layout = null; + Layout = null; } - Hello React + Hello React -
- - - @Scripts.Render("~/bundles/main") - @Html.ReactInitJavaScript() +
+ + + @Scripts.Render("~/bundles/main") + @Html.ReactInitJavaScript() ``` @@ -961,44 +981,45 @@ If you go to this URL in your browser, you should notice that the code has been ## Optimization: Server-side rendering -Server-side rendering means that your application initially renders the components on the server-side, rather than fetching data from the server and rendering using JavaScript. This enhances the performance of your application since the user will see the initial state immediately. +Server-side rendering means that your application initially renders the components on the server-side, rather than fetching data from the server and rendering using the client. Server-side rendering enhances the performance of your application since the user will see the initial state immediately. We need to make some modifications to `CommentBox` to support server-side rendering. Firstly, we need to accept an `initialData` prop, which will be used to set the initial state of the component, rather than doing an AJAX request. We also need to remove the `loadCommentsFromServer` call from `componentDidMount`, since it is no longer required. Also, we need to remove the `ReactDOM.render` call from the JSX file, as server-side rendering automatically outputs the correct `ReactDOM.render` call for you. -```javascript{28} -var CommentBox = React.createClass({ - loadCommentsFromServer: function() { - var xhr = new XMLHttpRequest(); +```javascript{4,31-33} +class CommentBox extends React.Component { + constructor(props) { + super(props); + this.state = { data: this.props.initialData }; + this.handleCommentSubmit = this.handleCommentSubmit.bind(this); + } + loadCommentsFromServer() { + const xhr = new XMLHttpRequest(); xhr.open('get', this.props.url, true); - xhr.onload = function() { - var data = JSON.parse(xhr.responseText); + xhr.onload = () => { + const data = JSON.parse(xhr.responseText); this.setState({ data: data }); - }.bind(this); + }; xhr.send(); - }, - handleCommentSubmit: function(comment) { - var comments = this.state.data; - var newComments = comments.concat([comment]); + } + handleCommentSubmit(comment) { + const comments = this.state.data; + comment.Id = comments.length + 1; + const newComments = comments.concat([comment]); this.setState({data: newComments}); - - var data = new FormData(); + + const data = new FormData(); data.append('Author', comment.Author); data.append('Text', comment.Text); - var xhr = new XMLHttpRequest(); + const xhr = new XMLHttpRequest(); xhr.open('post', this.props.submitUrl, true); - xhr.onload = function() { - this.loadCommentsFromServer(); - }.bind(this); + xhr.onload = () => this.loadCommentsFromServer(); xhr.send(data); - }, - getInitialState: function() { - return { data: this.props.initialData }; - }, - componentDidMount: function() { - window.setInterval(this.loadCommentsFromServer, this.props.pollInterval); - }, - render: function() { + } + componentDidMount() { + window.setInterval(() => this.loadCommentsFromServer(), this.props.pollInterval); + } + render() { return (

Comments

@@ -1007,17 +1028,29 @@ var CommentBox = React.createClass({
); } -}); +} ``` We also need to update the `Comment` component to use `Remarkable` from either `global` or `window`, due to a bug in Remarkable: + ```javascript{3} -var Comment = React.createClass({ - rawMarkup: function () { - var md = new (global.Remarkable || window.Remarkable)(); - var rawMarkup = md.render(this.props.children.toString()); - return { __html: rawMarkup }; - }, +class Comment extends React.Component { + rawMarkup() { + const md = new (global.Remarkable || window.Remarkable)(); + const rawMarkup = md.render(this.props.children.toString()); + return { __html: rawMarkup }; + } + render() { + return ( +
+

+ {this.props.author} +

+ +
+ ); + } +} ``` In the view, we will accept the list of comments as the model, and use `Html.React` to render the component. This will replace the `ReactDOM.render` call that currently exists in Tutorial.jsx. All the props from the current `ReactDOM.render` call should be moved here, and the `ReactDOM.render` call should be deleted. @@ -1025,25 +1058,25 @@ In the view, we will accept the list of comments as the model, and use `Html.Rea ```html{1,10-16,21} @model IEnumerable @{ - Layout = null; + Layout = null; } - Hello React + Hello React - @Html.React("CommentBox", new - { - initialData = Model, - url = Url.Action("Comments"), - submitUrl = Url.Action("AddComment"), - pollInterval = 2000, - }) - - - - - @Html.ReactInitJavaScript() + @Html.React("CommentBox", new + { + initialData = Model, + url = Url.Action("Comments"), + submitUrl = Url.Action("AddComment"), + pollInterval = 2000 + }) + + + + + @Html.ReactInitJavaScript() ``` @@ -1088,14 +1121,22 @@ That's it! Now if you build and refresh your application, you should notice that Hello React -
-
-

Comments

-
-
-

Daniel Lo Nigro

-

Hello ReactJS.NET World!

+
+
+

Comments

+
+
+

Daniel Lo Nigro

+ Hello ReactJS.NET World!
+ +``` + +How is this magic possible? Well, React was built with server-side rendering in mind, so adding that capability to React.NET wasn't as magical as you'd think. React exposes [the ReactDOMServer object](https://reactjs.org/docs/react-dom-server.html) which enables a JavaScript engine to render a React component into static markup. From there, it's possible to "hydrate" that static markup in the client and make reactivity possible again. If you view the source of your page again, you will see a reference to `ReactDOM.hydrate()` where our `@Html.ReactInitJavaScript()` call is: - +```html + + ``` + +**Note**, this hand-off between server and client means that you should ensure the version of React included in the browser is the same as in the NuGet package. If not, you may find yourself battling confusing errors or witnessing strange behavior. Check the [React.Web.Mvc4](https://www.nuget.org/packages/React.Web.Mvc4) and [React.Core](https://www.nuget.org/packages/React.Core/) packages for details. From 9a7fc2d6020ce8c81692461b1669b4d789d40062 Mon Sep 17 00:00:00 2001 From: Miles Rausch Date: Wed, 23 May 2018 20:51:49 -0500 Subject: [PATCH 020/530] Add detail about alternate ways of handling events (#544) --- site/jekyll/getting-started/tutorial_aspnet4.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/site/jekyll/getting-started/tutorial_aspnet4.md b/site/jekyll/getting-started/tutorial_aspnet4.md index 4496bed2f..d83946150 100644 --- a/site/jekyll/getting-started/tutorial_aspnet4.md +++ b/site/jekyll/getting-started/tutorial_aspnet4.md @@ -663,6 +663,8 @@ React attaches event handlers to components using a camelCase naming convention. You'll notice that we are explicitly binding our event handlers to `this` in the constructor. While older techniques, like `React.createClass(...)`, featured automatic binding, we are using ES6 classes to define our components. React components declared as ES6 classes don't automatically bind `this` to the instance, so we have to explicitly use `.bind(this)`. +For components with many event handlers, this explicit binding approach can get tedious. It's also easy to forget to declare your bindings which can cause some baffling bugs. React does offer two other techniques for ensuring your event handlers are bound properly to your component. Check out the [Handling Events](https://reactjs.org/docs/handling-events.html) documentation on the React website for more information. + #### Submitting the form Let's make the form interactive. When the user submits the form, we should clear it, submit a request to the server, and refresh the list of comments. To start, let's listen for the form's submit event and clear it. From c7c0058d514ac59ade294fa888955df7a17be2d3 Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Sun, 10 Jun 2018 14:50:35 -0700 Subject: [PATCH 021/530] Add ChakraCore documentation (#547) * Add ChakraCore documentation * Update sample projects to run on OS X and Linux * Add ChakraCore link from readme * Update quick start in readme * Use MsDependencyInjection package --- README.md | 12 +-- site/jekyll/getting-started/aspnetcore.md | 2 + site/jekyll/guides/chakracore.md | 36 ++++++++ .../React.Sample.CoreMvc.csproj | 25 ++---- src/React.Sample.CoreMvc/Startup.cs | 5 ++ .../React.Sample.Router.CoreMvc.csproj | 5 ++ src/React.Sample.Router.CoreMvc/Startup.cs | 8 +- tutorial-code/Startup.cs | 85 ++++++++++--------- tutorial-code/tutorial-code.csproj | 11 +-- 9 files changed, 118 insertions(+), 71 deletions(-) create mode 100644 site/jekyll/guides/chakracore.md diff --git a/README.md b/README.md index 0576e909b..312520d4a 100644 --- a/README.md +++ b/README.md @@ -18,27 +18,27 @@ Features * [MSBuild](http://reactjs.net/guides/msbuild.html) * [Server-side component rendering](http://reactjs.net/guides/server-side-rendering.html) to make your initial render super-fast (experimental!) - * [Runs on Linux](http://reactjs.net/guides/mono.html) via Mono and V8 - * Supports both ASP.NET 4.0/4.5 and ASP.NET Core 1.0 + * [Runs on Windows, OS X and Linux](http://reactjs.net/guides/chakracore.html) via .NET Core and ChakraCore + * Supports both ASP.NET 4.0/4.5 and ASP.NET Core Quick Start =========== Install the package ``` Install-Package React.Web.Mvc4 # For ASP.NET MVC 4 or 5 -Install-Package React.AspNet   # For ASP.NET Core MVC 1.0 +Install-Package React.AspNet   # For ASP.NET Core MVC ``` Create JSX files ```javascript // /Scripts/HelloWorld.jsx -var HelloWorld = React.createClass({ - render: function () { +class HelloWorld extends React.Component { + render() { return (
Hello {this.props.name}
); } -}); +}; ``` Reference the JSX files from your HTML diff --git a/site/jekyll/getting-started/aspnetcore.md b/site/jekyll/getting-started/aspnetcore.md index 7981cfe45..57ec63f6f 100644 --- a/site/jekyll/getting-started/aspnetcore.md +++ b/site/jekyll/getting-started/aspnetcore.md @@ -67,3 +67,5 @@ Finally, add this to `Views\_ViewImports.cshtml` (or create it if it doesn't exi ``` Once ReactJS.NET has been configured, you will be able to use [on-the-fly JSX to JavaScript compilation](/getting-started/usage.html) and [server-side rendering](/guides/server-side-rendering.html). + +If you need support for non-Windows platforms, please see the [ChakraCore guide](/guides/chakracore.html). diff --git a/site/jekyll/guides/chakracore.md b/site/jekyll/guides/chakracore.md new file mode 100644 index 000000000..46cc6a128 --- /dev/null +++ b/site/jekyll/guides/chakracore.md @@ -0,0 +1,36 @@ +--- +layout: docs +title: OS X/Linux (.NET Core and ChakraCore) +--- + +ReactJS.NET supports running on non-Windows platforms via both Mono and .NET Core. This guide focuses on OS X / Linux support via the ChakraCore engine and .NET Core, which uses precompiled binaries. To use the full .NET framework with Mono, please see the [Mono guide](/guides/mono.html). + +Add `React.AspNet` as a dependency to your .NET Core project. Check out the [sample project](https://github.com/reactjs/React.NET/tree/master/src/React.Sample.CoreMvc) or the [documentation](https://reactjs.net/getting-started/aspnetcore.html) if you need more details on that. + +Next, install the `JavascriptEngineSwitcher.ChakraCore` and `JavaScriptEngineSwitcher.Extensions.MsDependencyInjection` NuGet packages. Depending on the platform(s) you want to support, also install one or more of these NuGet packages: + +- Windows: `JavaScriptEngineSwitcher.ChakraCore.Native.win-x64`. The VC++ 2017 runtime is also required. +- OS X: ``JavaScriptEngineSwitcher.ChakraCore.Native.osx-x64` +- Linux x64: ``JavaScriptEngineSwitcher.ChakraCore.Native.linux-x64` + +In `Startup.cs`, set ChakraCore as the default Javascript engine. + +```csharp +using JavaScriptEngineSwitcher.ChakraCore; +using JavaScriptEngineSwitcher.Extensions.MsDependencyInjection; + +public void ConfigureServices(IServiceCollection services) +{ + services.AddJsEngineSwitcher(options => options.DefaultEngineName = ChakraCoreJsEngine.EngineName) + .AddChakraCore(); + + // existing services below: + services.AddSingleton(); + services.AddReact(); + services.AddMvc(); +} +``` + +You're done! Server-side rendering and JSX compilation should now be working properly. + +For more information about registering Javascript engines, check out the [JavascriptEngineSwitcher documentation](https://github.com/Taritsyn/JavaScriptEngineSwitcher/wiki/Registration-of-JS-engines). diff --git a/src/React.Sample.CoreMvc/React.Sample.CoreMvc.csproj b/src/React.Sample.CoreMvc/React.Sample.CoreMvc.csproj index 9353c0d38..b414bac51 100644 --- a/src/React.Sample.CoreMvc/React.Sample.CoreMvc.csproj +++ b/src/React.Sample.CoreMvc/React.Sample.CoreMvc.csproj @@ -1,29 +1,30 @@ - - net461;netcoreapp2.0 + netcoreapp2.0 true React.Sample.CoreMvc Exe React.Sample.CoreMvc 1701 - 2.0 + 2.0 Latest - PreserveNewest - - + + + + + @@ -31,22 +32,10 @@ - - - - - - - - - - - - diff --git a/src/React.Sample.CoreMvc/Startup.cs b/src/React.Sample.CoreMvc/Startup.cs index 35607cdea..81bd4e17d 100644 --- a/src/React.Sample.CoreMvc/Startup.cs +++ b/src/React.Sample.CoreMvc/Startup.cs @@ -8,6 +8,8 @@ */ using System; +using JavaScriptEngineSwitcher.ChakraCore; +using JavaScriptEngineSwitcher.Extensions.MsDependencyInjection; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Http; @@ -37,6 +39,9 @@ public IServiceProvider ConfigureServices(IServiceCollection services) // Add MVC services to the services container. services.AddMvc(); + services.AddJsEngineSwitcher(options => options.DefaultEngineName = ChakraCoreJsEngine.EngineName) + .AddChakraCore(); + services.AddSingleton(); // Add ReactJS.NET services. diff --git a/src/React.Sample.Router.CoreMvc/React.Sample.Router.CoreMvc.csproj b/src/React.Sample.Router.CoreMvc/React.Sample.Router.CoreMvc.csproj index f8198dea8..be306e5cd 100644 --- a/src/React.Sample.Router.CoreMvc/React.Sample.Router.CoreMvc.csproj +++ b/src/React.Sample.Router.CoreMvc/React.Sample.Router.CoreMvc.csproj @@ -6,6 +6,11 @@ + + + + + diff --git a/src/React.Sample.Router.CoreMvc/Startup.cs b/src/React.Sample.Router.CoreMvc/Startup.cs index a329a2e17..52b0ba743 100644 --- a/src/React.Sample.Router.CoreMvc/Startup.cs +++ b/src/React.Sample.Router.CoreMvc/Startup.cs @@ -1,6 +1,6 @@ using System; -using JavaScriptEngineSwitcher.Core; -using JavaScriptEngineSwitcher.Msie; +using JavaScriptEngineSwitcher.ChakraCore; +using JavaScriptEngineSwitcher.Extensions.MsDependencyInjection; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Http; @@ -23,6 +23,10 @@ public Startup(IConfiguration configuration) public IServiceProvider ConfigureServices(IServiceCollection services) { services.AddMvc(); + + services.AddJsEngineSwitcher(options => options.DefaultEngineName = ChakraCoreJsEngine.EngineName) + .AddChakraCore(); + services.AddReact(); services.AddSingleton(); diff --git a/tutorial-code/Startup.cs b/tutorial-code/Startup.cs index 3e2bc391d..853c0b98b 100644 --- a/tutorial-code/Startup.cs +++ b/tutorial-code/Startup.cs @@ -2,6 +2,8 @@ using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; +using JavaScriptEngineSwitcher.ChakraCore; +using JavaScriptEngineSwitcher.Extensions.MsDependencyInjection; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Http; @@ -14,44 +16,47 @@ namespace ReactDemo { - public class Startup - { - public Startup(IHostingEnvironment env) - { - var builder = new ConfigurationBuilder() - .SetBasePath(env.ContentRootPath) - .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true) - .AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true) - .AddEnvironmentVariables(); - Configuration = builder.Build(); - } + public class Startup + { + public Startup(IHostingEnvironment env) + { + var builder = new ConfigurationBuilder() + .SetBasePath(env.ContentRootPath) + .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true) + .AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true) + .AddEnvironmentVariables(); + Configuration = builder.Build(); + } - public IConfigurationRoot Configuration { get; } + public IConfigurationRoot Configuration { get; } + + // This method gets called by the runtime. Use this method to add services to the container. + public void ConfigureServices(IServiceCollection services) + { + services.AddJsEngineSwitcher(options => options.DefaultEngineName = ChakraCoreJsEngine.EngineName) + .AddChakraCore(); - // This method gets called by the runtime. Use this method to add services to the container. - public void ConfigureServices(IServiceCollection services) - { services.AddSingleton(); services.AddReact(); - // Add framework services. - services.AddMvc(); - } + // Add framework services. + services.AddMvc(); + } - // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. - public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) - { - loggerFactory.AddConsole(Configuration.GetSection("Logging")); - loggerFactory.AddDebug(); + // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. + public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) + { + loggerFactory.AddConsole(Configuration.GetSection("Logging")); + loggerFactory.AddDebug(); - if (env.IsDevelopment()) - { - app.UseDeveloperExceptionPage(); - app.UseBrowserLink(); - } - else - { - app.UseExceptionHandler("/Home/Error"); - } + if (env.IsDevelopment()) + { + app.UseDeveloperExceptionPage(); + app.UseBrowserLink(); + } + else + { + app.UseExceptionHandler("/Home/Error"); + } // Initialise ReactJS.NET. Must be before static files. app.UseReact(config => @@ -80,12 +85,12 @@ public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerF app.UseStaticFiles(); - app.UseMvc(routes => - { - routes.MapRoute( - name: "default", - template: "{controller=Home}/{action=Index}/{id?}"); - }); - } - } + app.UseMvc(routes => + { + routes.MapRoute( + name: "default", + template: "{controller=Home}/{action=Index}/{id?}"); + }); + } + } } diff --git a/tutorial-code/tutorial-code.csproj b/tutorial-code/tutorial-code.csproj index a3a4e1457..d6bebbe64 100644 --- a/tutorial-code/tutorial-code.csproj +++ b/tutorial-code/tutorial-code.csproj @@ -1,5 +1,4 @@ - netcoreapp2.0 true @@ -7,15 +6,18 @@ Exe tutorial-code - PreserveNewest - + + + + + @@ -24,5 +26,4 @@ - - + \ No newline at end of file From 12ff098a8cb380383959c74b55fb3cef58a940a2 Mon Sep 17 00:00:00 2001 From: Suhail Ansari Date: Sun, 10 Jun 2018 15:17:59 -0700 Subject: [PATCH 022/530] Resolves Issue #521 Draft (#541) * Added ClientOnly property to ReactComponent * added conditional to RenderJavascript to decide between ReactDOM.render vs ReactDOM.hydrate * Added 2 tests to check if correct method ReactDOM.render or ReactDOM.hydrate used when toggling clientOnly parameter in ReactComponent * Made available ClientOnly and correctly implemented ternary operator using Write * Removed redundant call to ClientOnly * Changed tests to correctly take in ClientOnly * Changed incorrect punctuation in test file * Corrected tests to use render if true * Update examples to react 16.4 --- src/React.Core/ReactComponent.cs | 3 +- src/React.Core/ReactEnvironment.cs | 21 +++++----- .../Views/Home/Index.cshtml | 4 +- .../Views/Home/Index.cshtml | 4 +- src/React.Sample.Mvc4/Views/Home/Index.cshtml | 4 +- src/React.Sample.Owin/Content/Index.html | 4 +- .../Views/Home/Index.cshtml | 4 +- tests/React.Tests/Core/ReactComponentTest.cs | 42 ++++++++++++++++++- tutorial-code/Views/Home/Index.cshtml | 4 +- 9 files changed, 66 insertions(+), 24 deletions(-) diff --git a/src/React.Core/ReactComponent.cs b/src/React.Core/ReactComponent.cs index 376315779..1d088701d 100644 --- a/src/React.Core/ReactComponent.cs +++ b/src/React.Core/ReactComponent.cs @@ -95,6 +95,7 @@ public object Props _configuration.JsonSerializerSettings); } } + public bool ClientOnly { get; set; } /// /// Initializes a new instance of the class. @@ -233,7 +234,7 @@ public virtual string RenderJavaScript() /// JavaScript public virtual void RenderJavaScript(TextWriter writer) { - writer.Write("ReactDOM.hydrate("); + writer.Write(ClientOnly ? "ReactDOM.render(" : "ReactDOM.hydrate("); WriteComponentInitialiser(writer); writer.Write(", document.getElementById(\""); writer.Write(ContainerId); diff --git a/src/React.Core/ReactEnvironment.cs b/src/React.Core/ReactEnvironment.cs index 1f9ebec9f..b085e9f59 100644 --- a/src/React.Core/ReactEnvironment.cs +++ b/src/React.Core/ReactEnvironment.cs @@ -3,7 +3,7 @@ * All rights reserved. * * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant + * LICENSE file in the root directory of this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. */ @@ -22,7 +22,7 @@ namespace React { /// - /// Request-specific ReactJS.NET environment. This is unique to the individual request and is + /// Request-specific ReactJS.NET environment. This is unique to the individual request and is /// not shared. /// public class ReactEnvironment : IReactEnvironment, IDisposable @@ -70,7 +70,7 @@ public class ReactEnvironment : IReactEnvironment, IDisposable /// protected readonly Lazy _version = new Lazy(GetVersion); /// - /// Contains an engine acquired from a pool of engines. Only used if + /// Contains an engine acquired from a pool of engines. Only used if /// is enabled. /// protected Lazy _engineFromPool; @@ -141,7 +141,7 @@ IReactIdGenerator reactIdGenerator _fileSystem = fileSystem; _fileCacheHash = fileCacheHash; _reactIdGenerator = reactIdGenerator; - _babelTransformer = new Lazy(() => + _babelTransformer = new Lazy(() => new Babel(this, _cache, _fileSystem, _fileCacheHash, _config) ); _engineFromPool = new Lazy(() => _engineFactory.GetEngine()); @@ -304,6 +304,7 @@ public virtual IReactComponent CreateComponent(string componentName, T props, var component = new ReactComponent(this, _config, _reactIdGenerator, componentName, containerId) { + ClientOnly = clientOnly, Props = props, ServerOnly = serverOnly }; @@ -329,7 +330,7 @@ public virtual IReactComponent CreateComponent(IReactComponent component, bool c } /// - /// Renders the JavaScript required to initialise all components client-side. This will + /// Renders the JavaScript required to initialise all components client-side. This will /// attach event handlers to the server-rendered HTML. /// /// True if server-side rendering will be bypassed. Defaults to false. @@ -344,7 +345,7 @@ public virtual string GetInitJavaScript(bool clientOnly = false) } /// - /// Renders the JavaScript required to initialise all components client-side. This will + /// Renders the JavaScript required to initialise all components client-side. This will /// attach event handlers to the server-rendered HTML. /// /// The to which the content is written @@ -371,12 +372,12 @@ public virtual void GetInitJavaScript(TextWriter writer, bool clientOnly = false /// /// Attempts to execute the provided JavaScript code using a non-pooled JavaScript engine (ie. - /// creates a new JS engine per-thread). This is because Babel uses a LOT of memory, so we + /// creates a new JS engine per-thread). This is because Babel uses a LOT of memory, so we /// should completely dispose any engines that have loaded Babel in order to conserve memory. - /// + /// /// If an exception is thrown, retries the execution using a new thread (and hence a new engine) /// with a larger maximum stack size. - /// This is required because JSXTransformer uses a huge stack which ends up being larger + /// This is required because JSXTransformer uses a huge stack which ends up being larger /// than what ASP.NET allows by default (256 KB). /// /// Type to return from JavaScript call @@ -396,7 +397,7 @@ public virtual T ExecuteWithBabel(string function, params object[] args) catch (Exception) { - // Assume the exception MAY be an "out of stack space" error. Try running the code + // Assume the exception MAY be an "out of stack space" error. Try running the code // in a different thread with larger stack. If the same exception occurs, we know // it wasn't a stack space issue. T result = default(T); diff --git a/src/React.Sample.Cassette/Views/Home/Index.cshtml b/src/React.Sample.Cassette/Views/Home/Index.cshtml index 5de9a00d4..80974a81f 100644 --- a/src/React.Sample.Cassette/Views/Home/Index.cshtml +++ b/src/React.Sample.Cassette/Views/Home/Index.cshtml @@ -20,8 +20,8 @@ @Html.React("CommentsBox", new { initialComments = Model.Comments }) - - + + @Bundles.RenderScripts() diff --git a/src/React.Sample.CoreMvc/Views/Home/Index.cshtml b/src/React.Sample.CoreMvc/Views/Home/Index.cshtml index 6f939ad17..feaaa3a3c 100644 --- a/src/React.Sample.CoreMvc/Views/Home/Index.cshtml +++ b/src/React.Sample.CoreMvc/Views/Home/Index.cshtml @@ -17,8 +17,8 @@ @Html.React("CommentsBox", new { initialComments = Model.Comments, ThrowRenderError = Model.ThrowRenderError }) - - + + diff --git a/src/React.Sample.Mvc4/Views/Home/Index.cshtml b/src/React.Sample.Mvc4/Views/Home/Index.cshtml index 70eb54233..cc0b53f03 100644 --- a/src/React.Sample.Mvc4/Views/Home/Index.cshtml +++ b/src/React.Sample.Mvc4/Views/Home/Index.cshtml @@ -17,8 +17,8 @@ @Html.React("CommentsBox", new { initialComments = Model.Comments, page = Model.Page }) - - + + @Scripts.Render("~/bundles/main") diff --git a/src/React.Sample.Owin/Content/Index.html b/src/React.Sample.Owin/Content/Index.html index c5f413438..5cb251d6d 100644 --- a/src/React.Sample.Owin/Content/Index.html +++ b/src/React.Sample.Owin/Content/Index.html @@ -8,8 +8,8 @@
- - + + - + + diff --git a/tests/React.Tests/Core/ReactComponentTest.cs b/tests/React.Tests/Core/ReactComponentTest.cs index 735436b54..dbf6049cf 100644 --- a/tests/React.Tests/Core/ReactComponentTest.cs +++ b/tests/React.Tests/Core/ReactComponentTest.cs @@ -213,6 +213,46 @@ public void RenderJavaScriptShouldCallRenderComponent() ); } + [Fact] + public void RenderJavaScriptShouldCallRenderComponentWithReactDOMRender() + { + var environment = new Mock(); + var config = new Mock(); + var reactIdGenerator = new Mock(); + + var component = new ReactComponent(environment.Object, config.Object, reactIdGenerator.Object, "Foo", "container") + { + ClientOnly = true, + Props = new { hello = "World" } + }; + var result = component.RenderJavaScript(); + + Assert.Equal( + @"ReactDOM.render(React.createElement(Foo, {""hello"":""World""}), document.getElementById(""container""))", + result + ); + } + + [Fact] + public void RenderJavaScriptShouldCallRenderComponentwithReactDOMHydrate() + { + var environment = new Mock(); + var config = new Mock(); + var reactIdGenerator = new Mock(); + + var component = new ReactComponent(environment.Object, config.Object, reactIdGenerator.Object, "Foo", "container") + { + ClientOnly = false, + Props = new { hello = "World" } + }; + var result = component.RenderJavaScript(); + + Assert.Equal( + @"ReactDOM.hydrate(React.createElement(Foo, {""hello"":""World""}), document.getElementById(""container""))", + result + ); + } + [Theory] [InlineData("Foo", true)] [InlineData("Foo.Bar", true)] @@ -284,7 +324,7 @@ public void ExceptionThrownIsHandled() Action customHandler = (ex, name, id) => customHandlerInvoked = true; component.RenderHtml(exceptionHandler: customHandler); Assert.True(customHandlerInvoked); - + // Custom exception handler set Exception caughtException = null; config.Setup(x => x.ExceptionHandler).Returns((ex, name, id) => caughtException = ex); diff --git a/tutorial-code/Views/Home/Index.cshtml b/tutorial-code/Views/Home/Index.cshtml index 8260b7f9b..168719213 100644 --- a/tutorial-code/Views/Home/Index.cshtml +++ b/tutorial-code/Views/Home/Index.cshtml @@ -14,8 +14,8 @@ submitUrl = Url.Action("AddComment"), pollInterval = 2000, }) - - + + From 5cbcd22e09444086401d51e65653505d49734146 Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Sun, 10 Jun 2018 17:15:50 -0700 Subject: [PATCH 023/530] Update docs (#548) * Use crossorigin script tags, per React docs * Update documentation - Update .NET Core docs to React 16 - Clean up a few other documentation pages * Use cdnjs in documentation, for consistency --- site/jekyll/getting-started/tutorial.md | 556 +++++++++--------- .../getting-started/tutorial_aspnet4.md | 24 +- site/jekyll/guides/cassette.md | 4 +- site/jekyll/guides/server-side-rendering.md | 8 +- site/jekyll/index.md | 5 +- .../Views/Home/Index.cshtml | 6 +- .../Views/Home/Index.cshtml | 6 +- src/React.Sample.Mvc4/Views/Home/Index.cshtml | 6 +- src/React.Sample.Owin/Content/Index.html | 6 +- .../Views/Home/Index.cshtml | 6 +- tutorial-code/Views/Home/Index.cshtml | 6 +- 11 files changed, 330 insertions(+), 303 deletions(-) diff --git a/site/jekyll/getting-started/tutorial.md b/site/jekyll/getting-started/tutorial.md index f9f04abbd..7454ae661 100644 --- a/site/jekyll/getting-started/tutorial.md +++ b/site/jekyll/getting-started/tutorial.md @@ -8,7 +8,7 @@ layout: docs > > This tutorial is for Visual Studio 2015 and ASP.NET Core MVC. If you're still using ASP.NET 4 and ASP.NET MVC 5, you can [follow the ASP.NET 4 tutorial instead](/getting-started/tutorial_aspnet4.html) -This tutorial covers the end-to-end process of creating a brand new ASP.NET MVC website and adding a React component in it. We will start from scratch and end with a fully functioning component. It assumes you have basic knowledge of ASP.NET MVC and using Visual Studio. This tutorial is based off the [original React tutorial](http://facebook.github.io/react/docs/tutorial.html) but has been modified specifically for ReactJS.NET. +This tutorial covers the end-to-end process of creating a brand new ASP.NET MVC website and adding a React component in it. We will start from scratch and end with a fully functioning component. It assumes you have basic knowledge of ASP.NET MVC and using Visual Studio. This tutorial is based off the [original React tutorial](https://reactjs.org/tutorial/tutorial.html) but has been modified specifically for ReactJS.NET. We'll be building a simple, but realistic comments box that you can drop into a blog, a basic version of the realtime comments offered by Disqus, LiveFyre or Facebook comments. @@ -141,14 +141,13 @@ Replace the contents of the new view file with the following: } - Hello React + Hello React
- - - - + + + ``` @@ -170,18 +169,19 @@ React is all about modular, composable components. For our comment box example, - CommentForm ``` -Let's build the `CommentBox` component, which is just a simple `
`. Add this code to `Tutorial.jsx`: +Let's build the `CommentBox` component, which just displays a simple `
`. Add this code to `Tutorial.jsx`: ```javascript -var CommentBox = React.createClass({ - render: function() { +class CommentBox extends React.Component { + render() { return (
Hello, world! I am a CommentBox.
); } -}); +} + ReactDOM.render( , document.getElementById('content') @@ -210,17 +210,18 @@ var CommentBox = React.createClass({displayName: 'CommentBox', ); } }); + ReactDOM.render( React.createElement(CommentBox, null), document.getElementById('content') ); ``` -Its use is optional but we've found JSX syntax easier to use than plain JavaScript. Read more on the [JSX Syntax article](http://facebook.github.io/react/docs/jsx-in-depth.html). +Its use is optional but we've found JSX syntax easier to use than plain JavaScript. Read more in React's ["JSX In Depth"](https://reactjs.org/docs/jsx-in-depth.html) article. #### What's going on -We pass some methods in a JavaScript object to `React.createClass()` to create a new React component. The most important of these methods is called `render` which returns a tree of React components that will eventually render to HTML. +We are defining a new JavaScript class that extends from the React.Component class. In our class, we will define some properties and some methods to build from what React.Component already gives us. The most important of these methods is called `render` which returns a tree of React components that will eventually render to HTML. The `
` tags are not actual DOM nodes; they are instantiations of React `div` components. You can think of these as markers or pieces of data that React knows how to handle. React is **safe**. We are not generating HTML strings so XSS protection is the default. @@ -228,38 +229,39 @@ You do not have to return basic HTML. You can return a tree of components that y `ReactDOM.render()` instantiates the root component, starts the framework, and injects the markup into a raw DOM element, provided as the second argument. -The `ReactDOM` module exposes DOM-specific methods, while `React` has the core tools shared by React on different platforms (e.g., [React Native](http://facebook.github.io/react-native/)). +The `ReactDOM` module exposes DOM-specific methods, while `React` has the core tools shared by React on different platforms (e.g., [React Native](https://facebook.github.io/react-native/)). + ## Composing components -Let's build skeletons for `CommentList` and `CommentForm` which will, again, be simple `
`s. Add these two components to the top of your file, just before the existing `CommentBox` declaration and `ReactDOM.render` call: +Let's build skeletons for `CommentList` and `CommentForm` which will, again, be simple `
`s. Add these two components to your file, keeping the existing `CommentBox` declaration and `ReactDOM.render` call: ```javascript -var CommentList = React.createClass({ - render: function() { +class CommentList extends React.Component { + render() { return (
Hello, world! I am a CommentList.
); } -}); +} -var CommentForm = React.createClass({ - render: function() { +class CommentForm extends React.Component { + render() { return (
Hello, world! I am a CommentForm.
); } -}); +} ``` Next, update the `CommentBox` component to use these new components: ```javascript{5-7} -var CommentBox = React.createClass({ - render: function() { +class CommentBox extends React.Component { + render() { return (

Comments

@@ -268,18 +270,18 @@ var CommentBox = React.createClass({
); } -}); +} ``` -Notice how we're mixing HTML tags and components we've built. HTML components are regular React components, just like the ones you define, with one difference. The JSX compiler will automatically rewrite HTML tags to `React.createElement(tagName)` expressions and leave everything else alone. This is to prevent the pollution of the global namespace. +Notice how we're mixing HTML tags and components we've built. HTML tags are React components just like the ones you define, but they have one difference. The JSX compiler will automatically rewrite HTML tags to `React.createElement(tagName)` expressions and leave everything else alone. This is to prevent the pollution of the global namespace. ### Using props Let's create the `Comment` component, which will depend on data passed in from our `CommentList` component. Data passed in from the `CommentList` component is available as a 'property' on our `Comment` component. These 'properties' are accessed through `this.props`. Using props, we will be able to read the data passed to the `Comment` from the `CommentList`, and render some markup: ```javascript -var Comment = React.createClass({ - render: function() { +class Comment extends React.Component { + render() { return (

@@ -289,18 +291,18 @@ var Comment = React.createClass({

); } -}); +} ``` -By surrounding a JavaScript expression in braces inside JSX (as either an attribute or child), you can drop text or React components into the tree. We access named attributes passed to the component as keys on `this.props` and any nested elements as `this.props.children`. +By surrounding a JavaScript expression with braces inside JSX (as either an attribute or child), you can drop text or React components into the tree. We access named attributes passed to the component as keys on `this.props` and any nested elements as `this.props.children`. ### Component Properties Now that we have defined the `Comment` component, we will want to pass it the author name and comment text. This allows us to reuse the same code for each unique comment. Now let's add some comments within our `CommentList`: ```javascript{5-7} -var CommentList = React.createClass({ - render: function() { +class CommentList extends React.Component { + render() { return (
Hello ReactJS.NET World! @@ -309,7 +311,7 @@ var CommentList = React.createClass({
); } -}); +} ``` Note that we have passed some data from the parent `CommentList` component to the child `Comment` components. For example, we passed *Daniel Lo Nigro* (via the `author` attribute) and *Hello ReactJS.NET World* (via an XML-like child node) to the first `Comment`. As noted above, the `Comment` component will access these 'properties' through `this.props.author`, and `this.props.children`. @@ -318,12 +320,12 @@ Note that we have passed some data from the parent `CommentList` component to th Markdown is a simple way to format your text inline. For example, surrounding text with asterisks will make it emphasized. -In this tutorial we use a third-party library **remarkable** which takes Markdown text and converts it to raw HTML. We already included this library with the original markup for the page, so we can just start using it. Let's convert the comment text to Markdown and output it: +In this tutorial we use a third-party library called [remarkable](https://github.com/jonschlinkert/remarkable) which takes Markdown text and converts it to raw HTML. We already included this library with the original markup for the page, so we can just start using it. Let's convert the comment text to Markdown and output it: ```javascript{3,9} -var Comment = React.createClass({ - render: function() { - var md = new Remarkable(); +class Comment extends React.Component { + render() { + const md = new Remarkable(); return (

@@ -333,7 +335,7 @@ var Comment = React.createClass({

); } -}); +} ``` All we're doing here is calling the remarkable library. We need to convert `this.props.children` from React's wrapped text to a raw string that remarkable will understand so we explicitly call `toString()`. @@ -342,15 +344,14 @@ But there's a problem! Our rendered comments look like this in the browser: "`

@@ -360,7 +361,7 @@ var Comment = React.createClass({

); } -}); +} ``` This is a special API that intentionally makes it difficult to insert raw HTML, but for remarkable we'll take advantage of this backdoor. @@ -372,7 +373,7 @@ This is a special API that intentionally makes it difficult to insert raw HTML, So far we've been inserting the comments directly in the source code. Instead, let's render a blob of JSON data into the comment list. Eventually this will come from the server, but for now, write it in your source: ```javascript -var data = [ +const data = [ { id: 1, author: "Daniel Lo Nigro", text: "Hello ReactJS.NET World!" }, { id: 2, author: "Pete Hunt", text: "This is one comment" }, { id: 3, author: "Jordan Walke", text: "This is *another* comment" } @@ -382,8 +383,8 @@ var data = [ We need to get this data into `CommentList` in a modular way. Modify `CommentBox` and the `ReactDOM.render()` call to pass this data into the `CommentList` via props: ```javascript{6,14} -var CommentBox = React.createClass({ - render: function() { +class CommentBox extends React.Component { + render() { return (

Comments

@@ -392,7 +393,7 @@ var CommentBox = React.createClass({
); } -}); +} ReactDOM.render( , @@ -402,23 +403,21 @@ ReactDOM.render( Now that the data is available in the `CommentList`, let's render the comments dynamically: -```javascript{3-9,12} -var CommentList = React.createClass({ - render: function() { - var commentNodes = this.props.data.map(function(comment) { - return ( - - {comment.text} - - ); - }); +```javascript{3-7,10} +class CommentList extends React.Component { + render() { + const commentNodes = this.props.data.map(comment => ( + + {comment.Text} + + )); return (
{commentNodes}
); } -}); +} ``` That's it! @@ -515,24 +514,25 @@ ReactDOM.render( ); ``` -Note that in a real app, you should generate the URL server-side (via `Url.Action` call) and pass it down, or use [RouteJs](http://dan.cx/projects/routejs) rather than hard-coding it. This tutorial hard-codes it for simplicity. +Note that in a real app, you should generate the URL server-side (via `Url.Action` call) and pass it down, or use [RouteJs](https://github.com/Daniel15/RouteJs) rather than hard-coding it. This tutorial hard-codes it for simplicity. This component is different from the prior components because it will have to re-render itself. The component won't have any data until the request from the server comes back, at which point the component may need to render some new comments. ### Reactive state -So far, based on its props, each component has rendered itself once. `props` are immutable: they are passed from the parent and are "owned" by the parent. To implement interactions, we introduce mutable **state** to the component. `this.state` is private to the component and can be changed by calling `this.setState()`. When the state updates, the component re-renders itself. +So far, based on its props, each component has rendered itself once. `props` are immutable: they are passed from the parent and are "owned" by the parent. To implement interactions, we introduce mutable **state** to the component. `this.state` is private to the component and can be changed by calling `this.setState()` and passing an object that represents changes in state. When the state updates, the component re-renders itself. `render()` methods are written declaratively as functions of `this.props` and `this.state`. The framework guarantees the UI is always consistent with the inputs. When the server fetches data, we will be changing the comment data we have. Let's add an array of comment data to the `CommentBox` component as its state: -```javascript{2-4,9} -var CommentBox = React.createClass({ - getInitialState: function() { - return {data: []}; - }, - render: function() { +```javascript{2-5,10} +class CommentBox extends React.Component { + constructor(props) { + super(props); + this.state = {data: []}; + } + render() { return (

Comments

@@ -541,29 +541,31 @@ var CommentBox = React.createClass({
); } -}); +} ``` -`getInitialState()` executes exactly once during the lifecycle of the component and sets up the initial state of the component. +The `constructor()` executes exactly once during the lifecycle of the component and sets up the initial state of the component. Remember to call the super class (the class we're extending, React.Component) via `super(props)` before using the `this` keyword. #### Updating state + When the component is first created, we want to GET some JSON from the server and update the state to reflect the latest data. We'll use the standard XMLHttpRequest API to retrieve the data. If you need support for old browsers (mainly old Internet Explorer), you can use an AJAX library or a multipurpose library such as jQuery. `componentWillMount()` executes immediately and only once before the rendering occurs. In the following example, `componentWillMount()` loads the data from our XMLHttpRequest and assigns it to the `data` variable. Finally, it sets the `data` variable in state, using `setState()`. -```javascript{6-12} -var CommentBox = React.createClass({ - getInitialState: function() { - return {data: []}; - }, - componentWillMount: function() { - var xhr = new XMLHttpRequest(); +```javascript{6-14} +class CommentBox extends React.Component { + constructor(props) { + super(props); + this.state = {data: []}; + } + componentWillMount() { + const xhr = new XMLHttpRequest(); xhr.open('get', this.props.url, true); - xhr.onload = function() { - var data = JSON.parse(xhr.responseText); + xhr.onload = () => { + const data = JSON.parse(xhr.responseText); this.setState({ data: data }); - }.bind(this); + }; xhr.send(); - }, - render: function() { + } + render() { return (

Comments

@@ -572,30 +574,33 @@ var CommentBox = React.createClass({
); } -}); +} ``` -Here, `componentDidMount()` is a method called automatically by React *after* a component is rendered for the first time. So, by moving the XMLHttpRequest call from `componentWillMount()`, which is executed only once *before* rendering, to a function called `loadCommentsFromServer()`, we can then call it multiple times from `componentDidMount()` at a set interval to check for any updates to the comments. The key to dynamic updates is the call to `this.setState()`. We replace the old array of comments with the new one from the server and the UI automatically updates itself. Because of this reactivity, it is only a minor change to add live updates. We will use simple polling here but you could easily use [SignalR](http://signalr.net/) or other technologies. +Below, we're using `componentDidMount()`, a method called automatically by React *after* a component is rendered for the first time. By moving the XMLHttpRequest call from `componentWillMount()`, which is executed only once *before* rendering, to a function called `loadCommentsFromServer()`, we can then call it multiple times from `componentDidMount()` at a set interval to check for any updates to the comments. + +The key to these dynamic updates is the call to `this.setState()`. We replace the old array of comments with the new one from the server and the UI automatically updates itself. Because of this reactivity, it is only a minor change to add live updates. We will use simple polling here but you could easily use [SignalR](http://signalr.net/) or other technologies. -```javascript{2,15-16,30} -var CommentBox = React.createClass({ - loadCommentsFromServer: function() { - var xhr = new XMLHttpRequest(); +```javascript{6,15-18,31} +class CommentBox extends React.Component { + constructor(props) { + super(props); + this.state = { data: [] }; + } + loadCommentsFromServer() { + const xhr = new XMLHttpRequest(); xhr.open('get', this.props.url, true); - xhr.onload = function() { - var data = JSON.parse(xhr.responseText); + xhr.onload = () => { + const data = JSON.parse(xhr.responseText); this.setState({ data: data }); - }.bind(this); + }; xhr.send(); - }, - getInitialState: function() { - return {data: []}; - }, - componentDidMount: function() { + } + componentDidMount() { this.loadCommentsFromServer(); - window.setInterval(this.loadCommentsFromServer, this.props.pollInterval); - }, - render: function() { + window.setInterval(() => this.loadCommentsFromServer(), this.props.pollInterval); + } + render() { return (

Comments

@@ -604,7 +609,7 @@ var CommentBox = React.createClass({
); } -}); +} ReactDOM.render( , @@ -635,8 +640,8 @@ public ActionResult AddComment(CommentModel comment) Now it's time to build the form. Our `CommentForm` component should ask the user for their name and comment text and send a request to the server to save the comment. ```javascript{4-8} -var CommentForm = React.createClass({ - render: function() { +class CommentForm extends React.Component { + render() { return ( @@ -645,27 +650,30 @@ var CommentForm = React.createClass({ ); } -}); +} ``` #### Controlled components With the traditional DOM, `input` elements are rendered and the browser manages the state (its rendered value). As a result, the state of the actual DOM will differ from that of the component. This is not ideal as the state of the view will differ from that of the component. In React, components should always represent the state of the view and not only at the point of initialization. -Hence, we will be using `this.state` to save the user's input as it is entered. We define an initial `state` with two properties `author` and `text` and set them to be empty strings. In our `` elements, we set the `value` prop to reflect the `state` of the component and attach `onChange` handlers to them. These `` elements with a `value` set are called controlled components. Read more about controlled components on the [Forms article](http://facebook.github.io/react/docs/forms.html#controlled-components). +Hence, we will be using `this.state` to save the user's input as it is entered. We define an initial `state` with two properties `author` and `text` and set them to be empty strings. In our `` elements, we set the `value` prop to reflect the `state` of the component and attach `onChange` handlers to them. These `` elements with a `value` set are called controlled components. Read more about controlled components on the [Forms article](https://reactjs.org/docs/forms.html#controlled-components). -```javascript{2-10,14-25} -var CommentForm = React.createClass({ - getInitialState: function() { - return {author: '', text: ''}; - }, - handleAuthorChange: function(e) { +```javascript{2-13,16-28} +class CommentForm extends React.Component { + constructor(props) { + super(props); + this.state = {author: '', text: ''}; + this.handleAuthorChange = this.handleAuthorChange.bind(this); + this.handleTextChange = this.handleTextChange.bind(this); + } + handleAuthorChange(e) { this.setState({author: e.target.value}); - }, - handleTextChange: function(e) { + } + handleTextChange(e) { this.setState({text: e.target.value}); - }, - render: function() { + } + render() { return (
); } -}); +} ``` #### Events React attaches event handlers to components using a camelCase naming convention. We attach `onChange` handlers to the two `` elements. Now, as the user enters text into the `` fields, the attached `onChange` callbacks are fired and the `state` of the component is modified. Subsequently, the rendered value of the `input` element will be updated to reflect the current component `state`. -(The astute reader may be surprised that these event handlers work as described, given that the method references are not explicitly bound to `this`. `React.createClass(...)` [automatically binds](/react/docs/interactivity-and-dynamic-uis.html#under-the-hood-autobinding-and-event-delegation) each method to its component instance, obviating the need for explicit binding.) +You'll notice that we are explicitly binding our event handlers to `this` in the constructor. While older techniques, like `React.createClass(...)`, featured automatic binding, we are using ES6 classes to define our components. React components declared as ES6 classes don't automatically bind `this` to the instance, so we have to explicitly use `.bind(this)`. + +For components with many event handlers, this explicit binding approach can get tedious. It's also easy to forget to declare your bindings which can cause some baffling bugs. React does offer two other techniques for ensuring your event handlers are bound properly to your component. Check out the [Handling Events](https://reactjs.org/docs/handling-events.html) documentation on the React website for more information. #### Submitting the form Let's make the form interactive. When the user submits the form, we should clear it, submit a request to the server, and refresh the list of comments. To start, let's listen for the form's submit event and clear it. -```javascript{2-13,16-18,23} -var CommentForm = React.createClass({ - getInitialState: function() { - return {author: '', text: ''}; - }, - handleAuthorChange: function(e) { +```javascript{7,15-24,27} +class CommentForm extends React.Component { + constructor(props) { + super(props); + this.state = {author: '', text: ''}; + this.handleAuthorChange = this.handleAuthorChange.bind(this); + this.handleTextChange = this.handleTextChange.bind(this); + this.handleSubmit = this.handleSubmit.bind(this); + } + handleAuthorChange(e) { this.setState({author: e.target.value}); - }, - handleTextChange: function(e) { + } + handleTextChange(e) { this.setState({text: e.target.value}); - }, - handleSubmit: function(e) { + } + handleSubmit(e) { e.preventDefault(); - var author = this.state.author.trim(); - var text = this.state.text.trim(); + const author = this.state.author.trim(); + const text = this.state.text.trim(); if (!text || !author) { return; } // TODO: send request to the server - this.setState({author: '', text: ''}); - }, - render: function() { + this.setState({ author: '', text: '' }); + } + render() { return ( ); } -}); +} ``` -We attach an `onSubmit` handler to the form that clears the form fields when the form is submitted with valid input. - -Call `preventDefault()` on the event to prevent the browser's default action of submitting the form. +We attach an `onSubmit` handler to the form that clears the form fields when the form is submitted with valid input. We call `preventDefault()` on the event to prevent the browser's default action of submitting the form. #### Callbacks as props @@ -750,28 +762,30 @@ When a user submits a comment, we will need to refresh the list of comments to i We need to pass data from the child component back up to its parent. We do this in our parent's `render` method by passing a new callback (`handleCommentSubmit`) into the child, binding it to the child's `onCommentSubmit` event. Whenever the event is triggered, the callback will be invoked: -```javascript{11-13,26} -var CommentBox = React.createClass({ - loadCommentsFromServer: function() { - var xhr = new XMLHttpRequest(); +```javascript{5,16-18,28} +class CommentBox extends React.Component { + constructor(props) { + super(props); + this.state = { data: [] }; + this.handleCommentSubmit = this.handleCommentSubmit.bind(this); + } + loadCommentsFromServer() { + const xhr = new XMLHttpRequest(); xhr.open('get', this.props.url, true); - xhr.onload = function() { - var data = JSON.parse(xhr.responseText); + xhr.onload = () => { + const data = JSON.parse(xhr.responseText); this.setState({ data: data }); - }.bind(this); + }; xhr.send(); - }, - handleCommentSubmit: function(comment) { + } + handleCommentSubmit(comment) { // TODO: submit to the server and refresh the list - }, - getInitialState: function() { - return {data: []}; - }, - componentDidMount: function() { + } + componentDidMount() { this.loadCommentsFromServer(); - window.setInterval(this.loadCommentsFromServer, this.props.pollInterval); - }, - render: function() { + window.setInterval(() => this.loadCommentsFromServer(), this.props.pollInterval); + } + render() { return (

Comments

@@ -780,33 +794,37 @@ var CommentBox = React.createClass({
); } -}); +} ``` Now that `CommentBox` has made the callback available to `CommentForm` via the `onCommentSubmit` prop, the `CommentForm` can call the callback when the user submits the form: -```javascript{18} -var CommentForm = React.createClass({ - getInitialState: function() { - return {author: '', text: ''}; - }, - handleAuthorChange: function(e) { +```javascript{22} +class CommentForm extends React.Component { + constructor(props) { + super(props); + this.state = {author: '', text: ''}; + this.handleAuthorChange = this.handleAuthorChange.bind(this); + this.handleTextChange = this.handleTextChange.bind(this); + this.handleSubmit = this.handleSubmit.bind(this); + } + handleAuthorChange(e) { this.setState({author: e.target.value}); - }, - handleTextChange: function(e) { + } + handleTextChange(e) { this.setState({text: e.target.value}); - }, - handleSubmit: function(e) { + } + handleSubmit(e) { e.preventDefault(); - var author = this.state.author.trim(); - var text = this.state.text.trim(); + const author = this.state.author.trim(); + const text = this.state.text.trim(); if (!text || !author) { return; } - this.props.onCommentSubmit({author: author, text: text}); - this.setState({author: '', text: ''}); - }, - render: function() { + this.props.onCommentSubmit({Author: author, Text: text}); + this.setState({ author: '', text: '' }); + } + render() { return ( ); } -}); +} ``` Now that the callbacks are in place, all we have to do is submit to the server and refresh the list: -```javascript{12-21,42} -var CommentBox = React.createClass({ - loadCommentsFromServer: function() { - var xhr = new XMLHttpRequest(); +```javascript{16-25,42} +class CommentBox extends React.Component { + constructor(props) { + super(props); + this.state = { data: [] }; + this.handleCommentSubmit = this.handleCommentSubmit.bind(this); + } + loadCommentsFromServer() { + const xhr = new XMLHttpRequest(); xhr.open('get', this.props.url, true); - xhr.onload = function() { - var data = JSON.parse(xhr.responseText); + xhr.onload = () => { + const data = JSON.parse(xhr.responseText); this.setState({ data: data }); - }.bind(this); + }; xhr.send(); - }, - handleCommentSubmit: function(comment) { - var data = new FormData(); + } + handleCommentSubmit(comment) { + const data = new FormData(); data.append('author', comment.author); data.append('text', comment.text); - var xhr = new XMLHttpRequest(); + const xhr = new XMLHttpRequest(); xhr.open('post', this.props.submitUrl, true); - xhr.onload = function() { - this.loadCommentsFromServer(); - }.bind(this); + xhr.onload = () => this.loadCommentsFromServer(); xhr.send(data); - }, - getInitialState: function() { - return {data: []}; - }, - componentDidMount: function() { + } + componentDidMount() { this.loadCommentsFromServer(); - window.setInterval(this.loadCommentsFromServer, this.props.pollInterval); - }, - render: function() { + window.setInterval(() => this.loadCommentsFromServer(), this.props.pollInterval); + } + render() { return (

Comments

@@ -869,7 +887,7 @@ var CommentBox = React.createClass({
); } -}); +} ReactDOM.render( , @@ -879,9 +897,9 @@ ReactDOM.render( ## Congrats! -You have just built a comment box in a few simple steps. The below tweaks are not absolutely necessary, but they will improve the performance and polish of your application, so we suggest reading through them :) +You have just built a comment box in a few simple steps. The below tweaks are not absolutely necessary, but they will improve the performance and polish of your application, so we suggest reading through them. :) -We hope you have enjoyed learning about React, and how ReactJS.NET allows you to easily use it from an ASP.NET MVC web application. Learn more about [why to use React](http://facebook.github.io/react/docs/why-react.html) and how to [think about React components](http://facebook.github.io/react/docs/thinking-in-react.html), or dive into the [API reference](http://facebook.github.io/react/docs/top-level-api.html) and start hacking! +We hope you have enjoyed learning about React and how ReactJS.NET allows you to easily use it from an ASP.NET MVC web application. Learn more about [React from the project homepage](https://reactjs.org/) and how to [think about React components](https://reactjs.org/docs/thinking-in-react.html), or dive into the [API reference](https://reactjs.org/docs/react-api.html) and start hacking! Continue on for more awesomeness! @@ -889,45 +907,45 @@ Continue on for more awesomeness! Our application is now feature complete but it feels slow to have to wait for the request to complete before your comment appears in the list. We can optimistically add this comment to the list to make the app feel faster. -```javascript{12-18} -var CommentBox = React.createClass({ - loadCommentsFromServer: function() { - var xhr = new XMLHttpRequest(); +```javascript{17-23} +class CommentBox extends React.Component { + constructor(props) { + super(props); + this.state = { data: [] }; + this.handleCommentSubmit = this.handleCommentSubmit.bind(this); + } + loadCommentsFromServer() { + const xhr = new XMLHttpRequest(); xhr.open('get', this.props.url, true); - xhr.onload = function() { - var data = JSON.parse(xhr.responseText); + xhr.onload = () => { + const data = JSON.parse(xhr.responseText); this.setState({ data: data }); - }.bind(this); + }; xhr.send(); - }, - handleCommentSubmit: function(comment) { - var comments = this.state.data; + } + handleCommentSubmit(comment) { + const comments = this.state.data; // Optimistically set an id on the new comment. It will be replaced by an // id generated by the server. In a production application you would likely - // not use Date.now() for this and would have a more robust system in place. - comment.id = Date.now(); - var newComments = comments.concat([comment]); + // use a more robust system for ID generation. + comment.Id = comments.length + 1; + const newComments = comments.concat([comment]); this.setState({data: newComments}); - var data = new FormData(); - data.append('author', comment.author); - data.append('text', comment.text); + const data = new FormData(); + data.append('Author', comment.Author); + data.append('Text', comment.Text); - var xhr = new XMLHttpRequest(); + const xhr = new XMLHttpRequest(); xhr.open('post', this.props.submitUrl, true); - xhr.onload = function() { - this.loadCommentsFromServer(); - }.bind(this); + xhr.onload = () => this.loadCommentsFromServer(); xhr.send(data); - }, - getInitialState: function() { - return {data: []}; - }, - componentDidMount: function() { + } + componentDidMount() { this.loadCommentsFromServer(); - window.setInterval(this.loadCommentsFromServer, this.props.pollInterval); - }, - render: function() { + window.setInterval(() => this.loadCommentsFromServer(), this.props.pollInterval); + } + render() { return (

Comments

@@ -936,7 +954,7 @@ var CommentBox = React.createClass({
); } -}); +} ``` ## Optimization: Bundling and minification @@ -946,44 +964,45 @@ There used to be a section on bundling and minification in this tutorial, but un ## Optimization: Server-side rendering -Server-side rendering means that your application initially renders the components on the server-side, rather than fetching data from the server and rendering using JavaScript. This enhances the performance of your application since the user will see the initial state immediately. +Server-side rendering means that your application initially renders the components on the server-side, rather than fetching data from the server and rendering using the client. Server-side rendering enhances the performance of your application since the user will see the initial state immediately. We need to make some modifications to `CommentBox` to support server-side rendering. Firstly, we need to accept an `initialData` prop, which will be used to set the initial state of the component, rather than doing an AJAX request. We also need to remove the `loadCommentsFromServer` call from `componentDidMount`, since it is no longer required. Also, we need to remove the `ReactDOM.render` call from the JSX file, as server-side rendering automatically outputs the correct `ReactDOM.render` call for you. -```javascript{28} -var CommentBox = React.createClass({ - loadCommentsFromServer: function() { - var xhr = new XMLHttpRequest(); +```javascript{4,31-33} +class CommentBox extends React.Component { + constructor(props) { + super(props); + this.state = { data: this.props.initialData }; + this.handleCommentSubmit = this.handleCommentSubmit.bind(this); + } + loadCommentsFromServer() { + const xhr = new XMLHttpRequest(); xhr.open('get', this.props.url, true); - xhr.onload = function() { - var data = JSON.parse(xhr.responseText); + xhr.onload = () => { + const data = JSON.parse(xhr.responseText); this.setState({ data: data }); - }.bind(this); + }; xhr.send(); - }, - handleCommentSubmit: function(comment) { - var comments = this.state.data; - var newComments = comments.concat([comment]); + } + handleCommentSubmit(comment) { + const comments = this.state.data; + comment.Id = comments.length + 1; + const newComments = comments.concat([comment]); this.setState({data: newComments}); - var data = new FormData(); - data.append('author', comment.author); - data.append('text', comment.text); + const data = new FormData(); + data.append('Author', comment.Author); + data.append('Text', comment.Text); - var xhr = new XMLHttpRequest(); + const xhr = new XMLHttpRequest(); xhr.open('post', this.props.submitUrl, true); - xhr.onload = function() { - this.loadCommentsFromServer(); - }.bind(this); + xhr.onload = () => this.loadCommentsFromServer(); xhr.send(data); - }, - getInitialState: function() { - return { data: this.props.initialData }; - }, - componentDidMount: function() { - window.setInterval(this.loadCommentsFromServer, this.props.pollInterval); - }, - render: function() { + } + componentDidMount() { + window.setInterval(() => this.loadCommentsFromServer(), this.props.pollInterval); + } + render() { return (

Comments

@@ -992,22 +1011,29 @@ var CommentBox = React.createClass({
); } -}); +} ``` -We also need to update the `Comment` component to use `Remarkable` from either `global` or `window`, due to a bug in Remarkable. We will do this by creating a function to create an instance of `Remarkable` and then calling it from the `Comment` component: +We also need to update the `Comment` component to use `Remarkable` from either `global` or `window`, due to a bug in Remarkable: + ```javascript{3} -function createRemarkable() { - var remarkable = (("undefined" != typeof global) && (global.Remarkable)) ? global.Remarkable : window.Remarkable; - return new remarkable(); +class Comment extends React.Component { + rawMarkup() { + const md = new (global.Remarkable || window.Remarkable)(); + const rawMarkup = md.render(this.props.children.toString()); + return { __html: rawMarkup }; + } + render() { + return ( +
+

+ {this.props.author} +

+ +
+ ); + } } - -var Comment = React.createClass({ - rawMarkup: function () { - var md = createRemarkable(); - var rawMarkup = md.render(this.props.children.toString()); - return { __html: rawMarkup }; - }, ``` In the view, we will accept the list of comments as the model, and use `Html.React` to render the component. This will replace the `ReactDOM.render` call that currently exists in Tutorial.jsx. All the props from the current `ReactDOM.render` call should be moved here, and the `ReactDOM.render` call should be deleted. @@ -1029,8 +1055,8 @@ In the view, we will accept the list of comments as the model, and use `Html.Rea submitUrl = Url.Action("AddComment"), pollInterval = 2000, }) - - + + @Html.ReactInitJavaScript() diff --git a/site/jekyll/getting-started/tutorial_aspnet4.md b/site/jekyll/getting-started/tutorial_aspnet4.md index d83946150..f2a06afb2 100644 --- a/site/jekyll/getting-started/tutorial_aspnet4.md +++ b/site/jekyll/getting-started/tutorial_aspnet4.md @@ -71,8 +71,8 @@ Replace the contents of the new view file with the following:
- - + + @@ -874,7 +874,7 @@ class CommentBox extends React.Component { constructor(props) { super(props); this.state = { data: [] }; - this.handleCommentSubmit = this.handleCommentSubmit.bind(this); + this.handleCommentSubmit = this.handleCommentSubmit.bind(this); } loadCommentsFromServer() { const xhr = new XMLHttpRequest(); @@ -885,7 +885,7 @@ class CommentBox extends React.Component { }; xhr.send(); } - handleCommentSubmit(comment) { + handleCommentSubmit(comment) { const comments = this.state.data; // Optimistically set an id on the new comment. It will be replaced by an // id generated by the server. In a production application you would likely @@ -893,7 +893,7 @@ class CommentBox extends React.Component { comment.Id = comments.length + 1; const newComments = comments.concat([comment]); this.setState({data: newComments}); - + const data = new FormData(); data.append('Author', comment.Author); data.append('Text', comment.Text); @@ -964,8 +964,8 @@ Now that the bundle has been registered, we need to reference it from the view:
- - + + @Scripts.Render("~/bundles/main") @Html.ReactInitJavaScript() @@ -992,7 +992,7 @@ class CommentBox extends React.Component { constructor(props) { super(props); this.state = { data: this.props.initialData }; - this.handleCommentSubmit = this.handleCommentSubmit.bind(this); + this.handleCommentSubmit = this.handleCommentSubmit.bind(this); } loadCommentsFromServer() { const xhr = new XMLHttpRequest(); @@ -1003,12 +1003,12 @@ class CommentBox extends React.Component { }; xhr.send(); } - handleCommentSubmit(comment) { + handleCommentSubmit(comment) { const comments = this.state.data; comment.Id = comments.length + 1; const newComments = comments.concat([comment]); this.setState({data: newComments}); - + const data = new FormData(); data.append('Author', comment.Author); data.append('Text', comment.Text); @@ -1074,8 +1074,8 @@ In the view, we will accept the list of comments as the model, and use `Html.Rea submitUrl = Url.Action("AddComment"), pollInterval = 2000 }) - - + + @Html.ReactInitJavaScript() diff --git a/site/jekyll/guides/cassette.md b/site/jekyll/guides/cassette.md index 42b4de113..590ace67a 100644 --- a/site/jekyll/guides/cassette.md +++ b/site/jekyll/guides/cassette.md @@ -36,8 +36,8 @@ render from your view using Cassette: ... - - + + @Bundles.RenderScripts() ``` diff --git a/site/jekyll/guides/server-side-rendering.md b/site/jekyll/guides/server-side-rendering.md index 0d5911f7a..76e9923e1 100644 --- a/site/jekyll/guides/server-side-rendering.md +++ b/site/jekyll/guides/server-side-rendering.md @@ -47,8 +47,8 @@ code. ```html - - + + @Scripts.Render("~/bundles/main") @Html.ReactInitJavaScript() ``` @@ -63,8 +63,8 @@ code.
- - + + ``` diff --git a/site/jekyll/index.md b/site/jekyll/index.md index 111c14f8b..80b615725 100644 --- a/site/jekyll/index.md +++ b/site/jekyll/index.md @@ -112,8 +112,9 @@ bundles.Add(new JsxBundle("~/bundles/main").Include( }) - - + + + @Scripts.Render("~/bundles/main") @Html.ReactInitJavaScript() ``` diff --git a/src/React.Sample.Cassette/Views/Home/Index.cshtml b/src/React.Sample.Cassette/Views/Home/Index.cshtml index 80974a81f..ff0ee7000 100644 --- a/src/React.Sample.Cassette/Views/Home/Index.cshtml +++ b/src/React.Sample.Cassette/Views/Home/Index.cshtml @@ -20,9 +20,9 @@ @Html.React("CommentsBox", new { initialComments = Model.Comments }) - - - + + + @Bundles.RenderScripts() @Html.ReactInitJavaScript() diff --git a/src/React.Sample.CoreMvc/Views/Home/Index.cshtml b/src/React.Sample.CoreMvc/Views/Home/Index.cshtml index feaaa3a3c..6a6e912b4 100644 --- a/src/React.Sample.CoreMvc/Views/Home/Index.cshtml +++ b/src/React.Sample.CoreMvc/Views/Home/Index.cshtml @@ -17,9 +17,9 @@ @Html.React("CommentsBox", new { initialComments = Model.Comments, ThrowRenderError = Model.ThrowRenderError }) - - - + + + @Html.ReactInitJavaScript() diff --git a/src/React.Sample.Mvc4/Views/Home/Index.cshtml b/src/React.Sample.Mvc4/Views/Home/Index.cshtml index cc0b53f03..09c18f986 100644 --- a/src/React.Sample.Mvc4/Views/Home/Index.cshtml +++ b/src/React.Sample.Mvc4/Views/Home/Index.cshtml @@ -17,9 +17,9 @@ @Html.React("CommentsBox", new { initialComments = Model.Comments, page = Model.Page }) - - - + + + @Scripts.Render("~/bundles/main") @Html.ReactInitJavaScript() diff --git a/src/React.Sample.Owin/Content/Index.html b/src/React.Sample.Owin/Content/Index.html index 5cb251d6d..64909c092 100644 --- a/src/React.Sample.Owin/Content/Index.html +++ b/src/React.Sample.Owin/Content/Index.html @@ -8,9 +8,9 @@
- - - + + + - - + + + @Html.ReactInitJavaScript() diff --git a/tutorial-code/Views/Home/Index.cshtml b/tutorial-code/Views/Home/Index.cshtml index 168719213..0d14a5fcf 100644 --- a/tutorial-code/Views/Home/Index.cshtml +++ b/tutorial-code/Views/Home/Index.cshtml @@ -14,9 +14,9 @@ submitUrl = Url.Action("AddComment"), pollInterval = 2000, }) - - - + + + @Html.ReactInitJavaScript() From 79ca1551764da4ec215f2275e3669a6ff0394cc1 Mon Sep 17 00:00:00 2001 From: Andrey Taritsyn Date: Sat, 30 Jun 2018 02:58:56 +0300 Subject: [PATCH 024/530] Added support of the JavaScript Engine Switcher version 3.0.0 Beta and JSPool version 3.1.0 Beta 1 (#551) --- src/React.Core/AssemblyRegistration.cs | 2 +- src/React.Core/Exceptions/BabelException.cs | 6 +- .../Exceptions/BabelNotLoadedException.cs | 6 +- .../ClearScriptV8InitialisationException.cs | 6 +- .../Exceptions/ReactConfigurationException.cs | 6 +- .../ReactEngineNotFoundException.cs | 6 +- src/React.Core/Exceptions/ReactException.cs | 6 +- .../ReactInvalidComponentException.cs | 6 +- .../ReactNotInitialisedException.cs | 6 +- .../Exceptions/ReactScriptLoadException.cs | 6 +- .../ReactServerRenderingException.cs | 6 +- .../VroomJsInitialisationException.cs | 6 +- src/React.Core/FileCacheHash.cs | 2 +- src/React.Core/Initializer.cs | 6 +- src/React.Core/JavaScriptEngineFactory.cs | 20 ++--- src/React.Core/JavaScriptWithSourceMap.cs | 4 +- src/React.Core/MemoryFileCache.cs | 2 +- src/React.Core/React.Core.csproj | 23 +++--- src/React.Core/ReactEnvironment.cs | 62 ++------------- src/React.Core/SourceMap.cs | 4 +- .../React.Sample.Cassette.csproj | 8 +- src/React.Sample.Cassette/Web.config | 10 +-- src/React.Sample.Cassette/packages.config | 2 +- .../React.Sample.ConsoleApp.csproj | 10 ++- .../React.Sample.CoreMvc.csproj | 12 +-- .../React.Sample.Mvc4.csproj | 32 +++++--- src/React.Sample.Mvc4/Web.config | 38 ++++------ src/React.Sample.Mvc4/packages.config | 10 ++- .../React.Sample.Router.CoreMvc.csproj | 12 +-- .../React.Sample.Webpack.csproj | 28 ++++--- src/React.Sample.Webpack/Web.config | 47 +++++------- src/React.Sample.Webpack/packages.config | 6 +- tests/React.Tests.Benchmarks/Program.cs | 4 +- .../React.Tests.Benchmarks.csproj | 4 +- .../Core/JavaScriptEngineFactoryTest.cs | 76 +++++++------------ 35 files changed, 216 insertions(+), 274 deletions(-) diff --git a/src/React.Core/AssemblyRegistration.cs b/src/React.Core/AssemblyRegistration.cs index fafe79e33..5932c81ca 100644 --- a/src/React.Core/AssemblyRegistration.cs +++ b/src/React.Core/AssemblyRegistration.cs @@ -35,7 +35,7 @@ public void Register(TinyIoCContainer container) // One instance shared for the whole app container.Register((c, o) => ReactSiteConfiguration.Configuration); container.Register().AsPerRequestSingleton(); - container.Register((c, o) => JsEngineSwitcher.Instance); + container.Register((c, o) => JsEngineSwitcher.Current); container.Register().AsSingleton(); container.Register().AsSingleton(); diff --git a/src/React.Core/Exceptions/BabelException.cs b/src/React.Core/Exceptions/BabelException.cs index 614519f36..9ba80379b 100644 --- a/src/React.Core/Exceptions/BabelException.cs +++ b/src/React.Core/Exceptions/BabelException.cs @@ -1,4 +1,4 @@ -/* +/* * Copyright (c) 2014-Present, Facebook, Inc. * All rights reserved. * @@ -15,7 +15,7 @@ namespace React.Exceptions /// /// Thrown when an error occurs when transforming a JavaScript file via Babel. /// -#if NET40 +#if !NETSTANDARD1_6 [Serializable] #endif public class BabelException : ReactException @@ -33,7 +33,7 @@ public BabelException(string message) : base(message) { } public BabelException(string message, Exception innerException) : base(message, innerException) { } -#if NET40 +#if !NETSTANDARD1_6 /// /// Used by deserialization /// diff --git a/src/React.Core/Exceptions/BabelNotLoadedException.cs b/src/React.Core/Exceptions/BabelNotLoadedException.cs index c2aff9695..a123ed525 100644 --- a/src/React.Core/Exceptions/BabelNotLoadedException.cs +++ b/src/React.Core/Exceptions/BabelNotLoadedException.cs @@ -1,4 +1,4 @@ -/* +/* * Copyright (c) 2014-Present, Facebook, Inc. * All rights reserved. * @@ -15,7 +15,7 @@ namespace React.Exceptions /// /// Thrown when Babel is required but has not been loaded. /// -#if NET40 +#if !NETSTANDARD1_6 [Serializable] #endif public class BabelNotLoadedException : ReactException @@ -25,7 +25,7 @@ public class BabelNotLoadedException : ReactException ///
public BabelNotLoadedException() : base(GetMessage()) { } -#if NET40 +#if !NETSTANDARD1_6 /// /// Used by deserialization /// diff --git a/src/React.Core/Exceptions/ClearScriptV8InitialisationException.cs b/src/React.Core/Exceptions/ClearScriptV8InitialisationException.cs index a44f897f8..6ffa8dc6e 100644 --- a/src/React.Core/Exceptions/ClearScriptV8InitialisationException.cs +++ b/src/React.Core/Exceptions/ClearScriptV8InitialisationException.cs @@ -1,4 +1,4 @@ -/* +/* * Copyright (c) 2014-Present, Facebook, Inc. * All rights reserved. * @@ -15,7 +15,7 @@ namespace React.Exceptions /// /// Thrown when the ClearScript V8 JavaScript engine fails to initialise /// -#if NET40 +#if !NETSTANDARD1_6 [Serializable] #endif public class ClearScriptV8InitialisationException : ReactException @@ -26,7 +26,7 @@ public class ClearScriptV8InitialisationException : ReactException public ClearScriptV8InitialisationException(Exception innerException) : base(GetMessage(innerException), innerException) { } -#if NET40 +#if !NETSTANDARD1_6 /// /// Used by deserialization /// diff --git a/src/React.Core/Exceptions/ReactConfigurationException.cs b/src/React.Core/Exceptions/ReactConfigurationException.cs index a98aaf32a..b3c3d814c 100644 --- a/src/React.Core/Exceptions/ReactConfigurationException.cs +++ b/src/React.Core/Exceptions/ReactConfigurationException.cs @@ -1,4 +1,4 @@ -/* +/* * Copyright (c) 2014-Present, Facebook, Inc. * All rights reserved. * @@ -15,7 +15,7 @@ namespace React.Exceptions /// /// Thrown when an error occurs while reading a site configuration file. /// -#if NET40 +#if !NETSTANDARD1_6 [Serializable] #endif public class ReactConfigurationException : ReactException @@ -33,7 +33,7 @@ public ReactConfigurationException(string message) : base(message) { } public ReactConfigurationException(string message, Exception innerException) : base(message, innerException) { } -#if NET40 +#if !NETSTANDARD1_6 /// /// Used by deserialization /// diff --git a/src/React.Core/Exceptions/ReactEngineNotFoundException.cs b/src/React.Core/Exceptions/ReactEngineNotFoundException.cs index 2e218884f..ce9dddd8b 100644 --- a/src/React.Core/Exceptions/ReactEngineNotFoundException.cs +++ b/src/React.Core/Exceptions/ReactEngineNotFoundException.cs @@ -1,4 +1,4 @@ -/* +/* * Copyright (c) 2015, Facebook, Inc. * All rights reserved. * @@ -15,7 +15,7 @@ namespace React.Exceptions /// /// Thrown when no valid JavaScript engine is found. /// -#if NET40 +#if !NETSTANDARD1_6 [Serializable] #endif public class ReactEngineNotFoundException : ReactException @@ -31,7 +31,7 @@ public ReactEngineNotFoundException() : base(GetMessage()) { } /// The message that describes the error. public ReactEngineNotFoundException(string message) : base(message) { } -#if NET40 +#if !NETSTANDARD1_6 /// /// Used by deserialization /// diff --git a/src/React.Core/Exceptions/ReactException.cs b/src/React.Core/Exceptions/ReactException.cs index e48287e90..5247b8661 100644 --- a/src/React.Core/Exceptions/ReactException.cs +++ b/src/React.Core/Exceptions/ReactException.cs @@ -1,4 +1,4 @@ -/* +/* * Copyright (c) 2014-Present, Facebook, Inc. * All rights reserved. * @@ -15,7 +15,7 @@ namespace React.Exceptions /// /// Base class for all ReactJS.NET exceptions /// -#if NET40 +#if !NETSTANDARD1_6 [Serializable] #endif public class ReactException : Exception @@ -37,7 +37,7 @@ public ReactException(string message) : base(message) { } public ReactException(string message, Exception innerException) : base(message, innerException) { } -#if NET40 +#if !NETSTANDARD1_6 /// /// Used by deserialization /// diff --git a/src/React.Core/Exceptions/ReactInvalidComponentException.cs b/src/React.Core/Exceptions/ReactInvalidComponentException.cs index 8df058b9f..e4c30c29f 100644 --- a/src/React.Core/Exceptions/ReactInvalidComponentException.cs +++ b/src/React.Core/Exceptions/ReactInvalidComponentException.cs @@ -1,4 +1,4 @@ -/* +/* * Copyright (c) 2014-Present, Facebook, Inc. * All rights reserved. * @@ -15,7 +15,7 @@ namespace React.Exceptions /// /// Thrown when a non-existent component is rendered. /// -#if NET40 +#if !NETSTANDARD1_6 [Serializable] #endif public class ReactInvalidComponentException : ReactException @@ -33,7 +33,7 @@ public ReactInvalidComponentException(string message) : base(message) { } public ReactInvalidComponentException(string message, Exception innerException) : base(message, innerException) { } -#if NET40 +#if !NETSTANDARD1_6 /// /// Used by deserialization /// diff --git a/src/React.Core/Exceptions/ReactNotInitialisedException.cs b/src/React.Core/Exceptions/ReactNotInitialisedException.cs index 0652c3805..79e0e7704 100644 --- a/src/React.Core/Exceptions/ReactNotInitialisedException.cs +++ b/src/React.Core/Exceptions/ReactNotInitialisedException.cs @@ -1,4 +1,4 @@ -/* +/* * Copyright (c) 2015, Facebook, Inc. * All rights reserved. * @@ -15,7 +15,7 @@ namespace React.Exceptions /// /// Thrown when React has not been initialised correctly. /// -#if NET40 +#if !NETSTANDARD1_6 [Serializable] #endif public class ReactNotInitialisedException : ReactException @@ -34,7 +34,7 @@ public ReactNotInitialisedException(string message) : base(message) { } public ReactNotInitialisedException(string message, Exception innerException) : base(message, innerException) { } -#if NET40 +#if !NETSTANDARD1_6 /// /// Used by deserialization /// diff --git a/src/React.Core/Exceptions/ReactScriptLoadException.cs b/src/React.Core/Exceptions/ReactScriptLoadException.cs index 0554d9a4a..f624cf55d 100644 --- a/src/React.Core/Exceptions/ReactScriptLoadException.cs +++ b/src/React.Core/Exceptions/ReactScriptLoadException.cs @@ -1,4 +1,4 @@ -/* +/* * Copyright (c) 2014-Present, Facebook, Inc. * All rights reserved. * @@ -15,7 +15,7 @@ namespace React.Exceptions /// /// Thrown when an error is encountered while loading a JavaScript file. /// -#if NET40 +#if !NETSTANDARD1_6 [Serializable] #endif public class ReactScriptLoadException : ReactException @@ -34,7 +34,7 @@ public ReactScriptLoadException(string message) : base(message) { } public ReactScriptLoadException(string message, Exception innerException) : base(message, innerException) { } -#if NET40 +#if !NETSTANDARD1_6 /// /// Used by deserialization /// diff --git a/src/React.Core/Exceptions/ReactServerRenderingException.cs b/src/React.Core/Exceptions/ReactServerRenderingException.cs index 15a9b9db2..a255f5e2f 100644 --- a/src/React.Core/Exceptions/ReactServerRenderingException.cs +++ b/src/React.Core/Exceptions/ReactServerRenderingException.cs @@ -1,4 +1,4 @@ -/* +/* * Copyright (c) 2014-Present, Facebook, Inc. * All rights reserved. * @@ -15,7 +15,7 @@ namespace React.Exceptions /// /// Thrown when an error occurs during server rendering of a React component. /// -#if NET40 +#if !NETSTANDARD1_6 [Serializable] #endif public class ReactServerRenderingException : ReactException @@ -34,7 +34,7 @@ public ReactServerRenderingException(string message) : base(message) { } public ReactServerRenderingException(string message, Exception innerException) : base(message, innerException) { } -#if NET40 +#if !NETSTANDARD1_6 /// /// Used by deserialization /// diff --git a/src/React.Core/Exceptions/VroomJsInitialisationException.cs b/src/React.Core/Exceptions/VroomJsInitialisationException.cs index aa7c515cb..1cbbbd93b 100644 --- a/src/React.Core/Exceptions/VroomJsInitialisationException.cs +++ b/src/React.Core/Exceptions/VroomJsInitialisationException.cs @@ -1,4 +1,4 @@ -/* +/* * Copyright (c) 2014-Present, Facebook, Inc. * All rights reserved. * @@ -15,7 +15,7 @@ namespace React.Exceptions /// /// Thrown when the VroomJs V8 JavaScript engine fails to initialise. /// -#if NET40 +#if !NETSTANDARD1_6 [Serializable] #endif public class VroomJsInitialisationException : ReactException @@ -26,7 +26,7 @@ public class VroomJsInitialisationException : ReactException public VroomJsInitialisationException(string innerMessage) : base(GetMessage(innerMessage)) { } -#if NET40 +#if !NETSTANDARD1_6 /// /// Used by deserialization /// diff --git a/src/React.Core/FileCacheHash.cs b/src/React.Core/FileCacheHash.cs index ed01fc5ae..9043344b3 100644 --- a/src/React.Core/FileCacheHash.cs +++ b/src/React.Core/FileCacheHash.cs @@ -27,7 +27,7 @@ public class FileCacheHash : IFileCacheHash /// /// Algorithm for calculating file hashes /// -#if NET40 +#if NET40 || NET45 private readonly HashAlgorithm _hash = SHA1.Create("System.Security.Cryptography.SHA1Cng"); #else private readonly HashAlgorithm _hash = SHA1.Create(); diff --git a/src/React.Core/Initializer.cs b/src/React.Core/Initializer.cs index 5200f1063..89b07301b 100644 --- a/src/React.Core/Initializer.cs +++ b/src/React.Core/Initializer.cs @@ -1,4 +1,4 @@ -/* +/* * Copyright (c) 2014-Present, Facebook, Inc. * All rights reserved. * @@ -13,7 +13,7 @@ using System.Reflection; using RegisterOptions = React.TinyIoC.TinyIoCContainer.RegisterOptions; -#if !NET40 +#if !NET40 && !NET45 using Microsoft.Extensions.DependencyModel; #endif @@ -55,7 +55,7 @@ public static void Initialize(Func requestLife private static void InitializeIoC(Func requestLifetimeRegistration) { TinyIoCExtensions.AsRequestLifetime = requestLifetimeRegistration; -#if NET40 +#if NET40 || NET45 var types = AppDomain.CurrentDomain.GetAssemblies() // Only bother checking React assemblies .Where(IsReactAssembly) diff --git a/src/React.Core/JavaScriptEngineFactory.cs b/src/React.Core/JavaScriptEngineFactory.cs index e8905b2d0..13f06fe74 100644 --- a/src/React.Core/JavaScriptEngineFactory.cs +++ b/src/React.Core/JavaScriptEngineFactory.cs @@ -6,7 +6,7 @@ using System.Threading; using JavaScriptEngineSwitcher.Core; using JavaScriptEngineSwitcher.Msie; -#if NET40 +#if NET45 using JavaScriptEngineSwitcher.V8; #else using JavaScriptEngineSwitcher.ChakraCore; @@ -37,7 +37,7 @@ public class JavaScriptEngineFactory : IDisposable, IJavaScriptEngineFactory /// /// The JavaScript Engine Switcher instance used by ReactJS.NET /// - protected readonly JsEngineSwitcher _jsEngineSwitcher; + protected readonly IJsEngineSwitcher _jsEngineSwitcher; /// /// Contains all current JavaScript engine instances. One per thread, keyed on thread ID. /// @@ -60,7 +60,7 @@ protected readonly ConcurrentDictionary _engines /// Initializes a new instance of the class. ///
public JavaScriptEngineFactory( - JsEngineSwitcher jsEngineSwitcher, + IJsEngineSwitcher jsEngineSwitcher, IReactSiteConfiguration config, IFileSystem fileSystem ) @@ -238,7 +238,7 @@ public virtual PooledJsEngine GetEngine() /// The first functioning JavaScript engine with the lowest priority will be used. ///
/// Function to create JavaScript engine - private static Func GetFactory(JsEngineSwitcher jsEngineSwitcher, bool allowMsie) + private static Func GetFactory(IJsEngineSwitcher jsEngineSwitcher, bool allowMsie) { EnsureJsEnginesRegistered(jsEngineSwitcher, allowMsie); @@ -286,22 +286,22 @@ private static Func GetFactory(JsEngineSwitcher jsEngineSwitcher, boo // Epic fail, none of the engines worked. Nothing we can do now. // Throw an error relevant to the engine they should be able to use. -#if NET40 +#if NET45 if (JavaScriptEngineUtils.EnvironmentSupportsClearScript()) { JavaScriptEngineUtils.EnsureEngineFunctional( ex => new ClearScriptV8InitialisationException(ex) ); } + #endif -#if NET40 || NETSTANDARD1_6 if (JavaScriptEngineUtils.EnvironmentSupportsVroomJs()) { JavaScriptEngineUtils.EnsureEngineFunctional( ex => new VroomJsInitialisationException(ex.Message) ); } -#endif + throw new ReactEngineNotFoundException(); } @@ -362,7 +362,7 @@ public void EnsureValidState() ///
/// JavaScript Engine Switcher instance /// Whether to allow the MSIE JS engine - private static void EnsureJsEnginesRegistered(JsEngineSwitcher jsEngineSwitcher, bool allowMsie) + private static void EnsureJsEnginesRegistered(IJsEngineSwitcher jsEngineSwitcher, bool allowMsie) { if (jsEngineSwitcher.EngineFactories.Any()) { @@ -377,7 +377,7 @@ private static void EnsureJsEnginesRegistered(JsEngineSwitcher jsEngineSwitcher, "for more information." ); -#if NET40 +#if NET45 jsEngineSwitcher.EngineFactories.AddV8(); #endif jsEngineSwitcher.EngineFactories.AddVroom(); @@ -385,7 +385,7 @@ private static void EnsureJsEnginesRegistered(JsEngineSwitcher jsEngineSwitcher, { jsEngineSwitcher.EngineFactories.AddMsie(); } -#if !NET40 +#if !NET45 jsEngineSwitcher.EngineFactories.AddChakraCore(); #endif } diff --git a/src/React.Core/JavaScriptWithSourceMap.cs b/src/React.Core/JavaScriptWithSourceMap.cs index a3665af52..ba985ca3a 100644 --- a/src/React.Core/JavaScriptWithSourceMap.cs +++ b/src/React.Core/JavaScriptWithSourceMap.cs @@ -1,4 +1,4 @@ -/* +/* * Copyright (c) 2014-Present, Facebook, Inc. * All rights reserved. * @@ -15,7 +15,7 @@ namespace React /// Represents the result of a Babel transformation along with its /// corresponding source map. ///
-#if NET40 +#if !NETSTANDARD1_6 [Serializable] #endif public class JavaScriptWithSourceMap diff --git a/src/React.Core/MemoryFileCache.cs b/src/React.Core/MemoryFileCache.cs index 8441e2357..481688e24 100644 --- a/src/React.Core/MemoryFileCache.cs +++ b/src/React.Core/MemoryFileCache.cs @@ -7,7 +7,7 @@ * of patent rights can be found in the PATENTS file in the same directory. */ -#if NET40 +#if NET40 || NET45 using System; using System.Collections.Generic; using System.Linq; diff --git a/src/React.Core/React.Core.csproj b/src/React.Core/React.Core.csproj index 9056fafab..b5fd56dba 100644 --- a/src/React.Core/React.Core.csproj +++ b/src/React.Core/React.Core.csproj @@ -5,7 +5,7 @@ Copyright 2014-Present Facebook, Inc ReactJS.NET Core Daniel Lo Nigro - net40;netstandard1.6 + net40;net45;netstandard1.6 true React.Core ../key.snk @@ -16,7 +16,7 @@ http://reactjs.net/img/logo_64.png http://reactjs.net/ https://github.com/reactjs/React.NET#licence - false + false @@ -32,23 +32,26 @@ - - - - - - + + + + + + - - + + + + + diff --git a/src/React.Core/ReactEnvironment.cs b/src/React.Core/ReactEnvironment.cs index b085e9f59..f10cab7fa 100644 --- a/src/React.Core/ReactEnvironment.cs +++ b/src/React.Core/ReactEnvironment.cs @@ -221,14 +221,7 @@ protected virtual void EnsureUserScriptsLoaded() /// JavaScript to execute public virtual void Execute(string code) { - try - { - Engine.Execute(code); - } - catch (JsRuntimeException ex) - { - throw WrapJavaScriptRuntimeException(ex); - } + Engine.Execute(code); } /// @@ -239,14 +232,7 @@ public virtual void Execute(string code) /// Result of the JavaScript code public virtual T Execute(string code) { - try - { - return Engine.Evaluate(code); - } - catch (JsRuntimeException ex) - { - throw WrapJavaScriptRuntimeException(ex); - } + return Engine.Evaluate(code); } /// @@ -258,14 +244,7 @@ public virtual T Execute(string code) /// Result of the JavaScript code public virtual T Execute(string function, params object[] args) { - try - { - return Engine.CallFunctionReturningJson(function, args); - } - catch (JsRuntimeException ex) - { - throw WrapJavaScriptRuntimeException(ex); - } + return Engine.CallFunctionReturningJson(function, args); } /// @@ -275,14 +254,7 @@ public virtual T Execute(string function, params object[] args) /// true if the variable exists; false otherwise public virtual bool HasVariable(string name) { - try - { - return Engine.HasVariable(name); - } - catch (JsRuntimeException ex) - { - throw WrapJavaScriptRuntimeException(ex); - } + return Engine.HasVariable(name); } /// @@ -389,7 +361,7 @@ public virtual T ExecuteWithBabel(string function, params object[] args) var engine = _engineFactory.GetEngineForCurrentThread(); EnsureBabelLoaded(engine); -#if NET40 +#if NET40 || NET45 try { return engine.CallFunctionReturningJson(function, args); @@ -475,30 +447,6 @@ public void ReturnEngineToPool() } } - /// - /// Updates the Message of a to be more useful, containing - /// the line and column numbers. - /// - /// Original exception - /// New exception - protected virtual JsRuntimeException WrapJavaScriptRuntimeException(JsRuntimeException ex) - { - return new JsRuntimeException(string.Format( - "{0}\r\nLine: {1}\r\nColumn:{2}", - ex.Message, - ex.LineNumber, - ex.ColumnNumber - ), ex.EngineName, ex.EngineVersion) - { - ErrorCode = ex.ErrorCode, - Category = ex.Category, - LineNumber = ex.LineNumber, - ColumnNumber = ex.ColumnNumber, - SourceFragment = ex.SourceFragment, - Source = ex.Source, - }; - } - /// /// Gets the site-wide configuration. /// diff --git a/src/React.Core/SourceMap.cs b/src/React.Core/SourceMap.cs index ccc85d07f..a089118f6 100644 --- a/src/React.Core/SourceMap.cs +++ b/src/React.Core/SourceMap.cs @@ -1,4 +1,4 @@ -/* +/* * Copyright (c) 2014-Present, Facebook, Inc. * All rights reserved. * @@ -17,7 +17,7 @@ namespace React /// /// Represents the data contained in a source map /// -#if NET40 +#if !NETSTANDARD1_6 [Serializable] #endif public class SourceMap diff --git a/src/React.Sample.Cassette/React.Sample.Cassette.csproj b/src/React.Sample.Cassette/React.Sample.Cassette.csproj index d836cca39..2b6a4269f 100644 --- a/src/React.Sample.Cassette/React.Sample.Cassette.csproj +++ b/src/React.Sample.Cassette/React.Sample.Cassette.csproj @@ -1,4 +1,4 @@ - + @@ -68,8 +68,8 @@ ..\packages\Cassette.Views.2.4.2\lib\net40\Cassette.Views.dll True - - ..\packages\JavaScriptEngineSwitcher.Core.2.4.9\lib\net40-client\JavaScriptEngineSwitcher.Core.dll + + ..\packages\JavaScriptEngineSwitcher.Core.3.0.0-beta4\lib\net40-client\JavaScriptEngineSwitcher.Core.dll @@ -198,7 +198,7 @@ 10.0 - C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\ + C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\ diff --git a/src/React.Sample.Cassette/Web.config b/src/React.Sample.Cassette/Web.config index 03f710621..750db372c 100644 --- a/src/React.Sample.Cassette/Web.config +++ b/src/React.Sample.Cassette/Web.config @@ -52,17 +52,17 @@ - - - - + + + + - + diff --git a/src/React.Sample.Cassette/packages.config b/src/React.Sample.Cassette/packages.config index 6a88d2bbd..82e237152 100644 --- a/src/React.Sample.Cassette/packages.config +++ b/src/React.Sample.Cassette/packages.config @@ -5,7 +5,7 @@ - + diff --git a/src/React.Sample.ConsoleApp/React.Sample.ConsoleApp.csproj b/src/React.Sample.ConsoleApp/React.Sample.ConsoleApp.csproj index c5ae6b0a6..c91d96f30 100644 --- a/src/React.Sample.ConsoleApp/React.Sample.ConsoleApp.csproj +++ b/src/React.Sample.ConsoleApp/React.Sample.ConsoleApp.csproj @@ -1,4 +1,4 @@ - + Copyright 2014-Present Facebook, Inc @@ -10,7 +10,7 @@ React.Sample.ConsoleApp 1701 1.1 - false + false @@ -28,4 +28,10 @@ + + + PreserveNewest + + + diff --git a/src/React.Sample.CoreMvc/React.Sample.CoreMvc.csproj b/src/React.Sample.CoreMvc/React.Sample.CoreMvc.csproj index b414bac51..a96d98cb4 100644 --- a/src/React.Sample.CoreMvc/React.Sample.CoreMvc.csproj +++ b/src/React.Sample.CoreMvc/React.Sample.CoreMvc.csproj @@ -1,4 +1,4 @@ - + netcoreapp2.0 true @@ -20,11 +20,11 @@ - - - - - + + + + + diff --git a/src/React.Sample.Mvc4/React.Sample.Mvc4.csproj b/src/React.Sample.Mvc4/React.Sample.Mvc4.csproj index d5c86fd41..6a8ec04cb 100644 --- a/src/React.Sample.Mvc4/React.Sample.Mvc4.csproj +++ b/src/React.Sample.Mvc4/React.Sample.Mvc4.csproj @@ -1,5 +1,6 @@ - + + Debug @@ -57,21 +58,21 @@ ..\packages\Antlr.3.5.0.2\lib\Antlr3.Runtime.dll True - - ..\packages\JavaScriptEngineSwitcher.V8.2.4.2\lib\net45\ClearScript.dll + + ..\packages\JavaScriptEngineSwitcher.V8.3.0.0-beta4\lib\net45\ClearScript.dll - - ..\packages\JavaScriptEngineSwitcher.Core.2.4.9\lib\net45\JavaScriptEngineSwitcher.Core.dll + + ..\packages\JavaScriptEngineSwitcher.Core.3.0.0-beta4\lib\net45\JavaScriptEngineSwitcher.Core.dll - - ..\packages\JavaScriptEngineSwitcher.Msie.2.4.9\lib\net45\JavaScriptEngineSwitcher.Msie.dll + + ..\packages\JavaScriptEngineSwitcher.Msie.3.0.0-beta5\lib\net45\JavaScriptEngineSwitcher.Msie.dll - - ..\packages\JavaScriptEngineSwitcher.V8.2.4.2\lib\net45\JavaScriptEngineSwitcher.V8.dll + + ..\packages\JavaScriptEngineSwitcher.V8.3.0.0-beta4\lib\net45\JavaScriptEngineSwitcher.V8.dll - - ..\packages\MsieJavaScriptEngine.2.2.2\lib\net45\MsieJavaScriptEngine.dll + + ..\packages\MsieJavaScriptEngine.3.0.0-beta4\lib\net45\MsieJavaScriptEngine.dll ..\packages\Newtonsoft.Json.9.0.1\lib\net45\Newtonsoft.Json.dll @@ -80,6 +81,9 @@ + + ..\packages\System.Runtime.InteropServices.RuntimeInformation.4.0.0\lib\net45\System.Runtime.InteropServices.RuntimeInformation.dll + @@ -223,6 +227,12 @@ + + + This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. + + + - 3 - 3 - 0 + 4 + 0 + 0-beta1 0 http://reactjs.net/packages/ $(MSBuildProjectDirectory)\tools\MSBuildTasks diff --git a/site/jekyll/_posts/2018-06-30-3.4.0-release.md b/site/jekyll/_posts/2018-06-30-3.4.0-release.md new file mode 100644 index 000000000..a3318762c --- /dev/null +++ b/site/jekyll/_posts/2018-06-30-3.4.0-release.md @@ -0,0 +1,23 @@ +--- +title: "ReactJS.NET 3.4 and 4.0 beta" +layout: post +author: Daniel Lo Nigro +--- + +I'm happy to announce the release of ReactJS.NET 3.4! This is a minor release with a few performance-related changes contributed by [Daniil Sokolyuk](https://github.com/DaniilSokolyuk): + - [#529](https://github.com/reactjs/React.NET/pull/529) - Cache whether component names are valid. + - [#528](https://github.com/reactjs/React.NET/pull/528) - Fast React ID generator. + - [#532](https://github.com/reactjs/React.NET/pull/532) - Avoid large object allocations and reuse everything. + +A few other changes have also been included. Thanks to Dustin Masters for most of these changes: + - [#558](https://github.com/reactjs/React.NET/pull/558) - Fix crashes related to loading React 16.4.1 + - [#541](https://github.com/reactjs/React.NET/pull/541) - Use `ReactDOM.render` rather than `ReactDOM.hydrate` for ClientOnly components. *Thanks to [Suhail Ansari](https://github.com/suhailnaw) for his first open-source contribution! :)* + - [#537](https://github.com/reactjs/React.NET/pull/537) - Added benchmarking tool for benchmarking changes to ReactJS.NET itself. + +ReactJS.NET 4.0 beta has also been released. This release includes all the above changes, and also upgrades JavaScriptEngineSwitcher to 3.0.0 beta. Upgrade instructions can be found in the [How to upgrade applications to version 3.X](https://github.com/Taritsyn/JavaScriptEngineSwitcher/wiki/How-to-upgrade-applications-to-version-3.X) document. + + +Have fun, and as always, please feel free to send feedback or bug reports +[on GitHub](https://github.com/reactjs/React.NET). + +— Daniel and Dustin From fbe44068013f7cf2d1567fd508702cb0c87e2072 Mon Sep 17 00:00:00 2001 From: Daniel Lo Nigro Date: Wed, 4 Jul 2018 13:35:46 -0700 Subject: [PATCH 029/530] Add missing line breaks in blog post --- site/jekyll/_posts/2018-06-30-3.4.0-release.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/site/jekyll/_posts/2018-06-30-3.4.0-release.md b/site/jekyll/_posts/2018-06-30-3.4.0-release.md index a3318762c..d95c59a46 100644 --- a/site/jekyll/_posts/2018-06-30-3.4.0-release.md +++ b/site/jekyll/_posts/2018-06-30-3.4.0-release.md @@ -5,11 +5,13 @@ author: Daniel Lo Nigro --- I'm happy to announce the release of ReactJS.NET 3.4! This is a minor release with a few performance-related changes contributed by [Daniil Sokolyuk](https://github.com/DaniilSokolyuk): + - [#529](https://github.com/reactjs/React.NET/pull/529) - Cache whether component names are valid. - [#528](https://github.com/reactjs/React.NET/pull/528) - Fast React ID generator. - [#532](https://github.com/reactjs/React.NET/pull/532) - Avoid large object allocations and reuse everything. A few other changes have also been included. Thanks to Dustin Masters for most of these changes: + - [#558](https://github.com/reactjs/React.NET/pull/558) - Fix crashes related to loading React 16.4.1 - [#541](https://github.com/reactjs/React.NET/pull/541) - Use `ReactDOM.render` rather than `ReactDOM.hydrate` for ClientOnly components. *Thanks to [Suhail Ansari](https://github.com/suhailnaw) for his first open-source contribution! :)* - [#537](https://github.com/reactjs/React.NET/pull/537) - Added benchmarking tool for benchmarking changes to ReactJS.NET itself. From 14ee4f02431d57a5bd5f07a1897f53dc5c526d1b Mon Sep 17 00:00:00 2001 From: Daniel Lo Nigro Date: Wed, 4 Jul 2018 13:45:59 -0700 Subject: [PATCH 030/530] Add Netlify webhook Only posts comments on pull requests that modify the site (as opposed to regular Netlify comment functionality that *always* posts comments) --- webhooks/NetlifyHook.cs | 94 ++++++++++++++++++++++++++++++++ webhooks/NetlifyHookBody.cs | 44 +++++++++++++++ webhooks/React.Site.Hooks.csproj | 25 +++++++++ webhooks/React.Site.Hooks.sln | 25 +++++++++ webhooks/host.json | 2 + webhooks/local.settings.json | 13 +++++ 6 files changed, 203 insertions(+) create mode 100644 webhooks/NetlifyHook.cs create mode 100644 webhooks/NetlifyHookBody.cs create mode 100644 webhooks/React.Site.Hooks.csproj create mode 100644 webhooks/React.Site.Hooks.sln create mode 100644 webhooks/host.json create mode 100644 webhooks/local.settings.json diff --git a/webhooks/NetlifyHook.cs b/webhooks/NetlifyHook.cs new file mode 100644 index 000000000..66221553a --- /dev/null +++ b/webhooks/NetlifyHook.cs @@ -0,0 +1,94 @@ +using System.Configuration; +using System.Linq; +using System.Net; +using System.Net.Http; +using System.Threading.Tasks; +using Microsoft.Azure.WebJobs; +using Microsoft.Azure.WebJobs.Extensions.Http; +using Microsoft.Azure.WebJobs.Host; +using Octokit; + +namespace React.Site.Hooks +{ + /// + /// Webhook for Netlify website builds + /// + public static class NetlifyHook + { + [FunctionName("NetlifyHook")] + public static async Task Run( + [HttpTrigger(AuthorizationLevel.Function, WebHookType = "genericJson")]HttpRequestMessage req, + TraceWriter log) + { + log.Info("Netlify webhook triggered"); + + string jsonContent = await req.Content.ReadAsStringAsync(); + var data = NetlifyHookBody.CreateFromRequest(jsonContent); + + if (!data.ReviewId.HasValue) + { + log.Info("Build is not for a PR. Ignoring."); + return req.CreateResponse(HttpStatusCode.NoContent); + } + + var client = new GitHubClient(new ProductHeaderValue("reactjs-net-webhooks")) + { + Credentials = new Credentials(ConfigurationManager.AppSettings["GitHubToken"]) + }; + + // Determine if the PR modified any site files + var githubOwner = ConfigurationManager.AppSettings["GitHubOwner"]; + var githubRepo = ConfigurationManager.AppSettings["GitHubRepo"]; + var pullRequestFiles = await client.PullRequest.Files(githubOwner, githubRepo, data.ReviewId.Value); + if (!pullRequestFiles.Any(IsWebsiteFile)) + { + log.Info("PR did not modify the site. Ignoring."); + return req.CreateResponse(HttpStatusCode.NoContent); + } + + var body = BuildCommentBody(data); + + // Check if a comment already exists + var existingComments = await client.Issue.Comment.GetAllForIssue(githubOwner, githubRepo, data.ReviewId.Value); + var existingComment = existingComments.FirstOrDefault( + comment => comment.User.Login == ConfigurationManager.AppSettings["GitHubBotUser"] + ); + if (existingComment != null) + { + // There's already an existing comment, so we'll just edit that one + // rather than posting a brand new comment. + await client.Issue.Comment.Update(githubOwner, githubRepo, existingComment.Id, body); + log.Info($"Updated existing commment {existingComment.Id}"); + } + else + { + await client.Issue.Comment.Create(githubOwner, githubRepo, data.ReviewId.Value, body); + log.Info("Posted commment"); + } + + return req.CreateResponse(HttpStatusCode.NoContent); + } + + private static bool IsWebsiteFile(PullRequestFile file) + { + return file.FileName.StartsWith("site/"); + } + + private static string BuildCommentBody(NetlifyHookBody data) + { + switch (data.State) + { + case "ready": + return $"Website preview is ready!\nBuilt with commit {data.CommitRef}\n{data.DeploySslUrl}"; + + case "error": + var netlifySite = ConfigurationManager.AppSettings["NetlifySite"]; + var buildUrl = $"https://app.netlify.com/sites/{netlifySite}/deploys/{data.BuildId}"; + return $"Failed to build the site :(\n\n```\n{data.ErrorMessage}\n```\n\nBuild log: {buildUrl}"; + + default: + return $"Unknown build state: {data.State}\n{data.DeploySslUrl}"; + } + } + } +} diff --git a/webhooks/NetlifyHookBody.cs b/webhooks/NetlifyHookBody.cs new file mode 100644 index 000000000..855f9989d --- /dev/null +++ b/webhooks/NetlifyHookBody.cs @@ -0,0 +1,44 @@ +using System; +using Newtonsoft.Json; +using Newtonsoft.Json.Serialization; + +namespace React.Site.Hooks +{ + /// + /// Body of Netlify webhook requests + /// + public class NetlifyHookBody + { + public string Id { get; set; } + public string SiteId { get; set; } + public string BuildId { get; set; } + public string State { get; set; } + public string Name { get; set; } + public Uri Url { get; set; } + public Uri SslUrl { get; set; } + public Uri AdminUrl { get; set; } + public Uri DeployUrl { get; set; } + public Uri DeploySslUrl { get; set; } + public DateTime CreatedAt { get; set; } + public DateTime UpdatedAt { get; set; } + public string UserId { get; set; } + public string ErrorMessage { get; set; } + public string CommitRef { get; set; } + public int? ReviewId { get; set; } + public string Branch { get; set; } + public Uri CommitUrl { get; set; } + public string Title { get; set; } + public int? DeployTime { get; set; } + + public static NetlifyHookBody CreateFromRequest(string request) + { + return JsonConvert.DeserializeObject(request, new JsonSerializerSettings + { + ContractResolver = new DefaultContractResolver + { + NamingStrategy = new SnakeCaseNamingStrategy() + } + }); + } + } +} diff --git a/webhooks/React.Site.Hooks.csproj b/webhooks/React.Site.Hooks.csproj new file mode 100644 index 000000000..f270ea361 --- /dev/null +++ b/webhooks/React.Site.Hooks.csproj @@ -0,0 +1,25 @@ + + + net461 + + + + + + + + + + + + PreserveNewest + + + PreserveNewest + Never + + + + + + diff --git a/webhooks/React.Site.Hooks.sln b/webhooks/React.Site.Hooks.sln new file mode 100644 index 000000000..636fd9e5a --- /dev/null +++ b/webhooks/React.Site.Hooks.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 15 +VisualStudioVersion = 15.0.27703.2035 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "React.Site.Hooks", "React.Site.Hooks.csproj", "{2E2F78B4-2B07-41C9-B7DE-FB15373773BA}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {2E2F78B4-2B07-41C9-B7DE-FB15373773BA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2E2F78B4-2B07-41C9-B7DE-FB15373773BA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2E2F78B4-2B07-41C9-B7DE-FB15373773BA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2E2F78B4-2B07-41C9-B7DE-FB15373773BA}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {EB3FA88F-C3DC-4BB3-907F-D38D058A1B46} + EndGlobalSection +EndGlobal diff --git a/webhooks/host.json b/webhooks/host.json new file mode 100644 index 000000000..7a73a41bf --- /dev/null +++ b/webhooks/host.json @@ -0,0 +1,2 @@ +{ +} \ No newline at end of file diff --git a/webhooks/local.settings.json b/webhooks/local.settings.json new file mode 100644 index 000000000..8cc59c400 --- /dev/null +++ b/webhooks/local.settings.json @@ -0,0 +1,13 @@ +{ + "IsEncrypted": false, + "Values": { + "AzureWebJobsStorage": "UseDevelopmentStorage=true", + "AzureWebJobsDashboard": "UseDevelopmentStorage=true", + + "GitHubOwner": "Daniel15", + "GitHubRepo": "React.NET", + "GitHubBotUser": "DanBuild", + "GitHubToken": "CHANGEME", + "NetlifySite": "reactnet-test" + } +} From 6f6ae01135f8abd709d80a2b470bcd2dde1f285d Mon Sep 17 00:00:00 2001 From: Daniel Lo Nigro Date: Wed, 4 Jul 2018 18:44:46 -0700 Subject: [PATCH 031/530] Add Netlify config --- netlify.toml | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 netlify.toml diff --git a/netlify.toml b/netlify.toml new file mode 100644 index 000000000..2889882db --- /dev/null +++ b/netlify.toml @@ -0,0 +1,29 @@ +[build] + base = "site/jekyll" + publish = "site/jekyll/_site" + command = "bundle exec jekyll build" + +# Shortcuts +[[redirects]] + from = "/download" + to = "/getting-started/download.html" + status = 302 + +[[redirects]] + from = "/docs" + to = "/getting-started/download.html" + status = 302 + +# Old documentation URLs +[[redirects]] + from = "/getting-started/aspnet5.html" + to = "/getting-started/aspnetcore.html" + +# Old package URLs +[[redirects]] + from = "/packages/*" + to = "https://ci.appveyor.com/nuget/reactjs.net/:splat" + +[[redirects]] + from = "/dev/packages/*" + to = "https://ci.appveyor.com/nuget/reactjs.net/:splat" From 50f21ccbd8f1beec5d2e02bc4abe824de264858d Mon Sep 17 00:00:00 2001 From: Joshua Goldberg Date: Wed, 11 Jul 2018 08:07:35 -0700 Subject: [PATCH 032/530] Returned a list of missing globals in shims.js `EnsureReactLoaded` uses this to print out which ones are missing. Fixes #569. --- src/React.Core/JavaScriptEngineFactory.cs | 11 ++--- src/React.Core/Resources/shims.js | 43 ++++++++++++------- .../Core/JavaScriptEngineFactoryTest.cs | 6 +-- 3 files changed, 36 insertions(+), 24 deletions(-) diff --git a/src/React.Core/JavaScriptEngineFactory.cs b/src/React.Core/JavaScriptEngineFactory.cs index c32eef261..d8b59ab32 100644 --- a/src/React.Core/JavaScriptEngineFactory.cs +++ b/src/React.Core/JavaScriptEngineFactory.cs @@ -180,13 +180,14 @@ private void LoadUserScripts(IJsEngine engine) /// Engine to check private static void EnsureReactLoaded(IJsEngine engine) { - var result = engine.CallFunction("ReactNET_initReact"); - if (!result) + var result = engine.CallFunction("ReactNET_initReact"); + if (result.Length != 0) { throw new ReactNotInitialisedException( - "React has not been loaded correctly. Please expose your version of React as global " + - "variables named 'React', 'ReactDOM' and 'ReactDOMServer', or enable the " + - "'LoadReact' configuration option to use the built-in version of React." + $"React has not been loaded correctly: missing ({result.Join(", ")})." + + "Please expose your version of React as global variables named " + + "'React', 'ReactDOM' and 'ReactDOMServer', or enable the 'LoadReact'" + + "configuration option to use the built-in version of React." ); } } diff --git a/src/React.Core/Resources/shims.js b/src/React.Core/Resources/shims.js index 4c83560cf..77ebb686f 100644 --- a/src/React.Core/Resources/shims.js +++ b/src/React.Core/Resources/shims.js @@ -1,4 +1,4 @@ -/* +/* * Copyright (c) 2014-Present, Facebook, Inc. * All rights reserved. * @@ -46,26 +46,37 @@ if (!Object.freeze) { /** * Finds a user-supplied version of React and ensures it's exposed globally. * - * @return {bool} + * @return {string[]} Which globals are missing, if any. */ function ReactNET_initReact() { - if ( - typeof React !== 'undefined' && - typeof ReactDOM !== 'undefined' && - typeof ReactDOMServer !== 'undefined' - ) { - // React is already a global, woohoo - return true; + var missing = []; + + if (typeof React === 'undefined') { + if (global.React) { + React = global.React; + } else { + missing.push('React'); + } + } + + if (typeof ReactDOM === 'undefined') { + if (global.ReactDOM) { + ReactDOM = global.ReactDOM; + } else { + missing.push('ReactDOM'); + } } - if (global.React && global.ReactDOM && global.ReactDOMServer) { - React = global.React; - ReactDOM = global.ReactDOM; - ReactDOMServer = global.ReactDOMServer; - return true; + if (typeof ReactDOMServer === 'undefined') { + if (global.ReactDOMServer) { + ReactDOMServer = global.ReactDOMServer; + } + else { + missing.push('ReactDOMServer'); + } } - // :'( - return false; + + return missing; } setTimeout = setTimeout || global.setTimeout; diff --git a/tests/React.Tests/Core/JavaScriptEngineFactoryTest.cs b/tests/React.Tests/Core/JavaScriptEngineFactoryTest.cs index f098d8642..cfac4b600 100644 --- a/tests/React.Tests/Core/JavaScriptEngineFactoryTest.cs +++ b/tests/React.Tests/Core/JavaScriptEngineFactoryTest.cs @@ -125,7 +125,7 @@ public void ShouldHandleLoadingExternalReactVersion() { var jsEngine = new Mock(); jsEngine.Setup(x => x.Evaluate("1 + 1")).Returns(2); - jsEngine.Setup(x => x.CallFunction("ReactNET_initReact")).Returns(true); + jsEngine.Setup(x => x.CallFunction("ReactNET_initReact")).Returns(new string[] { }); var config = new Mock(); config.Setup(x => x.ScriptsWithoutTransform).Returns(new List()); config.Setup(x => x.LoadReact).Returns(false); @@ -134,7 +134,7 @@ public void ShouldHandleLoadingExternalReactVersion() factory.GetEngineForCurrentThread(); - jsEngine.Verify(x => x.CallFunction("ReactNET_initReact")); + jsEngine.Verify(x => x.CallFunction("ReactNET_initReact")); } [Fact] @@ -142,7 +142,7 @@ public void ShouldThrowIfReactVersionNotLoaded() { var jsEngine = new Mock(); jsEngine.Setup(x => x.Evaluate("1 + 1")).Returns(2); - jsEngine.Setup(x => x.CallFunction("ReactNET_initReact")).Returns(false); + jsEngine.Setup(x => x.CallFunction("ReactNET_initReact")).Returns(new string[] { "React" }); var config = new Mock(); config.Setup(x => x.ScriptsWithoutTransform).Returns(new List()); config.Setup(x => x.LoadReact).Returns(false); From 5e30265c1dd4604d27fafbcd5afc62a1a34fe209 Mon Sep 17 00:00:00 2001 From: Josh Goldberg Date: Wed, 11 Jul 2018 23:50:24 -0700 Subject: [PATCH 033/530] Added missing Oxford comma to EnsureREactLoaded complaint (#570) :) --- src/React.Core/JavaScriptEngineFactory.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/React.Core/JavaScriptEngineFactory.cs b/src/React.Core/JavaScriptEngineFactory.cs index c32eef261..32b2bb827 100644 --- a/src/React.Core/JavaScriptEngineFactory.cs +++ b/src/React.Core/JavaScriptEngineFactory.cs @@ -185,7 +185,7 @@ private static void EnsureReactLoaded(IJsEngine engine) { throw new ReactNotInitialisedException( "React has not been loaded correctly. Please expose your version of React as global " + - "variables named 'React', 'ReactDOM' and 'ReactDOMServer', or enable the " + + "variables named 'React', 'ReactDOM', and 'ReactDOMServer', or enable the " + "'LoadReact' configuration option to use the built-in version of React." ); } From c415f604294c98961691e1389c12adc0d42c4b13 Mon Sep 17 00:00:00 2001 From: Andrey Taritsyn Date: Thu, 12 Jul 2018 09:51:44 +0300 Subject: [PATCH 034/530] Added a `netstandard2.0` target (#563) --- src/React.Core/React.Core.csproj | 6 +++++- src/React.Core/ReactEnvironment.cs | 2 +- src/React.Sample.ConsoleApp/App.config | 12 +----------- .../React.Sample.ConsoleApp.csproj | 2 +- tests/React.Tests/Core/ReactEnvironmentTest.cs | 2 ++ tests/React.Tests/Mvc/HtmlHelperExtensionsTests.cs | 2 ++ .../Owin/EntryAssemblyFileSystemTests.cs | 2 ++ tests/React.Tests/React.Tests.csproj | 14 +++++++++++--- .../React.Tests/Router/HtmlHelperExtensionsTest.cs | 2 ++ .../Router/ReactEnvironmentExtensionsTest.cs | 2 ++ .../React.Tests/Router/ReactRouterComponentTest.cs | 2 ++ 11 files changed, 31 insertions(+), 17 deletions(-) diff --git a/src/React.Core/React.Core.csproj b/src/React.Core/React.Core.csproj index c28a3cdeb..5d5a3b1af 100644 --- a/src/React.Core/React.Core.csproj +++ b/src/React.Core/React.Core.csproj @@ -5,7 +5,7 @@ Copyright 2014-Present Facebook, Inc ReactJS.NET Core Daniel Lo Nigro - net40;net45;netstandard1.6 + net40;net45;netstandard1.6;netstandard2.0 true React.Core ../key.snk @@ -56,4 +56,8 @@ + + + + diff --git a/src/React.Core/ReactEnvironment.cs b/src/React.Core/ReactEnvironment.cs index f10cab7fa..d37150226 100644 --- a/src/React.Core/ReactEnvironment.cs +++ b/src/React.Core/ReactEnvironment.cs @@ -361,7 +361,7 @@ public virtual T ExecuteWithBabel(string function, params object[] args) var engine = _engineFactory.GetEngineForCurrentThread(); EnsureBabelLoaded(engine); -#if NET40 || NET45 +#if NET40 || NET45 || NETSTANDARD2_0 try { return engine.CallFunctionReturningJson(function, args); diff --git a/src/React.Sample.ConsoleApp/App.config b/src/React.Sample.ConsoleApp/App.config index 2d5d1add1..0c9bc599e 100644 --- a/src/React.Sample.ConsoleApp/App.config +++ b/src/React.Sample.ConsoleApp/App.config @@ -1,11 +1,5 @@  - - -
-
- - @@ -18,8 +12,4 @@ - - - - - + diff --git a/src/React.Sample.ConsoleApp/React.Sample.ConsoleApp.csproj b/src/React.Sample.ConsoleApp/React.Sample.ConsoleApp.csproj index c91d96f30..cf6d76040 100644 --- a/src/React.Sample.ConsoleApp/React.Sample.ConsoleApp.csproj +++ b/src/React.Sample.ConsoleApp/React.Sample.ConsoleApp.csproj @@ -4,7 +4,7 @@ Copyright 2014-Present Facebook, Inc ReactJS.NET Console Sample Daniel Lo Nigro - net40;netcoreapp1.1 + net40;netcoreapp1.1;netcoreapp2.0 React.Sample.ConsoleApp Exe React.Sample.ConsoleApp diff --git a/tests/React.Tests/Core/ReactEnvironmentTest.cs b/tests/React.Tests/Core/ReactEnvironmentTest.cs index d70ad433a..42a63e0ea 100644 --- a/tests/React.Tests/Core/ReactEnvironmentTest.cs +++ b/tests/React.Tests/Core/ReactEnvironmentTest.cs @@ -29,6 +29,7 @@ public void ExecuteWithBabelWithNoNewThread() environment.ExecuteWithBabel("foo"); mocks.Engine.Verify(x => x.CallFunction("foo"), Times.Exactly(1)); } +#if NET452 || NETCOREAPP2_0 [Fact] public void ExecuteWithBabelWithNewThread() @@ -53,6 +54,7 @@ public void ExecuteWithBabelWithNewThread() "Inner engine should be disposed" ); } +#endif [Fact] public void ExecuteWithBabelShouldBubbleExceptions() diff --git a/tests/React.Tests/Mvc/HtmlHelperExtensionsTests.cs b/tests/React.Tests/Mvc/HtmlHelperExtensionsTests.cs index 53c6b594e..7004b0588 100644 --- a/tests/React.Tests/Mvc/HtmlHelperExtensionsTests.cs +++ b/tests/React.Tests/Mvc/HtmlHelperExtensionsTests.cs @@ -6,6 +6,7 @@ * LICENSE file in the root directory of this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. */ +#if NET452 using System; using System.IO; @@ -209,3 +210,4 @@ public void ReactWithServerOnlyTrueShouldCallRenderHtmlWithTrue() } } } +#endif diff --git a/tests/React.Tests/Owin/EntryAssemblyFileSystemTests.cs b/tests/React.Tests/Owin/EntryAssemblyFileSystemTests.cs index 4f456e9a3..83fd1f90b 100644 --- a/tests/React.Tests/Owin/EntryAssemblyFileSystemTests.cs +++ b/tests/React.Tests/Owin/EntryAssemblyFileSystemTests.cs @@ -6,6 +6,7 @@ * LICENSE file in the root directory of this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. */ +#if NET452 using Xunit; using React.Owin; @@ -25,3 +26,4 @@ public void MapPath(string rootPath, string relativePath, string expected) } } } +#endif diff --git a/tests/React.Tests/React.Tests.csproj b/tests/React.Tests/React.Tests.csproj index 4dd37d3b6..128fa8190 100644 --- a/tests/React.Tests/React.Tests.csproj +++ b/tests/React.Tests/React.Tests.csproj @@ -1,15 +1,16 @@ - + Copyright 2014-Present Facebook, Inc ReactJS.NET Unit Tests Daniel Lo Nigro - net452 + net452;netcoreapp1.1;netcoreapp2.0 React.Tests ../../src/key.snk true true React.Tests + 1.1 true false false @@ -17,14 +18,21 @@ + + + + + + + - + diff --git a/tests/React.Tests/Router/HtmlHelperExtensionsTest.cs b/tests/React.Tests/Router/HtmlHelperExtensionsTest.cs index 3bac03c38..aba8e6a46 100644 --- a/tests/React.Tests/Router/HtmlHelperExtensionsTest.cs +++ b/tests/React.Tests/Router/HtmlHelperExtensionsTest.cs @@ -6,6 +6,7 @@ * LICENSE file in the root directory of this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. */ +#if NET452 using System.Web; using System.Web.Mvc; @@ -291,3 +292,4 @@ public void ShouldFailRedirectWithNoUrl() } } } +#endif diff --git a/tests/React.Tests/Router/ReactEnvironmentExtensionsTest.cs b/tests/React.Tests/Router/ReactEnvironmentExtensionsTest.cs index 3e379303c..a8b44ff23 100644 --- a/tests/React.Tests/Router/ReactEnvironmentExtensionsTest.cs +++ b/tests/React.Tests/Router/ReactEnvironmentExtensionsTest.cs @@ -6,6 +6,7 @@ * LICENSE file in the root directory of this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. */ +#if NET452 || NETCOREAPP2_0 using Moq; using Xunit; @@ -40,3 +41,4 @@ public void EnvironmentShouldGetCalledClientOnly() } } } +#endif diff --git a/tests/React.Tests/Router/ReactRouterComponentTest.cs b/tests/React.Tests/Router/ReactRouterComponentTest.cs index 0fa9a1209..02c6ceb5e 100644 --- a/tests/React.Tests/Router/ReactRouterComponentTest.cs +++ b/tests/React.Tests/Router/ReactRouterComponentTest.cs @@ -6,6 +6,7 @@ * LICENSE file in the root directory of this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. */ +#if NET452 || NETCOREAPP2_0 using Moq; using Xunit; @@ -37,3 +38,4 @@ public void RenderJavaScriptShouldNotIncludeContextOrPath() } } } +#endif From 68a5fdf81760003136b1d0aedd3f5887770a7c0c Mon Sep 17 00:00:00 2001 From: Joshua Goldberg Date: Mon, 16 Jul 2018 11:20:21 -0700 Subject: [PATCH 035/530] Used .NET-traditional String.join --- src/React.Core/JavaScriptEngineFactory.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/React.Core/JavaScriptEngineFactory.cs b/src/React.Core/JavaScriptEngineFactory.cs index d8b59ab32..caa76feb1 100644 --- a/src/React.Core/JavaScriptEngineFactory.cs +++ b/src/React.Core/JavaScriptEngineFactory.cs @@ -184,7 +184,7 @@ private static void EnsureReactLoaded(IJsEngine engine) if (result.Length != 0) { throw new ReactNotInitialisedException( - $"React has not been loaded correctly: missing ({result.Join(", ")})." + + $"React has not been loaded correctly: missing ({String.Join(result, ", ")})." + "Please expose your version of React as global variables named " + "'React', 'ReactDOM' and 'ReactDOMServer', or enable the 'LoadReact'" + "configuration option to use the built-in version of React." From 2b17ed43e320b404f430587ee88ad3ae8f7b284e Mon Sep 17 00:00:00 2001 From: Joshua Goldberg Date: Mon, 16 Jul 2018 12:00:49 -0700 Subject: [PATCH 036/530] No, the other string.Join --- src/React.Core/JavaScriptEngineFactory.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/React.Core/JavaScriptEngineFactory.cs b/src/React.Core/JavaScriptEngineFactory.cs index 51385e535..c65513af5 100644 --- a/src/React.Core/JavaScriptEngineFactory.cs +++ b/src/React.Core/JavaScriptEngineFactory.cs @@ -184,7 +184,7 @@ private static void EnsureReactLoaded(IJsEngine engine) if (result.Length != 0) { throw new ReactNotInitialisedException( - $"React has not been loaded correctly: missing ({String.Join(result, ", ")})." + + $"React has not been loaded correctly: missing ({string.Join(", ", result)})." + "Please expose your version of React as global variables named " + "'React', 'ReactDOM', and 'ReactDOMServer', or enable the 'LoadReact'" + "configuration option to use the built-in version of React." From 09df6484cff74b685548e5ddcf91baa6fd9943a1 Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Thu, 19 Jul 2018 14:23:20 -0700 Subject: [PATCH 037/530] Add missing xml comments --- src/React.Core/IReactIdGenerator.cs | 3 +++ src/React.Core/ReactComponent.cs | 3 +++ 2 files changed, 6 insertions(+) diff --git a/src/React.Core/IReactIdGenerator.cs b/src/React.Core/IReactIdGenerator.cs index 6e2dbfb9f..767be7f1f 100644 --- a/src/React.Core/IReactIdGenerator.cs +++ b/src/React.Core/IReactIdGenerator.cs @@ -9,6 +9,9 @@ namespace React { + /// + /// Fast component ID generator + /// public interface IReactIdGenerator { /// diff --git a/src/React.Core/ReactComponent.cs b/src/React.Core/ReactComponent.cs index 1d088701d..f7d8839db 100644 --- a/src/React.Core/ReactComponent.cs +++ b/src/React.Core/ReactComponent.cs @@ -95,6 +95,9 @@ public object Props _configuration.JsonSerializerSettings); } } + /// + /// Get or sets if this components only should be rendered client side + /// public bool ClientOnly { get; set; } /// From b93e529c8cd6cb4a34ddf2f6203095d7f3da3d29 Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Thu, 19 Jul 2018 14:22:35 -0700 Subject: [PATCH 038/530] Fix app pool crash if JS bundle is locked for reading --- src/React.Core/JavaScriptEngineFactory.cs | 5 +++++ .../Core/JavaScriptEngineFactoryTest.cs | 21 ++++++++++++++++++- 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/src/React.Core/JavaScriptEngineFactory.cs b/src/React.Core/JavaScriptEngineFactory.cs index c65513af5..a2924bc7f 100644 --- a/src/React.Core/JavaScriptEngineFactory.cs +++ b/src/React.Core/JavaScriptEngineFactory.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Concurrent; using System.Diagnostics; +using System.IO; using System.Linq; using System.Reflection; using System.Threading; @@ -171,6 +172,10 @@ private void LoadUserScripts(IJsEngine engine) ex.ColumnNumber )); } + catch (IOException ex) + { + _scriptLoadException = new ReactScriptLoadException(ex.Message); + } } } diff --git a/tests/React.Tests/Core/JavaScriptEngineFactoryTest.cs b/tests/React.Tests/Core/JavaScriptEngineFactoryTest.cs index cfac4b600..b39ef6cea 100644 --- a/tests/React.Tests/Core/JavaScriptEngineFactoryTest.cs +++ b/tests/React.Tests/Core/JavaScriptEngineFactoryTest.cs @@ -9,11 +9,12 @@ using System; using System.Collections.Generic; +using System.IO; using System.Threading; using JavaScriptEngineSwitcher.Core; using Moq; -using Xunit; using React.Exceptions; +using Xunit; namespace React.Tests.Core { @@ -155,6 +156,24 @@ public void ShouldThrowIfReactVersionNotLoaded() }); } + [Fact] + public void FileLockExceptionShouldBeWrapped() + { + var config = new Mock(); + config.Setup(x => x.ScriptsWithoutTransform).Returns(new List { "foo.js" }); + config.Setup(x => x.LoadReact).Returns(false); + var fileSystem = new Mock(); + fileSystem.Setup(x => x.ReadAsString("foo.js")).Throws(new IOException("File was locked")); + + var jsEngine = new Mock(); + jsEngine.Setup(x => x.Evaluate("1 + 1")).Returns(2); + jsEngine.Setup(x => x.Execute("Test")); + var factory = CreateFactory(config, fileSystem, () => jsEngine.Object); + + var ex = Assert.Throws(() => factory.GetEngineForCurrentThread()); + Assert.Equal("File was locked", ex.Message); + } + [Fact] public void ShouldThrowScriptErrorIfReactFails() { From 83785cf9ea6cea01341ca023a32b4086d5a14cfb Mon Sep 17 00:00:00 2001 From: Daniel Lo Nigro Date: Fri, 20 Jul 2018 22:29:34 -0700 Subject: [PATCH 039/530] 4.0.0-beta2 release --- build.proj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.proj b/build.proj index 833d5f61e..52c6bdbe1 100644 --- a/build.proj +++ b/build.proj @@ -11,7 +11,7 @@ of patent rights can be found in the PATENTS file in the same directory. 4 0 - 0-beta1 + 0-beta2 0 http://reactjs.net/packages/ $(MSBuildProjectDirectory)\tools\MSBuildTasks From 4dfddc51482d7121297585a852f8969b06470cf7 Mon Sep 17 00:00:00 2001 From: Andrey Taritsyn Date: Mon, 23 Jul 2018 19:57:40 +0300 Subject: [PATCH 040/530] Fix for the `EnsureReactLoaded` method of `React.JavaScriptEngineFactory` class (#574) --- src/React.Core/JavaScriptEngineFactory.cs | 8 +++++--- src/React.Core/Resources/shims.js | 4 ++-- tests/React.Tests/Core/JavaScriptEngineFactoryTest.cs | 6 +++--- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/src/React.Core/JavaScriptEngineFactory.cs b/src/React.Core/JavaScriptEngineFactory.cs index a2924bc7f..d622fdc0d 100644 --- a/src/React.Core/JavaScriptEngineFactory.cs +++ b/src/React.Core/JavaScriptEngineFactory.cs @@ -185,11 +185,13 @@ private void LoadUserScripts(IJsEngine engine) /// Engine to check private static void EnsureReactLoaded(IJsEngine engine) { - var result = engine.CallFunction("ReactNET_initReact"); - if (result.Length != 0) + var globalsString = engine.CallFunction("ReactNET_initReact"); + string[] globals = globalsString.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries); + + if (globals.Length != 0) { throw new ReactNotInitialisedException( - $"React has not been loaded correctly: missing ({string.Join(", ", result)})." + + $"React has not been loaded correctly: missing ({string.Join(", ", globals)})." + "Please expose your version of React as global variables named " + "'React', 'ReactDOM', and 'ReactDOMServer', or enable the 'LoadReact'" + "configuration option to use the built-in version of React." diff --git a/src/React.Core/Resources/shims.js b/src/React.Core/Resources/shims.js index 77ebb686f..d95644170 100644 --- a/src/React.Core/Resources/shims.js +++ b/src/React.Core/Resources/shims.js @@ -46,7 +46,7 @@ if (!Object.freeze) { /** * Finds a user-supplied version of React and ensures it's exposed globally. * - * @return {string[]} Which globals are missing, if any. + * @return {string} Comma-separated list of missing globals. */ function ReactNET_initReact() { var missing = []; @@ -76,7 +76,7 @@ function ReactNET_initReact() { } } - return missing; + return missing.join(','); } setTimeout = setTimeout || global.setTimeout; diff --git a/tests/React.Tests/Core/JavaScriptEngineFactoryTest.cs b/tests/React.Tests/Core/JavaScriptEngineFactoryTest.cs index b39ef6cea..49422f6bd 100644 --- a/tests/React.Tests/Core/JavaScriptEngineFactoryTest.cs +++ b/tests/React.Tests/Core/JavaScriptEngineFactoryTest.cs @@ -126,7 +126,7 @@ public void ShouldHandleLoadingExternalReactVersion() { var jsEngine = new Mock(); jsEngine.Setup(x => x.Evaluate("1 + 1")).Returns(2); - jsEngine.Setup(x => x.CallFunction("ReactNET_initReact")).Returns(new string[] { }); + jsEngine.Setup(x => x.CallFunction("ReactNET_initReact")).Returns(string.Empty); var config = new Mock(); config.Setup(x => x.ScriptsWithoutTransform).Returns(new List()); config.Setup(x => x.LoadReact).Returns(false); @@ -135,7 +135,7 @@ public void ShouldHandleLoadingExternalReactVersion() factory.GetEngineForCurrentThread(); - jsEngine.Verify(x => x.CallFunction("ReactNET_initReact")); + jsEngine.Verify(x => x.CallFunction("ReactNET_initReact")); } [Fact] @@ -143,7 +143,7 @@ public void ShouldThrowIfReactVersionNotLoaded() { var jsEngine = new Mock(); jsEngine.Setup(x => x.Evaluate("1 + 1")).Returns(2); - jsEngine.Setup(x => x.CallFunction("ReactNET_initReact")).Returns(new string[] { "React" }); + jsEngine.Setup(x => x.CallFunction("ReactNET_initReact")).Returns("React"); var config = new Mock(); config.Setup(x => x.ScriptsWithoutTransform).Returns(new List()); config.Setup(x => x.LoadReact).Returns(false); From fa53fb90a20b95b441de04997f500c019961daaf Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Sun, 5 Aug 2018 15:40:27 -0700 Subject: [PATCH 041/530] Update built-in react and react-dom packages We need to update to at least 16.4 soon, but VroomJs needs to be deprecated in React.Core before that can happen. Fixes #577 --- src/React.Core/package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/React.Core/package.json b/src/React.Core/package.json index 29dd13368..efcaea20d 100644 --- a/src/React.Core/package.json +++ b/src/React.Core/package.json @@ -12,8 +12,8 @@ "gulp-uglify": "~1.5.3", "json-loader": "~0.5.4", "prop-types": "~15.6.0", - "react": "~16.0.0", - "react-dom": "~16.0.0", + "react": "16.0.1", + "react-dom": "16.0.1", "vinyl-named": "~1.1.0", "webpack": "~1.13.1", "webpack-stream": "~3.2.0" From 669cd41e8f4d53b999af31c004027ac827997379 Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Sun, 5 Aug 2018 15:45:01 -0700 Subject: [PATCH 042/530] Update built-in react and react-dom packages Follow up commit to fa53fb90a20b95b441de04997f500c019961daaf Misread the release notes.. only react-dom was updated. --- src/React.Core/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/React.Core/package.json b/src/React.Core/package.json index efcaea20d..50fc0dceb 100644 --- a/src/React.Core/package.json +++ b/src/React.Core/package.json @@ -12,7 +12,7 @@ "gulp-uglify": "~1.5.3", "json-loader": "~0.5.4", "prop-types": "~15.6.0", - "react": "16.0.1", + "react": "~16.0.0", "react-dom": "16.0.1", "vinyl-named": "~1.1.0", "webpack": "~1.13.1", From 35d0557985896bdade4bb3bcd541c0fa959f10b2 Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Mon, 6 Aug 2018 20:59:36 -0700 Subject: [PATCH 043/530] Update tests (#578) * Fix tests on OS X * Add basic server-render integration test This first commit verifies the test fails during a comparison. A follow up commit will be pushed after the fail is detected by xunit. * Update build.proj * Add x86 chakracore binaries * This should pass * Test externally loaded React * Fix indentation --- build.proj | 10 ++-- src/React.sln | 8 ++- .../React.Tests.Integration.csproj | 27 ++++++++++ tests/React.Tests.Integration/Sample.jsx | 9 ++++ .../ServerRenderTests.cs | 52 +++++++++++++++++++ .../React.Tests/Core/ReactEnvironmentTest.cs | 12 ++--- 6 files changed, 108 insertions(+), 10 deletions(-) create mode 100644 tests/React.Tests.Integration/React.Tests.Integration.csproj create mode 100644 tests/React.Tests.Integration/Sample.jsx create mode 100644 tests/React.Tests.Integration/ServerRenderTests.cs diff --git a/build.proj b/build.proj index 52c6bdbe1..677632969 100644 --- a/build.proj +++ b/build.proj @@ -17,7 +17,7 @@ of patent rights can be found in the PATENTS file in the same directory. $(MSBuildProjectDirectory)\tools\MSBuildTasks $(MSBuildProjectDirectory)\output Dev - + src\React.sln @@ -83,9 +83,9 @@ of patent rights can be found in the PATENTS file in the same directory. - @@ -102,6 +102,10 @@ of patent rights can be found in the PATENTS file in the same directory. WorkingDirectory="$(MSBuildProjectDirectory)" Command="dotnet test --configuration Release --no-build tests/React.Tests/React.Tests.csproj" /> + diff --git a/src/React.sln b/src/React.sln index c7771aa62..44929f56b 100644 --- a/src/React.sln +++ b/src/React.sln @@ -1,4 +1,4 @@ - + Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 15 VisualStudioVersion = 15.0.27004.2002 @@ -74,6 +74,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "React.Sample.Router.CoreMvc EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "React.Tests.Benchmarks", "..\tests\React.Tests.Benchmarks\React.Tests.Benchmarks.csproj", "{083462CB-2FC0-4508-A7ED-4B77B44C3E23}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "React.Tests.Integration", "..\tests\React.Tests.Integration\React.Tests.Integration.csproj", "{5EBC5EA6-7234-40E0-A07B-75D01385FAD2}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -160,6 +162,10 @@ Global {083462CB-2FC0-4508-A7ED-4B77B44C3E23}.Debug|Any CPU.Build.0 = Debug|Any CPU {083462CB-2FC0-4508-A7ED-4B77B44C3E23}.Release|Any CPU.ActiveCfg = Release|Any CPU {083462CB-2FC0-4508-A7ED-4B77B44C3E23}.Release|Any CPU.Build.0 = Release|Any CPU + {5EBC5EA6-7234-40E0-A07B-75D01385FAD2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5EBC5EA6-7234-40E0-A07B-75D01385FAD2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5EBC5EA6-7234-40E0-A07B-75D01385FAD2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5EBC5EA6-7234-40E0-A07B-75D01385FAD2}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/tests/React.Tests.Integration/React.Tests.Integration.csproj b/tests/React.Tests.Integration/React.Tests.Integration.csproj new file mode 100644 index 000000000..0e5861b1f --- /dev/null +++ b/tests/React.Tests.Integration/React.Tests.Integration.csproj @@ -0,0 +1,27 @@ + + + netcoreapp2.0;net461 + false + + + + + + + + + + + + + + + + + Always + + + Always + + + diff --git a/tests/React.Tests.Integration/Sample.jsx b/tests/React.Tests.Integration/Sample.jsx new file mode 100644 index 000000000..4116aa6a7 --- /dev/null +++ b/tests/React.Tests.Integration/Sample.jsx @@ -0,0 +1,9 @@ +class HelloWorld extends React.Component { + render() { + return ( +
+ Hello {this.props.name}! +
+ ); + } +} diff --git a/tests/React.Tests.Integration/ServerRenderTests.cs b/tests/React.Tests.Integration/ServerRenderTests.cs new file mode 100644 index 000000000..1ffc4a4b6 --- /dev/null +++ b/tests/React.Tests.Integration/ServerRenderTests.cs @@ -0,0 +1,52 @@ +using System; +using System.IO; +using System.Text; +using JavaScriptEngineSwitcher.ChakraCore; +using JavaScriptEngineSwitcher.Core; +using Newtonsoft.Json.Linq; +using React; +using Xunit; + +namespace React.Tests.Integration +{ + public class ServerRenderTests + { + [Fact] + public void RendersSuccessfullyWithBundledReact() + { + Initializer.Initialize(registration => registration.AsSingleton()); + AssemblyRegistration.Container.Register(); + AssemblyRegistration.Container.Register(); + JsEngineSwitcher.Current.EngineFactories.Add(new ChakraCoreJsEngineFactory()); + JsEngineSwitcher.Current.DefaultEngineName = ChakraCoreJsEngine.EngineName; + + ReactSiteConfiguration.Configuration + .SetReuseJavaScriptEngines(false) + .AddScript("Sample.jsx"); + + var stringWriter = new StringWriter(new StringBuilder(128)); + ReactEnvironment.GetCurrentOrThrow.CreateComponent("HelloWorld", new { name = "Tester" }, serverOnly: true).RenderHtml(stringWriter, renderServerOnly: true); + Assert.Equal("
Hello Tester!
", stringWriter.ToString()); + } + + [Fact] + public void RendersSuccessfullyWithExternalReact() + { + Initializer.Initialize(registration => registration.AsSingleton()); + AssemblyRegistration.Container.Register(); + AssemblyRegistration.Container.Register(); + JsEngineSwitcher.Current.EngineFactories.Add(new ChakraCoreJsEngineFactory()); + JsEngineSwitcher.Current.DefaultEngineName = ChakraCoreJsEngine.EngineName; + + ReactSiteConfiguration.Configuration + .SetReuseJavaScriptEngines(false) + .SetLoadReact(false) + .AddScriptWithoutTransform("react.generated.js") + .AddScript("Sample.jsx"); + + var stringWriter = new StringWriter(new StringBuilder(128)); + ReactEnvironment.GetCurrentOrThrow.CreateComponent("HelloWorld", new { name = "Tester" }, serverOnly: true).RenderHtml(stringWriter, renderServerOnly: true); + Assert.Equal("
Hello Tester!
", stringWriter.ToString()); + } + } +} diff --git a/tests/React.Tests/Core/ReactEnvironmentTest.cs b/tests/React.Tests/Core/ReactEnvironmentTest.cs index 42a63e0ea..234d09c54 100644 --- a/tests/React.Tests/Core/ReactEnvironmentTest.cs +++ b/tests/React.Tests/Core/ReactEnvironmentTest.cs @@ -3,7 +3,7 @@ * All rights reserved. * * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant + * LICENSE file in the root directory of this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. */ @@ -41,15 +41,15 @@ public void ExecuteWithBabelWithNewThread() mocks.Engine.Setup(x => x.CallFunction("foo")) .Callback(() => mocks.Engine.Setup(x => x.CallFunction("foo"))) .Throws(new Exception("Out of stack space")); - + environment.ExecuteWithBabel("foo"); mocks.EngineFactory.Verify( - x => x.GetEngineForCurrentThread(), + x => x.GetEngineForCurrentThread(), Times.Exactly(2), "Two engines should be created (initial thread and new thread)" ); mocks.EngineFactory.Verify( - x => x.DisposeEngineForCurrentThread(), + x => x.DisposeEngineForCurrentThread(), Times.Exactly(1), "Inner engine should be disposed" ); @@ -124,7 +124,7 @@ public void CreatesIReactComponent() environment.CreateComponent(component.Object); // A single nameless component was successfully added! - Assert.Equal(";\r\n", environment.GetInitJavaScript()); + Assert.Equal(";" + Environment.NewLine, environment.GetInitJavaScript()); } [Fact] @@ -173,7 +173,7 @@ public ReactEnvironment CreateReactEnvironment() ReactIdGenerator.Object ); } - + public Mock CreateMockedReactEnvironment() { return new Mock( From cefc98c1d8c51abf15f76a72d1803d857b2348af Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Wed, 8 Aug 2018 20:16:10 -0700 Subject: [PATCH 044/530] Add note about visual studio community Fixes #453 --- site/jekyll/dev/contributing.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/site/jekyll/dev/contributing.md b/site/jekyll/dev/contributing.md index c10ddef64..74ee15631 100644 --- a/site/jekyll/dev/contributing.md +++ b/site/jekyll/dev/contributing.md @@ -15,6 +15,8 @@ We actively welcome your pull requests on the 5. Make sure your code lints. 6. If you haven't already, complete the Contributor License Agreement ("CLA"). +If you don't have Visual Studio 2017, get the [community edition](https://visualstudio.microsoft.com/downloads/) (it's free!) + Contributor License Agreement ("CLA") ------------------------------------- In order to accept your pull request, we need you to submit a CLA. You only need From 37b3f48b68ad7cca68385ee62cbbbec17af5c63a Mon Sep 17 00:00:00 2001 From: Daniel Lo Nigro Date: Sat, 11 Aug 2018 21:42:42 -0700 Subject: [PATCH 045/530] Fix insecure (non-HTTPS) links on site (#581) There's some non-HTTPS URLs: ``` ... ``` This should fix it. --- site/jekyll/_config.yml | 2 +- site/jekyll/_layouts/default.html | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/site/jekyll/_config.yml b/site/jekyll/_config.yml index c7ff9a184..9f5860846 100644 --- a/site/jekyll/_config.yml +++ b/site/jekyll/_config.yml @@ -4,7 +4,7 @@ pygments: true permalink: /:year/:month/:title.html paginate: 5 paginate_path: /blog/page:num.html -url: http://reactjs.net +url: https://reactjs.net doc-sections: - id: getting-started title: Getting Started diff --git a/site/jekyll/_layouts/default.html b/site/jekyll/_layouts/default.html index 76fc521db..93ff780bb 100644 --- a/site/jekyll/_layouts/default.html +++ b/site/jekyll/_layouts/default.html @@ -9,7 +9,7 @@ - + From 5bb7d508293790cf4420b1e35013cc1586f691d2 Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Sun, 12 Aug 2018 13:02:24 -0700 Subject: [PATCH 046/530] Fix JS engine reloading in .NET Core (#580) * Fix JS engine reloading in .NET Core Fixes #554 * Check environment before rewriting path * Use Path.GetFullPath --- .../AspNetFileSystem.cs | 19 ++++++------ tests/React.Tests/Core/MiddlewareTests.cs | 30 +++++++++++++++++++ tests/React.Tests/React.Tests.csproj | 8 +++-- 3 files changed, 46 insertions(+), 11 deletions(-) create mode 100644 tests/React.Tests/Core/MiddlewareTests.cs diff --git a/src/React.AspNet.Middleware/AspNetFileSystem.cs b/src/React.AspNet.Middleware/AspNetFileSystem.cs index 4781a4fa5..9f8473771 100644 --- a/src/React.AspNet.Middleware/AspNetFileSystem.cs +++ b/src/React.AspNet.Middleware/AspNetFileSystem.cs @@ -1,9 +1,9 @@ -/* +/* * Copyright (c) 2015, Facebook, Inc. * All rights reserved. * * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant + * LICENSE file in the root directory of this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. */ @@ -13,7 +13,7 @@ namespace React.AspNet { /// - /// Handles file system functionality, such as reading files. Maps all paths from + /// Handles file system functionality, such as reading files. Maps all paths from /// application-relative (~/...) to full paths using ASP.NET's MapPath method. /// public class AspNetFileSystem : FileSystemBase @@ -36,12 +36,13 @@ public AspNetFileSystem(IHostingEnvironment hostingEnv) /// Full path of the file public override string MapPath(string relativePath) { - if (relativePath.StartsWith(_hostingEnv.WebRootPath)) - { - return relativePath; - } - relativePath = relativePath.TrimStart('~').TrimStart('/'); - return Path.Combine(_hostingEnv.WebRootPath, relativePath); + if (relativePath.StartsWith(_hostingEnv.WebRootPath)) + { + return relativePath; + } + relativePath = relativePath.TrimStart('~').TrimStart('/'); + + return Path.GetFullPath(Path.Combine(_hostingEnv.WebRootPath, relativePath)); } } } diff --git a/tests/React.Tests/Core/MiddlewareTests.cs b/tests/React.Tests/Core/MiddlewareTests.cs new file mode 100644 index 000000000..c6a92e797 --- /dev/null +++ b/tests/React.Tests/Core/MiddlewareTests.cs @@ -0,0 +1,30 @@ +#if NETCOREAPP2_0 + +using System.Runtime.InteropServices; +using Microsoft.AspNetCore.Hosting; +using Moq; +using React.AspNet; +using Xunit; + +namespace React.Tests.Core +{ + public class MiddlewareTests + { + [Fact] + public void ForwardSlashesAreTransformed() + { + var environment = new Mock(); + if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) + { + environment.Setup(x => x.WebRootPath).Returns("c:\\temp"); + Assert.Equal("c:\\temp\\wwwroot\\script.js", new AspNetFileSystem(environment.Object).MapPath("~/wwwroot/script.js")); + } + else + { + environment.Setup(x => x.WebRootPath).Returns("/var/www"); + Assert.Equal("/var/www/wwwroot/script.js", new AspNetFileSystem(environment.Object).MapPath("~/wwwroot/script.js")); + } + } + } +} +#endif diff --git a/tests/React.Tests/React.Tests.csproj b/tests/React.Tests/React.Tests.csproj index 128fa8190..fc0169c10 100644 --- a/tests/React.Tests/React.Tests.csproj +++ b/tests/React.Tests/React.Tests.csproj @@ -1,4 +1,4 @@ - + Copyright 2014-Present Facebook, Inc @@ -30,12 +30,16 @@
+ + + + - + From 3281a16d6f3aee8c13f4f58d65baa6c915f95a5a Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Mon, 20 Aug 2018 08:48:43 -0700 Subject: [PATCH 047/530] Remove auto-registered JS engines from React.Core (#582) * Remove auto-registered JS engines from React.Core * Update docs * Update samples * Fix cassette build * Fix building Cassette sample in release mode * Remove unused code * Add missing reference * Fix Cassette sample build * Fix code block syntax * Fix language hint * Update error handling and add some tests --- site/jekyll/getting-started/aspnet.md | 58 ++++++++++ site/jekyll/getting-started/aspnetcore.md | 26 ++++- site/jekyll/getting-started/tutorial.md | 6 +- .../getting-started/tutorial_aspnet4.md | 6 +- site/jekyll/getting-started/usage.md | 6 +- site/jekyll/guides/azure.md | 43 ------- site/jekyll/guides/es6.md | 4 +- site/jekyll/guides/mono.md | 27 +---- site/jekyll/guides/webpack.md | 2 + site/jekyll/index.md | 4 +- src/Cassette.React/BabelBundleProcessor.cs | 2 +- src/Cassette.React/Cassette.React.csproj | 1 + src/Cassette.React/CassetteMSBuildStartup.cs | 9 +- .../ClearScriptV8InitialisationException.cs | 51 --------- .../ReactEngineNotFoundException.cs | 19 +--- .../VroomJsInitialisationException.cs | 51 --------- src/React.Core/IReactSiteConfiguration.cs | 12 -- src/React.Core/JavaScriptEngineFactory.cs | 106 +++++------------- src/React.Core/JavaScriptEngineUtils.cs | 18 +-- src/React.Core/React.Core.csproj | 10 +- src/React.MSBuild/React.MSBuild.csproj | 4 + src/React.MSBuild/TransformBabel.cs | 7 +- .../App_Start/ReactConfig.cs | 29 +++++ src/React.Sample.Cassette/Global.asax.cs | 22 +++- .../React.Sample.Cassette.csproj | 10 +- src/React.Sample.Cassette/Web.config | 53 +++++---- src/React.Sample.Cassette/packages.config | 2 + src/React.Sample.ConsoleApp/Program.cs | 5 + .../React.Sample.ConsoleApp.csproj | 7 ++ .../App_Start/ReactConfig.cs | 8 +- .../React.Sample.Mvc4.csproj | 3 - src/React.Sample.Mvc4/packages.config | 1 - .../React.Sample.Owin.csproj | 2 + src/React.Sample.Owin/Startup.cs | 8 +- .../App_Start/ReactConfig.cs | 10 +- .../Core/JavaScriptEngineFactoryTest.cs | 54 ++++++++- 36 files changed, 322 insertions(+), 364 deletions(-) create mode 100644 site/jekyll/getting-started/aspnet.md delete mode 100644 site/jekyll/guides/azure.md delete mode 100644 src/React.Core/Exceptions/ClearScriptV8InitialisationException.cs delete mode 100644 src/React.Core/Exceptions/VroomJsInitialisationException.cs create mode 100644 src/React.Sample.Cassette/App_Start/ReactConfig.cs diff --git a/site/jekyll/getting-started/aspnet.md b/site/jekyll/getting-started/aspnet.md new file mode 100644 index 000000000..4eaf85657 --- /dev/null +++ b/site/jekyll/getting-started/aspnet.md @@ -0,0 +1,58 @@ +--- +id: aspnet +layout: docs +title: Getting Started on ASP.NET +--- + +This guide covers enabling server-side rendering and Babel compilation. If you want a step-by-step guide on configuring a brand new site, see [the ReactJS.NET tutorial for ASP.NET](/getting-started/tutorial_aspnet4.html). + +ReactJS.NET requires Visual Studio 2015 and MVC 4 or 5. + +Install the `React.Web.Mvc4` package through NuGet. You will also need to install a JS engine to use (either V8 or ChakraCore are recommended). See the [JSEngineSwitcher docs](https://github.com/Taritsyn/JavaScriptEngineSwitcher/wiki/Registration-of-JS-engines) for more information. + +To use V8, add the following packages: + +``` +JavaScriptEngineSwitcher.V8 +JavaScriptEngineSwitcher.V8.Native.win-x64 +``` + +`ReactConfig.cs` will be automatically generated for you. Update it to register a JS engine and your JSX files: + +```csharp +using JavaScriptEngineSwitcher.Core; +using JavaScriptEngineSwitcher.V8; + +[assembly: WebActivatorEx.PreApplicationStartMethod(typeof(React.Sample.Mvc4.ReactConfig), "Configure")] + +namespace React.Sample.Mvc4 +{ + public static class ReactConfig + { + public static void Configure() + { + ReactSiteConfiguration.Configuration + .AddScript("~/Content/Sample.jsx"); + + JsEngineSwitcher.Current.DefaultEngineName = V8JsEngine.EngineName; + JsEngineSwitcher.Current.EngineFactories.AddV8(); + } + } +} +``` + +Reference JSX files directly in script tags: + +```html + +``` + +You're done! You can now call `Html.React` from within Razor files: + +``` +@Html.React("Sample", new { initialComments = Model.Comments, page = Model.Page }) +``` + +You can also use [webpack](/guides/webpack.html) or [System.Web.Optimization](/guides/weboptimizer.html) to bundle your scripts together. + +Check out the [sample project](https://github.com/reactjs/React.NET/tree/master/src/React.Sample.Mvc4) for a working demo. diff --git a/site/jekyll/getting-started/aspnetcore.md b/site/jekyll/getting-started/aspnetcore.md index 57ec63f6f..576a380ab 100644 --- a/site/jekyll/getting-started/aspnetcore.md +++ b/site/jekyll/getting-started/aspnetcore.md @@ -4,14 +4,18 @@ layout: docs title: Getting Started on ASP.NET Core --- -Getting started with ReactJS.NET on ASP.NET Core requires a few more steps compared to previous versions of ASP.NET and MVC. If you want a step-by-step guide on configuring a brand new site, see [the ReactJS.NET tutorial for ASP.NET Core](/getting-started/tutorial.html). +This guide covers enabling server-side rendering and Babel compilation. Getting started with ReactJS.NET on ASP.NET Core requires a few more steps compared to previous versions of ASP.NET and MVC. If you want a step-by-step guide on configuring a brand new site, see [the ReactJS.NET tutorial for ASP.NET Core](/getting-started/tutorial.html). ReactJS.NET requires Visual Studio 2015 and ASP.NET Core RTM (final release). It is recommended to use .NET Framework, but ReactJS.NET also works with .NET Core. -Install the `React.AspNet` package through NuGet. After the package is installed, ReactJS.NET needs to be initialised in your `Startup.cs` file (unfortunately this can not be done automatically like in previous versions of ASP.NET with WebActivator). At the top of the file, add: +Install the `React.AspNet` package through NuGet. You will also need to install a JS engine to use (either V8 or ChakraCore are recommended). See the [JSEngineSwitcher docs](https://github.com/Taritsyn/JavaScriptEngineSwitcher/wiki/Registration-of-JS-engines) for more information. After these packages are installed, ReactJS.NET needs to be initialised in your `Startup.cs` file (unfortunately this can not be done automatically like in previous versions of ASP.NET with WebActivator). + +At the top of Startup.cs, add: ``` using Microsoft.AspNetCore.Http; +using JavaScriptEngineSwitcher.Core; +using JavaScriptEngineSwitcher.ChakraCore; using React.AspNet; ``` @@ -27,6 +31,10 @@ Add: ```csharp services.AddSingleton(); services.AddReact(); + +// Make sure a JS engine is registered, or you will get an error! +services.AddJsEngineSwitcher(options => options.DefaultEngineName = ChakraCoreJsEngine.EngineName) + .AddChakraCore(); ``` @@ -66,6 +74,18 @@ Finally, add this to `Views\_ViewImports.cshtml` (or create it if it doesn't exi @using React.AspNet ``` -Once ReactJS.NET has been configured, you will be able to use [on-the-fly JSX to JavaScript compilation](/getting-started/usage.html) and [server-side rendering](/guides/server-side-rendering.html). +Reference JSX files directly in script tags: + +```html + +``` + +You're done! You can now call `Html.React` from within Razor files: + +``` +@Html.React("Sample", new { initialComments = Model.Comments, page = Model.Page }) +``` If you need support for non-Windows platforms, please see the [ChakraCore guide](/guides/chakracore.html). + +Check out the [sample project](https://github.com/reactjs/React.NET/tree/master/src/React.Sample.CoreMvc) for a working demo. diff --git a/site/jekyll/getting-started/tutorial.md b/site/jekyll/getting-started/tutorial.md index 7454ae661..3653161cf 100644 --- a/site/jekyll/getting-started/tutorial.md +++ b/site/jekyll/getting-started/tutorial.md @@ -201,15 +201,15 @@ If you see this, congratulations! You've just built your first React component. The first thing you'll notice is the XML-ish syntax in your JavaScript. We have a simple precompiler that translates the syntactic sugar to this plain JavaScript: ```javascript -var CommentBox = React.createClass({displayName: 'CommentBox', - render: function() { +class CommentBox extends React.Component { + render() { return ( React.createElement('div', {className: "commentBox"}, "Hello, world! I am a CommentBox." ) ); } -}); +}; ReactDOM.render( React.createElement(CommentBox, null), diff --git a/site/jekyll/getting-started/tutorial_aspnet4.md b/site/jekyll/getting-started/tutorial_aspnet4.md index f2a06afb2..2e54b49e5 100644 --- a/site/jekyll/getting-started/tutorial_aspnet4.md +++ b/site/jekyll/getting-started/tutorial_aspnet4.md @@ -126,15 +126,15 @@ If you see this, congratulations! You've just built your first React component. The first thing you'll notice is the XML-ish syntax in your JavaScript. We have a simple precompiler that translates the syntactic sugar to this plain JavaScript: ```javascript -var CommentBox = React.createClass({displayName: 'CommentBox', - render: function() { +class CommentBox extends React.Component { + render() { return ( React.createElement('div', {className: "commentBox"}, "Hello, world! I am a CommentBox." ) ); } -}); +}; ReactDOM.render( React.createElement(CommentBox, null), diff --git a/site/jekyll/getting-started/usage.md b/site/jekyll/getting-started/usage.md index c43912354..089be0a9c 100644 --- a/site/jekyll/getting-started/usage.md +++ b/site/jekyll/getting-started/usage.md @@ -7,13 +7,13 @@ Once installed, create your React components as usual. ```javascript // /Scripts/HelloWorld.jsx -var HelloWorld = React.createClass({ - render: function () { +class HelloWorld extends React.Component { + render() { return (
Hello {this.props.name}
); } -}); +} ``` On-the-Fly JSX to JavaScript Compilation diff --git a/site/jekyll/guides/azure.md b/site/jekyll/guides/azure.md deleted file mode 100644 index bcd53e00f..000000000 --- a/site/jekyll/guides/azure.md +++ /dev/null @@ -1,43 +0,0 @@ ---- -layout: docs -title: Azure ---- - -From **version 2.2** onwards ReactJS.NET works out of the box in Azure using the V8 JavaScript engine. Versions prior to 2.2.0 will fall back to using MSIE JavaScript engine and you may experience JavaScript errors during server-side rendering that you aren't experiencing locally. - -You can run the following code to check which JavaScript engines are available on the machine that your application is running on. The engine with the lowest priority is used by ReactJS.NET. - -```csharp -public string GetAvailableEngines() -{ - var sb = new StringBuilder(); - var registrations = React.TinyIoC.TinyIoCContainer.Current.ResolveAll(); - foreach (var registration in registrations.OrderBy(r => r.Priority)) - { - try - { - var engine = registration.Factory(); - var result = engine.Evaluate("1 + 1"); - if (result == 2) - { - sb.AppendLine($"Engine: {engine.Name}, version: {engine.Version}, priority: {registration.Priority}"); - } - - } - catch { } - } - - return sb.ToString(); -} -``` - -To force ReactJS.NET to use the V8 JavaScript engine (and throw an exception if it isn't available) set the AllowMsieEngine configuration property to false. The following example applies to ASP.NET 5. Those using ASP.NET 4 should do this in ReactConfig.cs file instead. - -```csharp -app.UseReact(config => - { - config - // ..other configuration settings - .SetAllowMsieEngine(false); - }); -``` \ No newline at end of file diff --git a/site/jekyll/guides/es6.md b/site/jekyll/guides/es6.md index 7ba0bb08f..d37e0d254 100644 --- a/site/jekyll/guides/es6.md +++ b/site/jekyll/guides/es6.md @@ -28,14 +28,14 @@ var OldAndBusted = React.createClass({ }); // The new way -var NewHotness = React.createClass({ +class NewHotness extends React.Component { render() { // ... }, doStuff() { // ... } -}); +}; ``` * **[Classes](http://wiki.ecmascript.org/doku.php?id=strawman:maximally_minimal_classes)** — Similar to the class systems included in JavaScript frameworks such as Prototype and MooTools, but will (eventually) be native to JavaScript diff --git a/site/jekyll/guides/mono.md b/site/jekyll/guides/mono.md index 7cb42aa6c..e08483b21 100644 --- a/site/jekyll/guides/mono.md +++ b/site/jekyll/guides/mono.md @@ -3,31 +3,8 @@ layout: docs title: Linux (Mono) --- -ReactJS.NET includes full support for Mono via Google's [V8 JavaScript engine](https://code.google.com/p/v8/), the same engine used by Google Chrome and Node.js. To use ReactJS.NET with Mono, you need to compile V8 and VroomJs (a .NET wrapper around V8). This can be accomplished by running the following shell commands on your Linux or Mac OS X machine: +While Mono is supported, we strongly recommend using .NET Core instead. -```sh -# Get a supported version of V8 -cd /usr/local/src/ -git clone https://github.com/v8/v8.git v8-3.17 -cd v8-3.17 -git checkout tags/3.17.16.2 - -# Build V8 -make dependencies -make native werror=no library=shared soname_version=3.17.16.2 -j4 -cp out/native/lib.target/libv8.so.3.17.16.2 /usr/local/lib/ - -# Get ReactJS.NET's version of libvroomjs -cd /usr/local/src/ -git clone https://github.com/reactjs/react.net.git -cd react.net -git submodule update --init -cd lib/VroomJs/libvroomjs/ - -# Build libvroomjs -g++ jscontext.cpp jsengine.cpp managedref.cpp bridge.cpp jsscript.cpp -o libVroomJsNative.so -shared -L /usr/local/src/v8-3.17/out/native/lib.target/ -I /usr/local/src/v8-3.17/include/ -fPIC -Wl,--no-as-needed -l:/usr/local/lib/libv8.so.3.17.16.2 -cp libVroomJsNative.so /usr/local/lib/ -ldconfig -``` +ReactJS.NET includes full support for Mono via Google's [V8 JavaScript engine](https://code.google.com/p/v8/), the same engine used by Google Chrome and Node.js. To use ReactJS.NET with Mono, follow the documentation on the [JavaScriptEngineSwitcher repo](https://github.com/Taritsyn/JavaScriptEngineSwitcher/wiki/JS-Engine-Switcher:-Vroom) to build Vroom, and then register the JS Engine as the default in `Startup.cs`. For example on how to do this, see the [ChakraCore guide](/guides/chakracore.html). If VroomJs fails to load, you will see an exception when your application is started. If this happens, run Mono with the `MONO_LOG_LEVEL=debug` environment variable to get more useful debugging information. Often, this occurs when Mono is unable to locate V8 (ie. it's not in /usr/lib/ or /usr/local/lib/) diff --git a/site/jekyll/guides/webpack.md b/site/jekyll/guides/webpack.md index 4f75d583d..1b3e2aa0e 100644 --- a/site/jekyll/guides/webpack.md +++ b/site/jekyll/guides/webpack.md @@ -3,6 +3,8 @@ layout: docs title: Webpack --- +This guide is for Webpack 1. To see the latest example for how to use webpack, check out the [sample project](https://github.com/reactjs/React.NET/tree/master/src/React.Sample.Webpack). + [Webpack](http://webpack.github.io/docs/what-is-webpack.html) is a popular module bundling system built on top of Node.js. It can handle not only combination and minification of JavaScript and CSS files, but also other assets such as image files (spriting) through the use of plugins. Webpack can be used as an alternative to Cassette or ASP.NET Combination and Minification. This guide assumes you have already [installed Webpack](http://webpack.github.io/docs/installation.html). In order to use Webpack with ReactJS.NET's server-side rendering, it is suggested that you create a separate bundle ("[entry point](http://webpack.github.io/docs/multiple-entry-points.html)") containing *only* the code required to perform server-side rendering. Any components you would like to render server-side must be exposed globally so that ReactJS.NET can access them. This can be done through the [Webpack expose loader](https://github.com/webpack/expose-loader): diff --git a/site/jekyll/index.md b/site/jekyll/index.md index 80b615725..181fae063 100644 --- a/site/jekyll/index.md +++ b/site/jekyll/index.md @@ -48,11 +48,11 @@ id: home ```javascript // /Scripts/HelloWorld.jsx -var HelloWorld = React.createClass({ +class HelloWorld extends React.Component { render: function() { return
Hello world!
; } -}); +} ``` ```html diff --git a/src/Cassette.React/BabelBundleProcessor.cs b/src/Cassette.React/BabelBundleProcessor.cs index 2a698265b..d00ce77fe 100644 --- a/src/Cassette.React/BabelBundleProcessor.cs +++ b/src/Cassette.React/BabelBundleProcessor.cs @@ -1,4 +1,4 @@ -/* +/* * Copyright (c) 2014-Present, Facebook, Inc. * All rights reserved. * diff --git a/src/Cassette.React/Cassette.React.csproj b/src/Cassette.React/Cassette.React.csproj index 91a4e1ebf..749f802b3 100644 --- a/src/Cassette.React/Cassette.React.csproj +++ b/src/Cassette.React/Cassette.React.csproj @@ -27,6 +27,7 @@ + diff --git a/src/Cassette.React/CassetteMSBuildStartup.cs b/src/Cassette.React/CassetteMSBuildStartup.cs index cc0c9ffa4..47c57da4e 100644 --- a/src/Cassette.React/CassetteMSBuildStartup.cs +++ b/src/Cassette.React/CassetteMSBuildStartup.cs @@ -1,4 +1,4 @@ -/* +/* * Copyright (c) 2014-Present, Facebook, Inc. * All rights reserved. * @@ -7,8 +7,8 @@ * of patent rights can be found in the PATENTS file in the same directory. */ -using System; -using System.Diagnostics; +using JavaScriptEngineSwitcher.Core; +using JavaScriptEngineSwitcher.Msie; using React; namespace Cassette.React @@ -31,6 +31,9 @@ public void Start() return; } + JsEngineSwitcher.Current.DefaultEngineName = MsieJsEngine.EngineName; + JsEngineSwitcher.Current.EngineFactories.AddMsie(); + // All "per-request" registrations should be singletons in MSBuild, since there's no // such thing as a "request" Initializer.Initialize(requestLifetimeRegistration: registration => registration.AsSingleton()); diff --git a/src/React.Core/Exceptions/ClearScriptV8InitialisationException.cs b/src/React.Core/Exceptions/ClearScriptV8InitialisationException.cs deleted file mode 100644 index 6ffa8dc6e..000000000 --- a/src/React.Core/Exceptions/ClearScriptV8InitialisationException.cs +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Copyright (c) 2014-Present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - */ - -using System; -using System.Runtime.Serialization; - -namespace React.Exceptions -{ - /// - /// Thrown when the ClearScript V8 JavaScript engine fails to initialise - /// -#if !NETSTANDARD1_6 - [Serializable] -#endif - public class ClearScriptV8InitialisationException : ReactException - { - /// - /// Initializes a new instance of the class. - /// - public ClearScriptV8InitialisationException(Exception innerException) : - base(GetMessage(innerException), innerException) { } - -#if !NETSTANDARD1_6 - /// - /// Used by deserialization - /// - protected ClearScriptV8InitialisationException(SerializationInfo info, StreamingContext context) - : base(info, context) { } -#endif - - /// - /// Gets a message that describes the current exception. - /// - private static string GetMessage(Exception innerException) - { - return - "Failed to initialise ClearScript V8. This is most likely caused by the native libraries " + - "(ClearScriptV8-64.dll and v8-x64.dll) missing from your app's Bin directory, or the " + - "Visual C++ runtime not being installed. Please ensure your app is referencing the " + - "JavaScriptEngineSwitcher.V8 NuGet package, and refer to the ReactJS.NET site for more" + - "debugging tips.\n\n" + - "More details: " + innerException.Message; - } - } -} diff --git a/src/React.Core/Exceptions/ReactEngineNotFoundException.cs b/src/React.Core/Exceptions/ReactEngineNotFoundException.cs index ce9dddd8b..7073dd730 100644 --- a/src/React.Core/Exceptions/ReactEngineNotFoundException.cs +++ b/src/React.Core/Exceptions/ReactEngineNotFoundException.cs @@ -3,7 +3,7 @@ * All rights reserved. * * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant + * LICENSE file in the root directory of this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. */ @@ -20,11 +20,6 @@ namespace React.Exceptions #endif public class ReactEngineNotFoundException : ReactException { - /// - /// Initializes a new instance of the class. - /// - public ReactEngineNotFoundException() : base(GetMessage()) { } - /// /// Initializes a new instance of the class. /// @@ -38,17 +33,5 @@ public ReactEngineNotFoundException(string message) : base(message) { } protected ReactEngineNotFoundException(SerializationInfo info, StreamingContext context) : base(info, context) { } #endif - - /// - /// Gets a message that describes the current exception. - /// - private static string GetMessage() - { - return - "No usable JavaScript engine was found. Please install a JavaScript engine such " + - "as JavaScriptEngineSwitcher.V8.V8JsEngine (on Windows) or " + - "React.VroomJsEngine (on Linux and Mac OS X). Refer to the ReactJS.NET " + - "documentation for more details."; - } } } diff --git a/src/React.Core/Exceptions/VroomJsInitialisationException.cs b/src/React.Core/Exceptions/VroomJsInitialisationException.cs deleted file mode 100644 index 1cbbbd93b..000000000 --- a/src/React.Core/Exceptions/VroomJsInitialisationException.cs +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Copyright (c) 2014-Present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - */ - -using System; -using System.Runtime.Serialization; - -namespace React.Exceptions -{ - /// - /// Thrown when the VroomJs V8 JavaScript engine fails to initialise. - /// -#if !NETSTANDARD1_6 - [Serializable] -#endif - public class VroomJsInitialisationException : ReactException - { - /// - /// Initializes a new instance of the class. - /// - public VroomJsInitialisationException(string innerMessage) : - base(GetMessage(innerMessage)) { } - -#if !NETSTANDARD1_6 - /// - /// Used by deserialization - /// - protected VroomJsInitialisationException(SerializationInfo info, StreamingContext context) - : base(info, context) { } -#endif - - /// - /// Gets a message that describes the current exception. - /// - private static string GetMessage(string innerMessage) - { - return - "Failed to initialise VroomJs. This is most likely caused by the native library " + - "(libVroomJsNative.so) being out of date or your system lacking a compatible version of " + - "V8. Please run Mono with the `MONO_LOG_LEVEL=debug` environment variable for " + - "more debugging information, and refer to the ReactJS.NET Mono documentation at " + - "http://reactjs.net/guides/mono.html for further debugging hints.\n\n " + - "More details: " + innerMessage; - } - } -} diff --git a/src/React.Core/IReactSiteConfiguration.cs b/src/React.Core/IReactSiteConfiguration.cs index b414e5d25..ad07dfff7 100644 --- a/src/React.Core/IReactSiteConfiguration.cs +++ b/src/React.Core/IReactSiteConfiguration.cs @@ -113,18 +113,6 @@ public interface IReactSiteConfiguration ///
IReactSiteConfiguration SetMaxUsagesPerEngine(int? maxUsagesPerEngine); - /// - /// Gets or sets whether the MSIE engine should be used if V8 is unavailable. - /// - [Obsolete("This should be managed in the JavaScriptEngineSwitcher configuration instead")] - bool AllowMsieEngine { get; set; } - /// - /// Sets whether the MSIE engine should be used if V8 is unavailable. - /// - /// - [Obsolete("This should be managed in the JavaScriptEngineSwitcher configuration instead")] - IReactSiteConfiguration SetAllowMsieEngine(bool allowMsieEngine); - /// /// Gets or sets whether the built-in version of React is loaded. If false, you must /// provide your own version of React. diff --git a/src/React.Core/JavaScriptEngineFactory.cs b/src/React.Core/JavaScriptEngineFactory.cs index d622fdc0d..9b23d9c60 100644 --- a/src/React.Core/JavaScriptEngineFactory.cs +++ b/src/React.Core/JavaScriptEngineFactory.cs @@ -1,18 +1,12 @@ using System; using System.Collections.Concurrent; +using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Linq; using System.Reflection; using System.Threading; using JavaScriptEngineSwitcher.Core; -using JavaScriptEngineSwitcher.Msie; -#if NET45 -using JavaScriptEngineSwitcher.V8; -#else -using JavaScriptEngineSwitcher.ChakraCore; -#endif -using JavaScriptEngineSwitcher.Vroom; using JSPool; using React.Exceptions; @@ -42,7 +36,7 @@ public class JavaScriptEngineFactory : IDisposable, IJavaScriptEngineFactory /// /// Contains all current JavaScript engine instances. One per thread, keyed on thread ID. /// - protected readonly ConcurrentDictionary _engines + protected readonly ConcurrentDictionary _engines = new ConcurrentDictionary(); /// /// Pool of JavaScript engines to use @@ -70,7 +64,7 @@ IFileSystem fileSystem _config = config; _fileSystem = fileSystem; #pragma warning disable 618 - _factory = GetFactory(_jsEngineSwitcher, config.AllowMsieEngine); + _factory = GetFactory(_jsEngineSwitcher); #pragma warning restore 618 if (_config.ReuseJavaScriptEngines) { @@ -128,9 +122,9 @@ protected virtual void InitialiseEngine(IJsEngine engine) if (_config.LoadReact) { engine.ExecuteResource( - _config.UseDebugReact - ? "React.Core.Resources.react.generated.js" - : "React.Core.Resources.react.generated.min.js", + _config.UseDebugReact + ? "React.Core.Resources.react.generated.js" + : "React.Core.Resources.react.generated.min.js", thisAssembly ); } @@ -139,13 +133,13 @@ protected virtual void InitialiseEngine(IJsEngine engine) if (!_config.LoadReact && _scriptLoadException == null) { // We expect to user to have loaded their own version of React in the scripts that - // were loaded above, let's ensure that's the case. + // were loaded above, let's ensure that's the case. EnsureReactLoaded(engine); } } /// - /// Loads any user-provided scripts. Only scripts that don't need JSX transformation can + /// Loads any user-provided scripts. Only scripts that don't need JSX transformation can /// run immediately here. JSX files are loaded in ReactEnvironment. /// /// Engine to load scripts into @@ -200,7 +194,7 @@ private static void EnsureReactLoaded(IJsEngine engine) } /// - /// Gets the JavaScript engine for the current thread. It is recommended to use + /// Gets the JavaScript engine for the current thread. It is recommended to use /// instead, which will pool/reuse engines. /// /// The JavaScript engine @@ -226,7 +220,7 @@ public virtual void DisposeEngineForCurrentThread() { if (engine != null) { - engine.Dispose(); + engine.Dispose(); } } } @@ -246,10 +240,8 @@ public virtual PooledJsEngine GetEngine() /// The first functioning JavaScript engine with the lowest priority will be used. /// /// Function to create JavaScript engine - private static Func GetFactory(IJsEngineSwitcher jsEngineSwitcher, bool allowMsie) + private static Func GetFactory(IJsEngineSwitcher jsEngineSwitcher) { - EnsureJsEnginesRegistered(jsEngineSwitcher, allowMsie); - string defaultEngineName = jsEngineSwitcher.DefaultEngineName; if (!string.IsNullOrWhiteSpace(defaultEngineName)) { @@ -266,22 +258,33 @@ private static Func GetFactory(IJsEngineSwitcher jsEngineSwitcher, bo } } + if (jsEngineSwitcher.EngineFactories.Count() == 0) + { + throw new ReactException("No JS engines were registered. Visit https://reactjs.net/docs for more information."); + } + + var exceptionMessages = new List(); foreach (var engineFactory in jsEngineSwitcher.EngineFactories) { IJsEngine engine = null; try { engine = engineFactory.CreateEngine(); - if (EngineIsUsable(engine, allowMsie)) + if (EngineIsUsable(engine)) { // Success! Use this one. return engineFactory.CreateEngine; } } + catch (JsEngineLoadException ex) + { + Trace.WriteLine(string.Format("Error initialising {0}: {1}", engineFactory, ex.Message)); + exceptionMessages.Add(ex.Message); + } catch (Exception ex) { - // This engine threw an exception, try the next one Trace.WriteLine(string.Format("Error initialising {0}: {1}", engineFactory, ex)); + exceptionMessages.Add(ex.ToString()); } finally { @@ -292,39 +295,18 @@ private static Func GetFactory(IJsEngineSwitcher jsEngineSwitcher, bo } } - // Epic fail, none of the engines worked. Nothing we can do now. - // Throw an error relevant to the engine they should be able to use. -#if NET45 - if (JavaScriptEngineUtils.EnvironmentSupportsClearScript()) - { - JavaScriptEngineUtils.EnsureEngineFunctional( - ex => new ClearScriptV8InitialisationException(ex) - ); - } - -#endif - if (JavaScriptEngineUtils.EnvironmentSupportsVroomJs()) - { - JavaScriptEngineUtils.EnsureEngineFunctional( - ex => new VroomJsInitialisationException(ex.Message) - ); - } - - throw new ReactEngineNotFoundException(); + throw new ReactEngineNotFoundException("There was an error initializing the registered JS engines. " + string.Join(Environment.NewLine, exceptionMessages)); } /// /// Performs a sanity check to ensure the specified engine type is usable. /// /// Engine to test - /// Whether the MSIE engine can be used /// - private static bool EngineIsUsable(IJsEngine engine, bool allowMsie) + private static bool EngineIsUsable(IJsEngine engine) { // Perform a sanity test to ensure this engine is usable - var isUsable = engine.Evaluate("1 + 1") == 2; - var isMsie = engine is MsieJsEngine; - return isUsable && (!isMsie || allowMsie); + return engine.Evaluate("1 + 1") == 2; } /// @@ -363,39 +345,5 @@ public void EnsureValidState() throw _scriptLoadException; } } - - /// - /// Ensures that some engines have been registered with JavaScriptEngineSwitcher. IF not, - /// registers some default engines. - /// - /// JavaScript Engine Switcher instance - /// Whether to allow the MSIE JS engine - private static void EnsureJsEnginesRegistered(IJsEngineSwitcher jsEngineSwitcher, bool allowMsie) - { - if (jsEngineSwitcher.EngineFactories.Any()) - { - // Engines have been registered, nothing to do here! - return; - } - - Trace.WriteLine( - "No JavaScript engines were registered, falling back to a default config! It is " + - "recommended that you configure JavaScriptEngineSwitcher in your app. See " + - "https://github.com/Taritsyn/JavaScriptEngineSwitcher/wiki/Registration-of-JS-engines " + - "for more information." - ); - -#if NET45 - jsEngineSwitcher.EngineFactories.AddV8(); -#endif - jsEngineSwitcher.EngineFactories.AddVroom(); - if (allowMsie) - { - jsEngineSwitcher.EngineFactories.AddMsie(); - } -#if !NET45 - jsEngineSwitcher.EngineFactories.AddChakraCore(); -#endif - } } } diff --git a/src/React.Core/JavaScriptEngineUtils.cs b/src/React.Core/JavaScriptEngineUtils.cs index cfc9a6970..eeb8d8f9b 100644 --- a/src/React.Core/JavaScriptEngineUtils.cs +++ b/src/React.Core/JavaScriptEngineUtils.cs @@ -1,4 +1,4 @@ -/* +/* * Copyright (c) 2015, Facebook, Inc. * All rights reserved. * @@ -8,7 +8,6 @@ */ using System; -using System.Runtime.InteropServices; using JavaScriptEngineSwitcher.Core; using JavaScriptEngineSwitcher.Core.Helpers; using Newtonsoft.Json; @@ -21,21 +20,6 @@ namespace React /// public static class JavaScriptEngineUtils { - /// - /// Determines if the current environment supports the VroomJs engine. - /// - /// true if VroomJs is supported - public static bool EnvironmentSupportsVroomJs() - { -#if NET40 - return Environment.OSVersion.Platform == PlatformID.Unix; -#else - return - RuntimeInformation.IsOSPlatform(OSPlatform.Linux) || - RuntimeInformation.IsOSPlatform(OSPlatform.OSX); -#endif - } - /// /// Determines if the current environment supports the ClearScript V8 engine /// diff --git a/src/React.Core/React.Core.csproj b/src/React.Core/React.Core.csproj index 5d5a3b1af..8c174ba28 100644 --- a/src/React.Core/React.Core.csproj +++ b/src/React.Core/React.Core.csproj @@ -32,14 +32,9 @@ - - - - - @@ -48,12 +43,9 @@ - - - - + diff --git a/src/React.MSBuild/React.MSBuild.csproj b/src/React.MSBuild/React.MSBuild.csproj index 1fcd9e095..3fa1ef03d 100644 --- a/src/React.MSBuild/React.MSBuild.csproj +++ b/src/React.MSBuild/React.MSBuild.csproj @@ -32,6 +32,10 @@ + + + + diff --git a/src/React.MSBuild/TransformBabel.cs b/src/React.MSBuild/TransformBabel.cs index 76e081491..cd560e1a2 100644 --- a/src/React.MSBuild/TransformBabel.cs +++ b/src/React.MSBuild/TransformBabel.cs @@ -1,4 +1,4 @@ -/* +/* * Copyright (c) 2014-Present, Facebook, Inc. * All rights reserved. * @@ -9,6 +9,8 @@ using System.Diagnostics; using System.IO; +using JavaScriptEngineSwitcher.Core; +using JavaScriptEngineSwitcher.Msie; using Microsoft.Build.Framework; using Microsoft.Build.Utilities; @@ -46,6 +48,9 @@ public override bool Execute() config .SetReuseJavaScriptEngines(false); + JsEngineSwitcher.Current.DefaultEngineName = MsieJsEngine.EngineName; + JsEngineSwitcher.Current.EngineFactories.AddMsie(); + _environment = ReactEnvironment.Current; Log.LogMessage("Starting Babel transform"); diff --git a/src/React.Sample.Cassette/App_Start/ReactConfig.cs b/src/React.Sample.Cassette/App_Start/ReactConfig.cs new file mode 100644 index 000000000..ab12fae99 --- /dev/null +++ b/src/React.Sample.Cassette/App_Start/ReactConfig.cs @@ -0,0 +1,29 @@ +/* + * Copyright (c) 2014-Present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + */ + +using JavaScriptEngineSwitcher.Core; +using JavaScriptEngineSwitcher.Msie; + +[assembly: WebActivatorEx.PreApplicationStartMethod(typeof(React.Sample.Mvc4.ReactConfig), "Configure")] + +namespace React.Sample.Mvc4 +{ + public static class ReactConfig + { + public static void Configure() + { + ReactSiteConfiguration.Configuration + .SetReuseJavaScriptEngines(true) + .AddScript("~/Content/Sample.jsx"); + + JsEngineSwitcher.Current.DefaultEngineName = MsieJsEngine.EngineName; + JsEngineSwitcher.Current.EngineFactories.AddMsie(); + } + } +} diff --git a/src/React.Sample.Cassette/Global.asax.cs b/src/React.Sample.Cassette/Global.asax.cs index 8dec30578..de2b958a7 100644 --- a/src/React.Sample.Cassette/Global.asax.cs +++ b/src/React.Sample.Cassette/Global.asax.cs @@ -1,4 +1,4 @@ -/* +/* * Copyright (c) 2014-Present, Facebook, Inc. * All rights reserved. * @@ -7,6 +7,7 @@ * of patent rights can be found in the PATENTS file in the same directory. */ +using System.Web.Hosting; using System.Web.Mvc; using System.Web.Routing; using React.Sample.Mvc4; @@ -19,10 +20,29 @@ public class MvcApplication : System.Web.HttpApplication { protected void Application_Start() { + Initializer.Initialize(registration => registration.AsSingleton()); + var container = React.AssemblyRegistration.Container; + + container.Register(); + container.Register(); + AreaRegistration.RegisterAllAreas(); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); RouteConfig.RegisterRoutes(RouteTable.Routes); } + + private class AspNetFileSystem : FileSystemBase + { + /// + /// Converts a path from an application relative path (~/...) to a full filesystem path + /// + /// App-relative path of the file + /// Full path of the file + public override string MapPath(string relativePath) + { + return HostingEnvironment.MapPath(relativePath); + } + } } } diff --git a/src/React.Sample.Cassette/React.Sample.Cassette.csproj b/src/React.Sample.Cassette/React.Sample.Cassette.csproj index 2b6a4269f..7bd082015 100644 --- a/src/React.Sample.Cassette/React.Sample.Cassette.csproj +++ b/src/React.Sample.Cassette/React.Sample.Cassette.csproj @@ -71,7 +71,13 @@ ..\packages\JavaScriptEngineSwitcher.Core.3.0.0-beta4\lib\net40-client\JavaScriptEngineSwitcher.Core.dll + + ..\packages\JavaScriptEngineSwitcher.Msie.3.0.0-beta5\lib\net40-client\JavaScriptEngineSwitcher.Msie.dll + + + ..\packages\MsieJavaScriptEngine.3.0.0-beta4\lib\net40-client\MsieJavaScriptEngine.dll + @@ -131,9 +137,6 @@ App_Start\FilterConfig.cs - - App_Start\ReactConfig.cs - App_Start\RouteConfig.cs @@ -146,6 +149,7 @@ Properties\SharedAssemblyVersionInfo.cs + Global.asax diff --git a/src/React.Sample.Cassette/Web.config b/src/React.Sample.Cassette/Web.config index 750db372c..15a7c945d 100644 --- a/src/React.Sample.Cassette/Web.config +++ b/src/React.Sample.Cassette/Web.config @@ -1,14 +1,14 @@ - + - -
- - + +
+ + @@ -27,28 +27,33 @@ - - + + + - - - - - - - + + + + + + + + + - - - - - - - - + + + + + + + + + + @@ -66,4 +71,6 @@ - + + + diff --git a/src/React.Sample.Cassette/packages.config b/src/React.Sample.Cassette/packages.config index 82e237152..429252e93 100644 --- a/src/React.Sample.Cassette/packages.config +++ b/src/React.Sample.Cassette/packages.config @@ -6,10 +6,12 @@ + + \ No newline at end of file diff --git a/src/React.Sample.ConsoleApp/Program.cs b/src/React.Sample.ConsoleApp/Program.cs index 8d8301274..7885a1a5f 100644 --- a/src/React.Sample.ConsoleApp/Program.cs +++ b/src/React.Sample.ConsoleApp/Program.cs @@ -8,6 +8,8 @@ */ using System; +using JavaScriptEngineSwitcher.ChakraCore; +using JavaScriptEngineSwitcher.Core; namespace React.Sample.ConsoleApp { @@ -21,6 +23,9 @@ static void Main(string[] args) .SetReuseJavaScriptEngines(false) .AddScript("Sample.jsx"); + JsEngineSwitcher.Current.DefaultEngineName = ChakraCoreJsEngine.EngineName; + JsEngineSwitcher.Current.EngineFactories.AddChakraCore(); + var environment = ReactEnvironment.Current; var component = environment.CreateComponent("HelloWorld", new { name = "Daniel" }); // renderServerOnly omits the data-reactid attributes diff --git a/src/React.Sample.ConsoleApp/React.Sample.ConsoleApp.csproj b/src/React.Sample.ConsoleApp/React.Sample.ConsoleApp.csproj index cf6d76040..f66bdb8a3 100644 --- a/src/React.Sample.ConsoleApp/React.Sample.ConsoleApp.csproj +++ b/src/React.Sample.ConsoleApp/React.Sample.ConsoleApp.csproj @@ -19,6 +19,13 @@ + + + + + + + diff --git a/src/React.Sample.Mvc4/App_Start/ReactConfig.cs b/src/React.Sample.Mvc4/App_Start/ReactConfig.cs index 4c3256ebd..20c03226c 100644 --- a/src/React.Sample.Mvc4/App_Start/ReactConfig.cs +++ b/src/React.Sample.Mvc4/App_Start/ReactConfig.cs @@ -1,4 +1,4 @@ -/* +/* * Copyright (c) 2014-Present, Facebook, Inc. * All rights reserved. * @@ -7,6 +7,9 @@ * of patent rights can be found in the PATENTS file in the same directory. */ +using JavaScriptEngineSwitcher.Core; +using JavaScriptEngineSwitcher.V8; + [assembly: WebActivatorEx.PreApplicationStartMethod(typeof(React.Sample.Mvc4.ReactConfig), "Configure")] namespace React.Sample.Mvc4 @@ -18,6 +21,9 @@ public static void Configure() ReactSiteConfiguration.Configuration .SetReuseJavaScriptEngines(true) .AddScript("~/Content/Sample.jsx"); + + JsEngineSwitcher.Current.DefaultEngineName = V8JsEngine.EngineName; + JsEngineSwitcher.Current.EngineFactories.AddV8(); } } } diff --git a/src/React.Sample.Mvc4/React.Sample.Mvc4.csproj b/src/React.Sample.Mvc4/React.Sample.Mvc4.csproj index 6a8ec04cb..d68f1e2e6 100644 --- a/src/React.Sample.Mvc4/React.Sample.Mvc4.csproj +++ b/src/React.Sample.Mvc4/React.Sample.Mvc4.csproj @@ -64,9 +64,6 @@ ..\packages\JavaScriptEngineSwitcher.Core.3.0.0-beta4\lib\net45\JavaScriptEngineSwitcher.Core.dll - - ..\packages\JavaScriptEngineSwitcher.Msie.3.0.0-beta5\lib\net45\JavaScriptEngineSwitcher.Msie.dll - ..\packages\JavaScriptEngineSwitcher.V8.3.0.0-beta4\lib\net45\JavaScriptEngineSwitcher.V8.dll diff --git a/src/React.Sample.Mvc4/packages.config b/src/React.Sample.Mvc4/packages.config index e0f456fdd..115269722 100644 --- a/src/React.Sample.Mvc4/packages.config +++ b/src/React.Sample.Mvc4/packages.config @@ -2,7 +2,6 @@ - diff --git a/src/React.Sample.Owin/React.Sample.Owin.csproj b/src/React.Sample.Owin/React.Sample.Owin.csproj index d6e646634..a1539489d 100644 --- a/src/React.Sample.Owin/React.Sample.Owin.csproj +++ b/src/React.Sample.Owin/React.Sample.Owin.csproj @@ -24,6 +24,8 @@ + + diff --git a/src/React.Sample.Owin/Startup.cs b/src/React.Sample.Owin/Startup.cs index 311c6a25d..74317fc92 100644 --- a/src/React.Sample.Owin/Startup.cs +++ b/src/React.Sample.Owin/Startup.cs @@ -1,4 +1,4 @@ -/* +/* * Copyright (c) 2014-Present, Facebook, Inc. * All rights reserved. * @@ -8,7 +8,8 @@ */ using System; - +using JavaScriptEngineSwitcher.Core; +using JavaScriptEngineSwitcher.V8; using Microsoft.Owin.FileSystems; using Microsoft.Owin.StaticFiles; @@ -47,6 +48,9 @@ public void Configuration(IAppBuilder app) app.UseBabel(new BabelFileOptions() { StaticFileOptions = new StaticFileOptions() { FileSystem = contentFileSystem }}); app.UseFileServer(new FileServerOptions() { FileSystem = contentFileSystem }); + JsEngineSwitcher.Current.DefaultEngineName = V8JsEngine.EngineName; + JsEngineSwitcher.Current.EngineFactories.AddV8(); + app.Use(); } } diff --git a/src/React.Sample.Webpack/App_Start/ReactConfig.cs b/src/React.Sample.Webpack/App_Start/ReactConfig.cs index a3121f599..1c24fdb11 100644 --- a/src/React.Sample.Webpack/App_Start/ReactConfig.cs +++ b/src/React.Sample.Webpack/App_Start/ReactConfig.cs @@ -1,4 +1,4 @@ -/* +/* * Copyright (c) 2015, Facebook, Inc. * All rights reserved. * @@ -7,6 +7,9 @@ * of patent rights can be found in the PATENTS file in the same directory. */ +using JavaScriptEngineSwitcher.Core; +using JavaScriptEngineSwitcher.V8; + [assembly: WebActivatorEx.PreApplicationStartMethod(typeof(React.Sample.Webpack.ReactConfig), "Configure")] namespace React.Sample.Webpack @@ -18,6 +21,9 @@ public static void Configure() ReactSiteConfiguration.Configuration .SetLoadBabel(false) .AddScriptWithoutTransform("~/build/server.bundle.js"); + + JsEngineSwitcher.Current.DefaultEngineName = V8JsEngine.EngineName; + JsEngineSwitcher.Current.EngineFactories.AddV8(); } } -} \ No newline at end of file +} diff --git a/tests/React.Tests/Core/JavaScriptEngineFactoryTest.cs b/tests/React.Tests/Core/JavaScriptEngineFactoryTest.cs index 49422f6bd..e041dc619 100644 --- a/tests/React.Tests/Core/JavaScriptEngineFactoryTest.cs +++ b/tests/React.Tests/Core/JavaScriptEngineFactoryTest.cs @@ -35,7 +35,7 @@ private JavaScriptEngineFactory CreateBasicFactory() } private JavaScriptEngineFactory CreateFactory( - Mock config, + Mock config, Mock fileSystem, Func innerEngineFactory ) @@ -58,7 +58,7 @@ public void ShouldReturnSameEngine() var factory = CreateBasicFactory(); var engine1 = factory.GetEngineForCurrentThread(); var engine2 = factory.GetEngineForCurrentThread(); - + Assert.Equal(engine1, engine2); factory.DisposeEngineForCurrentThread(); } @@ -317,5 +317,55 @@ public void ShouldThrowIfDefaultEngineFactoryNotFound() var factory = new JavaScriptEngineFactory(engineSwitcher, config.Object, fileSystem.Object); }); } + + [Fact] + public void ShouldThrowIfNoEnginesRegistered() + { + var config = new Mock(); + var fileSystem = new Mock(); + config.Setup(x => x.ScriptsWithoutTransform).Returns(new List()); + config.Setup(x => x.LoadReact).Returns(true); + + var engineSwitcher = new JsEngineSwitcher( + new JsEngineFactoryCollection(), + string.Empty + ); + + var caughtException = Assert.Throws(() => + { + new JavaScriptEngineFactory(engineSwitcher, config.Object, fileSystem.Object); + }); + Assert.Contains("No JS engines were registered", caughtException.Message); + } + + [Fact] + public void ShouldThrowIfJsEngineFails() + { + const string defaultEngineName = "DefaultEngine"; + + var defaultEngineFactory = new Mock(); + defaultEngineFactory.Setup(x => x.EngineName).Returns(defaultEngineName); + defaultEngineFactory.Setup(x => x.CreateEngine()).Throws(new JsEngineLoadException("This is a custom JS engine load error.")); + + var config = new Mock(); + config.Setup(x => x.ScriptsWithoutTransform).Returns(new List()); + config.Setup(x => x.LoadReact).Returns(true); + + var fileSystem = new Mock(); + var engineSwitcher = new JsEngineSwitcher( + new JsEngineFactoryCollection + { + defaultEngineFactory.Object, + }, + string.Empty + ); + + var caughtException = Assert.Throws(() => + { + var factory = new JavaScriptEngineFactory(engineSwitcher, config.Object, fileSystem.Object); + factory.GetEngineForCurrentThread(); + }); + Assert.Contains("This is a custom JS engine load error", caughtException.Message); + } } } From 26ff2ddd64a262fa1b51c52bb476df308206f854 Mon Sep 17 00:00:00 2001 From: Jamie T Date: Thu, 23 Aug 2018 19:33:04 +0100 Subject: [PATCH 048/530] Update tutorial documentation (#587) --- site/jekyll/getting-started/tutorial.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/site/jekyll/getting-started/tutorial.md b/site/jekyll/getting-started/tutorial.md index 3653161cf..d4afe006d 100644 --- a/site/jekyll/getting-started/tutorial.md +++ b/site/jekyll/getting-started/tutorial.md @@ -374,9 +374,9 @@ So far we've been inserting the comments directly in the source code. Instead, l ```javascript const data = [ - { id: 1, author: "Daniel Lo Nigro", text: "Hello ReactJS.NET World!" }, - { id: 2, author: "Pete Hunt", text: "This is one comment" }, - { id: 3, author: "Jordan Walke", text: "This is *another* comment" } + { Id: 1, Author: "Daniel Lo Nigro", Text: "Hello ReactJS.NET World!" }, + { Id: 2, Author: "Pete Hunt", Text: "This is one comment" }, + { Id: 3, Author: "Jordan Walke", Text: "This is *another* comment" } ]; ``` From 4ff0fad26557817ffdf31e4de7ba98bccd1645ac Mon Sep 17 00:00:00 2001 From: Andrey Taritsyn Date: Wed, 29 Aug 2018 22:53:56 +0300 Subject: [PATCH 049/530] Add ability to pre-compile scripts --- src/React.Core/IReactSiteConfiguration.cs | 12 + src/React.Core/JavaScriptEngineFactory.cs | 43 ++- src/React.Core/JavaScriptEngineUtils.cs | 161 +++++++++++ src/React.Core/React.Core.csproj | 2 +- src/React.Core/ReactEnvironment.cs | 24 +- src/React.Core/ReactSiteConfiguration.cs | 14 +- .../React.Sample.Cassette.csproj | 4 +- src/React.Sample.Cassette/packages.config | 4 +- .../React.Sample.ConsoleApp.csproj | 8 +- .../React.Sample.CoreMvc.csproj | 8 +- src/React.Sample.CoreMvc/Startup.cs | 1 + .../App_Start/ReactConfig.cs | 1 + .../React.Sample.Mvc4.csproj | 15 +- src/React.Sample.Mvc4/packages.config | 7 +- .../React.Sample.Owin.csproj | 4 +- .../React.Sample.Router.CoreMvc.csproj | 10 +- .../App_Start/ReactConfig.cs | 1 + .../React.Sample.Webpack.csproj | 12 +- src/React.Sample.Webpack/packages.config | 6 +- src/React.sln | 6 +- .../React.Tests.Benchmarks.csproj | 4 +- .../React.Tests.Integration.csproj | 22 +- .../ServerRenderTests.cs | 68 ++++- .../Core/JavaScriptEngineFactoryTest.cs | 267 ++++++++++++++++-- 24 files changed, 606 insertions(+), 98 deletions(-) diff --git a/src/React.Core/IReactSiteConfiguration.cs b/src/React.Core/IReactSiteConfiguration.cs index ad07dfff7..3d0a06c12 100644 --- a/src/React.Core/IReactSiteConfiguration.cs +++ b/src/React.Core/IReactSiteConfiguration.cs @@ -113,6 +113,18 @@ public interface IReactSiteConfiguration ///
IReactSiteConfiguration SetMaxUsagesPerEngine(int? maxUsagesPerEngine); + /// + /// Gets or sets whether to allow the JavaScript pre-compilation (accelerates the + /// initialization of JavaScript engines). + /// + bool AllowJavaScriptPrecompilation { get; set; } + /// + /// Sets whether to allow the JavaScript pre-compilation (accelerates the initialization of + /// JavaScript engines). + /// + /// + IReactSiteConfiguration SetAllowJavaScriptPrecompilation(bool allowJavaScriptPrecompilation); + /// /// Gets or sets whether the built-in version of React is loaded. If false, you must /// provide your own version of React. diff --git a/src/React.Core/JavaScriptEngineFactory.cs b/src/React.Core/JavaScriptEngineFactory.cs index 9b23d9c60..cf6cbdcc0 100644 --- a/src/React.Core/JavaScriptEngineFactory.cs +++ b/src/React.Core/JavaScriptEngineFactory.cs @@ -22,6 +22,10 @@ public class JavaScriptEngineFactory : IDisposable, IJavaScriptEngineFactory /// protected readonly IReactSiteConfiguration _config; /// + /// Cache used for storing the pre-compiled scripts + /// + protected readonly ICache _cache; + /// /// File system wrapper /// protected readonly IFileSystem _fileSystem; @@ -57,11 +61,13 @@ protected readonly ConcurrentDictionary _engines public JavaScriptEngineFactory( IJsEngineSwitcher jsEngineSwitcher, IReactSiteConfiguration config, + ICache cache, IFileSystem fileSystem ) { _jsEngineSwitcher = jsEngineSwitcher; _config = config; + _cache = cache; _fileSystem = fileSystem; #pragma warning disable 618 _factory = GetFactory(_jsEngineSwitcher); @@ -118,10 +124,11 @@ protected virtual void InitialiseEngine(IJsEngine engine) #else var thisAssembly = typeof(ReactEnvironment).GetTypeInfo().Assembly; #endif - engine.ExecuteResource("React.Core.Resources.shims.js", thisAssembly); + LoadResource(engine, "React.Core.Resources.shims.js", thisAssembly); if (_config.LoadReact) { - engine.ExecuteResource( + LoadResource( + engine, _config.UseDebugReact ? "React.Core.Resources.react.generated.js" : "React.Core.Resources.react.generated.min.js", @@ -138,6 +145,25 @@ protected virtual void InitialiseEngine(IJsEngine engine) } } + /// + /// Loads a code from embedded JavaScript resource into the engine. + /// + /// Engine to load a code from embedded JavaScript resource + /// The case-sensitive resource name + /// The assembly, which contains the embedded resource + private void LoadResource(IJsEngine engine, string resourceName, Assembly assembly) + { + if (_config.AllowJavaScriptPrecompilation + && engine.TryExecuteResourceWithPrecompilation(_cache, resourceName, assembly)) + { + // Do nothing. + } + else + { + engine.ExecuteResource(resourceName, assembly); + } + } + /// /// Loads any user-provided scripts. Only scripts that don't need JSX transformation can /// run immediately here. JSX files are loaded in ReactEnvironment. @@ -149,10 +175,17 @@ private void LoadUserScripts(IJsEngine engine) { try { - var contents = _fileSystem.ReadAsString(file); - engine.Execute(contents); + if (_config.AllowJavaScriptPrecompilation + && engine.TryExecuteFileWithPrecompilation(_cache, _fileSystem, file)) + { + // Do nothing. + } + else + { + engine.ExecuteFile(_fileSystem, file); + } } - catch (JsRuntimeException ex) + catch (JsScriptException ex) { // We can't simply rethrow the exception here, as it's possible this is running // on a background thread (ie. as a response to a file changing). If we did diff --git a/src/React.Core/JavaScriptEngineUtils.cs b/src/React.Core/JavaScriptEngineUtils.cs index eeb8d8f9b..cd715bc39 100644 --- a/src/React.Core/JavaScriptEngineUtils.cs +++ b/src/React.Core/JavaScriptEngineUtils.cs @@ -8,6 +8,8 @@ */ using System; +using System.Diagnostics; +using System.Reflection; using JavaScriptEngineSwitcher.Core; using JavaScriptEngineSwitcher.Core.Helpers; using Newtonsoft.Json; @@ -20,6 +22,20 @@ namespace React /// public static class JavaScriptEngineUtils { + /// + /// Cache key for the script resource precompilation + /// + private const string PRECOMPILED_JS_RESOURCE_CACHE_KEY = "PRECOMPILED_JS_RESOURCE_{0}"; + /// + /// Cache key for the script file precompilation + /// + private const string PRECOMPILED_JS_FILE_CACHE_KEY = "PRECOMPILED_JS_FILE_{0}"; + /// + /// Value that indicates whether a cache entry, that contains a precompiled script, should be + /// evicted if it has not been accessed in a given span of time + /// + private readonly static TimeSpan PRECOMPILED_JS_CACHE_ENTRY_SLIDING_EXPIRATION = TimeSpan.FromMinutes(30); + /// /// Determines if the current environment supports the ClearScript V8 engine /// @@ -61,6 +77,151 @@ Func exceptionFactory } } + /// + /// Executes a code from JavaScript file. + /// + /// Engine to execute code from JavaScript file + /// File system wrapper + /// Path to the JavaScript file + public static void ExecuteFile(this IJsEngine engine, IFileSystem fileSystem, string path) + { + var contents = fileSystem.ReadAsString(path); + engine.Execute(contents, path); + } + + /// + /// Tries to execute a code with pre-compilation. + /// + /// Engine to execute code with pre-compilation + /// Cache used for storing the pre-compiled scripts + /// File system wrapper + /// JavaScript code + /// Path to the file on which the executable code depends (required + /// for cache management). + /// true if can perform a script pre-compilation; otherwise, false. + public static bool TryExecuteWithPrecompilation(this IJsEngine engine, ICache cache, IFileSystem fileSystem, + string code, string path) + { + if (!CheckPrecompilationAvailability(engine, cache)) + { + return false; + } + + var cacheKey = string.Format(PRECOMPILED_JS_FILE_CACHE_KEY, path); + var precompiledScript = cache.Get(cacheKey); + + if (precompiledScript == null) + { + precompiledScript = engine.Precompile(code, path); + var fullPath = fileSystem.MapPath(path); + cache.Set( + cacheKey, + precompiledScript, + slidingExpiration: PRECOMPILED_JS_CACHE_ENTRY_SLIDING_EXPIRATION, + cacheDependencyFiles: new[] { fullPath } + ); + } + + engine.Execute(precompiledScript); + + return true; + } + + /// + /// Tries to execute a code from JavaScript file with pre-compilation. + /// + /// Engine to execute code from JavaScript file with pre-compilation + /// Cache used for storing the pre-compiled scripts + /// File system wrapper + /// Path to the JavaScript file + /// true if can perform a script pre-compilation; otherwise, false. + public static bool TryExecuteFileWithPrecompilation(this IJsEngine engine, ICache cache, + IFileSystem fileSystem, string path) + { + if (!CheckPrecompilationAvailability(engine, cache)) + { + return false; + } + + var cacheKey = string.Format(PRECOMPILED_JS_FILE_CACHE_KEY, path); + var precompiledScript = cache.Get(cacheKey); + + if (precompiledScript == null) + { + var contents = fileSystem.ReadAsString(path); + precompiledScript = engine.Precompile(contents, path); + var fullPath = fileSystem.MapPath(path); + cache.Set( + cacheKey, + precompiledScript, + slidingExpiration: PRECOMPILED_JS_CACHE_ENTRY_SLIDING_EXPIRATION, + cacheDependencyFiles: new[] { fullPath } + ); + } + + engine.Execute(precompiledScript); + + return true; + } + + /// + /// Tries to execute a code from embedded JavaScript resource with pre-compilation. + /// + /// Engine to execute a code from embedded JavaScript resource with pre-compilation + /// Cache used for storing the pre-compiled scripts + /// The case-sensitive resource name + /// The assembly, which contains the embedded resource + /// true if can perform a script pre-compilation; otherwise, false. + public static bool TryExecuteResourceWithPrecompilation(this IJsEngine engine, ICache cache, + string resourceName, Assembly assembly) + { + if (!CheckPrecompilationAvailability(engine, cache)) + { + return false; + } + + var cacheKey = string.Format(PRECOMPILED_JS_RESOURCE_CACHE_KEY, resourceName); + var precompiledScript = cache.Get(cacheKey); + + if (precompiledScript == null) + { + precompiledScript = engine.PrecompileResource(resourceName, assembly); + cache.Set( + cacheKey, + precompiledScript, + slidingExpiration: PRECOMPILED_JS_CACHE_ENTRY_SLIDING_EXPIRATION + ); + } + + engine.Execute(precompiledScript); + + return true; + } + + /// + /// Checks a availability of the script pre-compilation + /// + /// Instance of the JavaScript engine + /// Cache used for storing the pre-compiled scripts + /// true if the script pre-compilation is available; otherwise, false. + private static bool CheckPrecompilationAvailability(IJsEngine engine, ICache cache) + { + if (!engine.SupportsScriptPrecompilation) + { + Trace.WriteLine(string.Format("The {0} version {1} does not support the script pre-compilation.", + engine.Name, engine.Version)); + return false; + } + + if (cache is NullCache) + { + Trace.WriteLine("Usage of script pre-compilation without caching does not make sense."); + return false; + } + + return true; + } + /// /// Calls a JavaScript function using the specified engine. If is /// not a scalar type, the function is assumed to return a string of JSON that can be diff --git a/src/React.Core/React.Core.csproj b/src/React.Core/React.Core.csproj index 8c174ba28..e1a6c1e50 100644 --- a/src/React.Core/React.Core.csproj +++ b/src/React.Core/React.Core.csproj @@ -32,7 +32,7 @@ - + diff --git a/src/React.Core/ReactEnvironment.cs b/src/React.Core/ReactEnvironment.cs index d37150226..c702c8ebd 100644 --- a/src/React.Core/ReactEnvironment.cs +++ b/src/React.Core/ReactEnvironment.cs @@ -201,9 +201,17 @@ protected virtual void EnsureUserScriptsLoaded() var contents = Babel.TransformFile(file); try { - Execute(contents); + if (_config.AllowJavaScriptPrecompilation + && Engine.TryExecuteWithPrecompilation(_cache, _fileSystem, contents, file)) + { + // Do nothing. + } + else + { + Engine.Execute(contents, file); + } } - catch (JsRuntimeException ex) + catch (JsScriptException ex) { throw new ReactScriptLoadException(string.Format( "Error while loading \"{0}\": {1}", @@ -474,7 +482,17 @@ private void EnsureBabelLoaded(IJsEngine engine) #else var assembly = typeof(ReactEnvironment).GetTypeInfo().Assembly; #endif - engine.ExecuteResource("React.Core.Resources.babel.generated.min.js", assembly); + const string resourceName = "React.Core.Resources.babel.generated.min.js"; + + if (_config.AllowJavaScriptPrecompilation + && engine.TryExecuteResourceWithPrecompilation(_cache, resourceName, assembly)) + { + // Do nothing. + } + else + { + engine.ExecuteResource(resourceName, assembly); + } } } } diff --git a/src/React.Core/ReactSiteConfiguration.cs b/src/React.Core/ReactSiteConfiguration.cs index dd735b1c9..1c81b6222 100644 --- a/src/React.Core/ReactSiteConfiguration.cs +++ b/src/React.Core/ReactSiteConfiguration.cs @@ -37,7 +37,7 @@ public ReactSiteConfiguration() { BabelConfig = new BabelConfig(); ReuseJavaScriptEngines = true; - AllowMsieEngine = true; + AllowJavaScriptPrecompilation = false; LoadBabel = true; LoadReact = true; JsonSerializerSettings = new JsonSerializerSettings @@ -216,17 +216,19 @@ public IReactSiteConfiguration SetMaxUsagesPerEngine(int? maxUsagesPerEngine) } /// - /// Gets or sets whether the MSIE engine should be used if V8 is unavailable. + /// Gets or sets whether to allow the JavaScript pre-compilation (accelerates the + /// initialization of JavaScript engines). /// - public bool AllowMsieEngine { get; set; } + public bool AllowJavaScriptPrecompilation { get; set; } /// - /// Sets whether the MSIE engine should be used if V8 is unavailable. + /// Sets whether to allow the JavaScript pre-compilation (accelerates the initialization of + /// JavaScript engines). /// /// - public IReactSiteConfiguration SetAllowMsieEngine(bool allowMsieEngine) + public IReactSiteConfiguration SetAllowJavaScriptPrecompilation(bool allowJavaScriptPrecompilation) { - AllowMsieEngine = allowMsieEngine; + AllowJavaScriptPrecompilation = allowJavaScriptPrecompilation; return this; } diff --git a/src/React.Sample.Cassette/React.Sample.Cassette.csproj b/src/React.Sample.Cassette/React.Sample.Cassette.csproj index 7bd082015..fc77052b2 100644 --- a/src/React.Sample.Cassette/React.Sample.Cassette.csproj +++ b/src/React.Sample.Cassette/React.Sample.Cassette.csproj @@ -69,14 +69,14 @@ True - ..\packages\JavaScriptEngineSwitcher.Core.3.0.0-beta4\lib\net40-client\JavaScriptEngineSwitcher.Core.dll + ..\packages\JavaScriptEngineSwitcher.Core.3.0.0-beta9\lib\net40-client\JavaScriptEngineSwitcher.Core.dll ..\packages\JavaScriptEngineSwitcher.Msie.3.0.0-beta5\lib\net40-client\JavaScriptEngineSwitcher.Msie.dll - ..\packages\MsieJavaScriptEngine.3.0.0-beta4\lib\net40-client\MsieJavaScriptEngine.dll + ..\packages\MsieJavaScriptEngine.3.0.0-beta5\lib\net40-client\MsieJavaScriptEngine.dll diff --git a/src/React.Sample.Cassette/packages.config b/src/React.Sample.Cassette/packages.config index 429252e93..3dd2e3161 100644 --- a/src/React.Sample.Cassette/packages.config +++ b/src/React.Sample.Cassette/packages.config @@ -5,13 +5,13 @@ - + - + \ No newline at end of file diff --git a/src/React.Sample.ConsoleApp/React.Sample.ConsoleApp.csproj b/src/React.Sample.ConsoleApp/React.Sample.ConsoleApp.csproj index f66bdb8a3..222d94243 100644 --- a/src/React.Sample.ConsoleApp/React.Sample.ConsoleApp.csproj +++ b/src/React.Sample.ConsoleApp/React.Sample.ConsoleApp.csproj @@ -20,10 +20,10 @@ - - - - + + + + diff --git a/src/React.Sample.CoreMvc/React.Sample.CoreMvc.csproj b/src/React.Sample.CoreMvc/React.Sample.CoreMvc.csproj index bfb233117..a60008243 100644 --- a/src/React.Sample.CoreMvc/React.Sample.CoreMvc.csproj +++ b/src/React.Sample.CoreMvc/React.Sample.CoreMvc.csproj @@ -20,11 +20,11 @@ - + - - - + + + diff --git a/src/React.Sample.CoreMvc/Startup.cs b/src/React.Sample.CoreMvc/Startup.cs index 81bd4e17d..ec338c3b6 100644 --- a/src/React.Sample.CoreMvc/Startup.cs +++ b/src/React.Sample.CoreMvc/Startup.cs @@ -75,6 +75,7 @@ public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerF { config .SetReuseJavaScriptEngines(true) + .SetAllowJavaScriptPrecompilation(true) .AddScript("~/js/Sample.jsx") .SetExceptionHandler((ex, name, id) => { diff --git a/src/React.Sample.Mvc4/App_Start/ReactConfig.cs b/src/React.Sample.Mvc4/App_Start/ReactConfig.cs index 20c03226c..0ab1fdb22 100644 --- a/src/React.Sample.Mvc4/App_Start/ReactConfig.cs +++ b/src/React.Sample.Mvc4/App_Start/ReactConfig.cs @@ -20,6 +20,7 @@ public static void Configure() { ReactSiteConfiguration.Configuration .SetReuseJavaScriptEngines(true) + .SetAllowJavaScriptPrecompilation(true) .AddScript("~/Content/Sample.jsx"); JsEngineSwitcher.Current.DefaultEngineName = V8JsEngine.EngineName; diff --git a/src/React.Sample.Mvc4/React.Sample.Mvc4.csproj b/src/React.Sample.Mvc4/React.Sample.Mvc4.csproj index d68f1e2e6..a626d3746 100644 --- a/src/React.Sample.Mvc4/React.Sample.Mvc4.csproj +++ b/src/React.Sample.Mvc4/React.Sample.Mvc4.csproj @@ -1,6 +1,6 @@  - + Debug @@ -58,19 +58,16 @@ ..\packages\Antlr.3.5.0.2\lib\Antlr3.Runtime.dll True - - ..\packages\JavaScriptEngineSwitcher.V8.3.0.0-beta4\lib\net45\ClearScript.dll + + ..\packages\JavaScriptEngineSwitcher.V8.3.0.0-beta9\lib\net45\ClearScript.dll - ..\packages\JavaScriptEngineSwitcher.Core.3.0.0-beta4\lib\net45\JavaScriptEngineSwitcher.Core.dll + ..\packages\JavaScriptEngineSwitcher.Core.3.0.0-beta9\lib\net45\JavaScriptEngineSwitcher.Core.dll - ..\packages\JavaScriptEngineSwitcher.V8.3.0.0-beta4\lib\net45\JavaScriptEngineSwitcher.V8.dll + ..\packages\JavaScriptEngineSwitcher.V8.3.0.0-beta9\lib\net45\JavaScriptEngineSwitcher.V8.dll - - ..\packages\MsieJavaScriptEngine.3.0.0-beta4\lib\net45\MsieJavaScriptEngine.dll - ..\packages\Newtonsoft.Json.9.0.1\lib\net45\Newtonsoft.Json.dll True @@ -228,7 +225,7 @@ This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - + ``` +
@@ -89,10 +92,12 @@ bundles.Add(new JsxBundle("~/bundles/main").Include( "~/Scripts/ajax.js", )); ``` + ```html @Scripts.Render("~/bundles/main") ``` +
@@ -118,6 +123,7 @@ bundles.Add(new JsxBundle("~/bundles/main").Include( @Scripts.Render("~/bundles/main") @Html.ReactInitJavaScript() ``` +
@@ -126,7 +132,7 @@ bundles.Add(new JsxBundle("~/bundles/main").Include(
diff --git a/site/jekyll/getting-started/tutorial_aspnet4.md b/site/jekyll/tutorials/aspnet4.md similarity index 68% rename from site/jekyll/getting-started/tutorial_aspnet4.md rename to site/jekyll/tutorials/aspnet4.md index 2e54b49e5..165c9fb21 100644 --- a/site/jekyll/getting-started/tutorial_aspnet4.md +++ b/site/jekyll/tutorials/aspnet4.md @@ -1,12 +1,12 @@ --- id: tutorial -title: Tutorial (ASP.NET MVC 5) +title: Tutorial (ASP.NET 4.x) layout: docs --- > Note: > -> This tutorial is for Visual Studio 2013 and ASP.NET MVC 4. If you like, you can [see the tutorial for ASP.NET Core instead](/getting-started/tutorial.html) +> This tutorial is for Visual Studio 2013 and ASP.NET MVC 4. If you like, you can [see the tutorial for ASP.NET Core instead](/tutorials/aspnetcore.html) This tutorial covers the end-to-end process of creating a brand new ASP.NET MVC website and adding a React component in it. We will start from scratch and end with a fully functioning component. It assumes you have basic knowledge of ASP.NET MVC and using Visual Studio. This tutorial is based off the [original React tutorial](https://reactjs.org/tutorial/tutorial.html) but has been modified specifically for ReactJS.NET. @@ -14,15 +14,15 @@ We'll be building a simple, but realistic, comments box that you can drop into a We'll provide: -* A view of all of the comments -* A form to submit a comment -* Simple server-side in-memory storage for comments +- A view of all of the comments +- A form to submit a comment +- Simple server-side in-memory storage for comments It'll also have a few neat features: -* **Optimistic updates:** comments appear in the list before they're saved on the server so it feels fast. -* **Live updates:** other users' comments are popped into the comment view in real time. -* **Markdown formatting:** users can use Markdown to format their text. +- **Optimistic updates:** comments appear in the list before they're saved on the server so it feels fast. +- **Live updates:** other users' comments are popped into the comment view in real time. +- **Markdown formatting:** users can use Markdown to format their text. ## Getting started @@ -51,13 +51,13 @@ Since this tutorial focuses mainly on ReactJS.NET itself, we will not cover crea Right-click on the Controllers folder and click Add → Controller. Name the controller "HomeController" and select "Empty MVC Controller" as the template. Once the controller has been created, right-click on `return View()` and click "Add View". Enter the following details: - - View name: Index - - View Engine: Razor (CSHTML) - - Create a strongly-typed view: Unticked - - Create as a partial view: Unticked - - Use a layout or master page: Unticked +- View name: Index +- View Engine: Razor (CSHTML) +- Create a strongly-typed view: Unticked +- Create as a partial view: Unticked +- Use a layout or master page: Unticked -*Note: In a real ASP.NET MVC site, you'd use a layout. However, to keep this tutorial simple, we will keep all HTML in the one view file.* +_Note: In a real ASP.NET MVC site, you'd use a layout. However, to keep this tutorial simple, we will keep all HTML in the one view file._ Replace the contents of the new view file with the following: @@ -98,19 +98,14 @@ Let's build the `CommentBox` component, which just displays a simple `
`. Ad ```javascript class CommentBox extends React.Component { - render() { - return ( -
- Hello, world! I am a CommentBox. -
- ); - } + render() { + return ( +
Hello, world! I am a CommentBox.
+ ); + } } -ReactDOM.render( - , - document.getElementById('content') -); +ReactDOM.render(, document.getElementById('content')); ``` Note that native HTML element names start with a lowercase letter, while custom React class names begin with an uppercase letter. @@ -127,18 +122,18 @@ The first thing you'll notice is the XML-ish syntax in your JavaScript. We have ```javascript class CommentBox extends React.Component { - render() { - return ( - React.createElement('div', {className: "commentBox"}, - "Hello, world! I am a CommentBox." - ) - ); - } -}; + render() { + return React.createElement( + 'div', + { className: 'commentBox' }, + 'Hello, world! I am a CommentBox.', + ); + } +} ReactDOM.render( - React.createElement(CommentBox, null), - document.getElementById('content') + React.createElement(CommentBox, null), + document.getElementById('content'), ); ``` @@ -162,23 +157,19 @@ Let's build skeletons for `CommentList` and `CommentForm` which will, again, be ```javascript class CommentList extends React.Component { - render() { - return ( -
- Hello, world! I am a CommentList. -
- ); - } + render() { + return ( +
Hello, world! I am a CommentList.
+ ); + } } class CommentForm extends React.Component { - render() { - return ( -
- Hello, world! I am a CommentForm. -
- ); - } + render() { + return ( +
Hello, world! I am a CommentForm.
+ ); + } } ``` @@ -186,15 +177,15 @@ Next, update the `CommentBox` component to use these new components: ```javascript{5-7} class CommentBox extends React.Component { - render() { - return ( -
-

Comments

- - -
- ); - } + render() { + return ( +
+

Comments

+ + +
+ ); + } } ``` @@ -206,16 +197,14 @@ Let's create the `Comment` component, which will depend on data passed in from o ```javascript class Comment extends React.Component { - render() { - return ( -
-

- {this.props.author} -

- {this.props.children} -
- ); - } + render() { + return ( +
+

{this.props.author}

+ {this.props.children} +
+ ); + } } ``` @@ -227,19 +216,23 @@ Now that we have defined the `Comment` component, we will want to pass it the au ```javascript{5-7} class CommentList extends React.Component { - render() { - return ( -
- Hello ReactJS.NET World! - This is one comment - This is *another* comment -
- ); - } + render() { + return ( +
+ + Hello ReactJS.NET World! + + This is one comment + + This is *another* comment + +
+ ); + } } ``` -Note that we have passed some data from the parent `CommentList` component to the child `Comment` components. For example, we passed *Daniel Lo Nigro* (via the `author` attribute) and *Hello ReactJS.NET World* (via an XML-like child node) to the first `Comment`. As noted above, the `Comment` component will access these 'properties' through `this.props.author`, and `this.props.children`. +Note that we have passed some data from the parent `CommentList` component to the child `Comment` components. For example, we passed _Daniel Lo Nigro_ (via the `author` attribute) and _Hello ReactJS.NET World_ (via an XML-like child node) to the first `Comment`. As noted above, the `Comment` component will access these 'properties' through `this.props.author`, and `this.props.children`. ### Adding Markdown @@ -249,17 +242,15 @@ In this tutorial we use a third-party library called [remarkable](https://github ```javascript{3,9} class Comment extends React.Component { - render() { - const md = new Remarkable(); - return ( -
-

- {this.props.author} -

- {md.render(this.props.children.toString())} -
- ); - } + render() { + const md = new Remarkable(); + return ( +
+

{this.props.author}

+ {md.render(this.props.children.toString())} +
+ ); + } } ``` @@ -271,21 +262,19 @@ That's React protecting you from an [XSS attack](https://en.wikipedia.org/wiki/C ```javascript{2-6,13} class Comment extends React.Component { - rawMarkup() { - const md = new Remarkable(); - const rawMarkup = md.render(this.props.children.toString()); - return { __html: rawMarkup }; - } - render() { - return ( -
-

- {this.props.author} -

- -
- ); - } + rawMarkup() { + const md = new Remarkable(); + const rawMarkup = md.render(this.props.children.toString()); + return { __html: rawMarkup }; + } + render() { + return ( +
+

{this.props.author}

+ +
+ ); + } } ``` @@ -299,9 +288,9 @@ So far we've been inserting the comments directly in the source code. Instead, l ```javascript const data = [ - { Id: 1, Author: "Daniel Lo Nigro", Text: "Hello ReactJS.NET World!" }, - { Id: 2, Author: "Pete Hunt", Text: "This is one comment" }, - { Id: 3, Author: "Jordan Walke", Text: "This is *another* comment" } + { Id: 1, Author: 'Daniel Lo Nigro', Text: 'Hello ReactJS.NET World!' }, + { Id: 2, Author: 'Pete Hunt', Text: 'This is one comment' }, + { Id: 3, Author: 'Jordan Walke', Text: 'This is *another* comment' }, ]; ``` @@ -309,39 +298,32 @@ We need to get this data into `CommentList` in a modular way. Modify `CommentBox ```javascript{6,14} class CommentBox extends React.Component { - render() { - return ( -
-

Comments

- - -
- ); - } + render() { + return ( +
+

Comments

+ + +
+ ); + } } -ReactDOM.render( - , - document.getElementById('content') -); +ReactDOM.render(, document.getElementById('content')); ``` Now that the data is available in the `CommentList`, let's render the comments dynamically: ```javascript{3-7,10} class CommentList extends React.Component { - render() { - const commentNodes = this.props.data.map(comment => ( - - {comment.Text} - - )); - return ( -
- {commentNodes} -
- ); - } + render() { + const commentNodes = this.props.data.map(comment => ( + + {comment.Text} + + )); + return
{commentNodes}
; + } } ``` @@ -461,8 +443,8 @@ Now that we have a data source, we can replace the hard-coded data with the dyna ```javascript{2} ReactDOM.render( - , - document.getElementById('content') + , + document.getElementById('content'), ); ``` @@ -480,19 +462,19 @@ When the server fetches data, we will be changing the comment data we have. Let' ```javascript{2-5,10} class CommentBox extends React.Component { - constructor(props) { - super(props); - this.state = {data: []}; - } - render() { - return ( -
-

Comments

- - -
- ); - } + constructor(props) { + super(props); + this.state = { data: [] }; + } + render() { + return ( +
+

Comments

+ + +
+ ); + } } ``` @@ -504,68 +486,71 @@ When the component is first created, we want to GET some JSON from the server an ```javascript{6-14} class CommentBox extends React.Component { - constructor(props) { - super(props); - this.state = {data: []}; - } - componentWillMount() { - const xhr = new XMLHttpRequest(); - xhr.open('get', this.props.url, true); - xhr.onload = () => { - const data = JSON.parse(xhr.responseText); - this.setState({ data: data }); - }; - xhr.send(); - } - render() { - return ( -
-

Comments

- - -
- ); - } + constructor(props) { + super(props); + this.state = { data: [] }; + } + componentWillMount() { + const xhr = new XMLHttpRequest(); + xhr.open('get', this.props.url, true); + xhr.onload = () => { + const data = JSON.parse(xhr.responseText); + this.setState({ data: data }); + }; + xhr.send(); + } + render() { + return ( +
+

Comments

+ + +
+ ); + } } ``` -Below, we're using `componentDidMount()`, a method called automatically by React *after* a component is rendered for the first time. By moving the XMLHttpRequest call from `componentWillMount()`, which is executed only once *before* rendering, to a function called `loadCommentsFromServer()`, we can then call it multiple times from `componentDidMount()` at a set interval to check for any updates to the comments. +Below, we're using `componentDidMount()`, a method called automatically by React _after_ a component is rendered for the first time. By moving the XMLHttpRequest call from `componentWillMount()`, which is executed only once _before_ rendering, to a function called `loadCommentsFromServer()`, we can then call it multiple times from `componentDidMount()` at a set interval to check for any updates to the comments. The key to these dynamic updates is the call to `this.setState()`. We replace the old array of comments with the new one from the server and the UI automatically updates itself. Because of this reactivity, it is only a minor change to add live updates. We will use simple polling here but you could easily use [SignalR](http://signalr.net/) or other technologies. ```javascript{6,15-18,31} class CommentBox extends React.Component { - constructor(props) { - super(props); - this.state = { data: [] }; - } - loadCommentsFromServer() { - const xhr = new XMLHttpRequest(); - xhr.open('get', this.props.url, true); - xhr.onload = () => { - const data = JSON.parse(xhr.responseText); - this.setState({ data: data }); - }; - xhr.send(); - } - componentDidMount() { - this.loadCommentsFromServer(); - window.setInterval(() => this.loadCommentsFromServer(), this.props.pollInterval); - } - render() { - return ( -
-

Comments

- - -
- ); - } + constructor(props) { + super(props); + this.state = { data: [] }; + } + loadCommentsFromServer() { + const xhr = new XMLHttpRequest(); + xhr.open('get', this.props.url, true); + xhr.onload = () => { + const data = JSON.parse(xhr.responseText); + this.setState({ data: data }); + }; + xhr.send(); + } + componentDidMount() { + this.loadCommentsFromServer(); + window.setInterval( + () => this.loadCommentsFromServer(), + this.props.pollInterval, + ); + } + render() { + return ( +
+

Comments

+ + +
+ ); + } } ReactDOM.render( - , - document.getElementById('content') + , + document.getElementById('content'), ); ``` @@ -594,7 +579,6 @@ routes.MapRoute( url: "comments/new", defaults: new { controller = "Home", action = "AddComment" } ); - ``` #### The Form @@ -603,15 +587,15 @@ Now it's time to build the form. Our `CommentForm` component should ask the user ```javascript{4-8} class CommentForm extends React.Component { - render() { - return ( - - - - - - ); - } + render() { + return ( +
+ + + +
+ ); + } } ``` @@ -623,37 +607,37 @@ Hence, we will be using `this.state` to save the user's input as it is entered. ```javascript{2-13,16-28} class CommentForm extends React.Component { - constructor(props) { - super(props); - this.state = {author: '', text: ''}; - this.handleAuthorChange = this.handleAuthorChange.bind(this); - this.handleTextChange = this.handleTextChange.bind(this); - } - handleAuthorChange(e) { - this.setState({author: e.target.value}); - } - handleTextChange(e) { - this.setState({text: e.target.value}); - } - render() { - return ( -
- - - -
- ); - } + constructor(props) { + super(props); + this.state = { author: '', text: '' }; + this.handleAuthorChange = this.handleAuthorChange.bind(this); + this.handleTextChange = this.handleTextChange.bind(this); + } + handleAuthorChange(e) { + this.setState({ author: e.target.value }); + } + handleTextChange(e) { + this.setState({ text: e.target.value }); + } + render() { + return ( +
+ + + +
+ ); + } } ``` @@ -671,48 +655,48 @@ Let's make the form interactive. When the user submits the form, we should clear ```javascript{7,15-24,27} class CommentForm extends React.Component { - constructor(props) { - super(props); - this.state = {author: '', text: ''}; - this.handleAuthorChange = this.handleAuthorChange.bind(this); - this.handleTextChange = this.handleTextChange.bind(this); - this.handleSubmit = this.handleSubmit.bind(this); - } - handleAuthorChange(e) { - this.setState({author: e.target.value}); - } - handleTextChange(e) { - this.setState({text: e.target.value}); - } - handleSubmit(e) { - e.preventDefault(); - const author = this.state.author.trim(); - const text = this.state.text.trim(); - if (!text || !author) { - return; - } - // TODO: send request to the server - this.setState({ author: '', text: '' }); - } - render() { - return ( -
- - - -
- ); - } + constructor(props) { + super(props); + this.state = { author: '', text: '' }; + this.handleAuthorChange = this.handleAuthorChange.bind(this); + this.handleTextChange = this.handleTextChange.bind(this); + this.handleSubmit = this.handleSubmit.bind(this); + } + handleAuthorChange(e) { + this.setState({ author: e.target.value }); + } + handleTextChange(e) { + this.setState({ text: e.target.value }); + } + handleSubmit(e) { + e.preventDefault(); + const author = this.state.author.trim(); + const text = this.state.text.trim(); + if (!text || !author) { + return; + } + // TODO: send request to the server + this.setState({ author: '', text: '' }); + } + render() { + return ( +
+ + + +
+ ); + } } ``` @@ -726,36 +710,39 @@ We need to pass data from the child component back up to its parent. We do this ```javascript{5,16-18,28} class CommentBox extends React.Component { - constructor(props) { - super(props); - this.state = { data: [] }; - this.handleCommentSubmit = this.handleCommentSubmit.bind(this); - } - loadCommentsFromServer() { - const xhr = new XMLHttpRequest(); - xhr.open('get', this.props.url, true); - xhr.onload = () => { - const data = JSON.parse(xhr.responseText); - this.setState({ data: data }); - }; - xhr.send(); - } - handleCommentSubmit(comment) { - // TODO: submit to the server and refresh the list - } - componentDidMount() { - this.loadCommentsFromServer(); - window.setInterval(() => this.loadCommentsFromServer(), this.props.pollInterval); - } - render() { - return ( -
-

Comments

- - -
- ); - } + constructor(props) { + super(props); + this.state = { data: [] }; + this.handleCommentSubmit = this.handleCommentSubmit.bind(this); + } + loadCommentsFromServer() { + const xhr = new XMLHttpRequest(); + xhr.open('get', this.props.url, true); + xhr.onload = () => { + const data = JSON.parse(xhr.responseText); + this.setState({ data: data }); + }; + xhr.send(); + } + handleCommentSubmit(comment) { + // TODO: submit to the server and refresh the list + } + componentDidMount() { + this.loadCommentsFromServer(); + window.setInterval( + () => this.loadCommentsFromServer(), + this.props.pollInterval, + ); + } + render() { + return ( +
+

Comments

+ + +
+ ); + } } ``` @@ -763,48 +750,48 @@ Now that `CommentBox` has made the callback available to `CommentForm` via the ` ```javascript{22} class CommentForm extends React.Component { - constructor(props) { - super(props); - this.state = {author: '', text: ''}; - this.handleAuthorChange = this.handleAuthorChange.bind(this); - this.handleTextChange = this.handleTextChange.bind(this); - this.handleSubmit = this.handleSubmit.bind(this); - } - handleAuthorChange(e) { - this.setState({author: e.target.value}); - } - handleTextChange(e) { - this.setState({text: e.target.value}); - } - handleSubmit(e) { - e.preventDefault(); - const author = this.state.author.trim(); - const text = this.state.text.trim(); - if (!text || !author) { - return; - } - this.props.onCommentSubmit({Author: author, Text: text}); - this.setState({ author: '', text: '' }); - } - render() { - return ( -
- - - -
- ); - } + constructor(props) { + super(props); + this.state = { author: '', text: '' }; + this.handleAuthorChange = this.handleAuthorChange.bind(this); + this.handleTextChange = this.handleTextChange.bind(this); + this.handleSubmit = this.handleSubmit.bind(this); + } + handleAuthorChange(e) { + this.setState({ author: e.target.value }); + } + handleTextChange(e) { + this.setState({ text: e.target.value }); + } + handleSubmit(e) { + e.preventDefault(); + const author = this.state.author.trim(); + const text = this.state.text.trim(); + if (!text || !author) { + return; + } + this.props.onCommentSubmit({ Author: author, Text: text }); + this.setState({ author: '', text: '' }); + } + render() { + return ( +
+ + + +
+ ); + } } ``` @@ -812,48 +799,55 @@ Now that the callbacks are in place, all we have to do is submit to the server a ```javascript{16-25,42} class CommentBox extends React.Component { - constructor(props) { - super(props); - this.state = { data: [] }; - this.handleCommentSubmit = this.handleCommentSubmit.bind(this); - } - loadCommentsFromServer() { - const xhr = new XMLHttpRequest(); - xhr.open('get', this.props.url, true); - xhr.onload = () => { - const data = JSON.parse(xhr.responseText); - this.setState({ data: data }); - }; - xhr.send(); - } - handleCommentSubmit(comment) { - const data = new FormData(); - data.append('Author', comment.Author); - data.append('Text', comment.Text); - - const xhr = new XMLHttpRequest(); - xhr.open('post', this.props.submitUrl, true); - xhr.onload = () => this.loadCommentsFromServer(); - xhr.send(data); - } - componentDidMount() { - this.loadCommentsFromServer(); - window.setInterval(() => this.loadCommentsFromServer(), this.props.pollInterval); - } - render() { - return ( -
-

Comments

- - -
- ); - } + constructor(props) { + super(props); + this.state = { data: [] }; + this.handleCommentSubmit = this.handleCommentSubmit.bind(this); + } + loadCommentsFromServer() { + const xhr = new XMLHttpRequest(); + xhr.open('get', this.props.url, true); + xhr.onload = () => { + const data = JSON.parse(xhr.responseText); + this.setState({ data: data }); + }; + xhr.send(); + } + handleCommentSubmit(comment) { + const data = new FormData(); + data.append('Author', comment.Author); + data.append('Text', comment.Text); + + const xhr = new XMLHttpRequest(); + xhr.open('post', this.props.submitUrl, true); + xhr.onload = () => this.loadCommentsFromServer(); + xhr.send(data); + } + componentDidMount() { + this.loadCommentsFromServer(); + window.setInterval( + () => this.loadCommentsFromServer(), + this.props.pollInterval, + ); + } + render() { + return ( +
+

Comments

+ + +
+ ); + } } ReactDOM.render( - , - document.getElementById('content') + , + document.getElementById('content'), ); ``` @@ -871,51 +865,54 @@ Our application is now feature complete but it feels slow to have to wait for th ```javascript{17-23} class CommentBox extends React.Component { - constructor(props) { - super(props); - this.state = { data: [] }; - this.handleCommentSubmit = this.handleCommentSubmit.bind(this); - } - loadCommentsFromServer() { - const xhr = new XMLHttpRequest(); - xhr.open('get', this.props.url, true); - xhr.onload = () => { - const data = JSON.parse(xhr.responseText); - this.setState({ data: data }); - }; - xhr.send(); - } - handleCommentSubmit(comment) { - const comments = this.state.data; - // Optimistically set an id on the new comment. It will be replaced by an - // id generated by the server. In a production application you would likely - // use a more robust system for ID generation. - comment.Id = comments.length + 1; - const newComments = comments.concat([comment]); - this.setState({data: newComments}); - - const data = new FormData(); - data.append('Author', comment.Author); - data.append('Text', comment.Text); - - const xhr = new XMLHttpRequest(); - xhr.open('post', this.props.submitUrl, true); - xhr.onload = () => this.loadCommentsFromServer(); - xhr.send(data); - } - componentDidMount() { - this.loadCommentsFromServer(); - window.setInterval(() => this.loadCommentsFromServer(), this.props.pollInterval); - } - render() { - return ( -
-

Comments

- - -
- ); - } + constructor(props) { + super(props); + this.state = { data: [] }; + this.handleCommentSubmit = this.handleCommentSubmit.bind(this); + } + loadCommentsFromServer() { + const xhr = new XMLHttpRequest(); + xhr.open('get', this.props.url, true); + xhr.onload = () => { + const data = JSON.parse(xhr.responseText); + this.setState({ data: data }); + }; + xhr.send(); + } + handleCommentSubmit(comment) { + const comments = this.state.data; + // Optimistically set an id on the new comment. It will be replaced by an + // id generated by the server. In a production application you would likely + // use a more robust system for ID generation. + comment.Id = comments.length + 1; + const newComments = comments.concat([comment]); + this.setState({ data: newComments }); + + const data = new FormData(); + data.append('Author', comment.Author); + data.append('Text', comment.Text); + + const xhr = new XMLHttpRequest(); + xhr.open('post', this.props.submitUrl, true); + xhr.onload = () => this.loadCommentsFromServer(); + xhr.send(data); + } + componentDidMount() { + this.loadCommentsFromServer(); + window.setInterval( + () => this.loadCommentsFromServer(), + this.props.pollInterval, + ); + } + render() { + return ( +
+

Comments

+ + +
+ ); + } } ``` @@ -989,47 +986,50 @@ We need to make some modifications to `CommentBox` to support server-side render ```javascript{4,31-33} class CommentBox extends React.Component { - constructor(props) { - super(props); - this.state = { data: this.props.initialData }; - this.handleCommentSubmit = this.handleCommentSubmit.bind(this); - } - loadCommentsFromServer() { - const xhr = new XMLHttpRequest(); - xhr.open('get', this.props.url, true); - xhr.onload = () => { - const data = JSON.parse(xhr.responseText); - this.setState({ data: data }); - }; - xhr.send(); - } - handleCommentSubmit(comment) { - const comments = this.state.data; - comment.Id = comments.length + 1; - const newComments = comments.concat([comment]); - this.setState({data: newComments}); - - const data = new FormData(); - data.append('Author', comment.Author); - data.append('Text', comment.Text); - - const xhr = new XMLHttpRequest(); - xhr.open('post', this.props.submitUrl, true); - xhr.onload = () => this.loadCommentsFromServer(); - xhr.send(data); - } - componentDidMount() { - window.setInterval(() => this.loadCommentsFromServer(), this.props.pollInterval); - } - render() { - return ( -
-

Comments

- - -
- ); - } + constructor(props) { + super(props); + this.state = { data: this.props.initialData }; + this.handleCommentSubmit = this.handleCommentSubmit.bind(this); + } + loadCommentsFromServer() { + const xhr = new XMLHttpRequest(); + xhr.open('get', this.props.url, true); + xhr.onload = () => { + const data = JSON.parse(xhr.responseText); + this.setState({ data: data }); + }; + xhr.send(); + } + handleCommentSubmit(comment) { + const comments = this.state.data; + comment.Id = comments.length + 1; + const newComments = comments.concat([comment]); + this.setState({ data: newComments }); + + const data = new FormData(); + data.append('Author', comment.Author); + data.append('Text', comment.Text); + + const xhr = new XMLHttpRequest(); + xhr.open('post', this.props.submitUrl, true); + xhr.onload = () => this.loadCommentsFromServer(); + xhr.send(data); + } + componentDidMount() { + window.setInterval( + () => this.loadCommentsFromServer(), + this.props.pollInterval, + ); + } + render() { + return ( +
+

Comments

+ + +
+ ); + } } ``` @@ -1037,21 +1037,19 @@ We also need to update the `Comment` component to use `Remarkable` from either ` ```javascript{3} class Comment extends React.Component { - rawMarkup() { - const md = new (global.Remarkable || window.Remarkable)(); - const rawMarkup = md.render(this.props.children.toString()); - return { __html: rawMarkup }; - } - render() { - return ( -
-

- {this.props.author} -

- -
- ); - } + rawMarkup() { + const md = new (global.Remarkable || window.Remarkable)(); + const rawMarkup = md.render(this.props.children.toString()); + return { __html: rawMarkup }; + } + render() { + return ( +
+

{this.props.author}

+ +
+ ); + } } ``` diff --git a/site/jekyll/getting-started/tutorial.md b/site/jekyll/tutorials/aspnetcore.md similarity index 67% rename from site/jekyll/getting-started/tutorial.md rename to site/jekyll/tutorials/aspnetcore.md index 44c6e6ee7..e462e781e 100644 --- a/site/jekyll/getting-started/tutorial.md +++ b/site/jekyll/tutorials/aspnetcore.md @@ -6,7 +6,7 @@ layout: docs > Note: > -> This tutorial is for Visual Studio 2015 and ASP.NET Core MVC. If you're still using ASP.NET 4 and ASP.NET MVC 5, you can [follow the ASP.NET 4 tutorial instead](/getting-started/tutorial_aspnet4.html) +> This tutorial is for Visual Studio 2015 and ASP.NET Core MVC. If you're still using ASP.NET 4 and ASP.NET MVC 5, you can [follow the ASP.NET 4 tutorial instead](/tutorials/aspnet4.html) This tutorial covers the end-to-end process of creating a brand new ASP.NET MVC website and adding a React component in it. We will start from scratch and end with a fully functioning component. It assumes you have basic knowledge of ASP.NET MVC and using Visual Studio. This tutorial is based off the [original React tutorial](https://reactjs.org/tutorial/tutorial.html) but has been modified specifically for ReactJS.NET. @@ -14,15 +14,15 @@ We'll be building a simple, but realistic comments box that you can drop into a We'll provide: -* A view of all of the comments -* A form to submit a comment -* Simple server-side in-memory storage for comments +- A view of all of the comments +- A form to submit a comment +- Simple server-side in-memory storage for comments It'll also have a few neat features: -* **Optimistic commenting:** comments appear in the list before they're saved on the server so it feels fast. -* **Live updates:** other users' comments are popped into the comment view in real time. -* **Markdown formatting:** users can use Markdown to format their text. +- **Optimistic commenting:** comments appear in the list before they're saved on the server so it feels fast. +- **Live updates:** other users' comments are popped into the comment view in real time. +- **Markdown formatting:** users can use Markdown to format their text. ## Want to skip all this and just see the source? @@ -40,7 +40,7 @@ Start by creating a new ASP.NET Core MVC project: 2. Ensure ".NET Framework 4.6" is selected in the dropdown list at the top 3. Go to Templates → Visual C# → Web and select the "ASP.NET Core Web Application (.NET Framework)" template. Call it "ReactDemo" [Screenshot: New Project](/img/tutorial/newproject_core.png) -3. In the "New ASP.NET Core Web Application" dialog, select the Web Application template. Also, click "Change Authentication" and select "No Authentication" +4. In the "New ASP.NET Core Web Application" dialog, select the Web Application template. Also, click "Change Authentication" and select "No Authentication" [Screenshot: New ASP.NET Core MVC Project dialog](/img/tutorial/new_webapp.png) Note: We are using .NET Framework in this tutorial, but you can instead use .NET Core if you want to be able to run your site on Linux or Mac OS. Currently .NET Core is missing some of the functionality provided by .NET Framework, so it is recommended to use .NET Framework unless you have a reason to use .NET Core specifically (eg. cross-platform support). @@ -49,10 +49,10 @@ Note: We are using .NET Framework in this tutorial, but you can instead use .NET The default Web Application template includes some example content that we don't need. Delete the following files: - - `Controllers\HomeController.cs` - - `Views\Home` and `Views\Shared` folders - - `bundleconfig.json` - - `Project_Readme.html` +- `Controllers\HomeController.cs` +- `Views\Home` and `Views\Shared` folders +- `bundleconfig.json` +- `Project_Readme.html` ### Install ReactJS.NET @@ -124,10 +124,11 @@ Finally, add this to `Views\_ViewImports.cshtml`: Since this tutorial focuses mainly on ReactJS.NET itself, we will not cover creation of an MVC controller in much detail. To learn more about ASP.NET MVC, refer to [its official website](http://www.asp.net/mvc). 1. Right-click on the Controllers folder and select Add → New Item -3. Select .NET Core → ASP.NET → MVC Controller Class -4. Name the file `HomeController.cs` +2. Select .NET Core → ASP.NET → MVC Controller Class +3. Name the file `HomeController.cs` Once the controller has been created, we also need to create a view + 1. Right-click on the Views folder, click "New Folder", and create a "Home" folder 2. Right-click on the Views\Home folder and select Add → New Item 3. Select .NET Core → ASP.NET → MVC View Page @@ -152,7 +153,7 @@ Replace the contents of the new view file with the following: ``` -*Note: In a real ASP.NET MVC site, you'd use a layout. However, to keep this tutorial simple, we will keep all HTML in the one view file.* +_Note: In a real ASP.NET MVC site, you'd use a layout. However, to keep this tutorial simple, we will keep all HTML in the one view file._ We also need to create the referenced JavaScript file (`tutorial.jsx`). Right-click on `wwwroot\js` and select Add → New Item. Select .NET Core → Client-side → JavaScript File, enter "tutorial.jsx" as the file name, and click "Add". @@ -173,19 +174,14 @@ Let's build the `CommentBox` component, which just displays a simple `
`. Ad ```javascript class CommentBox extends React.Component { - render() { - return ( -
- Hello, world! I am a CommentBox. -
- ); - } + render() { + return ( +
Hello, world! I am a CommentBox.
+ ); + } } -ReactDOM.render( - , - document.getElementById('content') -); +ReactDOM.render(, document.getElementById('content')); ``` Note that native HTML element names start with a lowercase letter, while custom React class names begin with an uppercase letter. @@ -202,18 +198,18 @@ The first thing you'll notice is the XML-ish syntax in your JavaScript. We have ```javascript class CommentBox extends React.Component { - render() { - return ( - React.createElement('div', {className: "commentBox"}, - "Hello, world! I am a CommentBox." - ) - ); - } -}; + render() { + return React.createElement( + 'div', + { className: 'commentBox' }, + 'Hello, world! I am a CommentBox.', + ); + } +} ReactDOM.render( - React.createElement(CommentBox, null), - document.getElementById('content') + React.createElement(CommentBox, null), + document.getElementById('content'), ); ``` @@ -237,23 +233,19 @@ Let's build skeletons for `CommentList` and `CommentForm` which will, again, be ```javascript class CommentList extends React.Component { - render() { - return ( -
- Hello, world! I am a CommentList. -
- ); - } + render() { + return ( +
Hello, world! I am a CommentList.
+ ); + } } class CommentForm extends React.Component { - render() { - return ( -
- Hello, world! I am a CommentForm. -
- ); - } + render() { + return ( +
Hello, world! I am a CommentForm.
+ ); + } } ``` @@ -261,15 +253,15 @@ Next, update the `CommentBox` component to use these new components: ```javascript{5-7} class CommentBox extends React.Component { - render() { - return ( -
-

Comments

- - -
- ); - } + render() { + return ( +
+

Comments

+ + +
+ ); + } } ``` @@ -281,16 +273,14 @@ Let's create the `Comment` component, which will depend on data passed in from o ```javascript class Comment extends React.Component { - render() { - return ( -
-

- {this.props.author} -

- {this.props.children} -
- ); - } + render() { + return ( +
+

{this.props.author}

+ {this.props.children} +
+ ); + } } ``` @@ -302,19 +292,23 @@ Now that we have defined the `Comment` component, we will want to pass it the au ```javascript{5-7} class CommentList extends React.Component { - render() { - return ( -
- Hello ReactJS.NET World! - This is one comment - This is *another* comment -
- ); - } + render() { + return ( +
+ + Hello ReactJS.NET World! + + This is one comment + + This is *another* comment + +
+ ); + } } ``` -Note that we have passed some data from the parent `CommentList` component to the child `Comment` components. For example, we passed *Daniel Lo Nigro* (via the `author` attribute) and *Hello ReactJS.NET World* (via an XML-like child node) to the first `Comment`. As noted above, the `Comment` component will access these 'properties' through `this.props.author`, and `this.props.children`. +Note that we have passed some data from the parent `CommentList` component to the child `Comment` components. For example, we passed _Daniel Lo Nigro_ (via the `author` attribute) and _Hello ReactJS.NET World_ (via an XML-like child node) to the first `Comment`. As noted above, the `Comment` component will access these 'properties' through `this.props.author`, and `this.props.children`. ### Adding Markdown @@ -324,17 +318,15 @@ In this tutorial we use a third-party library called [remarkable](https://github ```javascript{3,9} class Comment extends React.Component { - render() { - const md = new Remarkable(); - return ( -
-

- {this.props.author} -

- {md.render(this.props.children.toString())} -
- ); - } + render() { + const md = new Remarkable(); + return ( +
+

{this.props.author}

+ {md.render(this.props.children.toString())} +
+ ); + } } ``` @@ -346,21 +338,19 @@ That's React protecting you from an [XSS attack](https://en.wikipedia.org/wiki/C ```javascript{2-6,13} class Comment extends React.Component { - rawMarkup() { - const md = new Remarkable(); - const rawMarkup = md.render(this.props.children.toString()); - return { __html: rawMarkup }; - } - render() { - return ( -
-

- {this.props.author} -

- -
- ); - } + rawMarkup() { + const md = new Remarkable(); + const rawMarkup = md.render(this.props.children.toString()); + return { __html: rawMarkup }; + } + render() { + return ( +
+

{this.props.author}

+ +
+ ); + } } ``` @@ -374,9 +364,9 @@ So far we've been inserting the comments directly in the source code. Instead, l ```javascript const data = [ - { Id: 1, Author: "Daniel Lo Nigro", Text: "Hello ReactJS.NET World!" }, - { Id: 2, Author: "Pete Hunt", Text: "This is one comment" }, - { Id: 3, Author: "Jordan Walke", Text: "This is *another* comment" } + { Id: 1, Author: 'Daniel Lo Nigro', Text: 'Hello ReactJS.NET World!' }, + { Id: 2, Author: 'Pete Hunt', Text: 'This is one comment' }, + { Id: 3, Author: 'Jordan Walke', Text: 'This is *another* comment' }, ]; ``` @@ -384,39 +374,32 @@ We need to get this data into `CommentList` in a modular way. Modify `CommentBox ```javascript{6,14} class CommentBox extends React.Component { - render() { - return ( -
-

Comments

- - -
- ); - } + render() { + return ( +
+

Comments

+ + +
+ ); + } } -ReactDOM.render( - , - document.getElementById('content') -); +ReactDOM.render(, document.getElementById('content')); ``` Now that the data is available in the `CommentList`, let's render the comments dynamically: ```javascript{3-7,10} class CommentList extends React.Component { - render() { - const commentNodes = this.props.data.map(comment => ( - - {comment.Text} - - )); - return ( -
- {commentNodes} -
- ); - } + render() { + const commentNodes = this.props.data.map(comment => ( + + {comment.Text} + + )); + return
{commentNodes}
; + } } ``` @@ -495,7 +478,7 @@ public ActionResult Comments() } ``` -The `Route` attribute specifies that this action should be used when `/comments` is loaded. This method of defining URL routes is known as "attribute routing". +The `Route` attribute specifies that this action should be used when `/comments` is loaded. This method of defining URL routes is known as "attribute routing". The `ResponseCache` attribute is used here to prevent browsers from caching the response. When designing a real world API, caching of API requests should be considered more carefully. For this tutorial it is easiest to simply disable caching. @@ -509,8 +492,8 @@ Now that we have a data source, we can replace the hard-coded data with the dyna ```javascript{2} ReactDOM.render( - , - document.getElementById('content') + , + document.getElementById('content'), ); ``` @@ -528,19 +511,19 @@ When the server fetches data, we will be changing the comment data we have. Let' ```javascript{2-5,10} class CommentBox extends React.Component { - constructor(props) { - super(props); - this.state = {data: []}; - } - render() { - return ( -
-

Comments

- - -
- ); - } + constructor(props) { + super(props); + this.state = { data: [] }; + } + render() { + return ( +
+

Comments

+ + +
+ ); + } } ``` @@ -552,68 +535,71 @@ When the component is first created, we want to GET some JSON from the server an ```javascript{6-14} class CommentBox extends React.Component { - constructor(props) { - super(props); - this.state = {data: []}; - } - componentWillMount() { - const xhr = new XMLHttpRequest(); - xhr.open('get', this.props.url, true); - xhr.onload = () => { - const data = JSON.parse(xhr.responseText); - this.setState({ data: data }); - }; - xhr.send(); - } - render() { - return ( -
-

Comments

- - -
- ); - } + constructor(props) { + super(props); + this.state = { data: [] }; + } + componentWillMount() { + const xhr = new XMLHttpRequest(); + xhr.open('get', this.props.url, true); + xhr.onload = () => { + const data = JSON.parse(xhr.responseText); + this.setState({ data: data }); + }; + xhr.send(); + } + render() { + return ( +
+

Comments

+ + +
+ ); + } } ``` -Below, we're using `componentDidMount()`, a method called automatically by React *after* a component is rendered for the first time. By moving the XMLHttpRequest call from `componentWillMount()`, which is executed only once *before* rendering, to a function called `loadCommentsFromServer()`, we can then call it multiple times from `componentDidMount()` at a set interval to check for any updates to the comments. +Below, we're using `componentDidMount()`, a method called automatically by React _after_ a component is rendered for the first time. By moving the XMLHttpRequest call from `componentWillMount()`, which is executed only once _before_ rendering, to a function called `loadCommentsFromServer()`, we can then call it multiple times from `componentDidMount()` at a set interval to check for any updates to the comments. The key to these dynamic updates is the call to `this.setState()`. We replace the old array of comments with the new one from the server and the UI automatically updates itself. Because of this reactivity, it is only a minor change to add live updates. We will use simple polling here but you could easily use [SignalR](http://signalr.net/) or other technologies. ```javascript{6,15-18,31} class CommentBox extends React.Component { - constructor(props) { - super(props); - this.state = { data: [] }; - } - loadCommentsFromServer() { - const xhr = new XMLHttpRequest(); - xhr.open('get', this.props.url, true); - xhr.onload = () => { - const data = JSON.parse(xhr.responseText); - this.setState({ data: data }); - }; - xhr.send(); - } - componentDidMount() { - this.loadCommentsFromServer(); - window.setInterval(() => this.loadCommentsFromServer(), this.props.pollInterval); - } - render() { - return ( -
-

Comments

- - -
- ); - } + constructor(props) { + super(props); + this.state = { data: [] }; + } + loadCommentsFromServer() { + const xhr = new XMLHttpRequest(); + xhr.open('get', this.props.url, true); + xhr.onload = () => { + const data = JSON.parse(xhr.responseText); + this.setState({ data: data }); + }; + xhr.send(); + } + componentDidMount() { + this.loadCommentsFromServer(); + window.setInterval( + () => this.loadCommentsFromServer(), + this.props.pollInterval, + ); + } + render() { + return ( +
+

Comments

+ + +
+ ); + } } ReactDOM.render( - , - document.getElementById('content') + , + document.getElementById('content'), ); ``` @@ -641,15 +627,15 @@ Now it's time to build the form. Our `CommentForm` component should ask the user ```javascript{4-8} class CommentForm extends React.Component { - render() { - return ( -
- - - -
- ); - } + render() { + return ( +
+ + + +
+ ); + } } ``` @@ -661,37 +647,37 @@ Hence, we will be using `this.state` to save the user's input as it is entered. ```javascript{2-13,16-28} class CommentForm extends React.Component { - constructor(props) { - super(props); - this.state = {author: '', text: ''}; - this.handleAuthorChange = this.handleAuthorChange.bind(this); - this.handleTextChange = this.handleTextChange.bind(this); - } - handleAuthorChange(e) { - this.setState({author: e.target.value}); - } - handleTextChange(e) { - this.setState({text: e.target.value}); - } - render() { - return ( -
- - - -
- ); - } + constructor(props) { + super(props); + this.state = { author: '', text: '' }; + this.handleAuthorChange = this.handleAuthorChange.bind(this); + this.handleTextChange = this.handleTextChange.bind(this); + } + handleAuthorChange(e) { + this.setState({ author: e.target.value }); + } + handleTextChange(e) { + this.setState({ text: e.target.value }); + } + render() { + return ( +
+ + + +
+ ); + } } ``` @@ -709,48 +695,48 @@ Let's make the form interactive. When the user submits the form, we should clear ```javascript{7,15-24,27} class CommentForm extends React.Component { - constructor(props) { - super(props); - this.state = {author: '', text: ''}; - this.handleAuthorChange = this.handleAuthorChange.bind(this); - this.handleTextChange = this.handleTextChange.bind(this); - this.handleSubmit = this.handleSubmit.bind(this); - } - handleAuthorChange(e) { - this.setState({author: e.target.value}); - } - handleTextChange(e) { - this.setState({text: e.target.value}); - } - handleSubmit(e) { - e.preventDefault(); - const author = this.state.author.trim(); - const text = this.state.text.trim(); - if (!text || !author) { - return; - } - // TODO: send request to the server - this.setState({ author: '', text: '' }); - } - render() { - return ( -
- - - -
- ); - } + constructor(props) { + super(props); + this.state = { author: '', text: '' }; + this.handleAuthorChange = this.handleAuthorChange.bind(this); + this.handleTextChange = this.handleTextChange.bind(this); + this.handleSubmit = this.handleSubmit.bind(this); + } + handleAuthorChange(e) { + this.setState({ author: e.target.value }); + } + handleTextChange(e) { + this.setState({ text: e.target.value }); + } + handleSubmit(e) { + e.preventDefault(); + const author = this.state.author.trim(); + const text = this.state.text.trim(); + if (!text || !author) { + return; + } + // TODO: send request to the server + this.setState({ author: '', text: '' }); + } + render() { + return ( +
+ + + +
+ ); + } } ``` @@ -764,36 +750,39 @@ We need to pass data from the child component back up to its parent. We do this ```javascript{5,16-18,28} class CommentBox extends React.Component { - constructor(props) { - super(props); - this.state = { data: [] }; - this.handleCommentSubmit = this.handleCommentSubmit.bind(this); - } - loadCommentsFromServer() { - const xhr = new XMLHttpRequest(); - xhr.open('get', this.props.url, true); - xhr.onload = () => { - const data = JSON.parse(xhr.responseText); - this.setState({ data: data }); - }; - xhr.send(); - } - handleCommentSubmit(comment) { - // TODO: submit to the server and refresh the list - } - componentDidMount() { - this.loadCommentsFromServer(); - window.setInterval(() => this.loadCommentsFromServer(), this.props.pollInterval); - } - render() { - return ( -
-

Comments

- - -
- ); - } + constructor(props) { + super(props); + this.state = { data: [] }; + this.handleCommentSubmit = this.handleCommentSubmit.bind(this); + } + loadCommentsFromServer() { + const xhr = new XMLHttpRequest(); + xhr.open('get', this.props.url, true); + xhr.onload = () => { + const data = JSON.parse(xhr.responseText); + this.setState({ data: data }); + }; + xhr.send(); + } + handleCommentSubmit(comment) { + // TODO: submit to the server and refresh the list + } + componentDidMount() { + this.loadCommentsFromServer(); + window.setInterval( + () => this.loadCommentsFromServer(), + this.props.pollInterval, + ); + } + render() { + return ( +
+

Comments

+ + +
+ ); + } } ``` @@ -801,48 +790,48 @@ Now that `CommentBox` has made the callback available to `CommentForm` via the ` ```javascript{22} class CommentForm extends React.Component { - constructor(props) { - super(props); - this.state = {author: '', text: ''}; - this.handleAuthorChange = this.handleAuthorChange.bind(this); - this.handleTextChange = this.handleTextChange.bind(this); - this.handleSubmit = this.handleSubmit.bind(this); - } - handleAuthorChange(e) { - this.setState({author: e.target.value}); - } - handleTextChange(e) { - this.setState({text: e.target.value}); - } - handleSubmit(e) { - e.preventDefault(); - const author = this.state.author.trim(); - const text = this.state.text.trim(); - if (!text || !author) { - return; - } - this.props.onCommentSubmit({Author: author, Text: text}); - this.setState({ author: '', text: '' }); - } - render() { - return ( -
- - - -
- ); - } + constructor(props) { + super(props); + this.state = { author: '', text: '' }; + this.handleAuthorChange = this.handleAuthorChange.bind(this); + this.handleTextChange = this.handleTextChange.bind(this); + this.handleSubmit = this.handleSubmit.bind(this); + } + handleAuthorChange(e) { + this.setState({ author: e.target.value }); + } + handleTextChange(e) { + this.setState({ text: e.target.value }); + } + handleSubmit(e) { + e.preventDefault(); + const author = this.state.author.trim(); + const text = this.state.text.trim(); + if (!text || !author) { + return; + } + this.props.onCommentSubmit({ Author: author, Text: text }); + this.setState({ author: '', text: '' }); + } + render() { + return ( +
+ + + +
+ ); + } } ``` @@ -850,48 +839,55 @@ Now that the callbacks are in place, all we have to do is submit to the server a ```javascript{16-25,42} class CommentBox extends React.Component { - constructor(props) { - super(props); - this.state = { data: [] }; - this.handleCommentSubmit = this.handleCommentSubmit.bind(this); - } - loadCommentsFromServer() { - const xhr = new XMLHttpRequest(); - xhr.open('get', this.props.url, true); - xhr.onload = () => { - const data = JSON.parse(xhr.responseText); - this.setState({ data: data }); - }; - xhr.send(); - } - handleCommentSubmit(comment) { - const data = new FormData(); - data.append('author', comment.Author); - data.append('text', comment.Text); - - const xhr = new XMLHttpRequest(); - xhr.open('post', this.props.submitUrl, true); - xhr.onload = () => this.loadCommentsFromServer(); - xhr.send(data); - } - componentDidMount() { - this.loadCommentsFromServer(); - window.setInterval(() => this.loadCommentsFromServer(), this.props.pollInterval); - } - render() { - return ( -
-

Comments

- - -
- ); - } + constructor(props) { + super(props); + this.state = { data: [] }; + this.handleCommentSubmit = this.handleCommentSubmit.bind(this); + } + loadCommentsFromServer() { + const xhr = new XMLHttpRequest(); + xhr.open('get', this.props.url, true); + xhr.onload = () => { + const data = JSON.parse(xhr.responseText); + this.setState({ data: data }); + }; + xhr.send(); + } + handleCommentSubmit(comment) { + const data = new FormData(); + data.append('author', comment.Author); + data.append('text', comment.Text); + + const xhr = new XMLHttpRequest(); + xhr.open('post', this.props.submitUrl, true); + xhr.onload = () => this.loadCommentsFromServer(); + xhr.send(data); + } + componentDidMount() { + this.loadCommentsFromServer(); + window.setInterval( + () => this.loadCommentsFromServer(), + this.props.pollInterval, + ); + } + render() { + return ( +
+

Comments

+ + +
+ ); + } } ReactDOM.render( - , - document.getElementById('content') + , + document.getElementById('content'), ); ``` @@ -909,55 +905,59 @@ Our application is now feature complete but it feels slow to have to wait for th ```javascript{17-23} class CommentBox extends React.Component { - constructor(props) { - super(props); - this.state = { data: [] }; - this.handleCommentSubmit = this.handleCommentSubmit.bind(this); - } - loadCommentsFromServer() { - const xhr = new XMLHttpRequest(); - xhr.open('get', this.props.url, true); - xhr.onload = () => { - const data = JSON.parse(xhr.responseText); - this.setState({ data: data }); - }; - xhr.send(); - } - handleCommentSubmit(comment) { - const comments = this.state.data; - // Optimistically set an id on the new comment. It will be replaced by an - // id generated by the server. In a production application you would likely - // use a more robust system for ID generation. - comment.Id = comments.length + 1; - const newComments = comments.concat([comment]); - this.setState({data: newComments}); - - const data = new FormData(); - data.append('Author', comment.Author); - data.append('Text', comment.Text); - - const xhr = new XMLHttpRequest(); - xhr.open('post', this.props.submitUrl, true); - xhr.onload = () => this.loadCommentsFromServer(); - xhr.send(data); - } - componentDidMount() { - this.loadCommentsFromServer(); - window.setInterval(() => this.loadCommentsFromServer(), this.props.pollInterval); - } - render() { - return ( -
-

Comments

- - -
- ); - } + constructor(props) { + super(props); + this.state = { data: [] }; + this.handleCommentSubmit = this.handleCommentSubmit.bind(this); + } + loadCommentsFromServer() { + const xhr = new XMLHttpRequest(); + xhr.open('get', this.props.url, true); + xhr.onload = () => { + const data = JSON.parse(xhr.responseText); + this.setState({ data: data }); + }; + xhr.send(); + } + handleCommentSubmit(comment) { + const comments = this.state.data; + // Optimistically set an id on the new comment. It will be replaced by an + // id generated by the server. In a production application you would likely + // use a more robust system for ID generation. + comment.Id = comments.length + 1; + const newComments = comments.concat([comment]); + this.setState({ data: newComments }); + + const data = new FormData(); + data.append('Author', comment.Author); + data.append('Text', comment.Text); + + const xhr = new XMLHttpRequest(); + xhr.open('post', this.props.submitUrl, true); + xhr.onload = () => this.loadCommentsFromServer(); + xhr.send(data); + } + componentDidMount() { + this.loadCommentsFromServer(); + window.setInterval( + () => this.loadCommentsFromServer(), + this.props.pollInterval, + ); + } + render() { + return ( +
+

Comments

+ + +
+ ); + } } ``` ## Optimization: Bundling and minification + Bundling refers to the practice of combining multiple JavaScript files into a single large file to reduce the number of HTTP requests to load a page. Minification refers to the removal of comments and unnecessary whitespace from JavaScript files to make them smaller. Together, bundling and minification can help to significantly improve the performance of your website. There used to be a section on bundling and minification in this tutorial, but unfortunately the latest library being used by ASP.NET Core MVC ([BundlerMinifier](https://github.com/madskristensen/BundlerMinifier)) is not easily extensible, which makes it difficult to add JSX processing to it. For production use, it is currently recommended to use a tool like Gulp or [Webpack](/guides/webpack.html) to bundle and minify your JavaScript. @@ -970,47 +970,50 @@ We need to make some modifications to `CommentBox` to support server-side render ```javascript{4,31-33} class CommentBox extends React.Component { - constructor(props) { - super(props); - this.state = { data: this.props.initialData }; - this.handleCommentSubmit = this.handleCommentSubmit.bind(this); - } - loadCommentsFromServer() { - const xhr = new XMLHttpRequest(); - xhr.open('get', this.props.url, true); - xhr.onload = () => { - const data = JSON.parse(xhr.responseText); - this.setState({ data: data }); - }; - xhr.send(); - } - handleCommentSubmit(comment) { - const comments = this.state.data; - comment.Id = comments.length + 1; - const newComments = comments.concat([comment]); - this.setState({data: newComments}); - - const data = new FormData(); - data.append('Author', comment.Author); - data.append('Text', comment.Text); - - const xhr = new XMLHttpRequest(); - xhr.open('post', this.props.submitUrl, true); - xhr.onload = () => this.loadCommentsFromServer(); - xhr.send(data); - } - componentDidMount() { - window.setInterval(() => this.loadCommentsFromServer(), this.props.pollInterval); - } - render() { - return ( -
-

Comments

- - -
- ); - } + constructor(props) { + super(props); + this.state = { data: this.props.initialData }; + this.handleCommentSubmit = this.handleCommentSubmit.bind(this); + } + loadCommentsFromServer() { + const xhr = new XMLHttpRequest(); + xhr.open('get', this.props.url, true); + xhr.onload = () => { + const data = JSON.parse(xhr.responseText); + this.setState({ data: data }); + }; + xhr.send(); + } + handleCommentSubmit(comment) { + const comments = this.state.data; + comment.Id = comments.length + 1; + const newComments = comments.concat([comment]); + this.setState({ data: newComments }); + + const data = new FormData(); + data.append('Author', comment.Author); + data.append('Text', comment.Text); + + const xhr = new XMLHttpRequest(); + xhr.open('post', this.props.submitUrl, true); + xhr.onload = () => this.loadCommentsFromServer(); + xhr.send(data); + } + componentDidMount() { + window.setInterval( + () => this.loadCommentsFromServer(), + this.props.pollInterval, + ); + } + render() { + return ( +
+

Comments

+ + +
+ ); + } } ``` @@ -1018,21 +1021,19 @@ We also need to update the `Comment` component to use `Remarkable` from either ` ```javascript{3} class Comment extends React.Component { - rawMarkup() { - const md = new (global.Remarkable || window.Remarkable)(); - const rawMarkup = md.render(this.props.children.toString()); - return { __html: rawMarkup }; - } - render() { - return ( -
-

- {this.props.author} -

- -
- ); - } + rawMarkup() { + const md = new (global.Remarkable || window.Remarkable)(); + const rawMarkup = md.render(this.props.children.toString()); + return { __html: rawMarkup }; + } + render() { + return ( +
+

{this.props.author}

+ +
+ ); + } } ``` diff --git a/src/React.Sample.CoreMvc/Controllers/HomeController.cs b/src/React.Sample.CoreMvc/Controllers/HomeController.cs deleted file mode 100644 index 5962890cd..000000000 --- a/src/React.Sample.CoreMvc/Controllers/HomeController.cs +++ /dev/null @@ -1,99 +0,0 @@ -/* - * Copyright (c) 2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - */ - -// For clarity, this sample has all code in the one file. In a real project, you'd put every -// class in a separate file. - -using System.Collections.Generic; -using System.Linq; -using Microsoft.AspNetCore.Mvc; -using React.Sample.CoreMvc.Models; -using React.Sample.CoreMvc.ViewModels; - -namespace React.Sample.CoreMvc.Models -{ - public class AuthorModel - { - public string Name { get; set; } - public string GithubUsername { get; set; } - } - public class CommentModel - { - public AuthorModel Author { get; set; } - public int Id { get; set; } - public string Text { get; set; } - } -} - -namespace React.Sample.CoreMvc.ViewModels -{ - public class IndexViewModel - { - public IEnumerable Comments { get; set; } - public int CommentsPerPage { get; set; } - public bool ThrowRenderError { get; set; } - } -} - -namespace React.Sample.CoreMvc.Controllers -{ - public class HomeController : Controller - { - private const int COMMENTS_PER_PAGE = 3; - - private readonly IDictionary _authors; - private readonly IList _comments; - - public HomeController() - { - // In reality, you would use a repository or something for fetching data - // For clarity, we'll just use a hard-coded list. - _authors = new Dictionary - { - {"daniel", new AuthorModel { Name = "Daniel Lo Nigro", GithubUsername = "Daniel15" }}, - {"vjeux", new AuthorModel { Name = "Christopher Chedeau", GithubUsername = "vjeux" }}, - {"cpojer", new AuthorModel { Name = "Christoph Pojer", GithubUsername = "cpojer" }}, - {"jordwalke", new AuthorModel { Name = "Jordan Walke", GithubUsername = "jordwalke" }}, - {"zpao", new AuthorModel { Name = "Paul O'Shannessy", GithubUsername = "zpao" }}, - }; - _comments = new List - { - new CommentModel { Id = 1, Author = _authors["daniel"], Text = "First!!!!111!" }, - new CommentModel { Id = 2, Author = _authors["zpao"], Text = "React is awesome!" }, - new CommentModel { Id = 3, Author = _authors["cpojer"], Text = "Awesome!" }, - new CommentModel { Id = 4, Author = _authors["vjeux"], Text = "Hello World" }, - new CommentModel { Id = 5, Author = _authors["daniel"], Text = "Foo" }, - new CommentModel { Id = 6, Author = _authors["daniel"], Text = "Bar" }, - new CommentModel { Id = 7, Author = _authors["daniel"], Text = "FooBarBaz" }, - }; - } - - public IActionResult Index() - { - return View(new IndexViewModel - { - Comments = _comments.Take(COMMENTS_PER_PAGE), - CommentsPerPage = COMMENTS_PER_PAGE, - ThrowRenderError = Request.Query.ContainsKey("throwRenderError"), - }); - } - - public IActionResult Comments(int page) - { - var comments = _comments.Skip((page - 1) * COMMENTS_PER_PAGE).Take(COMMENTS_PER_PAGE); - var hasMore = page * COMMENTS_PER_PAGE < _comments.Count; - - return Json(new - { - comments = comments, - hasMore = hasMore - }); - } - } -} diff --git a/src/React.Sample.CoreMvc/Program.cs b/src/React.Sample.CoreMvc/Program.cs deleted file mode 100644 index 7f3dd5ca0..000000000 --- a/src/React.Sample.CoreMvc/Program.cs +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Copyright (c) 2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - */ - -using Microsoft.AspNetCore; -using Microsoft.AspNetCore.Hosting; - -namespace React.Sample.CoreMvc -{ - public class Program - { - public static void Main(string[] args) - { - BuildWebHost(args).Run(); - } - - public static IWebHost BuildWebHost(string[] args) => - WebHost.CreateDefaultBuilder(args) - .UseStartup() - .Build(); - } -} diff --git a/src/React.Sample.CoreMvc/Properties/debugSettings.json b/src/React.Sample.CoreMvc/Properties/debugSettings.json deleted file mode 100644 index a44fad34a..000000000 --- a/src/React.Sample.CoreMvc/Properties/debugSettings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "Profiles": [] -} \ No newline at end of file diff --git a/src/React.Sample.CoreMvc/Properties/launchSettings.json b/src/React.Sample.CoreMvc/Properties/launchSettings.json deleted file mode 100644 index 375f33ca2..000000000 --- a/src/React.Sample.CoreMvc/Properties/launchSettings.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "iisSettings": { - "windowsAuthentication": false, - "anonymousAuthentication": true, - "iisExpress": { - "applicationUrl": "http://localhost:55059/", - "sslPort": 0 - } - }, - "profiles": { - "IIS Express": { - "commandName": "IISExpress", - "launchBrowser": true, - "environmentVariables": { - "ASPNETCORE_ENVIRONMENT": "Development" - } - }, - "React.Sample.CoreMvc": { - "commandName": "Project", - "launchBrowser": true, - "launchUrl": "http://localhost:5000", - "environmentVariables": { - "ASPNETCORE_ENVIRONMENT": "Development" - } - } - } -} diff --git a/src/React.Sample.CoreMvc/React.Sample.CoreMvc.csproj b/src/React.Sample.CoreMvc/React.Sample.CoreMvc.csproj deleted file mode 100644 index 99b4c282d..000000000 --- a/src/React.Sample.CoreMvc/React.Sample.CoreMvc.csproj +++ /dev/null @@ -1,42 +0,0 @@ - - - netcoreapp2.0 - true - React.Sample.CoreMvc - Exe - React.Sample.CoreMvc - 1701 - 2.0 - Latest - - - - - PreserveNewest - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/React.Sample.CoreMvc/Startup.cs b/src/React.Sample.CoreMvc/Startup.cs deleted file mode 100644 index ec338c3b6..000000000 --- a/src/React.Sample.CoreMvc/Startup.cs +++ /dev/null @@ -1,107 +0,0 @@ -/* - * Copyright (c) 2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - */ - -using System; -using JavaScriptEngineSwitcher.ChakraCore; -using JavaScriptEngineSwitcher.Extensions.MsDependencyInjection; -using Microsoft.AspNetCore.Builder; -using Microsoft.AspNetCore.Hosting; -using Microsoft.AspNetCore.Http; -using Microsoft.Extensions.Configuration; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.Logging; -using React.AspNet; - -namespace React.Sample.CoreMvc -{ - public class Startup - { - public Startup(IHostingEnvironment env, ILogger logger) - { - // Setup configuration sources. - var builder = new ConfigurationBuilder().AddEnvironmentVariables(); - Logger = logger; - Configuration = builder.Build(); - } - - public IConfiguration Configuration { get; set; } - public ILogger Logger { get; set; } - - // This method gets called by the runtime. - public IServiceProvider ConfigureServices(IServiceCollection services) - { - // Add MVC services to the services container. - services.AddMvc(); - - services.AddJsEngineSwitcher(options => options.DefaultEngineName = ChakraCoreJsEngine.EngineName) - .AddChakraCore(); - - services.AddSingleton(); - - // Add ReactJS.NET services. - services.AddReact(); - - // Build the intermediate service provider then return it - return services.BuildServiceProvider(); - } - - // Configure is called after ConfigureServices is called. - public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerfactory) - { - // Add the console logger. - loggerfactory.AddConsole(); - - // Add the following to the request pipeline only in development environment. - if (env.IsDevelopment()) - { - //app.UseBrowserLink(); - app.UseDeveloperExceptionPage(); - } - else - { - // Add Error handling middleware which catches all application specific errors and - // send the request to the following path or controller action. - app.UseExceptionHandler("/Home/Error"); - } - - // Initialise ReactJS.NET. Must be before static files. - app.UseReact(config => - { - config - .SetReuseJavaScriptEngines(true) - .SetAllowJavaScriptPrecompilation(true) - .AddScript("~/js/Sample.jsx") - .SetExceptionHandler((ex, name, id) => - { - Logger.LogError("React component exception thrown!" + ex.ToString()); - }) - .SetUseDebugReact(true); - }); - - // Add static files to the request pipeline. - app.UseStaticFiles(); - - // Add MVC to the request pipeline. - app.UseMvc(routes => - { - routes.MapRoute( - name: "Comments", - template: "comments/page-{page}", - defaults: new { controller = "Home", action = "Comments", page = 1 } - ); - - routes.MapRoute( - name: "default", - template: "{controller}/{action}/{id?}", - defaults: new { controller = "Home", action = "Index" } - ); - }); - } - } -} diff --git a/src/React.Sample.CoreMvc/Views/Home/Index.cshtml b/src/React.Sample.CoreMvc/Views/Home/Index.cshtml deleted file mode 100644 index 6a6e912b4..000000000 --- a/src/React.Sample.CoreMvc/Views/Home/Index.cshtml +++ /dev/null @@ -1,27 +0,0 @@ -@using React.AspNet -@model React.Sample.CoreMvc.ViewModels.IndexViewModel - - - - ReactJS.NET Sample - - - -

- This is an example of ReactJS.NET's server-side rendering. The initial state of this - comments box is rendered server-side, and additional data is loaded via AJAX and rendered - client-side. -

- - - @Html.React("CommentsBox", new { initialComments = Model.Comments, ThrowRenderError = Model.ThrowRenderError }) - - - - - - - - @Html.ReactInitJavaScript() - - diff --git a/src/React.Sample.CoreMvc/app.config b/src/React.Sample.CoreMvc/app.config deleted file mode 100644 index 49aadfaa0..000000000 --- a/src/React.Sample.CoreMvc/app.config +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/src/React.Sample.CoreMvc/appsettings.json b/src/React.Sample.CoreMvc/appsettings.json deleted file mode 100644 index fa8ce71a9..000000000 --- a/src/React.Sample.CoreMvc/appsettings.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "Logging": { - "IncludeScopes": false, - "LogLevel": { - "Default": "Debug", - "System": "Information", - "Microsoft": "Information" - } - } -} diff --git a/src/React.Sample.CoreMvc/web.config b/src/React.Sample.CoreMvc/web.config deleted file mode 100644 index 05ac0e36d..000000000 --- a/src/React.Sample.CoreMvc/web.config +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/src/React.Sample.CoreMvc/wwwroot/css/Sample.css b/src/React.Sample.CoreMvc/wwwroot/css/Sample.css deleted file mode 100644 index b02c980ca..000000000 --- a/src/React.Sample.CoreMvc/wwwroot/css/Sample.css +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Copyright (c) 2014-Present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - */ - -body { - font-family: Calibri, Verdana, sans-serif; -} - -.commentList { - list-style-type: none; - margin: 0; - padding: 0; -} - -.commentList li { - border-bottom: 1px solid #999; - padding: 0.5em 0; -} diff --git a/src/React.Sample.CoreMvc/wwwroot/js/Sample.jsx b/src/React.Sample.CoreMvc/wwwroot/js/Sample.jsx deleted file mode 100644 index 6fbea2727..000000000 --- a/src/React.Sample.CoreMvc/wwwroot/js/Sample.jsx +++ /dev/null @@ -1,157 +0,0 @@ -/** - * Copyright (c) 2014-Present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - */ - -class CommentsBox extends React.Component { - static propTypes = { - initialComments: PropTypes.array.isRequired, - throwRenderError: PropTypes.bool, - }; - - state = { - comments: this.props.initialComments, - page: 1, - hasMore: true, - loadingMore: false - }; - - loadMoreClicked = (evt) => { - var nextPage = this.state.page + 1; - this.setState({ - page: nextPage, - loadingMore: true - }); - - var url = evt.target.href; - var xhr = new XMLHttpRequest(); - xhr.open('GET', url, true); - xhr.onload = () => { - var data = JSON.parse(xhr.responseText); - this.setState({ - comments: this.state.comments.concat(data.comments), - hasMore: data.hasMore, - loadingMore: false - }); - }; - xhr.send(); - evt.preventDefault(); - } - - render() { - var commentNodes = this.state.comments.map(comment => - {comment.text} - ); - - return ( -
-

Comments

-
    - {commentNodes} -
- {this.renderMoreLink()} - - - -
- ); - } - - renderMoreLink() { - if (this.state.loadingMore) { - return Loading...; - } else if (this.state.hasMore) { - return ( - - Load More - - ); - } else { - return No more comments; - } - } -} - -class Comment extends React.Component { - static propTypes = { - author: PropTypes.object.isRequired - } - - render() { - return ( -
  • - - {this.props.author.name}{': '} - {this.props.children} -
  • - ); - } -} - -class Avatar extends React.Component { - static propTypes = { - author: PropTypes.object.isRequired - } - - render() { - return ( - {'Photo - ); - } - getPhotoUrl(author) { - return 'https://avatars.githubusercontent.com/' + author.githubUsername + '?s=50'; - } -} - -class ErrorBoundary extends React.Component { - static propTypes = { - children: PropTypes.node.isRequired, - }; - - state = {}; - - componentDidCatch() { - this.setState({ hasCaughtException: true }); - } - - render() { - return this.state.hasCaughtException ? ( -
    An error occurred. Please reload.
    - ) : this.props.children; - } -} - -class ExceptionDemo extends React.Component { - static propTypes = { - throwRenderError: PropTypes.bool, - } - - state = { - throwRenderError: this.props.throwRenderError, - }; - - onClick = () => { - window.history.replaceState(null, null, window.location + '?throwRenderError'); - this.setState({ throwRenderError: true }); - } - - render() { - return ( -
    - -
    - ); - } -} diff --git a/src/React.Sample.Router.CoreMvc/.babelrc b/src/React.Sample.Webpack.CoreMvc/.babelrc similarity index 100% rename from src/React.Sample.Router.CoreMvc/.babelrc rename to src/React.Sample.Webpack.CoreMvc/.babelrc diff --git a/src/React.Sample.Router.CoreMvc/Content/components/emotion.jsx b/src/React.Sample.Webpack.CoreMvc/Content/components/emotion.jsx similarity index 100% rename from src/React.Sample.Router.CoreMvc/Content/components/emotion.jsx rename to src/React.Sample.Webpack.CoreMvc/Content/components/emotion.jsx diff --git a/src/React.Sample.Router.CoreMvc/Content/components/expose-components.js b/src/React.Sample.Webpack.CoreMvc/Content/components/expose-components.js similarity index 100% rename from src/React.Sample.Router.CoreMvc/Content/components/expose-components.js rename to src/React.Sample.Webpack.CoreMvc/Content/components/expose-components.js diff --git a/src/React.Sample.Router.CoreMvc/Content/components/home.jsx b/src/React.Sample.Webpack.CoreMvc/Content/components/home.jsx similarity index 100% rename from src/React.Sample.Router.CoreMvc/Content/components/home.jsx rename to src/React.Sample.Webpack.CoreMvc/Content/components/home.jsx diff --git a/src/React.Sample.Router.CoreMvc/Content/components/react-jss.jsx b/src/React.Sample.Webpack.CoreMvc/Content/components/react-jss.jsx similarity index 100% rename from src/React.Sample.Router.CoreMvc/Content/components/react-jss.jsx rename to src/React.Sample.Webpack.CoreMvc/Content/components/react-jss.jsx diff --git a/src/React.Sample.Router.CoreMvc/Content/components/styled-components.jsx b/src/React.Sample.Webpack.CoreMvc/Content/components/styled-components.jsx similarity index 100% rename from src/React.Sample.Router.CoreMvc/Content/components/styled-components.jsx rename to src/React.Sample.Webpack.CoreMvc/Content/components/styled-components.jsx diff --git a/src/React.Sample.Router.CoreMvc/Controllers/HomeController.cs b/src/React.Sample.Webpack.CoreMvc/Controllers/HomeController.cs similarity index 73% rename from src/React.Sample.Router.CoreMvc/Controllers/HomeController.cs rename to src/React.Sample.Webpack.CoreMvc/Controllers/HomeController.cs index 3d099718d..85e206443 100644 --- a/src/React.Sample.Router.CoreMvc/Controllers/HomeController.cs +++ b/src/React.Sample.Webpack.CoreMvc/Controllers/HomeController.cs @@ -1,6 +1,6 @@ using Microsoft.AspNetCore.Mvc; -namespace React.Sample.Router.CoreMvc.Controllers +namespace React.Sample.Webpack.CoreMvc.Controllers { public class HomeController : Controller { diff --git a/src/React.Sample.Router.CoreMvc/Program.cs b/src/React.Sample.Webpack.CoreMvc/Program.cs similarity index 88% rename from src/React.Sample.Router.CoreMvc/Program.cs rename to src/React.Sample.Webpack.CoreMvc/Program.cs index 995f131b8..0929370a8 100644 --- a/src/React.Sample.Router.CoreMvc/Program.cs +++ b/src/React.Sample.Webpack.CoreMvc/Program.cs @@ -1,7 +1,7 @@ using Microsoft.AspNetCore; using Microsoft.AspNetCore.Hosting; -namespace React.Sample.Router.CoreMvc +namespace React.Sample.Webpack.CoreMvc { public class Program { diff --git a/src/React.Sample.Router.CoreMvc/Properties/launchSettings.json b/src/React.Sample.Webpack.CoreMvc/Properties/launchSettings.json similarity index 94% rename from src/React.Sample.Router.CoreMvc/Properties/launchSettings.json rename to src/React.Sample.Webpack.CoreMvc/Properties/launchSettings.json index 6b13dfad6..adeb701d0 100644 --- a/src/React.Sample.Router.CoreMvc/Properties/launchSettings.json +++ b/src/React.Sample.Webpack.CoreMvc/Properties/launchSettings.json @@ -16,7 +16,7 @@ "ASPNETCORE_ENVIRONMENT": "Development" } }, - "React.Sample.Router.CoreMvc": { + "React.Sample.Webpack.CoreMvc": { "commandName": "Project", "launchBrowser": true, "launchUrl": "", diff --git a/src/React.Sample.Router.CoreMvc/React.Sample.Router.CoreMvc.csproj b/src/React.Sample.Webpack.CoreMvc/React.Sample.Webpack.CoreMvc.csproj similarity index 100% rename from src/React.Sample.Router.CoreMvc/React.Sample.Router.CoreMvc.csproj rename to src/React.Sample.Webpack.CoreMvc/React.Sample.Webpack.CoreMvc.csproj diff --git a/src/React.Sample.Router.CoreMvc/Startup.cs b/src/React.Sample.Webpack.CoreMvc/Startup.cs similarity index 97% rename from src/React.Sample.Router.CoreMvc/Startup.cs rename to src/React.Sample.Webpack.CoreMvc/Startup.cs index 52b0ba743..659c7a232 100644 --- a/src/React.Sample.Router.CoreMvc/Startup.cs +++ b/src/React.Sample.Webpack.CoreMvc/Startup.cs @@ -8,7 +8,7 @@ using Microsoft.Extensions.DependencyInjection; using React.AspNet; -namespace React.Sample.Router.CoreMvc +namespace React.Sample.Webpack.CoreMvc { public class Startup { @@ -29,7 +29,7 @@ public IServiceProvider ConfigureServices(IServiceCollection services) services.AddReact(); services.AddSingleton(); - + // Build the intermediate service provider then return it return services.BuildServiceProvider(); } diff --git a/src/React.Sample.Router.CoreMvc/Views/Home/Index.cshtml b/src/React.Sample.Webpack.CoreMvc/Views/Home/Index.cshtml similarity index 100% rename from src/React.Sample.Router.CoreMvc/Views/Home/Index.cshtml rename to src/React.Sample.Webpack.CoreMvc/Views/Home/Index.cshtml diff --git a/src/React.Sample.Router.CoreMvc/Views/Shared/_Layout.cshtml b/src/React.Sample.Webpack.CoreMvc/Views/Shared/_Layout.cshtml similarity index 100% rename from src/React.Sample.Router.CoreMvc/Views/Shared/_Layout.cshtml rename to src/React.Sample.Webpack.CoreMvc/Views/Shared/_Layout.cshtml diff --git a/src/React.Sample.Router.CoreMvc/appsettings.Development.json b/src/React.Sample.Webpack.CoreMvc/appsettings.Development.json similarity index 100% rename from src/React.Sample.Router.CoreMvc/appsettings.Development.json rename to src/React.Sample.Webpack.CoreMvc/appsettings.Development.json diff --git a/src/React.Sample.Router.CoreMvc/appsettings.json b/src/React.Sample.Webpack.CoreMvc/appsettings.json similarity index 100% rename from src/React.Sample.Router.CoreMvc/appsettings.json rename to src/React.Sample.Webpack.CoreMvc/appsettings.json diff --git a/src/React.Sample.Router.CoreMvc/package-lock.json b/src/React.Sample.Webpack.CoreMvc/package-lock.json similarity index 99% rename from src/React.Sample.Router.CoreMvc/package-lock.json rename to src/React.Sample.Webpack.CoreMvc/package-lock.json index d1a505871..e9040f83b 100644 --- a/src/React.Sample.Router.CoreMvc/package-lock.json +++ b/src/React.Sample.Webpack.CoreMvc/package-lock.json @@ -1,5 +1,5 @@ { - "name": "React.Sample.Router.CoreMvc", + "name": "React.Sample.Webpack.CoreMvc", "version": "1.0.0", "lockfileVersion": 1, "requires": true, diff --git a/src/React.Sample.Router.CoreMvc/package.json b/src/React.Sample.Webpack.CoreMvc/package.json similarity index 93% rename from src/React.Sample.Router.CoreMvc/package.json rename to src/React.Sample.Webpack.CoreMvc/package.json index 6cdef4127..5006943ae 100644 --- a/src/React.Sample.Router.CoreMvc/package.json +++ b/src/React.Sample.Webpack.CoreMvc/package.json @@ -1,5 +1,5 @@ { - "name": "React.Sample.Router.CoreMvc", + "name": "React.Sample.Webpack.CoreMvc", "version": "1.0.0", "main": "index.js", "license": "MIT", diff --git a/src/React.Sample.Router.CoreMvc/webpack.config.js b/src/React.Sample.Webpack.CoreMvc/webpack.config.js similarity index 100% rename from src/React.Sample.Router.CoreMvc/webpack.config.js rename to src/React.Sample.Webpack.CoreMvc/webpack.config.js diff --git a/src/React.Sample.Webpack/.babelrc b/src/React.Sample.Webpack/.babelrc deleted file mode 100644 index a79b8b6fd..000000000 --- a/src/React.Sample.Webpack/.babelrc +++ /dev/null @@ -1,3 +0,0 @@ -{ - "presets": ["es2015", "react", "stage-0"] -} diff --git a/src/React.Sample.Webpack/App_Start/ReactConfig.cs b/src/React.Sample.Webpack/App_Start/ReactConfig.cs deleted file mode 100644 index aeae2c125..000000000 --- a/src/React.Sample.Webpack/App_Start/ReactConfig.cs +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Copyright (c) 2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - */ - -using JavaScriptEngineSwitcher.Core; -using JavaScriptEngineSwitcher.V8; - -[assembly: WebActivatorEx.PreApplicationStartMethod(typeof(React.Sample.Webpack.ReactConfig), "Configure")] - -namespace React.Sample.Webpack -{ - public static class ReactConfig - { - public static void Configure() - { - ReactSiteConfiguration.Configuration - .SetAllowJavaScriptPrecompilation(true) - .SetLoadBabel(false) - .AddScriptWithoutTransform("~/build/server.bundle.js"); - - JsEngineSwitcher.Current.DefaultEngineName = V8JsEngine.EngineName; - JsEngineSwitcher.Current.EngineFactories.AddV8(); - } - } -} diff --git a/src/React.Sample.Webpack/Content/Sample.css b/src/React.Sample.Webpack/Content/Sample.css deleted file mode 100644 index b02c980ca..000000000 --- a/src/React.Sample.Webpack/Content/Sample.css +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Copyright (c) 2014-Present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - */ - -body { - font-family: Calibri, Verdana, sans-serif; -} - -.commentList { - list-style-type: none; - margin: 0; - padding: 0; -} - -.commentList li { - border-bottom: 1px solid #999; - padding: 0.5em 0; -} diff --git a/src/React.Sample.Webpack/Content/client.js b/src/React.Sample.Webpack/Content/client.js deleted file mode 100644 index c7859f7ba..000000000 --- a/src/React.Sample.Webpack/Content/client.js +++ /dev/null @@ -1,13 +0,0 @@ -/** - * Copyright (c) 2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - */ - -// All JavaScript in here will be loaded client-side - -// Expose components globally so ReactJS.NET can use them -var Components = require('expose?Components!./components'); \ No newline at end of file diff --git a/src/React.Sample.Webpack/Content/components/Avatar.jsx b/src/React.Sample.Webpack/Content/components/Avatar.jsx deleted file mode 100644 index 0898e91e3..000000000 --- a/src/React.Sample.Webpack/Content/components/Avatar.jsx +++ /dev/null @@ -1,35 +0,0 @@ -/** - * Copyright (c) 2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - */ - -var React = require('react'); -var PropTypes = require('prop-types'); - -class Avatar extends React.Component { - static propTypes = { - author: PropTypes.object.isRequired - }; - - render() { - return ( - {'Photo - ); - } - - getPhotoUrl = (author) => { - return 'https://avatars.githubusercontent.com/' + author.GithubUsername + '?s=50'; - }; -} - -module.exports = Avatar; diff --git a/src/React.Sample.Webpack/Content/components/Comment.jsx b/src/React.Sample.Webpack/Content/components/Comment.jsx deleted file mode 100644 index 2704860d1..000000000 --- a/src/React.Sample.Webpack/Content/components/Comment.jsx +++ /dev/null @@ -1,30 +0,0 @@ -/** - * Copyright (c) 2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - */ - -var Avatar = require('./Avatar'); -var React = require('react'); -var PropTypes = require('prop-types'); - -class Comment extends React.Component { - static propTypes = { - author: PropTypes.object.isRequired - }; - - render() { - return ( -
  • - - {this.props.author.Name}{': '} - {this.props.children} -
  • - ); - } -} - -module.exports = Comment; diff --git a/src/React.Sample.Webpack/Content/components/CommentsBox.jsx b/src/React.Sample.Webpack/Content/components/CommentsBox.jsx deleted file mode 100644 index 5549c06dd..000000000 --- a/src/React.Sample.Webpack/Content/components/CommentsBox.jsx +++ /dev/null @@ -1,80 +0,0 @@ -/** - * Copyright (c) 2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - */ - -var Comment = require('./Comment'); -var React = require('react'); -var PropTypes = require('prop-types'); - -class CommentsBox extends React.Component { - static propTypes = { - initialComments: PropTypes.array.isRequired - }; - - state = { - comments: this.props.initialComments, - page: 1, - hasMore: true, - loadingMore: false - }; - - loadMoreClicked = (evt) => { - var nextPage = this.state.page + 1; - this.setState({ - page: nextPage, - loadingMore: true - }); - - var url = evt.target.href; - var xhr = new XMLHttpRequest(); - xhr.open('GET', url, true); - xhr.setRequestHeader('Content-Type', 'application/json'); - xhr.onload = () => { - var data = JSON.parse(xhr.responseText); - this.setState({ - comments: this.state.comments.concat(data.comments), - hasMore: data.hasMore, - loadingMore: false - }); - }; - xhr.send(); - evt.preventDefault(); - }; - - render() { - var commentNodes = this.state.comments.map(comment => - {comment.Text} - ); - - return ( -
    -

    Comments

    -
      - {commentNodes} -
    - {this.renderMoreLink()} -
    - ); - } - - renderMoreLink = () => { - if (this.state.loadingMore) { - return Loading...; - } else if (this.state.hasMore) { - return ( - - Load More - - ); - } else { - return No more comments; - } - }; -} - -module.exports = CommentsBox; diff --git a/src/React.Sample.Webpack/Content/components/index.js b/src/React.Sample.Webpack/Content/components/index.js deleted file mode 100644 index 81814ae3a..000000000 --- a/src/React.Sample.Webpack/Content/components/index.js +++ /dev/null @@ -1,14 +0,0 @@ -/** - * Copyright (c) 2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - */ - -module.exports = { - Avatar: require('./Avatar'), - Comment: require('./Comment'), - CommentsBox: require('./CommentsBox') -}; \ No newline at end of file diff --git a/src/React.Sample.Webpack/Content/server.js b/src/React.Sample.Webpack/Content/server.js deleted file mode 100644 index 5d327c504..000000000 --- a/src/React.Sample.Webpack/Content/server.js +++ /dev/null @@ -1,13 +0,0 @@ -/** - * Copyright (c) 2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - */ - -// All JavaScript in here will be loaded server-side - -// Expose components globally so ReactJS.NET can use them -var Components = require('expose?Components!./components'); \ No newline at end of file diff --git a/src/React.Sample.Webpack/Global.asax b/src/React.Sample.Webpack/Global.asax deleted file mode 100644 index 7bd4e005a..000000000 --- a/src/React.Sample.Webpack/Global.asax +++ /dev/null @@ -1 +0,0 @@ -<%@ Application Codebehind="Global.asax.cs" Inherits="React.Sample.Webpack.MvcApplication" Language="C#" %> diff --git a/src/React.Sample.Webpack/Global.asax.cs b/src/React.Sample.Webpack/Global.asax.cs deleted file mode 100644 index 8430077fe..000000000 --- a/src/React.Sample.Webpack/Global.asax.cs +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Copyright (c) 2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - */ - -using System.Web.Mvc; -using System.Web.Routing; -using React.Sample.Mvc4; - -namespace React.Sample.Webpack -{ - // Note: For instructions on enabling IIS6 or IIS7 classic mode, - // visit http://go.microsoft.com/?LinkId=9394801 - public class MvcApplication : System.Web.HttpApplication - { - protected void Application_Start() - { - AreaRegistration.RegisterAllAreas(); - FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); - RouteConfig.RegisterRoutes(RouteTable.Routes); - } - } -} \ No newline at end of file diff --git a/src/React.Sample.Webpack/Properties/AssemblyInfo.cs b/src/React.Sample.Webpack/Properties/AssemblyInfo.cs deleted file mode 100644 index a7f1a69a9..000000000 --- a/src/React.Sample.Webpack/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,16 +0,0 @@ -/* - * Copyright (c) 2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - */ - -using System.Reflection; -using System.Runtime.InteropServices; - -[assembly: AssemblyTitle("React.Sample.Webpack")] -[assembly: AssemblyDescription("Webpack + ASP.NET MVC 4 sample for ReactJS.NET")] -[assembly: ComVisible(false)] -[assembly: Guid("F4645B25-7FE7-4DCB-B6A3-3443CD45F127")] diff --git a/src/React.Sample.Webpack/README.md b/src/React.Sample.Webpack/README.md deleted file mode 100644 index 78cdad73b..000000000 --- a/src/React.Sample.Webpack/README.md +++ /dev/null @@ -1,5 +0,0 @@ -# React + React Router + ASP.NET Core - -Demonstrates server-side rendering of content, redirect handling, and page not found handling. - -To build this project, run `yarn build` to build the JS bundle, then run `dotnet run` to build C#. diff --git a/src/React.Sample.Webpack/React.Sample.Webpack.csproj b/src/React.Sample.Webpack/React.Sample.Webpack.csproj deleted file mode 100644 index 1a38cf291..000000000 --- a/src/React.Sample.Webpack/React.Sample.Webpack.csproj +++ /dev/null @@ -1,220 +0,0 @@ - - - - - - Debug - AnyCPU - - - 2.0 - {E20376AD-80F7-4865-ACE3-1DE616991DF7} - {E3E379DF-F4C6-4180-9B81-6769533ABE47};{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc} - Library - Properties - React.Sample.Webpack - React.Sample.Webpack - v4.5 - false - true - - - - - true - - - - - 12.0 - - - - - - true - full - false - bin\ - DEBUG;TRACE - prompt - 4 - 1607 - - - pdbonly - true - bin\ - TRACE - prompt - 4 - 1607 - - - - ..\packages\JavaScriptEngineSwitcher.V8.3.0.0-rc1\lib\net45\ClearScript.dll - - - ..\packages\JavaScriptEngineSwitcher.Core.3.0.0-rc1\lib\net45\JavaScriptEngineSwitcher.Core.dll - - - ..\packages\JavaScriptEngineSwitcher.V8.3.0.0-rc1\lib\net45\JavaScriptEngineSwitcher.V8.dll - - - - - - - ..\packages\System.Runtime.InteropServices.RuntimeInformation.4.0.0\lib\net45\System.Runtime.InteropServices.RuntimeInformation.dll - - - - - - - - - - - - - - - - - - True - ..\packages\Microsoft.Web.Infrastructure.1.0.0.0\lib\net40\Microsoft.Web.Infrastructure.dll - - - True - ..\packages\Microsoft.AspNet.WebPages.2.0.30506.0\lib\net40\System.Web.Helpers.dll - - - True - ..\packages\Microsoft.AspNet.Mvc.4.0.30506.0\lib\net40\System.Web.Mvc.dll - - - True - ..\packages\Microsoft.AspNet.Razor.2.0.30506.0\lib\net40\System.Web.Razor.dll - - - True - ..\packages\Microsoft.AspNet.WebPages.2.0.30506.0\lib\net40\System.Web.WebPages.dll - - - True - ..\packages\Microsoft.AspNet.WebPages.2.0.30506.0\lib\net40\System.Web.WebPages.Deployment.dll - - - True - ..\packages\Microsoft.AspNet.WebPages.2.0.30506.0\lib\net40\System.Web.WebPages.Razor.dll - - - ..\packages\WebActivatorEx.2.2.0\lib\net40\WebActivatorEx.dll - True - - - - - App_Start\FilterConfig.cs - - - App_Start\RouteConfig.cs - - - Controllers\HomeController.cs - - - Properties\SharedAssemblyInfo.cs - - - Properties\SharedAssemblyVersionInfo.cs - - - - Global.asax - - - - - - - - - - - - - - - - - Web.config - - - Web.config - - - - - - - - - - - - {d0cc8a22-cee6-485c-924b-1f94426fea59} - React.Core - - - {662d52ac-1ee9-4372-bd74-379f9ac56451} - React.Web.Mvc4 - - - {134edd16-8dc8-4983-a2e0-b38dab1ecf1c} - React.Web - - - - 10.0 - C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\ - - - - - - - - - - - - True - True - 63919 - / - http://localhost:63919/ - False - False - - - False - - - - - - - This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - - - - - diff --git a/src/React.Sample.Webpack/Views/Home/Index.cshtml b/src/React.Sample.Webpack/Views/Home/Index.cshtml deleted file mode 100644 index a3a78525f..000000000 --- a/src/React.Sample.Webpack/Views/Home/Index.cshtml +++ /dev/null @@ -1,26 +0,0 @@ -@model React.Sample.Mvc4.ViewModels.IndexViewModel - - - - ReactJS.NET Webpack Sample - - - -

    - This is an example of ReactJS.NET's server-side rendering. The initial state of this - comments box is rendered server-side, and additional data is loaded via AJAX and rendered - client-side. -

    - - - @Html.React("Components.CommentsBox", new { initialComments = Model.Comments }) - - - - - - - - @Html.ReactInitJavaScript() - - diff --git a/src/React.Sample.Webpack/Views/Web.config b/src/React.Sample.Webpack/Views/Web.config deleted file mode 100644 index d393a03eb..000000000 --- a/src/React.Sample.Webpack/Views/Web.config +++ /dev/null @@ -1,59 +0,0 @@ - - - - - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/React.Sample.Webpack/Web.Debug.config b/src/React.Sample.Webpack/Web.Debug.config deleted file mode 100644 index 3e2a97c95..000000000 --- a/src/React.Sample.Webpack/Web.Debug.config +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - - \ No newline at end of file diff --git a/src/React.Sample.Webpack/Web.Release.config b/src/React.Sample.Webpack/Web.Release.config deleted file mode 100644 index 9fd481fdf..000000000 --- a/src/React.Sample.Webpack/Web.Release.config +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/src/React.Sample.Webpack/Web.config b/src/React.Sample.Webpack/Web.config deleted file mode 100644 index acdb1a178..000000000 --- a/src/React.Sample.Webpack/Web.config +++ /dev/null @@ -1,61 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/React.Sample.Webpack/package-lock.json b/src/React.Sample.Webpack/package-lock.json deleted file mode 100644 index a4a46ce37..000000000 --- a/src/React.Sample.Webpack/package-lock.json +++ /dev/null @@ -1,3428 +0,0 @@ -{ - "name": "React.Sample.Webpack", - "version": "0.0.1", - "lockfileVersion": 1, - "requires": true, - "dependencies": { - "acorn": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", - "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=", - "dev": true - }, - "align-text": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", - "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", - "dev": true, - "requires": { - "kind-of": "3.2.2", - "longest": "1.0.1", - "repeat-string": "1.6.1" - } - }, - "amdefine": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", - "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", - "dev": true - }, - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "anymatch": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", - "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", - "dev": true, - "requires": { - "micromatch": "2.3.11", - "normalize-path": "2.1.1" - } - }, - "arr-diff": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", - "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", - "dev": true, - "requires": { - "arr-flatten": "1.1.0" - } - }, - "arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", - "dev": true - }, - "array-unique": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", - "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", - "dev": true - }, - "asap": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" - }, - "assert": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz", - "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=", - "dev": true, - "requires": { - "util": "0.10.3" - } - }, - "async": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", - "dev": true - }, - "async-each": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", - "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=", - "dev": true - }, - "babel-code-frame": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", - "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", - "dev": true, - "requires": { - "chalk": "1.1.3", - "esutils": "2.0.2", - "js-tokens": "3.0.2" - } - }, - "babel-core": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.0.tgz", - "integrity": "sha1-rzL3izGm/O8RnIew/Y2XU/A6C7g=", - "dev": true, - "requires": { - "babel-code-frame": "6.26.0", - "babel-generator": "6.26.0", - "babel-helpers": "6.24.1", - "babel-messages": "6.23.0", - "babel-register": "6.26.0", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "convert-source-map": "1.5.1", - "debug": "2.6.9", - "json5": "0.5.1", - "lodash": "4.17.4", - "minimatch": "3.0.4", - "path-is-absolute": "1.0.1", - "private": "0.1.8", - "slash": "1.0.0", - "source-map": "0.5.7" - } - }, - "babel-generator": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.0.tgz", - "integrity": "sha1-rBriAHC3n248odMmlhMFN3TyDcU=", - "dev": true, - "requires": { - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "detect-indent": "4.0.0", - "jsesc": "1.3.0", - "lodash": "4.17.4", - "source-map": "0.5.7", - "trim-right": "1.0.1" - } - }, - "babel-helper-bindify-decorators": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-bindify-decorators/-/babel-helper-bindify-decorators-6.24.1.tgz", - "integrity": "sha1-FMGeXxQte0fxmlJDHlKxzLxAozA=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" - } - }, - "babel-helper-builder-binary-assignment-operator-visitor": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz", - "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=", - "dev": true, - "requires": { - "babel-helper-explode-assignable-expression": "6.24.1", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" - } - }, - "babel-helper-builder-react-jsx": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.26.0.tgz", - "integrity": "sha1-Of+DE7dci2Xc7/HzHTg+D/KkCKA=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "esutils": "2.0.2" - } - }, - "babel-helper-call-delegate": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz", - "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", - "dev": true, - "requires": { - "babel-helper-hoist-variables": "6.24.1", - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" - } - }, - "babel-helper-define-map": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz", - "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=", - "dev": true, - "requires": { - "babel-helper-function-name": "6.24.1", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "lodash": "4.17.4" - } - }, - "babel-helper-explode-assignable-expression": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz", - "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" - } - }, - "babel-helper-explode-class": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-explode-class/-/babel-helper-explode-class-6.24.1.tgz", - "integrity": "sha1-fcKjkQ3uAHBW4eMdZAztPVTqqes=", - "dev": true, - "requires": { - "babel-helper-bindify-decorators": "6.24.1", - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" - } - }, - "babel-helper-function-name": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", - "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", - "dev": true, - "requires": { - "babel-helper-get-function-arity": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" - } - }, - "babel-helper-get-function-arity": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", - "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" - } - }, - "babel-helper-hoist-variables": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz", - "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" - } - }, - "babel-helper-optimise-call-expression": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz", - "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" - } - }, - "babel-helper-regex": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz", - "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "lodash": "4.17.4" - } - }, - "babel-helper-remap-async-to-generator": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz", - "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=", - "dev": true, - "requires": { - "babel-helper-function-name": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" - } - }, - "babel-helper-replace-supers": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz", - "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=", - "dev": true, - "requires": { - "babel-helper-optimise-call-expression": "6.24.1", - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" - } - }, - "babel-helpers": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", - "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" - } - }, - "babel-loader": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-6.4.1.tgz", - "integrity": "sha1-CzQRLVsHSKjc2/Uaz2+b1C1QuMo=", - "dev": true, - "requires": { - "find-cache-dir": "0.1.1", - "loader-utils": "0.2.17", - "mkdirp": "0.5.1", - "object-assign": "4.1.1" - } - }, - "babel-messages": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", - "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0" - } - }, - "babel-plugin-check-es2015-constants": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz", - "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0" - } - }, - "babel-plugin-syntax-async-functions": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz", - "integrity": "sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU=", - "dev": true - }, - "babel-plugin-syntax-async-generators": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-generators/-/babel-plugin-syntax-async-generators-6.13.0.tgz", - "integrity": "sha1-a8lj67FuzLrmuStZbrfzXDQqi5o=", - "dev": true - }, - "babel-plugin-syntax-class-constructor-call": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-class-constructor-call/-/babel-plugin-syntax-class-constructor-call-6.18.0.tgz", - "integrity": "sha1-nLnTn+Q8hgC+yBRkVt3L1OGnZBY=", - "dev": true - }, - "babel-plugin-syntax-class-properties": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-class-properties/-/babel-plugin-syntax-class-properties-6.13.0.tgz", - "integrity": "sha1-1+sjt5oxf4VDlixQW4J8fWysJ94=", - "dev": true - }, - "babel-plugin-syntax-decorators": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-decorators/-/babel-plugin-syntax-decorators-6.13.0.tgz", - "integrity": "sha1-MSVjtNvePMgGzuPkFszurd0RrAs=", - "dev": true - }, - "babel-plugin-syntax-do-expressions": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-do-expressions/-/babel-plugin-syntax-do-expressions-6.13.0.tgz", - "integrity": "sha1-V0d1YTmqJtOQ0JQQsDdEugfkeW0=", - "dev": true - }, - "babel-plugin-syntax-dynamic-import": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-dynamic-import/-/babel-plugin-syntax-dynamic-import-6.18.0.tgz", - "integrity": "sha1-jWomIpyDdFqZgqRBBRVyyqF5sdo=", - "dev": true - }, - "babel-plugin-syntax-exponentiation-operator": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz", - "integrity": "sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4=", - "dev": true - }, - "babel-plugin-syntax-export-extensions": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-export-extensions/-/babel-plugin-syntax-export-extensions-6.13.0.tgz", - "integrity": "sha1-cKFITw+QiaToStRLrDU8lbmxJyE=", - "dev": true - }, - "babel-plugin-syntax-flow": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-flow/-/babel-plugin-syntax-flow-6.18.0.tgz", - "integrity": "sha1-TDqyCiryaqIM0lmVw5jE63AxDI0=", - "dev": true - }, - "babel-plugin-syntax-function-bind": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-function-bind/-/babel-plugin-syntax-function-bind-6.13.0.tgz", - "integrity": "sha1-SMSV8Xe98xqYHnMvVa3AvdJgH0Y=", - "dev": true - }, - "babel-plugin-syntax-jsx": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz", - "integrity": "sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY=", - "dev": true - }, - "babel-plugin-syntax-object-rest-spread": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz", - "integrity": "sha1-/WU28rzhODb/o6VFjEkDpZe7O/U=", - "dev": true - }, - "babel-plugin-syntax-trailing-function-commas": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz", - "integrity": "sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM=", - "dev": true - }, - "babel-plugin-transform-async-generator-functions": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-generator-functions/-/babel-plugin-transform-async-generator-functions-6.24.1.tgz", - "integrity": "sha1-8FiQAUX9PpkHpt3yjaWfIVJYpds=", - "dev": true, - "requires": { - "babel-helper-remap-async-to-generator": "6.24.1", - "babel-plugin-syntax-async-generators": "6.13.0", - "babel-runtime": "6.26.0" - } - }, - "babel-plugin-transform-async-to-generator": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz", - "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=", - "dev": true, - "requires": { - "babel-helper-remap-async-to-generator": "6.24.1", - "babel-plugin-syntax-async-functions": "6.13.0", - "babel-runtime": "6.26.0" - } - }, - "babel-plugin-transform-class-constructor-call": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-class-constructor-call/-/babel-plugin-transform-class-constructor-call-6.24.1.tgz", - "integrity": "sha1-gNwoVQWsBn3LjWxl4vbxGrd2Xvk=", - "dev": true, - "requires": { - "babel-plugin-syntax-class-constructor-call": "6.18.0", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" - } - }, - "babel-plugin-transform-class-properties": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.24.1.tgz", - "integrity": "sha1-anl2PqYdM9NvN7YRqp3vgagbRqw=", - "dev": true, - "requires": { - "babel-helper-function-name": "6.24.1", - "babel-plugin-syntax-class-properties": "6.13.0", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" - } - }, - "babel-plugin-transform-decorators": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-decorators/-/babel-plugin-transform-decorators-6.24.1.tgz", - "integrity": "sha1-eIAT2PjGtSIr33s0Q5Df13Vp4k0=", - "dev": true, - "requires": { - "babel-helper-explode-class": "6.24.1", - "babel-plugin-syntax-decorators": "6.13.0", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-types": "6.26.0" - } - }, - "babel-plugin-transform-do-expressions": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-do-expressions/-/babel-plugin-transform-do-expressions-6.22.0.tgz", - "integrity": "sha1-KMyvkoEtlJws0SgfaQyP3EaK6bs=", - "dev": true, - "requires": { - "babel-plugin-syntax-do-expressions": "6.13.0", - "babel-runtime": "6.26.0" - } - }, - "babel-plugin-transform-es2015-arrow-functions": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", - "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0" - } - }, - "babel-plugin-transform-es2015-block-scoped-functions": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", - "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0" - } - }, - "babel-plugin-transform-es2015-block-scoping": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz", - "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "lodash": "4.17.4" - } - }, - "babel-plugin-transform-es2015-classes": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz", - "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=", - "dev": true, - "requires": { - "babel-helper-define-map": "6.26.0", - "babel-helper-function-name": "6.24.1", - "babel-helper-optimise-call-expression": "6.24.1", - "babel-helper-replace-supers": "6.24.1", - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" - } - }, - "babel-plugin-transform-es2015-computed-properties": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz", - "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" - } - }, - "babel-plugin-transform-es2015-destructuring": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", - "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0" - } - }, - "babel-plugin-transform-es2015-duplicate-keys": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz", - "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" - } - }, - "babel-plugin-transform-es2015-for-of": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz", - "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0" - } - }, - "babel-plugin-transform-es2015-function-name": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz", - "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", - "dev": true, - "requires": { - "babel-helper-function-name": "6.24.1", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" - } - }, - "babel-plugin-transform-es2015-literals": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz", - "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0" - } - }, - "babel-plugin-transform-es2015-modules-amd": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", - "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=", - "dev": true, - "requires": { - "babel-plugin-transform-es2015-modules-commonjs": "6.26.0", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" - } - }, - "babel-plugin-transform-es2015-modules-commonjs": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.0.tgz", - "integrity": "sha1-DYOUApt9xqvhqX7xgeAHWN0uXYo=", - "dev": true, - "requires": { - "babel-plugin-transform-strict-mode": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-types": "6.26.0" - } - }, - "babel-plugin-transform-es2015-modules-systemjs": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz", - "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=", - "dev": true, - "requires": { - "babel-helper-hoist-variables": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" - } - }, - "babel-plugin-transform-es2015-modules-umd": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz", - "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=", - "dev": true, - "requires": { - "babel-plugin-transform-es2015-modules-amd": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" - } - }, - "babel-plugin-transform-es2015-object-super": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz", - "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=", - "dev": true, - "requires": { - "babel-helper-replace-supers": "6.24.1", - "babel-runtime": "6.26.0" - } - }, - "babel-plugin-transform-es2015-parameters": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz", - "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", - "dev": true, - "requires": { - "babel-helper-call-delegate": "6.24.1", - "babel-helper-get-function-arity": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" - } - }, - "babel-plugin-transform-es2015-shorthand-properties": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz", - "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" - } - }, - "babel-plugin-transform-es2015-spread": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz", - "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0" - } - }, - "babel-plugin-transform-es2015-sticky-regex": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", - "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", - "dev": true, - "requires": { - "babel-helper-regex": "6.26.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" - } - }, - "babel-plugin-transform-es2015-template-literals": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz", - "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0" - } - }, - "babel-plugin-transform-es2015-typeof-symbol": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", - "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0" - } - }, - "babel-plugin-transform-es2015-unicode-regex": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", - "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", - "dev": true, - "requires": { - "babel-helper-regex": "6.26.0", - "babel-runtime": "6.26.0", - "regexpu-core": "2.0.0" - } - }, - "babel-plugin-transform-exponentiation-operator": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz", - "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=", - "dev": true, - "requires": { - "babel-helper-builder-binary-assignment-operator-visitor": "6.24.1", - "babel-plugin-syntax-exponentiation-operator": "6.13.0", - "babel-runtime": "6.26.0" - } - }, - "babel-plugin-transform-export-extensions": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-export-extensions/-/babel-plugin-transform-export-extensions-6.22.0.tgz", - "integrity": "sha1-U3OLR+deghhYnuqUbLvTkQm75lM=", - "dev": true, - "requires": { - "babel-plugin-syntax-export-extensions": "6.13.0", - "babel-runtime": "6.26.0" - } - }, - "babel-plugin-transform-flow-strip-types": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.22.0.tgz", - "integrity": "sha1-hMtnKTXUNxT9wyvOhFaNh0Qc988=", - "dev": true, - "requires": { - "babel-plugin-syntax-flow": "6.18.0", - "babel-runtime": "6.26.0" - } - }, - "babel-plugin-transform-function-bind": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-function-bind/-/babel-plugin-transform-function-bind-6.22.0.tgz", - "integrity": "sha1-xvuOlqwpajELjPjqQBRiQH3fapc=", - "dev": true, - "requires": { - "babel-plugin-syntax-function-bind": "6.13.0", - "babel-runtime": "6.26.0" - } - }, - "babel-plugin-transform-object-rest-spread": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz", - "integrity": "sha1-DzZpLVD+9rfi1LOsFHgTepY7ewY=", - "dev": true, - "requires": { - "babel-plugin-syntax-object-rest-spread": "6.13.0", - "babel-runtime": "6.26.0" - } - }, - "babel-plugin-transform-react-display-name": { - "version": "6.25.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-display-name/-/babel-plugin-transform-react-display-name-6.25.0.tgz", - "integrity": "sha1-Z+K/Hx6ck6sI25Z5LgU5K/LMKNE=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0" - } - }, - "babel-plugin-transform-react-jsx": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.24.1.tgz", - "integrity": "sha1-hAoCjn30YN/DotKfDA2R9jduZqM=", - "dev": true, - "requires": { - "babel-helper-builder-react-jsx": "6.26.0", - "babel-plugin-syntax-jsx": "6.18.0", - "babel-runtime": "6.26.0" - } - }, - "babel-plugin-transform-react-jsx-self": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-self/-/babel-plugin-transform-react-jsx-self-6.22.0.tgz", - "integrity": "sha1-322AqdomEqEh5t3XVYvL7PBuY24=", - "dev": true, - "requires": { - "babel-plugin-syntax-jsx": "6.18.0", - "babel-runtime": "6.26.0" - } - }, - "babel-plugin-transform-react-jsx-source": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-source/-/babel-plugin-transform-react-jsx-source-6.22.0.tgz", - "integrity": "sha1-ZqwSFT9c0tF7PBkmj0vwGX9E7NY=", - "dev": true, - "requires": { - "babel-plugin-syntax-jsx": "6.18.0", - "babel-runtime": "6.26.0" - } - }, - "babel-plugin-transform-regenerator": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz", - "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=", - "dev": true, - "requires": { - "regenerator-transform": "0.10.1" - } - }, - "babel-plugin-transform-strict-mode": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", - "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" - } - }, - "babel-preset-es2015": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz", - "integrity": "sha1-1EBQ1rwsn+6nAqrzjXJ6AhBTiTk=", - "dev": true, - "requires": { - "babel-plugin-check-es2015-constants": "6.22.0", - "babel-plugin-transform-es2015-arrow-functions": "6.22.0", - "babel-plugin-transform-es2015-block-scoped-functions": "6.22.0", - "babel-plugin-transform-es2015-block-scoping": "6.26.0", - "babel-plugin-transform-es2015-classes": "6.24.1", - "babel-plugin-transform-es2015-computed-properties": "6.24.1", - "babel-plugin-transform-es2015-destructuring": "6.23.0", - "babel-plugin-transform-es2015-duplicate-keys": "6.24.1", - "babel-plugin-transform-es2015-for-of": "6.23.0", - "babel-plugin-transform-es2015-function-name": "6.24.1", - "babel-plugin-transform-es2015-literals": "6.22.0", - "babel-plugin-transform-es2015-modules-amd": "6.24.1", - "babel-plugin-transform-es2015-modules-commonjs": "6.26.0", - "babel-plugin-transform-es2015-modules-systemjs": "6.24.1", - "babel-plugin-transform-es2015-modules-umd": "6.24.1", - "babel-plugin-transform-es2015-object-super": "6.24.1", - "babel-plugin-transform-es2015-parameters": "6.24.1", - "babel-plugin-transform-es2015-shorthand-properties": "6.24.1", - "babel-plugin-transform-es2015-spread": "6.22.0", - "babel-plugin-transform-es2015-sticky-regex": "6.24.1", - "babel-plugin-transform-es2015-template-literals": "6.22.0", - "babel-plugin-transform-es2015-typeof-symbol": "6.23.0", - "babel-plugin-transform-es2015-unicode-regex": "6.24.1", - "babel-plugin-transform-regenerator": "6.26.0" - } - }, - "babel-preset-flow": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-preset-flow/-/babel-preset-flow-6.23.0.tgz", - "integrity": "sha1-5xIYiHCFrpoktb5Baa/7WZgWxJ0=", - "dev": true, - "requires": { - "babel-plugin-transform-flow-strip-types": "6.22.0" - } - }, - "babel-preset-react": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-preset-react/-/babel-preset-react-6.24.1.tgz", - "integrity": "sha1-umnfrqRfw+xjm2pOzqbhdwLJE4A=", - "dev": true, - "requires": { - "babel-plugin-syntax-jsx": "6.18.0", - "babel-plugin-transform-react-display-name": "6.25.0", - "babel-plugin-transform-react-jsx": "6.24.1", - "babel-plugin-transform-react-jsx-self": "6.22.0", - "babel-plugin-transform-react-jsx-source": "6.22.0", - "babel-preset-flow": "6.23.0" - } - }, - "babel-preset-stage-0": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/babel-preset-stage-0/-/babel-preset-stage-0-6.5.0.tgz", - "integrity": "sha1-i4R5sgd0grjz3I+PXwyceXiM3iI=", - "dev": true, - "requires": { - "babel-plugin-transform-do-expressions": "6.22.0", - "babel-plugin-transform-function-bind": "6.22.0", - "babel-preset-stage-1": "6.24.1" - } - }, - "babel-preset-stage-1": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-preset-stage-1/-/babel-preset-stage-1-6.24.1.tgz", - "integrity": "sha1-dpLNfc1oSZB+auSgqFWJz7niv7A=", - "dev": true, - "requires": { - "babel-plugin-transform-class-constructor-call": "6.24.1", - "babel-plugin-transform-export-extensions": "6.22.0", - "babel-preset-stage-2": "6.24.1" - } - }, - "babel-preset-stage-2": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-preset-stage-2/-/babel-preset-stage-2-6.24.1.tgz", - "integrity": "sha1-2eKWD7PXEYfw5k7sYrwHdnIZvcE=", - "dev": true, - "requires": { - "babel-plugin-syntax-dynamic-import": "6.18.0", - "babel-plugin-transform-class-properties": "6.24.1", - "babel-plugin-transform-decorators": "6.24.1", - "babel-preset-stage-3": "6.24.1" - } - }, - "babel-preset-stage-3": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-preset-stage-3/-/babel-preset-stage-3-6.24.1.tgz", - "integrity": "sha1-g2raCp56f6N8sTj7kyb4eTSkg5U=", - "dev": true, - "requires": { - "babel-plugin-syntax-trailing-function-commas": "6.22.0", - "babel-plugin-transform-async-generator-functions": "6.24.1", - "babel-plugin-transform-async-to-generator": "6.24.1", - "babel-plugin-transform-exponentiation-operator": "6.24.1", - "babel-plugin-transform-object-rest-spread": "6.26.0" - } - }, - "babel-register": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", - "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", - "dev": true, - "requires": { - "babel-core": "6.26.0", - "babel-runtime": "6.26.0", - "core-js": "2.5.3", - "home-or-tmp": "2.0.0", - "lodash": "4.17.4", - "mkdirp": "0.5.1", - "source-map-support": "0.4.18" - } - }, - "babel-runtime": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", - "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", - "dev": true, - "requires": { - "core-js": "2.5.3", - "regenerator-runtime": "0.11.1" - } - }, - "babel-template": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", - "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "lodash": "4.17.4" - } - }, - "babel-traverse": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", - "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", - "dev": true, - "requires": { - "babel-code-frame": "6.26.0", - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "debug": "2.6.9", - "globals": "9.18.0", - "invariant": "2.2.2", - "lodash": "4.17.4" - } - }, - "babel-types": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", - "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "esutils": "2.0.2", - "lodash": "4.17.4", - "to-fast-properties": "1.0.3" - } - }, - "babylon": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", - "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", - "dev": true - }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true - }, - "base64-js": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.2.1.tgz", - "integrity": "sha512-dwVUVIXsBZXwTuwnXI9RK8sBmgq09NDHzyR9SAph9eqk76gKK2JSQmZARC2zRC81JC2QTtxD0ARU5qTS25gIGw==", - "dev": true - }, - "big.js": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz", - "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==", - "dev": true - }, - "binary-extensions": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.11.0.tgz", - "integrity": "sha1-RqoXUftqL5PuXmibsQh9SxTGwgU=", - "dev": true - }, - "brace-expansion": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", - "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", - "dev": true, - "requires": { - "balanced-match": "1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", - "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", - "dev": true, - "requires": { - "expand-range": "1.8.2", - "preserve": "0.2.0", - "repeat-element": "1.1.2" - } - }, - "browserify-aes": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-0.4.0.tgz", - "integrity": "sha1-BnFJtmjfMcS1hTPgLQHoBthgjiw=", - "dev": true, - "requires": { - "inherits": "2.0.3" - } - }, - "browserify-zlib": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz", - "integrity": "sha1-uzX4pRn2AOD6a4SFJByXnQFB+y0=", - "dev": true, - "requires": { - "pako": "0.2.9" - } - }, - "buffer": { - "version": "4.9.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", - "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=", - "dev": true, - "requires": { - "base64-js": "1.2.1", - "ieee754": "1.1.8", - "isarray": "1.0.0" - } - }, - "builtin-status-codes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", - "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", - "dev": true - }, - "camelcase": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", - "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", - "dev": true - }, - "center-align": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", - "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", - "dev": true, - "requires": { - "align-text": "0.1.4", - "lazy-cache": "1.0.4" - } - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" - } - }, - "chokidar": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", - "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", - "dev": true, - "requires": { - "anymatch": "1.3.2", - "async-each": "1.0.1", - "fsevents": "1.1.3", - "glob-parent": "2.0.0", - "inherits": "2.0.3", - "is-binary-path": "1.0.1", - "is-glob": "2.0.1", - "path-is-absolute": "1.0.1", - "readdirp": "2.1.0" - } - }, - "cliui": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", - "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", - "dev": true, - "requires": { - "center-align": "0.1.3", - "right-align": "0.1.3", - "wordwrap": "0.0.2" - }, - "dependencies": { - "wordwrap": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", - "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", - "dev": true - } - } - }, - "clone": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.3.tgz", - "integrity": "sha1-KY1+IjFmD0DAA8LtMUDezz9TCF8=", - "dev": true - }, - "commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", - "dev": true - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "console-browserify": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", - "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", - "dev": true, - "requires": { - "date-now": "0.1.4" - } - }, - "constants-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", - "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", - "dev": true - }, - "convert-source-map": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz", - "integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU=", - "dev": true - }, - "core-js": { - "version": "2.5.3", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.3.tgz", - "integrity": "sha1-isw4NFgk8W2DZbfJtCWRaOjtYD4=", - "dev": true - }, - "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=", - "dev": true - }, - "crypto-browserify": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.3.0.tgz", - "integrity": "sha1-ufx1u0oO1h3PHNXa6W6zDJw+UGw=", - "dev": true, - "requires": { - "browserify-aes": "0.4.0", - "pbkdf2-compat": "2.0.1", - "ripemd160": "0.2.0", - "sha.js": "2.2.6" - } - }, - "date-now": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", - "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=", - "dev": true - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true - }, - "detect-indent": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", - "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", - "dev": true, - "requires": { - "repeating": "2.0.1" - } - }, - "domain-browser": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.1.7.tgz", - "integrity": "sha1-hnqksJP6oF8d4IwG9NeyH9+GmLw=", - "dev": true - }, - "emojis-list": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", - "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", - "dev": true - }, - "encoding": { - "version": "0.1.12", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", - "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", - "requires": { - "iconv-lite": "0.4.19" - } - }, - "enhanced-resolve": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-0.9.1.tgz", - "integrity": "sha1-TW5omzcl+GCQknzMhs2fFjW4ni4=", - "dev": true, - "requires": { - "graceful-fs": "4.1.11", - "memory-fs": "0.2.0", - "tapable": "0.1.10" - }, - "dependencies": { - "memory-fs": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.2.0.tgz", - "integrity": "sha1-8rslNovBIeORwlIN6Slpyu4KApA=", - "dev": true - } - } - }, - "errno": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.6.tgz", - "integrity": "sha512-IsORQDpaaSwcDP4ZZnHxgE85werpo34VYn1Ud3mq+eUsF593faR8oCZNXrROVkpFu2TsbrNhHin0aUrTsQ9vNw==", - "dev": true, - "requires": { - "prr": "1.0.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=", - "dev": true - }, - "esutils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", - "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", - "dev": true - }, - "events": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", - "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=", - "dev": true - }, - "expand-brackets": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", - "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", - "dev": true, - "requires": { - "is-posix-bracket": "0.1.1" - } - }, - "expand-range": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", - "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", - "dev": true, - "requires": { - "fill-range": "2.2.3" - } - }, - "expose-loader": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/expose-loader/-/expose-loader-0.7.4.tgz", - "integrity": "sha512-lweINkewAXcQtNjd7j1gO3cd8O/8lNYijsEwH4YZ+Dv3gT2Kh9/YvJov5Mdp2A75QIhgOvsSyRa/ZG3wYjNZpA==", - "dev": true - }, - "extglob": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", - "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", - "dev": true, - "requires": { - "is-extglob": "1.0.0" - } - }, - "fbjs": { - "version": "0.8.16", - "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.16.tgz", - "integrity": "sha1-XmdDL1UNxBtXK/VYR7ispk5TN9s=", - "requires": { - "core-js": "1.2.7", - "isomorphic-fetch": "2.2.1", - "loose-envify": "1.3.1", - "object-assign": "4.1.1", - "promise": "7.3.1", - "setimmediate": "1.0.5", - "ua-parser-js": "0.7.17" - }, - "dependencies": { - "core-js": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz", - "integrity": "sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY=" - } - } - }, - "filename-regex": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", - "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", - "dev": true - }, - "fill-range": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz", - "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=", - "dev": true, - "requires": { - "is-number": "2.1.0", - "isobject": "2.1.0", - "randomatic": "1.1.7", - "repeat-element": "1.1.2", - "repeat-string": "1.6.1" - } - }, - "find-cache-dir": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-0.1.1.tgz", - "integrity": "sha1-yN765XyKUqinhPnjHFfHQumToLk=", - "dev": true, - "requires": { - "commondir": "1.0.1", - "mkdirp": "0.5.1", - "pkg-dir": "1.0.0" - } - }, - "find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", - "dev": true, - "requires": { - "path-exists": "2.1.0", - "pinkie-promise": "2.0.1" - } - }, - "for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", - "dev": true - }, - "for-own": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", - "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", - "dev": true, - "requires": { - "for-in": "1.0.2" - } - }, - "fsevents": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.1.3.tgz", - "integrity": "sha512-WIr7iDkdmdbxu/Gh6eKEZJL6KPE74/5MEsf2whTOFNxbIoIixogroLdKYqB6FDav4Wavh/lZdzzd3b2KxIXC5Q==", - "dev": true, - "optional": true, - "requires": { - "nan": "2.8.0", - "node-pre-gyp": "0.6.39" - }, - "dependencies": { - "abbrev": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "optional": true - }, - "ajv": { - "version": "4.11.8", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "co": "4.6.0", - "json-stable-stringify": "1.0.1" - } - }, - "ansi-regex": { - "version": "2.1.1", - "bundled": true, - "dev": true - }, - "aproba": { - "version": "1.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "are-we-there-yet": { - "version": "1.1.4", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "delegates": "1.0.0", - "readable-stream": "2.2.9" - } - }, - "asn1": { - "version": "0.2.3", - "bundled": true, - "dev": true, - "optional": true - }, - "assert-plus": { - "version": "0.2.0", - "bundled": true, - "dev": true, - "optional": true - }, - "asynckit": { - "version": "0.4.0", - "bundled": true, - "dev": true, - "optional": true - }, - "aws-sign2": { - "version": "0.6.0", - "bundled": true, - "dev": true, - "optional": true - }, - "aws4": { - "version": "1.6.0", - "bundled": true, - "dev": true, - "optional": true - }, - "balanced-match": { - "version": "0.4.2", - "bundled": true, - "dev": true - }, - "bcrypt-pbkdf": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "tweetnacl": "0.14.5" - } - }, - "block-stream": { - "version": "0.0.9", - "bundled": true, - "dev": true, - "requires": { - "inherits": "2.0.3" - } - }, - "boom": { - "version": "2.10.1", - "bundled": true, - "dev": true, - "requires": { - "hoek": "2.16.3" - } - }, - "brace-expansion": { - "version": "1.1.7", - "bundled": true, - "dev": true, - "requires": { - "balanced-match": "0.4.2", - "concat-map": "0.0.1" - } - }, - "buffer-shims": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "caseless": { - "version": "0.12.0", - "bundled": true, - "dev": true, - "optional": true - }, - "co": { - "version": "4.6.0", - "bundled": true, - "dev": true, - "optional": true - }, - "code-point-at": { - "version": "1.1.0", - "bundled": true, - "dev": true - }, - "combined-stream": { - "version": "1.0.5", - "bundled": true, - "dev": true, - "requires": { - "delayed-stream": "1.0.0" - } - }, - "concat-map": { - "version": "0.0.1", - "bundled": true, - "dev": true - }, - "console-control-strings": { - "version": "1.1.0", - "bundled": true, - "dev": true - }, - "core-util-is": { - "version": "1.0.2", - "bundled": true, - "dev": true - }, - "cryptiles": { - "version": "2.0.5", - "bundled": true, - "dev": true, - "requires": { - "boom": "2.10.1" - } - }, - "dashdash": { - "version": "1.14.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "assert-plus": "1.0.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - } - } - }, - "debug": { - "version": "2.6.8", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "ms": "2.0.0" - } - }, - "deep-extend": { - "version": "0.4.2", - "bundled": true, - "dev": true, - "optional": true - }, - "delayed-stream": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "delegates": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "detect-libc": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "ecc-jsbn": { - "version": "0.1.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "jsbn": "0.1.1" - } - }, - "extend": { - "version": "3.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "extsprintf": { - "version": "1.0.2", - "bundled": true, - "dev": true - }, - "forever-agent": { - "version": "0.6.1", - "bundled": true, - "dev": true, - "optional": true - }, - "form-data": { - "version": "2.1.4", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "asynckit": "0.4.0", - "combined-stream": "1.0.5", - "mime-types": "2.1.15" - } - }, - "fs.realpath": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "fstream": { - "version": "1.0.11", - "bundled": true, - "dev": true, - "requires": { - "graceful-fs": "4.1.11", - "inherits": "2.0.3", - "mkdirp": "0.5.1", - "rimraf": "2.6.1" - } - }, - "fstream-ignore": { - "version": "1.0.5", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "fstream": "1.0.11", - "inherits": "2.0.3", - "minimatch": "3.0.4" - } - }, - "gauge": { - "version": "2.7.4", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "aproba": "1.1.1", - "console-control-strings": "1.1.0", - "has-unicode": "2.0.1", - "object-assign": "4.1.1", - "signal-exit": "3.0.2", - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "wide-align": "1.1.2" - } - }, - "getpass": { - "version": "0.1.7", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "assert-plus": "1.0.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - } - } - }, - "glob": { - "version": "7.1.2", - "bundled": true, - "dev": true, - "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" - } - }, - "graceful-fs": { - "version": "4.1.11", - "bundled": true, - "dev": true - }, - "har-schema": { - "version": "1.0.5", - "bundled": true, - "dev": true, - "optional": true - }, - "har-validator": { - "version": "4.2.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "ajv": "4.11.8", - "har-schema": "1.0.5" - } - }, - "has-unicode": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "hawk": { - "version": "3.1.3", - "bundled": true, - "dev": true, - "requires": { - "boom": "2.10.1", - "cryptiles": "2.0.5", - "hoek": "2.16.3", - "sntp": "1.0.9" - } - }, - "hoek": { - "version": "2.16.3", - "bundled": true, - "dev": true - }, - "http-signature": { - "version": "1.1.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "assert-plus": "0.2.0", - "jsprim": "1.4.0", - "sshpk": "1.13.0" - } - }, - "inflight": { - "version": "1.0.6", - "bundled": true, - "dev": true, - "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" - } - }, - "inherits": { - "version": "2.0.3", - "bundled": true, - "dev": true - }, - "ini": { - "version": "1.3.4", - "bundled": true, - "dev": true, - "optional": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "number-is-nan": "1.0.1" - } - }, - "is-typedarray": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "isarray": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "isstream": { - "version": "0.1.2", - "bundled": true, - "dev": true, - "optional": true - }, - "jodid25519": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "jsbn": "0.1.1" - } - }, - "jsbn": { - "version": "0.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "json-schema": { - "version": "0.2.3", - "bundled": true, - "dev": true, - "optional": true - }, - "json-stable-stringify": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "jsonify": "0.0.0" - } - }, - "json-stringify-safe": { - "version": "5.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "jsonify": { - "version": "0.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "jsprim": { - "version": "1.4.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.0.2", - "json-schema": "0.2.3", - "verror": "1.3.6" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - } - } - }, - "mime-db": { - "version": "1.27.0", - "bundled": true, - "dev": true - }, - "mime-types": { - "version": "2.1.15", - "bundled": true, - "dev": true, - "requires": { - "mime-db": "1.27.0" - } - }, - "minimatch": { - "version": "3.0.4", - "bundled": true, - "dev": true, - "requires": { - "brace-expansion": "1.1.7" - } - }, - "minimist": { - "version": "0.0.8", - "bundled": true, - "dev": true - }, - "mkdirp": { - "version": "0.5.1", - "bundled": true, - "dev": true, - "requires": { - "minimist": "0.0.8" - } - }, - "ms": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "node-pre-gyp": { - "version": "0.6.39", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "detect-libc": "1.0.2", - "hawk": "3.1.3", - "mkdirp": "0.5.1", - "nopt": "4.0.1", - "npmlog": "4.1.0", - "rc": "1.2.1", - "request": "2.81.0", - "rimraf": "2.6.1", - "semver": "5.3.0", - "tar": "2.2.1", - "tar-pack": "3.4.0" - } - }, - "nopt": { - "version": "4.0.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "abbrev": "1.1.0", - "osenv": "0.1.4" - } - }, - "npmlog": { - "version": "4.1.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "are-we-there-yet": "1.1.4", - "console-control-strings": "1.1.0", - "gauge": "2.7.4", - "set-blocking": "2.0.0" - } - }, - "number-is-nan": { - "version": "1.0.1", - "bundled": true, - "dev": true - }, - "oauth-sign": { - "version": "0.8.2", - "bundled": true, - "dev": true, - "optional": true - }, - "object-assign": { - "version": "4.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "once": { - "version": "1.4.0", - "bundled": true, - "dev": true, - "requires": { - "wrappy": "1.0.2" - } - }, - "os-homedir": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "os-tmpdir": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "osenv": { - "version": "0.1.4", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "bundled": true, - "dev": true - }, - "performance-now": { - "version": "0.2.0", - "bundled": true, - "dev": true, - "optional": true - }, - "process-nextick-args": { - "version": "1.0.7", - "bundled": true, - "dev": true - }, - "punycode": { - "version": "1.4.1", - "bundled": true, - "dev": true, - "optional": true - }, - "qs": { - "version": "6.4.0", - "bundled": true, - "dev": true, - "optional": true - }, - "rc": { - "version": "1.2.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "deep-extend": "0.4.2", - "ini": "1.3.4", - "minimist": "1.2.0", - "strip-json-comments": "2.0.1" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "bundled": true, - "dev": true, - "optional": true - } - } - }, - "readable-stream": { - "version": "2.2.9", - "bundled": true, - "dev": true, - "requires": { - "buffer-shims": "1.0.0", - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "1.0.7", - "string_decoder": "1.0.1", - "util-deprecate": "1.0.2" - } - }, - "request": { - "version": "2.81.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "aws-sign2": "0.6.0", - "aws4": "1.6.0", - "caseless": "0.12.0", - "combined-stream": "1.0.5", - "extend": "3.0.1", - "forever-agent": "0.6.1", - "form-data": "2.1.4", - "har-validator": "4.2.1", - "hawk": "3.1.3", - "http-signature": "1.1.1", - "is-typedarray": "1.0.0", - "isstream": "0.1.2", - "json-stringify-safe": "5.0.1", - "mime-types": "2.1.15", - "oauth-sign": "0.8.2", - "performance-now": "0.2.0", - "qs": "6.4.0", - "safe-buffer": "5.0.1", - "stringstream": "0.0.5", - "tough-cookie": "2.3.2", - "tunnel-agent": "0.6.0", - "uuid": "3.0.1" - } - }, - "rimraf": { - "version": "2.6.1", - "bundled": true, - "dev": true, - "requires": { - "glob": "7.1.2" - } - }, - "safe-buffer": { - "version": "5.0.1", - "bundled": true, - "dev": true - }, - "semver": { - "version": "5.3.0", - "bundled": true, - "dev": true, - "optional": true - }, - "set-blocking": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "signal-exit": { - "version": "3.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "sntp": { - "version": "1.0.9", - "bundled": true, - "dev": true, - "requires": { - "hoek": "2.16.3" - } - }, - "sshpk": { - "version": "1.13.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "asn1": "0.2.3", - "assert-plus": "1.0.0", - "bcrypt-pbkdf": "1.0.1", - "dashdash": "1.14.1", - "ecc-jsbn": "0.1.1", - "getpass": "0.1.7", - "jodid25519": "1.0.2", - "jsbn": "0.1.1", - "tweetnacl": "0.14.5" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - } - } - }, - "string-width": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" - } - }, - "string_decoder": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "requires": { - "safe-buffer": "5.0.1" - } - }, - "stringstream": { - "version": "0.0.5", - "bundled": true, - "dev": true, - "optional": true - }, - "strip-ansi": { - "version": "3.0.1", - "bundled": true, - "dev": true, - "requires": { - "ansi-regex": "2.1.1" - } - }, - "strip-json-comments": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "tar": { - "version": "2.2.1", - "bundled": true, - "dev": true, - "requires": { - "block-stream": "0.0.9", - "fstream": "1.0.11", - "inherits": "2.0.3" - } - }, - "tar-pack": { - "version": "3.4.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "debug": "2.6.8", - "fstream": "1.0.11", - "fstream-ignore": "1.0.5", - "once": "1.4.0", - "readable-stream": "2.2.9", - "rimraf": "2.6.1", - "tar": "2.2.1", - "uid-number": "0.0.6" - } - }, - "tough-cookie": { - "version": "2.3.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "punycode": "1.4.1" - } - }, - "tunnel-agent": { - "version": "0.6.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "safe-buffer": "5.0.1" - } - }, - "tweetnacl": { - "version": "0.14.5", - "bundled": true, - "dev": true, - "optional": true - }, - "uid-number": { - "version": "0.0.6", - "bundled": true, - "dev": true, - "optional": true - }, - "util-deprecate": { - "version": "1.0.2", - "bundled": true, - "dev": true - }, - "uuid": { - "version": "3.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "verror": { - "version": "1.3.6", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "extsprintf": "1.0.2" - } - }, - "wide-align": { - "version": "1.1.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "string-width": "1.0.2" - } - }, - "wrappy": { - "version": "1.0.2", - "bundled": true, - "dev": true - } - } - }, - "glob-base": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", - "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", - "dev": true, - "requires": { - "glob-parent": "2.0.0", - "is-glob": "2.0.1" - } - }, - "glob-parent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", - "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", - "dev": true, - "requires": { - "is-glob": "2.0.1" - } - }, - "globals": { - "version": "9.18.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", - "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", - "dev": true - }, - "graceful-fs": { - "version": "4.1.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", - "dev": true - }, - "has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "dev": true, - "requires": { - "ansi-regex": "2.1.1" - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "home-or-tmp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", - "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", - "dev": true, - "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" - } - }, - "https-browserify": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-0.0.1.tgz", - "integrity": "sha1-P5E2XKvmC3ftDruiS0VOPgnZWoI=", - "dev": true - }, - "iconv-lite": { - "version": "0.4.19", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz", - "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==" - }, - "ieee754": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.8.tgz", - "integrity": "sha1-vjPUCsEO8ZJnAfbwii2G+/0a0+Q=", - "dev": true - }, - "indexof": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", - "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=", - "dev": true - }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - }, - "interpret": { - "version": "0.6.6", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-0.6.6.tgz", - "integrity": "sha1-/s16GOfOXKar+5U+H4YhOknxYls=", - "dev": true - }, - "invariant": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz", - "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=", - "dev": true, - "requires": { - "loose-envify": "1.3.1" - } - }, - "is-binary-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", - "dev": true, - "requires": { - "binary-extensions": "1.11.0" - } - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true - }, - "is-dotfile": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", - "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=", - "dev": true - }, - "is-equal-shallow": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", - "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", - "dev": true, - "requires": { - "is-primitive": "2.0.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - }, - "is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", - "dev": true - }, - "is-finite": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", - "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", - "dev": true, - "requires": { - "number-is-nan": "1.0.1" - } - }, - "is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", - "dev": true, - "requires": { - "is-extglob": "1.0.0" - } - }, - "is-number": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", - "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - } - }, - "is-posix-bracket": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", - "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=", - "dev": true - }, - "is-primitive": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", - "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", - "dev": true - }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dev": true, - "requires": { - "isarray": "1.0.0" - } - }, - "isomorphic-fetch": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", - "integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=", - "requires": { - "node-fetch": "1.7.3", - "whatwg-fetch": "2.0.3" - } - }, - "js-tokens": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", - "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=" - }, - "jsesc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", - "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", - "dev": true - }, - "json5": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", - "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", - "dev": true - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - }, - "lazy-cache": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", - "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", - "dev": true - }, - "loader-utils": { - "version": "0.2.17", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz", - "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=", - "dev": true, - "requires": { - "big.js": "3.2.0", - "emojis-list": "2.1.0", - "json5": "0.5.1", - "object-assign": "4.1.1" - } - }, - "lodash": { - "version": "4.17.4", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", - "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", - "dev": true - }, - "longest": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", - "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", - "dev": true - }, - "loose-envify": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", - "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", - "requires": { - "js-tokens": "3.0.2" - } - }, - "memory-fs": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.3.0.tgz", - "integrity": "sha1-e8xrYp46Q+hx1+Kaymrop/FcuyA=", - "dev": true, - "requires": { - "errno": "0.1.6", - "readable-stream": "2.3.3" - } - }, - "micromatch": { - "version": "2.3.11", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", - "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", - "dev": true, - "requires": { - "arr-diff": "2.0.0", - "array-unique": "0.2.1", - "braces": "1.8.5", - "expand-brackets": "0.1.5", - "extglob": "0.3.2", - "filename-regex": "2.0.1", - "is-extglob": "1.0.0", - "is-glob": "2.0.1", - "kind-of": "3.2.2", - "normalize-path": "2.1.1", - "object.omit": "2.0.1", - "parse-glob": "3.0.4", - "regex-cache": "0.4.4" - } - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, - "requires": { - "brace-expansion": "1.1.8" - } - }, - "minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", - "dev": true - }, - "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "dev": true, - "requires": { - "minimist": "0.0.8" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "nan": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.8.0.tgz", - "integrity": "sha1-7XFfP+neArV6XmJS2QqWZ14fCFo=", - "dev": true, - "optional": true - }, - "node-fetch": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", - "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", - "requires": { - "encoding": "0.1.12", - "is-stream": "1.1.0" - } - }, - "node-libs-browser": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-0.7.0.tgz", - "integrity": "sha1-PicsCBnjCJNeJmdECNevDhSRuDs=", - "dev": true, - "requires": { - "assert": "1.4.1", - "browserify-zlib": "0.1.4", - "buffer": "4.9.1", - "console-browserify": "1.1.0", - "constants-browserify": "1.0.0", - "crypto-browserify": "3.3.0", - "domain-browser": "1.1.7", - "events": "1.1.1", - "https-browserify": "0.0.1", - "os-browserify": "0.2.1", - "path-browserify": "0.0.0", - "process": "0.11.10", - "punycode": "1.4.1", - "querystring-es3": "0.2.1", - "readable-stream": "2.3.3", - "stream-browserify": "2.0.1", - "stream-http": "2.8.0", - "string_decoder": "0.10.31", - "timers-browserify": "2.0.4", - "tty-browserify": "0.0.0", - "url": "0.11.0", - "util": "0.10.3", - "vm-browserify": "0.0.4" - }, - "dependencies": { - "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 - } - } - }, - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "requires": { - "remove-trailing-separator": "1.1.0" - } - }, - "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=", - "dev": true - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" - }, - "object.omit": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", - "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", - "dev": true, - "requires": { - "for-own": "0.1.5", - "is-extendable": "0.1.1" - } - }, - "optimist": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", - "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", - "dev": true, - "requires": { - "minimist": "0.0.8", - "wordwrap": "0.0.3" - } - }, - "os-browserify": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.2.1.tgz", - "integrity": "sha1-Y/xMzuXS13Y9Jrv4YBB45sLgBE8=", - "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=", - "dev": true - }, - "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=", - "dev": true - }, - "pako": { - "version": "0.2.9", - "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", - "integrity": "sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU=", - "dev": true - }, - "parse-glob": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", - "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", - "dev": true, - "requires": { - "glob-base": "0.3.0", - "is-dotfile": "1.0.3", - "is-extglob": "1.0.0", - "is-glob": "2.0.1" - } - }, - "path-browserify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz", - "integrity": "sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo=", - "dev": true - }, - "path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "dev": true, - "requires": { - "pinkie-promise": "2.0.1" - } - }, - "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=", - "dev": true - }, - "pbkdf2-compat": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pbkdf2-compat/-/pbkdf2-compat-2.0.1.tgz", - "integrity": "sha1-tuDI+plJTZTgURV1gCpZpcFC8og=", - "dev": true - }, - "pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", - "dev": true - }, - "pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "dev": true, - "requires": { - "pinkie": "2.0.4" - } - }, - "pkg-dir": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", - "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", - "dev": true, - "requires": { - "find-up": "1.1.2" - } - }, - "preserve": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", - "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", - "dev": true - }, - "private": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", - "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", - "dev": true - }, - "process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", - "dev": true - }, - "process-nextick-args": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", - "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=", - "dev": true - }, - "promise": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", - "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", - "requires": { - "asap": "2.0.6" - } - }, - "prop-types": { - "version": "15.6.1", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.1.tgz", - "integrity": "sha512-4ec7bY1Y66LymSUOH/zARVYObB23AT2h8cf6e/O6ZALB/N0sqZFEx7rq6EYPX2MkOdKORuooI/H5k9TlR4q7kQ==", - "requires": { - "fbjs": "0.8.16", - "loose-envify": "1.3.1", - "object-assign": "4.1.1" - } - }, - "prr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", - "dev": true - }, - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", - "dev": true - }, - "querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", - "dev": true - }, - "querystring-es3": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", - "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", - "dev": true - }, - "randomatic": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz", - "integrity": "sha512-D5JUjPyJbaJDkuAazpVnSfVkLlpeO3wDlPROTMLGKG1zMFNFRgrciKo1ltz/AzNTkqE0HzDx655QOL51N06how==", - "dev": true, - "requires": { - "is-number": "3.0.0", - "kind-of": "4.0.0" - }, - "dependencies": { - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "readable-stream": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", - "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", - "dev": true, - "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "1.0.7", - "safe-buffer": "5.1.1", - "string_decoder": "1.0.3", - "util-deprecate": "1.0.2" - } - }, - "readdirp": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz", - "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=", - "dev": true, - "requires": { - "graceful-fs": "4.1.11", - "minimatch": "3.0.4", - "readable-stream": "2.3.3", - "set-immediate-shim": "1.0.1" - } - }, - "regenerate": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.3.3.tgz", - "integrity": "sha512-jVpo1GadrDAK59t/0jRx5VxYWQEDkkEKi6+HjE3joFVLfDOh9Xrdh0dF1eSq+BI/SwvTQ44gSscJ8N5zYL61sg==", - "dev": true - }, - "regenerator-runtime": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", - "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", - "dev": true - }, - "regenerator-transform": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz", - "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "private": "0.1.8" - } - }, - "regex-cache": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", - "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", - "dev": true, - "requires": { - "is-equal-shallow": "0.1.3" - } - }, - "regexpu-core": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", - "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", - "dev": true, - "requires": { - "regenerate": "1.3.3", - "regjsgen": "0.2.0", - "regjsparser": "0.1.5" - } - }, - "regjsgen": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", - "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=", - "dev": true - }, - "regjsparser": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", - "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", - "dev": true, - "requires": { - "jsesc": "0.5.0" - }, - "dependencies": { - "jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", - "dev": true - } - } - }, - "remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", - "dev": true - }, - "repeat-element": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", - "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=", - "dev": true - }, - "repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", - "dev": true - }, - "repeating": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", - "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", - "dev": true, - "requires": { - "is-finite": "1.0.2" - } - }, - "right-align": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", - "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", - "dev": true, - "requires": { - "align-text": "0.1.4" - } - }, - "ripemd160": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-0.2.0.tgz", - "integrity": "sha1-K/GYveFnys+lHAqSjoS2i74XH84=", - "dev": true - }, - "safe-buffer": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", - "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==", - "dev": true - }, - "set-immediate-shim": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", - "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", - "dev": true - }, - "setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" - }, - "sha.js": { - "version": "2.2.6", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.2.6.tgz", - "integrity": "sha1-F93t3F9yL7ZlAWWIlUYZd4ZzFbo=", - "dev": true - }, - "slash": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", - "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", - "dev": true - }, - "source-list-map": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-0.1.8.tgz", - "integrity": "sha1-xVCyq1Qn9rPyH1r+rYjE9Vh7IQY=", - "dev": true - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - }, - "source-map-support": { - "version": "0.4.18", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", - "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", - "dev": true, - "requires": { - "source-map": "0.5.7" - } - }, - "stream-browserify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz", - "integrity": "sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=", - "dev": true, - "requires": { - "inherits": "2.0.3", - "readable-stream": "2.3.3" - } - }, - "stream-http": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.0.tgz", - "integrity": "sha512-sZOFxI/5xw058XIRHl4dU3dZ+TTOIGJR78Dvo0oEAejIt4ou27k+3ne1zYmCV+v7UucbxIFQuOgnkTVHh8YPnw==", - "dev": true, - "requires": { - "builtin-status-codes": "3.0.0", - "inherits": "2.0.3", - "readable-stream": "2.3.3", - "to-arraybuffer": "1.0.1", - "xtend": "4.0.1" - } - }, - "string_decoder": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", - "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", - "dev": true, - "requires": { - "safe-buffer": "5.1.1" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "2.1.1" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - }, - "tapable": { - "version": "0.1.10", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.1.10.tgz", - "integrity": "sha1-KcNXB8K3DlDQdIK10gLo7URtr9Q=", - "dev": true - }, - "timers-browserify": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.4.tgz", - "integrity": "sha512-uZYhyU3EX8O7HQP+J9fTVYwsq90Vr68xPEFo7yrVImIxYvHgukBEgOB/SgGoorWVTzGM/3Z+wUNnboA4M8jWrg==", - "dev": true, - "requires": { - "setimmediate": "1.0.5" - } - }, - "to-arraybuffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", - "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", - "dev": true - }, - "to-fast-properties": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", - "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", - "dev": true - }, - "trim-right": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", - "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", - "dev": true - }, - "tty-browserify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", - "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", - "dev": true - }, - "ua-parser-js": { - "version": "0.7.17", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.17.tgz", - "integrity": "sha512-uRdSdu1oA1rncCQL7sCj8vSyZkgtL7faaw9Tc9rZ3mGgraQ7+Pdx7w5mnOSF3gw9ZNG6oc+KXfkon3bKuROm0g==" - }, - "uglify-js": { - "version": "2.7.5", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.7.5.tgz", - "integrity": "sha1-RhLAx7qu4rp8SH3kkErhIgefLKg=", - "dev": true, - "requires": { - "async": "0.2.10", - "source-map": "0.5.7", - "uglify-to-browserify": "1.0.2", - "yargs": "3.10.0" - }, - "dependencies": { - "async": { - "version": "0.2.10", - "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz", - "integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E=", - "dev": true - } - } - }, - "uglify-to-browserify": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", - "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", - "dev": true - }, - "url": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", - "dev": true, - "requires": { - "punycode": "1.3.2", - "querystring": "0.2.0" - }, - "dependencies": { - "punycode": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", - "dev": true - } - } - }, - "util": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", - "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", - "dev": true, - "requires": { - "inherits": "2.0.1" - }, - "dependencies": { - "inherits": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", - "dev": true - } - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true - }, - "vm-browserify": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", - "integrity": "sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=", - "dev": true, - "requires": { - "indexof": "0.0.1" - } - }, - "watchpack": { - "version": "0.2.9", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-0.2.9.tgz", - "integrity": "sha1-Yuqkq15bo1/fwBgnVibjwPXj+ws=", - "dev": true, - "requires": { - "async": "0.9.2", - "chokidar": "1.7.0", - "graceful-fs": "4.1.11" - }, - "dependencies": { - "async": { - "version": "0.9.2", - "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz", - "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=", - "dev": true - } - } - }, - "webpack": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-1.15.0.tgz", - "integrity": "sha1-T/MfU9sDM55VFkqdRo7gMklo/pg=", - "dev": true, - "requires": { - "acorn": "3.3.0", - "async": "1.5.2", - "clone": "1.0.3", - "enhanced-resolve": "0.9.1", - "interpret": "0.6.6", - "loader-utils": "0.2.17", - "memory-fs": "0.3.0", - "mkdirp": "0.5.1", - "node-libs-browser": "0.7.0", - "optimist": "0.6.1", - "supports-color": "3.2.3", - "tapable": "0.1.10", - "uglify-js": "2.7.5", - "watchpack": "0.2.9", - "webpack-core": "0.6.9" - }, - "dependencies": { - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "1.0.0" - } - } - } - }, - "webpack-core": { - "version": "0.6.9", - "resolved": "https://registry.npmjs.org/webpack-core/-/webpack-core-0.6.9.tgz", - "integrity": "sha1-/FcViMhVjad76e+23r3Fo7FyvcI=", - "dev": true, - "requires": { - "source-list-map": "0.1.8", - "source-map": "0.4.4" - }, - "dependencies": { - "source-map": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", - "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", - "dev": true, - "requires": { - "amdefine": "1.0.1" - } - } - } - }, - "whatwg-fetch": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz", - "integrity": "sha1-nITsLc9oGH/wC8ZOEnS0QhduHIQ=" - }, - "window-size": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", - "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", - "dev": true - }, - "wordwrap": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", - "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=", - "dev": true - }, - "xtend": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", - "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", - "dev": true - }, - "yargs": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", - "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", - "dev": true, - "requires": { - "camelcase": "1.2.1", - "cliui": "2.1.0", - "decamelize": "1.2.0", - "window-size": "0.1.0" - } - } - } -} diff --git a/src/React.Sample.Webpack/package.json b/src/React.Sample.Webpack/package.json deleted file mode 100644 index 47965446c..000000000 --- a/src/React.Sample.Webpack/package.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "name": "React.Sample.Webpack", - "version": "0.0.1", - "description": "Webpack + ASP.NET MVC 4 sample for ReactJS.NET", - "main": "gulpfile.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1", - "build": "webpack" - }, - "author": "", - "license": "BSD", - "devDependencies": { - "babel-core": "^6.3.17", - "babel-loader": "^6.2.0", - "babel-preset-es2015": "^6.3.13", - "babel-preset-react": "^6.3.13", - "babel-preset-stage-0": "~6.5.0", - "expose-loader": "^0.7.1", - "webpack": "^1.12.9" - }, - "dependencies": { - "prop-types": "^15.6.1" - } -} diff --git a/src/React.Sample.Webpack/packages.config b/src/React.Sample.Webpack/packages.config deleted file mode 100644 index 6a712b2da..000000000 --- a/src/React.Sample.Webpack/packages.config +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - \ No newline at end of file diff --git a/src/React.Sample.Webpack/webpack.config.js b/src/React.Sample.Webpack/webpack.config.js deleted file mode 100644 index 591d837e7..000000000 --- a/src/React.Sample.Webpack/webpack.config.js +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Copyright (c) 2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - */ - -var path = require('path'); - -module.exports = { - context: path.join(__dirname, 'Content'), - entry: { - server: './server', - client: './client' - }, - output: { - path: path.join(__dirname, 'build'), - filename: '[name].bundle.js' - }, - module: { - loaders: [ - // Transform JavaScript files via Babel - { - test: /\.jsx?$/, - exclude: /node_modules/, - loader: 'babel' - } - // Uncomment this if you want to use your own version of React instead of the version - // bundled with ReactJS.NET. - //{ test: require.resolve('react'), loader: 'expose?React' } - ], - }, - resolve: { - // Allow require('./blah') to require blah.jsx - extensions: ['', '.js', '.jsx'] - }, - externals: { - // Use external version of React (from CDN for client-side, or bundled with ReactJS.NET for server-side) - // Comment this out if you want to load your own version of React - react: 'React' - } -}; \ No newline at end of file diff --git a/src/React.sln b/src/React.sln index 06756ccaf..37a174e2b 100644 --- a/src/React.sln +++ b/src/React.sln @@ -34,11 +34,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "React.Sample.Cassette", "Re {B7D39E1D-6CAA-4489-A03F-0C176402CFB2} = {B7D39E1D-6CAA-4489-A03F-0C176402CFB2} EndProjectSection EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "React.Sample.Webpack", "React.Sample.Webpack\React.Sample.Webpack.csproj", "{E20376AD-80F7-4865-ACE3-1DE616991DF7}" - ProjectSection(ProjectDependencies) = postProject - {662D52AC-1EE9-4372-BD74-379F9AC56451} = {662D52AC-1EE9-4372-BD74-379F9AC56451} - EndProjectSection -EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "React.Core", "React.Core\React.Core.csproj", "{D0CC8A22-CEE6-485C-924B-1F94426FEA59}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Cassette.React", "Cassette.React\Cassette.React.csproj", "{B7D39E1D-6CAA-4489-A03F-0C176402CFB2}" @@ -65,17 +60,15 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "React.Router", "React.Route EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "React.AspNet.Middleware", "React.AspNet.Middleware\React.AspNet.Middleware.csproj", "{7E1C3999-1982-476D-9307-12B30737B41E}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "React.Sample.CoreMvc", "React.Sample.CoreMvc\React.Sample.CoreMvc.csproj", "{305918EF-AD05-4743-9B3A-DB1CE84D467E}" -EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "React.Router.Mvc4", "React.Router.Mvc4\React.Router.Mvc4.csproj", "{2170D912-86E9-4CE3-8DA4-E1DE8D958E63}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "React.Sample.Router.CoreMvc", "React.Sample.Router.CoreMvc\React.Sample.Router.CoreMvc.csproj", "{5BFA69C8-2E66-4112-AC30-CE31503F4175}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "React.Sample.Webpack.CoreMvc", "React.Sample.Webpack.CoreMvc\React.Sample.Webpack.CoreMvc.csproj", "{5BFA69C8-2E66-4112-AC30-CE31503F4175}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "React.Tests.Benchmarks", "..\tests\React.Tests.Benchmarks\React.Tests.Benchmarks.csproj", "{083462CB-2FC0-4508-A7ED-4B77B44C3E23}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "React.Tests.Integration", "..\tests\React.Tests.Integration\React.Tests.Integration.csproj", "{5EBC5EA6-7234-40E0-A07B-75D01385FAD2}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "React.Tests.Common", "..\tests\React.Tests.Common\React.Tests.Common.csproj", "{29F7122F-ECBB-4EBE-A2BB-3A00CED73C19}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "React.Tests.Common", "..\tests\React.Tests.Common\React.Tests.Common.csproj", "{29F7122F-ECBB-4EBE-A2BB-3A00CED73C19}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -91,10 +84,6 @@ Global {F1EB6834-80A5-411C-90FD-CECC05715A10}.Debug|Any CPU.Build.0 = Debug|Any CPU {F1EB6834-80A5-411C-90FD-CECC05715A10}.Release|Any CPU.ActiveCfg = Release|Any CPU {F1EB6834-80A5-411C-90FD-CECC05715A10}.Release|Any CPU.Build.0 = Release|Any CPU - {E20376AD-80F7-4865-ACE3-1DE616991DF7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E20376AD-80F7-4865-ACE3-1DE616991DF7}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E20376AD-80F7-4865-ACE3-1DE616991DF7}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E20376AD-80F7-4865-ACE3-1DE616991DF7}.Release|Any CPU.Build.0 = Release|Any CPU {D0CC8A22-CEE6-485C-924B-1F94426FEA59}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {D0CC8A22-CEE6-485C-924B-1F94426FEA59}.Debug|Any CPU.Build.0 = Debug|Any CPU {D0CC8A22-CEE6-485C-924B-1F94426FEA59}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -147,10 +136,6 @@ Global {7E1C3999-1982-476D-9307-12B30737B41E}.Debug|Any CPU.Build.0 = Debug|Any CPU {7E1C3999-1982-476D-9307-12B30737B41E}.Release|Any CPU.ActiveCfg = Release|Any CPU {7E1C3999-1982-476D-9307-12B30737B41E}.Release|Any CPU.Build.0 = Release|Any CPU - {305918EF-AD05-4743-9B3A-DB1CE84D467E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {305918EF-AD05-4743-9B3A-DB1CE84D467E}.Debug|Any CPU.Build.0 = Debug|Any CPU - {305918EF-AD05-4743-9B3A-DB1CE84D467E}.Release|Any CPU.ActiveCfg = Release|Any CPU - {305918EF-AD05-4743-9B3A-DB1CE84D467E}.Release|Any CPU.Build.0 = Release|Any CPU {2170D912-86E9-4CE3-8DA4-E1DE8D958E63}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {2170D912-86E9-4CE3-8DA4-E1DE8D958E63}.Debug|Any CPU.Build.0 = Debug|Any CPU {2170D912-86E9-4CE3-8DA4-E1DE8D958E63}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -178,7 +163,6 @@ Global GlobalSection(NestedProjects) = preSolution {22796879-968A-4C26-9B4B-4C44792B36DB} = {A51CE5B6-294F-4D39-B32B-BF08DAF9B40B} {F1EB6834-80A5-411C-90FD-CECC05715A10} = {A51CE5B6-294F-4D39-B32B-BF08DAF9B40B} - {E20376AD-80F7-4865-ACE3-1DE616991DF7} = {A51CE5B6-294F-4D39-B32B-BF08DAF9B40B} {D0CC8A22-CEE6-485C-924B-1F94426FEA59} = {681C45FB-103C-48BC-B992-20C5B6B78F92} {B7D39E1D-6CAA-4489-A03F-0C176402CFB2} = {681C45FB-103C-48BC-B992-20C5B6B78F92} {134EDD16-8DC8-4983-A2E0-B38DAB1ECF1C} = {681C45FB-103C-48BC-B992-20C5B6B78F92} @@ -192,7 +176,6 @@ Global {631FCC55-0219-46DC-838A-C5A3E878943A} = {681C45FB-103C-48BC-B992-20C5B6B78F92} {D076273B-C5EA-47C7-923D-523E4C5EE30D} = {681C45FB-103C-48BC-B992-20C5B6B78F92} {7E1C3999-1982-476D-9307-12B30737B41E} = {681C45FB-103C-48BC-B992-20C5B6B78F92} - {305918EF-AD05-4743-9B3A-DB1CE84D467E} = {A51CE5B6-294F-4D39-B32B-BF08DAF9B40B} {2170D912-86E9-4CE3-8DA4-E1DE8D958E63} = {681C45FB-103C-48BC-B992-20C5B6B78F92} {5BFA69C8-2E66-4112-AC30-CE31503F4175} = {A51CE5B6-294F-4D39-B32B-BF08DAF9B40B} {083462CB-2FC0-4508-A7ED-4B77B44C3E23} = {F567B25C-E869-4C93-9C96-077761250F87} From 51702ceeac6469768c9233f2d254d86875764a59 Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Sat, 13 Oct 2018 15:09:28 -0700 Subject: [PATCH 071/530] Update VS tools path The build is broken if only VS 2017 is installed locally. We should support that. --- src/React.Sample.Cassette/React.Sample.Cassette.csproj | 6 +++--- src/React.Sample.Mvc4/React.Sample.Mvc4.csproj | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/React.Sample.Cassette/React.Sample.Cassette.csproj b/src/React.Sample.Cassette/React.Sample.Cassette.csproj index 6e30b192d..6127c00be 100644 --- a/src/React.Sample.Cassette/React.Sample.Cassette.csproj +++ b/src/React.Sample.Cassette/React.Sample.Cassette.csproj @@ -202,10 +202,10 @@ 10.0 - C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\ + C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\ - + @@ -231,7 +231,7 @@ - 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 _-jqE4y1ys^)Ip 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 L$v2?Hz8ZbRj@g0U)iip7c!cHr$4 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 z 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

    6Yr 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 c^kJO{yKlf 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ℑ=QauMG=*B-sx8;*1Il-du=OJhK=J(D2BGp0Q&Zg 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ν<2kTFd?XA)WbEzAtH?le3P*zqqP$uGsg92TLU;ba{9M_;a=+?N?>lp5cu;oE4BOr+JJ;wn^exAem3E%=v=@2J4}41C z(*vI!ctPMx0$(2Zdhzp$;cVpvzY_Q#i5De3=a#2xZl5%Ja^|BSFY}g(Da)tDla48u z>xjT72R=73=b|~Aah~#p*WA9$Tob=8&FH>*Cr*65>ik0LA=Q76_HXBiFFGxo`FGiG zlV&ZQ*}q(j{@iURXYOI0qjuq2qu(K|_&WK#R=iwkelyk0YotE)6PR}z`b{^$ScJrv)kJhr;dIgILkN!4fV%yOK>Qx}*zYvG;3;xjzq_b_r!*7)?m8MA=kA2u< z9QGJrqQ0@2^8JnUaD(_M@k`2U^q+dKL}j6G>?8ZLvcm_9UsAhInOZ*o`HXmZ8ZV4l z_`>`2TvhtK@^af@KVE6AIXUpDVt!YvIqA7KA+4_+Z>fzqYx+|1$-0sIz7}bG-65^- z#bDo0q465BRqSvDGk4?lHuU)aZ-r^b$yVrQ|s;u$4r1yDjcr{%gKd*Rv?U@XY)A;=JP_Uz4q_S+F z*oI|iUvU>PK0Pn-%-ZD|32CRVSw1K5N$F`ju9f-obicM^Wz9L3^t8)#X>M0u`$>;| z_BN9;2Z)(lmdbuu;wQzWJ#hJP9o7aW?M_O2T=L`kpDsVEJ)!l3VwfVnc2M6P70*z< z!}57n^8aS?kLF9#-;*?J>{Hg%g}f*WF|e*C&W)rYHh2p$@1w!Hh`Had4{51GKVNH1 zcIpAPJs<3T9*qXO>%Tc^=<}_C+XAEazHwokoi=6P8;$!(hpvMj3q{%8-*~pTx5~mi z&-0g~#pkNt20m2Lw+DSk$V&SWo*N3qL--Fw1aAuV?I|8BA4f!*hymVd?q zKFO<~ynd~ z2`_2Q125UG++L2qUmC{`JO0PypX>XT@=w~Y={*JBxgJP9Y2QJy+h{1*7ibP)oztzf z_o|FO+f&m}j)6MiI^wfEu+K`>N#nMz6+5=9n0jE3u|D{r4tZYLA)nY?S2?j`8{MJe zvq5(IY)pPAOH<&P8iO~gZWk+l_}0WPsZMVCo9^#qryjia=9#tUM#k4qq-U%x(0oWe z{4&)c&+MKQ&z4Wxf_i}cjRkl>Y5$ls&x-jzz)bax<$7P>&$7dRm))FcD))Kp^R)h< z|HJp6Sbi4CxL8jb^iwo{ZYt(CF8Pl4cH+&C)i_nz{Z8v*X--hu7aH~KDbz_Zu;<}d znY4WA!iX`&($Mh+N-o@o|rhXlNbB&V`ArJJsSKFCu0!1`!IUP zQ>%5Z$0@PFbyuiACp-PKAu&GliA(E^z-@tB0yicmZ6PpueN(Y>Er3^hR=)$1_^I6| zm3S=ac@718e;)Sxp0LLn?C)9^#gv8kX?MPb!g~airPM~M=Ng^equzLKQY-ee66(r6 zv3tM0AiL*>x|EjZ&cuIsYSZ?RZ%!KP8-gDHeqV+d+!okXl!pY$u*)cWSY#Naj6i0m#)lk#$Z8x8h+u-628A=qnWUs0c8_kZlJ z|AN^4wodGPi@{He?2frrOj+oY*qs);`+Re-XT|o}9(+;{PRrO~ZsD14vozLs1bvIx zWoZa$vAZm-A#GlV9xu{&*#7@ze2j^rP16T9B1 zXEXi8Yc2TmJ5S1R){A=ZJw<2m(-oMQsUP0Y>Q}xVQ*(4pIYjgAbj`N|vb(O}ST53* zo+qZXjHyAf#|1vkJt5zLz>IOuL2aeH27`S#aJSg`_68o7f7eyN?5DO=m!7@C$BT() zNbLA&U-YGUH8EpzL`?m&C)O4;T%*yKo~NrmVa`&rZveBe2=gvpv*PC&ljng}>HU89 zn0$Jz1$(Upx2m3xS6bTFdBN@vXs~zk4eebjedeKB)$NGtThFcPWk*9l$*f;Kr!jVM zd4Ah3&2QB67nK+97BvQadtmyHW5Djc!49$eQd7`(1^{~kcALU( zBhq?|z^(__;~G9rW1M!xr~6oo*!9pBxEQ!2v17CUR@og-LF{<2o7tn|JC?j3y-0n7 z_T}2=IW(fHipOd0W|gr&(()BSp!F(@%sY}$tP#>hjq{EIkQQ2UoY}WLm%5--__)IE*?=E zw8&0BVXVQf|HZ1SXLVL@qk+{+d!*;7@13ZA&VK2)6Bm`2=fLiewkL3x*qZ)e9|+tL zG%ztxKlxdec!q+0IPhrT7U?tE&wqnGNiqG6`%2i~&Vv0ed5zfRtqoikI2X7ewtv|E zVf%;ezfo-e#lTI0`$GI9V)xatV4tBmir?JX?RL!-N^4C+@IyVj-dO+Nq&8yx@A_m8 z>)j1f-X;Wo7XeJh2q5;@0X~qurCo4Gy96a5?_37nV%7V zLmKuuUl4yQvF8o!|^*tOtyN8#EIX_UJ)>`CSP}{lAj!pw!7dBzwyPcI$NTVT+#l+KW=M9==VM~8VcL@BrmHotCZ=xTy}nYF zIr`PrOFTo&`HGHln%!mJez2_hkIqT@2DRQvPnuGn*R!_jeJ5vrsWOt*&m!w(_xH`Z zg8oJI+b?DG%={bLw+VT{bClQWKiBu5#D|Gn6&rlL@*Tf!=}u{hVL;5{Oy`ME$zm2|AI+pUHuE+~N?DJ>$sI1wR%I9{ zmiXqYGMVf29w_#=Rrafn*WSDM>XdKQIx35JO~nb{8~7>ldddE0@kWWq#5^ZL@3y{i zqjH;$Ua!6(|I7oNYsJp>?hmq0P5RB{r%vT%A9$+n``~Jw58@r=byG@FYPahz2DUm^o7J+b79}} z!k#nR#qPr$fjh+>JKbWBoi4HOkzwB>qw(0`+0EZ{u4a3co%0x{s7`*avV2K($lSP> z>d^Lo)47*krF9vLfmsh@KVJ9F{j&R7(NA|(ZITAw zQ2plsadXJGMeKTL6}uj0N`KGR3q4r`*kx}D`ktWg6}vv$19t}Q4?GaKEAUX@4)Nl&UhPhH>J#Ss#H^Fy zN5stAV@Xq*V-qvSj*30EXZNbaIZJi;>}J)OLskFv!QL3SDexTi^Bq*5t z-q5LHerx+vvY#!+=NEOp=zMW5r6p$g4=H9pBe-*OJ^K#+3yF!DIhp$8T7%v3SE)_+ zSZ&gZ=fY^7m{Oj%ty!+LInDFSbbW{CDK?%XGynT~fuE00nUuLsaboxNu`|Ron3%Z* z_IeC3LsZEa-d0?zg1%o&fCiUT@H3_b$iDxrG*Kyl$zH-G2Il9*x(E)Pu_fQ!eVQ zE~Kqb%si9TJ)q}-2H9Q4MzQnFjZ16)_;I`BgPyd+Sz336{iSBv?Vr6hzB$~ZzA;aH zn)=V}V&-!*_6vgDjQv}|Zf;Ha((Y}6i-8M)`^1;rs`bE6^}F6;pQ(m-K2mFiWWQb- z&Q4>0Uf11OKPmIqr|CMpQ0FRTze1YZlfFfE-Xp+%s?PO|ey7a6vVT+d`5M3bh~Jid zj`(14M)vrdT%>ioz-W$_W>D<9g||PusuU;8ndA_C#y0Wibqn~ZrxMBU)Nm1+6?_~q`yX*(WJpY_A_MP zUiPtM=Y9}&Y_RVEv$HE@fp=5P|E`#OrP+Ve>dd*y7yDe@f!|cx9{H?I8prvt;-oEd$6mVOTJ zuC}OA{lhLV+@=`5s~DP-o)}sZleR6`_nxM6daGqKuPNU`uonZj2ObVQ61XF9SK#iz zHJ>b(g?M_xy+duZ2mN!Zhm$kanPWBQHzp17!v~$CXC*2-e1w>_D@;8cn(P;LP0GBW zddQ`;t_ROEO~IZ`e22zJZ-^luG&8ESE>a(UOnn%>OHBWS9}x2!dGKC(cKWn5%}VQg z)kd|W=gijRv$Vbq{yW6J7PO0f?dS}ezS)&J90=Sg{%5)t_XqA)TF=R_=Tew{MGQTG zdlOU7BZ*6WIBeTXMFj-4;>8^Wx?>VgJ8 z_-8%i^IgAJ%#A^l58M*CHE>(tV&IOzoq@XoFV+1rXAx%gbQwC_98aNo*02YYEw{;|fh_HE$9#f=L9Fa1*0xz~!=-;sS2+2_bk`>w5Z0`|vcfA$*v7NqRn!_Uc1|72c*y)J^eF8@K- zWtg=heSqJy@LY{g#>-a9t3hl(u>HXH0~fEIRJ!I4qHi} z)F6iSHm}b7;9vC{8M+sq`-FaLSp6+8yRXI5bYI*c&EATWb+zXZ>`k)Ik-a(PRl0_1 zj`~Qip6jd5N5o#|!;7W2W*2Fmk)}myy#_#2FFW@FXDgmr8VjuLTZ4b%{E4oKuYam+ ze_D0I*epnM*`}IXR9^IbviE8}!N1Rm%~8zzCZF(u;!ml(UCBT53FW#*aUPP&m2EQjYj`N>5rG5_`QZFU*@p~4%0e8?D>J%ex%rLRBT1DufGd*AIDjU zS7w#te^?skAJY2%7oYAYl4g!k{QQ<>f3g!l-{m7;-UF)rR3%^7eg=ZRPImXnT;Rc= z84f%ecr0)>q-_dJJe&=lt9q^p_I%)>4)&S z|5&{|{|BD~i5UyMVz<|z*fIAcJ9`~N!QL-+pTrMqd!Ff#*6rIZcDaUwp7X}1sn2{^ zYdP%h!`Ls9{hKNm@%Vm$K6Z`lhpLZZci($S^C~S@2RpgueLt0? znv2Y&rT(9kpSBRE-%01WM!W2<->G+O?yJ1F&U62Q?EcOS>~Gb=A4=cJhxwf@zL^hi z7kIb8`vvwh6!b^QP7JWm2{))tJl^5bGenIM*!?PAE0uFYsvK>FQ%V zgLqEu0#8+JBjTxw^J?99(AMxRzbfxP!&^yX`@iY85zSY>R?+VqG_U`@qS+_enJX6Q z{&!p5lTMS*!)0e*xZwSLf~!f%u`N#ijH`(13bOBG1>#qNO4le+2S+vIzy;@`Mug@r)4ug(|$;2(ld5C zLfSbgE&aTpvF3i*C5^AMbEP?-zAc|^8&qPRr+JUq_K|&_G@a7SO?-g*CVhUsG}ov8 z-xA6@9AfAV+#eXd_s9BV_qpW(vHRp;&<_Ph?`M&)pItW2sl*S{)~rcBR;PF5HLss| ztJbKxcC45Kr7?G@Z=2D0O_GUj;-^P0D7&n4OEleJ;q!0vXbO&Zz={!?1t=7Jr*HSKfqyzd^Bm-~WTQ>9KC z0x#6O`mi+Y&0a3P{VLs`>DtiLOO&+zZW%k-@ho^fza>{8WdPx4P2^#&eGOd0*`wMTmFd+NS`>mbbcTewHY z|4;7IGXZJvf2qzS{4(*0`sTn>;@tk_Yba}{hQyp%!tQ>8-P|blv&-gSZxZ`?DD3qx zY<2~2%o@l!_klY;cL9c3Jn z2Bs`U*{$i5{h#Unu|f8&Qq1u5P!`fMriP_=Jnhmr2G}uliQQ*96B9#6&|vpI3G8@! z#je|KvFo-+>^gxR!+_Z3V*I{-n9{3n^aXo=;Gw`Hfq5o)<~y3ZzOFI`yXUUIXzntv z-c#nMKdE+0{G8^unc{4|Qs?k1=T&8%)^|(bA@SPJm3g1;NtvTGXJS8Ie8bLKbEdSk z5%bcz>i^7pb>r+C%Kk;!(Quw*GnE%!uKl81Vy;uAIa71^$313)pNy^@ql*8-H=3`vMOHt`9sY z_BD4nFm_*;M+1)}W-nz->~_x{P+{tUYX@a-44Qo4mcVU+bK>UI=NrU6Bh-{M^#5kD z`yuv=lOE>1TE=^8((^345cJrs&xM#91Lp%b2W}C2?t-Zw>Y+irBA%ot&L;7q6i-3S zJs{UC*!9Nx$L|{!gS|a)PvFkLePWN(Ua`k1ew-KU7UCq|j+B<#1WH_QI0?2Y5>56k|X>@DN$FUbBk*;~iiv%2SA=f~QU33keI z#DelWaq#F5Cg~kVoih)bHt{Q|4^Xb@@$2GGl@Clj)Ia{=XOhpTp+BH0ooy3)t+h;ZCi}D(sZB?fw$x{|A3i4b zxPaX^xX(RAeT;Q=_Ml3;!~SM?O|sLz-%y>rq&j(4byA}->uWCSe8w6v*9JX%;C_Fh zPx%rve(HjzKiG4@J{asnfrkS(NbeXZJL{`&tL%@dT)d~o_d^<`@i)&KG#-hQ`4GG3 z{DI_?_~F%+jy7tM=A-wQpGU)=5HHa)ntBa)|0X-^?^oo49kv~f-{Hk>F39Kil7IM) z3HIM1pN}U0@aq%ozgs@1_Lu7i-bFl-_0uPxhbRAVaf1C1%4b*d58pSz{zv4~?F&CM z!Tz%cSNy}TO|bvE;2&Q9fr)M32Kk&JpPcuAcb#DWdHFmf`G=34VE?Tle)xT(Ud^GuohbGv6zkL2R`G?p4#l-f{p%6cun_&N=@;OUB z>HqNY6YRfcZl(U=FHf-ldinJH3|}ZKDSiNj9+-i366hE zKKD)j;o~RRf9)aKYfAp%1rzK)C!gO+{^6S@*ng9Jy8plvT|X`Id2fmzeqn;+FUV)+ zp>qF$*A-7>|7;Kb>y_2Y?pd(=exytKkEM9v9Va-RUiox;!TU|H{{i_tI>irveuDiE z%jbE?KYZB)`yZ3f8onSw2I(yx6 zJp9h%;;ha#Xm9Pi+K++@V$NB??cznrer@7QQd;6)BF$piZCYnBSyWqW9xwP1nBY zCKEHp>y!WSV;sB3IJ_!jyit0OahU#m8RJX5Dr1~7zSl9{q`W-FVPaUQ7~qwSaq@aU z$9R|W^%#eVr(5yBAEYr}r{|^T{!-5s9@KjZ;w#0UOWY?uLp-dQJr9fpu94n$()#zT z(fh0s_MDz2&bUM4eVl!^?7PU0AL~b?SxXnL3zaXtZQ^=qJ|n(NcDQT4zC)MzbFyD2 zZjk+ZLwar?pYRKp>ulm}WqVPY(telh>YZ6@N7`&m;Jq&<5FK4DkLb9?nEOAq~IJd#CdK(w*8H zm)>(l^VXHKNv*-|-}BAirRSBhdkuho7tKX{^AK(l^K2K5pL4Z|{hX^s8rMTXcF)P! zk5g<%DK_kW7KZ(TWXC_xN7(bnr=NW^Zm#>;RIVnmHAQKBP6Kw##a#K>4d3x2PS5$U z^^|vk>WAMnZ0~ z8ed}OrF9c;v1n3e&s}xxmfd}fGV(sfn<^vvS3afhN+ta#rJpPPSkR++Tbj=#&2iG4 zEKOF=W24V2KUbZ3Q~eYDzn`x)XVMp?|5xd2$LaTw{AhAV?aJD{ zUv`f#cv#@R9=4W39oo=DCW5#=kD<7`lnAGth_E( zJEHfP#pg}(`Jj9jWXJy%;=Q$2WL>(J`a_HC&I@*4t>S%DcCI_{r^W0E<8_W0|#k_^a(dV?@>j-+7c4VHRERGF!Z0%w{KaDYm5pWk_R9J>{p!c+R|nl) zp4)$rIF=>G8Dm4UvN6&vJN=()LBI0-%`f%cOZo2=cl>qr%tH0a0kO~az>Ig!ZNjb} z^ml4bE4`y9?iX`k(-8cl=Q>{crnlJlR)b<+e~IBBy(6(y{k%u)x`I7lk(cWeyT>ey zo%0V_<-5lt<#if-MB;C#4%yc_Q2l%~>AAPc>f12BH-x{olfJK^vox^p4Rd1WTNk(? zap??$*xwgz6x%0kpRj$lPcQpqO$hgD?ZGv)Ii!W17IxYuG4;uN94%tkXHo3)3GhUp zPdHfbmEJr7`#J53&Gi}gbFlkf4_=jfy)Nl}uLrY!IO`4F*N9i;UXL=q*L%Hg<>h-l zm>4cl4DibC^~me}yw@93zP{IkiRUuK1Amb2_42y!@t!m6b23M&e*Akq1=;B{jJ0+# zb28@)yMnztF?$F-3XH{xp#PH`Q)5AykgEte(;H%Igsl}f3m~FiHU6_ z*hdqS7WR56s~0dR3u$xWQ?xGK>P@{PFQ$z)N&NgxlQO%`(pk!+$A4pDd^RU$-fIf> z*1+g}4^Jrlo~Ho_14c=-4IRGT!O_qxTN_X@$@6YPVkbL)G9owjp%TV;12!0tN1?zSEZ ze)@tR>fbT9h>4lD!0xoz;nH<8`01D3@zby9&zwiCk=-#51P%SlF;j2$kKHkk1^|Rq2zpV#f)` zc+j(cs7reKB%;ENwww2;334GcjY6v@T

    GClpfiHD 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 H^8y0^1@hGs literal 4255960 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%0D1R3$lQE7Q?u&_i5)3*^s6A}t*zh&G4jlK2 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%0AD=xgSmSN|$5&ujDRx38ZDA$w&3CY={0`|)dH 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�hd41a;)>~HRV zb1yS@x492Ax0?_Tmb)Qiq02s+U826F3ia(K5_=3$Yvl_8>CZh?q8ptmGOU{D$F)&% z`Kc}=MqTbMO>MeF)m^GO$8N09<)^yiIX3-EA<0ZgZBo{3UHJt<|AaIeWzFu+t9jj| z0q2z*;AEeDS%RC=b{Vl!;ad@=uo=vFYoYTM=JZO2#0z@GIEy1*bhllBwJ*KME&J0> z4^XZHd^=cK$q~CFo2lmcqWqWTS!XsE_}Otm#+7)872ATy_Pq;uv*Y@88z zz2NJ8+m>@$x+RiDop9)k;&oH7$(W{4YwYE0MjykLaL~G%>_P?5UV%a8R5qnl!`=>d za+5+1n3p!2Y%AIN=9(Fo7g#dbj+hydo6nR6abHO8*?qV+M3$rTA-MbrI^-iqXoD>z zayWuMIyw?HN#!VhCWL3m!*gnz8^QDZ33D7A&VsP=BSg25h^{3?TMU1B1MuN5tsj5+ z2H@9DhO6(s3BoyWQw&l|nP}L%4n`0vDv+>L#?9$R^`N|_hvL& z*LO-ks5Jm*3>X)2V%o!UDGtU-n$2kRQ{aMFRm+OhAod&|)nIFYq`n(%A5w?3{T5c0 z-Y5KVxkk;-Z(Lz)!R|*=Sl`CJ{pCy2>E`{bi%DC58z{SVz#zI)Ov`@VD(7Hgm_9Wy z>;06o;V(;#Jk|)3g>A|i^jpw?@`=7+Q2j2|0yl`hXaN1j%3`-x?DI5%=&z;jxR*iH zM9=Yq+l-vG1&G@$dSkcJkDhgKC2j7wHeLE%SbDg>4V2yO6*@~Px4S3f;6oVhH~g8-K*3QP*ZX3+TYcZWxv`>Nn0`H^y;WKw#`fFV zXExjM9J+}S)xyBnuiogKLT^W@2M;$fVDwnX95cXGUsIMBvVDhk#43_SKbMkTeTqHu zg$%m-9(m0Vk7c~EQ!cP}%JsFKayj&lsf7pO5gL}>0kJ>XF?Uc#nu7`lYB!Zvwinox;cOYV>8mh%;8{T z3CtW0hHZ(%GlzrioWRWCV2cx&Ie_iphkC?2h!$Yl05J!oTmw32%AWNWjhcrJ2iqlqnZv<$O$}l{Co#{7q-_+z*&m9zJOH(gtscxP+g^1TT|zX z6+{>DONN*GwSA$fD!TptB~{Vt*UAEk#CjcQ?XVpSEnhsqnFXlE`^|LK@9U?3{@U=G&c8@)2&f~xQQTw>&sF{dDGpQbOC?lUQp1&7rO|%m)ViGbHT=;Wn!ls8 z6s&CYW&qbIyfbGO%l>M4a`qc;OrUMOWM=s5dKJ*H2{40|*aq{iXT-a+r_X=~bhR9I zH0zX%Svs&jgBSX|Tz|lYcI|O}{`-HleFvBv#nJX?W_LE+ozUr$kU$ckJ6b0sWP-Rm zKnRQpB4e`284QfLMKWla^$|=wlE`3^$Re7Yk;zdAk%Ndf!C;bYFxWo-?_1TgGkbe$ ze|*pP-y>~TS9e!eSEuUk>Yi^)yP zM#!8@G82Rh1A}&eT+e!VB@3)eISX1&Hhi~8g1-DF3=28GY-AQeKhOw43acIz0%N8y zz&URolJl?7fh_vSPw(H^)6Rgz`hHGt^Zk)`J9<0I-tFm~QTFaY?}26Sj`W^X_U=UQ zg0gpKdLJu$ccJ(5viBG8f=@d??n@td-j6QzhMO=J;$nAWVP*2XE6@f@xk>rn(;M*G z+i4U`duxfzWA-VLYs@|+vWv;5L{9Kjdx@FM$2(LkDEm|I=m%1>mitku`I)H%7528? zRX}BQEh?J#vK4vn#Z>DcRa=yb!ihNBo1q&bbW{|oGBm{obvUG*}x^=$;H^ zt%^+WSQd&b)he>Fe%7nV$og5aB~r0|R;9?!`dODHa%%moOySA;S({Q$^|SA=K6jTX z&ovypTvHwrpsz*6_vWXhQaaq;{ZS%$ra2V{YFKBl9mBkEAMk*+CR+*aq)H<}UTi0v zJ#eePv2Y5y6YmB-hrR?ez31tq!bNaOY(0Ka0tWn3+3h%#1%@4t{BrK)goB&4jS?Bw z0l`Fsiu&(&_Ra#2u6YBBOJRBRG|qLJF6XQan18UYL22>!3V!#{Z6MJ(uwn#8pP%K3 zqv?ES0@C0TZKE5AiiQlgLC2Nb3I5g3LD%jaIc%VXfZku?ejPU~ap898G|w|l?^WQ` zQ%*ZkfVsAR={JdZ*NK+;{EI|u=ChJg<|;aAa}6Ak3Hsvx5L+kgX+r^!2Dk$voB)bD zFv1A{9N(8*2QL4{M6Z&Yt3lcf#lGSXT5d^jOziNkptSQa9y+I{%_| ztLx3sb)0LM+za@tBJSooN{M&@NvUNvOYI5={c|yLcmbIaP{OVLK>O@D2sYOt6pfkt zR0kj>E+|7MVfmGT1Fd99 z!?b5;n&I5!|m>N}<_&L54&OB9>NH zoWcU23(addzFfCz4(>%{+b2fIzG{P%y-ZmpC)GH{&_cYt)UB)w4eHsqTz2I^Y^}9o zEK3^W}+>^+o1v$DLlWRITA<4>Ti!~;dsIF}# z<{IUg+$j{30e{?jd*-`Vhu3cdz*_J}0a$^+XaJ)Kj2i(+>=ecVNDFHGo>t}SxjcF~ ztl}XObg1>w{@8ILdU@~bcnFbuE&Su2ICXbi=J@Zr`>)tZWsmnU)?$_J&hWDCPEWR9 zl2q#MMEz*pebcABS^rIUpFVDlKCbY_t=d=M*f^aFzd3;HY7e%Y%_(yyyBfxroXiE3 zL1i>_eD-UM&FqvIo7tbEvH6H-%oPA>F*eVRZ~`cfxyl$W0C2Rey$UWa;$ckV+=LG; z+ykeZgF`Qj$7W&9CL&k~!$L3~KV}EaeAcSpHJstf;*B$H7b3;4#--1Qtz&1CZbqtRT8#V*Q$eHe?t_H zJv>Yh$ffLWg+UnnoIkgK%fBJ!&sb@hF%dCTtVx}v8|zmqRxe<)h$c*+Ip%WCJc`|M zA;OR$-;vq{VI#}!t9s6qs^dB(nlnk)M$_3++Fu5So0u)hqD+&r))pl4VcxaoN%VzZ zv)#k(ql>#pAra6Z#ZP^YmD&UzOTS_O)UQdgzUQ_Uo@8m5$40#yA4lcyaUevmLf+eA zlazkNTHOxx4)$hqD%VXm?`p#484`ltH`7(kBcXISJ5=E~%cES&I6@zwbGpqMdZwzQ z_PU&+b+t#`kY@nRC=aZuaUB_%YQg+q6_g7V!?JKKcogFCPj;pYlM&cQ3G~W#&SIqN zW3TMp7md(}mz}nE9i0EEcP_oMc_X1kdS!!0yzKG1izD8U-s8)pO7OBwwhV^M?M9z)r9-o@QOWhn>gAdZ53M<+l zSqylB0( zQdQ!4OuQ$CkoGusRU+T{9u2Y_JAkeuQB?gye!5_zkYa4^}3HEh>Chl$EWU3W7OABDO|2Rlu%lbV9Tzd>2Q zz?2SlL|9wlabR%$UjnMPj%oF(u^-!Yu1S#x5O`FkYR+J_h$>>z-oWQ?1)i zmt&j&$O>^!i*N!c?(_&J0C3y~@$NV}Y*J#)x>iTzLcE{jUP8X9Ib@;ur8s$q=0BO z-xEW**Trv@Nj3kE^Zurs_i+22f{_nJ{0`zK9kRhBnR3mi_cRcciP87a_aebuYg>QF{j@{P0}`GT~AI%uNt+_?o~i;j3`{B7JouhvC$EKXk&8&e22|oW053 z4eN{T3Cm9TtHt-fhv0h!%l987KQH{FxT)|Xans?);)3r_6iA1kD&U8IQXmt4CV=w& zp};NS2XOr&eaiR#$~O^%_)a_ffa?`4A74p&FZ^2ERQQd!>F_V&f{(u{kPiPQfadz8 zz%AhyaQz~En(G0YD-kwVl~vvuQz5Ii(@Ge#+gpdH=SvN{7@{LxR_hm5j#9tgXszFW zN{*@UAL6FNe~AnJ1{6q#|5m^cQ<7wOCd7sW+J?c7Mn3#OLR-S`;rd1Tl;Z=HV74X9b1v24q z1+w8t0aR!?fm^~XT)#-43JqrF>=Z;qLeny8-L+eOR+8jiI7-}9xSY7@a9MG|&sYW0 z;TQ${aGV0!aI^r*Mw`GbVJlp}NT0HCu(Cl!#Dlf)$hF}OoxeyUC6v>4<1uI*AW=V1{ zJWSkFh&@ZT({ z3+KQo%s}Ki%)qnJW?MxI3MOE1_KOUy_lu0%Fg(@G#XaUGjO6<6U*TC0qpmwVt&viu z9wfpeNLvy&VomTIBE?#?CC7m0D*})~53L}g4E~PH3a>B&5GNy0$X}>PQJ*cX1$?vu zSq1Qbe##G0+?ep~OoIUQR;>-6#Pb@IeV#G|Tmo05vC3@$r%s2XDO5LnR+y zaZVQ*15epd?~OiYp?dq9`VLP+kYj7uGQp7gLq=@ZYrZHz$L!|^8pcKGjfXPpOe<*%)QTih&`PYyG z9@}CPmOng-f@*{<^y|#}r$Cv2qQ%Y(o(gWP>)|Py*^u~ykzM(oalXiu_R=rRNAhzs zjf!im3vPp|VSX~0yW@u9j_-6pUw82ZuBp4~`#-Mp;joGI?lQ<2_?6rf7brXiddG&q zO+9sMD0nrKbhWVs zSW)`Hy-?xm#5^Vw+y}URINC3c#3!vIyLH)MGGcMQXxk}SuqD+CKl`529H;B%XuYRn z^CUY49fPc?H8V4NQZq2_~CC9$b`oUphICOa7%bJT)#-4j#o#3 zYm8S!L_=YDY^MIUisj=RN$-Vch?@#e7dIWADK7XpOM!GaPXRwXTY*e?o&d_nX#%%| z{c!yveagpd<%5VSJ~$>%wtQSC>Ai4)xT)}Zam~-zJ+2kFCAF@yov_y9c+!Ede*Dunix#D<(xe{SZ z6wNWz>sGaSJ|n5U@Nscd;bY>a!zaW=o=+-}4xbW0^L$j`mhcg{evv-S^GMB;h#~Tv zYV&+SQhVWIaZ}-o;-zPeKD`qZC?2?+8?vx;>M1+=`bfQ@~RWS zY{r850=I-|xPFm7&Fg5*iwLuY7A%?98aA&{k{r)SiJJ=B#7&2z#YJ9Y1kiG|3fvO5 z!1astXH=t{lLc-GSApvn z>C;Sc>5-WdQL(;QM!r`x4SA-5PG~ncy_SuqUxi2U*A*AC z>lVOl#WsPXI7Ds<*MjR8=~I#YT17^L*(Poi)3qE}SOgD|6YPnzT)5nEKfSau7JqP` zc(LBCcet&ti78bqmr{bo<4aH4| zn~00@{7iv#xRC(b7H|+R1zR7kU!+e9)~5v{qM|LNoo$e3x6N}aN$rJOikk|z7B?Mk zE3S%e3xQk0&Edkd5WkwkF`5Grk?6{E81q0?${4hZr1!#|#7%`ei<=IAA+F}JqrffU z4siV(D;ietRjO=CQoSz{7wUNKq`}rtm7S6eFn|6|% zwaG&Pcp|oD@^TqiH?T*MGVCe*dEp-7roz3%O^17ni@MoIfpoa90A@Qjy4?kC33r3* z7wOYd9j~P#!t5Z8F4-Q|wRr}T+6!lin+gvXHys`!F7oVEARQJ2&^!+lxFtLku3w~2 z^ZbqGNyHF&PPcg$CAAkGEp942O5AifS6t*7Dv%CK0%)E`3fvO@3a($IPxCxM^CTjX z=RB{lBMJ>e^DodpWFM65;jWdTVDBsv;T}?2>Tx~rre|MXH~Sb~Uqu({hEX7k1jkU=P*}lj)?*s>*DK+v*jjMsQnm1XBha^VYZZbCO8f3r`jo zo4n$t!_&n@{hTU**#$BTPZYQ%JOM7gBa2_H7F?L;G(m*fRfQe3KjyW8&FfrA?uF-x zn+netHyvImF7moS0L|+hfm_0};rd1TG_R91FCvn89X4)6-}w;QO2`j?Q)U=gFXj6# zpd6zz|J3qvlaThp8^wk0DQ-GkATId0K>)KG%Y2={E#b9r{UUwJ$H~eE5oV9L%wwjG zcP3)xy&>C&Ek;RX4+D+`u>Nh|0?6HQG{3B&STgmf4UQa?m??Mp9IS2D| zTSI0KBU#BcIuA-a6b%0=y5rmbfoz)+YBTFVG7)tzyoiMWov5E+7sdIRZJ&3ema#u2 z`{Z{C+!Edi*Duni&F@rgendp-UEUgD5y>_Yl1#SuNgXi-@R839a4T z;>BQ7E*vTt?2Ju@PMqKW39Dtdxw-H(8c$(+BEkO-Dilca3d$}O&euYs4vAo03TCXv z>s(a25@@}1{1rsF7=3E!JI9PCk#XnvDj|wH#{%qNHile#r#=h|Y9iu0$AUkz27XBm ze9yw6>CCNxf3F7K{C;RUy*2O)Yv8}Bfj5r~O@G%K_#{hNiz^4SZh>{Nft;f7ZaS^6b$0?q37{L=C+E+|YD3sDZz#2L6#6_<_XA`6DCV~mY6C&uXel)dxH7^od&#vPsx$qa25$c#JO4}}@y>!A62SW8dVCYBCp{y&krzHIZYq3E+;sT7xTt_d3Z%mq z1TYI>NfkaVa7*|UT)#-4YE-AGMn!~q1QFx2cHTPJ)aLoRr1rws#7%{-ikl8!78iNG zq5$@974XA11klWv2;36B2-h#trF`5w zk@rUeXio16+!DS6*DuniIh~<75n+pIbBwEqOHMb`(SO;-p4?5CbD#u<|9>+*Nka0P-#9|6>VBflYv4L_rfUIgZeGo%=&OQw=(=Q67x*w3vtbU;4=JN;Fj<+xPFm771h}) zDk97Qh#2YqWAHA=Q=qwp$m&3Z@J9Alc4rYf3FW2aynZ z2ynr9=+sT=k?D3bIfW?Pw&-Z0_{sxC7Go>M-UCRAp$faB>-Zr&oVHxL^yW+Djo*`^$<@T+}$P51_ zZYumvT-~?(tH3ScU*P&h`c!`BsQiei*tcVykoH!VHVo3GPB5mxO@*$wCO|2|e_PrE zLYqFNeXi0b!W@o>QQbtex3;vimUhn4&L?PR1a1j^xPFm7rG1{#CZdWq+Y)XO%YNWU zN$-VC;+kIa+bD2LI0CL;q)%y{uQZ7;M^x~ealQmiTv%=_Y=K5j+k_UxD$GW#IuB>0 zTe9iTfzRNHz)85P<6PjAcW6DRK( z;c-vB8o3M?u z?BF;S-#Qr2wAWUqZ5t|1L_e7q=AN6#80_3v!iJ;O9zID zadlr{l)x=v8(hCgpSF#QwQUelwJ*T-wwUnIB}Kc@&dPn%fa=F^eN5XDorAW zq`AGNxss&!!U^Ik%@qZ130HvY7wJ=)mncmlDrjPFfG0iN-!Ur^0MEP&vkF}PMOAF> zL?vL?^KLq6b1xm(quwuW+B^t1y5n^-We$3w0HA?-xFx~~ptxHjoB)dZU4#=rakoV{ z0f5`UZEJ07E$oH8X0wnP1GkYiQcNPPE;HO}fcY09EfKuk4x-Rq?x2$n@1%oC_%3nN z;oWdWmti#OFpNi+5$Q4_U5QxUhcQo494YgRGKKJa7>}|LK+AJ)gcATbq<<23h7fBZ zg22`98AIeo1oIJ0WLv!h>fbFsf}m>KYGVJBjq{F!(k5-3|6AIfB<-U^=1c5<%6I2M zX_NWZO1p~|vb~3wFFSDiFgOYWT_(TE z2FEU*3tHJfjzFn%0U+}yh+y3bpmq0TgcAU`i!^=J$^_l%8*L1K6<$E^sVJ=gNL$X^ zd?#_r?ZDuAKHHHCN87>EQCb0%muDiJ02TBmNJ8ZKY!pWTP4^se2z%bTi>&*Cbr)Or zMe8oH?n`tj4*@`n?QsrV{#7g+RxJ0lq~XwX$b0VaOzXP5%3uyhk$Yz{;wv!G<_EmV z7aBj=LYE|0?2_b)3o~-X1sS<=Vf-pwMfz(aaQ;pXimiUN%|1 z9FJZ`FlF$Hbzh}x#|vARM-MK^zY^k7z!lkRJzLm3GGet>&D!U>?bHzJ$> zz%@-?8qybfYn4 z7wMnx0hJh28hyF1K`i?ArIbODyuetX96e4N5Ed z{twgcE@?lg%(qGNB^LQ!UMt@{2BnpJ{|9NeLOt`ZqObh-yCL!Y474j&BHA764((2= z(yjqBqL=SU-psnF_h4E4$k5r^X)!IpVBxhgI$}4+)YeYF^cE}#bqicrx8PTGkSkONA)-PDiD>U_X|Eya zy>Obisc=nk&0Gxr;pzgngsZ{zi}We&`AVAzbF|D7IyUrRAl@3qPMOW{%e#QXor6*I zeUMinL_~ZGv;-&kHGb;4c;y4DygqpF=}b2pwBo{Busp^pkz`wgmko|VAU0g^m6Tjz z4G;~E1pD2lqAhw|Q(S>0x^=E^N=mO@~{Hi}8DN0W`Cj0>iExF6_$j ztC?M`nGq3X#xd*ks@cPhY7;i1W*b&0-ys+eehvUX*gBXFoVgu8*qU1hj$-`6w=h%? z{qz(Mw=>-$hZeWUj;>Qhfm21=Y>QvMZJ>2?pe^I}!nPOgAg&f=JAqrmpTqTw^l4G9 z(V`F$6{WmK!@CRzfo9jEt+5rfLA`yq!~+C@q4g-3~-3g?Qey&>-h9lq2P(3rDfq+~OaR78Y>9xsYZ@JkDs`z{c&6TzCPQ-)wApQMMe`7inQ4iO`2CWf_(sV zk4JuQe9RbV+I-Nlqi_imeIkj- zed#wSWVHWtJm3NU^r$rLeGD}C?!+Xy1l+qPDz8^e@kMjiy>8SqbD(}lvgLNrW@bx4 zf&Y|v>ZSsK4dDJ1;RI0JXAw>S#eE*(1W??cBb)$=`y#>#ptvt1oB)dZD#8h%xUVCe z0E+u2!U>?bzeG3zfMeU`PH8Xd56_sQyxp8*6)a4}t_EI`FbBabMrE~SoBg1HJ0GhB zQ=)*z;9YNiJfc7v0eS-Vh50f|;SAIRJ`R98OsKIFP!olDz|?0wy!(G9>u54eGt4G1 za}7^KXtv1T?gdDiR)e6!pgcq$8`jXEjYE@pkJNks6>{9GmtMXv-4(6&xj$n zm?1MP*jy*${4h*yg*fN_8o3_9K79_j;lAfd$c{Un=T^w1j<-tAD>M8%FkGMMrcqB; z%#SmwV9hXmMu5NO8(2n(m7tbsca$l*kK-4aN%A^Qbk37^V7%kZCO;P0C=v0`4{?)K&4R2@DPxSl~< zJsFI2Xe*hl2aS&ID%yNTn=jEASejQA<4VT3QerUB+|Fi-`%C9a%(CKj zEu*nQp?EPUC%4FgtAJ@r$tUhG8C^|Z8Z%5PV~$4+0maS*u`Pq@z|$H$Edmk)R{rg% zZ~f8fsMC94W2Uw^w;;w*A~(?DM-;Aw+jS1;&Q5$HK?}f}|S+0ZdqIP{F5{2hMf?lvhu7nvW#Y?;r<`)@Y7hY_9 z7UbX%+=PUdo5j`KurpkbY!aQ$j$O+;Jv&A`WgH5l$bNyfpXSf1$po5z)|`TBi?aE& zIvc7DmTt~jp))#j^W>e&qgmDkQdTcKA0_ci`!?WQ>;iz~?}owriGJ$I8YX1g8*SPP zZGxLB6GY<$ZK6wzf3uB$QJmMsHt8*uN$psZk~jN*&9t}Lw7+HAB7bFSDt`^;ca;QO zt1t1bJQ+&ry3q0=*ELXUs8V!yh%*itfUI8r|iVSim*9%iV*S({X%))3bZju1CuEmLL@;)sKUEw@rTa zJ@H0h-QZ0K$CKX~N0pBRpKTXNaR!R+<ZxpyCyaBFXq)*qjcVH@oaSRdWZbX!^)2_+6!aLs5 zd{okV;UnTI&EE^$5-x=67wJ=)cPdRHhNSr$OY>Pt?}g8Zt84J51%?F?Tv!m{S83j* zG>NEKgR|`0fX@>w%_Wi^cRTUy!oAr!v52W1Q$3SxrGA!L!740QPy9ASM zdmjT0zEM3XxR9nn%;o*cT<)(*{xTz|+QmR~FLIIOzFT^rD)uXJYz9hfEtfo(_Bs=I zr3b6hy&9)upriwL9}@jBc$aUGTdqqFRV9Co@l+HHR8c%!743CKQ&BKbM1frXP@PM8 zY)Om$aFT5gZzEN7ci=67Tf#Tt`bGM*-tW_TCt^^&=bR(awoYcfe~K)*j{1;^VJ8Ns zs|SIFj}g%BhwlT??iM+e1oyJXy$8gA{|Pz04}ODJGA7lzMUDcQ;C^5f4jv$A&ccAO zj;xB6#Dl=LPMu%A$4Hx=Q*4<&1!eZ{PsB}yAB$@qLXz+!fpHBOF0KLNSIhW-mXQdv z5D}C8oHlr;TH4=AdN2H|xOk68T)f94F7}K6ra(IUy8?drwE*V#%>FBZTf#5l`bGLQ z`v*09BFv-AUiBp3;bhT|yi?7E=>`(UjuIXVxeU_Kad6Dk5f1q~jd6nY5k)py-6BV1 z-FK4Jk9^6_3myaQyu3f<2af~B>(L-pmr7@brwaF@F0hZqD#`{=Ak?myUKTB(a>b-q)C^ZO&MXJ!c}0SmYI+WD#-UAEFQ#-%WlBsJgDVA*M|5G+?Vjscs~4#iMuK zNFXmfU@deOq87e~IGSV;A&)(TBfy`>7e#(RK>VnRc^K@|JgNH^NCg+)iGK!}^w7K& zUghLjVA`89!Et&)nk+keVodr3191-TTUAQ*2wYz1UyFp_f;urn_fyj3(8zCaR>N-ry)V(gkGu><9Hyu2U>AQzUIT;L3|Ev@s z%_mVMi&5Iv>0HLSS#u4tnwt)uM6zybTb_%hASKnkA$+-RYC*Z+MIcaJl=R4ySppw6 z#9;cymPBTOdTH(jWu(i?dr@^bhIj?O zu2T@^2d@Ie=QZ_hC}r?)1bDQ#6b898*W}}@FwUawy8Qb;z5HV_VP_`uhax#N7ML7zytojS-rZy#6aC& zdI>sik|wy(F>aW=<8=;X?#}+fb;iUm+ZW!l<$=ESt-Tx>TMxLw`5+lBRAxhm9wzrE z-Pzbt943n$H+Y*AxbEW{yofJ<LdyV(`c>As5L}*1dB{;=C;Gs*WpgIK|D;jPOw8@!d1@0MsAAzG&Q z4+tDLD!>4TQLx#p1hN{8Lv_bp3^h`3)MZ=EJ0Nxh5n&_PTPhp>OA*VFxe;v)**g96 z93S0!7#{IuEPZNMKs;NG9>}=ZvoB!S5qL^r0kC}|SYY7I@;KUKoD<65HFS$35$MUr zYD%|PcQ%rEW-=()MUXSy!u9|{ril(Pme{tEFgyroIv~x%6w!=z+t?MXC+Dr?f$v|k zE1xH_7b^pn(rk?#_}&2sPECF68C3iRre_|+D;3r-L8f27)Q`7xOP#E_6iR3g$JrHD z)B4;xCF#qmMvg(`Y)oXDg1x;L+>h&#c;*4W!JlQ%e>KIGzmpW%iE$qr)h>T-v)Kw6 zX%7hYs|Sc#(ZN^Dehc#?)d_-kQKL4-djPvNhItsWk$nRkRL`!Ec$`v`489c7g0W~kr+n-<4f(?uLt6yO;o^0uA1)RA<{|x zHZV(lD@6qpeXp&-ITb;_MLJKOT-nC$p3At&%F#;Mri>2KsNCrFD<3eXY$^XjHXkY! zuq`2Co3@6ftV_Gcv}7r^ilGOv)km+hB@#xA;bYS}Z%uW&?6;9=>v9WHT|z#s5GZ3? zIc_%(W{2Q;=Q7&ztlSLdxrd$Gmf`m#%l$F%PSwKl{>;)<>8ZiH5YRSggg{kU)^TPW zt@}{;PG~FoQt}P-XOSn=TB7*|I$e1KodC~2CEPQQBbvN{F8=5Zbj4y1RpWX6+d#2V z8DZ@F0~?q`+24li!0gEwVoA!r2+MaVcYyqzo zZ=jQTyn#;qkA4H4^T8j4y4u`-WZ~)K1_~K;z;-trgTC6iKnHp|4lgdhMU3RUXWnZ5 zf`nlkS#UaBuhslf37uDwZu2{$%l@#rOeUdBxpQUdulQoZ)PCS0LVd z=|~43Dc%QeBrgnlo>osNvb%RtL_>ve2waGv|2`W8b=I1M7dYveM`Gj0;ixCOxl_q^2Y?PBq+G(0=oB6BCYc=(ozo{4P zMR}bc)7~7ke-y8uf)8#$Dz7;-023XB2BkuuUDZGD)5_x!(XA3l!4s0}vZX+XMG!Ku#cf5}V zUso}HaalI=gW=VkpMRot;7P+jv$|iCQIQ+)nc#JfiugXI`2i7vwL!dxw<9AA0={R! zMhLJ2%(K-S@Oapn*=eTsZq$m-dV59t*>%pbpvgbCIEsADBIp*`G=s<3 zn)ZtI&c>j5HRV`15Y^l6;TBo&Icupc_$3i-!JpOl1st=#G}2ac0NlFjod@3C!N850 zbsD;&^M_@fYoNHkKm;wJ}bpiZ(i;+1|%Mp7jE$nbh>8!fVhh36 z;Y-eA=STYw^;jY}&b4eOakb^$(n_qdxVEIl)@7{fn2`~%y@x|uhkB%(<|7WWK(g;I z>OB&}R3GcUcOIefgeF|)&FZ5#dpY3tQ7pX+7|IOAuAJ?be|9=hyJJ}q)I%mhKvx8~ z-VIwq6}(U@+ol=Ng1PfVk`!LhSBRsXlOXvWA1K3k3?8Bb!=?Bmd!lv3-wp~S2ER-9 z4@A}P(&feOf;@W7f)>>X_R{f}`u>i{o_yFr&zbCph4_gFPd@Y@tS8Qd>Ky6>*P$LF zod9PhhGb;$GmoQ(5JL)v+5r^SSSM(j${i;CYi%vys3YIUFG=)10?|rakw((TZ$|Vk zuEg=<5WSyQ;`l9zs2-E+Ma=6dGZxel7_EmEl{yhy--mIR;C&cO6GOib!*~)I@54-z z9PmDj06Q3ub-NCdOGx}ajNoV0z+X@Ue@6}c2Q~2dmxj)Fjlp>6lT*NWQlD%Fysmqx@S%`(W+YC}U9t6*@E2BLHRvCaxt>YV@1f38q5 zFU3MmE@rJJRTQpn8kNK0yab1Y1 zd8dx4d8bZN%eQ1ohrvk6OadFoo8Po)ZZ@mX$8WUluEju2$g)o7@j4)7*=Aq+_QJI# zuV^tqf?>Dh8=-pO3)hjn(bsj&Ah>mbi_1(pY+p=FmnrBvWY5njMl5zb^Mm*GyYo-7Q#?V$*Y;?h<)Xfz6 zPE8-#?}WMl4W>&db5D_L7XE?D^?>xmkO+737=iVA5$9f>M!IRyHPhx9RDBl((s~+; z5Kbpq*1rJL%r=bd1>2GW_q%l5x<$&2W|Js$52Hk7)^x$oH5t;iIlmRoI6id)Yo0~M z-M;}&WpHan8{Gsk;x@|orBxFhX$s&0->@U;2|5Gi1idu1D%wOw+eF5G2C6EAjP(oj zR<^ETmR3f|Jp^tKly$=O*Z@-Dj7UcGvwa9+n!5TWW5{Znoa{h$b`QKKRoDS}lo93d zUodCgOI!}}xK(6}dVy^1kgt?{rNnw%O)+*S9pAhXYhvCX8r-%nST@bZJ zK~}V_MZIsqCcJM0l&kksLO&(+80w~PLqhxrb%~ICf4uK!fI6|)uqhg;*-VQuXbGYnE2GK!pJ#^+5*yAL%RmJ1d;1b%t@1 zMfRczavDA+>u^BXQN+ye%~klZ&PnX?PES_TOsyXtD{?HXb2f)O_*Y|`af?i0XGwh? z_ur6gH&t_Kr8 zYtXzaZcjLxk^!QnQ%A&VElAel=_i-S+QU<4GNF;98$alT5?#hVY5BUCk_ z(Ygi8vZ+1L-Q;8TAy`bJX;PsyX~q*GzWfG05Gt&U1d)O-)PpQQY6DufCF46U8Rn0l zxc&B5?~))BF00H zXv9985Db(oiiblT&0SO*2U-~*uf1Ak;9@v#1Ih3{o1= z&D@+BJb6>KcudquthXhrgEU_2q>%Wp6o2$k&tIiMNaQQ13L3-=Dc>fLqkNm`#_}Z^@)c|>-}^pFert23Ec?nP6GOisT!U2u2f~l3aUaj#KiI?!&bhqQ-FN=t279Sd<9iOgP0-ZI|k$^-{t7W@+BJb6>Kcu2SvWK zK`WB)@{CtxY+rtZu>e)R<0Oa_e4!qU2bh%aTXX09)XFy|6Rdz(k$htk!HPsD<@=Dx z_u&fpk`F820+`J7^H*gVW~6l^@)cBtY>0{FONOm{e}#ZtKYx`5 zA(5}3DrgWhq92ezN>>A<+}#mSiVF4pb1X_`N*JQjR zW8?i4{07tTqw-x#f=Iy^>H+o|E9Cp=--lgm*uf1ASCh?R0R!UhLrExAV>MGLpPQ$ z(U7lTWBEQV@;wH$BKfY%ctytcCNML_@xUjph5K$oF{Aisbt<#w#+mFTcS?09C#lOAsmeLOs|7 zU{byp44e9rm2XTY*c7oM`NkxInM5b$`;^G{n+o}o4=dke!DObNzbYF-B40sO$cC6$ zzGT?S_c#RP`uVFg2#I_JRY8N8YWd<^YY(iZlIL0%Vj+feEuwj@MOV(X2=H7>!aZ}g ztk<@+{^(pwu@3i>7|-kf4YDoUNo@wsH6hNmB)sBW%O;M_wVsCjcy96rcGXGbv;1T`~k+UAN}suCV0e^>E*}S$2QD z;8(E!tHc~h6UocVvf%#0Ye?`6WT`ybosxzVqP(r$)r8k0gltvkJvC%x8^V?}Z0GYS zyV=wQl-+F7FT?fF;!v#@wwf4Qv1F5W3%r*N8g@f!;ZSxs<`nQ=>Q3xs;H$LQ%UF|p z8JnZ&wD&R4ynxlYS&W}>A6A34ZP?hEd6w=?;0-UFlR@lezQ_TO1*XiE0NZ=8cE+l* z(_9Q6c6bg1x3rn5b1p@|vm870v|^=lfp$w2sCN^{$QEif>`l+DQN3=Fj0Ib;uVWXV z`+a6hcF3)0m6V*3JU=8al5^hI4k1@feRB=iP@7zB z=dRNZUKcTavg6Dtmq-}L$K1@`763rJVm7m~MWR|L+qqD?{kPa?kBqwfKJ z3umB2bNxO>mK4H2_N>f)6Hq(XlP$-Y4*!P`7kcGUY-oHNj^VB5Mu||4f0M@F!1dB% z`xqra{-i;>$_Pc<%4wU5ZRNUX%boOZuKum*A2W5bgU@w2i&2)smuO?SGWIpntEE}l z*0HY8i5JQWTcfemt0`aaH4suJw%h4lRQ8(}(N{_vfqZ1;w?5zj|7Xazuq{Zm_c72c zLA2oK@HcdEt2-BL2e=8J%!Y9kE@q{I?cvw{AvREH`LteeDE6|tc0pNfjM9-1R$K58 zMBL=J;?vU880I%-dbqC&E2gX%5V=K)*bG3tLa;H@wiBP1ZuIet^dq>Q z6CjtSTo=#EN9N2d`tr?9b=k)J$hu$$FeWzlveQ;Tq`U;-v&%aosIjgwRob|!{2RsP zXP|kBV%nrC+Qy8gW(W+7FOq_f!@)<-A+)+0E{qMd?v{=^thLFybHIL6tI{Sb*a?i4 zHm%BS6Xv!*$hP+}urLMnY}#2foveoXt}Q9H`d|`$4UG-i#)e>LlA2jXYEzQZGc*S3 z)+W!;3ax0cO~d`h;lVBxPrW`la{W@83N+S>-7JtY?4Tp8j}2KK_%xwWaGd-dTo#vq z#Lvb5?SXp%|7ilxKjK^PvlrYsa7mee+=J~_5Ob#3@_vJcYRys0?K^JAVt*D7++xg& z^xE&MXr$>Go-fe%IL^S|heO4re>Cz+`p+B`{>h;9 z69&bfKFGi2ApgFD{6{4Hhe>Ugeu3(9dryi&0@>|uf*pSdo?pZmLj4KdVGM?$g{XAg zq}UH3k}hKn)L3OBoi>Bd;^n(GX6UY;9wm-KO9({p@bXG_|;%Y?BFXN@N~ z3yA&u<2oPgkMLAsHwZHk>nRPJSq|gVl!^qdD&h$)UL5-y(pW9+K2&x2WV=YAuuu8& z4S11RWGNw(()Os;2!jbSlh2CDs1bi*ckmesMb^V=ZjrEgwo}_bb#l(lFL7Sl9dhG) zlsiLcZtxwrgH7)q6lVFReX{PSAl=JI*PQp{ik4i~l6zVshN-^Q!#1cndggg#$>TBU z<1;+4Pt*GC!X1V}atC=p7HrwDx5?5OngTIDcuqV>eepime zM+d0ke0Lu48!=bi$q55t<5nGXhpZ`$8_05Dj5m(GF`DeBNR|usBEbyiMb2%(A`BFq z+r-{8*O*1EzJP-GnBS=P>d>0eq19f?QC+xav&d+-;(QhY(EG#3IIG;G!>5bU_2K7q zh^1b^f}wRRVin;$j`ii4XSBlRU_9FsHG=VMFSdIx+?`G;+!GFDI|f!2{TQ!bWuH{N zadF(Vf`fU9jb|@r*NLcBQFd(${Jb2^t|Xe@jM`EvxPx^kbyDXBdqY6=Zd-xf0Tu8A zoF?4pP6b~8GAm;O3w%*6a=saXY?^$(ZI8AY`?FH;3=;Y6;h|nfX&=A?{x72z*51cJ z^D<^d=m@ByRPbk#T#?n7&E%jqWK+S-;3aqgc&UI!7}sM$Lr-qZ%r~zvDQYwo+=W<$ z*U4HA3GupBV{X8I3;x3Ms8OYo4!$QDg8|YXwZ|x!VW72UTZ2((U>%zO=ZK*B=QD0& z-aO6Bb&#Y0TswA+8P`r)YsZs%>4++cwNj7w2P*5N0V=js2|7hOA)|E0&G9j?gox52XuSDZ zmQfDmVtM#}e*<0)8zsN6%tW_a3x!iQy1DA{hHh@H2M7D01!eHzkyxDRK*UM?GlQ4y zICz%jiK_}$FVHtuUx%D+a;-nbkhZi_av$Uk_8YSTLNJR>K%n2d5&D5#J+wyQe(zbwR$^Rp9-2_^y@S!7eO8J} z6CdAxfGviSam{@IdstexMEjn^waZpnIB~2VgL|~>G;hXzIsW8XRj)M|^d{v!H~0!Q zUuQqazA}<$?Dss2d5$P@PQ0PTR z&ExUj*^r(cT(&I_5>*UUHB{lS&h>DA=V25db4wxW`D)e6*%<@M7wCSi(^o;Rxnvtn zxmmQ)S}n9LBlG%vdyb9|Ttlp>wza8=q(;rChl8Q@4ag=u8X>HA+UR`)_idETz%)P~ zTEta}U!i=_5H$zzfIlZbbU^8gkjw4_a?qOia-{Oxx}a5o;;i*tk`L67GBC{nqI;F@WE1+d23I zN>*K_bv=x-j@z0E7J^mRm$_98&*H*aU61=N&mrs;8g#^H(vKWJL^%=hGr8jF`|Gy8#BR~DXhN=B&;d|wOmgX_$8>W|UB;o^1QNvB8f zFPs_H=C@Mcdk59i=~Uw06&&VzeDEFnZ)qcl4I-ToRv@Kv8_mj{?{`I(#P*u8&aBp8 zfACj2D$!7nl!kf~8|ncFYwu&A!Bx6R1{7=kOlnP&f#Dz#_2@In{M>#R|js zgMrHgd7?7iw7-#VlTk+GR~AvLyqu9sPM)BY6~A;ev$8sg%JFFMQ23?Dk%8t-h%iz# zydZ~c<{Q`tO{y2QGizQ#(Ia_{fi2oq;NX4oTA|0z0k%qyrD*Xz0o5`vdL+6;PDI|6 zMuTRBaE4Ze6w$i*S_{5C5F7$7&7t^VPmgudwCbd39o_Bz?6KARv#>`J-DD$Y^`l~a z^d$RsC&vlwkN2@T{>g5J>++4ZJ%+oey?yMNZ=mxCRQ`_3uaO4ZW0I6K=!ZV*nZK|t z38KqUlRs`s zfahj$`4us~ArUEo+IV4K(JQRSB_vm9or7!~e_Nh8t%}!sSEO&F{~xQuJB~72%?D#Bf#bdy~syS}(FK|;>fS-_94a44RTQCfb$Tf{vny{ZY zIlDm@=AZ6`9>z}Snmi(v&a7g49@!40pEA(Ag?<`b&TTf=q?zQbsw8K}Nf=m>B+Df8 zs*;=&Ct+Ykk_?laU6thAI0*wQl6XvVPF0fg;v@`=la$V_ihDle?kC%c3^Wr^?$UWx z(Jo*#-F0MOyz9tzqx%8cwrgArho91k_iC11|y8H90vR6mc~vs1KA zuhb5r^QS4!ZSUzE&v9W#r2h!AP@N+$lZ>yICKjSYM;E z>!fr$$|JJW{$2WArC;mp=5n2t?o5XB{hePT&yT@pE6y3XIH}X=P;@onO6EvcR83uc z^l(aV%Xh6FahvH~AZjccnM@@Jplj?^_-~3$+yegR#AzPE56ZVaG!fp_d4Lq zFI`YY{UTEDl`({YW+@_@cklycJtzR*LSI7b3rIQHJRvM``me6JVpL z2U-ozKLn(1f=N3gY)Xd^eV_?D8PYoC;I%2=MNu^7<=X;Hb%o2pPg8wkePf*{w&A5< z3foQWKaKSR{uPlhw4+eRZ_MFDgi}9=V11dNe4Fk|X~h94TmFqX=?zwKuw`h>Nrw>* zQNYcV549cM@S@5Es{9Rp)({JGAv&UcRt zlcR)auKL`LC)DreqX5wNu3|-a;gxW>_m_8$N7_%(ZshnW@0E9GSG`0}o$4~DAGGY+ zRL}_wxT!t5e@;)EEWGNoS{-H>PF5P0a{1Vl(oOAcC&o{+c{DYa5lp*iW2%6%_;Yi? zcbKVVS(2lT_6VeR)^bK}>a4OahRSH4^iSZga03d!ebQ^ex*NQOqG2t2W4T&53Ps~9 z-^e~1ls;p+n{2x4kS^M%DS|iKA=W`W?GSdXyq*%0^Dh}IZ;o=nyYmdnNk3>xaXjN5 zmi^rK1J(TiYh#qh#mj_S9;)@#iL>)I(}c`BG3H}qptaRBi%-rrxlu4Y-E3NjT4LAK zUU)nwZhU<2H*{0s3F1wKC(=!aCy6&5o(z}eht9_Yw69bMDpw~R$$(=T)W*Ae` zWpcWbocey{y~)aZd95HMdZJvQTDI&<+JJNaoLf?#b1bsw6Td?HHSeLTVta=gtiINu z2bX#HQ;OK8tuxiUjlDlN2KxjDBJ9tkQ#uuF>RAV$q>-m3@?C6gzC0}fTLA2Dj0HoY zAf~c*4~WFm8NTVnb+oVD^f{@jiWfoC%rAnu_G9ts?iTxC#5#Q|F5ApaXFQxUJf->~3b3HDSu{3ghv#+0!JmGK}A>Qro zJDm{Uz3DrH5MQb3JCo4on8NzbB2@ntpm~J42%QZmYWve%Ijr!^N{|MS_KuHLcUJ^4 zJ@K$RM_b1FZz?RgKj&q~Nv=;7#DMDTj#WVT@ zh_z0bfN&j$HUZ0#hM;lmx!Q3Em@B$G>uW_9$8uU+jEiF(Y~?s#fsevbU>7!TF)u^3 z#k#H|G0kP9E!H8EPM(9qm8TyBjv zE#sGNkYS#>RYz$7-~s=4n?fVOu{(Bg7}&Usc^^YoumqT<5nZ!cgc0(Yil)ZK;oZB! z?{!ZkcA3UTdFl}s06Sw=>t3J82KX@i1p~0yg2@@}BxFMU!I!h~uQ^61ucU2c)g-D`T zp5+}%WpukrMs@EG^cfk~zY&TtC6RJPkc&q-4HCn!!lT$6uESp2UHT}H&MooyYX@2y z)7e)+lEz+~S`=*$2IAL4pnpiWN}H(^iqiEQs$hRXxez*1xb)3W;_wm9#R&f^!}XkV zf7bMLG;zGDbpgtj5W((9mZ+=3Z{VM6%Z@ij5n10!l}3+Gc#cE3bSRbJPVh$UI1$k{ zVJI=+nfQOx5RbJK&2Fbz@DQFeC* zA{vyF?BY%0_%mA-%x6+&ZE}z2n2$yuMkCfbSjJfZs^7+ZpI2t{f62F3qVA#d=jJ#d z5#ihCX*uFRuMy!-LB4L0y>L(hyrms8E27S*s4<;O>xg*&KW&$5vNDtH^1I4*IV}!v zls7^D9?R^1*)IQYsx}jRC!JM!U(U&6Z2ca*#cFKf_lS_!ULf_7Xfo2{r9u0m3?#$3 zWg3Tj!Lks6uA#VtpnkW=5jXe(8XHa|sXN$beK{iwu}qT0D3ItLkJQ+VI6Zy78?Xd5fK8Xl5RivE_F!$4p(;SsiWUUo1~b#x!gIFM&Wx zHzm}R8%0gIV^cJN5CcYg9|O$?P*OaNd~;RgJLAX+3~#+5EK82WHvLa*9vPQFs6 z^vWYan>CdWn>Fl5@K0X(6h&T|R1@qKbmp_PmQ>Tix>nCp4tEZCJ=z!f-07MSz0EfQ zuOr~zGh`dLuJTA7&$$6tsij-0M0giP*eCL4p!ox22c_GKJF`5KTDr9=<=srFCcz9e ze`LzSRn&MqKRM>#=N74Vv>t4&U?OjD46@Y*uBhNzB&Ocg;EYCl`8Ues$w5or@4W-F zglXm(?Z{!h@6dBBQp*XBoY>T7%@MrdUb!VDbv&dB>C74~4~(AQ)*hV-yU z@wqdZ`r(^8{r7Nu!MzshF*;D_=t;F0cX&8*nCZwGTPo|)!P|_(8?pTUEdqKw-Uf6D zp)Nv~5?XPLGpp}1Lh_Q#<$$o)B8qb7qSAbL^}WBHkYe#?xR_%MBy3ZQi`OeV!Zd3z*L=F6?c%IWh#{tfOeLIS*S3JkSriwG zO0kdFzxSh|2_ezUUibZSCSp*4y=hODp7IP4>Eg_uFA~W&FC1u~#4+Cp#$I8{a6=yf zweZ{*-i(FAA3jx4&}sSxtfUg z6*mHoe{SJ;Fdp8_Hj~^2;ltArP z4}nX+$X_*jZ!g6aieWW^g z6~Yh&IIH(&PC_)ReZF0-eP+yEpr%_znXI`Jo{Ry%e!IvVx~ZH2ZS71cscy>iY@Ru} zC`a!h5D%^qKE^C1-;;&IW^)Q$Im*cBYy7f`%OIKhc~%DbtmYP8M23ay@WXb@Gia_u zJka(`6S%;hNNFL&6P@fn40ynQbW(>x zPjD(mtpF?}zql0LiL95ir8H$HUo8ku1M3O-y$J54+Gs4vtqyRhVv9appk-{3yOloa zu#*nWH$Q=3Ye$JiG8!{=jI)GgM|!n2gM9}3R***749tDV5QWtB)JjhKCeeCojbN7#$i^F57X6marDp1*XSBxdN7#*+#BzqX0I*dlSIpKgR?*z z%|oNwnf?qUn42^ABgh`S>Q{g(3=s63uP2C1Oe&80qz=*FU9^DRPKnA_?_7Ls)IUc% z?|~!!x$>T3_seB4=)zHmUDtD<)d;~_G4{F`I}KR5s$gTS$zzla<8Y?3K_shp+b1Ag zh4C?j5sk;Lh$|_BM9xVX@~PziDGeDzFu&Z&d4_YJ0AK*P-$gh96n9&M6F_mdM>qi# zcSnR1KybR|0o{9|Fab3Fy%A0T#oZU-1OSdUtB-9eHVltp%qp*=Xd|!}!udCDg5ED% zylNh!+C+S|s_#zFDe-5F4Z`rNLFN<8KW1C}^xefs{23M9Puum9_O@}WUSd8i$GIE9 zQUB-Mznx|Y-8B!(gYW?aTkt`Gg?Z?j;UWRgCisGY=MY>h;JE}}6p$ZG2$v94Iq4Yn zGiOuo65;RvLmqg8mHn&oGsXPKf_V*SgwBIw-cb1Lp<}+Kq31B>QiabY{I0^65tfOI zX9`|Gzuar=;^Mp6{7s`>&S>8$d_J5?mbL~<;lmV-7hEuO=t2!WZ|Km6H1tA*nvd}V zIu}>Pl!AYzp;rtY`n87scIePQYv?6IhkmJ{mku5J7Y*f5YQ9%^KH+~Td?n$3DSRzq zd=ZePxEgSUtmL@SyreO&VN85XhcPcA{3(8-_KSXaKg1$7yf_AQau~~TpHM4HcJy!} zAYam;E^WR5nF4N2%X{QZh=Z0_NRI6kw0=)o96tm=3g8}zZ~`dq(FiAi;vS1|0w|7s zsS|6N=)PsSgOUGh+#)-eC`StFw8mLp{he-6D9C!Kf(8?k26<(>AiTd@Bq)zeHX|uL z1zcXILd1A%do~`yay)vH@z@G&Jc8wT^hEI>m&X~6bOk{Ez&#P+1W??Q5l#TbJr&^u zP~6iIP5{L{6X66<+_Mo*0L48Q;RI0J^ASz}#r;3x-UB|a;)oxAe(&yG(aHAdAV3H)gdRd@F`XoYfJ0~@ga9Fs&}+b< zJ79VVEg=5i@65g{Ith~BzsVop?wg&R?YpzHv$LGVM28%rR$t~c6cqX9lqO{nkK%G} z6WjrG5Si(KOP=?7geS=}$R@$8#>Cp@7Vod%P45%l^xAZjqtbQB+~$=~D5-#k$) zW}tbWXn(6gdxB_}f=+8c1I-6OGf-n>q5ock{S>h;6KnVkHs73V5BF2ke^=@ zzqW32g;j+_||F^=F?U6M?BRNFM_lGDwwgJjqN2W*5QA z*XLvxS|Vabu{o|=w>%&6jfwkE-jPT*|0n{WZ!H>F<=u|C3S|m7x#p*GTcHmu$@VeT z#Z7%&wvY9GB4*;CZ@E)_6r!3tg`yGPC<{1`7oR{s%0#l6Xx9u7;n9g+XyY9;xwF;N z0(fnK)1lIhlr|lOfe(4@83sOXXZ6~B=Z4Otk}g}j^9H0`qfkaq9v;#+HgO1F+VKiM z-ln1EVq_2ZeM*76-3U-B-m>zf*uk^UMH=yz&Ep$xF`GPXyk+Vim#;aS11jE<+4{=S zy|-hPS7gcoiQXxSvGmI=UY`v?8X}Gw_|<*AhY7}?F5mXG-tz=X zgkJP;roG03x$pO$Dd5ZB%6{BiC&;f~f5~UPTxZ*3vTM~RHEHAn0BUF`V0#77GKK;m zxF7~iVJKiP1<)>s0+uL%#x4|aumWi9LIK}Z0F7EGz$QzrLIuoM3>w%_0N#~jvb3n7 zfGrh3lN$=a<8Z{F4GjfA&_)1_k0=1_G#PB< zlEKRV2I)mb3SP19Yu0^9U3s@FAd|_o`G{8_To*F*mc@L>y5tC%QF4`ZKe8@aYJQV9 zE)gMf43VFy$M6ftA@U=|53-2-0J8#%==LMQ53+v3pHc3*5$cJ5Zg4ebF*(7@=C6Ub z-7U|J#iuGJ^C#gS@L$;$)7`Z)nKRIQ%w_568njo5cAcOx(EOWd&(xs3Mzre%je+J9 zqCH!K_BzpiDQFBdpAzl48njhJ`<0+E&_IaPQT#^@+P{eQYe8e6`J8Ca*Py*Yv>ODC zf#wUKng8I&)?wVa2K6^u)}@L%{0(BD4(G4~%KGvVR=VyMR(0;-+pB=WNq>k|v7B_) z)ZxS4^UBU>L>$P!0jkS$lh_&yZX86s_(Dy#-($*Rk55xTP9&ZZsRfctMcTsY@ zl5}&6!-^NatFG&>D5F)n&VK^JP`u6&r6i-4+h>B&SB@!Wn- zc}p72C1@$(eoDJ*?k%APGo7-CH<4?g9*=Y?Pz$R8rW}^3lvbDCOM)|TkH7N!EAD~@ z{7+d8ccL1Mj|vF>0H4)jUN4kdRtbbLm&-ZAMCYGhshskr@zw&1uoRG!3Ma9=b*z}y zTHZP?#}$2fKN(Ec?SgFaAMm;+#u^{M0^4NmtNP`0tSp{VK(`UhGY^@uHa?W~{0emv z^4jjQ?_lw)6h-@U}a1Z1yNS z7CQ={!+Qpl8uM?Bu(&)kVR27K3$VBY;*QJZUgh`r+$wRKb9=nT;np^fOO7 zH{#6q6C{Pjb1cdxcVk{)Aou3tL7H=2(~LmZjAxf%o$;=0+WC#-h;!JN>q5pm4WH^Q zzFSe+ccipmv9y1Z(lXG*QT-wS%Zd(IbGsXSRwhDk@x2-%10-^f5MiK6R1+BwBF`eG zl}wYxQ9$rwsB1PZyywU{_y8a@VtnPDxw6+Od;p?;AAhZJI6SlQ5*y;rNVE8UO@6*+ zeolo&f!2Nonk4dr-bDKZBz9LGRla#ZD`^=W>Tn+R@p?i(TLohBb;Wx-Qen}pTA$OV9S`9jl1ij&IRKX zEeJz)aqbzDJ4j2KtCR1LR*xHR5#+=loyTy7L%0{{X!^iubSdE)eg7^ezC~U9&Yl zLSrEa+s)$aVBPuF-PO8_)a@G)(iact^WCxlyvaBj)2%==*Wt%CJJGuUTujdbpt**W ziyu`?n;*gtIpAE3_lvQNwDvR5%!24nIKrN0iN=f=*!SvCaoZ|<=Hfxf zIVi}^{1h@MZg5|yhpY?ue-NRxfD5(C1zh83zRlr4)gozCnIiyz@`)HZN>FXw*a(H43J|0wwP!5WlQAcs6ADfhH}^CZ2=@H=Kka+w;1 zAFMPf)E&fj4`Zeh>|9ef3^#|}M&@VS$vp(wlP2)Yq43HYz6KOR53BrG9Da=Fs>}H_ z=Ijoae{S*PntlaOyem#WvBL=N9o%6*9EY)^H-o%jsOeZ za1b?~(f=3Jh*n9>Y9LGxdHJff*%hv=hfJ7P{7+4tq{?-|K&ca)A)L^Ts(OUW=xFV) zW#;@n1chTeF5TPaMP$QhKjj5_ore=Tb|~*&1C6o<+oA;>9!0s4IE9P`#}@2Nv}9i6J->mJc?4Z_A}6A5XBn8KU&%lw@XAxhUUt8_65j~ ztEsbk08}8(9RZ-Ug(2GQ3f)+tw4PA`<+X3^1MgQ>Qf2*EEu52UwQ%g7>on)ok>Q+E z=WGFrYogw~Xp^X>feRDW9}^&fNH;c^=rO+nGv32f0XLGX&ta$7Xz~bdhml3m3o=Xi zC38xqb2nL2CXgnHosGDr4dL*gL%&h~x%96`zbtZoa2^5Om@0I&^MmtC06(~Z{%IQX zr}S^6{tM~fMEyUbzf1iW(LY`Nm(verc;?{e^v_WL#q`fq|0VR#R{y2+Z>j!Y(7(O< zucH3|`n}+5`YBM$KgK>x2GJLd0FfK%60HE!hcH_%t|GoD8JR}(6xVQt^aD8_9|M4= z8!)Og=~|@#la;U$Kvwd8a1GOk?rcYXO|q9{MYaAZZ`c~~C!+o%qOXsH>Iw)wUJ%@&R~L%yMSIrtgrr`Un|QBwrW z^RvO@Tz&S%Pn~O4FhST%g)?m5G)_ZLm`0;>Khl_lG|CECNnObEPq5OTB;Br)frRbQ zQ}{^5gR?*#cF=+|;3mxXkPY>V{TjKwAtIAT)<|gFS6A(>HozjeIatOuN^YHJyd`3p zEr7INIRZspNd=I$f$>$lCgkC1n*^X%rO+1xL4WkFm9c2-(rqN!Aui+1+LQ&(9OlcFMeG! zL5-e^3F;Z-tF@nj!L#tT`5rc2$AUz}oC-bCo>_<-F+Zet6VfqbLAj>`Uf{95y36y< z7l;;4&f&$gyJ?G0TL$X5h|97@RNjFB?W~1z=&s6HML78o=Hdj_2 zk^ndH7#3(%j9!GgOUkHKUe_FtY}op`p!h1rikp8Pg_}5fTrdt>_p$kRAdG22O8rd& z0PbqHRDmtF0*fPR>ZyVCL}l#Oeg=v~d3~dn>>K|oG#RbzHQN;hTp1=_JgrcBw34c9 zyMzj(%`tS7WjcE%2)YQsC^&M1e_}@@{di*IfQ$aFym>R;W#`??b=e-d<4%ge%qM5z zWNsd2Hc^eQ3&(FP_aI@*v4VsO%(2|65EQ=qlDpv^Pi4?KXB93T@B%*tmQVZuaVeUX zIWr`q`(b88Lu<%ej(6TieYUe7iqYnWMB5emrf!>q#H%L-kXD}EH{P_)(;G%{NGPE z?BsF1hynZY0=e6CwF!P}tM^`K|8>+3nd?j+vHxYE|Dh3MUK+t@ zkfSs^r=gE@aLh%*{;>{<10@q)MoHxk!AE^UKH74Z;6r#3hPCBBV7ckdM8iy{qq&n- z+xnT9puP!C_YH2DCUcjEaJ}`8;iT}ZLwLeg-dKg-62eQZIWC_2#Y{_FEUG96uIlqw zpdE4S5SQZ?d(~w#j$jRFj_2+Q2`cMn1J*#6MfZcFz{+frSRrljnh1Wf6j3;38!`bQ ztHKa-P${X35&VDDcCw!AKVr=Hw2dgU;M%_)+9=oj1ZFhKeDK;{S>}_SI6Al+Sr$GP z%Yg75vvZNRFv_Sw+0WI3aJk2G3UZ2%L*1$;*34HhQxGv4c!LU??Tsz!d6aHXd6327 zS{qh_j)F_M9Av(s%P@KSscEk0k|nUZl=Q<(cl*p4l7Z59A;M^s9mnY5xsP~|U%=ua zOgsvU62>#Bjqp8%^IIQ5FgSk=rb;=g01<+4TbK^CXs<@11)m__oW~5PPN6xAex#E? zkfbdhO^4|1PvdEBxFVKPZ}4|4+7LCJiKq$|ue>+{@G??l-jz1*ACi|`pJQw(&URhg z<6&bc0bET1zBNB2>!U>T17=LY!Zul6GAXvFr-Bx3TMo)W5Q6{^U`FkhokGhq*pls` z5DDGAq)*ul9Y5~Xkv-_4{gW%LT9Xc5gul*>1uwz1yQ|eh?XJ+zq_4)DmUTkjCn>zo z25ghyE%d1TZ15SNayJ}5_!Bw7EP7;}AKXK~@aW`AV^A=9KgkE$1imwRGwO(KG{cpP zL#}A7!;Ufes~*IdhBPeiDCcZ=3J5ci+=$YG@Gc~84k^gDN7!oN&e9I;8g2+$`IfoL z=cmwXRjUv@{UiYMt6}QS+=D$cn~izm-J2Ph+csjn$u?d+;`x32m84vp1=4Z^h^$2- zFQYci8el}tn)nG`VI_A_)`|VstN4)XTkyXI|CF~%8?g^c8!#-G$W{>E85W)mI8uJ^{0s6bqM^4r8xc`K}E&xJ<7;Yb2*Ut zfJpb2jDTlD%$0!1-b%hM!xx?g30_AY#gI7s)WVS+OOx1w1BA&yX_5|dw-s{Nv#_+c zbO*BcMZzW4Wjn|npy|%UJ#`Q1;^nOs>+4#@u|pnxW7hN9bG3a&vVHtMI;s>&ON3@3 zs-+cm-3qMyD%R(}@FU8q;l3vBoDW)?fELa^2mGs0nEV?=S`J?_QVWC7dM1w89nUR} zMrz@1V-)-YzF|U)-rCPVA(Fy5d%6a5-7+Qv1ryJi#?3z1e&R&bR}T_m-(s164F9Gq z^ZJO&y=NBju=i|&Q|eVyN%l=-px988WIMxFOXe78T2MQvoKAw@W|1cWP|VcC>mb5A z5|4pqGSJLg_zCM!-%ILZ-ZlU(^EMWU+BcEHG!mGNCO5E)TrploIX9zB-H508FE-Ys zy&j_$By9#3$JAgkU$07Ly z?)(8{UdB&1&!w9(k(KCv5Lsi)B&Xb0E8fYri@jHw=k{{8`b9X;#ml-Ha>DJ|^Kw_t zqxB1qo=6rv`8Dq|8!}Z%E^s-&$z&zZ4TB!uJY|K9B2^e1U^%9bt zr!=Yb{tSruO|gxlO=NHRpE& zi_y>2Bpp|j45p*}S@UZUfZV_w#P0tgbE4x}aW(^vHw?~#{9?pu%?5|kaf8F)u&m%q zQcQ_Fk$4nVAHu|=u#q85JPI2X!o;Jn(IHGcfV~1kE2QJDQ6QRYowE#7Q(wh`Z7=q^z>yQ<#%SdMfCAV z&<>skaxvleP6N&i)MI|bxtx34!Z=I=ejk7J&eRwn*zZZ~dL{lM+it;kAnU?VczBfy zWWDiwkDoaW(TZuLh8b)lkS>d?ddd`YyR-cR$TyP|T4eE$?c3bBj)9wIxT+?5p zCjG8*`V5rx>*6Q_sOLY{xl{8IakfQ1_}3ij`yGw$Px0AF;*QOoC+@i1a&gCth-rC0 zM^Q;$Y^9$49LSt6biBl5&DetDMPJP^%OKJnJ;HMHoCxHZpV6+P&vmP+MG_@Tie+=C zOUWgItn!^E$Ch5%fOu^yefh0n12<_o-?sVl1s4Z*q zQ=2$vIOr*UV{)1n_Enu>TJUe8Y0>_BFWLb2tk!1Zc!kMuD0@xGxztw7gP7sO!n_ZX z!I3+s16>klpsP8ts^t-#TI}3$rj5J$kPFS)*|{kL9e`(1+Bxh`bEH4Hg>{gm-^X96 z*IfBkHH8Y5O53F?(7?L?w{~F4&+*w9v|TBdY3eFSKybI3gUquqKAy+@i9TqY2@XTfyv`uvoc2#)AU>>mW79$;UWjdx34mWaJYajj# zYElmKlQ>kyf+$Zb)Ws^_+T&ocujFyO#Ztlm+TH%cwY&YwciQWn>DwwF+-&dsZ-aF0 zJ7nyxU|%^-)&Yy!=0UHN6Dy`UNF=JP)>#X9-2M~m5X7X|Vd#SvPv(!&m}W7EMR2KImcp(g&;3sHHRPJ2X;HU5#+~|kqrzjWo5hZ+xi}iQA;uqTi4|jR% z!av~e!1$jberrDi&AObb!GFq{;ZAG~aLFS%W(MofHAjI}Y3H7n?>s%oM%WiI@y&YT zspMR?j{uQTeORrwswua41d&nVP`*;%7}ob_XF2F>C-uFSRI8W^oH)8{HL&Lg%uMh( zlBP26k8oa4bmFLiM*MUiR2BFjm|3$e#98JGpm%f5#~X@aR0-wVS}QvdkW&4P?Xft9 zhc0|hB3@zguO1KG?1#C0CD0v|TlWjQJL8UWIv>L)_}LaN1#ld)j$|G`JJ{1AmqdvYr86?bqklUWa0m{9GS<9S(*1_whsE2_p z)XVfuXDe(&UvkFgzeI$7Mitxje$%k1O%!*Q#Y+x+fuL zb!5p*JNhf)^ZuV3`~y)#2yZvK!3%&C*Q@CD9n$OP%|#ktqdcws3^W}|g%==ke8)Ib zYU0c<$6;U?M=m^S&Q~GgvZ<({a`xTe4FE-Ai(JZGNW~?15H1jS;nEFWMVMJnv&0*h zZt!{qgjX)z;N=Pk?_apVYC>#v@Jgi{yj=m|ok}-&w*taTm3U6H0wPbk2Om~Ic#F~v zJ`N$6Mc@rfBR49wGz1SS4YsB1)|1gY)N7`oL?R#XF$5WCR^rFDvR+OoPOYi-1*~?} z6l7o#FD8_xFm23Th=Gxa#$;e|gBpxoiJ{tm41{d#Ii#F-5hurMpz<7sSs(c;<>pJ2 zs5q^L(n3=DlXM&g7B{TH*o_zw$qfUG8`WU!P7GB|V<2+#EOQfOZg>=-xtUs-n=jY` z{{U7gf1>8}deGp9gBcp{FJlIRd;pn^Eo`D*0hZPv-6M)yr zFF2YcKI&yvO$2rDXCmNef)sr6b|xRAsmF)Bof)?u))JJis#Uw1{790B#xy;i^5ETN zsIK730>yQs5Sky2AF}~VnFz@reZe4j~roT;*2asn}k@91_xt+hv%CTVoeFJfyeaJ zGa=IyB*b_X92j;Zw|K~noaS((FDG=^DK;@5S0byNCv|Vv>r6jZ*E`pFz*&B%?(I&s z7bjUPy?{n}zb9vgGNFJ#rnAxEW%ixezGFcd=6GqIOtR_8u2k@YaR~EtJItj`y~QKz zok(vBzI{CrlmrATSQES6%BWMp%yw@qQR&s~7#q;fU5>Y7B*ENwZ;CAO0tv^S-CFS0 zq&v&;>8*^<8*P>GCA>Pmy-&!h(6zw!@9;gCc`W}v7)R{a(=mv`el0rfWVj%J>tlf4 z>Lwu%9d2Jl$&W|fn2p#Au3)opJqzj1C*A!l-OVcKZVdGBfTfQCIk^iS(%qkQn@M+* zL3GDC5K}q}D%y+H=LL6iM8DXM5zYGY<(i)t+%*Uqf19{>4}!J`^qxV`9)aFl4J~ep zyoMZ~PM3Q!uRN@2?Pp;5$OiWwOI8$Ztt;;xcXmP)^;ru{VtO=y;Ry z(tb{KSwqZe)))7{+Ol#KRAvJ>_IVb!KHObVw&=19qi}H?iI>_Zpx$t3n!zWTV^XMK zfo$I|+jE`*Zcgnv&qbR*3We3dw-MByGx3W2fj#H-=|JAvFP??wRWwoVPDGcGvOQ;k zzdH=P?VX|V_ZbF$>M-zYhk<`Q41Ak+hfepTVc_=;10VU`&~#=G11}B(zke9`m&3rP zzdv-k#bMy9hJkl|Ff^Uhhk@TU4E&2>;L|=Fn*O1K;q1%P&|4RBPLRX?misPQ<3yh3 zU=!?Mle+~rCjP!H=iuG$NC+W&G_K5A37p!@kRc zxR-8g?BX74Aj_a2iNzB;O|6JjgWKQ@j2VM~#4`RW4f=2{WtUF?4q<*l*^z9Z`cb!J`D z%P14FFb#}03f(hpP2C+Y)s&eIL@($>-@B?Ay-{?NHbYu_p?^gN#;gIDt4Iw_umR9i zHehuH{G~+b=9P_?F$AiOD=Z;_AXu!CC? zbm3dnyzDw6<;FV~yP%lL7p;egk3y|uXugPef(*WBS5^)BRlj%^nmH(O?r=nxkTPE+ z@C$~4KROIN`SH+nHW>z<8wP&MFz~}J7@Gbk!{E>U_t5y44+Fn@82J0cz#Bgqn*R2~ zz>gjVe(f-D_tRnM4+Fnw82D$yz~_B7H2t%Nfj>D6Jo)+1bY>0%Upx$a`7rPYhJnYw z7&_hA!@!pf1Akx`xbvT(>Guo+mv=xoum+8zlZU~-Wf=Hp!@zsK96CQo4ggmWe#0>EX9vS!#1l6-`(#GX;ph|REnw6Zq6YD*$ZmAJ!tOF-$@<6u z&g%@JD?zjevM%P-?{ZG*5Z;rs4LnP6kIny3F!m zuruDAE93Xj;@$}ENrF!P$AI+nQ()vblxM-1-3L&P-F@kD{B4H_{Il$ws(6uqH}lAw ztj3&?e+tK%$6Ixha!_g@48k-)x|lnJtnf+HyIoHxllJ+b_ zJxJK#F+xzL($&(10ZeVx%CW)+Wcr?b2@$er8e4u z6vgp19y4z}cL@DzmFiZPzi+bTaf>wj;q`fTBhU za0_V@BzL^51skDQ&MYTo-#B*h0Ml;Y56>(nJHgrNhlLvF^eddr(64azt$n(D?`1!B zY4n}A!%Q8Cy7QvuTB#~gY)4(6gJMAkh!&XfYBwX80zhri2rk!N13759^pY?1#pce8 z*uM_gwuegFqEl>%#)Tpd9Z3R2X;4@p(qiaz3=JMc2F$rgBo#$xIEGFOdlf4Pupiny+C?`Q=NcG5GKxIuignU2s%(M8 znoKXqaC~CIaGjKc_g?Ce9N*fONFhRxhc^jJEzyp%esc)MiTNdJgKaQSwa=_nn=Ks3 zIY(^*Oh;mc{mb7))I;F_b_mXKJWt@?Fr=*F)*dY34D8{Lw@2xFk$*`5W)A0DO#n%!*2FAs}|R=5dp zOxdLB${t;|yI$~TbOQ@`8&*fepr-(3?pohq^mUl&=%OfN!nqD<nEwyOoF?JsaFip|LBAP( zO(%F4RfG|D1V`NFs9emhn=#YKuhemqSweY4o9m4=cOV)9co%9W!t-o1&-@WkSr1XY zFlS-zuK31XmVHu@v3rl5iS}~h{@$qw6rlAZws$Hnbv1iXB&L04C1DITv`{r=h%2bS z2<0{BXyjv*XXZn=9SPP!>M$;dB@oJ1o%qP#+75{48WtL>!k^*5Z#wQ-^hwpZ=oe;JUc>t;b zA2UoI-}%NoDyhn~`Pg!sQbicWu`j+-o6aUp{N~OvP75Se->brx;?qtyOxUnO{Km%o zUy*}UysG-mpU@<&!7OyQ`d~JGGth&Uw75lrIk1Sq!>s;FnnlY*BTYE4=R#Q_5)@Uh zcy*(iyFr!r$ndhdM5oSmCWh#-n&_NktJZ9Eg7uJO3=iu~gR5;K)gwy5rakN-J;`nA$cxqQI%_%S{a)w%g`V_YYuR9pcC!Kn zlJTZ{$KzPneTQKps@*#h`b|9k@q^-4^7!8tw@>08K4iLtep9+942oNs?zhD)NZcca zOqbAaO1C&DZe_aP7WexS_sAjBCG?xp?H?4kGTm>Bd!od}nZ^+9OXxSHd(xn|mFa$4 z+#g8XB}1l5=r^T%@}Rht=?)hcYxGedOI{#n-8|h)XRCvk>EzGNZ-IHCHFxJYXNmme ze~P)&e1V_*mG}v^l;E#Vg=Q9iBshOrIpk3+hq={U6B#joMHo^z8c9{J_Fspqy9=Ly{-dQ5^h~8BT&Nb1rL;< zc)GI}A9)W`O+l(k)~8Ke^FF{{usMD)Pk<+s^qxn_XbXmCy-z|03?DNj*nKJs*$P3sVe?iCIeH&R$EZnSWyxSGU4 z;vZ8u5U$_HFHK@|O@e?h2`P8cGasXT!X8yr9hE(1vE1a_c=zi^tQWbwDEA9-+*!T{ zsTUr5sDouumeKg#5GXvM!`)1=gH+s-`YgN&8QOWwt#^2M&8vrPQT&l~tqXu6th?I8 z*1KQK7uS6L<+qY?a4~wQsJ|3PZ3FIPMFh!rPsWGUsjw)&8Z(NbYg^j-l^e`i_OKcry%S6)Q_yBv^K{{ojL6(!jas z00>LBbIk~JU{nDl9_+6e|Hl)L{JVHi9>DqtgL{H?3v|in9EtEBvn}#GQY#z>IQTi9 zv{}9#>Vn~MqMIXAZf2tC3nburxzB%&IwG@HU<$6V@kUOq5P0uISOLg&wjj>VKv6u& zfsPT{wS)-)XBpDZ7f_>=og9nm^!xZLeW>D2i=8;iJbA>_q0qRfLTuN#_-Kk{^Npx^ z@QF!$*1LTyk-P?!jxf<9>6Z}{Cx2=jqRX6w{C-qDyTRYv^`%R~lb&mCx z16Mcsz{Px;z_%7awu0><7uyl-awg|330{->ShoWm?-g>ur?T~N+^pwluZY<_g$OcG z$2Ix+t0AZn6G-2KOeqsx`6WUJ$*xu&1(?=RTzmdfZZ=Am)Xb^)T~6RbRRv*N!m=5)pd=MZ!y^b>-b+I zb9U`gJX8rtl;X*x<2EUt@E3fu{45~-MA|-%1i*iBarg6+(WwK2A2S=nt8V3CfUevJ zKh;$^0gzN&Doo6r#Fyd?K3EL#q;BN>l4jrgHCbn%^|7H(oeO5p-)>qcc zS;#AF`~q2a6Y^D0|~6?bE? z=<9guaI&+)@#H%5cXlW<;5{t}B$Xc!4^k^u2_x^?*a;VSyoZGfg`Cf%*m8~d;r)2p zV4yzl*{t(i77Rho;3pewHksA0QU=Z@J}#+kiy2A#d2DaXckWRUDd*HduVp48k}rzD z;wbKjk*=HtxWT&U5hac~!`w6q&lB?9=SsV05m3TvAXdnC@8{+ZMzw-}NA-Dnjdn2r z$O_t{$>DfA4>a<<;ET~Fmm{*d0K%iX{3lbuH&}7gtw6)&@B08UTeCIhqFD98rT7kh zgjofb^cMpKV(-)O6-=gB@W+Hl#c&CPE6ex=!AW2c24_7ua*H1RPWm?mS-CwLYzNx3 z#e<%ioN{l~dK=X>80kphPlgh(C(L*hA`|z)L2M6FQdaE~i<~)^h2waZ(|4!(*`7Bb z_vf=7PUO0l-vROJFw1U%kz=+bgLfR3p{_iz{62d9zT@%RDtvSsg_|dFMcWb4T2loE z#m!cTRy;wlIE>qheee(Xrx0-`BK9*-Iqx}4XKVcM-STF zXtjG3+T;2u^5+G+A!2BcYj^m0F?JE$|IHp(Gv-*{>AVm$A+?1KoDTCit+DvQ9wgdD z<|h{H2|w;71be}4vlkNd!OW`p!wn!O%5z~k8 z`TZx+w-_V8{|EHl2j0K`WcnJffbSIgwxRD-_*xFfD%jMN&1Tn9Vl8)@dfZyge-{b& zp9YL^p*4bK*i>Lm66+#-eTeqPm*@8;9ye^c)0yIr={r7-{4AqyF@0yycN0U;r0)Ux zenQ_D^qocD?YJ`3e>QwlRx~H)oDGqqpRpcwEmGklvWXKYxqI7GzJc4F1g`5(9N62e z4Ft@!ph4OCBn-LHBlO-gX)n~Lo@MI^dtqt~0Rc>pJ?|p+)zhS}Mhf3Y7xVl0t32fP zE4L|palcoTuAW{+&e$Q^d1yBc;RSpt&(FUgD>m(PH;Y{#>iI36<{l2@)h z?|{Z7tS4(L<3NP`m$ouiumXp$l_924>cm1os%tMG#l=DZ<~-is*NX@<*lw|eehg=D zTHfdAq7Hv7G05^0?NLjxeSr63=^#~-{@6F$>;N<5Vuy9)eIb7`$+`8p(543bFJhmK zCg!~UOXT2E=}QBwcCu6LsCc%IXY8`i83lJC0g^KvUn&8%mcRzWf*N-6UXVs0Y=Z)z ztr}W);aLbe+QOkaVoVO4v^RE<#RlT8!}Q1s229Vl9Te@SS33R~QV!$Xj7{ieD2L=N z=@w6v6-U>_e)tFcWgO*dL56{1!6n!SvtC`--bg$a>k2HCBE849gGLXglyLOfIizn68z!|Ios;9K}Gtg{{C71S&ia)49 zJ(H-{VRCBiXJGN<8jPP1V?R_`Yd-_cTo5asQiFCD(e@WK2Ab`Nc4`gU*+e@)&=_d8 z2bzqsjNf$!Dg#U$#!3=fvMBaa2Le&lpTtm2SAqzH9|U+N?%_V}WFq6btys?J7Wqb!KFAWMY;Ds11&%Jx;uWxRA^@G%-@R0rUS<1=yvgfM-3fQGD-XiqnH znhb}L$e1|F&!9ic9&jV)sH=3my3X^?#4nV$aq+6zy4$&ohcW&5h{vu_KkZ^{3fSf7 z^RS0Ud95p29XPEvIds<4N|{{bGDS>Ns#4pChx?e3PJMHjZp@iv)X(#A6vFuh=xYxJ z|KA9Jod{UxcoZWNj7C~^y{KHLfr=TK>#-*`iB|p1}o{WHu>Rt*m6hZ`vJAz;X*4>o-qZ z6&Y)GtC$a5oeGAW%eI&o&dHv0Fw(q=`99C)`*h~CkH1=jMpv@IR+j2kPDM<$vV?-2 z&w`0I+9GhTb;DSB0+Y|Z3+K~0*u%zAed1rF`JvsV3qS~VmwtluVRz|lIM9s*{4$0A zRN+4pIQ3EHkR1NJibZiVRG8xpvC_5EWCK^c-=XG)3NN=OL_yBgte0zSz5ERMa&ctiIbP@d?uvjJ9TL%g9;vjJ6`92 zO)lN>ItaJB2;l85x^laV9&~7)XK;DB7Wr4p)7dVp->6@;S`6u3sn71{+RIgpYxU+J zlQ@@@ct#-}#0BiU5GEeLO85B8Owhxz#B3q!%s^XTr)~WUHgX2nc76){>sX&lQB<7C z1=Gi3Pu~c0dz--%T$OeF2_hR+fO!#sR2Nt~1eP$GW{M<90Ae>FxEW}Q8&@`SZNxBJ zLUv&Gt{h1?4hA!8>hPOC7_@dz>|B%K42q91rY@+lSyz^KebsC{XU zk|6~&HD;mYkp%%@P>|sZ73>_%)>;LY-e~7=M8ds1%w_tb*ER@mOg7fJV(z11MDTJG z7zNJnv87K)&4|6V{5=4J_!JOVlL=xpFc9N^JD|pBbae;dz&I`_;=(+whxoyh09koV zT+S_Vp)cKNgP~+5scnVSe6s_VOkT*_fN96Cco>Ppv@u%;N}CXRB_Y&cBY8o-9&;2s zP$IYk^In$67A^Gj%c|bfNDcbZP)}>Yu zUlV4MVj(>^0?8(tc85G1w*w!sZA81RIiTLaw4{>U;8tX6*{5J-idUk$g$IFGz(3%x z;2>Wti~<8yy0IgS88ZIoJwpf`f*DEfZ zzhN8OzAeqEJ-np2r1exM=Xp0W@4x4ql>Y;av0?>wz2Y?$S-)Dceh0H2Q0mdoK=VAz zVh4Xjgu+$$^!xbR-Ga1fPvTZ0=YVW>Lg7+zvlF_7>~`Z~%vIALDQ~(XievA%oq1!Z z2jB+(0_ogm*WrmmFnUQbxdEd=1n!QeG>4)RgTwIC&ABD_N9c#<7IU|I7PMPo^aqIf zRrqQDCQ3_&qtrhnrEpwoU;ZuYIO%rJWB$!p3=K8rF_YhceD8-+7q3OdguOtk@=n%{ za< zkauooUwwdm6^ffH*zdf;Ep#GMdxhV@AJMvBL9QW|zXiy_;pitkSNm&N@lxffc=3AR zSGUbwMB&3lt^Eu%JAh2e4W37qAt-x+<>K7aCQD>Y_BQoh9N=#Vh_2Kh+uhBQtn}Od$+R zM;m;zH)F>-{-2D^`D0=nOW;Xq6~4>1le6QpBqa1l_t=2zrF68cq5LU)%FVjvQN z;d17myb#hN;lG81<(2|U%pG0N2LsqE5DWM9D>ij7l8dBYAdfq1d;H*!dw?DB{}lXZ zwUST4R#V{AZ`+UvuXM&Sy|ZSi!#WcVvjX@@>d5??l{A z7siG#d>Gu#tHgChs&pbwz=6cWDGm5wi$!R7ZcQuq84LO^}3Od@|IdVB`T#ggH= zuA5LaC=E!_Q|Xjda?RAI6Y2UO&QrbZIVMJ?N9xjZB=JW|iz|syU6fL!M=6QXHs_-? z=at2Di^t zbe)FRX*f3DF}cc+NvG3d1xM>6ovsk(KpzB~J?X|jN8POKL)w`J3*qG4ly0cm5-bE# znR+Ij=_Z>1Qke?MN<;1ot>gwF(^y5dv4$#%h5~{=d^NOyKuMtQ?Tl)Z6;jr*5_q=~ zxE|C>;6(sidt&2BnVX#|^#hwVol<7qtMfw#x-6%*6X1%_0e*O8Quztovj)N6KtFo` z@Ea@O_;l{ZH|6l3!DUTwULqWCa5$ZC!LpU$Kyfxj=nn9l40vU_?;`Ad!2bz2i^o6W zPs0BP0ecJoQv~7)-#7gZX zA@X;EMvZbNunb&gqrr>lBs@>8m-i-a;k@|>1~P3<|AC{}E!;(?Pd@tSSMFgSP*SMq zOZpNda|-X#ii~khq73+ta$eBQEQ#pdqCHtI8(*?tC2ou<6QMj7%g%F`-%Hue?*D7a zdG5f!`g$!l_Kv~JQflr;BVt?OR+jrQDYskrBMa;m?xr)~KVHs011ho)n##L2IIqJG zv%tJU-4>uKo9sXO;7Tud6EE>t`dmM2Q87&I#M#%i=JUP0mFY>%Jp;;GA6CC^=4H|f< z1U&$RWvRKW_P8w?;VT^|3;I0ouN`J>C}yDh!hGI^e0t^x4k5qzTWXB9gS~}b?qC(# z?tPffFeqgy7mg>^iepf4x6w02qL82%L{7!W^o}J+(6Ke2k>nRVA|S)QCX@%Ljw=Ek zx0~J6)d4~#Q0FhVcr%7xH5>L9j!R|E87R!TZIgu9-TEWSnr{Nv9iC45*+a9zSO9Q) z%GYg)EHffN@O9P2M5%S>I}_H{X?nHYkanLIZb+?u>vko8D=(~h`Wk2c4D5V@OTql| zUZ7O4IT$t0Ik?T8I5qs>UAvip@y{mlXj!2~Dor(8RH}$qAZRa4Z42R?7$%V#Akfg~ z-gF-F=`^2YVZ!PZ==N9nu%`W+_NcM{vUxIqpTqa=${p!cBStoAg+Svq+jjC5Y|A;M!1I zCo$Yw*1zGpc11_5E@bd~!@D*4K=D4DIUhW470E}~i1W4ZijPhUdP=Dsw zd_vY+uka@f-;%BNCpoOeR{K0`z(V@a?fkv;E<27kfvEj)G*SK-^jjcZ;F&yvywV7l z_n5G{9?b}FkI{%3$mq62`u8IJi4)Ga7o(kz{7#$@90qE2el}M8bHz+^5BvlEGtAPl zNT{`+fo483mL1^rRV&Z*py}v1_i?NkXbfWg=P%a(hneRE73HA(`B{*|8N>r1C3^Ja zMek=^xgFY#sU5OhUKCYZm%(vJ*^^&fPvND77AR9Xn)k97@=_E8Pa8`~Qt|8z@{3+9 z8y5gB)Z5ru9KUiu4q?FA*bts=!FW!5cS?g6ae0)bhN;@%Nl5e1);d3FKl&?ZCL`Z z*l0Cx_E9Fv{`Vl`y=vqAjq%LRXeO|GuMHV5eCzKa#(Uky`#a+Kef*UyR=oAMibQBW zwrn-^|NXcAm=QG6_feVO{??x$D@{IbRzL<$$_UJFoK+@@WIhIsIOMDOM%G95=E zK|ga~@W~IBPrJL>6$xY#@pNKvs&?1hMi~Q(QMGH1!+ZmYlr!m~+O1A-qqBjvec(C= zIInFJzOAHhG5($7;9qteJk0Uq_tBAj2UTw|zQM6D^jnNNh94%aH!ZD4NJ|<8V{tX3 z&PFv>y(37z>3rn#5%vqd*Z5;}QhmemMELX#$7&ePF~T<-A438mBl#%&1O7WqMc;5_ zpdk^y;rMtB=DTG~1`6i4zv1{O%lDBj-!q7Zt@X2T^bJH5^J9{gHyod+N%B30orq>{ z?Ps7_sI%0+2|kH^3op@i6rZe#_dXGRAn_Pzb_ZI;8;;GL`WEA3$eZS)_*4yz4@jdR zr#uWSK3#+HAu;qVMh5=>`xfI?=o62#u0KJpsMq@(vScf{kN)yxY)(eaxWNxOL-Wm0 zG{UDW$|(Q`r{YJ(0r(p32X_M9CsDL%2bum@l!7bUO9An3V`!SwU zUfdV9+&4c&3>ROg()D!6#?2}C()AT`p8Oq%A|XhW_aU}JdQVEb$WyPMfS&}b;RZ*A z$tH!n^wj_xt zH_ls*1jvxER0Cg>jmceznE4S9tXdGkaxmz3PX%FL!`7zPm-@)6qnlCr)lIjpA>}Kk zxq@q60OQ6!K${lF!hJ^a889OsBO_IvKrd#*Wap|`lJ?2n(CI8`*B)WmLjqhtNCs!} zSS)V-4Js28a+o%;rHdTS!~|Z^A=mHkX$F8^pU97tT!j0vIY8o{`~Touqeph7KoQLJ z583lilTq;_{AN4fYNw6}>)=_GJ!{TJRr6iT(-8`lNWN^Ds?`95Dwb{QQBKP0Vr4q@ z?aSw?=p4klta%^vAHeZSY1QJ8aecmqj%N-AHRhFdb)>$d*%%xG;GpL;scSYHcrSoP zXmn~a_k#oY>7Im;5PAX2yOQz?@FWp)o_tbOEc_Cos>&9#PJ?kqoq^=3PfZ?oCCg!t zScEiXp#Uh=@s?`ToG)aPN>)EB=%$_e3C?KJrR<93`zPpzVnJ6-FfGq7L^1IcA?C1a zAP*?pf}+4d`%XmUbT1AU*Q1!T6gO(tLZ)?$E5f{ zo}W^;r@3=YX99S^SD24V+dy|?SDc@L#yj3>xj$V3U}}w{LJH@D04zgZNGDPtIp_oJ zgD8ay=<$N1hzDGAAxdgBbi|gFSuAsaxf*b@Eq;;}=fK5D5Qss%x-N7g znr8A~(l?O!;o(L#SHz3Zu}bp-G}jxgu~L9-8K9IV3vT|$7O?x949)-O*0K3s?#v);t683(t#xOyM7J{XTx_9sNaE z6k!H{0P_&gS8ygupZ+yR^?<;}6uyG%_wh^1v#*wi0P`ClhJAX1 zPAKirWBfU%0_em^SkW~%vVPq@f~n0&SF{=Fp{;re_ssQD_Y3TIXsceK4)077&s(+- z7r#oj>d!@uYQ%$VxMiEvR=thPb|X9UmXvp34DP+v+N!?+)JvLgv{iqd`Z7x#Spm?qeq86vH)lAX{?ij)$q~ZDOI+uYqC+PqMA? zl*a~LNdqp^=Qw13=rSYi7b%I>9tsTG@X|GC%UWdbg+t56-0C*I7fveFlJJEcR;9k0ZEJxAfb@{Oq(4PFYvE|jH=;kLwOQ0m;v=hEf3n+ ztSMZm<%1^Z2g-8=%fo&k9?%5r$`B?VgAmV)RoNQa6lmx5I|d?}O^4!@)nnm@GLHDMcx2U!E` z+7KolgT2MlcE8FZW#xR5h?O3Zc-Hlo+F( zE{+4&JO>&gLq#W6TymO8FaHk&%=ZmcIP97d%N+w!!4p_tQZdmi7Jr*JFD@IfxY-ZW zyv#aTIV}$!2MKQ;;_*0Xe*^|k3IsAXxGR-GdlcT|o6xSpJ8kRid%Y9mdNZdYJF-VW zA;bA@N1gXVE%jfrZm@>XEv+Hcg(rZk2VGe`1k=H77|-A(YxE}GPYhQLh3r`Ua)|)< z^V9+W-bLd9BNgUL@!1zUK<9nbd;WP4P0EWVtZcq$0_~ZX04yyMZ~4Isk}}5?+WJ?_ zJIAtk5DBnfhcNLd?1m5~9)XM+BJ0GwQ$U}J2L`hHHZxer=mpiT0j9zYe z=&gx}4*k`IeJ|3MbJ*&r?+hUWZjRsqt4(=kDbLD{ha#aEO!6eTVw@rGC>N=#8! zD@sC863}FERgBHIDm7%3nWZ*~T?Bi6s!|7(#0OF`^8)9b%tC|8+)< zQ-0Sap;}N;27-Zm2$SWZ6+@q~9;&2OJ*B(!dreF;^ z*kE>2TWh&Kmd+)%mn-$+^UsOkj_l`6*rF6ZW9$ye^qusP-00Bw(S?*=l^NL`Iw zX5w8u)P(w9J$f*t*1;^qZAh4r_=GbGPLRa#&mV}N;5k$sa3MQSPI*Z6=&Fq##bffY ztvQfGdn`x+z{g${&_V!o_$lVV;mF|0p-qCL8XT<&1~cHt^YgJB2Gf-?AB0uP(-gq> zU=^?t0I}SY)rC*OBog~`Jih{!)0$4^-UWh2xS5r?iNuO{c2d(St4r5)|A{%S3#;th ziYiMrq@w&yg3Un-VXVkdRVZCAZMQtQ5d3D>4y2-S#?B-!P!-3Lm0D1I z<~-MkycKW8C^yexVM@cqvo!W2Y;4;yJ^PlF7za0w`4V^qP12_`ISO*RB9Qk*t9A z6u|e86);%=d=6OwYbzj90;~^!pX0O6k~LiUg$xGP4g_Qtqv)9k?)0{zwqzfW6)Q%7 z__)pzbRxD+9B#$L0c|7J8)q_JX*V`m;LAH@iEfZ@50 z2mgQ{-wu`gGj#jbeg>LDkgM+Qa@2`Q$WB5oERQUOf;H*v%7CS#Hiz2VIR$dDkRwKe zNeV{a8Z)s*SWqe66lPwBFdxWGjKEcZcY!a4+Y-S$jEY|3AOf!7UVD?RK8?Yt;u!?y zFG8L%YbJH<*L5vtp6hhFo_lND zlkwl&xvp~&W`}=cEJDGR{mG8Q?o$EwrCRH{z5{G-X3Jj=pvd)bkQ<_ z1~koNSrX;@f*JOKEMRDSjY)}f8uCbvs6-;S2hJ4aW?@5}`5X-=rfG2R`$w&4L>yWd z_oO!7Y53}4Oyn{q${q;WEesKz&xviBXhNAYUQ`UpNpf}OHzbE}zCv7;TxGbQ$bH1w zbh!AjL~g&QJPpr4FTZ;h%aYQvVCga^F%_6JG+%IBa5>T~POf4srt9rMgs4;6p%Hrg z);cx!KONQ@Tf4~^z9@(Ls2P`5Si z?2WjekZ?4NzEQC%*%Qyl zhHOH6-@M(a-_(J{G4df395B0VZnVib=V7>CAV2vgRAv%;JeghX*y2_Cj=}iRvbmHb~L=R4azmP#= z>8geI-r)}lfW~F7tX!8w$K^69WjY#{=f9hTAxrbQkFjj{OVNXa%kbj{TOqzBbvXcG zeN(6SCFJryEZz3@7^~@Obxcupc^N3Wyv2A8 zT8e1DKo(m28EB5+Ih0uYno6KG77s z*MNpeWY72^2gx4*T*;1It>Yud zh2sn$U!Lr>aL*LkGI9L4K{I}3^7dpM!}U}EtT?k#2C7^Q7i>>BuI+AY9H2)3PQE~%YpyxcuFGxSYD^2yO?c4j_L z4)dA8cqcd*hfxSSg0j#?gYo?GC9m9sW5>>!K#D70-{%)IlcvU59|^pJ4huGmclE(w z%clDl-E><=;7|9HWsWdL_FUa&3!?18ZycQRhkQ3h}) z;{}t-0PbYGV68HMI~kZTCimHlN*s-FC#?myQNyTuSQ*||gO(+eh|6QsJn1YSI7fxlk+19(N@{u06Q=z*DN zLv$c}EO($uEcjA{L~sndH2Za9*{Vb^16{m_+&2hN@>GGQ-JflOFtUb;;Dlj_1A(k; zBKRKD7@X$q08Sj;D|@wwFp)MD24wsOe;~W0Dz6wqMFe4eWY1O02~{8!AoYCC%g9`u ztFEH^!PS^MMFwPzRY={&D#2G{60%i3OZqp~cUA)W?%Mb-3qHOn|K1Dk2($xUljO*s zhtK@!$QG2i+tC1ZUF1h&K?fTK(*Ug#=$vsWknAk*Qtd3Di)&~{Lu86$o%Y$9^n!>U zEJDSkH2tt|%!sJHTwJIZ`y0iG*gcErg)`^EtbcWM>8H*Q(+^E+wlv6-ELo zBVF5pAv&qbFdtq;K9*om43Up(F>JzoTnB$eKCZ_n^6^VJTE_o5AK}`4yIcGfsDuKB zU&BA(-$1&*A-JD`<|wiwIsCLcxH^Ir6I$!26z-4gBQlNc2FCIcPCazWRwF2%D@ufX ziTp4e5c9TzM6t?+Wq8aSEpe6qPC9n`0G=2k1#Eme@tePq8JUS8=;lX(SunH3`&&Zi z(CZZ*A+JFiknyjepK^ckAV1S^O9g19^Bmy(F2oTJZ~(g{go#ICzb6dud==<{f#x+p zhv%NRhPdKU+}lE!cocSf2osOO?g(MxQP`a!OgswvLkJU(!tM%T;!)TiLzs9Jc6SI9 zkHY>G!o;JndqS9a6!zy3CLV>|8^Xk+u=_%ococSj2osOO{u08(qp$};n0OTS*AONi zg*_O;#G|l>LYR0I_O}ow9)MFzkd8{7p{ zJ)w)5c_0^S@PhY&&=waR)r6e{b;B8Hgh;9Tw}^=+#f0+?_QOFYUKiUAQ6ch$SrOq- z1q_MR#EOnFK|02|>=?HoGp+p$41Ukrj#p@!#8so>R1oamT2c!3M;fqd!JQkVw+Ha( zl#ESlKxU%lE9i0WErJ~cE=J&#f2g5m@EC_hLKBqnZVGAgYa@Ab(r#f5qz=i!F3dP2 zSjCo_thO_&w@OwSXpTi67J(~lImRHhlG*wgBv@!haH9Ju{kT0v;M5$cFJqY=vPZ^A&7*Y z55&#FwKUWl=*T1?FN^gt+mJR33BaNDlAQ9Q)?NKT_GK@uJ2Y#oZ%ruyPgL4adR&fa zWdROHoYu^!0z)B=UW!eP@T-~8@)959(d1aAxyDNy0U~>n*EOr7)nLYGYfvKs6BZ!d zM$*TC9XCJ2j=wlrlBTS%t*E_dJtEv8mB&DH94gQDx!_KK^MAlkCaqO@8s>;h12{|D zk6J;<_M=QD-H^@*=NbG6Xd<(LkUSII1p;AzdVGlfls}q1& zU2#OyE}dyiHwuI57dHgybfeHt$W3^^xT&PZ4Qz3(n#P*K#?rNbf#w`^lKeG1k!AL9 zOhjWGesLPfMlDQck>c7lwAL?mx_$;qhby+$piL#(ci1=k8E6hilF}Ir_JMW~XZ_+P zOfvg_k@g+%aTUk^&+py6lTH%0ES=;6*chK#WWc5w$$)J-m=ZAH&^rc9dFCD_;A0Qb zn<2D7Aap_vp(V70-a`^FrWey|D4`RQApYO)%)To+i6p--JRXHHDSrm zXT5Bxy@x$wYr80Dw2>qKoI8McEe9nm|ZS*XNVV|Mz)P8 zoPa*4wX+qM4r4~DZDd$lgDgi1%doU&l|%Z&8L${w2c6tFgwx5uUmY^RPwrbCST(hc;ZlBSo33ASWB?Z=n$sI{zwxr?3OZ?Q-l-%mzC zBm`^~!p9Rw%^A6)+#awd+HZ3DsL2f)0S`DGqDy(7Vye^_GRID&@3J`Z2#eh{JU3*wgXc#(J@O(mXA zwJ074hNL~LGPw19U5LI-YHPfKQhrB+ z=Qh8EZ?n`RCKZTzoDi7Zzz#zk(!%Hh6pi9$chI9pkZe=;<%o%IwnyPW0aJ$!Q4jU= z7`Yw_-x})UpkhbD+6aL$1%Az&JP5@0rc|*>oK+XkJ`|dcH2Q|%G*N46_a1b_XqvKI zRGl)m(<5np5w=Qz9&6 zorNDKVrkQX2dqa{+YSU}yJ-vgHp(JIbRyp+?Yl-~ZTV9VOOC(ROn^&%WG-h-Z<`af z?fU@dU8y+j)-*^rjAbU7(6hIp2wB;tsJ&hWA=L*(#*##-60E$41*Ueg_!8R{zqbWJ z479bE6Ph4OdnKU>0@_Spb_H0v-FEBB9k=#XQd4#bV@aAMupJAfZE~x3I?~|Z09%C* zK$Qt1{*E?244cgQ_+~B$Jsex$E&`zPSd>zgfXff6ou$>Qy3y5u_k|mvklf9d^wb`d z!(LNF_a^2-^uj&PIB(*c1HlLK^K2@HQ&`MJoq7e87yIiB<%`~g!%4O;0w`KqqmJ{2 z70&cj&L^Pnc6F02*7YHnfMcqzix}u;Rku?zsr%b|W9MuANalu~EWHMG%MwW89@y4J zJ25j@T*;aqR$6Q{z}qGG>18+x+%>B7x)j#3eyo}1(1UQ`^m_)O?>Gqk=l$uZgKsdStn-3E^Ps(%&;(K1TM11NrM;cd1OaWP zo9vP=O2ZY5k zr<`k4T2?@=$d4{HHX*!u4j*VJ2C1iqSHI^`dKc;GeNMawq(kcMNbf)lMu*d0Ol8w4 ztbA5-Wsoz_RndCZLs;DhT`_pco8{Oz1;0H|hj7#q^%IMJvys`Bcrolw6Sux$+ zoa?~;uIK1VH^N49LVkD{?F_MdxcC8M&9RO2c>IWtwt;Q|qy-Po@TGIi#|^H!0;crOc$cJXTmzaiwDB?+*g z;^sJ*^BZj_#}d9gQa;8!FF*jfvl#QU9q~d|Jlgb)3!5B=#Yl512(mpA^4STlp!dgO(AgZyoihj?!x9RDPd_$7GuGS`LPQTV<)7x8-E zr*qus#Q6c8^UA&-()k#gl?MJBogbE+AJLi1B)%WhIi~FVgw9pV&QIywyzKltoqLv@ zpV4_!+4(u0OUlkK==`?q{F2VjhJ^1|a6)&kAO4Om+9W}cchrf0CNx2m_OFB{h|>O@ z&;(K1_X$l9rS&B=L6r7GLK8%3c-2m25d<{6RpguVpm%c(YlnBMx>D|<9-JDu7WCw} zL}0F~xH?(S_+HR8upc>;eIOG^SRA+zfufgL@a8D=zMVTHsj1HiFosRtSXK7onP}gbQTi zue45GIzM4LyTT0Qd+8}3-KBNwf^A)4N6!j7+-h_*(hnQ@!p#|G4w8~7XYM7H*+^{H zTXH6Xz&3Fmyfm#Y@og$H&{JiYUKeauMFx6S%Yd0pW1-(N!!cm!Mxj?Ei;p#<(9W(_ zlyS1AxH5v{aIyCb{I>w-UmNbb{vNP{{ffCFDM*<>4x)AGegy?96`~V^vT}&dav76k zN{}lnjXad$Ug=xZ#wZIbBG>4<3KeQWwwv}Advy$s36{56WU6kz@r6^@ePjeI| zQcCOB1>3%oGCeCPXH=J5N$bEx<^XE5(%d8GbwVHUZive@hs_ZY_o{3G;G0X3UF>7p zo#~cPjmV zcLtgRY&)A=5b?LP0g_IZIJDW!X8Nz9*z&#flwxT&N27>(vJ#te1QCBr8`j1CDPu2@ z*z|OE8YLbyRiB9^8-LAj*#0kKZK9{@S7Jrd?R}&VKwB1F%zeAKa{mGfT5adZ}Jo&M}jE z{{he?=lK4CQl@>veV-}BFnIJ<+*8yYm?27lf6&jL?y~>kerZVJpIjn|x8PFdbY-xW z`nwUPriwKEBo1W&PrA!#?&g=$iGOKloYZ$iQlv#X(vs~?BH@#ThL5qfOBo7lV(`?< zlnOr~MmY-y5MvGtV;PR|v2U@{dmen3M!6@SVrsayuBrn+0p1tx!#c2w^a%7c_+FZ5 zGf2gc-=?}lplY{VrQ`%xC@@` z8@lF1)Uw9t9dK|b$)1%))^8V(OnjX!KK(1Zw!0&|DK{qVZfoy|#}!{Tz$SBy%-beU z@E(O2%Rmpv1eZ~TF`t|fk+3x;dKWVET!B!5?ySnl>%P%A?5gTH4P-x)G7qAxn+I4T z%1CB(CCJ6o#hwLN38-4^(Zw8mC30z}Gzp$9`9{A;HER+Y*&GVxNAE!(Sx_ip3poxp zV3To1+~v1f&XA97OkeZuVa$!6vpmXh7FJ*k4uk8$8SX*|%mH``Ib|M}iaHwKA9-YF zS=xg5bGC0k#G|86z<0nyk_fBcaT#xDhw2qJU(z&>YTZxL9K$r_fjFian8*KzG%Ip4 z7T<$cIkCX*f%IVgzu7N#>6 z@q455tCIx9OYYdncv>ho4+8T0h@;_yR6sJ zsp;{YEGBTh3Je;q7=r0iSTllU3Ae|Wsa=YD70I3)X>p#UTjR&RP{e_5lY zWKJOCEt^l$3*{c8JkpClfbt0H*S(xa`-PK>fsZE#m?sE6k#YsHx%-a zQVFd}*q}^k()6|gp~HO4v>KJN2M+KGhxsr@yn&O9^`O+=KL@hPC1ldK4+p@H<&p;N+DQ<>PJgeqA`O?s17i! z5`Y=@BN8eBLOF)vN6nxjJLDIC&BA(Dr1C+Q+t2+d1ghs5V4JgH%m?qvZ9whjipZ-k zV-qCxJd^r{Nu3F$V|8pfBv6j#+K#><)BXpG9BYujKXRxn)MI72ofq=zx}AI5`bl)gz5ks%tikOyN+q{*)F5I(yXcx z`!+IS-;X2qi)DU~o;o>m9wcnSwR5lo8IRFs@Og;2#YEGS&&egUB}|U3JZEx zu}Fsn*5B6jU@WHgXF)>gr*$k2s<5DE6$^CQtoyBl^kaUs4q0p`C83HUp|nFCi-XDH z2h@{%FFlpTg(!)(OenXNw6ZoyS>XP+toc=?u&0s55D+`2DGL%xJJzu{ge-i7%lFb# zSzJUG4Pk+8u9fvkSOjEoafO9Jiq6WfL~eZ0R32z>=9=T2>+u}sPIXKpGEE6ndYVg+ zXqSZDxi0KHh7BbwJiSYzym)`KtuCzj$doOf2!InAsBIA13%%zTW?vJ` zGXbi)EI<13J2+d?4Ri0cmpg}AyBjZq$MDcMaIeF92**D^S{B6G6MR{8c5XgGnBWK> z!a$JPrk`|&<$2n%NN;7>tw0VPW6&*I3PL%vt%B(zw>pN*${1Z`;PbM6v`U>M%kYSu zWZ!kY!i(jyOP#I{rLK>X*#>%=%S6}wKHC*cR)JjDr=CGsV58gR@QWINH^~L-nWzzX zbGYz&E;arWT5pi|UmN6wU&&2096Qw9oZuq)EUKBv|C-+m|?S0spx60WX*X5W;iJj>X-L6ZUw%R zkZ)fd`lf7*roQH;40a1ml-*_6uAVl(X0hz~=Bh>Jpw` zNtm9JaB0uFV24+N(Np!x1uGE(TkyiPxe8pR@1@Sxhg_?Iryk<+qoL47qNicNn?vXc z4{PJiA87Eu(Nl{zVRhBhy?$x0IthPPk&vE}k-)I$!yJ>|<+~coP+q(BgXHaG{S20U zNP1ETo6>T(qWWfZt(W_1xG!$?O8F0m)Lk)uQU1J~si}K8DSuwggnVHm84s)j$gNCm z%w#)$Tqa)_urefdVf8IEk9B2wb)`%b{jNd%x;K+^V36py1Gwn7ldSow^#7(`&IxlJ zd`;##knxs#P$bob^;N3W*(wb;Wx#OPmcwDs53l0ry1IO>i!(cg6VR~)vi=`01M9m$ z0-3M%JS^siQt^@e0M>fEl{P+eGCv*scmcsIUv^$=>SDHK`pw&`Caf&hX#{Xx#UHcF zm`VDw4)951c2PXpmvr`sUQU7+n$E*aEw{5IBmENRtuOB7HwN3>96c&#$HSe>-`eHX z6YJuF0n!_LCk%}i>S2qtMMNKHPZ`4mV&2@IGHw9z4b5nv_HLi5TE92&zHk9+z1ll^ zO1o?~*HPP*H6YyI=bL|10@|}S?<}Od7VA#321L$opBTB7_O0Vntni^{#jeVU#-su8 zL}PP^ivLfpkIG^Q9N#65A87#n_KVH*R=3&?mi1#S@z>Rd2N2FT{EQFeW8RUk7c#%*1No*Or8^SO5i&p7 z1Nm@w4ZS$5M~@G1kND@GLzuKaZ$)O{BjTE``vtshN%};8Gi8x^4(wBud1rd z0p1suDu$Szx?(jMb)dY1k^L&yCSeqCauR7ty)?28fX#oEdda*?y~L6rvz_1+R;!n9 zn3L#rUB8rh2B~&1!Bt_X1PSkp=%xMZgg&|=G(Fui8~V5ZpUsbI)6e$C-l}yO`%!O( z9xUsLTOO-f2ipn#e+NXxP3t2G(q=S(yoa|kqExSs(Oq7v!dliU{ru@J`_C@C2~*q4 zIE4?1(HA;LTbM+Q?L!b0IcOMdDNPX2cpuypK>qoLD@492uPVu7*7^mYL|*nL(|U!z zp_t(4fK31|mO0X1HA!0#q}MiixOc9kJU|;LEsNC^J+&ENn5a1ijm@I=-DoiL)OtAjV767<|Eu{jSE$n;R@kh<6>Rje01wFZ?%0j)UF@3>TlO|5{Twc}^vw(;B(`Hq4-?GZ+SRs$H7~Ij zGK=E+FjlRE&idr+h}5C^b<&(cX|xW}Q=~DRbd2tTNlxqtUW&jN?LY0!@r_J89$v@f z=VYQEqV!ZI{1B9mGTEau3f-LU(cw9P!T0F+hPATvvpP0sl8x3!dMX=EKgw1h+}6Xf zAoe6~gn0@*(?XSjAlnh%8|d~Ot;3}w>Uf=1;YH6M=au12KmP?Usq079@jAQ0i=IEu zOZIaA7rdlpEU4pkPK6gef1Foi*s9lE{|6n)BxSLV*SX}S?TDVri<6YmDD*mQSuL+@ zG@7oa5T~alU)h@S%IeAFte#BvjkLO>>UjNvytLKPQ+aW=GFqCcH!H8^Xc@X%LR{S| zyqarxH7l=XRjA>(&X?#sPq$oM}ec$+_dt>kRz z(f;@=6Z|88{7}7L)AxQFj4vwA@9W)BfBEOf*zJ+E>@MBtkiDeaN5#(3q3jbK%C69% z>;aJiGHTiJ`SH(qHlF=m(#O*VC42MNfz9FN@_lHXvY|fy248#lDCb@gY;M=E8Tm$C z7hz>P7}nKFRYhQd_l3V?5%9ElzL%cnW@ukt5c5k%*9E?y5}2M6SohsJp1A*g21G93 z|6cOVmM{yr1)gNy0#7Knz!TvcBH|yIO%SZho8{ctlyw81A#qf6-bxP^K7{!k$*_+t zMq{8Y4Km01>nuW`m&0q4(3!p=G7Wm*Z8EqAxBd;0&B4BWJv`qK*;wSE9!q|4I%KVR zLxjTP4H44+=Ql)f-oku{Eh;!~F_ZBzPD|kCbXU&vh?9A*x~SuOjQZssPfVHHtr-5o z8viYRAGnJ={0{L)uq_zOBj4><7%97@<16vOUjhIM{YG`W>26)te-T}cdgrCQCv+Li zRfo9mKfVD;nw>>kp7&slEQe;3OGQvKuR;*JJs1POmiV?JmFL|!Se#USaLC9cy3X^9 z+W~5s6q%A)0gZ10%7k=ZNa&;I1o|3kECOOzBu~6s5^yYkR5Y6#*;WiP<8l(H$H8KMV-v<$y}PgRW<{0+&QSxyLlw%ina~?wdG2o4!E^XZ#tq7AKkYDn2#2-0>}$yNE=jh?J`^d%JUnF<}h&!+RR4Yt!C3Q2jq89GsYwN1`@hq$tU)f6UPUR@QqN>g=4O5}yx`Jr$a$KE?!o6A(B>{TwGngmSVob+F9-1!4 zq$gtz=$Y^=JjLQHN1Td*4mKq+T0fs2elRPyem-&!oU-cgL;WN&_V**F0b>a#)kyz1 zJdib@bkZEld3tHkJk|PC=c(4GI#2z4n5Uf6d!e6SRi0{ns`FIqBb;2G`uV8#>MPeY z%o(`8E#++varjqbJ}Pa%U0d{Sb)(pgts!N1CrF!(FxItu5XU=AN1@=g{h~cE9NPs0 z5;73so`jrZ5d^$B54?p)f#T`eP^39RY94>1^|5@1O%{}K0o?I&XzxKp)QkhF51gB# zMBuM}d{)i({)yN8?T$O+<$GheoHbvssvpDIHbYK^{g*N+9aGh9_X6(=FJia7JQ(JC z>1l33A747QF4)Bk_LU3;=xH9~_SUcAZtAA#$wc1(ZyxS7NT2JbfIqBX1EEmNjR;ll zO5Ivu%dC9I$%@3FsDlh9S25Ecdq`oo4Yv}6p66ws`fUo@z*9YyJoR!S!Ueb zE^(%pDX8Cjp`xRq>`joi`x4+uv3*$mlleb!piR(|ZG&M68MUk6&I&W-^2OU%bV(*y z9vI_f(fT?%%r7KI7@HuUB$@L_;5=p0u4>x%hPNaqiW9kyz*WMkeT;9?OyQSE0nPg& zf|R+C01f;Srpr158Rt+&wqrpc4`}-(G(nWMe?k*PX$K@UL6mlILK8%3ha@yXlolm4 zK|q^{3r;SFV5I}$W3HiyLc5Z*gDN!MZ@wwQuaCAbgBXncFGZNCYl4{K#o8Zjn|Ryd6Wt8&_p&tkPzQ;h^9_e=ody@F zSHJb?-YdoTd#h{<9)hvx^Z0HlT(O2Xudq34RB0|Vu{(y3mWT?C?W-V^9NZSJCLhX(PrtM(@Lpxtmm%70q)DeRaG6=vxu$#WRh1@S z@!g1~YaT#&dpPm574clV)iE62(qy>kY1lrtN92KSo>Iou2ESptng z{jon6JZH}U42yK>`;xzhIm4T&B$zG)WV+1PYM69I`A4^@x%0Nd2f*#X^U=qsP0`8> zO1?b^zmem+3W(@ACXpYm?*N{&s{)2ax|H7?%8vxII(`y=1^X?7Z6LwuY3^Y#+$_;A z`!`mC(NluO8zNdZo{y|H#Tx-{?%oor2s@&U;b_5QW^!~1b8#u5;G$y$?O3OgfgG)+ zHPyKTZ^sFvO%Q3d#h8ZN6v%{z#%MD@C3j4|z9E_kXHsUf{rPxXz;{>A;*x-^kup5l z$NwAkK4l&e!dq&T&>I{nO~)=Eh@VI0v_+!k34{y$zVOe0@!w(JqQ@)khC#Yyobb3y zKk$o8!VLx3wwN%^i8XusAzPcV%!-T_Z4PnOH+l>yMrm5Y?upEM6avSYuUA0t!IeT@ zMpKPxFK{yy<2OWWVMOLmDgIR|&Vc7YmiE@&QR@x9;h34O_2Z`j%=7$tiUcr7?#J4_ zG7yNW1B@yi#cUuyy@I^#K5nCOc=IIF;D*#eRB=WvTQ!I$2)#SL7-!M978}@;>S9i_no`~`Dcn=8N%(|^UVuj0R=PNCi(K# z;n6ves7dA)Gx{ycPiYYf?^aX%9(FW3Cf(xT%9u2R;izw(L85LD>K7@5MnOCmLhWzvq?yNeXB#5DN22sFBqR`?dA&} zn0wi+d`7mP)2~dwZxH(ZwRFxib6sY0wkhne>&rz$a5uO4j)^(Bxo4J@ehY??VFfDH zzYu`0t8as*u9LB0j0cyp=6i`r8E4l7#!yAQXeUo%T|ynSf*@_sPEKfoDD9MlCWz2< zTr(>6F=w^_@shc!K=#ybDYoHMM9boSINVH+PwK-y#$0lBY3~7OARA^@f4!1F zjk{I9xYPcNxC#FR;(I4RJ4Mb;qv*_+ARMc3zV9dC!MEveM!(6i$}Iv@_Ev#u`#XVV z7PM+_5Dc8#WB}tY63ljDX|;YOJhpZ`?vVI_y;ESy-X$n&o&rBJl(JsKAtcOkmnRE)WCyKPi&7PY7bRLuY9p7CdJk0t}0EDc47oD+y*c z0w&+NT91-)Od!@d&Okv{uXBu_gs%y|NHW(s2xXmv2UECoQJNYN>l}<%`#P?R%rck+{oqK5taD&(x_+Hw9Aek3b1WnBuw9n?;^~mJ zW}Sn=V@{p)|9PEbV{vmK=URA||D;DwRR>3Llq@vaf0J38XK z<<OzOpxr86O}-i4P3hebHcH1J(`3@3rH=5Ute72_&FW}E3y zSz&KP7oW;qctXEm5c(^F(AR7kIGvLQp+7YU{kuWvTP`(l`j-wuPY)e9{Jw+GuNj2? z$sqJe!v;?Oz(MHO3_@SNwO=}1KXdDLXS2Xi2MMDcrKWJ)lkqs$i-SNo|M)z{?HHP4 zFE#zrtAv>%}!8- zeOB_`X%<%gInb-jykyBkhCVPuySlQ^k>=Fjd^l(ul6YmM18g^l{JGe~~Z2liFbC9XCVX!f8sUJ*QJUj__|bg6#-r1~Yn?1g~L zE%p1K=3+VK-y4!JeDbC{mSsS(=Th+%n=DR_T?7H#n`{90AuNyUEXkNX7Aott=4nUd zDVRT`!5f_odpPlL_GLIpB$VH14hTIwuVD5QFQyPm>e2o{Wh<8CY4O`!nv7-ZT!gbI~S`k0qL{vPWH9Y9cdB|wvLjGzR#9D?2j#QHdy)+GjL|Jew zH;geZfc~q;7zGpx#uy}Xj6o=43?eKi@yFt_lqU94h&vf$C{@N7qz4Oqur2SUI1nn* zh!|stf6ZPB7daVY>@4-OF9$Fv7=!C? zylaGie*6MIg@485boS;VqOyt@AB61Li^c5*;uq3UWN00ylptjEA_wVyk$y5GQ+flf zDVgMZ9e7{(B@OE_2$%1rr$MeJ`uV=h&k#R;33P*d3MQJd_^}iqS#uD)yxzpnC}(^( zcbFp-hi)ifAod<}NEA)ykfMVjJ=+=O5?lO{XO_jZ#Ru zy;qSoi!@5Bw5v%wq?UFKX$x!PUJIIz$7fc`3X>Tp!jN})ZcNGY>p#v^TGcpn=`GaG zRmN-AA#EM6-3q3QaB^_q@fyRG_=EA<^&$_(Yl6%+y{)jZ;&LH%|2BF_L2wldl1L#4< ztpm_s9VDHGj)CP|e-Qd%gV29J2>sbX=-&)NAJ#drJii`9|5FDEFXQw9^l-=^;jbQq z{`?^H<`DzSx#1x6(jfHP2cf?_2t6D*FyASI(B}<8KYI}R!-LS}`(^-r%J@h2W+RkgV5!BYk>4`7$p70gV6g1q09H#0O`*jJ+K}Y z4nlu)5c;Qs(B=DY0KW45HvoN=r3aQrz6%EkzuO?;uO5W{+932{%M8p{zB>otE8m?1 z&^H_;ojHThFY8ao*rRj<`X}>VyL5tBhY{zmF;d~!nBM^jUJm#D!^2l$(rZY(B9@qSjL?SnS4s%S zzxd4@mKerjAGjCe`!gH;mF~{yCW4OW4ubeFOz7t0SJ8<_4H=?eRnQmPB;a!Z&hr6M z#>|NRkdUI^A(dXLQuTQjom2)C!!hs1!6FX6^hE^j(E*)vNu2NB4>InCJO^?W-k7Et zvJy3%c~R1c8Qdljm@}!s!e);L^RV^+t(BU`RtBa`!13-E#y0K|ae5l8vraU)gD2ay z6b6-lm6D=7qvBV&X_Ry1Cn67BQ`2}I6^hM9S3vSE@9?rP+=ka)jxCpLL3ZS4W-1va zx%?z)!4F$(N7v=`)OZC*m)CsQ7LnIb-a|36jSC#!mgPED&wRIcQx_P%L-6E|vC~h+ z@C+i9We2}Uu|=+qALnBBN4VXoTk{;0moMy(-DMFDP*2R3md9a4x70V4_uPhZxfE7g z`TlcOFKd!IxCjz7HzaFRPa!hy{CE%5BaR`nSp-5$rcrMZp>DYcWDO*^2kUX+T5MKQ zj(*`1teFY!7D)N^IPg6n{mX}U)E|k^{42bJRvkZsX`S91QNs!|mra~E(Rppzc{82O zV-nw6=sc+Gyp_(yW#{kcoIExO{Chf&FFS98lR9^GnXRo>-hmcGw`aLNXTxQ7 z+z4B;ybbZcBmOy|!U-ADy0^nm$3iA2RqSc#Qe8oW1xB6jjsA|Ty8YF1%p;>gTs#eV z6~4NLbk6M?l0-il(On4e7^u#p-mogw=EJo~&cW?fRd4vpvy_}PfNbGOXeL?=X>lnX zAInAs%}OoeS3j4@8oOz;;PX6u=F0L{>=w=jk_F#&i>P9*dkKQbpgo~Mi;+a?feSM7qBBaoUMDtOK=1sE3T z(h0w3PzSN#M}k?P!m?~fPafrMf%W%�G`Sxl1e$Ls#JE3uECni;+$4ufj7cS-A

    H)x&fI$OgS!ij~*9n)FWYy5jx)NtBtKV=_fWix*geY$Ks}L$5*k2iohB?t-<}m zD%2T!iZ(n1(b(D?|BMq2dI$1#-j?5ZjD;~pwBR{A8Za!m&1)n1uXWhzJpzgGo>FT} zI|-@9#HlVumNV1bV3tM}Luh%wUZp=x&Ib#~$IX;)WQcXx%cFI)$)4k0hyJtreyy?J8`+Uq}OUIn6i@urtQiCVTV=`#GHg2*e=0yc16Ij zNSB(Q7u5WaU`|0mXFoXij&BTa9(V<@kGfz(Yls<3Pood!0L& z<$?Kz?vc~=vtqo&P(HfHL(U+?2d{=<`Kin$*3H~f!E0cN^{m$k()JAspt8_|^YZi| z6feLx>E?J&5GU73fCb2vj&?!M4!7f_nIvwrCrOky%QG@g+$U*+b80V~^E$st_ddDDUOnpT| zz<P-aq48Rpc(Mftr&n zqO1`C5mk&j)wZ#s*EvJmA^W&3KtBxf#p{Y4H)kN4T@$f<*y?Fa z=;zGvOSILqu!}JM1-5b&O3+Q=Oq_!;W1+f=GosVAl}7I%q&**L4;@lf7_@9DdFdI4 zGux4GwQPFAG^J;**JK!Z%dN?5MimUln;{2bbYaefFo8J>zddN^UTS0~y7RF(1{0qR z8m={?-q}vKh410u&GBG2vNIeHcA(V&qFt`5NZPI~i1{tVuxkmPvr_=EYaPGZKws7d zN`kow0h6*#d(`RAzys^$BS*TM?3d&~oY2`MW1qx2@qq8E9k5O)1DY^cN!;_-Fa%C~ zUwfS+wLD(K;22%9JBV;RbgcV8-9d!Q$^_K?x6ugDYTj{egHE;)agQp!ODEcMuOOpJ z?ox42&_p&JEw5A-8O2$1$NWOIWK6;nir1@#-mh;y|70-rTp^wjD?RZ=( znCf2l@*j!#Zl8u3fg@vKv^0L3;&Tx`pNW1!Ffuw1pt+$X)5B3ogINpdO6d4nU@gA6 z7a+b3Kl#S!e1vUjY)knXE?_5gDT^~2Lnc}T}K+*>v>#cB|;#a%<<=-A(KHXCK8?tU*L0LMzm7FdX*M)Ue z^n|D!S!9wFf@mJLq_SX~iVm3@UMGoNj9J-86V4yUHS!EXgjW&m;_M|6G!)jQ zRSN$^^O9j%rS7BFdIDhmsETEF*Js%{s}>+*#^1rN1AO3*pcCH#~J1x z-T<+E743i-=04b3^Hb7FAF(d%2$VKU_!XHd+Y6H={FIRWupmekw7(}bL6r7cLK8%3 zpC>dyl=ekJ69lwbPTH+h+Fr`U{DaRwldyt-MqS5%{PR0I(*}trtFOZ)AlBT z=<9A4#M}a4ZxuXee+L*A=~8B|DKiqxZTN9zp71)_@wy#eUngaNfB!E@FE zhDExR#T&|k1ame5vd$#qg1vzs<9M7X@v$FXV9K5>Fl|o}i2R(UNZKwG#M}>g?FoYC z?D2qMkuK%>rgA00JSZ7Uc=mwjv5x225?el(j z^-GCw9->s|3!by*0ft4oG_AKaEfUNls&3K6;ePQORNSdFX})ZIY6CgcPZIdc|2r__r`cJ@7oK(EMMfWBwwhU>2__e(z5b+wTpwy zM`j1SkuDYdJr$e; zCphJvZF(S1awiYg@t)GM*=l6(zfe}Lm+AdCaGue^<5B9*v&HiuEC2lXX%KD5>Q`#U zuWb~ReVNS?mG59zCl{=goc(f@@$7ORIbpHZ$} zrR0p%X^0mef}}VPc{htTW$yvtCu{_A{45eNCy8uYA2r@W#+&Ej-K+8LbMX!xAl~z? z1cxFMIzqC;h*p>2uge7n<+d=lqFceBP*Ucf#;r4{KdW?MfLIcoEZWK`vaqKK)|=OIM&0t*$daRiyV??=er zPQj@oL68_|Inn?-2rF|(B%|7$54rqyE1n47&p)mHsj~k9ym^fn@)4qFBv){0LVRPd z#ao1Q&VUXAnU3ig>kZ>1!;26c?=tb(J#28;4J)Bo*5<=|@^zfiC->Ht&x8+H5jI1> z1sY=Ie`KP03@N^omrs1_XLp2>OdX8DjKix-Hi9(sS3<2%*6O<nxKIeBat-yGM<;SMc=?qThqpI< zy0;t^z&ZK3aGy!J;{Ex8MMv~84u6f8yBvVC`hQ>+rlBec?;|_0#o*Bfoc1!K#T(x38IH0pAtN0p9Bnxbg3df zP(_fC9E#L_Lcg`nb-Z4Y=z)D%V9LHKFl}EG2wqDBF-wpc`;y=}`yyaiq)T~ysJuup zuOpz-6UG$Fpj?wN1v@A6yV7f!afg`Iv^yd`+fz6lr>=~C8zQ`RKZ zd{<1t`wK`kdIRE2fIO>p#%}_RZ($LG2m6GHfc(QSr}Q2YNM@Yh1&+JyY1-dHoO~}m z&FvC1(INMu@Xt4IBgg>5Z~d%Z5i+=8&y?}y`kt~~pu2XkMTMTW6RC)V2iwAVP8WZJ z2y6=<2~63K1!`OPK=7P>A22M^rMme@bwfhGwvh2ABkl8%wqK+uevyJk4lr`)Nsn6&OcymthOF(B=8o6Oo=kcc`ts&2nmh&9tG4`m^ z%0k4LU=<=9F9-rYw2i9+{z}ShC3us^SL8v(hFyVq7^=W`2K_R%emJw5$TU4Sx#a3R7aPcuRUh?f1tXwJkIe_vAF#I`|ZRBeR0sJ`P-vE!k#ShyY zc~0}kw2X{Kq92n@XkCZnO%HfmO6ki*PLf3(Zz9er@gtC`R}_(~UjCfDX&0a$_^2jwkd(& zl~yEeLqYTuKL$9EFlT=drgSOOPn0PM?i9b4wa(jJ=6E(q?7%h)OxYHJX}gp_%~n?M zoW z4D2!jvCl?e+Ab>)x*siw`8UgXl;Al#5-=>%r2>AY0+L|*YRj3tu5`S{OLV+HBQRxG z5SX?T1cKM{f|wu3Yn)!@6RrxPQZWg{fTf9GmUM<)!27}r*|@jH z{BypSp5_Zk72U_eSP{-lk-zeaucnac3(sea2f4oaCBmAo7-5WzxP!<86TCG6j(FS% ztyN3|-n9WacK5Kc4x@hI*<`n-S3nsT?yjp}SGoGN3IyPK=p=z!zg8AJXIBCYi*%_< zzgCr!P*cB3xMOgTO0@=S6WcM%_i9(ZYfJipT}xof;wdo5khVPnQNB|JF+1@Zi7A5T z?3#dKkuDYH8x@8Gvx{6Kk+dy5@a*#5$GoqzLjSgPjm!IVNjha`2-Lh|Y%A7cUBIwN zm$Lg-*^y9__X~Y9VvxMAiM*phO`!^;AKDu_xYp?aRuy~#ySYGI6fH1qw-N{){6vwo z-C7WXO%JFq(nOxc|UrtMAw!E+Zy z()OoSoSQwa z^|7^?)*|dca&6~5=CQmNz%OA|BW2!#(ZQ=M7;k~BNSEs3d({OA{dA$P@9PnY;9yHH@-o*~fSc7m)uP4JvO6)-H) zrD^wR+9a3;X(6hwWG-z(cljl=iS7?N%6LCXbYwb7~4%hUNHcVK@hFl8?kn6?)PL>>N>B58Y(Af}PIJx}nQ{RLoHq)T)AgXWe5 z(AhEhjb-6T)#$#+*fpq)8VZmUtn(+h;;ygX?ur2=ZD$ldzU_YJ;?EUS0A2`q*M0K0<}K;N${M- z9gSc|m$D0#9SQyFLyPws(&Qh$H!8y}!wY56Vm4%HBTpL(Ov^;-QfawsSk5SQ$l-ds zk$CGo>r!Ez_a@?gXue;7w5RNs2rp<%)1a1dv{1$Lr|G@DuRmva(3 zorVF*UDr_;N8h9SXzFP09*-n44Oe1Tdx)GqDusYF6nGyfW67mi_o`VdEJGbWS?}VH-OoNL!{gV_tO~ z1rNU5>f4q^#1Yu*g@_|GVnb`gk49{e6Kri^dmEnr35PdE!;#CWoT1dC7o_5lL>s8B zsUjuSd7;(FwXqf71kbVAKgALLrZCe}N76$>wx;EvMH^08v}WbFMRL2x^k@2h_#rGk zgXEGAjK#qF!WWrXJDBBr>1k4Edvf1?r4F(pv(B)l60)WeN=@Zn+?3wT&K?S7+gN#L zr+P7K_=?H5qMMg9WrCYbs4VSctno82@yidvmPaf{kc|7s$ttN+M^YY+PXvKB_`R?V z;GJT7eESkIMjQBoz?6MaVA{Sc(BzPN`@G;e`y60cq)Tm4T5S;trV|0#w2-k`2 z6U~x)%_sY>KR6lwDXC$9k-(JwMj+-=1VV=I6iM5EDH7U$3!=h&EqKm;1sE3TQeiSG z3<)Ysb^ib8czfei$3q0BtS>Na1A*Y3QUpuOg6PND4~}J@u%t^_HYiIH+{anMlYQIW zj%TB!6xggl%&iDa+a`hF*(`{%Y7jhUGk{@{E@joItVpQ-4&+`qu3g>(Uh(H>BBz0R+**Fm%!L_$lp<3TQq-#%sq6CLyT3&UO1~AV;sJs}i z385Ss(-XR(^WePYgrF&3+Bb>s{t-Ula2|m2tEQ{jlq2V9i*4l2c$1U65mTPb8NRRFpOY6|qVXedC&(Zn1xzv=0-p{)abp-pydvd@rE@C}t%E%OWMoN|k z$&&U%dvU*OKkcZ;w2L``DLYbN+Kv{8_S2zA+IA`uT5P{Y6f*|uux*0p>~O%aNSC&# zCT&q9nB`dK6W(mQ4>;a9_8`3T0x?G?5OZ__!FxqP%s6ryFL=%_4;U8dQclgvi3BsA zoYXdRU3VSudJw!Yy~4J4I`l0qwsbg)hV{9&&9HK3Yi^Z;j)x%;{H?Z{*8tgvuy1=w zNmyBA`!DTPF6ejb3i=%ubRJ^md+BLfAZ_Wrx?t}z*aQhiPqP$*y!ope_&067#S{kie;m%qb?ONf%S{e;s;f-1vO{AgLS zStVm5j13pi$uXHAD0|#HlESfFv_)(&K|ndf6^(`4w4&}|JSl@k-i>;GECKPGL81F>WQuUH_f>kl3Zb zt}Lbo$L$2_cj`)l=j=qlut=AhpWzT3ANC~l`%cZsdg#MQGyXSP8uyZ|icl_ZVUZ5W zAh(r$&$ejLvf~x;V~bFok2eg~M7HBDlEEZvk8r~lGZK%GZ=d74 z8u=EPXtW9? z!)(E07FeCnPHljH*w_%QU17UuAhzy|+;DH|775=D?-JO;C&<^|QpS|#T+~y$1_~)G z@;CYmwpPiYEnWxdcPX_n`($!KFO;C*2R zY~lmO(9_erjM0Wpz#fhn;C!Zp)uVn<8W?37lFRqf)8tS=qUm%;MI;o@0NNa3F&k%z zZiO!501@QX4?6|nTT{aWgC%Sn{evsU$y1C9F{()w=_{E8PCv5-lxtU)I2F$*MBKuy zd2gNzrum+Yd}Gjnkr|#GE;3T|#R_k1{Cj`M}z#jkx zI<=UE=jEvGhaj)v!*t5A2a&Aj#t<~o6*jjTa-_DyM{$G$MuFuba zqB%yKCNO2E3sk$fuHZSl4q#ZMOYLHZ+C>s->|%f0K6hwfw!s`r*@PcgvDwp{Ut;QK z_YZr5n0s%|P`^42b8IDvTD$)|Gs@i7&R73c@`>|Qk{3+s3Do>;C^*hh0pc7Lel>rc znm-bLG=Ft6U!XGo$Gn}b;b!&A+b@+|o3CY8M!uN2+I&6f^0m3-A!WA^sQH>HI934x zu?mP^&DRLc7YQ}_!uo90CXhK`SYGr$8r2E+Yol++!)-HNUBi9KbYtdqbD<>bw@|~Dp1`z?1cKMWilpr!g6Nv%T)}hp0Kl+FmogotOi8F(v#i;VaV*QDethw?E04n@ z<&>Q-P|G70JZB4lVUaH7Hd?unP*WbS`KD?UMx{L5#9GZfS})r>jy$oPXs?cjZWcq9 z084MUGpw-AbvOe#9s9c$xY&=DiVEq!!KizVnJw@My@d4kZ-HJH-0m3(n>IAqjBH!O-Sw;kxlkB zZ~9_#JhM);_+s#^7LNl-H)P;fa57}@8&uTj0)%%%1U=rG>EUd1Mh*TFPOeVq8`bh( z=A|)qd09sDBKx4%^;U3ieqjp6+v;#HI1YnO!H?8D@_r)DOFqjyM*C9a8)4#8W?3Xt z`#H)T8_9{|FLaj)2R|Whu4YlRrkf1!`S9 zQt+HT0x&GnrFC(P)SFEQjY?g_(EnK0Ietf$kmu*YvppNkx6nybrfOCyV}6Hv z(QY=yb1-s`JKj=4#7smoYu>WRX;${At53N);>tnp@eM^6=5Od|!)PA_j<-ilGnPfu z8E;$0QOR^~OJ#q@i>!)geM~!}t zQ~l^!q!)#!Z%>u<1AB@<92*pfQ-cCwuTED4tJZ?(zK)Xx&)Jgz!y;WO)i{-kgqnRF zDQ{zFj(_ng7$f1F-T4TT59~Pv;Bv0OwEYEP%AQAX6dlsp_Jxx;vf2a#3bQ=*thy}> zRc}0f#X8EuTN>pdo7OodIechZ`)c)P4-qX>6##X&vPa^efy?G4S2n+bEZlc=kw7h* z3kA>F3jo6+U8;rgss$2i%7$mF3ZexrUnB!aX(nE+ZnUSQgu0O)jWQ;sIx*d7w;@dP;8xCsf+$l_x>wet7@iKH7ua1)B-1e1JT3|0FfT))V zOxw!|Q}zl1T)4zy-yE#NB0WrA3ZLz2SwH?co2a;>z$EB*8MgR-l&Q z)q>~jRe)iUE-k|eT81Rllp*q3wK1S3ucvBW(;nwMUv=&44oM$t>;iGjSYX=TEf5*M zN0GF>Q<2c#C5W!^-!3?wTLQ#$OZZjsR#5Rss9xi5k+XYCz&p^7SFTxO$Dr8$+kxW^ z48iXN-t4z@;C>ix$i_OKt|sEcDKrrjD^C-&rZehjL73KbgE)FPpWoS)JiUko$<^*p z_GM?}uGZJcUoSqy`(QiseK5KBFz`p4`%q)#!d2u$E=ZJfF2HexW;Tbl+m2*zK;MCV z9cjfgT%CE4TEN>;1b8}%053-o6iJgBfm*X3Yt5E47T>@cC+W3%A4BjrnBMx5Udlei zs5o~5keCv@`~+7;c{D2Q?2+sSOtw6aQF;{Nl5gKffcJ%)Fu+#eoA0Hk!3zKrOOMqB z+myk6BEjfc+6xQAW<`WGUHECrfYpW!vNdxs5hQubw^}ehdel*Me`H=gCI8V6$a8b1 zA=(Dfai^5bt)}D+)i;rM+^K-AduV~K2V5RHseg=yT@zX8Mkz0eb-{C&l+X@V;<1 zmAhd1_T_`hEiM1B!+BPpt|CB2+lls@7BiQ z+I!U?!r&A-BMNZyVrg$Y0= zW?)}Jnle>{BM4NhA6*Mk%sKc0kDbV4Kg`;g7cq*AW+S2I?)8vHyeoWKFpKq5knAf+ zq_N1~XnzFeWKR4LDs@{r-WlOA<$_5UIk6|__3X z(r*A`sD*dsw>isMkA>CTLvjUZ8LqvOwMB!}|4r&efV z7iyzCL)6$8?nXjof+&m2DrJIb2^Vr((=ua&jAM~4`zo%`h4Vt7q zcwL~{gC&CJ?5lubkuJ3dtE0-o9+1$_9%Q^-!1r%R)7gU^Si??d)r@x}dInK74Rv=q z3}7pM&fs`O4j|rdMNAl;2~679Oyu)q9TEz7JnL3*#!xhHIXBvBIZQW7(Kbky9Mce$}}_ssp!BY12{*_ zbF@uM4nq)kMz*?11_f*;#fh9|d?ZPmq&Brp<{M(1mxU>CO%tc0P}^(2=Le4sJ0UGP zo#6@QY+G8|Ld~(**0l6hoK?q}*XA+ay4nVS@8Yec^}fwJ<8rOOEI-=KzayXVK4_k_ zoA02Oxw1wp-j|JbcWP-$jooAwqupFcE$#vTXixlz-R$r_LYkj3&AmXw%z;#a=m01% z#ttuBqAC?kFOj3IS1nwLS&j1HX9=N7i(f*gj>FiTtnWD+!86fcfksc_r@4DS5E`PV zfVVV8G=sxavcq8ND)4ajS(JQXRq~C}GivhDz8Dg8k7Z~T6h`MDmbFYH%lZQ-dm|@m zg;qYR-UM-+g*g@ z?mmY;12M-?DBA;WX4@B0CIr$QN*kpuIt2y7I%Sbzl6@6 z7r#f!vrrrql{Zw5y|~ldi}akYZllc>-omz<(5x%+(9YfN68e3aKL<#T_&ya;6#zo4 zVx~g5W^HPi-{RcK_!Z>A7)$p&W*Hs3?#yz@mQ<;K_%=R=<;L}8K@beIa}$~%pkeL! zN@P8mN8`iQ{I32*5>60}dtO2lL}}+IG(kYa+VU+(&o>X?S1iB05B$p{oFE$af`lfB z(k@JBf++1*2~7~CU6jxSQQE}`O%SDBlF$SJZGm6B6twE1zgml)l2zFO8ZSh6GUk@Bs4*k_S=Leh|+FMXo4v1ri3O4XsE|GgH~OS z|3VchS?eJKP-oEBElGSqH2$sq;xoU9PqM~WOyd78i7$wz`TK+>2xzFsA0myKdQ6+e z#o=$%X4M!fmL28j_(gKlSU6o9aagoJgoqBnPqv#KoHEfkbr;#XdQf?<_ciK?kM`E;>0eGyO-@hE zReH(_j`QJwI3JE*)zfs<6A3kXLOrO=qmNpZ^`P#o;lCZfR!JN0S_sr~876qn4h6(E zX8bC@8Oo1@{`@L)zFU(Y4~Ny}?|a8@q@%5QnWb9NkHSfoq&t*`t@=+6(U9PS(XS@Nr2-~GYyTUpY^ z{xN~dZzaL8e+&@&$MCECHc);f49>58HSpUGKehS8mS?dWt4rD`yM{pJx0>KNyDDH< zq)Yj2sQgIi&ktJ~T>j1^zxwwO0q4lv};>{3_;EyV=$&kvN56)TEO(s zJEr8BT}<)v7SXFIruSe734|VMLJNUFNa!UHFfD-)NG`&qc&mX%uy>3vYVxZ5ooJw$KPOtvjr zhb}OB;SmT?n9Tvp+yMqBM>qiU4)g3fPi@z&63T{y5 zmo|Z|wFwYlchJN(GCi}Ev9wQ+_+E69xL7(B7kBoGYf3DkVexlG$HNWE{L(bG(KHA! z3lNZH&vr)sw}ZdMrg5gk_oB1J#nQUCSZf#89K|%w5Pw&6I^3YlFHPf{ng#*pm{HQm z+B6nRe9TkD^`nc#O+^=qYjEFRHacJYxVslF?(W5}rm?N2L4YYYq%j@&Xhj;O8&RoT zzrBo+{peCSZka8L_XOR<8b1zE!>A!X_xQD09K&wYeJa;FZf9msM3mlKDk82UW#)p-$^r>jV7Q9* zgsU0!BnBNO(rk}l;mP>U1^sL-9YJ^szwoA1I=mEt!&C7&NP~O~0pc{k5E5$z+38Q~ z166^p5d^vn&;mJ)Eh?_FlGCwfEGO=E*85CN`#c9rgY8(9RZ8Ei)7R5lOP3?fwu~QM z05=nam(l5Iv2TNOf0ZBZ4vDm+cVZD%>iJ80C#9G4PPYE;7`dDnZkO~f59A8P*RSyB zFEQ6cNQ9S=UUi*{ZDE{k3qL?{ur1syt{>eZuC~*g#NQR&2sbG6OWVQ@+7<|CYNw<< z-qOBT;^Tb1xPElMxaM>eV|2IpyP~_`24#LJ?H!di0p?5ujQeuky2gHI=Q02wFF<@Yc7t>eVgg1Q}o8O9MD z+zq7a!xB#3404D|0AMxT&xS? zSJT*4(;#3}+23W;cvs@%?Gtga#2{`edQV)H{qKmsD|#DlQ0AAW@hwe*fKg?C-lp-P z#K+x%;^IuOxHuCmuJ)iL788g#_pO10cLTcJ$A!3ybaQrh&0?XTVXceio3PV8r-Zc0B?dD zUVtcrJO{#cHiM>!D*_qV%Y+vKl{gX+m^BgejoQBY7H6I6n_8+*%U;ZGRTt2`RxM>{VYK8`@K%!>7=ZkyLOo7Z-6{b;P_ zRdj+@@pna8xIvj;n%6xwuLLx;3(BYEEbWOB--`<3V!kb|xs>IY7k^jO1ve=3OKI<= zv(ZXgufk1YlDR z!-9OFkk98!ZU*NGp9Cx}>$>rwZ!L@uT>P#dAC{N0@}eFo4?OiKu8t2Yh`%dZ9&S+P zmzL4qT1Eskj1Ru7VX=%{z4J7B7W`Oweg(_@x!U)Y{C-}(RftC~@xzZ^fD`8d^GHH@ zHg1`^_zJeZzb^cGkr5ZiXT?={JXQQ%Q7_z}%rDK$KAIN-MwQ1smiBask2^8N#a(aW zrlJ|*sytp*{IGGrg^dHhn#R7G1_7hW<0&?cwIse5tt~EYJrg$-tt+m|<2A+K70rYj zl=-D;?5AlEFseLW(WWt5;(O70;`-4XaZ}Oy;;KBJCH}5x5N=TBm!`45ra?eczoR@} z$)>TX#P_1j#Py?1#KrqO;+m^i?;DFB=Stw>TnT|t;F9IZ3#Ch^Gow_ zpyq>s__^Ea{A&Z0Rj;MJgT(iu9mUoAhPM|#>=bZer@*h$JVLE`U< z4ul(&`K7eyDQyDG^@%#IlTTD#ixg7z@(Hg%i;Zu-(8hgm;;MWK#gF^o;Nm_w{AzlK zXnF+H$tT=n&oeyOjQld13k1z8bZ{pM9LgJ(<6O9_*t{Mq^u6d9aWS_S7j~Yqc=T+} z(c;G>A1)^O_*EtjRVD~%JexzCQlCv@SfYE;3F2aoFD~Zz;*L#4Cy7Ue*zw}W#(TKf zc#mIA>o84=fLMr)k-5H?xPL8iTqbOdttfVH_d=ArnpH--hvro+t=H(_#uzCrrLXp} zX*MsX3wzkNFRmY*DQ+q{OI(!O+2YarO-~blS9B`epv*7L%i)?A0!F*vbXA+y`4Sx) z8N~IY3&e#@L0qJDk$Cie)APjN6`cz=DDz9x`nIM;K=OW5${MzV=}5~hGuvLcJ7fv; zJ{CnF*Cyc(nh99TY+cHhv&;iPEG)I2*$sSY1lMyvn2Aqy`c}o~x3GUTzYP>AH@XI_ z;0VIiaQd7RVR!ll(rv0FG~L&w798i%`Y?;D6oQ@#8@PxOk8NznVl*lOSNUyFX{z zG=3q`z37+X`q9(krlM!WMOx3QClx&>9!>Nq@pnZ(hZ~gnrHPg_Q34Wof3m(=mTTHH zUy|5f^s=~q^qRP-=oN91=C9O~ie43u3cwe|-xa+8Hz@N<(>zksB)|$l$|uNso&iB` zd0T7sT{@}g9ab)QiFsPf^7N)qN9Bu)SmGkQxZvqs^`xTTh)0h@EEPX?hr-3~Q2Z)S z3zR1U68A^a{>{78*G8J2ISOH5xGa;Sx@|{6$XzEv$XzyOf5?FFK7Q+($4+|Q1I_d| z%n&B-nxQy9>)8DKQ8@FWPsPQ$y12M~OI+mVGxY?~=i<@)d?Nm?=wrA+nO~ZpqcuMS z)a9qufpBrwMVh7A5MsRN;Y);Z!|I-w)*xN^5TMu+{{j3XK|cbQz7LVmJ4~cG2K3F1 zlqG+`XS(uHQ;Y$|xJhCVX^uq<*gV%GSoT6L1fZ~J3#=ve=3ObfC8kWW$7#qp4EX~P zFcF~@{P6W7ww2H7_R2NMi2G`C)r;PfQa8sVdi1^)y|g862Jg3J{}mXd%p4IH_pJBw z8!w;9H_9G2(*l42-ct`=LKBZZ#rIDM))oB&ZcyfzR>CmS#8y87^eMi09A?@$wjy#W zD}=nLRa{&FCT=Qf7Z+)dRZl7!r=B1hFCKkayG8t6Q3h^M=9i{@f~HM?zO2o(zg$+i zC7<|wHCcMU(>D8o798ex;-ejSd*p$Cp6+_#;ndRdT+cDs;himh04nkETG#BxPO%bf zebpU$xY3ux91O!4u4x#C?ug~37vYW93VmmY3EZI5)I!4d(By_&M!C@!>)2^3!PG#xZg@#TxTUNZnF|s8(U8NxWo!BF0sO| zR``ip;RKBO?js&%k~F#{z85Vgt{*KgF7CA#7wxS_J*jAlc(j>K7C$byhl>mD@vEtx zq^S~MA8=2$@!2-bl_fUrw-?usriz=2aA_vHl^;!0Pb&JldV|FBK&&DYjx`<^+xo!L+mC&&m4r*q7St* zeI%W!8-3^z#G8Y7rJEtk7Nk46ZneapSdyB6iO!z}A z5VsfKjlDU)Wnfo?!HEy5!n&9|acDj9lSD4n&w~Uw8A2ktfX8Eeb1;|!NS1?syOhgP z4JSwf9P5)%_UyN_Ysh(^^s3c7O1m$ z`v?5D>XLYR5IxK3a|0LzZb31~vA@!-@U^+PLFYDj(goaq!X32(tglR33O>9Y7+cPe zOH!zK*Yjf(uGFwAG$MX06k$2$f>mdTbya3{czFMWsmdueY`8Oru)$~>PCNYwy8-!z z`J#U%d<1DZ<=EzC!b1@dyXB8SiQdj9`)$8r1QbfB`)k-;=;}) zF8VI6JVGZnMO;`AttoyOyx_v%g&R=$NmVhej9m%W~sh z=s#KaGrEo8;&1A0mw?{J$b;;U!yQey(JmNR89-N;p9YHld_8|GE1(mzatfl5?cZC% z;AXpEV8?23vn{@{yQ33gM4Fe9?WcB_HuHd#18nA0WK`%)&h{5-I9`Mz*M>_iMt8_`vaaunLm$mv=IUxJ95QoiJ zZ*Lhi@t9e+Qv}VJ^FtXo7ds2v#>ml0*V);5cVG-hSci6|{k8rNU}1RCL2&vUwu{3Q z{%wWNr{hOOL8Dzvbk;&$eWTXDo0{BzteI@_(n$`~9;&lejb+Km4PmW%Bswj3fu$37 zo$=Fo$lZln&%o%7CIUo9oUJ;i|<*~~$!cF}&+sj;Yxg=P^b``NU=BG9TbQe7N)cETVAqR<_Z3ID%Vi5K^PqmlG6r z(c{7xxUbZ=*RHn5dAL?=@Gy=Z(=JZI$n44^VSRGHoty#M4PkK1DVC*8W&OYRK~K9N z&Yq{t>EJ(}54AY6k=B+-3+IjG@SRkFD@Bp02Pi6954e#{&ii4}5rY&35e6Ri=U1Ap z4Y3{hU|gVVckE%ChMYM$2hl?IAjq71Y`j{Yn&QF2$ryTPCgt)LNPH{s{9i=XI@O$< zE8N;cu^R-D+%vlk(k%{wo+m8=wbdQo1sZxKP!Nv67!lqL0Jb6Uwq_am)55-; z`~ANwzZZk+8qeL%rjQBW1ka@-DZiTpcT07FrofZzxpEr1Yefb-06 zbQIwA!Kpt$&@+OZ5|wRnesK$wsD-{pMRp(bzD`^!NdnE`1eyq!(IAvHN-86j6H^%p z7H}Zp`T2I(qK@K6^>lp>3kNlMC)NXH#IkcQV&O#wxtYp7zNs_zk@1k^N`_ zP9gbLa@}#^x}^_oJD4ks!EV3}E_PPj2yvOOW8iM5`3kQF%Odf!OZNk~p3hYPX-zAi zJSdq~KFLvf0r~vT97#baTlOLb$S=!N$F|N?)-&s1SnJ>vt%K8~4meJpuJCgdejXh^ zS}bUZcfR5;Rs7|GV7$u}zC_{I)A6Gl1nuztk|m12m5^@CZ@&&c=Aum8@IEw>>{4d8 z)l17;zH&5rDF9A>5eKh6lx)1F)Yj%qVBM02L5S^1!wc`P5y7=$sDW&f$a#D{(H}18^zhv7tzh`%fP30yq+j$fTVoT<|X0?beGQZr22H0O>n0Nr&*EQEedvN9EKsUS{{?c`JY08cyHvVU62)r+1N7xxN@n~I(l7xTnt)PuD&^#svN>Pbg0 zh)3(^m*Ve=egQWq^GoaJY^@&x8tO;a*LJad{95AUJ`-_qpNY7s=yh?y$5QoRN2z!; z)z`$2N4DYORvG+is*5yL0&J>k&(eFvcC~5#PGVzKN?a^UiHrTD;v&rt)RT(dS5FZA zUObxkyW+<)+i>yBHhwknb2M=RG;vMabuevmzJ;_^)2hHMrB_2^c$|v53k=m()KQYx z-7K$vlEl2|Q*r(16LC|~AH)T(pQ#5HGWB4QOgzf#$KuDaRJb^nieKgRT;-L3B(GXd zyW6z?A(6f4uj2aASK_9kzl)2sN7R#w{-z$hQ6nBr`!C|}ioS#!l=-D;pQmXPkW4#p ziYO=k*(nHDC)~=bD6Q@g<~mg`%@te(xu*{@jF{pB@R^mkbmCTCYY2K)H7GHOpv4am z%avdD_PFfly5`5|lj9xpA%Lzq5uFXy0@>Ii_hRnBI_&8SKS6R`L!899NR^`0YR#Mw zxy5HMteV&4`k6`};@OhZur$|JzuMpfV#dn&RGOL_d=RJ%wMG&PzWhmILnWW$(qM7 zK6qpO03Rj1&4qh2xLKw2IKXYCGjaMJhUTB)qxc16q2%VPK*bAjqkooW_zyn$2QgCrYgieK9GaTzR?r*gD?rqDYOLFH$IdT1{Q`}UP z7Z+{5ARaA>3F7aHI^YInerZuG)}kQ57DY9!!;scKHmz=nj`b*Uv8PqsRJ6RfNNWZ4 zq@o`61ksA((bOl49}81(u`q>SP5lB*oq%Nj(!RZ~O?y>|j5id-^&?0kjKx@&5*KMt zQ%@>dMLj{Zns_wruZzDc!qy<9%`Z*+LQR{1WZG?VmTo_!?dgcrD++Wr`~|A0Q2ISa z#?~|*eY^*=MP0o77@(<12$n?5ljxlTYoG*C+YEqf{zZ23tdUNCXqhzUp*NJI`MZEW z#t}CYm>1yo)~wixQ08$4iQ9wktOg?clUMUK$boEdHWc?U1^G40QxIhlzzcdt_A;1y zU~R1zzt#8|hx-r@KzvswKD|?h@g4pWIn4&r*$d&*_~5g6JpO@a@n8WPQwtTp12^-% zpb$QTkhQj&aW+Sc1BJIIz%*{rl@eUE6)5!P`SjXs2q#^arZyZD_ePu7;imLDbkNp* zS`-3bKlF~n%UwBw}1WkfhJ`0JSX@PedB#RD6qElIeb-&oj?5 z%UC`-kty2cqfA3!IRTR?E*_0S#=t&-LuEoJ=jXAMHw~ot?vkuUwN%~=(9S3v8&c21 zR1VvgJY@je*3vA52|6sOH)r=EsAlh)my#D~0w)QZwdGyvTfzaZChttGr zkXRLIt%K0~q4!|5rKNke%P-bJTK4Yn_Z}DkADID;c`f$3KCwIb`MLd=(O@ii1x-AM zdsL4@o6ZID+}31K1?Cp|5Q-OTGEYZ&!eL$7a$g*^D}>?r{V@p6L!L`7Va~=m-wcsl z{LRa)o~>!SxPdNhEAh@mB?e^%P1cKf4$T`g!k0M-ya&&anTsI&WSvb1<$oU?cTw^H z7~}~rMkI0b5!g-eC2PGfWQui!=8kmuHWm=Y+@UG_@ZU0M*Kz}gYkB;$6Q7r=HS3xe zQNo_A=h!PtsdRaRC^)q25%41u6iE#aJi>^=jUdTVi2D-fj~gJ?At+;6J4J>#w_96W z9W>SyKbA=0Vu=*LI%r(1g9ZWda4Gf5{jGCA^H8?cc}5< z%sJbM%#p`C6IRkWGFp_=ySn;ky2l0RD&_~MMCJ$kPTxei;37kUyZ2Rh7w?dLA_DmC zk>EY^DuVSn&>Q7@+!%8++krx>biA`4$vEB8&RrPVUI6CENr6L47m4J2P3Ek1;X`77aveWK!)Q{Z)wb|QC53Ioj{ z!aUaD3GaKz^+ba$^to~wrYC20^L;Ls(KjCBOyhDoT|5=B37oz=tMkkZqC@ty&`Fu! zvY;S)TKNf?(?;S*6Ec+nDO(wmZk8_R%;M27j7FS9lLRA+RvWkn%^L(tgZ6?+OIg{=4Fc!LnukM1(Xl>abeJuzvbeFZQem_ z*jnVaG@RFU&AS4aBohuC+SQb;J<>Jr3$|Nk7E8=TuI`gI^3!hfHI^>+^>U7G?aZH5 zyPxfkbr;?-B1%`{fzEiwzsVjQTAR4D;_S);Tlj7PKF;>E;3#k8&zIG=&3=7sY`bH zyRsvu?tTZ>J#BovW5L+|)jeaf^EBWgXqSG4_?TOLjO0DJ(=py!!1+|rmp0gplNAQy z%|B$Iy(L{+R)}}f$;3)E9(!x!z?L9liDSL8wot!j9h?JGE>#Q1!2&yjJlMFo(pGvK z%!RLl(f_dd2Shcmt2&DxQdz?Hs-Ouu^O@IQ%UI(_vmn_zF*d#il5PELcA4k z;UAG!P@attiR1CFb4+<1A$oJTz6Chwv6nzf!gx+2a!b1O5u#z!0LMvtujI|m+mmF+ zK+I#_+4IP%yz4}5Cgt7VK@RecV9GnXBJb#-yc4`$=c|q;@BRwvb@J|W;m69m9C)phcVr&&j`06k-f@rG zO&ITr;Kz11*rJdX=v!~X@yw;D57^zrjou6y{s`K`8QA@dd&e+`~5l{t6KSquidQqmPw|N;e(mk`3|FefloyFGjVlMz68WZAu^_U6U;1ApJBmGX}hGX$P;`^KJHT_y02?h^|w|dkK21t=o z-RlE4)w&t)eCKwRL%A6%I^RGaTY!9e`Sn>}wiwTuhdq;ZrRK>~?v`LzUu7IvsBd25 z0V#D5JWM2X{6u!b2>=1YOnI6qLd*zs2n=q_H|nJ^`x??*hX!ZEge)5Y6c+7)*4CR( zUu~`jzLWzZ?8J}P*3X%pM#xBnunTZEqlKI?d3?jqGAQt^=&8W41BjD1~jBpbG zo1mYOcH@>Q-E3157A#uXnFvZUSHu3)N$}fun(j^+KSwk;;ntVj1z|Vf zSe;;+;d1Z?;qn5Z6wng)!}G8YNo&iO+VU)f#h`S;6-XYBUc`Mq=j?cJJO+0;Cn0}F zBkx$2sgezQ5GC8sDFyoU6nvoS$wylF2v-CIrBN&DOt=z2%12sT&G}$#Dq?>Pi0SvM zfOSUl@6`lsGQpJ*O4mI3rsa0~sZ8pgG1fU0OdKQpF*!7Qjv!vxiwGqw?quQC?%vAQ#TcjbfY$I}oT`|MVw18X20 zd6OoguV(sVLjY9w)fiyVEz|YWAj}AL z>IvO5c65$~)Lh88f2Mv`!miM4t9`!D>gY#Q7Yn^GkGS%JW?Mhj3Y^j(5vjdpf~)Ul zZUf~E`ZB`ciGok5wrzxIfVl$TS0N59S_(y`jG0A5k#d?Q{G&evNnD60-#;;tE&!zhxBiDaIxLgL$ zlm{K@>z={`2GKVWy!1K2*d(S|=*ZxO`)VG(4=T~N2-VS2rZYg9Vg0xRX&e~JWjnG1 zdlH;Azd)7;xZNH0xoihY;|o%{ipIHbVFno*`1)r8Uz~y#)sZQa0Wl!Oe%Xe|Gb6Iu zF4qb|ts$gcwgdJ%?tJUO4)gWbz)%C-9ydfox^Rk&{=qoUA)pz8FD_`gPZ)~xi$G{` z%U*)g8mRAFo90-n*WkvdAiN$GmuuJkcJ1MJ`8BpPH_i(u11sB844-$)jT5tN$JlTH zGt2nGYQ^yJcg@mR*=31W;Kzn{tcDk7N-HyonMk^$T_;ah=swDJHGQ?Kde+fqb^+CJ zO$5|i=T2w+k1wr7raL;?Dm$Rm;(wbr@+vKL#o&)#1AQ z%Hdi1T!JXCgW3ieM1noSf#mM2vTI$@Dar zN3QbWFk09kH>AjyX0Jo4ySF1>&$_bRrEK4?YX5App!Ytc>dRvi;!$FSjE$wyLq1;*Ldu z<%KL5FYLyznT8)F3s%Rh1r^De;T(9ejzzB1<%TD_l;ME?&Yi!rXZ;U)+l}?b&+*Fr zrtAyfi}~@Qec*6iv)u_1uMC;)g{z_eWQ+Z4a1-xz_yhZZAr;ENd~GfCt||Dj9k()p z0*Vj%wif50tR}~{AnC@i1zGDh#S$z+W<7CngPXyttsL9MmK4Z2l;b#_mo`8FWqEtC znSij+ZZ-rUEx$8AkTFijp|3e7L-&n14z(gv+*iIovg1lf(VN{q6#*N80IUZa!)cQ% z?=WC&f{*sJzN-^%iVvB?SU_nr0K(1jgOJ~VgDdZ-T~EN!^0%r&5K}x{Fha3o6Tc!kIhRcC|gO>Z~^}ZjaYFbKZ&1bXA<;kr=-6n87{uo#_=+?~ys> zt6-0R3bK~H{i~{zUBo%23W(n(yt)RlVIHVK0$reay9P-sWZ!G!&C1ZprbC^Aaz6uN zu>^HL8yNyp3BW1@7%DP;co~{44YqxR;o0BKP-UfSFxW-Y1QJB6ikpsB6E_pB4mY-I zk~HnLq)3-k=rS%{#-&T1=#mCqp+UX(yC|ay`$=rVMBk;sa}7GFXeJ$b)h$|+USTg< zi{8@qsMBa|ddvJB;IQVF88Lhw{Ac@70@RIPzz3F1s7=^S)EvV!5(FB+iVSZ>K!kr0 z&h#g=tw5FEI*4s0)JN5xu)VX9l~cJH%R4yh>l{y6z;BX(8Skuyl zyZX4ZA-$Jf6Ai2nc6MQWfJ-Lo#T0mI1IVp2ndby1&pHL(j$ohy zr!$8MGwVUaPe_M5pneAS1IjJ4?x4M;LkM(C()?V;!cqxXOGieJnrNo*EFyE&VYAhR zPx@)%>Z(#q3B_;W=)xuxQCvT#`z-z`Ao$&1gjj8e(AP{M5#nEH08%vhzKM(0kyH6{ zZRe88fsit>vULFbBf&VzjvbNH-eDrm4^dr}gPMYkuLUF0+{IuAHwEjc1tU^|nY$6z zn?=J(p|1-K#TF(ESj*&dUK8aBHOfRPpNBLB%hiGrY3?DPhc*T4tOXv7bATPrl=ej_Ku?6st1XGyU&QiogntQ>MxeFVf+T6;qO`%t0 z=v^c);zz8^pBb|~2uxacsT_+V!drK*C_g{0I2He7~AV-04J=N4QN`z^%CU<6A+ zREGcJiKy`mlEUOkVY?x~)cEv_8}5$JnGXhKCKAWP2)PHq@k^gJ(8-z7o`B}kmNzmH z9gb-Ii_vIH%ONi^NlW9JC_ob{0(oZhb2Nb7TuVe;M~nFpav7B8*9R;l0}_XTKbC+; z)CZiH3`krxV6i^nq+~$i5byy|tSpppIvdrhTbV&OhmO!YOr(^wc@SaE-k1VLM*`+@ zlDRy??S+ys4-xq=esc1lA7>LmnI#hLEnb#sxDUMHzWB+t_OFeqn9yqW;};H55Z}=j z?vGDQBbh*W0Q{noC?Q~_z7Xj^V5UE+lD>5$pKXaHy^FU54+3&3=9res!TPE5%=Pxc z(}8MRLsM{_jor=9cE!F-d-ASeiGQl?>SCRWPVK~Y@?HjWu`to%>SZy^Lqfg7M4CrX z4vowEbvVbUX_-JEOMk zUgbpSw5Z{-u|U236w`7$L3kJl*#*Q)nimkopwpId4TsdQ6+iILre2waAE(c0%ZczN zE_4#9i#43m^|3v<-QfZ;|LhqqPlh;8rs`PH))G>k-Ism2C!&mSPDNNB;4DME9uCJJ z4nC){Ks9`uoaGnV!rOpsznq0(vgi+_=EpNG*HFVydqbaI2*SBYys6)!F|ROGP;59& zV@Y)pUJ_8PVu-`Hs6n0^?usaULUv{cwx&U^$%>9GbpL}P2lbs z#`zfX_+-lARnYFZ2j)aHIxIfYshpl@ou|P+60E`2sdIE9Wi~2NRDjYj(P|@~(G+mNi)|476eX1p3RQH9@S{UuG&bz=Yn zTYzMHB4)J)~IBmH@W!;%m*-<=#;PELBez}9(BcW# zrK3%_G)hoDNm67VmZQbf;sWT+r6b~SYE%p{i<&rFr^XqPHO|6sqnG3|{j_IyWWtbr zTNzB7)tJk3nrN*{TC@xH4il-gF7}YiN0Cc8vbsE}wdnM{DZ5i4RgsifoX*zlX4G_J zUv!PLd$J^5&F-qn>=GAe_uM8H`)k=HvN^l+8nbIwXJ*f9qBKy;ERl_wrTtVgn_Wg` z2cQ?knLX#}QmU9k5BRhq%a#OHMS$P%sEUk=I+Zyn-hRv7* z3P%+l?4Qxq2twTEbvOXFAb`S9#9-xurt+B004hO<)bgMNX-gscmc&j+(q?mj+G&W~ zilD2Z4w~CJMWbyCtGvJtaxqve-(&sCg-r>q$9VI>N$)U`<}vUsR=*tO3C=G}8{p_- zUy9xgg%}T9L764MgJ}MeaD=O1{h!oAZu;*-{uCj}_SRLlZw1?wh30W^P#8KA0a_#* zE#XA$#u?;1vU&8ZF#*E`B!-OcaxIY#q`AOy{*44b9kQkC8&7)kGm_Pq{ncvhZ;}XJ zO+!ktE=tS5*5p$-lv@?jvQsQv5p^@wro0hI#aCukNwtIpWJ>Igds-_p)&{@FR^&xD(ZPk6bW+iG;jpF9CcB4*yIaHED;Vy%3*_L)y6wX`IG>d;|h;?)ex{=+2MB zVT&vRoao154Lbt;gIg`B*O!h&fOf7WwxlZ;le*p0q9Sn)qw4|%k+MJ`bJgf)OaQB3 z3+fWc`Du*QMI?~v>73n(1kzxlR1Nbp^oCW>!sYwSKhLWE3-bST@_!V<;Hf1pUPVuU zc2K#biJKwP;c7$gFp<&E84mQ1j_F5F0^$O4Yzz_cRVp#Z{r_NoE5Nj6g6LU<%%m%q z!l}>l28^nj9g!-lL`ivqLhu>D(wQ=y@JNuInkkc1nLJxCSHau_*gT1dm=zvh$CM55 zOT_CPoC4M?C54X!3**qZ7=?jaBr7@;`LZ(#B~5)q?bQp&OROcmH=34|mW7nTzhkNg zrI`FyE|bKQW8j9h+!NWL*G5kP#_}!4%&9_kc@v$DYIKOKl_K^bO4_hB90iv3qq=rK zrgsM&$8xZx?u$Y>LuCc$94asZ898ld!vu-TFS4-8&IS7#`WGe=)$rI+Nd3bV)8!z; zr|pVIEquJso_j=3Mu;=n9*+idS+{aUQ_eQ7<%~$p+0RkKSi+#P*w()yXsD_PJIK0_ za_ud;hQ)bHOU_?9MFPm^{;TF)jj|%whojFr|C{Bk`E7@jB=naaXLanmRhkN(aj8RiEMWauFGgW5B&(UwFgIoR+gmc>*YP21xYkRG zl`ES{U=zks1(!%I0V=rhV#*Fk0ZmaCQ#`wv5*~+Cc*-FNBlreaM<80GD)3~+b=l4Nl@q1;zO5uIJCbLf)@9@(}#Cwc+D>vpUcUpoQ1LOtiiaLEPwEwSI!(~5#^-eF$$bP-wU)_mr{<_ZQ-QRQ)NTiY0JfOR^y+; z`1TD*v-kfNpQ|s)L><7}B{G!u1C_D)KQgTptnP=UF9Cd}jGJwc)oxHR1pr-F) zX}Ev0*q?E>+Clxa2V<5de{OLET~}@_HHRa4><2jnPU$4}mS<2UZgKqVh5!dMz{w2o zECQ6y#;2^kcF*W?o&?qNkzX%76=3rm0t{>mm}C)ms4}%6d%HISo#bRo=*B_;0G%!+(M1<=S+U3 zaE!tngb?w7^!{iAlD#{1O=rsXaXDV-tbCuYxp&W);G7GRi;-WOKQBBMBsGIUaV3&-K>#DI3RaEbCBd;~(aU zmmNL+Xke#1{zMwb%-i39r=15y|wi$SI(A6~)$&me&D<0_C<1`U{>Lz!1P z6DZt$$MrL|;Fj=G#KMVRo^Y9vGMDiS?Fl+ijndT!2;AksO@CdNby6ewzUs1$y@zo7 zcyoGPD@Q$ow(H#Pto~NKw_{W1-ml_1ZI!cV7op6?Ic6-5=4DIoK;vn}*Ek;3V~-B6 zK+@&kOGuhSnwQ$;Z-d7 zlpOYgCaRYtW2dFrp9PItUb^JT>BJ2QrLp`@l37G)S9@42Ne6w3Ad;+`_!;a=-YQ0}f2 zR2EytXlFx&XHafD2g~|{UIP7L$m$Ur#CpUlNXRIQa{hP&#N=Of-wR{7er0K**S!J% zNU)f_?mNh4?=X?(SIq3S_>P1)XfRFc3NY8nU%YJOg%moj;jh&e1`)tDls_tkDsMKW zcLCE|BIyxno`IIpXQg_)=d^>Qu8|FXj>lS8f^Wygz+t&<;C%Vf7SXY zb*Plw*AR~5HUK8$rYi3yxP1ryk>FBtd%Y9^kvg4x1Ib6iQQRITI9F*BIKK_!wZm;m z$0Gl(;je8E#|aA@HSO5>o2KM0V{&SXCQ{mi{wzhB1KOfEfO;W+E5B``a5*V_R~RPJ zwx~A|yQYKky~m9$zsjL&$d+rWV{_%bCdyZk@(n_nNb?qGsz70#bTVhLiG=9VH17yd8x0=TTEy|ik(k8>65>k^PNnvPgr1eHKEzLO;m>ZF# zm9}UjGS(gCOuJTPtm{1NtoDie*}pen{~ksn=-9a#38vHfs!+yA~n7xUdnJiu@2ns*rf zUH*usEV8QMTf%rTp87d;TK?g=gx@8a*!%F01Xr_(-Grj+9VXKJ2E_f!2TkFwVYnYi zI3mq&$;2WlK=OT)Te=y@XcP8oyVtRF3n9#o>z8hY-<&StX)EtnmQV@Q?L~91{JtsC z?=aEZBvB&Gdq}i&CW$c3?is5(xFXTH0`*q99iebnZk3vy2e5%w=K<13GT{kK@eYKy zO0PE1I%TPOLNQb&gj;xo&;&oc6GR4>gazS1wK*}Sj{OQ%L`yQg`9(W7N-e zjqAZ1bivQav={vej^5)%iFGCF88;^H2nmKAENp234)$My@-F>|CGunZ#QlipnYqYz z6=fqX_GP7@qOfareb$OSalL-Y^Vp-Y_;vqc6(}`dH=$RAjZFVywbL>O|9}#Q#CDNH9dq>dxwd%!^-cFfE|=L zC)E~H`M4?eb&UP6#3s_l{($Vo_HD|+4JijN03j6IOxqdLPzza(I~D&7AvU}z3c7R# zf(&m49}xRu61F`mK}yvNccAz8B#b!F4Yyz@xLeY#-PcGkHa-g!_h`F@^ElUBhF`0@ z?kVejNrdVrPaIWXz_J-2H424J@INgPHl`bX}TljyP#fYPyCMX!#q{o^48#WFlkRD^ROop z{y*Cj@rDj;Z9fqD@MG7V`uPsb7AST8#bZIVEfeyiZ_-Ic+tDfWS4{1Q`bUtF>yiEN zEqX-*@xwRam(XZj%meQEBnb@<7}^=X+1{7}&L&K9LW~Lg!>++UkQ8Sz#l(YA5^}jA zDvh`fM!vd-D6Bn6TC_v1xIM*!dZQ+C2 zY6xAH;-+}=JaK3nV3b(+YcTA|?~qtNg^BQWf%11~N-gXg0_E>eJ?)tCq#+Ko&6E=~ z5|l@$F?ndEQE4=WwsWW43|9o+HE5&QX9#=t9pF#4725ew&f$jj?@*R^Zs!i{$C9;| zOyXQ?XPYY*pA?2xM6!Bctk;cKwD0CLt+R9=sFiNQ&vyN|^AH_UL+?5?M(9klmsNg_ z$oX~`ug&pt_QI~=Bar>AZqIa!XNjkaLwERk>04_$zGJ0lwW~rbmu1hH$4mAm%AEz1 z+xt&Kc--eGpOf1AIkI&4lZOt2JF&h0062yAm^$4GZuFLFO~+q_UF3@Rwsi4RTs0S# zsD{&qsNZs_TdQcn>EfKWH~>3AlFd%6?ZN=`1oE$Y3}AT7l-TRGlatb&IMgs9P`p%7 z9=E$lX?fe~J^k!MIqa9kgvYrSbs*=#Fq*OK# zHy42}Nw9TV5H2SY5SzP#Y4>10@=2kH3h5Q{V03e5aG!I@Vq)z%oWfj3E57w0^^^( zB?mtWc0w4}ewdnU#~5jTM$EnV0TWy=hY3plFkC+hs247k-*@B}%_D0bk-%&dMb7D; z!e=UW&Cl^=L+HNiRAq0}bEkPgVsQ+Y&DIhvhHjI9;k1gc*#`8s7hFd5~^bZqhRM-N>_=b#^R)t@-8&YYlzE3UUR`;pL2s-rbjOKlUcB99!CJ# zGwDjRh2+(s96$DAq&co(8HGOvle}dC?^O{l->lO!-SQszmVNf>J!f8FJ$4s2e4Cu( zmPL+x`vYQL|W9atHkdP?yGQ}-s+j}tEGLYRf zXhFSELO+Vw18kxBcDZ^i9TL(a7gOfV-^saJVdP#J#qxc$bof)oq|Tw(2{BG6XWP1|eliK9KGagzO$AwmMK#og;@ku2`=(uwG^VTInj3Zq}0-L!h!_ zM+l#|eno04FbD!6fm?x+GDLbj>COS% zFknhSHTfa21M{jfVBuBy5fh-@`v}nap7dD{H3qHmM$~ST*62x7jVKkM!0rjhmwA}K zV0)utLM#erK3nds2mfxBigfOBK%DVpU@N5R89yR(x zHkI~VKYSeU?bs064rl6E9Kz}#<+~2%ms_LTguhpQao#8&exm*=?xO_mWA)EO+mmoC z03Ef<=c}pp-7Nrw>HxK zfs`F}Z3?*mVE{o~)d#yA7h}lHpd&i@Ux0wbjE9d8@TtQ`JS4nQg*1w$w#+&6CdpyW zd|#%WM-VCV@a$jnKoOr6Y(cYnQzbk0;GsQYb#96zKw)q1KCT;L;>(V!qs&YH)hL4t z4`C)AeFP~{g{T`pTp2%ZL7Cu)QO}I^Ghiv`8JNTIBk0+{et&BYRpp>(AN##<4zjLX-Rle)K7X|*V=5vlX4&4Kkf0L*O+*I2N;SemCD0=-z;OAfj5b3t={!a zUG!`Ozn!#X5)?0z3~~#Fofpm7nErgY5d>b(44H8jvIU)oxM=~Kzp_oSA3{#BOG#oH zf9C7@)>Xa_yN9Xd;*{8ZY-P-T~e^vz?gpb+vcNeb;>d z%>$;RI&{*0|*7w4t9e5G;^`tb)8gfrNW>+&q?Q zAAxj$xwO3+d)m;25*#h`EPDL>Y_7{Ab_3PJ0fkP3bE-|GTX49u1IM~`df8ZGtsPKo z`YByMsCRQ#0@!$*f4Vao2y~OFTCZ3ni4;# zUsOM+X2^%PfUnB)E^DzL(G;H!9|JazEo{6ULBAxdTP9m_s!Y8TXGxg}c#>@2um&6| zT}+e4r|{c0IJ_yO_WD?gZbOmo&p&ShS@6 zgnJo$&F|i*E(~7mJZT`AZ9z)@8;~ppK}vblBc)(``EARX6l$SLRWnkUb)95HtZghT zHM|LXWQ%Znmx2UQZNQcg)jw;f*~UuwvbXCpdg5z9b|> z<<$xyAs<_vqd@0wlxIGR$62M$zsB?v_CwcBc4a!3#~eE=m;c4VS$i5p`@tNFHoOJQ z$#P7FlNFsa+c3;~SGAvTFG3NJdz24ZS7^mGK-qY`jbr{-$cSo>$g@-(jZ-}i80;Ao- zeW-W9Bd_i5B{Np^1HBHpEvpu(^U+A<=q@5zf^GrTXl zPeHvje@;~I{_svx?*Z^a^mL0Xi5mbz8C;A~P8!|DW2Nw?Vd(pV@8$w9`=Sa5hJ>U^r)+R9C3E23vjmASZ5n)#DVy&mm~fe!>6?>TDBwfqcn z`0$>iWK96O1V}x(29z3d`O>B8k@~jXk5G0!Soo35xN6R)NG<+(zCRx$JH@K3>{NC7 z0K1_a=f{ZWnsyd}8dYTZt@t>~AF)Kna;I^kALgCIAYUP&X>0D;X2az{#qHU2*2&^- zJ!^k)x0yvXr+*^^b$fQ&kQs4%=FZ|&2;Z}|Byy@Ci?f~=;4!;yf{{%x_=kG|L-+{c zDR=#U1we;~Z2!mNCwJNYx9K$KG0+ID1q!TQvbxqr3 zY$sW*)Pb59<`h)#ljy`J+BxQTh0Z*TntA=^I_-)`i+_-U{eXJm+VZ=u{H}xFT5xIi zw4LJ839|-JymR6(B*J$|4p(sq+p3uel+JC%D`sK5&Z+B-m^(8H=g<-bb7O97jpx#( zt?^-2AcT8BiiH=w`His8DWj6%;(7H$(l?Ux>K+hU_PqLGg#W+JtHIk}8u{QEDvp78 zyaIjH8<-8h7yd%Te;$6kTTJoqVjFU^$k+S!>qS1wK=;ODBjma&-&toHpm+WRX*B3r zSP3&5GsD{>Evv9>4zHHDz5cDx&n7FT_QJ>*4Ax>&SXPkbGziCNQ1=bbjaBDXswBCl z0H7F7m5LYMhW3tS7S^*bA9dGe<@?fdiG>m>^zq)T3=)9;{3#;h1e?T^bpwI4Veyf) zYLL1MvkHBQ3$rj0mz%v?qyH1ayOkJ1)BtyCvj(wt4 zo3ym!f~<K9w-hPM`F}5DT;`e^^vpicIUT*$YV(b~SrLC6WDz zcyS5Sv#fLqoO(mE#P~x2rGiNXk}K1S79EGgK3pA#R&onwDssqSll^XWxQ{V!xK+g% zAQCUvjbhW+r@IiFRzt*Yy=ym9xOc@yP|`g~s@*P74ifl5r7+Y+`)Hsw67OBze&+AzXxe3LBw zg*$RxWEDU&*dWCPZn+#ErxI_bUwFt!*MvQT#f2_tmu0P_z*{yXOjAP(Hgw6tj}{+x z{PQL`yvvcP))qpsZOqi00!?3{tx>N14DF**gfu`u{fOIxh5&Rc|4693e;1YaPO7|5 zi^@x+XK+If-qHeP%*pTZs36A5^w&5`6(*Zc_(TyIFJgV`0uN_$#HWUGAq9>_tXV^(&_h21o$y(th&rLw0cND<_?6Ds$>YuhD!l;?Ssp%^YDVm>yr(Qb zn?sfbx51^TL&K-q*^wC(BY!*n=Zaj|O@4R<4 zEaCWz+t+HKt+K4$c@tIfByq7#UWCfQsrMw!R}$O=cUCFY5ok- zkq5Rx6qhMhPyK6Gxwl4?NF_R^DcF5AqC}c6Nz{jr*BtyPrXksABk0Fw;`(dy_}3msvQi678nPbZ@+cmvVo2OFpteZ_e0FWwVpT%MIhTP(_UQNc(wpg zEZ7}I$B#;Muv6ej8y5S?7(h!Lk@3xt)o<+Mliaf_xrSw;I(r?wOsZA56r6-FODbZ& zf^JW`)bW`f&)!yOIWeK?y9 zI(}(0M98{cpfO`Ui2tSFIgHffS@yJLnT<3p+G$%M=blc4Z}r+B7ucf0EfGpo2Z8}+%TmM=M7^S3kHU}pe9ZBTEm%)ty&@p1LmpJW6G^4h_`o)^Fp}9e5 zuXd?8Sb%7&hIUGttPGHsinHWdBT4eoPnEoQWAY5AgNtliY$8vZLcS%g(-vn3r2GuZ zMw_nL1VOM!1l=~kV}$8h%zwV04IZFgXhxDPZSPHiRmrgdt8yac(2Dyk(x8d(beIrh zb1j<>c0Gv^$?%n9+t$``)hKCLz0z+z?LPJ!YZvoGj?{(rK6E@nCEwCXe#)q=UQPBXBOaBKPOgr7_8T+K_HZP~2) zzg5LoO`lvkaI3aY2K%3FpO4hpK7Z6?@KoC-Sscx_nZx^3oC3XoGJy@FXX9DaAHANf zcHJZk4~M`X;-7O=x+&|@e=`1mfd4J=-+wE9U@+KGGI}jOeCf?%zn00ZocPeqlq*7q zj;&nUpyEB02TMfu)BhqOt3Qsox+XtYl3z(bwv!LBi27y+`N$|{dw#^WzU7>^0DTep zmn-3*2dZqN-9)>EOrCp;OzV1fQ(LqRM0tlRVL?xJMkDS-_{A8lR%*E*2U|?o0*lFv zYqPdnr~4YQtJj+JUsDneYb1QsB?mW*)cg4VtUpUP-ti$a#q>=)x8%Prvxrv zMO{{ogTU%EA0xax&R{-4u<&I>sZ@ZGQ?)q9zb^{EgcY{zFrk7nf5AL4%RQ&u;?ZMw zeq@8^c8Z6f+C@{X>0zcLiK$LDxe@^&`!~h2li3ML=>AOtYWp_@UP5t7j0X63mjQok z8SpQ^z`njw=ucXIboyH_1Af6W;IB2p*Kv!fq160tvGqc>agRLpgV#{@Fk?%(Q=h~Q zZ(0lTXjNPzs%e%EM$vG*`r+D`)W~l*kG&zsrsjor37EeEPVC1Y=TOJ{HPfj4M*BAes&sM@)><56Rnm<~&oI#;`8`t&KzGI7{r z_;XOlmUa8}6u)9R+)H%@X!GyCEfc#BV^6TQjs(UjzcdkBEP*a&C$jOJz(*%P3P+hj4QvV!}eoyVFR5*ghRjtA(dm!jq1C zaAN3d5Qgv4x1*GOU-BheSgN~ek`)}vwxD>QO><3h?@KjeUTj&g+nm523im|1Ji|_d z@tY`vx~b;AFJpC9S7>zl^ww#KxhH9$vy((g1gf?)7M{)RJHbex#r5)*;)SD?5#&EZBpC&Cx)JY;A}2$#LF7 ze&oQ4TrQ#)x?!MF;^9glyClH1ZbDAKL=hF5cUEm~Cu=rOq2re2tIUtmfy~{hk~_-t z7THJjHqtCT0Lv)t%K^=uZj^$fF~euTAxx(a(scSONF(!C44!zafn?I*JWy=KtFjS7 zwWcel0~imy#{*P)6)}bh6;$a6z|7x30C`qf;X7v{-|w(3SI$Vp9%gK&H%zFY%-?m` z4qpSfa%Lj%2@L#e1}0Qc(yYus5TkNdBIJn-`8q=qDk$?$1PTg5)qGXsZE@u^M&vZv zv>}`3QpPRgXP5}VvVUgrC@l627z9E4l(ye@wOctmk?Ki|`36%ZR8VGwDIMa9$kX0o z-a*5cZszrY=Ec?eT!cujSK5ZPcMkofH$f{p4_;|IEzWu1<6YL{L$)3>tVcg;(dtao zDHEohqSi}-GJ`aB6%DJn(gHBwIspxd>CuY*Fq^_#;2?Y(KVlZjv`_HF9wm#~@Y4`w z+d6GKr-HxVfWO$jR5=&4Fti>D+OkekDABqE>9QI!DJw|6cn7&xn;ThAM@Ve8R0|i) zrJj_yaPEtDfHehU6#}1uz`|EQheL&(6~k)toV2qC(7$EdQ<2C?s!GRtrbHBS+L~83 z{cu&XNr+|K%ECmLIIC6NgXM4`V!S8mvAGDx%6v7SWD~_8Xj%>3GHV|f>>_*~&xAY* z{8U-hEG#-)j5>MmdV12>9oG;G+t3iJfD0BHW3{*BeTmf~dq2)(qS_xlhvVk^Y)g+w zTk@k;ZA4i(p7|F$OPL_?u17_Vx6uEjDj#5hsov$(JwxZhzazbO&|0Vqz6+OI70PVO zUieM$82$z@3DB1DB|xUV1;(0lz?k4#!rvkU7WHV(z&YH~qezdhgyC|r_kfAoz!8>h zWlgsO{QNZLN7h`%fG2611>9!K^?5{lAJL}YrT4h`Bl!{*%XF;{Yt^-TC^vC-y29a- zvgp4<^x&`Z99V}%T-3Aa0EoE3{lCbI)|IL%G6p2O_#&3Hjsb^wmDfQ<)E(U$0>KUm zpl2Cfhi1zUP;R)E;}=pBZiMIJeF*6ZbfmskD;*Ak!|Y9RS5#F_ne&+tcn%Wx9?>L= zwV1`^-H*5GlHV@FZA=jSB&`V^^6$yzqA@K#@OzgAv#HJ?r>s;na(| z$)X!ghT}@`@B@TKy*v}wOFWK{ZaO>!1qWL3n811FhoFajg_;;z{_jBmmjI)O2Bi<- z$36<|!qBqpM&Eh}sE-iGty~0>@hEgLvZUh(p@Nc>g+#XW5eT&g;m2^=`u7Ee39k7B zAMK?-;1^5U*sUA>5nc_0C12V%a0r}%aD6gwNj@1#2xD?z;HN-LMSwrSo&HMon!uy0 z%?l|A?jptEk<1!S+8q{gTxU;bt;O2zT%1Z-aI5+;zED8oe5?*hr${Yhy{2+8^UTsI zT>{uJKLy4%;K{r9AERt4moOM#`RHj~1dAjN&gIXgTl_vQGb=udpV9$nB_|LT6cqL5 zD5!~w`hcjv*2kKpsO(KZt%RQh!O4o6P1IKPsBT5=PSlb0sO1!OHc=1Nqn20H2cw`? zP}Ia9AlByiNwCq=qPXH{xUAy7L)3vFKKxuxu}7+0MgPPfvZ> zj*wRV<~km1*{%v`ajSZiE!#tgI=LQY%l1m57F}3J(3UN$uy{{>EL*k@G1hPEQMPP9 zB`R}E9YI^Rtis~hdXz2ODS#FS>rrvp4iUF^1J0K1!;Uk*cyI%*Rm+{tqBy?+*QPkO zi(;h#*RHs0pywC)ldR{lin|a|iZ?gJ8>hI(h`CHYZNS-9MnO^hpaEx_*tiF|YR)@s+BYD1@Joiw3 zbS_$m;exW6Zjt#HU7@rbn650wpj!G2!^;W8LP|>@cB(|6!|MZ0lt2|iMP5(lr7pY@ zLP#d4O;T#Cs`@ZR)=)ht5p8lUT8)W+pHjDt0qHJA*rc3EbNNED^d$1+YGkSL#>iPs>&Q5*6{^9d z?KB2&)!+-N!Q%u+XRS?H8>-LlQT5sFX;-3UfGfu};KnNMc;bc|aN`tr0&yoc;KnQN zXyT4-z;!6@7~&Q-;3g=JY&6BoDUNJ3#v5iIk&Y7Yk4QOZpqGEj{&NNU&$0NL+}!6I zd#~;Dqjl_w+Iv}zjU9WE0HjYhqK28euuzjnp7U*R^C$9lC3)KuUz6%p0~xLQe~>ziqjpZ}if#Q%mWC01o=%)f}9+GmN`N$@#o zw5(Mca!-L*lOChVzXqz4D;KcMo`)ZE3$$=8lkUpAQJ_5&7nLEsThsX>>$q|{!<@^Q zw=pJhXU8o}i&2NHEEe-_opTA^|fp`&rw(^5H@xLTfTEcRq8hY&X!BR#E^Lx~%W zlb*IB)jXvsHBc+Zp7tVDxzTZBi&Oze$Bipe%^MvzzDPB1bXnc)R8y%M~QUx3xS13|-92Hl&o)Ux06j(#O7mcg*IW&%8LIq`9m{g3% zA0I!%6fh!XM6bEpRYPb)m#T0K@oJqBcGA(qv2iBD@$Qr!@bWoi8SEjiSbNA61cNNxMT*MsJO9{||5P0UlRz^^ITO?YolgmE=`3NN!>* zcLVlH;6^coZdweX_ZF_%#Xu}}5di`rp%Yp{Gc|-Hgiu1SffS1AC71xAw~z`+z{ll>X`9_*2rqg7kU9 zt1A;`fD+s#5X}H(n@fN*5OwRsRo$H;m()F4mgMSQr^Mk(-RsIKUfqLCUU&d=PM25& zH=mKWE6JOIueEM!EAt6y6_J_NAdw}8og>G@Uh%(3XZcsqS<~cXkjN54=p0tPijlKm zqI??~^dP+gqyApbEA~>CPa8MmpdsO(Rl$pPulzX_Bb93q$-ZSR{%eQ$uN&gOeu)3a z^q2pRzEruP=KP5`sf?=pv=-q6JOEMoSn)Zb7D2C10e1a2NvcO3(UuwzGN%Qg(vq zOQcxd6M=(-N|4!rZznItZ89hXVUZ}bSFj_l?MZD7u#Vzpg>dV6J3=EVwJ^ZCO4Q)M zm)aa)oz>$@txBvKe)IH{cNiN9{-B7|z9HDa?_>)Owj*D(f&an75huv9Xvr?OS8KYtTmj!#+VP4q5E>_Mmz6 zodak*I0H?!Fo#;yxL6=5%%L_JZ@^)7Q<%eZK5AR9Fn3?zca)((hQ$XLPmdJyS0Mp* zezFLqEtA5WXec2rRB1;;32~uf*{?1xAre~s70Npn3?dtHn!8PH$27>H=2QUvG@d&R zprFpC=W;tJ6+r)-EzEc`R-$ZFi^4Lwj+H1lEr4=8R-#n3fQUi-QB!?Xi(NQO0)yGG)&k@7?0mOqZ;A&14cLox!GOeO7EgKpzr<2ev z4a#j1dbm`_Jq^J5(M=8BPym33CJ@Yz!Llsd2h9cU?Il4IJ1p5L_F2G`Y?A?qVKnOb%OBI13Z>aJ#61^}FBz>g_%61pFV2|F`ka?MMC*&a+c@;eQnBOE#1&d>{Dx z;l2dlC_YEaa{F3w>>NfLcEY+goe326GOYn;M;%j!kIFU2NSY?t-6y07E@Ai2Oy4S>U z7}th_EJ({(mF(rVw%ArDelP45#LY^SVK2&Kq<0&lVyv=zn=LpN!F~%9FiL@E=Tmlb ziB*ecC!0&C4{n0OD?35&u3;xAE{By{V4HJ5nTjh(9#+Pd6gRA}8O8Z|xEY1rP$g?O zpWaroc%!P;qY}wQ$sosqgOyeAE_+R5y|J5Vx%u9)-uQ68Gwq!O`abe!Wz`X(tcvMP zVa$=cCS8id6ZfKX=X3)%C3feyMUTBRxzfumSlp08m*tLa&<%%d@tgbDi)TXaFN1k6 z;XP`V?*4dsQM$>FLjO90O1O0Ov2Ptp?VX?A<39#dk0%R+wxJ+Oab2O+}nI^HI78 zSx}4MVu~uZjt<1@>=xXQEM${$G2YV~AGLFBtW9}5bDm(Dyi@)fs$ZU+@ROK6urb(a zO+wlVW*~knVP0h;AHD< zIgi*La7gzb!QGrGP9Uj_xs<*v>yRYykue}!rutHQKaeg5(v+u_)6A;E>oF%N!3+1? z`wt0)J(^~1+Z}RbIC9bxXA|Z4rcKn-w-CpA<2H9~^mecKXXie`TRwc4h*Q2oLUiXbNWrrJ;OszR;IG!)?}*GhZURetu8i&DsMvD z4!Ro)&g~ZCdOr-{;llYFY%?$cjQy!PrQJ<{Z zPHFV!Y^7<=^35v7HecWuOz~|;Od~LKvg~;}DHb#f4;)I8L5uJ(z||UNC8OXA3iy#h z-j9M2+RD&2{Afu`d0;L4d~H`(2AY0u?dfxgxQ6s2;Qw{{E#4`}X@jI+mHf9O3)v!T z2Jgne4dKZ(Y)Vg)%Q0mUXfWG@(0IWH&Ngr0qb_-vJ`ZI@J)6WHOrY9ma3Nk0GQ5bMI6> zZU>P5))1drl@TTmX~sNquxZL@i3~v_i6n%dpm9434=|A*{Om8f5UZ0kEt(f-H+3H~c>KKBY zCuB75=lV#;frJafe3plZiZXjk=-{BXNnn^nmTB^$rObIDP=Gqc&fb#I*<0GAF}LYI z2D!Jh=(J3?VFpErWGpmWoBPKgrEz zSsUdg{Zm2J$%K93wlcxeZm=9+ZAA5yOL296L~vMXKz@8tOrfv|r1i#0Rt+W@{p4QBHnih5a%Rr(PX+dxO7UuuCRID-!>jgV;7@%8MOgh2n`x@}$ z=}=$&HrEVOkxl5UGmy^JyHQ|HpXg&$El)$>AfXauvOpTLOttIOxa@JY2`@S|;ObVE zV+kfo3+d5yZC3P5?X16GB2p6NbIjZXCyYp_RVJJY4};?MLAXD+Q3iBro^}U5I+v6+ zlFq`5ROI>toPNVPY}$M#6I8Be`(r2@PQopW_INov>i{1zLC`HddzGooMJC03p*OAp z$Wj%liK@37BiRXAtXyRVH*81%j9jSUT)Phx_c&YVL^?XxW$8>u;p&|UXPbidNr*RE z@Hi)3GalY~;QmH10~EL(fS;Qjp`Uhij{tlfp(8!G5xnXczV%guj0wgm|!MZ(f-ijE!ftr$F}zFj^Q2{_z>BKfq>eB zV0~a$?}5v;wisL627nF{DnTZP)+TGroZN*_eJ`G!S9xbuwYre4v-GIVzj|+ke4OMr zBzZz5$TW~VXXuThPtM2;9k$yrU*nZey+tUZH3Z3J!Vo04HDwZC52|756W>#=mL6UA zzPAdVU>1^xF6;_cOTx^iFDWOFW#iWz2Qw+9ky!VuK?l6$nJQq`RRo?|EzPIo5|wB% zn$y&23oF3s15VISf}sjzBl@5M$<}2p8`SuP3S?s-MN}ZyhPq<#HwR(;J9GZZNl+71 zAXkUM+UcwJMG8H^LZ6E`gM>dATu8uAI-U>83AI=u(#G&d=EK;0l-EbUWez0i_WkA zF@QCTfJl!Y5m7dcP-W9dRW^-OWfK+yc_53PX}Bn;qROU`b;_oZQDqY>`r9;`B55>f z8qJzUv!>CK%(r}X8qIZSG}ookh}lA8zA@i$=ArW%P^BtC^u~(1qy2gti~E@WXC<%DLb4i=$&QUG}{#W5q#rkA?YFPPHhvI{dB- zmAUKsa;JfJ(AcSDFPnJt(JqKbo8|m=QI5PL`Z2#UoBFZi`D+#c4;M7v<#@IU+-4-| z6A>u$L32}*!FMzJ-JIWJ3Tz03rkWN?4CQa@83*XGHFGNlqO0kFvC2d7!3ioe3i-X7o|Jhq9H$PeKFo%j1v}*&5C-WL z829-1@(zT?cr0lT{F-<>!CT!I1(B`phu@r>hiZ_cPmOYJwmDwq!PDkMbqPPo>QVf_ zN)IVUHvnj8GC$!A=QPR_PcIEya73+KON?upJ($S343R(^PE zK4)Df4~|bHYQC}6M(MUuM&w6?QAV`p8#Ky@Xp}Y^WwMPjGC#7AQM{3@F1eA>80|L3 z&Nc?RUBPja4-?5pqjYGL?h8@E?V6jWe3MJ3DNLuS&GFb2joxXaUs{XaoNo?u)*Kc_ za~Qul8h^CLU&k`sl5Z)bHH$5+dA;41Z;3`&$7XScjWH@e%EcJfn$K$7QPCLd+8Eo} z>=p6_7o!lSQD}2<3(>eZFRV2k*vPHL}%uQk$jHo^LNCHLL9*mG-v0gSF>vA-301X;3Qdw&*(Y9ga#ztBc!F z7o$;Qbl7w|^PP_S&M-!2o2#hKFx}2ND#MjZr%iWsezZ$>bjbbax)>ug#%LR3o%}k5 zl;(GxFvdD{F-B^PuHiPyy7_foBI~y1ZRB<9qU3FqCL5(I-{n&23Uk+07p2KYX|_?i z^W82=cbH0dU6f`UrPW3mlON;Ca7>uWn7Sw}HcFd~GB!WfMHw5WGPW+tC>v$Gt*LSO zaW4Dg!c@kEH8n15XXEO~IKei-Huv%Q@s7;+Fy-+fnelazors%gBTvXraD_7= zc|u)eC+vD{>UN4NiUR`7>0lTKz$R=-G zWD}-r!pNpBvXy^bi*312%ujR$HZe?jVi_b!2+O2HzWs ziQc-%P9*Mad6<-+F&SH3 zmUxiO%9Q*RM`lWxl__CXrqo65wvi99JWS0`b#*Z{8u*1>G|m{L(@Z^riYZKhm@w*Q5t6{omZnYBR|7Y zni29eBcwDVq%@k!Ij%Kf=xkHU+F<*4~EQU0TAD15ZScOD8~N8!OxKGzkvtPF-Gjd?Ni(9LQ8P;y;a4dbkLXjp}% zMYb&iyC<_Jow_;Htib!0r3nkX#$8-Ksc1E7_`H% zi=z`Yjr&G;9tF6yhi|iZWk(N%`mqYs+OXGP)(6?jV{|8?FLhKNx4h~)eSp}slSE9u ztIczp2AkqIP9yKc3Od&9Vk%;s<-d7)vq$Yr56Uv;2ajP9ot0Cpu#F%VSNUaFGe*Kr|3r|qu@}~2{^md;;4_&xI9AhuQ;eIxn*Ia?$TT4S$VkZ>*s^qO!e8o06zp%Akkz$^pF zq#kp-2cYsc_*uq%Y;^Q29#-guUv^S5QG$A&Hn;~w9ikX@d5VQq`XuXF(~K~IlGcNC zHzLGQV6hdj4gDaZ_i?s>BIJ&7A9p143E2lOZ-vg$oLp0so_sRg)_9+4AevOdwnm;> z!spPQoT7OFGlUT>J4mPmsXh^BH}p}L=2WJ1GAakURo0p2rO54EJ@hA~p#_?@8R>~+ zgk`HIk8zyfE|zc_p$frK0{dbNT6JBaK;GJfs8q}NM%t;AcSa4~?t!xzuD{a8`^~^J zXb0MwE^7Cd)NF1AX!BM>44YeW_+9nI+PcJwXwE+EDM#w<)1Gs82ho&Lti6`ikS-{$ z(!fbC^rapbg*jO*3XJqD29y$OG zxSp%c1oBLsyb6nlVrKr)8rP)k_?c9p7MiHfbuWX*-+aUFECtfJil+9LRi8q|+XDU) zIk6`oec556ehvEpj+g7yJ}i;eC#o)u)-Jno$Ft znbl{8_@AxwpYEH<;98G67_oAfmE>v7$x_C>ADU6?oh4nv8uUQ}`JI3K6Ch@u!25sl z>W8lg!Pe+J5HBoDS`i|@* z;Ny*_|7-8aI@!+iwoHqBZHw<@rlY4I&qdGF;l&>8y*>m;A>%c_$-zhHE2HMJCxP)< zAeNPPdf+M26OMbdYxO0>=? zFFo@>zMro`+7@g20l*`>uY$jp2AmJ@@O}eMEU-QFy#k<2&hTync2@MwP~gywy9sv_ z=U2c<1wJ6sRAP9t2Se$dY)(9royQY3+!OE7Q7ckvX)U!~5r{XuVu*(K7a5I3rQ8+2 z0q3aZ6rMoGdAj?UTpJ*$q@BTab2^QoOA1j>ZowP3-myS~SBqGm5y3$_ADfJQh$(k& z@)_xjl;O?O+q`y^$uyKT-;$q@?MuMBs=4|C=C=Ku26Sc1$D>Rql%7W?Etrb9UxB;T zy5EGm&AQ)*yWP6~3U`Nf{}b*`>;4?>(bgURC5&TOcNXq-t$R4!T^aGLY91snmZc;P zitsc*-(FxXwRsl5JnF#zeB_^UmH(VGy8q%Ncw(|mvq;|$mhGEGa+Eq&-3K$dMRJ8K zR^6NK*bXi7c3@5ZX1x{^4u&dwhfZg_IJzlgsGJjGjYsYzY|JV}<(y|WLg`O=i_ZYb z09nAq?tb*QteCZL>CI!GNRCkC6IcpjQi~HsHge)Tv#~}_XMnqvQ$@*eGj6@m~ zJ&?2#=XFh)zaN}J37glTgdJD3wO&7;(x=_?DZRdc$HaEzW~?kv$1o0-r{__Am^nyN zCQ&WTIkA9Ow?=)zvYkw)%GhDd_U3bT56+i8!x`+m*<{y(dF++RuHEIGtYp`|*1t?1 zLrQi{#em(40@k+ZdmX@@Y2!|}xP4!NyA^QPUk!Jbq*qIqv&3k+1@TYah(a^jHA$XB zNp?-C<0Bc~(?p-pSx%{d7ODNV0Wo7$&K(vN=fG_d)*XVt$;KjC^IL@JAwo(haCQ=H zWLgG`aJSX-HbB1E9|KN6@z5Ij<$E~Nfllxu`{m!z47+-4zocC+*Dtq38m?dN4!7%< zN5bv;<+tH>{qh31UBA2mZr3mGh1>PZr{Q+}@@=?nznoC|J3U$3V_(E2@2;Hnq;G+z z!FpQgX|$eo=^1W4z4VN*o+3RXt!FcO^47B>Jx$iL4?WG+a~M4>)2k~ zIiDU^EH}~P%H;`qT*16gk1LtD`JeomjbGC3N1DzanvTs9#ExPXv&-+XKFH&h0lUw_XitCA+#zYnsJH<_-9gB)1#7!d|i;C3b#KbW799xfBnSPhRX`*CN@#o^EO_D{$tHezsB#VmNhmMKW zkwwMtiTeA%k6bOunLn&S?M>l(j-C8VG*_rW=(}I z)1Zy*Be4oITY)MP?!!Zx-U$9-rfc%^jZ; z#I&pi1<{_Pdri)$)t{qNo8r1=WTG}{T{G%gzxBOddnV}PH5(U?u1>98aWWPQ_-mSY zPNyJcd61MO4qH0&VuRF3$|=hbLMunG{-&nR2ElQ>D;s)Wg;&}}&1i~x8LMXUX%I)m zSeY#6v8cFp*kF;ioBMAEzUc1{ZCK;X7$UfPxwBCRxR?7kdkX17^by?4y_lbH-of(5 zQzpdw!s1=4c-KepYIfQ6bg3BZ>kP2Ll@)s<7D}^{7OFORsTvYXCJME0q3!6$VD6?F z1zO$?ZOpW=Xqk@@IJ5b4sI7xG$r;a5jRCw5{Hdm=cEAuzTR*BOVtkzowE6+zpqi zYoUC99qkrUiZyFf5I@ zTuw#P%-eTlprAVx!I=qb1t{Rar}8+228TBVv`?AvE)Gzj7PC(1gXS?}2%zbSr~rwUSM!1R1fJPEioA zz8^t7Iz%N@g2bTqNFU@^C1Xgic7@uEf&k_6xBq=CcVOg4bX!1+J2Y%B@IeXKD1ioz zR={~aTTIKh&Yg$E^QlxADd8evoh#g-cz}=&5t0r8PlpTD8m(qbMDwZY2a%jC4Rb=M z1Swf6@PYeb1oxN_mrw~(+^LHDQ3Utc5SP#@e=Ije_IptNID&m#h)t*j8O;AD_3caC z_yFro4f{*aw-A)kk%$O0E>x31bs%_vep8@f5mJ4p4+V%a5*h<@6fpEaTsl(L=SEWF zg^~Uf2}o7{9AWiafNLuuRD!e+xU~t~Pa?R>LR>;6NO31B?q4Ff10gPLzei0#fT1b#k3DUGj zA#Lqdn7E1RNIDd^c#zO{*N_k*=vdU?@m|*EOv@kOP+~e*Y`i;>O`dsZc}Fmq!|vVP zh*4-vru7O%98b&_zYS16k=}?`&S4=(Lz0lXxF)?5qV;hR3lCJ0^vXq-Rl^$dslH7R z;16)L667OM`F+wU^u;YbwjieuC}XT$4~5dGnBF97R8?k1rl$D>n4NbdFCxq4cgk`q z*PUd0k>ML59B;-)iu81r4Y!pC36&t3NSIC(KovWQ;gIyb5R*^|GNXZH>ntsISQnxk z%XzjcKi+BrM8OUBossz}hWwD!_ep9OKnDqxAhQlgH6;C5+8m6~%EM@ieA}jpqG4B{ znsvz#_6I^LXOPO*Nrg}eGF?Ezz$ZL)V*I@vb-M+4f|($*1o$|NVh)w>5caUm5E4F< zgoQmqtNao6BJHE0ych|?z?azWiWir&n&N6LB;lh`NG`Bt73>B)j0#i?!O+O=^rdlk z`x|iN@#dtoxNdOWw<$0(2-yQ6!Jhc(Z;n7(gS`L}6HS>3%?@t@RLL1!ecBsgt&4+w z@IfN`;xpx3z0QGGl>c#t}0S!90hU2N07`2{Pk>#Oktkj|RQtKJ$iy zAlaK>BJ80OylBS8Mco zXS=ytO5WW58q(k!Clty$i;m+?Bad&$UX$1pa`zfLaaWamZ6$FWPaNQ#R-&&F9zU5j zCFEUpZ<&jeZ@WmM7KDx ziwT+7n;ZxsiX!krZ>pM%)Xll98<7HpN{}2fK?iJM2jrftY_2vGxC@h(`@fKY*C7pT zvB8c`c@*$CrAbyE0SnmYNCa5iW-E`9IaryK=9XTSERY^e`f#JgOh5x@&M1@lREX3X zB5}efNNDJK>kLNVz^%N^B`aFp4bsDZ8fGySg)<18{)4d8w!dxI_7mFnVK`6wM#dHy zwv)m_N<|9kJQk9?fJSJQKc)o@x_NSS??16@RZ$tgK zQ^q4sy}kMsO=r~Y!tv$Alz99)ywDxN$`|g*Xt1&GZ;T4I(Ac0${N4XquPEu#8>VGS+gL{ z0CPoXu|!&8{#KWl>*QRI(n)$VL1%l=v4&nbklET*&eE_CUCWbd^HiImbHBML--H0@=>ubtf?GJghQ;VKe>X`87X*T957NAlS|# zpmRU{E{+|xuVSixmdb46_4^}+nHv$wC}g`BG?>T-OgN$|C~&`+*vJIzZrsO=1OSnG z&q?_1fO1fsxzEWeg>5Q*Nh9nUUXPT*<7FSH@>}a-JLriU5GwB|LdywC(AA~9>k)Yo z=^c)SpG`u$b_5(>wGFTxcF}ZSAfacON+H0PH*{NaTBj;U6T#1}B!G)iaxhzJFB>G5^kttT=;@!x)&*xmm(NylUg>80U$lV-yzvJ7NGKR z_=#rYcbX09AJkoykmyd}S?UF~P6?Jx_LCQ1Hc+6&+5sL_TJ>!nI<5YSI%TWB5)zq^ zL|Q^bhxO{(bXc>!$@}ZP=vsXbQ%@Ss<6jg&zfs=;R-(>EvtuX(W0Abar|6 z6zNX{us;c;qkN#q?^$9c3>n^Eyr@6bS?)Kd5mmRKRf%wSDtXEY zXGfg-S|H)=0$SB3q;6m4od8(rGPKwg1C)wb!)DEIN$B_ZDenc@nN1E7Um|J0>8LhK zM%MKQ#j&fo1IVQnpdul)cf|$%_pgBW-o9r1J+YryM+dS65A@b#OVu}zB0)$Pf+=D6 z6$wK}FZOsOJZ2sMTCcaG^*c$UP@IHPcCw}O<+`>hqid!I&s zjy~oqmT<$pI9U1IY?wC*;#!?&&KZNEgD;d{ z2g=p-BwNdGh3>ZUd!f6%{9)+sD1RKfJIk+x?$PDHgzoY(G?PJ1Q^#Y~D=kL4&?}9{ z{GEEGXE6DPUTFnCp`Ktm_}&e8=A|MApB3zKFTkZ|C%N$!#AeB?gVP4{B7(|~BVmc} z`ZH}G{|0n+2c2?{q!z0@hh#)Nl}|%V%*qJ}k{}QafZc}T9*B_+j)%K3BZ=@{fIW)I zdk)oJtaC2KO5qE{=lbN#L)+(ZzYa&j#Bgr)Vw@7u4azDw-BHT{W$z>(g?4 z?#;L>!njYYG47M~afkA`kMdcxe7>uEzPTEo`!cOJ!n9snV_L7*r{(zEk8$4$byH&or%1!?cF-c97!l zXz@KG{rrm%pLV?1&krVV?}og+UB_EpKYu4=uzuW*dAownA)r$`H?!&4wR1BEhVHh~ z38A~abZO}BDBTshJ4;W6?!oaQGHqKPnBZiqIFKgfa*u984Svo9JNT zP*|^ni9=xe&PgZ6pl#tl6!|RUOc&>q8{iXc$e&sGN#;sNHsJueKxYGxGEf6!T5Tpn zc;Ip7U>8(Ib9^P&L21*EFzEX@)~Q^X>W$jeV;K5;r`T~k3~9xT2YCRkXz(`(qu{!Y zF=8cyf6)D7b$?3tPt^S{y6;l=7j*xc?%+oJ8jzmUKNjR+D;hx}b^4p&*KmafbHG+l zI2LN&xxWn+jQqJJSdgXU%Hap|!3Me;@uTyv+Sopc#mRb_>dI9dpaj@t!Z`1vn&oih zRY9>%!)0XO7(g)y6ALpbelS7V2STmo8IUjul z(t!-z+xCkT`-Rj2<~(Qm17sM-O*qex48D)z!2UnM!Q(X9gMKDyajnnO1K(sFEj>%d z@jepLh?wYtBYicak7{C#mXxAWaBa=c`At7?js&ejRte~wPMDAdCBRI#uLXF?Zkz}A zc2|gmE{>dMPk3Jg4*&cr4o-xM;5I}rpELrq0zxIoWB{}4#hX&%OdN_2Lx0MzIO_4S%c)`FP<)(@R+u;xhHEAY6Nkd)IG8x<>CSgy;!ykr z4kiwTZQ@|!0L-=3K-=oUwyox(ZPm&92hEvzFWWA+XC|z8iE|C!$2IR^4K7F92j_yk zSY z^R%^#Ck~~xjf06pVcR;GI25*>gNZ|7+dG&z6t;tdi9=zF984Sv+tI#!B!F4kt}AQ#r%61a^-QxR3-+BmqLJ{4vvj8;M03+)-YK$4My%b_I&G2XTN= zz`pKa;sC5ZPbby#L}&2rXr2hE?g0WWPZyJ=lgJXG5@e`mvw0$Zggf5|fjuJxE+K)F zNr2EQf6R=v=4mldBv0Z1|9AT4R8X-ML1%DElxadDOoZjLojV-gr9U2Xzr~Hf_Bt_VP(J*=$iUNBn}kY`*#Ky{RCVtN+K-6#U7`^xL1sf%`Yil3q^tWxa4#k9 z>BJ>ef`aeC+n5aS-=iet+i&KLmNdx^E=a%Meoj5mO~pg3JP>YI6XZjN4)^ z1&Z?Vp3*FTsNdjYenI;(p?y$<_EiWeUrySDR{3K#A?*(sh5RyZl=epq*vk**Y7#E^$?~!s_x=*!$e$eP2S2ps61j0%w43D<~nc_qw9bid@H>IK9 z(e$`WeSdus9(Spa>gVuMUkB0LrM}P6Ai_(1*D{W~)K_=|9(Sp4GCg{!4_Dn-8n#eU zO}<|D<;C0d=3M@_%Gvs0RJc9|9kkq z2>;jM|7QI6LZPq+S`NQ^+3$Y#dw~5OWWR^l?_v5iZ?lSzhgg+(^%$4Y`3H_6>&on4Z(>EG94nXBV%c{#dE zuU`r~X7#X$z`6+p%2!cf5h_7uQwXf;;Sr=?5b0_n5h_7uGa?-kLAsep*AR(N2{M}# z>6;OxUlQqBA`vP6M=ZB$rACkK>za5INU~w>WMDMkbmJ75>$uBAK|InfNI)L8t_o zt(l2!@Z;oA+`9~kRG5bvbJbFW%&$o1XCyGTRa9=m^rC zM7oJcgi4Uvo(%1PpKPp;d$5{yy&UskSTNDHdM>c|=LeCt`U_A+VLSmbA!S}&8cFvq zrh7BfB~*gUA~JVO1nF)f{gOz8N|4!+NXJHy?jh1GL?Tpz%udX~&iD!YQyQu5Z%OXhk6X{n( zB2MhkRBk?9Yi8jg3NAYX?L>3@sjr`KLIZ%uuSa=uY4zBWc|`1u0R8vyn)58 zp8_ux;Pgzkp}YhW;>L8TM3nm}aB*M)({Y>)Jr!73c{~oFPKu5JAd@cb_gu_Q9c0X{ zjKowL;ANnoGYSRgIm5Q`BfD%}8*z*6OsG38kQNsR#A#ZL=9yK=qrg%5E^uzXfy@PW z!==YL`?uujJ)Wu@a&l62++E&-uj}5~UcO(tf?CEfL*;uwrT062a4){1=Tv7ccRZNJ za||Wl5AFk!Z>YsMQAxxYU0BNAETZs`3J5eHHK<$g35?7#+(lEM%&ECJ0nXH3BipstSj8zA*j zEx#HKhDdas69?-LjsIIlPbMvj%r%wQ#zIVFtcX)PM`s>5m5$`$DVv9o?#w1O^;ULmXR>_^=Q~uk+30RDcFW#VOxoLb5UpC0S_JF zy?o|K@7A|Us_JeladDvT_7W%c>K^1m$kKx@vO*tq$Kn8Or*A(MX+Zz*EvtVR71ci+ z8ME6s4}rN@z~68i2f8=NQUrBF1 zzNdjN*j-!(zWCNs0et!9F{ap!P<4i82nQ&dpG9?GgK`g!JZ4Wf{y1K!_vb9-yP#XB zeh10=CKba-wFSscnd9$*ssP(6do?*SUTMM z3BtYy-d12Xu1CY<_)s=kItNFzf?r}5Q634cG~aN9yFt#VrFC6TQ-RAfa+CpEva1bP zuqO2vL}^ZxpF>eLC(GF1*84#Lc4hG%V@rUYV0>|+9v3kaFtGSM`_K#c>B%RXGkSYt z$O-lg=Bv1V;A6=)VWEzLzPE=r=VE!)J?cWr%D=x#5S z{^Z~trME+OXKD909ej}0tY>fTXDPD=ShgIOuwRQ|3Fm6fi>L+J-}^3u*+;|yysdom z2L$@&W&BD*;aR3e?^i@;ZB@tl zge@SZq53^R!A;a2)H%_|T@GNsLNRR5CuF>yX&&)V?Wb2BL>H%#lKCTB0k^|TNom}jwo-5ES49iR{{|U(s3gAIK^kB`ZP@@xC z8a@vZaGr12Mx4wO7kk>VG! z#-!;0gLG%C`*hz7hf}%NgBjw7(kt65Mn2R=3N@J*Fuif+Of;y{@(nQO84D!nS3iO> zIhQKEb|nh*Q%hI-O2V6kc>MECZZ?YJV(@Q^F&_LD@$}d&jIg)4;FatiJ#x5@?VQtH zoGe*)nwLBS-j3=eECTey7Vlw%TnL{0fgb_ZPhFc|{sW7Set&?8l{NrZg&+p%xYZ_* z{Xz%^u2+EGP}~zyVVmG=lqA=E=>Q!zTN#4_Rob|`O;4~1$T;_WxRbRj+~=^by^3hK z!o43V5|iTA@>Wny2Y&?69*q3q>IWk=0ekjwffwAQ@29Rb(K>%7bHEc1!;pR-<&{4` z{DOHUoY`O(AQ`McyIP(Kb^$|BK@KnloKYSg559=BDek9k1sWG4jqh3 zScEnO$#))W<24k#*&lV0OJQ3MH<4Qw;myZXFb}no3KrnE{1no}8ig=g&mw1(Gu)|tJVchK(BUWz3B=_DmBj)t6YUTM@zmMpJYpA z9Gemv&=1&vaJeOG`j9>@>M)?PoVba~b<#|vP9c-U_k=${3g%y!;`j3ktUo})!Gmaz zHi**Fd_cLX0LbxXZ!C1`S0W!+e_Vhhb1A#7JsK++1V4h{a6N<7i!8k$K7~e7 zF4AIq=L0b8=7|m7b)a??_>{`bmZqRV=3?eK==~Z}X&F2l{YfJ1Y^*+qskW7uDQ{P#e~qO7J(L?(GMtwFb8$vr_Eb;9_qK(@DxYghkYTPd$tFe3RZ|{mGhn(+%%rT#5|C zIHVc6uXem=2`U$Ke^T*`vsHljv;pFYU7m#l#|5kGWk-yRNIU^?{62 z;_*a_nG7dh8D(rO-_GfyygQNLPiyJxG-qw;2j;&dZ)aU+v!6jjhtr|aCM5jCW%`;c zb|dkW%vl>?Y$4#xG%a)0bg(7d!m(Y7>NDhZn+LVLpfUMa?aaK^-M?w~_CSgM4Ee%= z9WB}aLCz-r|H>IV2b2w51*FXPu!hna>%%EZ48E(98zWpM+U8IU3!l3KtZhbnf5Z3Z zY)`?{U@w4K8JI!b4Zvgob1qc5JxMr^fRre2RauHLpDm#lL?LE_I4Ma)!h$V9N6wU` zg0I18->JV`GMAL{$D=uDc(3@9f)rLP*b1n=2uA_L1(4`lNa_KUhZs(};Z6rH!rkaM z#pGFF!G-%@peHfxf=HWVoh3QQLDAtgc!wYBba=n?X1?XxWV3fa=-*W9YyXqJJ_)72 zw!Ut!Zm+GgK?q4}a=Bb5lFO9Mrp=+s2%E(}tYOWk(nIUL;!V3z^Tv5C$J<{ZZ>tH` z+MsHAWz|{*1TOP(1i|RY0T4n8cP`m(ZOLBF#)FR#W@Y#d(xU2QxYZvF_x3qb+tPMEMCDu%tu10;7jj*18_4rp z$!o1o%XW8GCp^+m1&~YHlNPnjZxPA;Jzz)Y$nS-7WWFUNQ=#Q)QTgk2hLmi1HOBj< zF-vWDF=PxUrDNcWOq?*smAMq27?4SsOrc;{is|CTBo61ktPRTZ;KXwlHHiqbQu}}y z=CPECG`n+aAC{7QJJ8|8EL^@G! zZAj}*;6r6qrbZyUG7U&ii@gOL-u)du+)M8cwmNYh^>AR^#W*@wmj$}Cu56*SC+4Y1 z^V@#Rj`*TY`D1i17!FBMfZ*?wd1g4w$pn7}xFHtYfdxcFjHiN60AGUzD>rsc^18Ry z^6+tVa06>gd#oR-**zF7xN11MzA&Xa1j!f6bVr!cMiy0$Nz=y@SAg%e1~~WLajz~) zi_@P~$?ISyulxy1=vpB{<{M7YbVk$nV*zur<{SQ6@VNrs41i?7-}xsBfIU3GHE&F0L+AX15TyR<&%uh* zoooZ#GOlxH2MLuRDG;+9dr>MZsy9XOw+-CZLApqonNi+- zLsrdSa0pO0w-HW!+F$xNYJv41b$7y4bpfz@SWe~)$km}eLi;9AcppA}74~PGo{c&b z?BmEEHY@&uwj2xoieD^>>UFINZ(m^D%RXe+#lC4pv22tB*f-DMYTSH^3Ea3?`duVw z7qxzG`Dp~@s=q*Kz+#$=Y3Yofj*jEaAuI;}hV)d;gA>nx;*#H%PfY9@-G?;W!}AE= zL~nI_wBHKdZKab!_aKu35iMh1?$h268jwMMM@qEC@DF@pi{YRA#4Dfjqjf?%b~_{e z2Y_GxjM#qgFMM*X4aJFotN3q7ixPPy#U<3o{{}+vAN<(;3Tjo-P{ypb)s4QxsW-Ov z#-WBW{6aI+=oL3t`LLDWmqj4PLo5f_nK8MU>#IIVEp@eE+-~&vw8ew0hw9CdcDD!H z-REFpkWdLSN1(M;e;GmAlSr$GM5qLrZxZR22-03e`jSY5N>KIINci3iN2|#W5-LIF zNDx6$4FfbMYBW4n1veIB-vBmkFU8=MwK&{yxVgDf2w*lUiwSOk=<)y%0+Rss*kSgL zHI!lXwg@l#ke3u<3=%3qW(kOyqxiEMLQ$_WCST+&de4nZ0H6#Xk}|wKLTz7COOqO* zRsIASc*|M*WDB|C`mCQ+kb}1&9o&l1D)AsjMyj*qC3w8O6uGKGTU0{)Mi?Fq1=g|Y_b~|UN9Q&o^W7!EHyw9!8-g|7e8!I%-b9G;mHdzf>`xh z_3lUyDuLB<7a|N2DnaHL?F!)E7h4s-0srMOz~SgJ7GI1mPzf@}f~8ono<`<74htaTeha?*;1it5 zfpo4N&Eb$Q4|rH0=e@YvXd54HK4me_z*BR7N5sbR@i^Gkj0VA1Px~(bR#M&r?Vk^) z8Y6oMnP@+Q0~)nwg^XGV!XwG88MO%nXIlzCdI~Iw=L=!*^eE&)<3BeiVILcjeTguB zsun-hmT8k&18z&TgOpyG!s~<}m5z{l39NJ~D}2T>B$cU=%G5|@+B5BzYNi8J?J>11 zsb+<$wHtzVQjPm|Ig~-hu@PiY);+y&OcV!X4aH=y+V32=7d0dEV{sq`=EwIrm^c7q z``;R0{@E>ekw0>@SM6=R|ApH^Sxureta3q^!7oK=Vg`RKK5l-Qk+Z)_`)I&p0e|h> znCna593x=U-5fp107OacuqFOl<5S|tjkZhx*Hi>W%EJ{Bi-F3fa@L=UJo^k;I^6 zW?^*Yb2`At>p^b8RQU~Kl_!CG<+qY`+F2zK?O`Fhlb(U#8vil&!2u$be=WI*1^42M zjhYAf!KsG(`Aq~5^Ak)4NvVU*=~KP`pie!H_@yt=tW68YAsnChoG0U&hLvVN8e1YA z$lz5V7!Z-&&C={m5=+wJ38sKn%uky$!F@25o?se&8Gm*34Aw`& z`4Pbe_)wPQ@w%mEDQh+atbZTgz>r*JR}~g#!(2hhlr3GhX<~_e19xP8Bsm?ajO3M( zyfV_1$u|}9O_s9Eck8wjdc6hPprfKB_Q3x)@&8-=Gg1B#{tx`$fPdO|kHUFY;4;8I z!oO@Lz~2dbM~A@w1lm;LF!W8fSZN2jBJuI!DVu?w-!0Wz0e8NaXIgR8lPl2W(BS#n z0^GS?%~M?Sl)wuBXC8Xk;w;EX-CwVzG;D2k4& zIj41>X{$Ng;ncc!@?6==DtozPJ}2x^&G!)M9X5Sv-;NBYq-Lj_q71`g{93A&4G>H; ztg(G1*|n-zp?rhT)}MMLAR5U_adI8%rO^$4t4^#=JW?hA{i8c1-XkGCi*OT zs+TJ8i-G8NyUj)LG$?*r@nbdoOmF0Vb>169TUsIVjZBqpTpk`ma}(*ak$AG)kMtn8 z1?j;W5|RsAs)Yoh3t< z(ZEC`xEBpK*ch=>ICR6Z6K;d;q>MB!&U|7S(Uer>^tJHilU;M{n87Syc9IM_FlZ?L zW`ZFAdwokD)$VtXYB!^qo_T2NTvk9ng(fRg4YXSMM)M>5Fh9bNJc=vJ5K&2|^6qvR zAJb-ba*^!hIdtlnosN){SCS$1pdT3vkc_WbAk*#3uZdxN zkbxc>I({$?0XY3k=~d`WOIq3R;4$;^ycrLaL2^`m7C%lK_e0cHc^+6BBvgXR^XX+5 zK&G~9X=yQ|iL?WM&chG-#4tIFh{U|o&mfftp96B~3A&!A>vOtZplk9NZ^__`bQL!P z>?OLkr0Zq67Sr_yx(=f26}VhEJ{@*W2o846SNTa){>TrkM!zQCMCEn)CM)mb%ebA> z=Xt%*7d^{9)KYna!7Y_P@pJr}_+2$>FAOVwq4G9Ct(AB9DOBFo&s+GwirE0u3>Kgm zj{ZApJ?E#)mB_e1z*PEfLo%sCunB_kfEyt*08wXf3h;CnMuNm&qKd6ExDWkhlo*_s zMLiVa!KR>*5+$MF1YKHumF8+hWWUvS z)p1?`z^?2@A(Hy%cS;$uI&{&S!Xo5yL|u90sxQA>)q&^r5Y(K->}6{t-hClboX<1W z0Bi$*7O5P{!V3*2A)=scL_O|mSuAq*!cxpN<&@$%A;nyj;(VYwibUCn8*b6E(ejFx zPbN4S=||zV6f@>#1W41v!sr^f}UyH`weIiIw>;zWfsM4)57*fLww4_mRa@ z@!yO-Gy;D2w*wsO0)8a^S=&#cU)+f^dRLGO?u`3V-nHa<{caXl1mHbkeviCK9buUa zeW(niu>iWmtk6(r>E&^_0ksRK{CwwhymuVvJVzO<6{%YF;54KhY>(Wje!Z_7OsF&1 zf#rtzruBL^en-HP+km;Fuv=@w zel%8!?8eMhU;#{#ZF4Q$c;Nz0Q8UKOFBljTfutOp9UaGZEX>Io5~OUY;#o>Wj}`FL z6uyO3zFEW=Qp}Nh&}})Dvl9fhb+L$BHx}mQd>1AxSknnZsBN4>tBKG5p*Th5ig-4N zp6nZoUw?o?ub-R#Yp)DWCx9XOX~lCV(fqK^u#v+`tIrCtkQIK=e{{YuOwO*qz`QKI zOZL~Kf%r?G<}jk?En0e0j zwSQU&b|!<>UGN+1iXRaD*y`UtJ=q;^v&Xit#;{-&a>3Vu+t2nCA&LHmahLNXJCpEB z+!3-vmmc^m-3B7j!Awj(d9%z<*rZ~?V&x(9@1}m*o8A$ry@;||@gRyut~_B2p!xv{ za6$tb{tV1$V4V^8M-!n@-x@3b9CUfE^&1Gt)ZKSXoAnVz4bkeJM5DLiCT>q6?r}Hi zCCZJX^SERQMdGUD&p@o)jab3+)CRkHQ{0!o3ipK?F80pjW)IC1));%zHMI<3nH^+C zAg|KihDi4hYy&c~o7<6Q*1Wk9bP-r690#qUoc{22ygq1rVoA#U3OF)SyEegf$3>v? z3h0y{Lvx`XbVurJB5j2N8`Hm-xed`PJ8+Lb7JLWp(k-AG><#8BiwGTHm`<@N7Lx;n zMk_iwK-$7;PFUqN!N-woc`D@aIK;u<-1)L`-x_=idFW}ia-r3mgf_eqe46{1(_}xz zqn=`UBRs`|TPVJ>Lv80%tFm03=8Cot7d)m5SN z8#KEW54ncZb_N8m>P8DK1{;als|moeq_xg#(B`scUlhb3X$irB{ooZBrbzFCiC}*K zdZ2>^C*}a;w>eqext8)9Yf2eUM-}Q)PSvNJ(v+bB$PSX05XAjvq)cxfda1ivQU3;U zvkc`KEJ9dMb(dPY$<5c0W3Gql(oNT=n~tPQT0&6MrI+d6!*mNE9!VFvXh5xYg}Q(^ zRkuH$wW{dQs*sh`m}ueWTI(3iwYArUw%65E&R_>AYYt>h zF+E9i;2_o%y|v`>$^hNDr^i@o-HEi`wiUi3!Dl&6yIt`9@5k7c#98 z)!mrZc&4=iD^$G?TFbMU1uTQ}r?7-dI{X%=JWY_g82wRMy~Ql3DO0XAInsK=D_8~eziyPs>sUM0LLy* zFn}+P;O>vTk%qJ%-gu8M&jb|&VWrJ66YmQJ321Fwf+iqdvp*Jfy}SD={7xTlg`Zf8 z!5bx|p_UlE{s zgB@dClfSJv`pm1_C%6RRJ-XkqnPZcri=DG?J<4PZB+5evgl~0qp;L23BNG zNF2Zi>|YKh4u$>O!Nj4k|2UX90FymFeEH{_-yoe>z+byb#fc>hRtT8C!Qse+9*Z|m z2$a79<%uNJKiX+C-V)(V{dKmd-nlZ43+Z4YJUE~vl&o9gi#u2kp*0#gc|+z6*7Lxp zV7s4UN#pvGwyCnh{L;xc$Co6lUl7Gs+Y8{Sd<3hFPzf?80NFf)_FN$`C5gny@3nTS zcs&}LJpmn%Ma-REBqcTgGl=-W=U&?`VB}BC+pE$g;*~wo-;)FURa=>|!Yw^A#gS94 zF}wI9XBR?_tw?sm`Dhno2CpG0omXlZHh32zoi~xrYAyUlGHUM|2CpI>baXvHj`vY< znUo4lN*0m<%U4ROrTmCs_QpyVq1AT=x46#T0_E+_^HKAvf5fz?}k#dEH>EB{my&`25tL%ZihUKxct~^}bZ&H34oR(j~ z&mbuhK2!J6%r{XN^slSUwAZ~I7c0L8T9q$}j<<>U4PFOC`N)cK#kbc~mVd34Wi3`L zI5KSKQE0%_`JAcH{}brrB66?<&>q`A5Awy1Vap&i3GrTEGa+v3=|*`Ef%kX7M@Zx? z5W(gh#3d*l#Z)f`N-`+HnJXR(HkjHv65@_ zRD&Gm>+0?H=0oxwixf*c5OFLrfs8{mRDu9jQ2EtlJTy!0TWQT^A9 zts`jc%o|A7oQRHQGx^NwnUwaS>!`1Lv(MCg@OA)bcVwu&Dbs60YI^cPN$K13Tpb1P&4^LFObNHLT=d(1XI)G;9!A;tsqd&tQssDeh+h&i=+};rr6g$DrhJ3jgzAwlGoZ zEKGOq5;l-&XCYO3m$|@kKrGk5pzDLY3-L41`hfNKF|x(|^MgcrprC4n#u90siU;Np%KSXP+=(k)Na~ z`p;AYp14-rvdj=vrr+R8pDO(wxl>VR-%epqE3FEll(?OE(}c^t50O_)v7SP)p#I(g zhdF66b(fcDw*{lWkF!AyEv~(c^zaUg_YvcpNsxZHvqAI1n9_x|b4$awz@~F>3ET6( zn4QvC0Q7`Bj)Jl;v^1{#OhSrb2)CqM*eeLj$FXaUtq8T2iU^NN1PXK|#cRD1p|lDc z;`Ehvy)K4?Z)3tsNFrIl92|#6v$#EdKcI?)B<+~bc34_+Qyj776lS{g$&KOVk*PwV z)cw;CBKuN_jzalXkTgHWk6Zw4S3q+D4;SZQAR6tyab-JVuWZ84>aD${7uJ@blf@j; z{qc+{|JfyWmv*lqgiWz!?`lP08>=s06uo zA3amgu}vNV0}ae$-$J}z*j4%n-XwCzKJ{1UPE+-eG+q2>Mw%bfud%5vx0 zg*$=fQ~UrRc1}LyVb;$Cz$yP>;MXD{ED(97&{LoqH00kGZGfJFZf zZEpf6S5fu--`wu$?&+CHn9O7*3y`oR6cZA5$ifm9S;7vo@2j$2=uTMDbTi1NvLlNk zAcjSGM36;51Q$d=dC(wk4-ydf1w}=0!}xxG=iJ-fGf8}W|L^BNpU-sFJ$35TsZ)E^ zsZ*T#^~mX{kHzshmil$^@s`THrr^p`#IsXgx6zG81)NyB$M}?(YTaoo*!x0%wzx{6 zGRlMtUEM2cv}*QoO{pgTAa8)zv7W58Wrl4nCl03S_Stc5Btag;yc=UjnbN1`$}Hfc zw@0P@4$Kc^in5lrdOyztNugDf(Op7#K# z4$~(M3u-~(gX)+*#1D-TJt3I1`a3aro0}y!NYIb z?_=FRMV-eQ?q5^>@$O$s{(kqbE&qV~r^-Lk{nO;1?EZD+U)%lb%0JEh>&d^a``4F$ zefLk7e}?<@Zez8o4e^sjX8V$FXfgJxDHKo=5o=ZLa?}@es;n zV5QY|dADq}oeL|JhL+mC*Wa@0f}N)9SBh|y4<)c1Z{>Fy<)@R8Z z_9N{~E_pjQA{lx`h>9j1J{OXcO=Oy{*XeGekYSKuz$cB{t?a0QG zl~jjUn`p;Md0NOBQb*WL)dWozHi#J87V=D>vR;!c%wUf7X@W7&Y7f(tT=VobuqF{j zf48#QU$kmNih3dKv^-}4LG=C~;6rE17vUy-RL<^PKKtxeUDe96lspefoBoV27C`)q zi8t#}U-U*R28Nr9Ub}Y{qYb_G!fd@eK04q;U+*$6Y-8vWXh?UrX!@4$g^Wi9H#UXy zY{Tk6@>0E&NW+3!Q1~z%O=Gh*q=STXnUDmvpm4c*BcEp$qiad$A8oRksmSLkaTk-g zYHZ#{@nBK>pePDzLE#E0a;0$_f_&eou|->qLlnc7cY<1wFWb~DN@qx$sMQZavaZy5 ziIHE;UBu%Q<^!ArMDL2n(Z$PrV?*W}qOl{1tUNPac`0UeZ4Y8n)IGgbCeydh)@30& zkIv(tmY!-#dPKglyjoMnHEVk{0g`W0Bj(bTa}ZzsuyUXnC{kHQLKjTMp-1_@haV=V zifRqmZ!gwVspqOqjmX<~pxV_4gkj?}xg5Ht_EAc%z*`Jg3ZP|CoE!jI00^+#@k_~7 zgvO=hYMi=woMV$TM>Rm4Y)7n~YMv=^U%oS3111|j+Wk0=VYhxJvvjt7t_9r7CEgCr zoUh{}TtzZk_$41vjN%;G4MX+%dVT5M`wc?civsCGomxqAG^U2rS03y`2UB_HILa(8 zYCDt|H!3Q+m}!ujY+p}rcXA%HvECkYOcAWF%e8WPTq~!?mAD<&?Xd3jDty=6_qNd< z+oZirw8!<1<&5PNh6#^5&f|_t>9zJzJb0`JkM-cHj9B(@NYtb$gIq}$(B3uBHtI1? zAJtTqptrNPH@S)Yr8oEIeFyz4Cp+@;zSYrDn%Asp@1=Oj$T`TEy}3v_594t4C%AN} zIU$Pf8U=reZ*8W%-UjD0dYW(TufL6}Y;HvJ5*@*}!4=VV`cr{xujJrS@K-^-68NdW zGu`gV;R;TN)z^--{ks*koq@8|$LU@4j#5~#ujHf1V_-WKzJGs=@8o8F(#MXHkK^y@ zw94D(4F!$ba3rH|YRSYeypQOAozyMFw3cN*X7kP?w)Fu;SA=Nw0h>g#kIMRhIJ)v` z_j51M?2qn5GZ8ND*}p~EYW(k&+rGxvI!o)7f05_vt?)3cW*ffGW&O%J*JIviZ!*s| z?TUfRkhooMGGlPIkv6QM+{bU$hX%@r!!1?O)lo7WWpfN4&-Y#Z(7L2K>4@`<8=248 z&Srfp5@CtBwVYgiOPoB$UbA3pp|bICf~D)@LU(kx(&lf(IR9_b-i`N6(o?ejumVzk zo?+)|HW5gZj=6x?L9?-Bou{}a*7B9@(8cyZXMSBI=V+FL6m1meDckA%q{DQtuwXUgOrEM~#B^t^0z_xU8n7G0adhpXud6At*9LTpJ$A^8OU zF0??KvjwzPHIeAaVPmj4Zy3?cQ)5S8YpbBCu_G#-?~`vD^=y~b&)#U)L)@=5^5vwO zgP&@F?wPUoI7H6b)A2af-86}1(`P389!2%ux5Hex29_Ia>@+73CkpqIsl6jutyni&%Hr$ptmu{O z$V5&R`Y$E3y^tAhOItSfx(dUh=}I`yj6m*w6kHxovJd z(ogA|bxLQn0jw2NPc(S3i`d4Jja)h@R;97gD_u*>%ca2Tr$t8hr0ooJDM>{hb_Em`Ts4MPYqr3%22sg2Q?Olp&rA)A8ymwVe^O23wQ< zK>I6UEqOpO9kaFlBioOeSl=0$4Wai?+X+wl2CG>Zw!Ikv6_+)=A)b_;<6ft}b2BQz z5;`g;!F#ST*9(?3UG3@V{3Bd!#bEVWx_Tw#z#ZZeO-*-*E6ks`si;gAYx=0~LZWf= zz^7A9@-qmE4dr`r>hDo-ToYFE712M>>8svyE@^Pta24O$9|5K)$!Ccy80Vaq5hJO3 zH1;0tn@g7tXnrsDZ)7EW6!d0jS*yLQ^m{}5&hW!*`?NI_#_OX_)qB6QZS!8uOZ>a? z0hW?xK-8X~cZ1s1$Jo(`s|QIbFpc(ga$(1ga^<7o^`TA~hawE#0 za#ovL7h5iARAB}ZbR;2OSAHbZ`#d~nvC;!dpZzI%&WI!hb*KYFjK!kee#zX!i*)@w zl5g_ijJ-*+Xl>03G?@a*1$sQy?ZuU&`pikw+zG>t7P7;%X_4oFj z_2pT3B@LGh*C&r_AVZIucH<}%Xx-;zn=q?8A8sP5f1hr6Gn$Cr=c^uS8q?dNYu!Iv zEFYzEd5>-^=Q8-mG`Ui_X#~vaGqrI?&c%+GXa$lY~&;zAR_tkZJ1xWV@GStg{&N5Et0q8O%Ju z7&o7Q#EAY?`){WyG5$Q*4#n+2ytSsXp{}tH1hd_^XCYL*pSCzGs0D?a5fIJvIR$-A z&Gh3A_=W%v2yhF4aBEAB9agq|Y9IOV3}`Zl626Yd3&8lLYX#7}d)XP?3$OjesZO-^ zovVLKr*a^4eU$h0~5s#E)r)t^(;3(? zm>H<1S-mNm4(Wup{HC3TRB~8isCbILd?RXFAO+iXOZVm%W*tsh?0XNeRUC(7_^dtz zzjO%fvx-nId6;jHJQC&trH=SrX!V&}k=y`$HTI=A`^{MR+-bln>+X)W`7bl6+GAAJ zqnLx13&TP+e9}~Xp4`|Ei1w$4&2vzA9yTfueK3Efg(L_0+%<*2xf=NN53L&iz}3L7 zTn+rotAU^T;Z@VWV>R&atp+~k@>SE>el_rORs+9hHSpi920rtORi}IWYT!4m2LAQc zz#qDD)%4$74Sf1ltHwWYHSlX!1Alfk@GoDzYWja%4ScO@M&a*I-}w$TF}%qSedK{w zOVRVzc?(L#PtbJ38-!7h4Oaa;4F}ER-#LsqhR;LN?;+y#hu>SEY&@cVZhxs>L%%Ed zu>6heAwNGDf`@+)Bm9w{I9sPV*|!98OHpPUy2C8sA2o41MSq=xB8o{UB#EI`f6%odgg+x!#T{FB=JJw*%` zK_|S+c7v3wT!tOdzL1@ybX~QB9f-)S1hq8hrADFm*xJrIZ)fQDn+a|An!FOY`n!$$ zTg8n75E_=bP4ui^8}DuZ?n4Jw=TwtPpZ9Y{+`P-h$(u+vIRt(=L_bu@8k#Q@lEd&; zp6>C#1hQ)k^;O12?|*p8!ZGLTGTbgHVp z+p|5XjN(W&e2Qe03L?|*RhvMR_7^8tQs!~;1=?6_)~p8XnYP%BT)E#GU{m%v)6ZNJ zy18^568pR>xA<3#LRc^G?N%$1*N}JRY;uxndKbb!U8E_GJ<(#~uC)>^uW#NMl7X=j zr5%*3CR(G|KovD@Ao6z?O(VFJ-hcFW`38sld%}<%p?g%1lNq_EpSE(m4UN??R2D97)eF}8D_H}O#7@rpW^8Wo~#4O8NB{dhMl@tb%xXV zd6%twAs_YU{NWR>0y3RaFO!z~sZxNl&dEyLi_I5L+JWg#V?dvZ%Ig@-L zq>CzOJAS9xJDeu@xmdKSLPTQOp7AYA`$4Z6_OeXanyY2+@T$r+l=sx0>cO<#VRaFe zzJ)D-`iP-j@~w+t;R!NNyU|*P4V`Em((SP46sgYIIN)BXzZmJABq~wHC-c5(@MY^$ z$z@$D@1r4K)@DlBhSFWsfz`k6_79%0_Y58x?oE|0r(W>?;wS z{j_69AzM|fNsY8?xWj^4P+c6PBkSnC_~qYbSCtsCjuc+Lev}+mA(KVw5ytWAqx{s5 z0G#noeHSwMFGo!5qxG%4)=-3(sL^z*w@?6XW;D4CZ+cSIr}o0wKYc|}J4v=d!2Drs zM;Nb=R4yg!yQf2wJ<>_6P_##SG0TZ!zJ7_Ej{2o?Q1Q4-Zd|_zXP`Uwh1VsNc;(Mq zvAsA5(Vot+9Z46jvvoGNQzvUbVw&^$E|-VnPE387^%5>KOd^h-&zA-d=`Ky}-}KYr zIy%YfV+dghc~w2tdz#ueoS}T%o}TX4Jt=)G-@EFLi>p)qFd5o@{6N&Rp6~VPZZqqu zXoFSDQH`w7CdZC2kP5OROpwppPANJAM3zjw)hX$^?n4NM&7lwCRNi1YH_?m}GqmPy zgf9+uxEr>mkh!OkBw-g*78>6FPrfi}W{amr1_*YxOl>PBqn@ z6|>-E{O*l^Ncc6?uH*}d7(s@Kpmi0iD=3@pQb$sx^w7)gki+Jq>Zeba=m;Vd2Mq8c zdjbgu(}mU?q-byM%@qCQ`SDs@?n%;`0By_!NJF$Y2etgTa=$u?jcsa}vmKl2kJ!HI zn&U%+e`IewP1$5x^f-H}8$r9D{nW9fyGWJ@=r-ODwQ+7G!Wsbn$H`YAd6^^c1#I|c zq4OA);91~l*FbFh*?hak*Nap*zqw6Oaf6unON)ax*ByD)yL0s%udhWMK0NSgL#*k=b4N zzK&cn1{vr%n)5$QWeZOdp7O({`ijEZszf6@lY#E#=Rz{y$IWR8p|6NJD_Pss z%a`oWFs9oTjKR5TA*1CZHIht1y`{lUGkLNU3pY%y%AHkqdAShZZCVuRLuAR9AlhGk zMaIEon?-->-7n<-BK~KP*B2>D!Sw$rzVG2*Ea@+MOLvy)RcQ8k)rsVvQkEFHmahXM zR;5%bRuGt65UmxHJI%sR*K$!RhACNlkgWMzYprMuNjk`h`&#Q@`(Pc%PMVa;lfP+0=a4jgrMH(D;4d91d{^>y zN;sQ7)la73H5Xpt6AWneQv~X$pDJf;wkGqS(|~1deaa?Nqu(OKjg_C8=v4Hc>7c!E zI^C|O&KS5-cJmi)&8W%!*wew8r}mAO?1^w${W7ICET{#A+esY_AtTj#EHyj4`y`>= zHl?h7g?K&wmJ;?O)#Om!*F&j&9i8YbEkKPu`6@UzxyT>{JOzwXZaSD03+HRVh)sV{ zp7jOS%*p#nreBoj=stSDJH-lJ)mlWw6OoH65qU-tzeFfes65L18I^Yb0$*?-SB$|i%+?+DoxSqzlzHDI3g znDZe(Jn%cy`rKS8`3B`6yJC{Lb+y;f)h6ErI`=S8bFFuMH&S=|W28i8K818_Br2vP z>}}sUGZX{k!8IeY50xr;9!e<=wS8NGw&Q28Y*QiLgC>0YQ#sk>jU2I3n4?1y`sr`! zix(1js0-f=Aj@!P{oM6i3o8a5Y3jG8uTJK|QHam_2b&As8%=*PVxL$2>%?du`ijl0 zUZ@wLGJINjP%w+NBZ(N-)bpg0Li2{yy61d}@cy3uzI=6-B*yV!Dftc|^=lDRCY+8H zh1n9$O9U`(eiug?iWBDRoG(W^k&u%u$#!o?O%csM=vV5FXu}yy=7BV4cLU{7DWN?= zeB+F`%G}9g(PYB>e#7HUHYX}k+ip}7(t2=t-qzXS@d&N8T%$^!vrh3;)jnlnSWpY{ z)EE#aEYPII%d4-H>n#^B#ij8yHa1-HvUxF9Zf?WUqGf+h{_1_FhJ)Mnn+bEscq$H>XwJ1@GU$;@pokF3e zESY#wq~+Fu6lo>kzEX8_Rd>dfLj8Jh2C&K5IZ(d=uXJoxm6IO`5koTereI(9oPCi4 zgN==YJq$0MHK8-OXxy>g28++&ay(2zMT5=)jmOwlDJ5Hr=1!mvl2!-Neh7W&*~s`Q z9~nn!*_P*N!!zY4B{4AIuVal(6KFiVMwFkgj;VL7y=_(bGb2J8*f(zcIJ;pLKF?ak zpSbD(&yvQldRs=(xb5v+QP@IFQKf2S=~?f!E(=9l%lddm(D6>8*O~vhGvDi@XKy-s zmaH?JH%**L8j@*+-Mcd}v}}^Id^jPm;q#7Kjq+}Z71gFaI z1Pu#nLE*C?_4Og=zT`)Q#(zK3;llyVisq0U3_g(qn+%h^1w;hfRn&@8s9~%YV zirJg?^H0NV$A6vg1o*!6YZ+X6ckcnVrN+EuCo*IjZI!*rp*?m`IR+owzZRs$0vFG~ zvL`U+s8jQA?!TKPvU&F-skVV_^K6HRP+n;EPq|i2Xx*hO+8xKOG#>a0;NL`T-mcVi zDcytUGudrz<&LcIGqLh7a!4W0a0E!o2SKWC4YusWgma0b%&p zk$*?`uP6V`@}ql5jAR%2v;Cri=^-$hBD>w7ZoLL}E>@sY-Q2~~rC{58E)H2Ylkz)0 zI+CP0EAK@wK+T$Xuh7WsQSB5|9U}RzB9ABF7IV`F4_RYOvVr``a!}`J*Q1aG@u+Sx zZ@=3V1@$<&tUS=OR0k`)@EM@XRW$A)*^0$4P4p;K?PEO{C;LeRjW#k%M8-O0K`qGgqI!VrHGHZJGFLNg z>0y~krf@!yLDZh$LEvwry6HFWeY;AXkZ*$=ieUghEMrrvvdioFGnb}H!={&-UI%Yk zpCW|@#4#2%>}iO9_Hr+PNjtMNkMUR=&S2&Nrap@0oc%dJkh{pqT_T6qhD9}{d0`gc zJj5cM4`eX&I1C*zPuo1ebXVfT&K`PM)z_#<^@~Bu(yU*ikLn?)l7$MWlo-Q;T2OcZQf53Wdwr*RwGCONa1+?6 zV(kl>S84GwQnA)^mn^i*S!qxhw-9Y;2P&<`?|t}}{gf;Cx5W?NYGZrha@N?}_>}JR zCU(*Ib=f`Ag3$BxZSvz!j7Uw*uJ$fPHO+9B7A9KEtmU0fN3GvAH&Azk%_pY?p1qjm;R|cdDJJ@5%nPr>|Y<1>(P^RwzqUKcm>@ z>F6;RZik2JWBjoEv*1GVb3zqg{Xhk!eUh+omn+oalVGL?z!N1S=|O0&rN1~SAiBnf z+bYQ&qJ9zs_pqQA6dt6K%-huPb%(rhc^m$n!oNi;RY5H%?4U~Z5I+oQ#uI0Eb~l^x zH3xypm_0JvJvNs98W?>^_z<+zCpP<{tnZMFqz|LY71ypLpXX(9_|#Cs0|c6eIjzOCB9;~=rBE3xpzTaVg&-Th z`)p3OljODduconJ7W)hS;9pQm%n>DtCf&9qQuSR8RVjj!XiF_qv~QEXXaWA6 zNv~-~ut_*GCTIW=$^hcxiod{}1Kg~j=(XhgI4D#UwNsbxM>AQPhcuDz$1<3C9CmXC zGY>G0y?fxk2OihdWlEi5RiP{gZVB85(_9Ba@iaZoQaLf)AU(>^AE!tc}plvTwPQ8x2|{_)YiAs3_=rq?^T= zUHu*`4jVIfkC^yq-Qy}mCEgj&OcT~`HMYgK`MAe(8<6ZM;2_RptWFCEJ5eJwy`cGd z9DYw)bWCz`cCC#0so&4sMfG8BIzRm=^Swe%zutoPe3)}{Z^1cctn)OZ)b)k%w&+>C zIweJ&foZf1HJ^raK9dgztB24YT!~{#)|aG5ZK2C9Ck3Xqj9-6*7@MCb(*x?J;PE7| z^1c~y-ch37&Zk7(8+bdH9`q5=-3_`<7E+qL&*O)jze%Kt;R2Xwo;13OJtvKYrN!hx z2`)oxfaW7Q8cr!%$x&42b&vNdsP1lgNXEdv8(@ODVk<9ejNy(J9E@Z~2VGe@ANaTI z%vrY$^}^M%)Mnid`ARMt@t0f{6|UsdWPd1;3Bx~-{N0L-Jak3x19PG0A#Tfq6$H%Z z1N)lgf$|&;w^L6DOvK81nj^K>hafO%y4f$X%v{vukW<`TD$)_mWxO4548uCSF&pU5 zC+`|Vsu!AU?cw~WE`%`)qQV+uQjJDcV7r&N22y5w*^Rntx<|HxUN9d4vgorVfH z=yi0Ev(}Bza%w3}n+T~zz_Qx6#AD|-Q8X>u;aHa2e477#&a3R%9SF{zEAh87Hyewa zF!BFm`iz}BWa;DI)zg14Z6K;tE1+zqrE=j>4*J7FR{oe9{S5=9`$>N__`hx9py$-| zuO9z*O&qMVHT~f4IEo+1uN|fm8V&mmI#_~9e_S%!t0hYstGa^Bo}vo77&hQ}bn2`% zc<&doF|*6=ZSGBcmKo~JS~k&|Y7b`jCe?iKc)PUmY_wrU{h#Jn`?PqGh}VOea^VVQ zAY%sY*Qb$XFmr{eD~=B9r}^{#pcoxW$iCud^gdGBFP_7Ql=X|=)3M#6TFxd``tGAm zkg-;Q>435ut}Iypu^iH-AL;F9LDaox)QyBVH_zMLMB&-c@vtV0>SJ<^+Zh6~1;|*n zf;TC^VL>e@d>&N4g?@D#bM;Ty$f10_T-p7(+?jDrkj5w5sEre~KZu&378D-Q%=0Ca ziuhUx3;Q9D>il$1;$zyAFj9;l+h_#&qw3S6L~AT*u#1g__r&<-~SZqyD!1s8hWox1;_S3yNz3hrjYu z{~JGPdf!{ufpF&`U~VjYLWlY$GiM=p_hzPOdcmB z`4?WVr_51!H=g$(mOaNoqTL+PdS5Bp8>UCa%f6Kbp_|@S+ObbiW@dZaW<3>);dYRjBZzpqcbJb(f%bb|GS8LC~=oXJY!;2VGvU}HoMMYL?9Yd zNM1$Hv#U6D{p4qO!q*_e8J~pNldn8VFJZ-JU0gntRgyY-WmTnS(^K-vy7ou7-lqDn zl(T=AHol3S{7m9Oh&-=wsnOw^;sU#Z;b07($@NsmMgKx4$nsBnXA57bgSoJb=5G2< z1GXga>6o>7T}(ZUd{Ir-BJXQpFJJ8{XYGoY#MZ8^4cOb(-X4~sCQqvl$Tl&pBRX6( zya4ImnNWnU6I@;{`dWczMfW3$u2f#Gtfx5X{K4j4T~W`(Xwb{6!``<$LUgB?E}|AP zlB4M%76vO{Yx*ZvUTXR$RsPcSPp)+Anc-J=Ku0i_{GMB6nS3;U&4Q65m4@p(Dvb@A zaRw`!HvOxJzrSbL^tEzKBA$^zpodKZbx759O>#bFYgjpobgJtCRNY%2m-as$Crm|= zm*zhMe{}1pfYNxdjnIxFG*g5GwV?1#kiu*NvIq~g zMc7FZHc|vZ8~O>)i|WH|NIMH@mXHLspzzhgVUFi@%AofR# z3H9O60k0keQg^9Xe^5vr#$u^hQxvq7ccz+EKSfilKLns-?qq~tYAO^TC~+vXT(Iys zUs_Q(Sisq^8D3BhKHrvu_b3M&D+hvFQ23UR9%)0`MM#?nNl*(4-&Qu4@ngkSiW`r% zMc7pltk?v#ptRT?R+eDt5V16}*s}R!k=yW5bS&};FDen5G6vcjkG0X?P4qVvLxNgR zA$$kqE~XJ16Icu{De8Q@R8G}%jZM-_I!v*Mgc$(Iup4MY&T1O}?iD_2f9NA!?UDh%L`w zbvtE(^lytBUu={09+LI;gbfR7LE#n2TKl;Vga1D9dt%D(Gvcsjed&tANn&t;(q2x4 z@G3tn<8}bBypM=8JmFL!*w!+(=i6QE89+t#08l!6^LM<|$@BhEft(8G_S6KW1AmUu4La&;ZuS0i>x(;xe zY7R1o^iGycPflg}-;!Rw{(_v2`nM!Q>wc)xr$~mosW^WE)$lcvYqqPOL+2FeFpixH zn%;<5M%-MoJNQf{dJPplV8medZ3yLUFe^5j_-W!L z9n2J-quHM>*dF5VrxMMV+C;OrM6)MB!-85+_?eKt+=jG|koFRipcWK<4pMi?T4qmY zKGBq*Q|(aW25Z@h26J5XL2}h%ng5twCbRG;TG1}L}?S8Gx zMdwuH8!sMXZyDM?QXx^7Y(wqP;FW4`x{i9MJlP!(($E2^($cvA=l97zqj=HxP_}nI zFRp!s%;)mSz5+8g<|Ccto~E=th_ki*2(uG1nQJgv9OZA)RQD&OE(*T>9%3J8FdQi9 zV1I0c9SpXX9jwzuj3N4$#^OUsPk$-N14QzxB3XT}yiXZ**`Z3Oi?!x-G2OIj*#>5b zb0n!Si#tqCNBwI=&dQH+Is$0ZP6l(@rxnb)wQe4G&^a3LuV--c06!^?siUV7y?P)_ zh4GX13EM*_#w zL$onFv5nbvoY~We)9oTF<=XGYh2wnS_PNwRv=sa^l=qc0=+RMMW(Uo!>{}5O!cj^- zmnaS9J7TZsF!RUZP$0SFA=n)-vzd=}5L+=m&qNdF~nRFar)&uP3_TV-LjDqT>@8I@lz^fT5^21drrw=#>OM450 z?NqL$5!pr&0TbH;bd@*@nA9Gi6taNuHrLxs5!h05{RXa)6q~6PSC?9Gb*W*D0HV5+ z<>qfpN=#_VXeXy2vodO+Qp`0iNz8{H=D&+H%*d`H+fsW;ie;|87)sG5pr9+|o+$#RL}v45tevx*MLt?HCw3WfT*hj%G9;OL1$-Yg zZ5q^$(=3Y7IBFZ-R`s$Lb&qt|>l-$S#q}RaRJrmR_CJ+kj~jn z{!=@kF+e?xr&k2bSX6rQvA3AA?lxE5l^(=*OS@bh=?41V)?w^Yzw216ZpD54C5$xc z;@eDsCYuqzkfmYO;7_DBSKF@{vJD!#%aa1aF;u3^XcS6-r8xQIVUU_1>Q+65*F`@QKL>f`jTzmnjZX%!;jpKG!=UOjDY8JaZAaukCiNLmOg4s*H=&FPfS zV~KknajV}3Lg^;QQVsk$!g*9t6hH(Bhq3o-_f-3n=Rssk?YXx4T~Yl$4!mJOEhxO9 zX1*^!$qS0mYKI*WXNA!crTJW%<{xpBrwuLT?|6ufIO}12vzzF=4`LI(*^L)SDmg)T z+Rv4aK}|A9P6U+d0=OF3_jT%KMr8_iQNPO%+k(Mufm*CCCI{&{hdbUIM&17QRd@6e z=$|cna-ZD9zi1l|;s@Jus3S?B%I#rAqeWHeFe8gyU)cVH#YYlMs6 zWx0^5yS0e_H6?z1i?~2e9GWWMz2mgkw5(gcDZ`TK%3VO3O#i5?;F(P&0+J#EU~U)siq*8P-;;6iIug-kR6pfj*8LV2f99q^piD-G&76{ z68q!%AaSLDCG5KB-9=L^z<-te?^B^(2$I%21+#fH4F7TE6BJ1@%rnDjMYM%1z0}k- zllK#c(R~AQ;S<@)lNoXb_HMISS-M4ZX5|Me-M8!{U9!`DhQ^8uNvCq;4m?k6g^@QS z!_zID8N8M&#?|u61BL4EQBdN(Wl>!se>as*TY~4mOcJd zO#T4YD?N^Plf} z5BD{`)z+C@4DZ!bU}RWO3#y)~Pc`_Vg~)zb7knnU{-rq$>|8!$icGLb>?=2>&-2M8*!~|u%=t4#I)8k543>2 zn8D2BugVCDg)vp|jiA5i;PT=2ELhJ&~eZWeQ?{-@p| z);_WR;&3@3?WR1#l>mG>;=Q{848wZ&0W5rGW7=4=?R}Bzb6YgKRpf+GpSl`yuCQ%M zrH>UU5w{B3)aLUTXiKL0krSOJijtK_h9cA`Cp)pFg(;OM3@}1xvfO5~OnJ&B`b~8q zePmanxx|uAhezvcj-y>O?{gC^uG$rD0af|b{sBXseQCeqMqn3Pem7B!ch%ASkb+3} z6YTqc>^nzLx{1)*Ge{MeG-|pY-!eU2mp(CE|2`2@8*VyZ>{$W z`jDsXqsA2$iRq(Hsz2-UdfO*c*<^NjFC`u3%eUDm5Z9v(ZSEJ#Y0f`%Ty&ZE83^|& zQ*PIn*QR7r`?F5adC!}j;18|>SE!!>HQVeGzRG7H++_r?ftBy*4|nTB`l8ym|B&bm zdYVcLTRY(%PcD^JSETDCA8t?2bP?3KF9j0|Q6!;w|J4?6p_hu6fpx4yw!Su7J_C;0 z$2&?x^kSDoTUIB;JLXXeBv(jKoGn+jxrf&-zJjl*fLOV0JPHv4<*Q%g7ga>F{brz! z6jZ$vEvW9Xg`sucqC9&DqkNjr=|}dB7H23jaEyf$uCi;ZoI4}q753x zgwH{~dYXm_K`ki!UhA+QwIMwqq|=2Ys0D>Lh4e}r(t|=eLr8*JQ1}B#%)>sZd4_@v z&{*CU>mkKT6iZMG3V$S4_^RGb%i8YPsFON#rRvNobM$H(#fL@lOi>iHp`Y+4G5cB@ z(&vSAmXHLspzxNEe%yxih>$8m64ZjipM~^#8`7gfstQR^3kq)w=_hSSj|pj!kOZ}$ z@D4~}YK{X{&r`CPaQ7C{DylxtTT^aD;ZxM_mN9ho!(J!4?G2BsMz*IV1Y-(@`s`2h zrc)%_FG;I@G5Iw$zhD(LdkWY!fqRG?*R0x?9LZWHBZ4Yp%I)1$+IfA3*`n#5kc#p4(uWzo4UEwBtnoOWW({2l>n7*$TqV6qPbFOMNnt2#v zKE(!rct)kcbcGw%!HO@{gL5*-JXIJq$U zPA_VbP7_b*WZ$BzZ{}w|r3TuZ%{&hKSq3u?Fr90u1HDH5(wC5~*29nEQdgdk12NUr zY@T^oyliGys<0Qn0>WMT)cXc3W!q!ZgXc&*Y|nvSe}>iAX^ z?obyqgl8}B?0Q0#gRezRahw`Rv5<_%wZsx(r0E@G1Z@dqafZbjVUrubGtcD4 z8|G@=crJY1KswVHEQY7Ctm6Sgik?2O3FzruEM-K~ z1L(X<-f0t_>4;Y3sarlJ?q05eaKsX5M1$tcnZY#X_UMAI80u1pJR*|<#c&+Kw1mqR$Yf}gUPny5SqrtggF{LgPjObp)zA+^Ki z^-pQMpEPb-RT}9u_(XE&{Qqx>zC@zF`M+|alekA<{aIRvx}tMP_oJu0u#&)27?Kv~m|83Xh`mjmaF6ziq0dZ)m>tY=Z-WNiB}02Z`AaX4|_ zQbW;t)jT8)?9Um@JixSnp?ai0UmK?aKC7G+>`LpKdnEg8eRBmIF|AJiN>5e4N*}I$ z9j+Fu=@_3kdz$|)4X?sqZf9YCJ?hE#mz)8Fd|1*lIz6&2)w@we7)t02I=F$4f>qDY-5VBslR=rV3NCe z$h6xdShi_~lnXb3GE$fOs7YJ1_Ek~z!>wiq|pQ2}jVMcFbDQz_Abw-EazYTiJ`m-+UKhae#dGE!G3SMSQ zJ5fJYkuL3=m|xo2re3UaI%?%&EK@2&-yBil+f0Jws~>|_{bqhB#*fR%*KffY;$63z zfole>30S?=LTr9;o4kzE3N;(V%B$9`hvR-ia&wyp{b3&_Vty;*#kNXc{R9!YeU;pf zTd4n&<{H=R7ma&FSN)_2FXe}avII}=z+YdXW^HA(Bv<)0^xUGN(OefOyEPmTKiw0~#x?(xqSz5jB+gW+ee9ft|}T~U~#JbZ?rbW?J+ zZ%Pg%E7E$VGo^#!>vpSSVl|iii?DJ&Ii7vht~px37Lyb3ck?K0I1vxdNjS-8q023c zwJFxxCB%P5kEJvS&kH)*Ou~N01$wUve zC5zdd*5{MY5qoJVsl&t~Cf`g8)3(zQX>Px?nXkbsnTzYjYwk{YxYbL{z@wxyS=Nrh zsXinCPp@U`$Y$9*EDkjf4?W1!`!4e)4=|0)CBrO?n1`<-{Gs;n!zvwnvyog=?MY;g zGd)d^Ezn)z^$zix*3@)8Zq{qd)j^QC(3FhlHf3?(l!0U-fEj4c!%nwtyN{5(Y}(kq z`;=&{IWF@l7@*gJ=uV}P>U*JT%9PL*?q{$F(v*ig)X*GiyC+eKy8G?vFV5?FqDxp; z-z6Fe7B9+;f031JLcEsh+HaUJ4GU^P;VD+-Okg7{a%E_13+?krbXZUe3OR({faNCA zR3SYgBtb1G<fWC8z|G0mrzziMCHi!m5>~!Q%;xB^?7fty!Tlyy;PLSCum%_(zj^yB zzihv3rWl?TAAcV)PidQ&uVT{t91)nTd_zu0{hNwTxt2_?;U3kyT=G1?WL^4+RQq6B z#Ceh}e5qKfr)S4C#ZUfQL~`K;`M<@_B8^kv=*;xn0xsi+Z|xCmK)(M=?fpeyYVY5{ zMQP+E935qU7q|L7enO9`ZQ4(Gyw51!4+vAdAL0`4e{dA_~*MZSgvztx4}* z%a8HLU9c9%kXHeVwbyW)eH~-6Xyif{Ll;C+n$5YN_9+g8#(mJpB|jF4}h?RQIa+s|gX%0==HYrCbLwop!Soev#7@z>oQ?dtc@#ztrIeZSdHfx2#G3%GEWhVJ|%lGw3yNte%u2sQ`TrzN*ipa8SxB$wr|mWIko;W8)ZSlM zq?52pgQxy0eo~g%skwcqlayur`F3g35`6kPyY52!ptS)w{kTn^TMC-j{0 zIoRTJ(RsExk^G*}MMu)EQP2{}>YMzamzn$lH~9&jedU)X-AC{ye*}o$)}Ivimi)<| z`HctCMAA(Am{PX8NDr#4YvN(9suzsBt;iD9vi?je;SN68qkl)l&`?om^)GycHE1xQ zmmg+zVZ1*2_>rjk<+^;;kL&>PhgxaPR$4U)P$rcAhU+Gj{Oa-F`9_2mTuA=Gm#m3} zckw{d%52Iey>?&qVbKi#6afu^;XJB;^=f3XWFRYq6$Ez8(LxHfsDJT+DSFPv$9;@b;36kym_2%blC!LEYNeq}~VCP>+j*q#WgcMHf>sZcds-{oNSvZJvp1@hR zxRK{ED+W%a(A=12K}wk5_*{1V=#1;4v3y3?d6CYu>RRm}dR;}#szQ~?%3y}#X-y$} z2>Oecos@O*zDIWzd2NIJT-Bfesk?;d{ng8+q#P$jz>NXwb2f$DU*mcS=&+y`6eg$; zUxLa|v~XNh`6rdj?aWT5Gj&@}@70cx>ygwa5m7wqyp?0k12xU~la5Od0%>fjC!gCV z+Y^dAGMy8PiRy$MKv#9dUZ0rKV!z3}(urq3B)l)3yU73k)UQ1?`mE^llz;WxX`ir( z=8F0Hrs^8PiD1$-EK}F8A@U4%tA0e*kI=={xbe%URB8o$s;c(Dzy2`4z z`EVv?BAa@--w{Q<5znE`p>#K{R>UIpEK;;yh)!Dl5SBc({9!+@R1@hD3fBZUFWnJC zd-SO4F=CTSHq}k>3PTwaTk@sAGf5!RT6fLcDGG6wLs#R=6z4N_MWu0)%hQisOtkE~ z-AO_e9AnqfP|dCsG{>&T;D@p6Ws_`N-x~IP%z&Qi<5ncBKZ@jND5WWAbq?eVD4O=E zgWJ{fvvfW0lcMhv;|rE|(=bh+VOB=zT91J8f2PAfTG4-XO8x!}u~YtkRO(N&Y>n52 z+LnXFv;~l_@_9yzsz#qmg#8!EU-R06z0dl%WMCP#Ya(XbhG|VGFjBBvP<;)XXliGo zC)+%i;s0VY&MNe0S*=RBJRNqe1{wKW^##hbYx!;v=pL;>%akFPP83S12CZp@whi9S zWU3^SKBUSjTYVc%^YK-U@}N(c*YqyFwM16lqMDf-c1UU_T-L2f}G8?1HTr ze9<$|Ro$3rW;Zrn2(q){q?2B%XU_h_8qe^_2M=cV<||T}NlzM22iG3SW=dI}C!HB* zmCJv2?yA#W-30uQg4Ku9xl8e4unUS^P@Hv__uaV_17|h+?xG){6vC;HZ|+CTicU=X z@a#P0Nvp#_OfaV$^h}{G5>5fa8j)pfG=$QsmRmA-XUlS9-+VdKgQ(uYS+}2odxF_~ zx7*GSzBD3@rr?ZpTT&WZi$QO-SRKy6ei8bjNmLjmC}TE3K!$Pt_)x{JGl1 zWa4BaMupr|yES46+R#rJ&`7U(tUmS2@K}AtdX0R2TlE@oeH(KMHGP_dEFfp4OSf4S z%^qlmK`7B>FINXUR)C2B8dKWRUnJadN?%Y53X?QqrD_vtpIVOIftRm{msgFKTzxw+ zQPZ!b+gP)W>S9q{LsSK|pfFiUuhoWhwvc*-B&Y?2DMDJi4e1;qjTe%j78KSL($qGj zbA{9=Btb1GtffpyD*|IEV$!G3iy60yNaQt1L>fVo4_c$&g zMq^rA1vpO?z$|kLYC&e1lX=71)Pqb(+BeHSNPkt|-fFLYx${Zv z?{#6=y4-m>xojddsoB*6Ll_#gb)U|;PRhl((Y<+f0B&KFeU(A^_GaIu)!|ns3bq~h zPL(Hh`cm&emqXu~YJlQS79Q@eDF(Sx1;usU-@Z*IHSgp(h$8+RvJ4G=@INU32i*Sv zj;+wcr7b}Cu=^jv3B&wYo|wZ%BF^|JG z$YADi7}tTEwt0YI2WLHC)2*YPQ8^vjakxY*Nv+%F(RCrD>1>$AH;>aC%3$Vk*vt%O z9*1p|!OR0pcLzViDD-veP~`$r4%d^gt1-&h%pDo1d5m9K|I<0|G~!SP*G507H-25H z(s+!+g)R8R%1>MH3tI3=mA6{(i-4!1wV7Q?)AS>yNIZ4l5sc|=-|YqR)GljM<(=OH zTX2ccDV0)6=JcR`Oo(s7NT!{YQ#1ON%UjWfG#a`gN#js06iwT%uotN+r?C`MTKkOzixJZtZBT=Hq!K zNagJ8$g~&5Pu||Ge3tUhEnauTy@4B`s`1d`64A%aKGPL=4*aIQU}Ye)3@o-YznIPZ zVzJ#=a7vHPn)>R{Vq`6Rb58-PkF^EnJWSVjX3o{F09TyDy0DY%O*`YEBQ3Ic z=x85(ajiJq3Vpuqn)3fg)ZCa(dX70WBw`JnRyJ@H~&-Fnv9tE ztlyNnORL*Vzm!Z?J;hF!)B-5um!MoEc^66EMS^`87fJdmVJec5xkw)dyvt^`Bc2o+ znZFaF^)Acuw_SAN9X{{WzLVCL&y&A6`8;LKP<6Qq+m~6U&~JcjUYUz#f&bsaZ_K6^ z+M>$VE6sf#gIoRK?82)~R#zFg)Plkc;&hi9o429eCA4Wm6V!qlTeOAWt?+deE~o{C4Itxk zIIJ!6jg3JFFPfrzrE*Dj+f!9-!y zNPvD{7G(YKR&n?UfVjFo$RxzPaJqcBGvqcZ^XU?7A~UQ~Yt3th#l38=(1n!4JrEI} zUrGl{yTe1bU0#y*EQdFH7JAOlf*n4iC>j3A&EQqx-`B*Sf?f7;^jY7Q9K6rEq!|@s zjR+bmS}O|o5~I2SIS3o7*sEA&W+Nrp5T|F(6)?(X#}FSHvXX~EPG;(>!&)1i!AAO0 zA0$G&+1XnhUrJ^Hw38hk`_dekN3P_A8EjYBtq$NePqwWW?XBpkwb{g)p>7Rn%(~M% zln$$g0Ihd|myJQ1_kMLa+8rCu-pggpy_ZsBOGKSj)B8!W%FB@DVL>e@40-*cBaYcc zJ?ZhRz0Qf2z8s05-VM@hK6d_Q8vZY0HxRA18a5IruAI%?$#5y0=7NMCS3a)dZvnzA zi^}-ucifjz4(yNq+IAP>`p#OP7stoRrV@1@adKfZ zyxks9N;c=CWV*g__%b}tC?#6}GV@#MDaaigGTQfbRKH4aADg{m0ZS7F!%wyZyWPgr zw`dUA++c6g`;K^wli!Q4N1%Y8npjRAGk@3*CwZKoIN1tHHWe-B(z&(ur*k@>V(X>k z3B_sBcY8%InGDn%k&?1En|wKs7B zl9$~t*51W;MLS_LyZPP(_ZRivL^2;Yy)nFs_a@XQ_<2t;nwHw2pTfF%ci`WHCY=G> z5;Mbh80sOjjfl?C2wF_G#n1ij1pN+lqrCb2dS&IPLb5#wt#taMb+*jLsJx9i-zS~w zZ>@&r>bt9IcGMTjsp(herf+CZ;35_W;SZdf871^!ym_pgvxyiW90h8|Dp1k6j*jsEeFCkDUGg`_mjATLaFI)_1Fm+|6TUx z#s4UNn8--Llg`_rGS*dHpF&2vX?s4H!K;8ellgoMF0iRhG8aDwCC`&oAMZWplXZwN zW9AFIpr)Yo^Gl`XddKVO8qu%lTVEzU>gL8`xUm9Ly;geh|6}$7!=V5 z`lX**MjbL5Qw&Is*2d4UqFLM;J5x@jvA0MqFj74&QWLLKT$Z8jq)LMm+X$D!P9nUs z2#bhOs=Y^q^;zgocER7%*hdLS7z0z^+e%>260p@|dlG13wb)fmi|*{|voj&r^vRHG z>?^|X5UoA2Mb{bER{IFndpiaP+jwUxX3Q_3k`9ZG5v%RMr};2)wj+MKGvP_vvv+?gKV!v>Zyj`+!ai@&fH{09_0%ELl5?AjbY%~wcJZFW7O zY!9fVufL6&KJ~xT)-*p-edq|ws7y3bsY`X_ZDNA)2FB~}rwo-D4C)eFUgZqOT+)hX=Y)tRwNH%3; z2mM7jtTMWAO@kd|PPA&VS@?AkfIeLgh1`XksF-c|+now&L)f~hayBi+M8D8G_W-UGb9u{{CyQ{6>) zJ17!~&u(moFWD6s<7v_EjK4}Abuqa5N0n1t6U|&9*$teoVn^~8Q1mPKz3U^*^L4EW zHiq77l8?tgsbP1bSZ=tkZ4s^~!iD-79LlelAPLw|4V2soRg{Z=yH3;3|07F69^pAz(XaKPXC3&NAAKo6@> zc=x9IQ{w0joGtEA`q|mw59VxdB5!*W14F(?F=5ERbwfsI9AobzCZKv><2?W}KHd}` z`zm2UEvWhiu;HCVoH^lS`gq^OPyQ+6IMFUt>`T}fwoBoEG?wTG%F*-C{t0sTtN6^; zvdj7{du{#YvDrbr&KPrc?Rzi`(T8!YsUai=lpotM5M~<8Zr4+(bdo?B@;kP}@l)jp z#nbY?Nq2^lU8ZjB7f@(k5bt2ibZkDo0_A<9WBt6@e=@#wq&ATpfxN2Dot-WsEE~37 zY3zz@;^dFa1`w#u^B8ENpQ_H8X`!hnY}X|=z5wm&W>mH%arhI0nzv4qxlc5cW!pDi z+Wz{Y%1G(%QrYUayx>_qm>Yq^N|6Bc&EFBB@!-VaFY;=!ifWb0VUW34XLKrnpTUdW zHcP&TDAt_M2phG&C(qY@Oq{$)FH))Bz@qY_>~Z-uzVdRd!DBxTQV$b1b|dYC^+S0= zc5yFNARj0%2SIg0Z9sp=9_xDJdgFx^PV{rhB>Wa0W~9k|N{a<0w^|x&t(EDX=WKuN z7ot(Q2{s4AZ<&4igQJ7vqp%MATX$#jnjMz$gv+qFrH{&)9`G*}x3)VVUKGH*(>5f$ zXe0WQ?)ZE`OT|FxF|90a{#qvYEbgyH#og}zBJQs(?!uAjc8sxf1ts0vbmd}I>HcO^ zTub*qhcP}fg4usDrMMUo`RQwx2P>F7JjH>4fbrW}*6CxK9q`Ck`c&^c}28 z$w3Aw0P*9OZm|{z0g_oH9f$nrFaeT-iI<_fwiYpB z7%n6WDQ>^gH0t&@48pI@A617%UPJ7a$mU+G02-mXdJFj-&xx>;McV;i0ezl+I= ztmWT|nJrgPPUeG^Y|c!-c@Oxy5eFp$-PsjrOyV7dZ0kp>B9QLOtHDdPHpgw3or$1( zSUsi{lkqyo;FoS#zSi1?%sJ`FRW6^Em*`HPlFB8=dVxpOSLCvi_Xxv+~n3vqmWrfwds+N8Q^9+(Dp zOa?QL!;Z~h=5g3@8O%Ju`ZifR8el)|9jiC*A)Qp2T1r}R*cHHBKf~VL!pz$BpoQ%L zz)Cs}is##O?oVkPV0a$UG_o62O4oB zc==8w-dFTh?(Z3d%|0Nf-B^e$n`xp{hlT?vRGE8AgZX5O1yU|_yTHAvVc?-Lbeb`@ z7Q460=2DGl>=oJh(Q(msw`czKqH7<{aMp_MdB*+ptI^XxjCP`)jhWmyLB(igp*ss% zTbx}zlmZ&IK+V;)KGk0wD#(%&J(^&QNFFH%)qj;{S}#t_>Vf1HR7kau*MouP}XXjt!|C@w^4Czt@aD$^D8-=+J{QE}VT{omr!;F0rLt4vqWf0ypRM#XJUcXe@j+ah0m6!Xw| zvrQaMRi&Za*}uwnV8dP4Zo+8}lr58U2-Dw)DO+*>Y-X2E^;$1mbokkF%SvT-hiAiP z94hXaUSk)@=?G`Yp$DqS9SG;j84S1KG{=_;qOkGBJn%z(u4XXvIBZb{Gmpa-XE5^s zV_kDPuxwG>eA8M$$pYGEXK~EquyZn)c^r0b1~U&Z?lJWb3?vtbdEIHs{MrlDKoX6m zyhEZahO_v!uJ;ct99TKA%a;sWu6<12Oz#)7>-T{a##)MR1eF5%=&KKhI-Itr!*<1Df`}J~bMRCz<|;^;EyLt8Jg{*qz~n>jugQM}T{-uJa>Z~FpI!#K zb5VnMOj>l&_kqIorOoLA=57HPd*ZBDy3GDjF^RQy!NT;#L{B$~f3ti6Xe0XKQ~+Up zx?!6SI->*OGtI@3?vsRZd}3S0UeHe0K9i$q^Rl(i!}9Yq zsmi7dl0|zGtiN&|!_sNK)NSI_Oeo{(Q%$be6ZI(A+c2)shkJl@!X*+{VXn3&;;<5d z2bu(wEsK$5DMSAlP?zm`x4IkolQFMp1mzjqq>R6I`_R6x0F;FBK+0} zpz8po;!YN^1k6a?+av``nUKN%NRtnh`vvgPVe&m4_~KjGDMYdb=!7k_t}e{A$#Jo< zgw~L4v3&y6>LQpJ7Sw{mmS7Jgi#2$KD&Z6lJrP&VM3*VT3kZ>nT*lXk?TfRC@e1|O z*1g@)iDzYH-(@=Y1*Utv%28`Ep)z)&Mll*bvO=%TYkrs_z<7L`rF9$1YvrT`; zKw^HavDMa!Rvzr)`kS_Hc(=8ep9(o2HY8tOPAHSM%1r|S%_Tb-5{Rr_Y$ zy1Q8+R$aHQhsjZO>jpqs-CEpMw?5Y-HL`Bq*vzN$b0GOCD?e=&qTDRZF{2BUx}w4? zT4AC@t%}2>^Ep)<`|x^MFo^ncmG4PDk(sOIrF&^_=TN6WpifPXf=Ia3*b=U$3MsC< zEnLDhoTp*(w!)fpu4&TI5S-%5+rrgcPWwpuBdf|omi-5557on+M6+%(Q@>dtovCR4 z+J(HTZ|i&!m7zm)44khYDu+|y!{o;GgK@a2Zh(nV=aEPBI@Id?V9Z|}@vFExeTq9Ze%_+&XMNy3O;V=nz@$H)jWs5pzUKaQ ztIf5>?|y4}cJ!AvKPFN4(&F02PUaKmQ2}iJVjdVlPcX;9-O!G4&hJ7}$e&EhU3;7} z!5OP|0lRkr&jr11&m;l7AM-t;f3zi0)<2Gm#;)c4qrEBcGg1k6808(~a3>zk^o)ku z$GS|oL|^_sbOcYr)nB%aRIjV*R+k{y@C`+-*5rNGyywgNym{;LzF^)%dhveSyt;-N zKHKu%-|~J9FNvn>l}08X^N>C=yC8#^$6>=6%sdXeFoT)LVIRm~=5g3X8O%HmyEucH z$6=RbF!MO<(hO!Ehh3Jz%;T^RW-#+O>_ZvMJP!MC1~ZStF3(`*ao80Z%sdXeGJ~1N zVOM1^^EmA43}zmOU6aAgNG1jK{$=xNjz5f&+>2-g~EIgCq zeAC_9M>0C*fzFgoc8<;+6Gh`xx5M3v{T8#|I6NosR!k7)?F*VyYFtnBY(nun5d6}c zpcZ78-oiti8P1zxk(6xMT13>?!xEadpIXP^(+YZn9}oJ`s31=;yb6Nz5{GXo#%uiK zCWZ#po5q&~DVyPc^z&1G*#G|-P9eDftjbXj=Gh*SuuLw=FhCEA!{h&lweJ9vs>s^D z+}nA22AUar22ckOu^dDZ)6Aeq5JXHM2Fzhy1BT0XgK6w`jO(hHvtj_VYg}^{!+rAUDvS6{_lHE-P^Z^Zr$(uzj>bNTXm}H)Tydd>C~xHfcnQq0IUH2xCnq` zij2oUJ_3D&&=V>Ee+~3%|HKNw+`t$og#hz9{lA94#z3L#s9T-;=Jex~h<-o7ITYUk zoC9vfe4JT2DNtAwBM~&Yb~@lb3zze;B&@F$l(7})t}^-o5Q+0^L==Eqa|n95%~ zkAaPew2#L%G<~79%b6SU4Ez7fu6YyWO2c^OEjZ-{E$*kp%Nq=!+#gsuuLblA`kLsjjct={W#&dHgeA2-PQumyGIK_h4o7LypXK;n>o$4M&_uc9qPWQd) zUXAYi)jfjl2i3hg-4CmKB;Ajy8~U6H^MtzBqWh0@gYdEVZ z!2AVHTMUl+xbHv|IHN+jINjiG1OXcZfO~Ur%Dq6HJrq#BBEo0iAxZHJ@)@BLWHthy znN5Jeu7_xwXmd1F9(5k`PX&dU&Y{w9r@>9ZjK2*sO8PV8cRS|K_OpHZ^%eVc(7%$- z*sh>|Wo19x%KjzuaOJwT*#@HoH0bjM=cCwMe*rQb=_Ly9d;(=7|8$a&^v@R&k69U< z)R<1i{FUI4e5;fYf_%H2maT()2Rc8ZENzl6C;j3Xz-Z3IPo{GsLa>8BOY@-ScNT@^ zLOEqVMO?Y$F;XGsY{XhVc*RVC;2Z>vzDuu!ILq@lLSmuk2A+Qw2rpk5X_45q@yh4CBq{4~598 z0};+&{U|wuHPV3_IZfzduurhMv-)(cCt85p{+CV@W4O-K&dARdPC3M7fDK}QjK$p^ zuFs8!+BXwG50oJY(0*QC94WyMEWyQ~sh3a*@-KmRWWvK1;}e9&Oq$~Y$Eujg(8)uv zgqaAu5kbbY;aCL`L8v_V2vjnm(8mT%m`O-sd6{}5+XKyDws#i}O&qsv0X{T9+rHbv zL~Hvx`0*b?H8mtpKd=?HD{wmW9X6L)h`!SpK1zFXclj|84_MZZPgu3*K}(;*-$Q;a43gdmGxdJ>(HRA<*Os5 zSH{0RO3Ze>-7b2%(TNbB%MwwDR;MbJwk&sdJ%D0R152&q88}wS|{a;BF+63o0|)@ zUP2`(wCOR&^*2WYcZ;md-vUniLKbS6x&gbfQ24WCY#Tc3S6&xs*Z75{%b~pM-^D5w zZCx4L3x5frVI2l-8GO%H1gfzYN%{hoRN6)?E%n9(rF}(FO2>AYVcn6sL~aH)8Ocp_!bx8NA7jmaZTS|8^(TzTS-$u zaPcZckpx#W!8J@U74VU^ub%G}UObm|OtzKHj@RM#?`KlT6=r?C;9XYk`7r1@!-?B` z$OW-*e)~ETC}K<$z6O>;Kj;_xL(w4$Nw^~39KEe!=qP%}XB~~4>6BG);WKo@!dd$V zD5g}SsD*J>J&f&pNS92skI=4}1x>01Zp+O&9|yu$W1XjD2JlJ;P;eP59jJm!`r?VB z_vdsHM|I#WnB|Eyq86`XEpCol4A#7AGkt{Admifvjb6Sc(uuNc#_N%=mrw~Z(*%WG zHz%FLFw?9~dNQOZ-vGm7NF*0w)sl(IE?cF=7Ny!ML(ihrAbE=#n)g^JWd`(XZKyP2 z9IcoDqM1A^fgTlXwZm7MgL1Vt2F?F4;LuD5k75#&7YW-t%&TBHsFlXld|6!YMl{A} z6wIp5+_Zre(+sMlfmI@NEShmt`PxXK8(HWZSZG2e$ZUZ^Hz#7<9%>)9xI=6ogQtKk zTaE3y2)3pW8=+KW5X zM=}R{2I36)A|dOKk!T06y~F<-I%p=b(u5XJtM!7rm{N<`&b0}XMo9RdfcnPtN)wWR zx!F#+Rg_QrkDyw`a-1f?TRfPjsGoKN;;q3vq>Z7}%(WCOo3s+A?UI!?>Es$DpG}F; zx`fW<$`+>mjS&LPVQ%G;YV}keypGGSwX{dgqj*P5 zMzH1>jAl}&Zlu_?!HR}V6V^{U@(v4ds_AW4ugv=Bj{_Xpe7J@A@JP}Dj_1t~Z-vU4 z7NUh1{gU2q(Ec>uwH2=nDSGFdfgb+3T^sXP5VelS?wl6DS@zbQMb%IWJr3K*zVOq~ zKr->`oIBn%p8{ggUZXfL5AW|758Q!b@|{WH6m=`t&^_G>xr^scf*2Iv8?pVbg3*bEG*$#0H_#!6SP`Ct&6gZwAfRA~D*)B(? zgG}uuxEqQ$qHASS1z234oAiGR&(h5TL0qzU6a0;75681N!)4nKb_gip$8BIC1@hG< z=L+Pxrtl(zCdgFYYS!Yqt#bgvK(1bkr=o9`ILd!#c1pthInbUih-N{ z*oKDI-cw?G#y=Tx?e^xi6}LADvpP_!;SB8EM!=IW*MJ(au*gb)Nn2gBj&s&KG}zl@ z9CAYkXfGW6UTiLOn0XUX^ZpGoY)H14Q}C5;mGnQt*r+Q4c2o6Z<*$8mlE|4y0avj< z^1~HiHZ$*WiwI*Fs>9z65CBAuu@kQz?4bY=W=M>^6d=Nk)quv|M*$+tAYgS-H^fDr zN|b#y3T3oPom9HW7Yva~?{D#s(r6<7ScRzfQ-H`o1aN=?L|7t#ISQa;#6MWwl#KX? zs#_!@LiSt*i0DHAhbdqLK0=$q$L`X(h^y`tzF#`d~6%ZP1q6uRJQ~Gm1<^70MNH3 zqEXlqh*I4W*3U9VS_09kTLOUUmH?o-B>)Ip0`9OS;I3{70IFL8fa;b2pt>ahsBVcA zE*S(Z0e9FEaEC2{MAa>ka{cG9QZ>^l$vl~rAx(oz586jOxsNuQZPUWli?wyAmmXL_ z7#n0x;CwyqwC*Y5zX@^3LH2B$NlL0j<_j7z1mic40A<`WMDRF+}>W#nR?}V`OEs^A7nEVbVCscyWwoJZDrHqrMge;?o1!qL* zA*6h31mU_wcqb7ODnVu@5pEySQ+D;rtW0e7ZihW$dWExiaCdlZw4rBSMh@5E&cV@+vkrN{tbw@L+xG&HD7=diSghNLZ5*s+xQ0mjTi{F= zrdtp*+jn@@0r?d+?k0$^GaYK_dWv!!;ygH(X2y>6sEPD zJQ(Ww3qX8iUU&&JgiJ{&xV5Y$H@%Yns|X2rmiN#`1JAm|b12?Lu1!15s@Yjbk#U`% zyq0sGf_p5|7wcbyt|5D4F8m=haQIbCDcO~Y1f$IFW(+%ne`B>cr0bXgi4TE z2Q6QXhB9RfNto@(PrOrM+PPRS|1N@VeWJUY+(f7ZnOWo}G71LWdk}P#(qh&`T$v|_ zK+o(^;9HOFFFnS;m!<1G8$g&t3G}E``gS9=5(1e9*~v5o|qRNx}GVMl3VXwgf1%>x#uS))i`D>=!in!*xy7-6&}* zC`r4xO~3#7fgCmKT>HCVeKE-S5Q)~8vQ9znU9ZC%5n5SM){+V|BDMN$1^PauR$V%) z6OI2a{M}P4;Y<}lt5*st$6=?2B2?aU)_RBIXZb-oAkG26Q@#UEwq7W?nm20)(+uYX7mTk zxM51phvcOn6l^#WSj~PI@~=c!Ih?NR20Lp^gpxb{rsBOY?gAeG!s3JYK|=+1Pd8+L zdJ#NDdpm!}S4DL)Ika^06kow+7uNH$>8AO*f z(-c7Ynm=9L6tMYQ(G8?J&SXW7(M_D2A%HkbXn21jV->b|3YSm(V*r3CiFHyu7~(8* z42BI=H<+x*h-)9ue+acL3sld4n6)1at&~}9f|!tt`H!$gu*bOzqlWBz#DQ`Fc6R_1 zhr;d&VB%2Ny#Y)d3cD|Wi9=!c2QYCc?12C#4uw4!z{H`jhXR;50K>iuJDDxeF0u#1 zzDwQIyN25IbOtn!8SIo1mw#0{?3HI1tqwa)%GxX3F|#4kLb}q)Puz^>2d5;M)e>&` z4$xty(&?HF@DamVVpU}5#4K;PnvJTUvrBi9@}PYi9FC6sQ==3x5iMvupU7JMi_zay z%q@64pV)L;AIg{2#^yNih&O*qm5t3U5gGMTWn;6T85Dk4NX-PvCSqgqn(Aq z<}s^?e0O8u)p(lFHJc!fYr61TWUYcH&8GPJ6YvA~M7k%bdotadse2sV8>@Q?-K;h3 zv#YlCvL4BIj|J^24yEVu045HFJrTgfp|B?dm^c*n`v4{mg*_F(#G$aK1DH4z_Dld1 zhr*r>VB%2Na{){o3VW0=zE#6L>?W*3uS6JHL)Or%0PIzcVsPx_|A@9WafmFS7XpEh zoFJJ4P)Rbbp>CcJ@)3vT^Fja<2Vk^Ch%~P6V%kB2BHfEY9C2v6r2$MF3VSJli9=y8 z2QYCc?3Dl}4u!oMz{H`jKLjvwDC~~`OdJY(Er5wbVXp@;aVYGK045HF{V9NnLt$?Q zFmWjCtpFwtg)IwU;!xPz0ZbeUdnbU2Lt*a*FmWjCy#OW-z#vmPj8|x`WrOrAVKCd{ z{UDw=H0=igOdNngzxZLm0*Qh-2{`1{awtQ z@xcmES|HG0q%u5g46NcD+0St%pk8o~9xrFH9lQ2Gmg=1UGA`B26YlDtN54NENV>Wh z$(#wYU2_6{t*xrzlJ*gz84k=i^__`8XcU2TGZLA0Hvrs%^XEL|^{}>RZbWz&mruAy za~<6&xLYCjJq2GVMNo92>Fr_N^2AMuR@@caGw2&GCNXV&qsp~}Z0BZx+Z&j!IS;8^ za}a-FWnx_%Mn`UA=HkWO0m;_7Z`s-iav<2m0ue-(SVwLevey!eiMf%*H)r9eL$?BF zRJH;s%_wtJb8)%m3IMAXMxXFvP_zC07(6a z6Oncz+OD`GG?6p*^c!pB_M;ajWyr}jZK8lr(*`8aZ9qaI3r^%GnYw>8TM3I+K7-rgPb%t zxF7nEhe-`%Q(71Q2&>{TPgu;(Z~hagBg9QQI}r)~@B}76Zuz4~4d2Qd{yl4$Pzf?S zgYxpnkw~{O(o>8?s05i^5UKdFj1Fvr@vi?gB1paPj9|L@UH=(CixW{T9lQ^s7bEWh zJ}}`(3d`?PH}vTxEM@^0+w+51=~HBBuUuDdK4QfF1aNt~n+|!H303<5umwjjxQiIA zYyTnU)Ccx3VZ4`%t*tW|`~y9_9_A>QOA>PKiuY9I93k8fakIJEPsgo1xq)&jkE(sB zDdf?fzaWPd@BR|{Q+HCQ_DLJPllpUMHibvo8 z#C#8CD?X2Pr2ibk6NUergp+;#NO1AFN(fasL~}z!W&l->lkQ+#HnV7~0AqvGkC;u(22<_V=oTHI$ zTS><%vjdO$25z~;#9iGV;PKCabbpOn9!L4TK?<1#BU>Yc$at^qz>fK(6r0ErKEa#mzZl} z*SvxRd2>^^=z#RuQolZ^ha9@k&EjCa5xrY%9Ee$+nPHvTd%nD}9NaCw2$=;szkRc$ zTuv)YvP`zx^wl?wS!-QWA~atY(j2*Ij8&3Uyz$%#e2fo<*EASn9 z5?%WUUdaN|y|7wt53|rqZ+aUUM!2K7*o$xhMrH#&NC<4dj%M@;J$C+Rm3IZVLw$vJ zmbFe6hxwsSaA&zHAH8#pZ8CGS+#>Xs>9Fa{`S)0;zNXj8UilxV#u4kZ5!=^8R- zJ17G<&Maw1)}rTg4`Fu2`oR1edzOr1@bu7TH-dM^53UYNY!gF{W)FgS;Te}u6`ZI7 zHzxcSFlKhYgnCZ;FVguWoGE`PoxBj4R_Cp7+N|WR68Y6qv?tJa52au8lnYT<2E#9z z(cd)}ep_UAM7E%r1BX0Xn1d}*>NQ#kDiv4Iju~{4&ZM}_u1o{7!~mIh!>SZR$+k;i zO`eNaugCE|pzPty`)mjgmu}5_(j=^jl-t8G-+T^i3I8P&7jKPF>NYTGUZ#(4jr2pH z+{Aay)6xXD;}>TBJ#K-pKgu+xZK0N6{K=(FoOIfjLA);!&)*0zedAr4AOLp)tci1( zav3Ko{sw>`_g7f;hlS4rB$wx33U$G8Kt$RaI>(aI2J;8{Y}@9tDs*Lj)~+ZE8h|$> z_6GAuq!|5#s+l(|&%Yd^PW!JBSz{*$s)3E>b^4mB3f>eccz;WK|C~Y#s~#MxNm4M> zs`^6y#>}?Syuoa**K8Y?=U)l4T_&SQ52r!7lJAN$y1?}0lsdvZ{#ED*vOTavsMrU1 zt7GE6;4x%8}JwVz^5SnLj1pP(;*7Z0M>HO z25fuI1JZZ$n+yUxF5M)*2@iNMi?RFU#~+M{5xP}bvzzA@5vcICs4j`B6PSm?Pn$Uf zyfUQM<|s)H26nE5r4rdwfe;LU2J>9zn?L8^mXST{3jk}4y+If-~Nus4CUKA3Z{ zwh&suZAX19R&?Evlsk4iu#LKAA|os-q(RvFEt%p z4}Zm~nx|3<*f`JgC}{!SuJHMOC#o@t0!F#S=$TIwa!>) z9n3wmfuq=pqEi>xN3GyO{h|Ey&?9mu%r-h%UX3Qx6LWA|5}al^JUaE;bivgBFVK;W z+We5(^o!`+OP4}8C6Ch=K7m56xtv2Sri`Vcd~*eS^Kc;1&s+%?ZgBD8b|L9@o-3`6 zYaO*B=9j+5WA{qxchHip3nl@Pob%>lSJ92N0y^<1D8NxiG)KF#{|2SScM;p{12!pt zi?J$@xctDN_Yl-es05Y2i-iBk@b?)`s05i`0134|fq6NDKR|H#`$(ey5c(k#5h_7u zUnD{T7|l!+|BN8>OOo>MNUDAe`iQ9rl_0Ypvr54Nf>h66fH#*cAI#Rb-D3wKMxwo9$O~(HL51{wHWVXde&aVDl-P_(0TcIHol@ z1*F{tX)%HgMjY&RtjJ3ihI0^E7KYiBuIVsqIjN3h7>oK(<{-wB!R}YcIN8Hr8SGNw zU^j&MM+ZAR0WISy_jj#%|L>@B+1~|j%JjEIX1lUnE8B7vff#!1^Z0>1j`{q$r2;f4wN=NVm{73TZmJY)Q_$6?8 zqCJ9NBJ?o2Doj-2H_r8#Xmd%gZCV(JQ>`Y0t4+<1 zz%?j3ga`X7u|@I~n?^U+o}Yn;f#at&A*J2sO5~%97hR)MWR8J#XRa=Ci8f8^r;!w1 z?Ll@Txgo4f43V@t1TFe1Laenb6iVm%fpUL%542rS$UDN!p{k;N1dpMrWOxxX=g^}j z5^dhJE+T~zoS4U3^VSd9s>llhxdhI;C=#?ba_B_=vUYh8MzNg@qq8cEA}$+7XH^)* zZZ?e0N*HC*8=|cI)1`42ga_8CwvofLHz^i(S7@7xJE*6avlbHW$$Ij1Nf6u~;y@AW zNW=#AGY4aM5FvlE!yLlVN9(xC_771lc<0^eTjt5aYm6Y{uA|6`T%%0HlN z!OZD$x|)g@y@X1Tzd5`rZ|TO{$cFP(@vj&kIw05bKZ7HXYaL43GI$g#lsoI*ld}=! zUB$miD%ueC{J+Dk)551fNGUqyU;<`b|8pBRup_xQ>!>GzD{2v0vbEb!C}fmw_-_Z#}yG~6O$u(0HU zRJVt}t^R9354+_aJmxv{y6y~cnP=gW12?yaAy{6d*eFABxZ{sz-WG1IkJz;z_FJ>#xH?ay{I=8i2_NRCPz> zKs8Y~1f>#l1$awm8;WeF@;>w*nlR$~o5P7UN0_@!NEOCtm>NwyLltMHx+aG# z3n!vZ{qI2oa$(;4Fk}3=J^h%s?9L*|i!l&TVvt4vtF!=3@e6jXf3ql(4&Y{jza;p_ z5Zvm28@iDn>y^3zM8`rh|JCu`7d#d7ze3u1Q$;~YY4y)VuSEtdlYc(kOcRVtWE}n} ztug-}%=r!Bc5%xy0JcGyWyYH^1Bl-RhqT<2|W=0sk+_?^<?p3bv{G1S z{;!bS{}zcFVrDL{ra&^1$#zaey5caTX-p?dJxG&IiCL1;(Qqf1vaM_F^=6`}BfGW8 zUXS^jaIcqN%In6FnBRc{>=kFNm_Dt0Mdtf6>CN{*Qgd@yKp{;LKQ#%*hH+^P!YwAQ zXmSbNW+u%%Vw%sNIQN)H{p6Y<{&KmXXSv*6#K?K<4HYYFx9U$iSU!JOi1 zwq46e6SV6waQ|=GmHGZmyZmIkGT)y`|6jDLISft0W$Wn&%JpgJeJm!AHYe+}$+tDz zq@^Q=J1fyP;k-GjMw<)-jD4iiCjFh;5chz}nA2}oFy=54=9YCZ&}5b^U<+`NXh_OM zgZhI+5<+4b_=zbc9UXgcLekRBGs`9dS2Nz@Lzgw@R2Jb_+2`#<@COX5Rt=t}#{)HZ zRuu*dY;`k7>DbKO6aEf8)R~AiXTRn#L!9SOz5^@eSuHFN1+mn9ZNg(=W)tMwAtRty zPDO^#5ga~$K#%MtRD#Um>^Qt8phKotPDc`~9ws1Ef+`6ba1L9-;M+YMc}s41bgb_{ zEU5KHDX%tWLERC^v73u=O%pF?A~}v^jz5w_LM6x?8IV}P(lQBb%ik;e5mV2d;UWpaZlmn9OdVqkpaG;VOn>ql?L-#;j#S+ZIsf zDVNEYI&D>%FyJcw!1({tes#l)iy&L5bS@oEMQPJRPCc4GCHypJav2dO#Bv#*=tSRf zW^1!PWgD55F!3~WOr(+z{yhAjg0|wJMKJI1O`%2bA5320NcI2Ic(JZ4kwv_I8=mri z(}uO1q5d3RX2l(YpP8MP)+Z42`%f^Lv`0#p25IxtiwrbREk3aXHsl)exr}0J&_zat zz_`_dYtAmCe%;7;%gj97a6&+fP8YN#0q3CI_|J%3Lp+1ab{KEFxmJgS0aw?h3l_FL zCoq?>16&nv2kew=h&%1qU{~+&ru&bJy`{LXrt3ZP0I;crl30A+I4%RZ|D;J8?9Ypn zz%9J%L76|^o)^8-;3*O8`$c{WD<;6vA-B&F=jaBECFVvP0C4=+54$G2fT1k#AC zz`jdJC}aiLz1Nl%_{mq;9_ zJDzKG<68heulCD=D%e1ue-P7%zH^7G2GrC^V)!2`RV;hCA!7!LZI>c&6-U}R<9N&y zR@Ctd(yOwSeXZfk5RlL{%Ytyt0x4`v1)E7cg+g^@D}^l`$B9S7%ot>jX=e>iJ2Np- zXT6mFDrO!Jo7nXcreY9o<-NH7CoFxI4MSNG=?^PJlD&M3V1&tcs{?$vv-+j_d;;Fo zA}e5{xeM~)yRSX0W)PwqPs*Jrq~)Jm9)O@=+qfa=AaT8fN>E8qm2;6;8wJ$%5-LF@ z$w1XwrG7b~@_$FG|LK)l5Emk$mGA)^G!X#3@;JtO>Xh~{1g6Qwi?)tA=P8L!IggNl z#7&ub5|Mfdm7sEKBzywHQw%3mf{Nn+>m5jMTO{Vh5EG#iR2~!wpA=#uRDu*!GrTB* zl?gP2I>9=0r~ug77{OgY?AXZ?_9ff|^fox&s5~Kqc~$>3t=y2ZBTo`n&G#1h3S^P0 zYRq4I%L(HXefm%{Pz;vCe7^Oo@4^M&3~W+8>Gli;$$lEOQeHVy!kt;d4C{(e2{OGH zJy1CIH5`vQ^VoN_NUdgj#K)yb?if*?1|$@HaxF{BX$5@#it)X?pJh~AW{r1Pjd-n9 z@e&S}GS1-=FCS!0k#fRsWIneuImw%d_$zoQl5eR z{Qkhug}pJf#v!y_A?=a>U0Mo!!?b(Yx*q`4ZqE=<=jY(;I1H~~foSyotw{Sdm{kn6 zF{4zNgZAvxj_ePdKaL^|g2%)A*8@o~x7xTr@Dg?yK^-ULOui?K8?$jmf>dTtC~lq? z(J3i{ShE?3(4;N+sICF$tM!2RXu(1DVSXziTrADSM2xGL@&KZ25+~ue5|h#~9&2v1 zBZ_Ag;fa&_^CjRc8X0qArC-b1-0XyC7#-K-=vb+YUr@4T`6lUXg|ua)#d%~0;z6Ur z(>5%f3?#`O{&sP(piaMyq==O^s8oy!FyjE96>Tewym6Up#-RR-gAl*OVz^qc!Su6& z>>P}>0a143#hjk#z30syARPVWd%XEt5tKJV$)F5IssBs;)QIRAOCqQnpV#WnpC43 zR>o*n#__NbfXZP0D_$a(@eTFlLbIj)a1|8{!OG$$(AcXqu5D>NB|;E(%agOu5nmVkp# zx`&a(7=$|Yu)R{2!<_c>WSD{+D(TEel4DVps;1k!(o&XMZ7DF_SSfInrUj%aEX{fW zO+l@areqHz2~FzkOVfC#eRrh^?^%Y8Mw*8}7JNUx$C1WLP^P#(2}zhUaTbwHro=dA z>2&0RcWnRyvu{93&W78ZjxOh)16O0`=0KJ9&xM=f05S1rwg$sA$747ug=``N$qFRi zjF9wbB+P#nvz4kZBvpMOsnlEJ1GlZnH?=Gd^fTn6xlaFMg7@AgIXhpXJmq4wf8|X9 zf9V?ec$QZT#rs3h-|TzeEg9K0aBKlz@(-(z)GnBYDO3Cy{u6{R-5&B-7k0RgysGP( zIpA=N?#E$5=;8#DEU%6j-8ncRhB*|W#g&myFQF1-jz`pN=U#{qsrSa>hN#x&SXwHc zN6=E;+WZ*EeIjC|qxo6wx!Cf=Mr?>xfZUuwlq=SkYc|HPkuqf@D36SgHJ8{90JdI2 zCCHqJNai>A(K>K(6M6H+T6a9t*Z}nM&(^?daM~I;2*^O;e#E&ds3{Kz&b)sjr%2Zj zEPVuH;ZNgXO#;vU#M55EbCTjAxPm9{>?qWL9XN^8`X0(rVRrQhbnvsmL@J|$nF=Ij{ z$ehfKsoC7PB8x*7uJ`b=&Rz#sc$w?>lR%dz!!Y-FlTZ&UCYL&su{P;sn}haDI@=)q zuURf(IBaUf)bw!BWqt!f8j|`>@&rz#ZCVkq1VACwqe(*Tl1iJ?&(Vu+*=E+3we^#;#c#`oxt{8t9UJ0?2dlswj0gxD4kJ)h9fvctqdFPk^h1Ww z%UJl%=a>5|$|X+&4eX5gTYG|e5YmEP_P;i{%FfDu0~ICKkQ1$ijjxYccP|S}ye!XQ zScHf5;z>)&Y;O)%y7oahwZyT3!f#a&`gBV4z!tDB^u1co9Eo(8k2{cui=~~}i%W-5 z^d(G>;$*(qhp$C4cz!Al&;!`$045HFF)_+atK5!rI`V>@>B($S=t-T21`Njr%yZ0E zdWF`TIf6MN4|AAi&3ns)8T28kYo3d42fSwhuf8MenxhdxTce9JEu_VS_=9k4EibS5 z!_ZJ80X~*sdI~U%2lEcZ?5~baGSa?&8|>xMLOXErh@eHz2$~Y+1Vj(ofp(Lb8UMJv z<%K63uPJFxl$gqYO`;Pn@hU6s(pVIn_p(mG%xYJ2m78By_E32S5}H@+#DzN^3a);k zicUu+E{+FI<2Po`7H^`oHZjM|x%3vdM7@__A|H7rOY6utWq4-^k4Ewt!{FS0eFRC{ ziUV1pZ8r#D;s9(r*PMhjV)V;3=W_>ZZAtfR7{nEarr#)li9=x|j&>|a3csB}9C2tI zoEIxC;s6YM!Xo%nP#D%f$E?x#o+*5MF6hvWseK(w41%Dw8KA$#V@WHo&D%Xh-r1m^ z3C}XV=t~VATNzovvmrw~Zry&v+vJ3FhSDRBw%@dd0FGl=s z*`f+{N=3?C3Gh*F&$`6STT7O9iW)4TbQ;mfy;gq<)Q47D9Q&CC z#K^00u74(+7`OA`bA049eU2~hKL`mteCJ)dWg&)jRZJ0V{N+rStNKp5M16kLef36%b0h2lOSNNbZk?3!nAy5wZ~|y3~KFWdorp zmMm`)q3Igtvp$mc5-LIFY~)zR#r&|BT+2usFcP5>WX?gPnN6`7+D|C}3;#Si}^kvNS&Y zPIk5%=Zm+ZIMSOs2UozY{xq;sFc63c$?aJWt=6@XM50p%YDkdAp}?xgBvBMDmArb! z-xz@y(?3E51!E20+dBkk&J(&$1zmZwC>+G7Z@b9q)ap>kbr!k=>DP8{MSDwU?m{XU zXe8St!8YtoHi~v0taZb9S*oDhIitxb!F|5uPhRu<$yh3h8gfR2u6Wy(I)*yH9)VnR z6)pEt85NgP5~_)uf-W#os3NkymfoQ0K0vypC>@5wvsX1Jhx80|df~o6=s6k4tRA!! zS$IE~4%b99RkOB6DqOUlTFq)Lao&*2j*v&uZKvAJ*pk9q{x-m^jp}cLcEQ4f%nUmf zfScJ=(BwLYwh;{&>q5{|oF!wUS6YbC$t{jYsuCOjXK^Qbm_kOyhEDA0aW#~qVpbET z@-lsNPeg#OAR6Pcl*e%!*Ap-UhjCOi($P`m8eprgc~aW{D6e+Y0(#3{kG@O>*y`)i z!jR<&#ArnW*Q2P#O;L12a%$$#aRu~@(IP>U`GudnO#b|Eu`U8#)Ud&v81j0azB6b$7U7AvuxcYLS zBu=)8$-P*4Vx;bFVBN`NNT>vv+bF+y1uOdKEd`8Svd{1*qPD{G*Wetsc?{k%Mj0+4 zf6cV~bt$+d(ZgSV606v{C&P^f*{-TV%9}=rx{gG(gSC1Il^}DWG$;c$BLT>Z^sJ3@ zWRBnvU5lM`4)Y8HU0hcQY)S>jH5B$f8HWos{!!foT0TwjrUdo{zXf_NCv6i@M9n|M zp%xNjfN`66YZCF?cxe)da|fB5C6&^HHS=UZWvwm_r02eF9KM&5S3JXIE9Bi=?AZ~p zG8|ywBW1XQ$Z^8$VGgo74rKML=gEk%kho;IFULGUdkLw)_j2%D#x*y=d)jxHI}`r> zfQZvzfsoPjaT{Oi5O!f&3?E%a#T|#83imvAi}Te+fq)#C@6sr^!P)_J5wQifSx{DS zfG(7ON&piFV6bO@CzA5=#75vxssD`uzf8(-H-dQXF%_+}!nuc$P|Rfr#E7nw7PfO2 zgG4*74RGcG*X1FuZi-_fCj;glWS|tt9YPttGMyZZ5;A=8(F6{e_Q|ootSI<#g$!?? zD@4lFlnTxzL>{!3GjuB*7kHMU8&boEt5MeeefO8sP?pkERFWl9{F~Dsk8U^r3}HiY zJR0n%71|=OD-zjmVypTv%jua%`H7hq_`#<58Gc(0m*{SB3uJAcl8|_58rwiTO-<_F$?L|`HB z=S1GRNb-0HL9OO*=oETKHagt5M9S=Ld*P#jMcinLSaY?ZA4!LN*5!a zV2mj=clBV~!MqsA%7btzg-v(}I0rstU zECO-MX(!8Zxn?$aytJ5n&pkrm^z?P?HvFs8_G# zd=}QQ+&dl^Q-WY%S}BStMYAFly%kbKXqi6|im=_=0Xr*u3UsEBRBiBB7*raC=mF?rFXt|(wv=~vX@j#7?>7Qo&I&hZn znSU|$3Wb^-Db)9fp@kx}%pY4Q=r*zLY#trXDX#ehkL` zOfn0Accz_V$m@qA?D`7cOspH~m%zVE1pg1jzdi92DnaHlL0#T8679#33_>NSLIxJ2 z4L}^n`iM*e5~vj#^oO)F9D)1`su2rm{~FL*)uvi)mM66CZm3arXGQ7`_Z+2Nr7pk^ z)JNf5aU;?dcd&bl%eZ%~FgErRJ90n4B1=InA5j(^tm8fNEs7x;F_x43Q<1GF6|6iJ z%Am`xgsEa{BMT|9^o}^jD4Z|Ji)5rL>c+l<&4oL5@~u1viHMOf?oFz~*si=n@LSf6 z@8P7Xn{olykHMKKUyasj!0FFuSgMfDkneyGN~)Qp*&P}}BIwt7KkqC?!kYxoNMxf$ zI7^Um`_sO*JUi#=n=JY+MR$!)SZQ>5&1z>nXY~jYlrCoz z=*uK~M0jctI;XzjO=y`v@~k$RXf~UOuQlo$jh2`2E(p7nyiOQ-^3ZC~dDB$GmY}aQ9s*fTjX&I^Vl^~Nd?rg-a;*1i98_TWu1xDBM}po7BT1Yr2#Tzzgu*239I);mkT2{USh&wb$asqXG^r0>o`#py%sN0BlPmA{|!OLGeK-+nDV%Sh#d9Mi7 zLrC=w9Fz!^Aaf-sK(2c+*B#k;7m*~X6W(|3KLN$hYNHH6I~&k&J7{oyT0X|Z&VDEQ zwD}14L-Z0t)hil!^WL7<4;&Q8ZDMj>4>agp@~(~8E#rO^N6Elx#BLe&PqYclh9IaL zOC$KDF~px0e`v=n(*M+^&+kAZcGU}UwNvdwOFzkoJl4}rgATlys5yD$7c9b79gm>w z9jUIBSzVX%awwq^Bpr$T!M?tS<+b-4_ymj`Bhhjy#-4IB6HLbad2^LiC;Euz%tSi= zx#fK#xvaumL;ysn1nFtW)ks_8NSPCmX9!}M|y zBqda!0koW1=Og5QH|wl$Pe&Y2uU^cdg4)q?Qt!#HTrnQdZz&8;^wXLsqHS6i;DCZp zVOQW+5dwpFV9JIHv~VI~m(ONvF(ex+Jk-pGZzU@+VzKnBu(-bjrH$#B*$-bB43~X- z;LF8QW`Dx*3}}no;57%pn~S5UkdgIM6C?hCfJvy{mr9sbpxGh!J#D!$FY_g!jtzqc zmf33&)@NRqIEX7U#M|BSz7g(jCwGg$l28dUx3Yb2!w>lz=|moh{mgO@+x(F z?m@i|3YAS*DS@)dxdQ@so3x9%keB2k>*Iw0Q3gD>cAjKL?aYh9sZf^gydw@~VA zO1M9Thvf%){$(hk>}b;+?tE4XPhaJXqY6DmM6d>{F#lMs7PB^r#*Mw<(L;H^2=`14 zxra~*67Fe^gE-c7E{^{EAMlNgpfYYY$E&jBT09pIRa}3`>6D`_1~)E}a5&8Ec3kWm zfCd!DY!=Xid0luk80)xRet_++a&NOPB4%v;B!ZMc98Gt=t#Dpm4c2I&c@j%DhaK>C z?Fi&`()wVOueiR(GW7#irc<#I~Ki(Z@U373*}^tBo>PmyFUn!~iIAK-VERKa9GAp4TC$7S1Y% z;!ERw{KQIg`3d%Qaj|>*2;1jpI~CfATwUHj!pxhq$z>=cRDy(=Gmu(~$Y%vs&cyVp zO3b)On~^Sv%T>al0bLvqI24c<1IFVRbsoz0DEVTp<%_$~28np-9)4i|>t6ZBOZVXm zLGEZI$6WcVpnFK?0H8p?uTTxY1iUbr0xI+Q+2q+S8CjjLGA|;;263;_WFQF1- z?oxKQZQ#j$iY26TKJc*W?^lAFl%T_iT{cE{BcZuRQnUSFr(d2w!81;X$-Pd(nSe4s z23%Im#5>)#%gz5l2kLO(zgET`;qw(ukr4k_oc-{DDW1A>+{K!k^&A4Y@8L%Daq`3b zuN1wUok+Zzb*5Re?-VX+7NR%dXu}_8)4$eStM?e85 z2o#s}yH*21$raehL-ym47(=#;2rzLMK*Dh(=@bycKhK|n%(}QlM8*nU5YoSnEgJOgoHG*R;_rd0c)0KtIQ{`JmS^q*=7yxXA0N5Js@IM%olxkO z^yhJ93q^k|+9! zPqE&Pl6vz>k02XY%|CFIa*efHQcpmt5A}i`Bl)^lOnhE802S@61D@KuR5}{@ONGUUXBd>Y|z@bs-!CLf?2#T$V zLX2V%DnV-Ff|D_l$l7jKe4l0ckCyUBR@}0|c$Bq)Dk!lEdPwoZpco|l#HNC2?4|+} zy4}N5HbdR&=U4}_(3hn=wltO9L-l?@mh@02)CK*~$eT24--*fD+4IB|SbXEUksVSM zee`4xTR6@n1Nz0gxe@isheoPro3Mrnl_06%0sUY$F3e{?^s5(`k1Pvu9FO9MyIZ!k ztFw?dXoC74L4*#kb;2TsmHkMD+cLuv%F#=x1er$>yF51%X$B*e8HrE{GD{fgSCL3F z!$^cmka-M|uoioqaSM^S+cB<8!-PsuWH9pDCX|HGVkF5dCOL*Q5L)Jsd4hQ7MIvp_ zNWF|is05iO5eb9M?-_S~B<>C&4TMTigoeU-+|f^jMDr-E_sSkg_e!`sdn_{YkHZgn zpl^7v7Yp`Oef`vx8;NxMvzK+h;M#BjhK{KJUhD^p$7?3!Gvs>$^F7h#8~9J^L&q*r zBt%;LwZuUDlbQZEed2SL%=?dXzNAfPyzw|271ROUEY+QP5&Y(fJ=+X~S{zPj7`Gu7 z@5T}ygEsFCh@!n%B(VPB$QSPnBv)UaWS&K&20SFj%II8z+EPnmc;CuD9Wm89 z9)+EvO9$u~fI>4Yt@r8p5`_N@8m8+cq{Zbru}_@nT$?^^hUO$^8EFDmIgBUgQn~6{ z-wT8xwrJQsts1s^Gz1_=IJ*%Z{mGyx9C5~U7{{+gFSvCTI2G@TCp4OyKJ571fFP9VI zWe9X+o!J3?4DRhUHae?94%!cE!h%^9QtsVA7MN!U&QvIGe_8P3>M+3nlMDjv(Erz5;y3vdl+rX$fW%ER!GOCsul#pXG^TI33XzP@;$7QW~=#sS4(Yb%Ezq;_0<` zo=`kbDuQDx2pAASfON#cyR)PPRwTg&yq23m6~2U8<0YpdSSMze@eH&|C9z88oa)eX z^!`rc%E38$(iy&HAb-v{n<707PqJ;ECeKm!gW$Tzjxkwz(^ zB2_P;64Wb%3H`-3sIyQfL~wB2*bwlyL0|b8L~k*lfhLj174F62V(D(Q9fT!d#@`(Q z#XW@LUPhJpC?wl?aJd%{>NEC=V@ER|R206Un3@28N2Ehs3twl)+VBTHi`9%jt*dtY z1MA?qybk<|uWRFfqz?SGI(WXQ6TjtOwefFN2R^S3{JJ`D_nSKS>%cFr1OK)Te8#u6 z@&CO}yCiq2-7eeKfsg!KZTzJ=@ozf6cKmDW#9vkio||2p&T)0%yVrrASO-4gyV`XA zwNCtooomyxSDpHqTqpjKb>L^!f&W;iK2NHX@9*p2`LYgt*ecHD~ zt&M+H9r%%T;CI%6e^3X$`fj!J-MtR{@;dO3>%iCBy*B>i>%gC`1OG=I_&pPp^{k?X7Ij#=;@jCFP&uinER0lq6&)W5{cOCeGI`DEG{7=?_ z|4;|M@fWq}FV}&8R0rPqWofm{^4xZ1RsEw!P$=dMC-l+|5 z-K%zc?OF$ZY#sP3b>O4+u8n{HI`C`jz(1`6AGS|z{0G&6KV1ht_N&_Ueykn;pgQpv)`34-2mW;(_*Ku<&UZ;2_?$ZR(+H!Pwbq~KTvQu= zRGsqPTn9d6-`e$jU>*4Deeuxl(Z1M};Qaxf$Df0J6wl-Thz*oyAD5gz8`?6BX;F|( zrTz1;uy^NQ3M063a8BV|<$a-Zxi_bv3ER&NAgZBS2ZSO1e1KB=2w|f0aU>a-&_@Vi zH&$6~=AY$m?pX5xHqCJ2=v$Z%p1lMPInuMvocuJ9OD7k2es2LVSe z)y3lx3U+d7*M9;Uzn$D%ThzxzP=6buCbZ0-0CmRvi>P64wVS5|$f1v%=nDj+3~!)Z z-DAS{91~TqAF2w08gq*IhaoE7F@(^?1;+jH|0n#@HaL&s_(wS92+*i;w#Pry^KZzQ zyz?%;?{W`oFO*5i`bD}`x+7R!B&3<7F z7a|J#vUwhX<=;dw{D&AWA_hVw$h^RDt4Rs5l;;|A0I>4?CuuE~+PTgBEkp!px&A8% zl7>ogq{SL7o+<&qh?+AZYVI!anE|0$?{=cO|pBS{&0N@FiA};P;rMRO!J=rt;ZPk-%RMBOBzYe6&jCSZc5CeU5<| z2;EzTilP8)avmZv19>V(?GI$U#JyA*%%Nfg8l1!cw{nJ@aE1c(A>uXR3Q63?q%8;= z*K^~3Hz=|9RGXdC5dY6Y17Gy>F9z#mI(H^s{}Q+xASt~R-)t;3#J>wQ-L(nA;xQO4 zrUrgWmGAvW5CT0qIS6W$TSIBpom8!Xq`we2nq$kr13)Z?5tpxc1{9CY#6uLg|0(A{ zS?3^YI}$R&d9)dT?_vD@Z{&+XTFN3X12Jp^z%Hkg`YV&+|A_UVGR3ZwgO;;RxpV_3 zP-tlt)m|u-ia!6sgnu_mKfv+aA^sh3sZ0^N^H2}V7>|_=+#}ugbpp?Fn@I$x)MHl* zBD$`)ai3u_D%hJqW~2tNT#%4^1E9B`+K0uUGoi`s-bTBq5jNYS*@=5mSBzxmdu1dJj;LzZ4J&01pk%z{C_~_ zd1YM;%q#b!7O?*X^fCOG0q+`xXx9HJY$Y%4M(I?S`2pl*MaL5T3UWwGNbfpG_!;mQ zufRY|ovC*@U!01;7Dqu>a&YdZChv>rys!{Y;+IDHvFA|K{x_yyB12i}j zu(6QT@s?tUw3WuB-32Tgwf{nXO*#1Xi1j(>931KoKelDXSlu_FyRGm_=pIyvZxzJp zWwlhAroGMo0&UgH%9gsJJ-z-Qp6$Zw z*VZfSgis6M>R*?hpJ0NDo^Q#Dv+zqqwf1Pe(&;1w3D_?No0WtT-UnF?urGy<7QkpD z;1O_s&8r~R_G8j%YzfZ1HT_pr=^y&9)3e@rGXD>z_sl>cAZA|dhiND1zmpKoKevY^ zh!kJUVVMC)Bl=mzCCIj;_!xg9(8mS(1b?;c)TfyUeE&qAOBbQ5Nl$`ykg}ApTj5yL z99r;9a7sh6#q5Q_QTlSSrNzGpz^l=-BDSw-V|P4oe$8^sKN4Z#mBuUCBa5wI=GAd+ zI^oZO3tCQqs*TjD13h^U78T+;D?82W1a+KprUUoCfV+4V`=MZi%>~7k6lA6M(KDBE zOMp!W6t3Qq39AY@y8PAbvb2WGx>%X{WSzDV4wH#{#F!w@nCKXP!}1gd;82P*gYw#J z5%NV~(-U`T??!AhShx&2k+`t)GLN%!6HY6IE5S=ry z!zxUTZ@XYoen>l;A>DUK*S_k4$63*CBHzBMe-N-YB=X7f8DNrN_c{~_i-#l2UP2|v z%!DQ>Zg4CYBMgeu6MN&|v#e%Sp+!DCu6}`~*bYgm&qn{v{FfJRVrxJb_+!+)^lQbJ zan1mZKM?$C>(|~DIJI&&vDL6 z=2HS_Or>q=JnnUHkb_aj=fvXxSJwqxx^iY4w3Oh&AvJXmtaWY2?Dvx2MbbE z(MTkR7?;_GcVX3T#D60A3gffRTs)e9gK14a90}^ApAKV*fg;2Z&P{1A$LnW!` zW)rxD8!7;n%q?K2WMhbOV)K}svpWK?h{lD1nXW-86J1joRTL=e+~;hat@k;>i!rl4 zl3=wrWs%W+67 znstTu<_4=jszC5Y2yQ=f*Pv6wM*yf)f>tLM;o**`O(OfQn9PA{hZiquqaV=X_W!LN zUY_Bj>pLFs=gr!v71{|t1w8?ZZ(m_d`pNOIzmpvj=s37e9(ZC^c=p5E%HrYJCgst1 zam0g?z0I$7Jg5sei5mDkvp?5t7GF~C0VENxcmTkdGW-MaP2~MK{J8!>{50TgI_5tF zeS|thDdrzjJr(vZw9&dGW?36NBiUqQ#4D;x)>qLX$~ujMoc;??B+grFAxRqe!l~XZ zJ__x>MY#BhtQ))-ETUhF^>lGpctxiJ_ctvqBak+Ov{o4>1G6ckk#WrtUH3F8r*WlV zKH!W5^(U64WhSi2orDIP*=h}z=L3V~s%zmn{RgVOaACTKJSM z4l0Es){M{X<+b6$3+Rcx7tytZu8ZN4?p*i)`&1b_dM{zpSLlC0z$N$ZZi_EsFtLOxHBJu7Ydm!I%bHTl4umS48+5 z`iN=7GPbw}Cy=WVqjIy1150qTj6;aJ+hlxEcX3aqx(2B#w^Brf!ao(w;Gc${-fI!6 zyaG08F%!`m;9c0|h_$qsN%XP)IL`8~YModa6!>0Su*Nf+ArUm|r}7gw)A+%SkLg4u zJPBJD*D+J-sE7l20lPkci9=yG1Tb+Z?8X2l4!~#|U~PQ)=NgW5)@;#aX6YJ!r4>tx|y%ta_c_Ou4@~`7RrFIoGT_U z+oEEyQI~4aU<}~EmlS*&+|TveR~ab1J&weVDGpnN(N;!`o&it9`MQ zj_ug)G+`x@BRwipxbOC0R%yw!G`LCt)*$Vp7pCN*aAW%P1KY+6BQC@gQ;-B=yafUI zO%kY;md-4G)A_}ar1bN-&cK@jc!@O{*cu7MaYba#d%7AcF4X>mL%~&`nYSPOow>9k z_vK=EZ_ocNydv6>jPOit03){utU+#SKx9rztcIT2OM3#0oqz?kt-%YjnJ7O-R)=aS zR;d}W3|f8?kX(FVQX+L>P=%tG^Gkd^2Iw@ zp{Y(z^@+mr8>6AEVJHSQr~Ei*Z%!$Cxh*3+fW9^ShF~*k1(9ZZ@I?Z0>Ui;JECFmk zWk25#gNAW7Q2BkCquel8OA&@d{Y5~NWn zf=QO2k3{vusDw&TgrHZd2@316$vFs^_y=*o_2e41c61Hr-v{Q9XWL!>emc2MfGreM ziR<4BfVBI7Ko3%)4C)ib6(q$w(Sl+fK-WWYhaB3>HiWEoC(z$L3;$bkH2Mv2KF!@*$*8jp=qXjqpM_Jk(sB-dlD#pInqf|rqiTb%Ya$8iG$ z$L>Lztr*Xy5w}f)Q#p>*Z8}hcSY=F7_QIEbhAV8m!*U2VAp51UBbb*gqSIeLPix1mJBQ#cgQ;m*{V#Z zSFnwQGo_@D3vu9rv67zlmp4KxAyZkZusI^=YYQnwCyy|UR61>i%_lzp7i??p0#k)e z#s`TkmIFh8Ed?vjlCUSjv>0UUd|_MGA119R6+2?V8&bg-K0TQTPH2FbkgrxaF6z<`W!mxMnwSF+kYw zjB(ZgH@5+AV7Eoaw#rJP{4_>N{~An$naG#N&WhztU}pu~ejPlX{}!8-9T$-6 z0f8u#vne8D`<@y743w$qTb|!Dv?1Y{+ts6w)-Leov*tV!h9QL)nU<`1Y4sA_NwNc%6t1G!8F zT}s2@!N_7sE8d8*nD@b1U3Z5-vpeciEIFmL0A>#WWb>2lJX4}cG1kILz>0t;RiJY! zQ1%a{Hd18KrLa)07Hmau?`yLYHnG{UUq!*PauF-w{!nsABYv`4unM=NI?7K;)v-PX z#5BS04nRV(J@NK*VQ+5zwD3Ge8tRiCR> zh<_$p2%%)8>QF+0P?As`N=OjO8M-=@5D9gq#j|pyD(RoaaVF`XjZc33Y!HWqBHinL z*vZi<)wLmh6Ed*m#}A}CFRkL=gffhT-Daj>>edMy0TKla?{)-$WK_`mH#4fuW6Vv# zqc9v77NJ^bwnbHL%8#NQ)h}z%fvC6+b21hQ+Sk+05@azLbsCV zsth1QI7YT&PlV))0U2;nFUN) zPwpe8WMwapEQyJf7)1J9nzYWAa?MQ1gD#q9*4ZCCybAK4Vl89HeGGXUE&$#k-~j;2FE)alcNsNqKF9E9p1@CWzYWk3SWd}&A@Gzr2(^Hf z)`Ljp@6T{(qRC1gTP&!?JOud6PLIWFnF)0OvU6;P6k4p_=lT9c_f~|$GQB9OfROhB z%CNU1ZK}b7fcF{jC~!hT_yOGYQQ9nXIEc}D*Sk=wqTV6zzst(|Kd+Yedk&W-?b0^I zyAcQDN$E?(@yv(FtqX1Cc%fmLdw2%JJMo}0xE0U5_R#ual}RN*G_pUrjl1dj{}Gi_v?g@vrZ9sh5>J^ z&#aHvMiiuT8sy2$5t4jG$KvXUuCY{@FDwqKG(=P4aUo3!x?VxaIuZzel@43Kp1gBC z95iq{;K{b3dpPiOiz2&fuIm%|@thyLgl=nP@jBC+VQoojzdR1(7vC#WTU*@NLah$| z@ZbUncyEneeKq67GM2X?IN9M1s<{T}{|?362h-8ox7_s7$L zcLeeF$I@gTmnJUMBxN?Qf(TCt%eF2!5Ts`kom?IGrvHM9e`C@Y3Ez$W zNcbbHpL_6Q)4xvtQx*S$bKw{9lC}?>QU3|_b9rgg(;4+|ML!p%Hk{6=KTp31s1!e) zQGeU5@DIR`O@H~X;pdO_pUd*{$NC?qpFh_B8U6gR{_M^0^T+ycVS7jX-3;fC4S#~+ z5&vndzlZQ+!$0Zcf0OYe;cYC>Gz#Ffe1$&#?-)N4{sP1KW8+`Z$G_5kh#v|6f%Njn z#$T7=5&uIB=Z_8Fg5eSW{`9Y1Y47v;_>Uq#@W-Zql;IVBFU6yk4&9I}3}u7yM-n6p zdx<}2fMj7m`sY@{*QS5{ihoBqbuYmROZHN>TFC%AEExgr3OFhyow>knEE%SRnG0lV z>nAf8$kx^`989*he&JZMvGogwl5MSDIFf8?{p?Hyc0225XDYDUS-*@Jsfzy{))>33 z4gZ?{Id_D9>EV%Z8DTh#*!VJHa2TFwvpN2v02iWvMs^bGd;oiU% z1PwYc$ZOlc6$IT9019sgt{^BqCrGtI&<0`9-hs=e>ZQ;l+&d&>y)zQ?tUc=BJ`U@i zM{tbmZ--M`eOHCY!b?JsF27nj68`gmg}CB^YmF6f9gSs;c@(D$eQ<3>^c7sMR^#H< z+5lJaURmXOrLVAph4cf7pgD9OSFKQe%$OxW3=+ci8`G`HbobkI|6n>Z3raIc_dv~b zyiNCc9Hh~zz-IGdG$6^r;)@bTZL&VWdG@pj|~ z@Zg!mEkG@NAHp~KQxz1s%ky6*g2(1u|93!XR%QChhzps_^`IXQMQlbN?o7;gpc2OI zN*7n5N)Prf$DvMTlX4WGI9d7zXgUw2J3b#$oqpVqbnQ_|kut|J1zzFn;^Li(|K>zM zx}m$NzA}6xp&9;X&?;{@!hH?g`m9%TCYKR)WI&l0F4^z{LZ^Vx?k&ShFR|tMCt_jo z$Q#)4x{wSH+f!vKu5*m@@c4crUy*a>USy1TL&o6X8f`ENZJ^c@+zwA_+@FdpGM&R% z8h>-RscZHkau){0)`G$?fbIgw>PNq}qJDI-2Pfc-o>aIGktFMSDGML-H>Iztu0>>q zYCRfhI&WYsTdmv|Ud-$uJ(n6~JvRe@yA;b4bAhN>LK^dDY_$F#XXgQDS5f}`n{#*X zmNYiI*-Zfw%7#OL5c=*0Lg+=hf;0gUPz0HVnM>g%o{R-R|| z?8&{~`%a%4Jt{m~+?R;ntBC=PdA~{Jy(xKCG{pX`Vs8zU@he(*N!tGT zu&MMl{G1QgR%WmM%9&tTWd~eNc*ob;P)}pU+ydUDv$%ZVUK+jZ)!o@y#6eMwWg^D0 ztNVRHxUc2mL^YO$8$YSs93R4*+3ZQ|g>0Tc$5ZgHue{xs=It%=#)daS32ll^sHA(p*%YiYL5B7PdWt()j#owO#y(sKcCuU{a_+bpd|q1HsDeM{S2 zoUONNw*Bxo5XN_;7{611o5*hsvo*`{SExXdI|V(=KEd)%VR;f{cQQ_4UzO7C=(C|P ziq9a+L^~QQT=W43$izV_%ySL2s3HpN3|WorhS zjNH<@2|_Eq>&x}bHRY`sE}i~j)0pAsHYrkSSNI-A2-=HI*@DjF`x4hpO;0C9UPqA; z#^6u7@rS8+jck=h|MhcA3uiZZd9oB+SmDlOSr2DSzkw89Cb!H}cQs?Cy)&NC(%#VJ z6{{Q&4-EBgmB-IGMwH)j+Q9V;(kWb^q2UVniO zUVl|mwk}Qt;boKzFFtO}@w%tTbCf9b&|rYbKSQo$44n{gSA^F*!|TfdUQZ#yCsVP+ z+|v*|UVk%|(x{lW?(cZ(@!DK?O}S#1Q*u}eneHD%Dex*Jx@U}0kJq!%!Rwz&%J33F zco`+bYl{G{_M-y(Qs|)*14Q-?xsoyTm4LeMnse-nTomY9lRc|{~AkaR7_jdVc2Y9&<5rrNa3K02W$d!ztGXn04@Y=!f zIy1nlG*x&hnTok?3PHLLOotP3a_Rgz1W}QRmgM=L@DqpB)Udp)Z_shI0p z@Or#jjiodyrmY)`w;r#L2(R(euedzNtB~o&5v9PZkm&g007gAt6QG0FL?vZ-i6Fd; zlHs+>^6*mVp>qO6%AX7Bqht)78*o>I*RF=wc>!K4AtFkYOvPN+hS%f8;Z?AdM#Ws$ zj<+7K-GtX$>qocdcoi~T2T=;V3W;vAG3xQ^gbrR^O3LsOL3kM@!)y2D;ib?+Uk?!J z4e^qUp>G7-72&mq;dOq1*AzrViIS<9>!#xMcug~w(x{lWZaUt2y!I4cUwG-$ujY6a zGTq8VDex*Jx>bx(kJqZu!E1(+GQ30(UPj6A+AF~8;~^pnJ#;~U$Wb9zGKMY;xGTcz zqlVW-0bVl^5hY5dVy;^aug7b3V=0Y_Y3tU&TaVYrgx61R`1lucyb76aO`;Td6%t*y zG3xP}1s%NBQc{MO2*S%K8D4t_czr!YM4^Yi86a|H$d!ztZw1^H;kA$9b#Z`KjEE>v zG8J>(+IT%)vyG)RDyFSl2X8%I9~WK?3;%p%j#nYmtxJ>wuR@|*&lvT1&4CVH>nkb4 zO9bI%lnk$Z1H4AqmqHI+5+HJ0h?isxT^ev#gx7wC*JS}-a}g0GN~U72+W@b}YeQox zjf!dOHo{wv*Z#umk#P$?m*Z8)bQ=?;z^jnxHZev$UYkM(ug#Q{;U$9bGD?Qm0Rdjm zgor5g(B%Ol?}uE;7`h_ht_ZIK4X-N$ym}B3B}%4Zu4CdW#jDR)N~2=hx_Nl(@%n`D zx}f~yHFLZQnQn8U6nGU9-4@2E$7?=x@Y+&I8D1g?FQa659TecT$}vF?sL(@K1&C}A zawTKv>VUf(R(QRAZEY;2Q88`ZHhAmtIz)Kw)BX6bbG!z+DkuhZ|ns3-HxLU?`h@W1~m$E%R(K1P%RuR@~R+ZgqD?E@XWKCYw; zFA;>7Q8K(f9pE*>z7%@s`vD?Pgm_8D(Dea#MR^t(#;F{V?FJ2(P0IuO9_?9fF7`Q8E>C-6!#Sybd*%(%@)LT=yxQ zdc2MnUO)cx;YIsZ$aIGhrNFC@=ngkVJzhsZ2d_^nDZ@(y;boKzug?W|jj%6;9{O>B z$W9?%k}>p?fV(2RjxoG$4Dk94BBDgeRLpfp;`Mla)>ulTV%oZ+@YdtygxBuhJ8?#C zUxiF}G*Jq?3W@G>#;C{Z80g^Tl$7Bmg77j*hS$OXuMzV(3O#gFfXJsqyd-1j=775* zypA=zej4Dl5D`(LWGd#mWAS>t`i-SDDyFTg;;qN4UwB>coj;tD<5kFX#}TE#tB~jx z8KWMrkGnbUdt~Y$?+;=x~~wWz^jnxPBKP4UME8buTzwi;U$9bGD?Qm7ng^Z zLJ!>MfZvwndMMRV+nTomYG`t?K(~YGxDyFUbD&Bg$65;i7 z`N!Ahcoj0;5K#)e3W@FvW7OkyCUo#ROGz1CA_y;|WOyxE9$pGP^xFWD*FwA`W9YVk zyCS?;KfwF6-vxM`jRT#9@z&#Yg78{-)@7^bcoj0;w}?{URY-If8>1et zOQ3_-rAo^150bV2Ka};{$_W>gFLcAnn=nnyRMR=WPc>OWJ>oP<{iIS<9 z>n_LZ@w&oTN~2=hx-0S4x+lQvIz&W?lBt;MzKz%8^&Mj=jf!dO zzKgdWFILgC&0PFW<6}8qg-rK7q7--)65aQWQIFU4(822lC1rStAiRu{;dN?&*Ox*> z6ng010Fkpou4D||7jRdE*J*~={Q+J-Ktz-%nTomYhj=|+KQflmsF=3y$9U`UI$d~e zIWW07$E%R(enON2uR@}`(HQl3-2@%HZdOu;mk7ekC>dT~4e$Lm+n!RuBfWq64oyo{3Jb!LFq8zCYJJ@jyZNcq^HH;{~>M*{AO@H)%z zdNjc6*NBJ`CBvDxxb8PN9(AMkp-{%9&XDG`wp^2F zjf!dO9>QCX*EfXMs?kPMa=Z$e?qQ-7coh=eBgUx5>rv?7^(Q4|c!?mqjFRDXet_4f zLJLypp``&L*M?ll82U@VT@hXv7+!x3@cJ_%SpS8~`Y&Af7>>v5abqbB)_;lh1Wr9( z7YeVxzIJi}OCi%eNtA+7NOVh$QIFSOpo7<6m6YKng77j*hSx;_UiXEFDD==%0V23K6XT!e#vzu6r8C7!dc3|Ryq3Ika52AH z$aMc8N`Y4)(LG~~46nX?ec`i8L;J^>N9$|#VerMv!$+Zp{{Eo|`1O|!cINOUmj8eF z{C8=+;6D-I6JtFWe)lgaQ0(*2V0-3YsyzN-{ZmiR>rfHTJx2_`w87R97Hj{Wm+Xex z3zBGMFM`V6C|TKG7Ub>SuyhrA=$RmIUHw7dB^g7{2HX{u{pFVTfBL-JTFDm?5hY5d zVy=4$uP^(TjiodyrmcGgZ++QcAzY4JXPfJDTnd@)RiYGSUr2QSHbz$V1z!Jw4qmS* zDZ@(y;boKzuPXz*MzqBWJ@l^tkxfFpBxC5gfV(2Rt}?uy5Ab>&5mBOKD(1R3@Or%7 zG?vn+n6~aMy!CipExf*S!b$h#coj0;+e9hwDkQphj8Tu*f1!idyGqLN5Q8E>C-TQbwUc<&x8Wq#leSo(f zuj_=@n6al7YiA0XjuQX^yb6hKj4|r*ilBp6nTy9u1mR_r46knoc%2d=qR>Mx2Z($# zzopUy=0*MrZ%UQE6cjuj`CXgmrgzcEoEF`igi<$yp#d zienLztt3acydA>T0Z0|MHAJ_QoSkuMM~Xe;eN(pQ2N8NDBDs&i95-+v-ac)_)7gL6 z_`V~@-KEq97z z5q<7-+wAki_bRR92M&_Vb*1r)j~3e2!G$5T#_LE$MX*>2v0BYH@Cgao-LicK+cgB) zo>rgjt_*-F835f=r)I@sP_$!ygOX{2lMZgpSM1)(yF}RRd^8!JVTT3vmQ7{US3&G!t-8#P-JAu-$8il@^}CLWs=vbMr~RO2a{aODc3Oe0IxOOw zAD#6;9;rfv?CiBSmt{EcK?4pf38D84Por;%CW^LS!mcIDQ zYvaDQoHlN9X)D@-n}YaR8}~ML39M_XshC`|v*DL6P;jbZ7r! zw)GCIG;3q>dexQHHE){KP!24VNIA(K+?p>+PUGI1yC^wbUcLwp8@)53$$q4L&-$up ziAZUq_Z7VVrzS)Z2ITlA#BNWNkZmnjZ!Ej+)#s{v%E)%(Gs>R?4aiB@MX1$$17DW# z|6?sv9E<2{nQnb8i;^My)7@uM zig}$oOSV;4=k$G^{-f*MPko&$#4o?jNwKib*}dwVHq-lAZnJrvQ>_?L=PZ$|&Yg*x zs&lfLnjHLJm0y;F{|xyBQC|PPP7KCeF)fGA=^9u1CF$xna5lmE^xccjOpBgOQwyux`{~)!p7Jco{XZ7C;ta^~1ukFN_mtDstiFu$QSvpY>CRbb zt>^MAUq33lhgPFdlV9aQ>|@!odtemVj?^g4seTJs25%*Fj?JoN_XL6S`-7t7H}L!S zxwgEpY+u91Ckw+Y%}t}^5Ae(J<}|akV{@ukO6DJzC3E`RnI#>7@^dTiy9q-3ynwn~ zy^J_)&6eB?&7G$P`%aV?xQp9v+m(0LfFurAt|DOd1Qh5V6f-9G>%{xx)TBi!U@r+M zQ%;@pHLQpNGN&+HE)gq(XUvIRY2^EeY#)Jg(y9d2LI*T_c~R zvTwpn5@6qiitZZOo7){tNPlGI^N4pdhyq{rZoNM(Wdz8MX`8Db8Ffr(OZCga@pG=?Z&x@>yr@1{3T6YQh+_KDGqVV^G=E0xA9bWVJvWzgE08H_K+NtgVpQ zHhf*mZmGtKBRTPU(6MC(otR2sSv+EpV zZ99E~Ok#F^&HK}4JNrv|@yP~>m)%_4DA@ql?+t6m9!1H9IkVgL37BPjjfDZ}n$)NL z&C^10>AuRgqrOQF#iczWCuwO<$Uq4QbE-EfuTO<}9o^5h&mEiZZ(Me7V_NPCoGAGl zvC=HaoKoI(@J8mK2xpzEpD!P4`*{nOWyriprmU@jeIkM6ATyFPr+SO@|9hzahJirk zdHUS0(rj$yZfnn;At>$HttR}R+_)vGEUuB#D}iMU%j7z@w%iLKZ4I~MB%Gp+?Z?8FiKY% z#((LuI`bO%SDqQS_y%pW{@^Or*&gRs9M^ zTK&@fg_}xmyjPl*_7l<}uS0XHzY+G&K`ZJ>Tw|Y9PLBGLZI=r6>y+5fv~-VQ{{lh5 zelG}7@)9@hcCbkM61x{t{i`2W_JF5-i8x(4f(WQBR8eAM14@^b;kXVuSPMlTn4V42 zW@zQa@jcrV1j(`y(Ukej5M+9ZI>qGq_L?W=dRCUuIfZ5#pfxq83f#s`OX@$p2%|i5 zs`KYCCOerS4Iy%T!>Xw^e3oh79QIQ`1j?AR_XWv5mq{wI#z@2h&Q_F(6*oi^6& z(&DhK4qK*_zr3_Z({--Zs-_8jPS71>;-`(FKsTkwgeu4JSCurKq9ywPm)%88@mepvDW8=D!jg~UX^L8Ub zqa`KWNl_HPDl2`+QWIlbv_zM{NEHiFW~5O{_lf~|Yv0E;tP%JOYt+|!rR^A+RDVrl zJ;_76GGilgJ0Yh3sjg8&Di5b0Oi_XJthTtrR?9{zOs5RjEFYEuc0C+XF$zxBROaLE zv(fEm{CA?dZCJzCW_g2%fyoWY3KUmAh;>(hc?%0$kBm-FPkP!ajWCukfyO zZOnd^Szs|d23wmxciqw_d3t}??5vp}*x4cyVh;aB#z4HmfYuSeyb;Ad4rO@10-?)2 zKoE?M^G`7{?~36n7&4-(&&8DaP3x2@wFwr)n4H>PVQW1v!}+F9ajS236L4Z4FbLrO zOhSy!Exyc(9j|EoqUI)=!K1maK1Siil;AqGwp@T~CZ)c$OkbaYSCj#D$v#K!uiV=y z1f4zPw$wE~>T2N(sarv&wvx#SGXAi|8*gNv9Umk}P^$Spc}+yP&8W)O4ELy0-b(S+ z3=3d2!;^Gf(t@jInB5xJS^5{$h!Qc>4C^{PxgmRAQ9PRAUUkbUy}dDNYphAh5oN?o zi9g?{f7>~A)~g(N>-EEtDDiocloN9!+*u`Dkll@hW-|lJt5+{d zR03^8RvEVtsXmM;j4+@)sy-v2qw_r4PV(Iqoqs5O)wX&qi z4N+_S=_hxJ zv`Xamx?w9aQg<9QDF2)C@8bP$$-lGrzb!wTqUz8JDOI1jEy&7~`FRylX_eBQ|0pRa z?bg(iYUR^lQ~jesGneG6bTu5Ad;cuPt#-<_dj>-7U2Wc1N#5hqZN~)6ssQ3$0&zY` zbdRfv)f~Sgjkbg`zUN?sx3~r3x~*_K-PX8PrMJOjnQd=0R@bsv9QNQxf9i4APL;N( z)i(HR;=G57dyaB!@zYlq+P;J>_C}?}-l#BD?Dr)6Sn1f?{hox==T0oq#FU;@J8deq z_Ar-%txHAv>TRVIGjFZ;x6)`>-u*%I8kjZ(Sx~2&=U}|I3ET9IjpEFz(+y6quHWF) zPLF4NLNglCD;<8c*NwjCVx2aw`QO7y?Kzdn-71qxx%NK5vNz?hO2DRxDF@Nq8FWPb zw@fYhqfX9jdEQ{8zD;Oy(v&WC1Phv)pInHr_RL!mu+w z&4Uim6nOUbQ6dR$2f=fXKNEdAdM1Qf4mHmgF8UU z$L_6V*36aNO$xwu2K|h#>*>k{ywk|24Mw18bTXTuYjinDXspMA}V zC;5y$yyh@WrmymSGRn9Uy|9eFmrsk2VZ>CjHXO?5b~Iksl2`amB5#Loo&EkrdLD5ZFVge(dii<)|F-fjEMZWR z2IM4nb8EihMf$)um5zVSb7(sYBJyPF)-P-+eHTby#j%L~HIHsRUJ13m!Cv?bTq3zD z*v`&EX7*kx*SC1Px{ajU+f~K1=>F}h-Citdeo@HQ_QEz-GZVS2S6#N4U?XX)_ycnM zq7eB448A4l9s^$Q{BIa2&VU?`fqbJeaAd!AK$XY8488~W{n7%nmnkFdB|Wd6wng0V zU8CLWT_fO^-pK7Yf7d80AMviyEI51DIA&`#Z(g^Wj5>d(*aRndr+=NY;MXmEM;fT_ z_v@D4v^2$E-aGwqh+5XVrMA+gjJDqj;%D#l_kqr9+b?S{KDlOT4_r$Mb?@}^k`C4_ zDWHY+@AU2VYDMmo!KLr?^N5*=EW_%|Ld@zEeL#-4I{BjHySkT6N6Gi_j((?qy#n!0 zU)uMaLDGC;q+lPR+{X=EgEv*^!DZWQq0q>e@TQQWn+&gzZkzjMo~Fejp2OHqx25)N z=rlc2A$VhMczR`4MVY=&@njywDkUDirDOiayj3N~8}o3D$~Pz!{WXWAU$#c&zbePH zuuS;!-1Zu;n1L;TDvX4XZqAa`1m&ew9jY&npos?+cHJ zlAps&pTlqE8LOkC`UmxD#rx(y`mA3ND0>^7^;w5T$t{rGIrJ~SOUy#3POM+ztl-jn zmWR6t#&diPkfP)s#aTjkgSof z1V6_)iZzZWx=RZk{PVtrv8m2fjSEnN=QyK(3xDdpr0`x=c&{kDR~24+_%6>#pZwT8 zebls)@W3eV)n&=uxRc6J{9gw9OK&pu#26nf(It57Q!GT;v{E^J?AuFr*U&%z^7LuA zy>ZGJn#1IETLX_u?5n&APf1r)f2U_99jdTsZ5~B>nLN`O3g=_=iyq*(h2G|Zuy}Zy zf0}I4)1;|tICQmS?>{E*ukmSu)ozKfJLl{0$19>h&}HwZE7~a^0#x=w8MeJBOpO1Tx}kA|3^f zF}AQyZ7BhpY>8Hs$luqS>t=7R(^%7qWsk7^H=Q3Xw71gzAA2IL2z~~17DLyjUOlL0 zS+n%8G-i9iN)MmAa4lX_33_IHpVDQ?Z6!A6K#n? zqyXPf!Mn?d)&@m%cML%4Cbt-OL`Y$#rQ!|=DPIxg(2#O3l=vr5)$d@mZ6hD#l!-&g6>*sYL>juXR ziaw1XdDROe0`3mbdBEyEgdauPzaYgG`S&1(EyLLpkDnFQyqwtp%W$3+%H9ZAhV!0` z;9q7+VrUtTuEUetMp!{pycfc>3`cZLC&~<%MEoe^k<E5yBo zxC4#7ci>?nX3tw{j)p7U08;%JDRd8t8NZLRy=qvysviTJ#lA&vQHyT5vs`f^&WIMh z;1u(N8)LDEVc}Eham?{4D%7gnXFnye7wy)5{DZbz6(?`Iv+=?)yZ{&79&e-M@A%!y z>CAuo+?9&=^2IBIe<+OA^G*_q61!Iu!q|bMiF?KtR5kb6+XXrn^cjejJVX2j_Zo@V zGK6$)J>DCjW^tZl@~rXq;nv#Vd8K~hwOAYcPgu0U3&?O(T^HfC7okLncb~&wlQw)3 zmXp1DzD|#({t8p(1+U1q^35+b^Wv}(qsx?={JRGMRsA77M)l(;M_Zy~y?nvZy8#*J zb!o6GV=rurBwT(K|-n4Wv z)~vQfc^q~+C36~M(if{k~PDJvip^o4Bx`FeXd5RKVUDY|*N6NR}BlWAz zsP0LAYcE-{aJCFc-S?j95~E|bl84=ktJ?yXDhV7o0)FSw_!ZiuKv_lIRX$uGjHz1KiSfkG+Wf?rOlYozXb)`c?LEy#vLy8Ey1!atg``rcmDx|uqCM7 z{RbD`|FkmmOCQkM-T$eK+B)qFPNR#u?`OGFL%cTc8pc-dXF8kbNhREW@7QcCcrZ!P z$eKD1f2}l|N}R~G!S8x^RyfP-0ZoN(Mz`V)1LW~7lQ;N5Q_Fe&Oq%I)yGtAZRhnk` zdJXaEyl5+V8Rq|8ppB9@l;PKDetXw34DJ3Ks*j&1S>8ArK^4?}5rU&3sw}-lQBxMD zk5_7MB86iOa7{ZKBE)yKBE=SM`Jmn%Cb!UwvHhPA~5{H;RxYTy}P z+K0A0j;GrDbUEQcIcY%la+Y%m0+w^Vt;>?vakZSQK{a0Eg(wk&3a?A>2&-75mvj9R z^y2wIl4hAHmDUj}TLvNYG9pE)VKS@^NsGYZ-%cpHAjO>meymc zTvgji3mZ`gjKVH5t%_?>b{m(SXN?P&pXYJp;s287KP)RZ_b)#;mT#6RYa}3r=@zVj zc*(J>0-Exn${uWq|L+B4?U^kjF#xQzM=v8OIDY6Dwq<&7dYykTK9s@KjSqL@^Jmec zF~9?^|TK{lA-`2WXyBXgoX19mBlV(eri}MX7f)PtcO< zx!YElZ0V=8c+TFGXYW#J6|2W%I&6%`Bu=T?Lpu64p$x4iJ@7ZkFJ(O0#uEKg9>|&% zEeDR0MgsLuy1Zdwm%Vcuc#rT|HzmD?E1M%aeHkKVyepjrUnum7d^k-_+(^9{c)u>* z77B0#0lEjpj4SGCn&dR&jB9qEhS$ea1GXo%y?&j$g!(Pj7d<{?*8;{jBZ3~(mIlqn za?NoIk`2Nu++k#|=ToDiY}lSgnPRPYcc+&<#2|7E6Hfg*{l2`gd0@CMFY}d`&sbi> zj9ZnBhbTLr4o#MF;L&u=q+F}$zS$i~oLUopnkmf-_E=q8B1-&Oc;lh(lq*TaP`siR zFJtYYN?nUynsr?g;cC&#SQJ{is?}pLwCF|Gpz%_?QELxV+}~7-@5i)xIat59RCP@c z>;-v$@-}7OMCkEBSg1P?r&m=Y2*d*TR-myZqdnO3NM1Zw@$_kembH{3kHt~4g@5qL z7n`e413EXiNmSzvcXl!2@^6NH=;6tt_=m!Z9tsT;!-B`|5f6n0CwnN&=J|dPSeKF3 zXRt8kQ}cOvZ7z@DZRtsFq)YbGv*HKPD%8KAEl>f}wFNwzwTQ0w!x|guy=f~1TNT9p z^ttm&XEQ!p-RkjJIP}Ndmp)6vzao)iNTdk@ONwCX!yUiU%kDI$WMPry*-EcAd|2Q_ zU5xDg)+<#1twm##j3w8-%Drn^mvNCwy#Mu&q!l9ToGk?oo(ms2r;dxJrJB4Ar?c5F z>}r?P>H-dTt4+29EN&THY3I#9fTk^eg;~ooR+x1Zv0g%M`Zd&e@*h>V*&4l9vH;#S zfePl&jXs`nb4?(#$_v*oSK3mUI~r56dhDee>@u)Y)AWVzJjGhE4y^Kofy6IfSUjMwG-}@Q=c@=c&=l*khXHq3THpf&$3Xf@})MZ?o6eP|bAo)j<`~F!jbcS&HfFf>CSfrsj&Z)TR(61(LOND+$P> z3;{8;mQL58Q8(ipxt1=i{B)M-$3C{K&T?*6KYCeR!KoknXkP3P{y}@Eic{C#wa;xY zEk@6^Y0qftrV?fzc$Ro1n}$ERO(R+BIu`iJ@SHlMwZCVB(!#7eZg9J84ob&?65Vln z_wNq%vwGkfxD`Rw2bnI8AH`|)0V*BwLp%o1u4>*ao3A@4N~V)`%-dAv309VO5n>sW z?Mf9HTm?ctCOfF?%6#1A2WD^H*TBH+A`Q$kSp#Kv9Aa#0xa?R&g2Wk;c#A@H=HYfL zy9m9aWG2j1hW52$4yd$_uqnIMjlUZFbnRTk`OY6xrQMrnH%vjSN_;qT0oCKBukwW4 zxR4u1D3GUleUz+D6jlNeVw&;%NutRbMqUN7duL7X=_K#_D(`E;$m28Cd}lpB<{WuV zznemSylnYv*U6vG^ZTXbbzSvq_KJy58G*>20sGh8v~gjTN2S)q@uRff{h#Jh*j_ZT zFl#L`KdW3H|LC z=#Vz=rc*aME>*+s)AQ@lN~M)bE6vPg`FCwQN69+KEW2%~nd$qrIn~2d9_uQt%+`1( zw>=^3o!soQ9dm1bo&|28+~eyaGxglgwYEwlW2T_nf*>rYVzB~tIv3&Q`fZ##jB{4ez%u2ls}a zJzKQ`h@P$NHD-|~e_r~=hTqcF=*{Pv>hij`bU)MX^(M57ysSo+ddExaDCtA1_>7gT zazRmDom2h1^qm*#yFVYM{FlVJyu+olv$~~yl%+MEs}fJYvb$t;y?(vS+^fvJ1~(0A zvWxX^^AVq}<5{4T(1yR{F*+=5YUQIayaQ-~!0Wh0Tx{u^MNPJXS$sgttj60tjQKuJ zps4?tf%K~{KT$pK`Sdn>&WeiIe!9B<OGqouC3d)O z#O|}TPmGVSEyc*!jVOmB){R&eTKxwH)x}%;bt797s-|q^Yefd((B_@UWpEo9x&5qK zu71Jy1t*KQOUTpu%3`0o-C!|2xw}HxH=81K#9vfw^)-ocxQafzk9o!`F^`7$R3%-~ z{bGV<_o2-#0BZfBWKW_de8Sq$Xmf;7vIhh{+`9|AN}sJPNQZ)WuDc(eR)_ok;V*!_ z50SWhT$h=bA-J}$y#4H(xv;jMy!K^toS+Z$t{;P9>jUl7sLj+vp2i7!&eC7^ z`p+)Un7KfUI-)6FK9Mg|;!*NZVwc^I0C|?5+tfF)7ZQ}`8SF;Fr!TOvN11hOGv`f) zRhhB=yf4~y{=6w%d-lWeVf#KQ@6fu7kk zW2PJ6=P}>yP<65PYOIYLw=lhAiM=xr=@sFdD^c9{S?@gyU3Am4qp{7%eE~6x)w*vNdvZqc z1;8?2<(tKi&w=9O_o(wr=@i>bj6d=M^JTN4&xc#$t2XD%TfW>$WJ~oUyFWR-*PeK4 zQ}v6=4UH2T;+m?~ga&tV8*SkJsH>Y(baOy@bE<9*S9)GAA~eyxe~cE zp{4;g!dqVSF)}o^DSfqXNsqHU#@7O;HM&t#d>#HMK8Xlsr)9_YH?6ayvKs(|vRhYo zsea8Ry-wKD^xGDCYv{2wUGDO zt=Ktjji91EH?VXSsI$}XJ~;aTC_Hm9lF{MD>#kI~C@rkPu&@pyL|#}2OBB`G(h*1U zjhMCHUyhPPptDwr7PwEto(`HOPug6KGL&MU+b^2DEH2L)ys)FNPl0USnCX^cJkL5T z&p#EuXXWFsoOfD1?@+d+g32C4<_;;uvmKV@B7T&dpll~!#*N!}ye!6c#6Qboo^9^e z6#tD;@d*5kblr*&HSm!2C>C2iQ5l~^#^c32VGUdivrj!v$8hCO z;`5Oe3(27xYv7WA|7Ylgg5g@(~Z&qI_rOzlM{K{4d%R2bM&&SzPL7osq7`QA*>TxCY6*4y{sBLfeA*#8vbjMhL`}6a*&+kLG zfI4jhGd>GJ>;k_E?-aa@-6oI$_My{Vl#SI+<;M2J;#xZ$hkEc;`G@2;J*X#Va6_Lp zv2-~d`Bv69NJ=_rP=|Lkj5E{gD_nQyzUR|8tX#GP6AABs`~`-kPpksUR1OI4Oq|+T zIE<7Ou4fg+!ScmC8)s-O=BR34Q;0-5_5DP-NJLol6h3=4Ac6?Ti4b?n1kO=}DJGHy z+Ak_jngBBdNIR~6pJ zjS`E+Q$*`}w?y&RiQzj*pQg`+`!Olkz9FHBTt8pw{ek@HnS8a^X$DekB){(=+mh{k z1mr8rFW{zrFSZLnReueE^rOBCp?u6geQrZZW3a7*vhCV$JC!W4>i)E?Dl8u4_uEd5 zt-|SVn_;CJF)HIvrhaM2NCiRmjK84NxSdxeDy>;sZ%^;1KbKBJ-4wXO7SC2@K>iyE zSvAbXxmn3j(w@<5hT#eU7Uy88FjBsii|1$0Hro{Sw&kr|bylp0sb%ULpq;<|D+Kzuo? zG}3bRFe&3{IT{8d%W?an9B-y2P0R5nyhSOP=-Q{=;r+EAlVogqt$6Fqc zihZBEli{J50UkRDk3&5kCNz-%%UthAJQ7B@PWb!^R)&xKwV&gFk0KgACV|Zexp#RC ze?I~r#T$)}(F%M_l*dOX1o-S+;PV?eDL%i(Ti~O+9G}WI-d=tSu_hp0+Q2}FscIrbH(xPPhFzMETM6tm|>1&k7re3$+QG1-TbOYL^~r&vImO@@SOHdC1j zu;@N0wLdCUBDeR`UYh)FexBYv3NY2Dx1kRql27k0F{4BmpWd`Az4;32qw#f+B3Lv1 zn<(x8kW^>u@aNeVW$jS&#(O1htnt&aVxJzRGL{@Z`ZtEF?|YqG_bur%8IZ@_3=ivGE3Wj zE54$S_k2N?@(n%D-@1`0yXTwfFCU_S_Ow0TG~crZncSUxH!ivt*we@F#_GTnYB(`o zAx6bLOcY{h9R8!SyO+Cxdr2jGG?_{!tJlya4T@^4c!~z@$fmAbtKN%o`{u~Rp2wG% zs4DGYSl>^0?3owbHezD(y;SAjqrm|g78@gZfJ@R;#u7THezk{0?J{Q1E(*wgf{@Iv zj^njTRD00J)5TJa67z0>0@cY9ai0QAF%iYUz*6&~%;K(%;+f&vT(D=5$K{L*l)&=F1(G?$Y8@N@70>HZQ)9Xm9#c3iZ-b#23+xLxd!d6F z5=RjcF>Q|?!CSOPy35<67>zU*_!GpM9Q=>T|7Y)iLjK3)&z^@?BL?L=oKwRE0S+Ao)pvcauX>@?SgkN z^DeyycpLC+X%+<1^UQq&ipLY9w$zw%d-eJa>GIbe7I})L+BJUZKgCIPxLN*0k{8{N z&laVm_YZKNHGB%-Gw_r|P4yW_+dPqc2L2)@AK7s6X->=1l+mZrqQoL(ZQg9a?a>>b zC{fmWHQwz1rCv?W(?hZ8=AOdq{)Q9Z#M5MTrOCER(~z@<@^C<+qb6#1CyJm9?y$ly3h^J8Ak9?W7ryZzpBlX*+3D zGn}+u7!pN0>G^^=&@Opz4r;*Na`Q%Pi(iFumQtW2GE1DBr1ai}YnSd>VbH?VW*<^T&6Ir ztQXUs(4Q02E92TReRmy=aP1{gr}!xQTa+at#ore5c^}1MCQ_7d1jMwO^Mc*W?On~M zC4cQ{k*AtK+R^#qc=3@J{2c_ZcOe_Uk=0Z^Gsr!x=iUfv-n!1^hSoJ}Ti<;*Z(Ehf z2pim!bUq&7g$=3)0mb}JKP_O!HceUnGr5$?>`$r$_SaKt+`^|HvASfvokr?X*q;@O zw?A1)YJWzx!bt7Q%EjB)5owWmfQCEQ z=VHxm?JW@!xxH)pz{;GZuZCT%zkPbvWz+spq*3i{#qwadE>zVg;udsG)MFtz?9MGF znO~yaB8_hL>(M*&PA{nJ1-%mpnu;J>wr7%74)uI>C@gg zsnHmnn;UqIrd=HpN)4P3(PZri+(hs%W*Fa+}Jie7Fp0uy4)u@B%X!T2X!` z|3RO8%-0sJKCO}A>fstotU%9r3m%rTm`Z4}mzAbz7b{82l@FcrtU!jN+PgVSS=v69 z=x$Yj>(vV_N>*6Z-oxox;0fMNL~-X+n6;Pj(GbbXy7(e(3+ysAI^OXqn9u&cCd8La zl+s5fx!&cz{Y_MRdU@_C^-n)8?|jV~tw@_EHG3Nqpti$ikGGK`h_YugB?mg|$ zu?0;-C#Y!@5XF2ESb4IoX?FNL)k&M7e=trE;z1kj$G`gr?aFe-ze;SG<6oZJO=i*7 zS_9%S4BSOEDaM`gGm%s*Ym`z$n3T)aR8F$&J^e zSc{k}Navz9eWGZl#XP-z#l(nw+vnbvH)O&U)G}GKt|HMUk{meB>KY6l> z>Cp=+Ls)qXX{!t;*_e5IQpkrW+i;@?z_2bn2uAt`bwSz(b-|CBKM~l(^2f}A=tIZM z%5gSkk#515Ww~<;rcY6i%;0=IQf)}Y48HdbT?`P(7Onu_gz9oBTY%$losiB>A&?wj(j9XPvg6$-#!HBnD&V+p&Qj zeLh3ovcy<=P6%JOrr^V(Meq5j!bFKkzHW7h$rgfKeBGKXLL#@<9t6FjZcQqedr#fn zR0Wvg#VwW@MoUDB-xsq}Odp-q``q}N*ClcyHycUIUmGX#R1-zbdqTpzU>0pFtlnLQ zl}-Y~`sNcZ(WCSoZ-eVSL8`||ju&v41nimB4f~WR$j?AK(<|A0PD}>d?hjhxR~|ybkTk&FDIGJtd)kP=^G^h&rS({~vAc7?~JXX<82* z4@$!=(0a=>eisXD=X-iO!QC}m@7T9a!?HG=p{-WoYAsiviiZ^oKIQB_(`0_RSE04g z!~$geEPOU+uJv%5Ydw_wHn{Kde0cv;hz<5I#mGvHWo9VZ_6kE}N^+to9eeuV@s}9u z%x?5d8v>>D#Vcp?ntt6;S4kgve2R1$7byvQQfRbYEgFv#!HaKj-$RM9O*7WmLXX5v zGbV4bg|40Rc9lua7`NYct=zB7ji%bS=6Vs=pQV1?>#rL7U;aHBY&Ol9HgBR`*O>Py z5o5dAY731Cn`X?O_aD1%>7QFQ6;&pHu06xX*=`=wO@!QO-tR?x4rc=Ed9LR5h|hQ> z{xaCGc6exg9(n<5IqVgNh(26E!wLm7e7Jxp5a6LsGr)qhuaE^Z)(I>)+r#FZEhim& z`nA>A%=al9d$*#A-oq$Mt9Wd0ifO0)%gT6*{zZ3r|8f*HNBzsH5NmSq&y;_L{8^uJ znCh3-bEs4fCk?*GfFJZJ7po9d67(sS0N+;-!uKg_;G<6wz2{7Yi4u`~pR$^mQKE|v zy`~6Ld}v$986_h5(5s7S+PYtX4WCYk^&`QwnwKm>ZMuR@H5tXMi|OTM+3@I^DE=H7 zOO>(a_)zN@j)s~y$47EAVov+H=kmD@B~#Z19}(cQ>^4}6d}tdiwX!x?%KR^Fu<25? z!IoLy2FnuCHrPWT@Y6Qf%Apv;6cD9+L%tZp$i_Zh*w|VKN^NWw-onOom)qDPav&Rv zA=c#JpDq8|@@F=7456^G4vwTMl|Ew_N=op2@H{Pm`sfq5YO}VUXK=7LODswx&0Em= z_^>z8do<&Yd5PpLXdN+47x!Dtrf)TGHX_%$#hYRgF`M%g)r&!b1z1-BQvZ4;NN(?D zl99;kuAu?yUCYZfg1xX+yq^+_&g;C%F6x;XpRZ@C4QV|ys%0gu zM`nM%9%cPJYwv5k5>gbs17!BDb@tADlmn^3z08_D_bwmO6ze;;=Hrv=Y3w<3+fvB|G}Oner;Vj9w5U}Lp;bOe|OJX z)tbo3CP?!i%H?|UJzFapM#-k|{5NZ}q3tr7c4)c(Tn(sg2_GL5p?>WL>afs>^;`1V zqiT5n!<4UYl{O{ZXRX{U=#OCOYos4@9pW|V^i+iCdfD|8(Kmozy%8TmHO|S>@#yP5 zzDeQu3eesgZWtZAK2e6`cs)kmXJw;tnI;U5GJW`rfZ@hbd_BPMYbxX@;ZubMw@woj zzAF-&1Mawsk{)h)*C334g>0vBHTJbah)<YrfU?o1j+?>!A|2^f{rp|^d znz|aVXmXz=rCHWi>Yen4#5lTM4{CvpFSkI1|JDZy6=H8s?Bn4@xEbdC!7}vS%Ul;Ya4@SItwGpyYxB3 zXlnv-5Dd*ZM>Tgg3@yQPMa9*qakKn8`!Jpg>KKc+jpF%|2;xy3BjSeZU{)>1H_P%e zdD*p{b$-&vA-C+tOjp&}5$Q7Kk7FZ7O4o{q<)d{M2M}+e>9Z3t`s^|H{Ol<;N_K`A zKISG0WoCHXDFD^FbQR){?SE?-F`BAOB~%uJv)(D`xB2F!Rn`R^<`zGK81j+qqN~bV z1j^g)u^Zi{#Vb-)n$*|wBJ3b2Pu<1e$;wmlC^%jGi449xB?Gc9*+;qPQ{Y#z?~9H# z9QGnmM_!&~ibIAgn-zAujc9XfKUH~9=YPia>Lb}~R^hZ>PtQ#Kk{ACRmP+CfN+Mgs z?fKOa{7(k_*3vxUA7}a~3HOUs$SqulHnX-Vr>kxHrRcmunO^;sd|s2ZeX@Y+^Q0T? zmEC9U;BI`AaVt^E?$@~Si>x=v`?d@pzMI$;I$yEjmfdd%nA_kHQL>Nm_BHq87UH)G zQQ%AbgN%Eyac>Lb!#m7)ha2yAArIL{8t*7`KWiaw_p<1R5bu`s`{3o~fkFPnRUh55tCFy!H6prmN&-cg6c@&HRxvDaEbMdogWP(cv3RZT8&R>G$Pf|3kI4?M=;XO)c(y zR@$|6?K{4O)Hb}hIn`}^N$>bSpXt`+5$RuRaU&ZW37xTqgZGcSpDxBH-(|{;Z|SU< zA}x-c{MkLExqst?FaEsdXq9Q+Sf_d8l>3z@n_lsGX`I^DkotVCD)Gy-*yQ5h%f?H@l9TQvlrj&#n+1Rs@R#VUjUQ%A_A6WeSbp)B)K-+87?!MV_*@%***=E=Ngxm>gM8y_~GR&^~>M0M^B*y~^m+u|eqJ zSR$`u>W^jBi_w8km=r8;zq6$1ibsr1w&!qXYEFC@hIMtHADk_VmZjfLU%4Y`B&1R9 zyy&<)81A%I2JS;fHf?)9{^|obgQ6NMp2{*jc1C>=f>&u=b7#{P%{F8*+uV!qW*&me zM{tyH?F+FoSN*bYmf~kACkE30(xoweo{Pz#A3cdo+c@1k#DR8lMl+A6os!Ya zW3=?yfbYsAHaV3L=~yAlJ7aavJFTAA$EPz;I~dMW35(|mzN>qbtk{0A$`IxEC+^Eb zTZ46j51h#d_dmn)WwEU<3&w?yLF;hmA@*ud%)%q2Rc&Sv>larN-Muybkvb%S~Z_e3$n(NPJI2Zv9#>`!4UnWz%iH(XyQp zl}6EVQNh?l<*RvE{gxx5N38gG9;bTsgjtS1kGDfx>9^W<-<~i!4Y#vKE5Z6}U%nb6 zZl}cfW$ArAD^4#zm2{q{Z;;nC4~GF$$WkX#FaHSE)d@fMS6tT6;pY19q<8!<%L0zJHwrJOgMSdFa_a8`$SlyAVvHhV!y5|6+8n40RkKahLPb1Nan+;{) zG6Iy{`tn|mx53R(xMedtGUnQZ@on0ysN4~^Y^z(VhqDA4ztJiC#FRqWgg7rEZD*1T zVPId$Md|gM>GfOb_2Tq;NqW6h*Y>$9m;R!M6{TlI#{f-vopJ`7KSrEsd=*Fxe7%vK zZo1G|+tU4UB;|h(S)G7{n)FN)nVKasVae!3b{j>R(!VgL{DMZbyZ>zN`+xiGhJ^#K zHlf`!Y%1f}t+};2MSA9nci1yhK%xN~dvTVe;97`*w?>v(3 z1*m*RgMHk{fPj4ml#YS(gumr0N4qqT>73D zFp}aEk!_7mKSNGwUf#`c%4XDd+*OlixY;6vu#h0^1!w&%r@E1PBvT6G28as zOy|ycCjBn)nI-Gu{$KYr66r@8-&bPV%px`ZImb zjFP9-e$uyau{O_+m5;Yoz=0oNZ|onEHVCyJS?*|C%(H4#JxHOr9;oX%dAJ)1$5Zu9 zx=d)O{aDw=+D|ODjS)mq8)YP}ilBSNki4T)xu4Zl&lnn$)NGvfbAoi+yTMuh{1SGj z63vfEXr^^zyIS_Y*ji%8Yu($fn6o?7&U;w{ChIrLkR@6!OE;k`-RH83`O@D)PWQd} z9bUlJ`Bm$n^Or0g@$LMo36R+JMzgw=DGRjpu$0cuZbnfuJF7X1h~0M@*YI<*)0v;s z()qzaj;(r?2%eluzvjrqlhM0(bww zsog2{IZR5idj@=H(cClQ-XU%xcM%GY8Q0t!D@b!^^>j+7cAMB;7MIrxM~Rh*V$wwk zE9!A)Gf7cBCyy{Ci_jND;Qh2u%o4Zh@_u`FC2(MhoX?tXBEa-n#)x$}+Q?M@Y~EaJ z#XKmAoX%UDct3NB%_#%H+=IW*zUw+6$DQ{;XhdhM61KVV>|1h^pM6ugF>2|(kkGEl z$;Qg@JUH04)uq{|^O+XR?miyVO0)O?iyI~t{>Y`HGroEzK}(H+QD};NN z649P2)8|eq{fT^j+4Q>y9(yW1L_n;IUE0{Hato5H{RsvmU~})ottrurz$0QqO$ld& z2Sktx8R0<@q(eq{NCat;5gyL{rh9xPnx`U0v#x>V{)zsYIQkdY;(!?G&&Jn}>9XWr zTy1>KH1j%3-?Y4o!N%9R3{T#Nk#aPdTCZ4$dJa*O#-#M*5r{kkn5%pbSLOqREo<>Q z4_CGnL0cv;{wIX{$%ZJl5mK}eZR1=qZ6#@nHP;@OIIkEd*G!jUOjl4SVsLVeF2j>& zawb!u*vPZW8RVBr87w+Z>FDY`3lPP+x#U)bD5iZb(XQ`VRPvu zMdF7&J%M8VLsQZNSY4IF-upfiu)Z;pwQIn-Y$QvQ^O?Z!jAZdtp0hSv$orS^U~6f~ zQhi^T***Q)ljyX}^Ubm_jN6wIhLJt4-*nG!1C22DNu=}!{|YCsOTJId&m3)4_n6Y& zQbnRq%+40I>-GbGr)~5HjAnb`w$E)U?SiiQmHS_&Q=e`dE7>tg<^JA&?Y?-Eo=!9> z_nT!8+?pRwYF`MI2Yzh?1!MUG4=Y{voV={FOjBAa_#*4kv;6bScN&M4a_EAP8sM;N z|6rW)X**toleZl&2`1Lfa>?6{OW2v;!pLA~U(ztILi4e^d?TYXmhWTSf1g##fz^}L*pg9!@b{!Xy&?TUei4*y+=v>kmg6(ruq3mmnHwfRr9m5YPsIX zM~N6TKe`0Xk7A8#e!AU{XiL}!Uztiw&$VPT=THby@-D=_Q}8ysZ)w5a67wETo$Ni< zyca_qc(5?4nK`w8{9!u4QNN(_$V(`F+ofi?zZ)yH!6Y`*6*=ZNmC}~C+w+i(k-khoVUVTd9_gzg{E5k}BKJxh)y@%e| zq$sf8#jn0Ore)Lf%}5!3i`iw$s4QOw`)CT!)(}s% z-E*qPiasu+Gasl#%1-j)W7#Qbc8UE*kC$4%#8F?PxX=>H!*qw~f7kZ=1vapN--c24zFVYGUPk@b7& z7*p@|4^7LMufTH!NISY;EIxNLX_hx5M8|uf~I)(%eehh zFwiha{FtU#EL`;}mCc^dH|5-0GbJ3@S5~d1yjG6H zvvAYr?onEeRvK>)sD2{8yR*f;Oc?h9S@-*txPy^5!AD?-_} z^8!)Z&d=9%$@;k3c7BGM=AVNs3n(CI+j(7wCm)y%xfPFX=l_E+Z96ZzPGS(ioUia2 zWSZ3?!ncKj z2JCjuppDoqXXY5T6->_eEG`k9o_NzN07FS z<(S0p0~n`gnYFf!^{v%^6=*!wLdC*ST4!m)fAb@>Fh$~zA6SPVBQt-FG}SXy_n?^R zX8(n~wvn2Z)%R3Z?~)dJy~m~RK%VFs-ka6x$#zofaOa`ekv~d<;}h2uj_*sm36mzo z!-`|2tF7{V=}xFEAkDONCq!|#N|)`&DP1wzCqzqh9iIG&5q3Kv{y=(6@brOo2{JNM z=PFaB>B^Lt@hoZbSrz6)Y=BK*C%U6_w^Ed-2-;TC3YS)>nyOgu>7@!oUDPB`+eF)d z5}xK6p3JI%q6O8&%UMBHVS`;V=1WBJ!%Ff0T~)Nb|A$nS8_B}|cU4&rB}W2#UQt!V zEUF5VI?7U4hELc;*qET+9K909r6&nQkMF2hlOztv$V&y}aDQo>*JXKE(( z6MYrhf$O>6#Z`u=pXgtpP12Ip%eks3vtJV)cG4-m!ao>4s?{vV4L(slM`=FhBEkx5T!X3(W$vo zrP;MYq=39$J3 z3O6It6cxOms41DJk==Lkjplf{@kiimRY$L1fu-0jd~s6CqP4U)21oQ5XoeO?^o%9H zxn%{M#&{eY|NWnALiTV8nCeT;z#fD-vlSLJUq7IEg*k*j8M`RE)yOWpDibg`X5pKv z921B}l@zNIb7HeL(b2GGXI4K+u8mDymDZB%-*L;L+ttDTY$gFey?_l&1TR?5BR7Pls(P!<l!2C(vq2J^QI%txAAy z{z1J`aRkrl{+V0P!E2-uqvVqWaj(%frd~bBF(Y=U$dB1WowxC>(#E8Dn%VfLU}EEU zBBXj5AnKgD!=cqA4F3`GOG1+uFPZi{65i{P*pAPNl1~#fNY&1CAeM(svxu8d{( zH*sG*f+@anoLG0c3b2C$Y;H1z z3Tk{y?*cfU6!d@_z{`3-FD>i=qvU8LwD?iAyktT)nB|l8X2(E{Z$OIjH>dht>|oF- zWEO@j91Gi?hj~{1f3&>^oMc7S_uq6+=$W0_-JYJA-auFuX1VOL!vYJ;%)+vZ1j$)~ zNX`Nmr%7_>4nr0sNsu5)6cq&nl58%yeRO?gzYb0(>~oJ>>^84Tx^CU+6prx?4H6B%*NW)vz8w=y zLYHxkm7wcJEb84zjQYimpDcB3WUrF{{>*5pi$8}fIc`suhj7L}t3`mjF|b)1=n_dA z)Xu?IJ~Fw(2s#bo>qKr|_MWm_pffSM0K9i;aCn*toV`@@3qPXW_C+hhBZ!MKye@f6 zJ@r>!MeBTpXMkXJnmteD8FZ^-`4$rMpVC8JvSr|ZF1+>9IFLLE`Z7=(ofuGyaXh9E zL!JXZFCv|^Ifh#%kieO$lFt%1nULO3@D!ez@R&iRoGt+rd#tguP^alxp%#NQs_O_b#yKT4cp#}orgafgq=L)>$cDHv<|j%tUMNl4F# zkRHv+IsF>!Su)ZkqaL3Y{|QAz-IgX=`B$@r2oB1?&69v4FD^wQQ)v?8X*ef5sWhvf z>;Dnmva3{D)GxD~GnJ!5zY6Rp?dlAs?9Bj^Z&#mB*}jy2rv8`WGT~-k6Z@&L=T#Ad ze%?HaS3HP)4!+&csns#{_Oy=4t!)ibk9T5zST=)s@%!gvV`Qh7pwD{K9Ay`upQS&2 z-u49!Q7@cpw&{y_$2QerkWzmhU(N`ffegBNmzK9IW=w+ULt4Up6BC^ zY?T9CAV6fCQj%tEHdYVk2G)CoSKx^jGAmFDeSaV=#rpkdQTSye?4I)Ce_fuHs)#+) z>Zg&V_epq+M~FF(9WUcj&)9G_O~yb63`AAnK@4bGl|zd>4gD*b`Hfg@Zc_`WVIEcY zSEn8>)*oieSiJ(V9&dZ*KA4mr>!v5Yg1f%8TZsBjWUIfCIafn|{z5tZ&3V>Ole5_$ zGNkT~>$H9ep(x|Pqn zinc%ueJ}_0)`f=kg4I7P2GTS-!J6jbB~5R!W`TbO>|@(hwoRQ(1vUfkL{JMaCuDtX zrYN~DGmv!XC;ym)SDWjH!b7#3)ooX!U5c+_plAJ$w8u0?nW(Cx!5R0$-e;At;ih6A z>)#Vys^x@}N^AWFVB>SH(yY-`l?|=|;8`ICMMux*OT7HAD`QqiEvhH1*0DNK2*yr_^d9RvCazKx4q|IStYdueAGLBR{ zNuAZnj4{%%h_iQ+%ic+ry#!XX&*krA4aO!yb@kRV*;O9bAF!MemzDN>;Kz{d@bMt> z`u+oP=c*|oT{X4LILz8*O1~9HnQK-$E6$0PNtMYJs%%q}xwKFH*~plJnJu54p=nxY zWZ2B4S--pOU*r4T!bSaV^G0)xG1*SDlw8^ZwpwwuSBGjZQxa2-N{2Uxn3LKogQ<9H zfl=E%?$@4zy8-*p-AqgLYgtHHxPyPDUX${byt$4@+~z-^c1}Z{PlRua@Z&%^Hd|$-Q;oPybEXjHXhZ+ zGOe#mtms{x#No@UccyZ(Wp%by8^6bV1b(yPPqbl!M|h(-ZF=^4 zIn&JZZlb`em70&O((Edpm}je)Eu*#+8)q?n<*yI--D5>nIZ5D*)0g+`x2o{ydy2Kt zEmXELim(z;R2zji7`yJN1gSEz)CAWU=30B2+)R$Do~{G7+EYzUp|++9YFluk-5i_r*mvkLj`gWmAF*&9ziM@VG?uy?> z_yMgu$;j2skZ(s;#KS2Bx*hsaWAb23Lf?o;RxC!JL(y8R9erB~)Zw#tytP`*&>Q?Q zr6U_}rRsf(!3BT+akk}EqO4T?1rV48A)CazWi&g9*Wo7dI((}z5QNn)uW^J&&f7%i zZKCrQv7)|HzfL}nzD-{hrIXlxhDo((yszc!6s_;&s+4-q%TcLSEb@<`Qk{;yN~bk; zBIS{84WGax-xj!4#&9Eq+A|`ghj8Z9H&!ln5#BV>rmMUA)HvWHWbMLpxnQ2#>OzzH3COiKVT+KdJHM_~gidSW- zw+VD@{X`zq>~Z>!D)x9Du}HnWH>~c%JDwM$tynmOzLg}Y`aTPPlnQWL@RO;lYlZ!%^B17l%=wRSiP@ zqT#sxXy_D!o1kG!k!SgsZG= z%hqhwRCJrPi|79}{a6O4dZ*CtEv@VYYs<9XYzeuAXRTIWkvdQ9sAc-$2ISb!_Dmn7 zf$P&0w732%RD0z6P)o*WS(Ej;)@#M@-uiFl=Z9H8TR5KlXRtrs5PZQzZ~a;MyFKfV zaog2Vd>h1NymM9DS`TKc(s-|?Z|w)UlQf)fZNPg7P8(1eR}AjsgDZk~(h+)qmtP`; z%_L}OFkRTLnFNJoXz)S3hVJF5p+QF1Wpb()bW4(x{Ckv~$0%q}Jc1 z#t(l4q8Pa6Bj$e8o{#ZF0*~|Z8kQ{q(M1A3)@$fto{|7NbLNb)vJi0!fdur*NI;>+ zNr2{(qW3?NVa)O|88|`w1@cc80R?NffMGr#Hs)@YCn5RG3>V6fQKK{3#*P$ub^_^*>OM!(SOK z_k0R>D6+-C0e&uki|uKgZh+o!j+)S!&@fJR zc~99uNuKp-5-*aC6R1Tpvdl=-CbT{khb6%2V9ROCV<$CsCJd9pIAfP0VzsvYX;MY$ z@B4`AKm0TLD^V^*f8E-SFQIQ*+tI;-4VG_wKz@c5b9aT4c{c_6a%(#lk{7J)5WxG; zX472VJAK}|g|lg^Tx7cY8={Nud+3Le$@DJ%s2)Zwd>#zPAMo@K#xB`Rm$wiBxy=>c zmgHgNNnUH{N*XQ-=o2vfUn69G7Op2hfgrA(zcsoZxAVE>2e>;<#hXCMw3V=ZY=Mk} zY^B1e<*~*3Clx!*Zq1=7SbZx2e(wN+`&$F3ZzJdng1VG^7KZBk(3{|F8Tg%JJ9V0E zKZR|iWts(xu(499HDcZ-a<$6!6vMZDH0|8{0#ji1FW@zNPPCidLC`PZrs%41*tez% zL2*bRcM$Zm#)NxHs9p=K_}jvtCib`Eot7oxRSo|@R-L}lw4j7~8Sf{A^- z#=3&IY$+6^c7Rj|6Z?YO$i|MM-3wD$!FS~ZFSacGnNAjCB0CYX+SsSfUW`TTtS`*E zlFUId-Qr&pq5jzjB5ILK^5AyCDY%zX@4Az297=sHJ@QRk>LG>JGl*}2s}Qg>>q z3sDi%hRYn6{9FX-+Li;9`(BWj`YSTJFA_Jq#CZC<62H@nMWH+x)GLeQZD@MbTN4OJ)sl@@<@C80A)RHD$`8&9G>?)wOd()!rt zB99n#Mu|$~+`X~w$~9~?>Rnk2&|)`HvYvPkl9P;^W-t@HJ;BI0FQ$`( zcH4TN&3PZeN46iOliIb!|0>|pkN79Evm^FwcmA32R27?&x0fS6eO_bcSkiuDqD%si;$Sk%#wbA`AbbfW?$t_^MIT z)7Jo#J2^DSKvjmKs5IB&|H;1Pq5dFF{~eP-9<$@z_(>>K9d#w017P zC`pY_W2q&4UBnzq*sf2ACEb6`)x=$ zy@vkAQyRCqviFx3UI;W!ud%LEVvSQMH15Di;{;~}UvZWFg8$UqioSpsgh{bgl3ep5;m&F{dfsyFtLQ=b#8CGQ;65O zDcu>F)(S1i{8E$YKR_YVmEaDU%6?%C-T~;Jpd3G##D?$li6$!r`1vibz6oZ8hJ^7B zk)QW)aj}v;-{tA=s^Eu$k`*|NcWMO`CwcNuy@uZAsXWg@HkKP2RV4^B)8er(rN-`^5;l+ONI+mOpA9E2rHNK zNe)Sx!(U6%KEr=}z4Z%VzvZ7PugbrYceEqYTmJ{`gOPs$OU9U3qc_0Xx{|*@E9_>H zFx%sJkE#xhDJgEohuTS;#)~FK@3!bYNpEQQ#K1C2p7qaJWWAg!vl2`Am@%21o@LTd zBV*m!&rLWXuCq*5CypnaKP^Ylq@PO#TD!&)Hpm#X_ynxT2XT!n^z6FUy3t z83W3~ry;_T9+&Xqqz;RlD};!m{&$++VXK(oI1wTGv=*W`_{^CNbQoIzbe~59Vg>&W z1Y$kLuu;Bi=9!~N7Rh@QmLe%q{$I2tqb*eE^4wd|J-LdW_~t`ilJiCWt+d$rBC-cG zHIn<_b*6}MYBZyP5hJgG5sk+N;v{>fh<(Rrid>$^Avse-lFpqeV)R?>I=Sxphp?hE zMauXJC7k3;k<#YM^JKs0I(E&}70@r)sWm14rwny;dXF&qrp{inDt5spe7O~}1D}_i zf(ejy-hIu)cNF|Vl*CRqtJiT+C6DvcQ#h@(}$LGc8>|)SvAWPjz0u_Ua zK>WtlRWuEp?j+V)bU(nCotVdkJ89U|(~uE%ee~XXd2`DBWc(%hxijT6#1F4wUiEvB zn#y`_eS-XUWc@C&F85fsE;lXLop_JRb+hwnecJB zJ_B|ykS7>o_`w>wDd)q{-oc;io$sgm8IsblaZa4*)3aothVN1ydf&7z6d>bWL zVaonu0)<`jS~H)Nbk_e_Nw;WR80&~WQ1rw(C0lfol08wWp=8J9`lg$lol?0@Nkrw^ zI7rI1;?0(8`;N=?Rf!yuaxF>c%C*st&kAaX5tVBtEYu?@*PURPZ>aGanW{MBGQKrO zjLPcubg#1ZSN(sRz3Ht_lfUU%f9xl}TvbCHZUg2sR>Fh#IqDGdK8A12l_r3>eMHDp zR8vkw}=8A6r9Re4#MKmce42I;M@u6SoUnA?{@yk8WNn7+ng)ilztWM`SM6P*BN zn9R~7(^0wg@#41!f6*=$XRT?I z)vsTb-AaBYD`x~zFq7?nvbdVL7wIo2TPHG2gbEJaR?XzX`orO3(e zt1gP`_wK@a)F)SG;*0ITlaQj|b%UmK8L#YLg(ZK4QXOt6<|*<*^gXU<1A+WgtjGuJ z;bv@QeSzLaaoLM;tvt2(|K!W3h_;4(Ad9Pf=tvx7Bn0vqv~2CMO$l~tLbbtvjWBkG zUq_>p>=b-6==A}E>ISbg9!p7I!S7(bqjtxyEz&ikjFs70w4;dF6s|bT%3RH;TtDKd^I?VZ}Fc6ZoM-0G2^erO~1ayuz{7RmI-}j^KNqo}&;g@fVHytI&+%tsl!oZnJ*^Pk$?VKX$U2?P0K^%@#x3PFfJl(xpXu4{gj- zCoOEP{*qHxA+(1<@672!3dczccDPvt&+S|_x<-!`xo05OWXvFgY4pyNz~LpHTbm&_ z|NZ&XMM{3AZ^*fsf2MCDeoNk2j!10Ne^4@6a$N;jXTELuYsvow^2vhTSvI}(Em47y zP4S)NJ^d7AP^RCp8R*E4Z6Ti+C;mFG@oKod&hlS=qO(8L(OQrH_Wad?<&urA&}al( z;%o2$?w4?f-t;d3T^u}%nVoQRMN%_=wIsmc6$xre9@WQmp}O;1iQ>2MWv4GWDpT`b zS%=~FcLjLi+2^)`8KV)Pd1EibM+accgF*kI)2k%Ub)b={9)XY|XkQVa=EK zKQn0PZ7*(Xp@>_CWnx)xsj&#^VmW1eEa#@NB)&4SOj&9y>nt@EL0v4Tj*n$1jV1Aw ziDl|iW7!gV9@7qUrYzbDi4DFqK_{1*Kn(Q^HOcU4MCFcV>XB3j?<6JzX2?&=lOH~v zFcG1}#1To|g})7jHV>Kb)5nEBBMrat`0$J=9y2TtneZ#-!&7!F5!(@Vcv~_tUMeOf z9c$VJeXU=GN$wdD(p${niT7{=i)?r1lb!NB`_C{HlGC4yDi5DYj8Qs{NKw6@YzwCg zYP2XG85aAT_bz46TU*_O=3g#k_}1i#4g|>JFy#1_=(4XZnQXsUsiu{Uq~&j zzc{g=_TV=%;p29qGMR?aEs||lXmNAH3sLwxpgR7S)zaHT9MM=5wr_9w3^5>4&?DWX&jM`jHmBqiwB&%Zi>- zMEgzgCGEG*D3zIhNuDYPa(Qa><2>CP zM${(T9bch@mgMPyV3NAv_>%W~5*>|_?uoyW_dEb~L!@tU{eHYVFVn4+xf~D0U@tto z^Xl-I>d2=7M>_HuoEaVYmZd@XW$DO~lHO9r3MUrcCdY2dgpYOP+rSb2ZcD$N=CEb~7MKlQgY z@w5%?x7xy)qF?r2mL}~j-!+RDO_I{ZY(yMbXW(e-3@GU+lNd{s=?ICV+2oBK}pi~!p(a{esr6C{hJorOKAa6V0sn=^Eh zv#@^vHFXpa=#jio5MzWh9f&WZAcu)P6hzoQw{S@yXGDtiL81;1m7hRQXH`Na)d4Kk zrX<6+trWL@`?nzSEdDNRR{yO6W}$zUo*XDrHH#iSc}RX@Zltc>t5)6=_gGUMX6%qH z??kO!IUpZPbkyYSSUlFi=NK5&3BA!Fp=$}1W#g5EjVUo31M(BGfnvJ!n^;V1e`j}A zDpx=XoM`QF$|+1>t`B<#^4CAxhqcTI6gJXfqn_xnq>|NP`;K+^mL$Iu9hPS0blB*} zI(#f#Nrw-?SE&3?bT|N$spAd@7wPI}agq+#=a^8a!~b_JUiqOdtj=PQzxtS}d(P&M z=nF6NpNwbS|7`7GqiM=vOQAJ+*TFE3>p2{u2y3DISaa5Sz6(uSmggzsJ>R(;&r`>H zzGFF_r;Yb~`*J)_AMg1G%kjM8c+a;k$MZ^g&uKqOvdZd&eM=`aH2l3JZxWqQ4(4>i zgd6KbXgXnIXVi12<@Ml5Ws8Lkk5;U%ts|TDeTzr<|6;Sg0L7)+td7DFsKyU6bP}6& zBN1r-8pY|8ys%luNHOqaMpkCvPb{?4MjQnqLt z&_G^IA^i^W?-a6zNH}i2*OTa`#L>m}$i&eZx};f>%^v;R?2#mnJrX#vM`tP*#@nO) zk*)q&dt{VNijh4s>WMv4>a)6M-?2TqHOb3F_oOvB-81^J?wtWwvPZ|@D^%Vl_UK$N z8GBR*7wO?~I3qn=9bx^@;uL;a?Wr#*=}T!(brd*`y>MG5eB7RT6uL<6P31*bXmJ;V z8msEufSl89htsx6A9R1HUVQ> zi`wgJgn0io+KV>M$f7-5q4)n)3*^aD;N8Y<#K1jUm_Q!A}1GPGnUI` zkz7K2g3cswfa~-6XR(9G7nz*<-6Fx3G*CH@f>YtKZ zS7>o_1t3vm%FgNHh_WMW-wpD~(J%6%4r_Rtu)~)!E)kv~XLop}{Ow~oVUR$8>(RFr zSUM%|)`2NIiydFbF1YtEawa?(7n!2iC>Z;SP82!uid1b6i^6?y#tk4YtGtK;V$pRv zmK=*#h_f=T)=oW1o0MzpBPwn#Qk32XA8bv1fM={O5uC7 z`R+A7&H)vzn_ozv_+JdZs4!G$?)Id?xnF8HrVf@H<7V7Bf$Ip)1y2r`x9N;|hvx~< z8J^Fp&}5B)UqEmhB=-pa?g@C77jLRO%a`q>nl(0U7Wt}n=&UIdMtK#QYc_e;JY~U; z`RY>>v^aEug6>4gE(VIZ#wjWB(A3rtOgH>14%^``&hqP^6p)dr+MdSz@YNdQyAaq? zR)A_VnMA|t^)Kl)bP-RjUf*6*9Bw(95UknLE3*Prp=gQZj-}JmuS^n_8?zRpEj#89 zNHynyeB_uvtC)jJ@Xw(lJpD`c_%aWh)VU0YTRX00))p<3I+p{DQjG1{K`B1f;uS)Z zI(oBAts%Ox#**CNT>(@FQwh$bj#@iRJ#|}1<#$w66Ku5mZ16#pFjya-NNrj{ra_Ru$u{rF=W zlAp@@3BWk(COdB=B`A4UiIePj(Z!U>$VOj^(`>YxtG>_5nDE%>adXvE#?4hvS#qxW z2eL;+@B4cFm$~X{;XqQ#xj&4Xy7-dzxP&prA2YXDWvMGPhBaPMk7)gR|{L$$P@(p?IZ0ptEPZZ($&)U}|P8(jp?sZSzVv-l|F zj|lBz@3W@2i_O1Av0ovtSa$K&_c{3t1oE#1X=nL(>r>ACshFVfO7r`n^J|d?0{PQG zqEwY87x9!h;;luFIc`h0^Ga^F&i!%GlZdfeM$tuRm{Xn9!H9{Zg7~g-f(jx#x4joK z)jwN5xQG-qQhG~@s~>D`JLM$uVEmg0+8PpDw*Ij1xc+z`$>XH{kk;ku4W|Ct6)JC%`r~#mnKsy0z(soeRh;OtYlF2EZbpC)TDl>l-=}T!)ryR zGrWdZ-_e$lg7{L1Xw`f2T@2*QdyzTv{&nTG7$i6&kON#L!nIIwS^F%C)IwY)y^zaM zn0tr&6Djr^OV@^Ug?~SK}*GiW7O>pO@!#;39e6fD?w| zxrT==PT`l;c6$U;OKZC|7p@{*k7UBfZ8we9p{OTIj9sC{T@1cX6mHGwH^mI)ONhRi z@>C4Ifjhijh?>DEql<)zyx~Kk;^n3CU8c-*hH@1>vB-zKBn9Llv7L_hUVO1D7FzFN z92vn#<&Cy06X?9y$mWrK$9eQJkgKf_oY(Aa)PZuJalZxKi zaO!p|J}3@36@Ztk5grl%wN>ywwLFS}KvpBr&5-}H+ux^Ud(2MWs{l3gkJj6KeH1(j zY1P18MNbJr%SA2G^5>LD^%LT?mJdCY>bXmS{6~6jj3j!lh_iZb-?5(mIFV1H=gNVc zo*VsG&!2@8>DmMM3MGz2&tC$AZU+x5zM1H)IY>OPM`D;c4CdB3_SXMGu#rcFk9CMO zEq^dtT+`PN!O(XjK7Oa6+BX>(@G}n6%*(OEjmN<#8Xjgc8(Fwe+SLC(rRcds*<_dOK+z`Mvza@|)(>2$-Jv zB6&V9eiA#_p)fCG!>}fIo&v2~nxVFQefQ|x?U*L%m%!L%EJAXo`PN&XB6@$w(#z)C zV9~qS!u}Z_-qAR{CwYW_QUK)ATVF}xUs)o2Dd<9*XLpx6$8_JZxc6&`_DcWFR^I-2vLVpaKLNTT6!?a|=w74*`6Dw#^kKg3Uh4~xtY3|Jm^W$-e$tM=(?-j$p zQ<%?u)e61!0YoI8asiGOna%*nz#83BmsPhWmv1Siq9PK{r4hv!KFfjIN zv1qOUETKvL9oM6>Itlz#S9#h^GjY||K)`56gXvJ(R%`?l>2kBEr)|ZjEsup?mfhJ3 zo|a~JCKa@T;TM_kvE6x!^i%K=h3t;S&Hgc>@LnMapMu_l$UA_rylF?Av!-_J5hkJt_Oj*<9H-`f=Ic0;Xj5TJU9Akd*!Hz;L$L zWiHURha0B-gV!rj)yj@*NB_}nhox__%a4@p0p-JXPJM%xvl zpW!~jDLKy(*JPBTFtNan4q@qI*X*37UlCs>w${EyAe$_<32xT}YZw$|N7438SfjJM zee?@>1Ebi>cJ*kC@GZPmMRyt_O~y!*W5kiPgthjm&F7-3()m(~S@dpkxjh;&$rV$Q zPcKQbHoJxLsM+}36P zp4#o-qKm2bP44aBX_>A-CMwfaQH<-SZj4m^^@TY<-dqn2CMY%+|H-N2wrqN56%VZ2&BF|T6wKjtlUl9DpDMOu2}q+<+d#i zvogW_KLBip#>DQCaB1S18t!vaqkp zLMr2KaFL9s;Dn#Jz4jZ6Q}|`s&4VDdG`qQWVUWD|Z6Nvv>P$hzm0bEj0oxN$Q*#T6OXp~cYtyN>vX^Yd-EIon*mfC`jma_ zI=V$)jb;D4dN=iL0JNjY`yOAMqoW)zx`->gx)pjoBSO}9;@jIr zas3crxFRrB4w6itCd`Y0K>lqYtL6H8@Lg@;9Gu(vP7N4WQ>tNB;SdgtMRfwF-Mo)a z4z9JLKEYYAI|zdpWB6B&VYgQYpkvsC>Eu!=4^JZEd~WP6=I?||&xnxTuHyS0VzRAb z)wVuu8sr#T?G3B8!-ckyaqRkCin-0j{DOFtvXM|Ak+i*G`Ur(k}`i7zA|NgC2&!hUj?U?c{fk=zZSpnl=*SnEcugVBqrm^tK}X<7a0j5QzH?s z&L{1#nF=iP5Y7^S@+GSAngPMgT!cNsvVm3r*^O`w0hq5b?>oR(aY!IDBW$3RKW9pe zy~LEzp`0nt<#1&Ys9AWFdLIE}a%v+)**T%j5u*NC{WOUh$w)tqy3@}iV&Oz=q_)n^T~Knex@+ID?mm~~Wum*% zuAJ^#+;JUs1RP6uSH)K-3F2N&Zsk{^yMy>*ocuUmBOZvPU7@~+?3>D_+-fMv9k)9M zir(i5#E9b@1*2cvUf37>D15r(bghBR-5kQ3dyh@%95FzmySB1$|3R8~44lhjH1cH! z8BA=*`r2dH+H4@ZQmLy>zbJ`+ErKypKUc5Duvf2%Y=7k~eyiLKsYUm{hc9}_^32}k z&oeGRpsD4-jjatLusbe)C7K^6HBRWe5Ts+Z7>Kmal1UbSIZ$(L55Jj9>)Ts030}mi z3F;LE8PNDil-!oaJuR8l1}-sSTdUY;^ve{v{?#pj_>MLrsv+q(r7~5$GO?kB#J5b~ z1PaN{gt=&6x(^w7OrN)E;c9H<^QI>({=mlcYwaStUHRzrb|7JlHw43(W2e{38)RcZE3N%Ek*3sHTo{r z4RI5|B0I_=6Mz2JO40q$*JSnsywhWdBqI818|gK)4o|K7*o``Ol*w?UCIss~^cw5> zrtC!*izgHcQV&5&XEh0qJyQFi?DJ~MIBN@3VLR}Y1yT#|RD9IyJWh(im>uF0+u5YM zl$ZU@@alXHsIL*FFBN9Ze;7uJWuF#GlV#R4NH!=enu=|ubp-e&325X%!bds~E- zrDph6q~g!t_9BPsGH8=wnSzV#D)OaAOsDJrrv}az zYv4Yo>2VASu!ZActee^dn70cO%-T1NO)mmb-_9X=>u1SEE(Vm?$O9PvZCVxMRc8fs ztKH<~u?)l3W%bt2k^fI*{m(9W&%ubzZ}irG3}Yid5!bOzWqkMvar-0>E=P3pAkq0a z)91}9td2}xGW+^dd`w$Jo}d#y!(H;9vgglv`cIql7d&S%x-73#7Z6fI&BC|#{fLhy z^XC5&z=Xbw05tp0;BG6I7HF!@5>xhn1;`G%D5XxjHmqN^KEmsei2hCajy&1-x_NvC z<-LkT2Rgtr5d-~F+5a`KKC7}F#QzO|S#CIB;6M!BQbq(^TABvd1ML!)OSl^^*s<`9 z_go*Ev(2G7@;e@hymh|E4EWHm{=Z;)sOX;M?LQZNjOyd}JaY55gC?Dl|Gcobllo%t zf}HVvYH@zv-4IPjy$H6psD)@sHUA|(=s*WA^Jdab0sknx>d1o zLVYr(gr=amFPqK_Hzii&H~H}Y&ZD*O2^eYe-@?u52LIsI?7uCnGKR|I9o+pl;-|U1 z;A*`b)|B)DzRUi*^8KD3x)7k#`y1DN^dCD8r4yRmU7x4oYLBSgjk{%EJCiU&cRWcu z*H*Xl4LEcEK5^Cm$)l(2f1p>h|1U-VA&(~O$PLVil|DE6r2MpTu&IUT-_MT?F=zB| zf|vX;p0ts+c6Os!{}10D<`TQhoG`;otu{|=4$=s$7{knAFqbbXAFJ}M9}Rb1Tj%K^ zF>!@p?DYPDz+^kK^M%vr%_wY2-u*#&$F0xUL3U#DEcxpakSnxtd%q-u{SxtWqbkpV zGE`6&4qt0U`vmfv^f;Ut{Z-hB)Y|t9UYh(FxF>YCmD;VLR&Ft(&32THcNL!ZqgGb+ zJNOmacco_U7eti356N#9*)k6XHP*x<;|eYMvU`lg;W%QA_!-qiRy->4)Y3*JTKx40 z%1JL8yDaw~L@t&GBtl26zBX9K>RJ^OA`}yxKRkg~l|ZWFcfd6z`*MeNBa^T`HwRS0>^ZSS-%9x>=d36I|+g4;{=?C%Ak{&D?*MBmyC{*jMkdu1Di` zuEIfVGQ_mlS8!b;E9U5wQ~<~P9s`JmrLoP1CVd5hxkIu{?t7WA^FY6bnEMyyF)nTO zb4ien?v@bJ}^z~P2c zm`oBX<$9MqU}c?DB*-XetUfBPu8_vcCi;#DUSEMhMlSy>KD(jSx3joxnX*6@y3#Ur z(WZJkZcK-J04|W#o7zY5FHG}m;$T9BI@#nih0n-&H2GJV;725q52=w2uQC* zqlpX_tFaH-^*byb-X6;HX`7Amtg~uutPSM+n-kwr)?QksyLR2~1 zRqwH`$8w6^=B)^^jy4C^)nk$yW2-9xp2fR~O0+t$W1`oL!$qp4^e)ng;c;oC6N}zn ziqvg46QVk?IHdPj*Fm{RCweUq>zL@^+)y@Y8KRnGqH;WWpN9B=jnkT3tCQVP%oVM% zH+C%Tm5R4AtS6nY3}&*o3Ygh(AB^GL!VCQOMo68!^;7-vd8~ux8_%K|&_GH2Q?}ee zwQxWGOdm{^rR2>J<#dc_`n(kjqxk<5^^4hQcIe?RQ%rO{klpK4a&>~4ZACwo26E~* zDK4!x0TEUI^!HDI+yaeKlrq(I|7HN(w{P}mt~@yB%sk3LU5`X5o6UI^Op4*>-ur5q6!76)gh(xmIc>wFQ)@$BN$KHE?Er3kM}yU zw~x9R72%GfV^UPB*OnL1VtPUBsS(Hh4Cj(4N5a=hqmfgZz$P>!Zz=k%g7gr5wTVfh zSxVAkg;Zg;B(eVgOnG-{YASl4QJO9`>OxS14Cy`A^^;tp*dVAxH95Flj*c(8sVZMF zC?&oOc@I^dY`q!uc30qc3s2ngZO<>-^IUtL z$J76tM7eb35OI{_OL`4`fv1#X9|`hFqbmf;p;tyZ6l%P3l+9w7+ebMH4~E2w6*-#( z?`$7EGy&KA`_Y6LzC!{x@2*`iL;{zVC?(Ui2y}8STg?>9-6tiQlUOhdZsQnJ;zuKA5-=hm{9fX*BB=o-D0U* ze>9_U)|hwcYfF5#kN)ZZf=*3aZn`eF7(QmYF0^#%+5eq{+ktD%=`umM|9|Q=eYtGE zXmNc^wlmowtHd?!O2KyKOv?U}nUti(GR>c z5}y8VusGQ1|5IFV{T_`CUka(DkIrz%uc7M3e4U%|uUU3P;j2~;T#omsfBr)fp$YYa zRFLYotAGAA&FhJBRdS&Vrg&JS4jB1cG!=__q_{(^W zC#ogLv8H>)7cEZKPYCJlM{F+KSks;Vjb~LB%jWqBWc@LCZf9QUYFOYZYM%WIOqz10 z<~NfdCwGlHWNntbw~gAa=roI>v|k1;pZ5FGvMYz*ev3RPM5(uTR;Hi#cZ>d^2oqe(hTw0M-Ud~QfWra|@M4oM#duS{LrfSSU z@z*D?jW=z8!?ny+?v)6&l)kO^ z(ARltyoq(7b4Fh^3PNbSN$;_)pT;e7g=4&FLx^d-NpQ8y6(6mbKEShhs|{=20qfx` zmL90!x=5SC@8CO%lcB}OwN|674AdDXEMH!!Ng^Z!BbSbpe55= z@;{w_JidU_>fp=p@HPIKvL}s6%3g2%aWr@2W?)G@$$Hk6btdq_k_~frGN<~I?l5Mr zr~G~|>$jE7IkErg^VTZtOF93mm9<;(MqNr7EG*(b82!HmGsWOGkp61w@9EAkb*S^# z4=XTr+g*AM{g9{XHrC3_8C}5|>OxSr>6JM#LZKj)y?&Ts(>sBxxbFxDO;Z*;!E5+Y z27LREh+X~y1ichar1;C`M8_HwgOARMB|3P>R!-awPc|G=4DOKgCgkgH1Q%KZvoUWs zwxDXm7$}E#<1G>e_bIVdXwK-nR@#MN%uTPcuBYR|ZlWl93n8U@Py|<%DOrr}O1h6b zwNxlZ%HC~f(yLZcwgeBuVfR>RtU_bZ0FM9|PHAK;q-2W><54`w4rCudab1~1$O zhlIN~l2?;(kCo_IeX4Q17b+N-=Zb+?NJ^Qeu#167L&HeJ-#4TP%o>)SjWsNWjb)o`Zr-iy|~PUmvT8mAuW3GI3FRYl#CZ4D9(C~b^S8dHh`%XFdd;h$)BpO@C^xwx8Nt@Zs23QZmY&x%s*4#N%goz z&`6`(s}+-hxZLpTt+8Y3hPc zBa`BgqK*!(5`yd4dCn-zpl-1%NOvUkQYvwo`DIJU6}pd{Rrv*cVk26>Cuh={*T<-4 z#+P0!rC7OQX@E?zwD0l7QnNfCsXS&nY?f}*O?B94Y1y(xwKG$UyM}!6L9T4wNG@GO zM15#Zye<%s9cTMH9A^U8T+ad0tO&j~jyw5}FN^;JjKz4_vZ!K`++{wU^~~!+^KVub zp8`eSY&VD&gQq1TRp91O-yBv94dmx~EW(+C{p@ER5i7%n=(0$^-vfXnPEJP=Id$h&^(>7`pwRr0h=($XeSsIM_@i~@a;)~-~z{nK~4;0pX zrO*X2e$9n{6<3JwB$WgbS;u|r1B$^jz=NN|5W{Z2#O<#`i$wip*6*o(|0`fgUm$AV z{~d#_eQtl&`^M7nZ}AfkkI4U6)2P~MyCTG%5g|PvxkL1blK%=}8tm!4NYC8*6b-Z0 zZ%FPXY%Z)r{BN2bJV$8mCAa6ZqO_Rst+fes@|zl2Go%%(EU4qNhX$zl&aR2lIT33C z`#ZGiFToS*^TQV)!*LPM8_iLDj5WP1eh-EpZ%%RC*)hmSA%fqVe}yV}iWg5!EgT}$=F??-#f(kJ|~_M^QDQ%l>AHo33?<>Vik@bO-gA4wP! zMyG;iuZhK7-=1L!7G3<2i2R*#&kA1^PxWgxfbwTK1NSr^*8%Oj8!`^+U(a`2C&L)8 z;4}CodQ$Ev`P-l){g=pBi$7b#9^t5!@^+Fh$-WWgd~V-}(U12$ z{RytLZ$uIf^}zinxs@TwzLD4Qm6Stt@^z5GZ^(~g@K>CrOu2mvuOn{&O#D+;-;-wc z*548C%`8r3I@Q;=Kt=lcwtUfr+Y`K%axS%Kaz%#8B^IM zFZh)19DLOnK6QEyJ~M_-%lls~g-^}WUp;~6>GY)VTGs!p6h0*jUn7C9nB&Jw;W;{M zrtln{*(p57=N!S`M-J2Se6E$kbM)uNaJ*;v>=pb0?&n%L4_`Zh=jA^yhOg3^53r69 zZ+-`c^6+(I__&DI6MV+a4acmM_dh>@=M%Pm3?Ikn1_?aR=!SwXg8s^Rc%R_g-oydd zZ&JLSQuPaVY#ug{_rqBZHojxH3#1^fs@%8|DR0Y`MldIf#(au z)`B0A=X;wN28&tR+a~Zl@7pEtJn!2l@I3E3B=9`%J0|cv?>i;%JnuUva1=NrgIxq) zi!{~pbaoYd^7qK2e}n_y$##&15YpGx5QwC)a^`a*56v`*OrU{t5<1u+O-)Iv8z}w=YI*YJj$en912@vinA2kb3 zdx@*yti5FXM$A~asJ-Oq8U47uB;nCsGCnLs)Lz{2%+ zPTeW;9|g|%ik!DfrvKzIu!f^+WCV3&rp9CjvSd14q=7LZnG77EgnLpW#3FFgYFt68 z)okm@G<~5Todo-5+l)^55@^(BG%F%4w#=he=qz(wWs5S-RmX(}8~dOxuEg{Pc; zu;=FL%xY3tWi&3Y>*J39=%c}fmp}a}x4pcIUc2O37+uvqCc2MK`)`x5f zgMG!qriI2W<1)QNp>fyPy?3E;|JZ$aq4DUrtglgcn>_kghHqQXC(?)VufXAh{I|u^ z#r(+Ty&e z3g5nBllfcgoH;%}bbQVcCgsx|>uj7(i8;L&!KlEQJ~*$&DaSf1yYigA3LgVkL$p&f zx#Of}>F8+ow--+*8Bfjb*r+2Vn^pehc-q2v63C8?Vo`pDAr?!vh6^HRA^|7ZsWH2{ zL?9-`<^oYMc5g0vQYhFJtdkkl@$7Z9_}huI`;4>5Rvl%Wec(8YY?WZnRvjTMOZo*c zTVNWIE|E#S_b2hR?rnjlB`e=BGH41N1A0J+vMR?=g;psmsu~}PZ-?6RxFe$T%t&=s% z**fDdwsozfS^a0}UZ@A|!{wF&CAO{;U-W->r@|T8gGbUg<__uKG0Nxfh9+Qck};hF zYyo|AKpYzdAeQVm?X9l}xslHSOXy_JlABgqrDd$Bx$ydl3`1zFtSa*AYs=rBVt}~R zm(=^;q`AIl z@%r&>`Vj539Tq||vhOF0bB#qc6n4kYn8{pt*AA1eP^#=N8u34cE$=G$wP2THQ|9Q! z*%3A_`H4c~Cu2L^TUd36*iKgqw?OninfPt)LkzTm*p5HSeJ(F-vn3!Hkz_Wa0`7Oq z>Ft|U4|CcmnEI%BpF>O@6F+mp)A+U)9Je*P)?25hwoe5djM1PecQp7XkVUpIw}pA^ zYc#~v;-ADTJOf`c*^0OC7qG;leVkqZ62n_NZ%H&qsazdD zhW2&xNB`Ky91>@ikss?8A)60Dk?fp)my_Z*G7y#=GZ5GZr8{dM>^rs(g^JD(6@kP) zNSkx^!N|w1(UsYK$;ncEKNZO&+yUIKLWp28Q~s=0H_~2YZ(`h}3@#pnk8u@n3^6O9KWALH zrQviwuIdo|qNwF9j#?yGcSO64MFPxH7+qDbC0|cx=HhX;-ufnpX5>8LPUN$0X?RuW zMJFZ{3gf@AcQ!}B8e6?>jcwK)<9WX&34_x+_LsOb{?yKpKfPmriCcD6fBfs5L$kB` zhOgDe@tOOc72}o1(R>E)Rt@yVw)*ds4bVnkwtIieS@VB@oPr&g!fZ}tFB7aIXk&p< z&9N+aYNKyK%#n@$o+R$ZU#HKTSh$e#wSwus{4h7BrE4r?((*+cdbOaz_dyPSjYm8o zql_DC+L1i0A3{=kMuaQ|xAF`oBAi-%HPpdla(K@0)k}oiDGeuNy;puefnPJP6N+YA z!yk%db9lR6-QgX)`hEgi7(oLCf?O|S8Qvx@f%y;Q_OF)dIp28}ApEX;)Iz1khKgOX zG9hddBa;BuA>lV}pi?ohA+Xy!JLwC-&mXT`sXU|C;#v{BLxNW^Y;=>|dmtD<7b2nnfrSfNe7#7SoU4=M1lGrtl!jY;Z7- zl79$K+K)W_K`ZUC-;>Pmq!q@xUx=HCbVgEtz4gQS7&(GR!sCFvzZ`p?UD&$hA4;KV zu&4h`oU%*q%ZwHBjpOUBpP@AWIGg6!9`)A0AlwsqT>X3zjKfo3{1iM3EA06c&-xV> zV;aZS#o*__OKx4-h|QYz)-Mq4r-3K5u(fN=ifk?X&c)E`YT5LMULiLM&k(X;hL{6<8sV~%;Qt8$7dDX&|*tP~M7r%xDY}=6p#I`Y~Oa1j* zC1c(kR%UY;KW^rO?fI-dpW{i-bCj32x|rOMl?_^o(#P8^MbUBq5oSB(3wjOxhGz#$ zQ3kafV1`8^1WQr$8tZBx`|R{7g@RN+q_h-8@b;EY?+tC`l6CR+B}T_p=CF%m@O#3= zY>MR;OD~rJ7+eV|24bA!`0Xj~{r?~rTe4!yyln~WV&bqB*Tz1}ykC@e$3OK%UHtDS zKY0r+ zy~mIjTJ7<6OVX z<0pT~or}<0lc-$A(R~Cv4{;5Wn4DjI5n%VLq6Xmt4zLi6m|#SWcl_6 zDDq8f;K;X^dByqmCYWOIcYD5N&wtqSZF|1M)2}Q$uSA!;dRMQZzwuOF9WUAZ-ee;L zd8Jn-uM}#@yh=GCYckO7X0XMnaSDuJGnN!L;acO}8;sBi5&B)39Ox09CfoWJ-|GIK2Zn@~OZM`8-h zb{{3%v{>3CTVOn6yPFi9V;bB2c`?oTCNM38Y`5NHUDIRhWL$GigRD~ww;UO3x{92v zvudT)V|1Lhc!_23+JwA0aWd>{da}s$M5*)MQhk*sZl8~mxRSUvwaBF3Nh_+%T*fJH zUG^1&1`DG+Ol`GoA2MTY0?{T0Cy=JFS>ByMnu^{@5(oNDw9$vfJ-QogzhCGce{ zUuC$$F1`b+*hRN!ycO7z#b-hS&6bh21ez@)?FqDWMp~XGCeT$gP{no}17*ejYfWC0 z_$~&M?OCy>d=vx4UknsqF%bP?AbQ21gQs6!wuM#-vCvh$hFW;aLI=tp)!xNG2rRT- zne0)h@fLdYp8s z8l?mHzs~;`DDPEN5LW_Z=34c@O86=U?l}c_C~i0{-Ja8UrZ!E@Ei-AGK*~Wd~aUb?!R z!HPWnr}-W@jD$F@1MxeshrXTHnexgp*7EyHOk?QbQVG>~Y~N~9++rY@|BSG!%6p)v zGncMfb;)1ZaI4tUm=3-w#LKZTW1%iJj$dyW4@hoBCsTmm`#z>5-8J|N<(D1l`?M_ z?!0x95S@`kOhOu19{AZ3XVeN84cMBuRq&=mZuQ}!^iGCq|Lw+|WO>|XSShQTzHG47 zfK`~Ybet>8IpCeA-z`Rb%&pZI$KY@ksOk$7E~n4TmUkyz>WdLcS33-gfe@-M^d9T_ zLtKHHc$>V>K}@I52(C#==@bWDNlv!$8MP2QPS-j^x%+-%dY0ccj ziZ&lCTTw2tC_lQQlq==`(riiC%{N=DyjjT~Yr1a9hD6$WpcY+j%V8PxCACZ$<#050 z_I=J7YmJKPEc0Q~9aNUL^c{L?eP`6P+TrRoeP9icDwGCFLV1 zvQ9Etjv_m%A48E@lWmIJ?i9IVQgG%{Jo$B+jTBACpWxMruBkLhm7Q^7MX53=-&D$A zCPvj=a(?tAO2KCQcR^J#5%$AbxD6Yp>8Xt{{?X9f3r%f%G;U>Z&5x{R z9BO>Zs@KK%@0SpxZ<$*EdD_jo!&P-GwC?Ez_6$Q85iNZuam8_0=S{G-fXF*GO1_Ad zd`|FfVpZkpBI?qR;nQe8o6^puBc{!Jsc~k<>TvgBOYNdW{L8I*6OHBBorkka$DPAS zyy3I(IDIh>GfS=-iqfhiD6RIMKJVhf%`5_Hwf4qVWI@#4sFUb1Omg;Ltbc=y3U|a; zF>udqaEHoVOz*b5T(!Ta`Pj~$+w)vr14MDs069djp{;qU0dk6JgemaF*{6VLfasNJ zfGE^b8X%tn3@3UG&*c$Mok+JhjZ${!=QJ65MuhZkY+!2k)3^w-1FwN8B-*9S6xJFl z3`qA;Pzv4QZt`gjx%zQ3YWwLsPj8=dve8 z8qH`^4ZAeBfeQZwQqaFOc#hq*GUgT_Su&j$5K1Pi42kC0=b0)7 zqROIAN7U!3oruR-#AG)6ywOMT5bdGrXw2JecflGI@*V+e=WzlT zbN7zC%Siw8P`}P(V=2ND4ICQ)5Vh-^ge`SZ0Ar_bp$JCmvo;>{a=ck`Je-qudq#xx z9+di6UKu6-B&FRc#PGZ&Lf?|+f{>OAPMNg6Bit7lEBko*Qz?!dZmQk#G;ZjPaKlnD zkO%glpUvm2= zB$bxy{M8A_0w4TVTSreUD;~D9Vm=F6U*}^Q?&UupI>o^9&IkNnKB^7${Vn%$;%9cUQrsA)t@pb$R5u|DL$7kXJn; zLV7nd7grC+a~*oR3lRSu<|?Zb`($S;6a9DfHL22GnUq#Hc7pUki#)Ue-;fybsW$rD zpXKs$V!vu!aIRtA9qvN}nPP6HskZ0s`a{Z-N=L;DaioKHR?$={;h}hpYMM&XJ6$!+E!Nc)qFN~q={?rfsr+EMjJ z5=PZYa*S5P!$jXziPfTamKbd`Mun(Wi$i*kb-j^ewCbHAMyn29?JQP0!`<;$|0hoPo`m#LsWw7B1@Dnzy)js}EYzN*Iz*&V>iaoiSi5Ne&zaZ(wU1ST=ei zXqNLFBdx9BLRyt{UgE>dxRZ43S%UM1rKmAP!M!unFshiWY$iSg@y^Zr$WrxA&eF4@ z_r=t=ii|tmB^Tovv5$I{)@yZ2#_qc6$JI1(JgVLOGsusah$-?bDy9e1W*%M-eBMlc ze@hC$nS|&W5z;%GTz867?^KLaV@tg~B_(UAD^n`qOt&WDG2EZfYz^S)O4ey<$%>dx zS_0vL^6MH;2U#!`y@9PTms$g(AGv7o)0R|{tv{yYb*)r8cU9*lJ4rBh|N|w z^3Niv)oC5myf5Hz)n2fE&QzBt`JWvdgrJJEHaBAM0HwmNbj*O)_AyiYK4Q? z*%0fP=HS)osD$KDnI7kYY#=ui*i+1T6JRBD)w`blIbz0E>07hB+Z!Aw?Ff9pIB=({ zOgo)%V_S)$V2_1+DXP&=Ak|r8)2b_0R98&19)ptD*Lq^-t!?} zS;^reZ2XzDE!1kRuB@)C$;@O`SvlX8&0t#Nu54lPa}-qqOP)&V(Y!U%tDoQ+=MQ<0 z@Q(Ykf}c;jMRoL@yw!fvPw*`vhIQS;Ob*9-`5nMIxvA_cU5{BT+!>ccp^sO}ye?QbGSU>GZP|RB# zh-XGc-{pmd91SqjDEb_q4#@H6xR=)l6FvH1gL(}e#Z!H-FG^RpBTjBt07M^5uS_3I zp~m&WhSvv{FHpCtK)Ftrkk;va4v*MGF_FyG3cujiowQaY>yefMi~YxI!`jf7`ZJ`hm4gyafI=}ijwfrwex(Fk z^YDC`EPpF-Dn)N}OuS2uV zvj)q#%jO*OehMCS_xY(7>@=R4L2{klm=2O_fs;7UL6B$aJrwfPL68@cA*1eo7$G#v ztaoORT;U*QgX9ss+E_bJV??&Jy{%kr8hrwe>c7T7)1FrXtPi5GbTR3e=e&G#pKebv zT>*cFeHrt~>YZx2qwJRNELK8QU>)=2@GNtyTzMWbuoBrFDY}6hGNkl`plzGi6LdO>AqdM_RY|1rUCu7YD?; zV?d4LB*T{M_ek$Q%M49M1X91!%Yf1gqPy07`W&8 zxI@W-bE$bQIYBOOCOwDR_5O6t$c0IO?A-a65@>er{GtS!ojbo+P*u%TbC=-u(*|fC zpLt7uyA0dKX32&0E<*Q0QQ$OceP7JCW74AFq$2gz68_B=Mbk0JqA>Ww*V3dY?amM! zgWMv5mq4(#@NBUcC{^|Asm~b0NJu(=&E90ybC)=+Xcb){SPi4sSl8QeJ*QBR`ZA=ns8R5CHxcHN`eg_(IFT^YV&(KhF{(F;|*2!KWk@gD>;USgq!c=8V-+!M7A}nbEsk8Ysl9SywaPG9X{@%4u52{KX~avqPN%hlHes?(M?GlAOKW&_ z%1dj}yIj1yMuUxGmBmYIaY*k>i^h0qb<^6d4$jC_WkPtl#Va`$1G$GOkmJ57TdJC0um+Bh$C_S95|NHCwO87sD+c6~+kbXeXPvi=mU#}8w<2i zb?U~%lMP^3C&go6sch1LFh=sC;V#jMhr7(!%t(g2ih+dh86X<+GE`$sLn3!(1ABak@V_yoNAQIh75zoGToo- zhPfs?c#j*`vc2CYBf^YSa%-d$S$SunjSQg$Vt!x}x>eyr1;*33gD{pv8!BEcLMzYH zLHvZ)b>1ma5VNUTHO{bGCSO!XI^vZ|rNayHoy4Yb6~&g8+p(q>x1^-ZRmqu8rqnOP zXjZG0YKElKgL;S7W}fu_adsZ?nHAOFe|VncN!{|KZea^0;gW@QDMFH^?9v3JC?EpT zK|0(u51?{$V*mwFK*UPNMMV(=1VunPC?ZXY=wDU=dqJ84D#Z8uJ9EoCDGR*$>drOg>!I?~FqD@B;vz`b0XF+9uY*=!^&CRITe zq6*PX_sb^J-dX7!TtvAAr`3vs$0#EFhy(mpR5yi~wx7L`~ zyPbKx+nLuZ7&}$0W98>Ebkb?HC9!G+*VE7rc2CvQ#-SJs-UGbY=esnAI~W7j~%JLrtHuk9qoOTV&q&akv%R##Uw z90qzo8osozBRiSVXI-qyI<;dV57Ly6g|3EZB416{XLsEH;;MM`C;v_9TFHKPD6VfO zdy?-j;(s(f&@?=sg_(@YPov{-KK{PlEA{^p{=VHS_5UXRGVI8{B|I9N-AEVvR({^t zOugR;W3vZ}(bw=VMk{$nSLCl>&tJd6Yxq?vXxPTwL~a9^yJX$MB@jBp#y;O96yy7o zNSyKg3+l#K|3)QfE*0nTZFyK)9r3kUKs90fbu0_mf7x8UfV5*#QLJ95 z*K71zjIP45xxx5)-sp9GhB*DUBdQq5%cctB?<#clFCyh?y+-b-^kd~3O!A4pXFxrT zCB4N+F~bXK;lqnaR%<*j#?1#8$};A?8{`aM$y4UNi_{}Hi}GhbB3_vH2d8p874;dtVBWK%sqo3M~k{7a^KjFstBk3RZmsB~Q-;Ytw4*Ws&T-$sNE z>npfIsUE3IDrG!5D!ZgoV;W-|mY5p}m~akD%q8O7?l%4tK$aM}W1XL@VO?Etj4r86 z{58&!;B<_wQK>&@U@Z}lQ1Eq8mJ3y6O!@|%&eXn2179u1kR(Ks!QivfgN}Sf&gYjg zKQ3YAku|?|hW{$!COIAJd{y)r%foLHt!v9??6L|aZ4(!6!^EdRo_7;0QPl+3-OAY_bi|^;>+uU_F_;-PQ z4_9NC>(_9)B=y&M#p0K*V-Bb8AIs0vF{%Wm;M*?I)DDBa#}<&ej^+0WlG}S^BkTb8 zOw%Dh0EQ0vF$p0|7fTeX|4_xf4L~t+&mZz03k%zEc}_H$C|INb4&-mixh3=6*4r#_ zYv${lOoW^bw>(#8;up#2fIH+2-^5co;8IEQGLat%fDVx34Tu$MoQdCMZ>;=+>bG^L zchnR}V{*%j3Z*d+A6-Xrg*Dk(Rvj;Fm>c#p$aNjX#0GOasks0cOT_|q9oy3~*A6Dz zGpJdDk7&G~%@SDVn&LYZ*kz7cg3FY-!yu;^3BW9Y9M9xvnJYPyBeMkBGuU3|n%Q~@ zs9`m9?5V6VIeHMfY?311rmv&tp5y1qn;1T!P21VY8z<}oO^l9nmvk3qBWD$pv%3N0 za`rWovzH}jKLt>X-1A=EW1%QU_wk%4X9{L%IFN6e`*9Y*m$RQ_zP_9Zc`>@5=j!B4 zBqL`(lQVn|Ps!QkDhgHSVk7`^CdZRA#hM^zqI<0T%3I2r?#Bq6oMl-xZRHp;g|IyU zb{7C)6CXGw-=3Dk)d-vAuql2}fn5#}wy)*FCIG@F#}hWo;cA4P01yk$jz9VOF2F>W2*b%IMEpYO2Hi`m`k}roY0 zT#8(;HW?=xof(t46z$Go31FpZWGlkejz52-+T|<`0y?YZFL-nEP>kHWGLlczw#(vb z^R&w)4zjp9Qk&!dQ&dMP7T2$f)F(`21dzp5t~XO_q&B;mS}d-bsnuFQ$J&n~CArDK zSeq>B)4P@lI_jR{E4X4kEtM{7<4pA`RC4eQ64!D*hwH>Ca8+8F6tkg~Z5^|G82y!L zwL0H}B-2cO9c-t5&8h8UNOHY8IIEyr+}f=U{u&T^opBTy?1i#{{q1$>1>%*ny6!xa zUg5I@%$&)P`Qzw6vT;`p8;Y9I1CujI+o>IJ5ssK(jSrGumE5}D#CAY%)Su+jyLsnG>6x}QdCCrGII>wc!lRwzGrZPqtyZ304qb7 zFA-D4%$JBswvAkB`R|F6&`T}XkCRj3Vuwd!9K_3nea?u0Q-i}m2?A~gl+xW}9)mOu|tUv2P%E2{2 ztUtR8WP#;oe)sSjrY!vaY#V;+KkDo>hTDbHnK#CU03b8ULd|6Y_WYZ|cT*GW6b8+YZJPD) zG$*dyA(wB+8U7F--`uZO{b<9y0wEB0mZXOd!9 zvodw2w>O!6+r>_%C2ql0h)nzsWh~NjWNRL^E#hrz5#L1__KXS`e1{kV&yXWF5gdl) zN;60z`|J7$u2c9%J8tle|Vtc)IVw_1X?HDy#AfzJP6lH^(qAW5++)#ax*s%$XRqg0= z9Ltp65$JZaNy3Yff`lKJt@$ZS&%Phmt1FH02T&Mu7BTWR$6cLu5!B2>l=kG;{~Yp! z(L@1)n-uhALu+*}(tG$r%c8y7HmPM_P{A2hso)t+-)RK5B z=G1pk{rYt*3rDUP=@~KM%}^dLQ~I~?W(#X><;5*1)g|OcK&3HWgWM;AL1*w935Jfm zI}*q>wKd|G8%&)fvkPI7KI)lDjD* zqlZOFBH*{F^ryecR0{inG?ijC$%KEb>%Wv@vNgo{bjl|caj!{TKDln4x7zagi_H_i zeckGbN{wQlJ-KkqUv1*Yy~D&iOr6`7I(qwTD!CoTS<`H`&sCa*W`|B?TCDcW*+Z@N z4Y)hvOexFSiW17yWO#>=6sbvt@`9$NI$5{>b1K^6usnl11^$-`E7CLEdO}W@DfEJ- z)n@fn1_19sb0ldkCoM$9Qg_tc1vP_*sEb=8Dx!3(>rGEo%%@X69I+(2?^eED-)CD9 zY$|%d39)o`bly8rrd;B@n9Io(b2?}*dZN7FfHuDg~ro3f6C*G)k|%W5h3lG?6!)Jap; z!=I}&S#omNx>URCl8K{Xc?ORO{2%elYuLH)NKx;i>c{`)4H0f#`T@&}W3WZ=+r71v zC7T18-ZtIMfo!Aj3tH1WRi?*vB$zZj(~H4()$rVDO_>1g(~HA$y-5)3l1#TrklwcG z4zOxJ(4x!s$fybb22Ya}P$D*91%LB^GMeN_aF?TEqySFCgwL3)DL;lG{4L))z`}xb zIG#8jJr0isZQ`h=c8GstUAvZZMQT2s^6`p0?Z?pFgd&M%xRxvpj*R43IUDV4&FCjp z{f9wKZn-eS~Z$mHIk)oWTQY&epPEjrw|qQea*I^6i7W9m-3Gi2DY0M=cw zkrKxOY`_30yCO1&r01A1;6^$Ny3biA!Dn&PF{=C@MNQ450zE^sEf%JKp8_~a*m{PN zlv+0Daxnh43kUwvz6i-0!m}UW*W&2sy{&Fs{5+4S0JSrHS^3D!D8f+cVl>;)2lQ2sJ^;kp^Rll8453F&>DOh+0%}O zU`#d4>?JxT{XW9Qis6N=eu*G5t5l!sBvP4fe(+>B;aUk-v$Uh$Eu^VW57-c=Y-Gtw zPeumckq(+BKoIZ|sCmOHYl^kS6>CdctZ$2biL_O4-!}VX*;ozx zrdw5g2ke`k$k~h5YN#}wq_|qie(GldbhXb&YUwr;s^6V?Efp}ho>Cl8=cPN16nqaa zV{`>Hu9U=|3TaCcgN0gN_<0JVWz`@NY3{Uo#))(?a*?b$-m(&tsYYXgNls;E@Kegy z`m?o=hTs7Jefb>u0L;-^t-Wy5^*Pd;_wzUmcM)X!{<;JBSHM1jno9LM!Azfi8NW;T zdHPgxTnc{X(oE;b4`h!-hcdY{8{zY+**AB|hYD*j4DB*~+erv)ky48f@mop4*OTx% zBoNWPU&W7OIyt%|o=?bP)GdrRz}D_%yAs}cjBGohaPGVSg2^QmH$5;1eWUtd4;pURzL(z!F%EL|1SV zmY-@TDmPvePw8XVSJPL5_jA%Q(xu^p2#48AWGiwO+vQ@hYPE5zQXls!qGMNmG5CSl z^=lCj3BanDVY!~o*7#NLY_|2zzt#XCN|I`%*F;5i7`^00W$A32Yw_l?&dF=`ZY5k? z2>F}PBN|7v?2W4-y7wIt?IhBv?sEV4U<-$#nCfnrXqMnWk4$sh^r8D4Z;ogroaAC~ zQ*qg{I?goFXx0UlXFlznm?qxk#qmuOm8s)Eu^NZLZN{(YEW7rhoVE{2Fqo}2v?-Oo zbD%R3JT+&*g?xMa2^Oe8ijnGKn0E>m%D2+w=A72!Lz@#m1>ybI81?dU2kg+03k8kk zLkQu(xdv8r>mF2^gIS^m`;ADeG;6X@lF=1@9e+30X>Duu)_ckJ>WaTL4hWgZY-=&N zNiwTLc{y|t09J-!x!zF6WVSUK>a-?+$cQ!mZ98H5Nw7qSEm&&B(g$pjxVp~MI`VLA z(&*FWrx?jQxJ(uCVY1&ot!-NH2rtfDD0`*L%CvZW#dp6yd zJJ!i1Z>~>bS(z3*3bM9o&Y!VeBt;SIq=Rat{h?4EW99!z4gH+3@w)P+eSJ(HeSEN6 zZs{jfa#vc>$SZstprbueCFhxtWW`pD?A7(^3}d7!8+=t6-Cv!r8ErGX&X??>E~7Kz zMIyjubVf0_SsAUO5IK4b0B!fMT(9$G8J*!eUo)J4FXs;u$jSUp6Ut1mq|7W>T4ws7 zDKlNl*^BPW~&oc14}vT6yhMW?LJl#bkMP zESXgG9&Cm24pgr?1g?)_SdGE-QEEn%IV3$|zOZ~4))VzXir_Q2d-IX@IpnYT^80ar zJ+63ne352t2t9k+!qj%xa9h^=1cqdf!YXTq9x6n^Y&Nn3(1D8`Au9pp$ z{G5_@a}P`SE=C*K(_n7yVPo@9I>l%cp5X$?xSAz(JT}G6r}jlM9gofA3~$I&9gkZi z;ks_27zsefLyp&wDi)}0@{^9oLQQ^lT6mXsMvU8}Rg6SwGIf>1?qCGh+UUlNPbq_q z!C#r%ukNLR+q;P&E*@<;pCYFURE#F%H=8-A&9Ax+Q|I?8OXzLqx3=RTLX!Hc*R129 zk5$N3q1Rc5JFHxNso1itb;olEVv9tKJ}Zc(+KP|^(u%O0xlqZw=C3ZteFfK--#zhr z0Ka(z5(zSv;#i-20KaAYl&<_a6GDaW$@MygVc@e&t~UpSTrVLyC9*$Gad-f~;QjRI ziqRmi#b~KLx8NDBr?Mq3hMU?w!W zSGT`*3;R~0xtU^Q`w89Hd(?ioy}AP0UR{}?5?nQuINA-Rn^YBP*3&CSmeEaAgEV`l zU)7RMZw85C3jj9eyfmnpcTm(>M761}dY zBY+mi$o2XmMzC9V-kUBwudM?jBdG&MciM*OgPZA0+uPz-Bf*kpJ>pX^H5-xUkcQxw z0Q#2G8%1miAAyzM#a+OMFXPhD+u`?Kex8n2F_eN|34`uEXe&g-pKY?d91ya+FA?GM z^Ekz5Tl|XAcJ|!fo;&aiw@TS4HDX-M3SC%Gn>)!F-iD{t=51nPhZVX2s7*N@4;2ek z$50@>S`uZ8`Ym-^0m*5b?CEc995`bFRqr9DE#oLgA}v@bc~lA4lBNQlnzWA_+P5Sv zrOeUdOglT0sN+y*`(|^6Wyu)}#wn~EklKP(K>Vr9c7RJd|Hack;$o(MQky`wj(KM> zz#X2TyMTVLxK^IK0H8dLW!1(VX*u>ZTHSLu-ebk(EJmIa*B~iaqyP@&FJOM3d_^q6 ztGjHdkHTSVIpg>9hKIt0^VXv<{tsb`_u>XSw5YOnnJbDJ#CN90woLgh%CfH}|?t9wnVuiw@tAi9xgTsXbEIG>(m9Tkm-h_Uv zV2KW}V5tt!2Tee(11wLLnejRxhm6w!UnKQc_?<~vjMo8I<97o;PX~xmo(`B-xCZ!K zlbO8%Au}y_aQYk{6AORe%-1)|?}u;FjZw7l7D{w*(72)q-NDg#q;vTWwGEoHc(yRc z4Vqy`vk{<}UBQaCACu$dYU$t%G(0#&QQmih$W()xs#>k3eA86zFK76JJhjs84hfQY z%MoUH(NxLtw3cFl%4sdyDyOv^)yKbms*xYncI)LBAx1${Z3B=4lENp(a!+r36poGX z^Yn)D;g$2W!rzFqrj;|Mbd~ck9@VF*gNXY&j*OYHtfM)3y&Wbxo3 zIGl!N&%^9_IM1L*I(KublNj4yQ$v*yjQy~j;RAV!v3H8GhmbbMk>Len<#-4CD;B5* zR72rwo%#T-irDo{hSac84SxgqSu>eKnu6Z~;OuF2lF+O-+)`LG>CcIbQt*s{v$Kv; zy{bEf2Z%8bKDDuWa84hj6oS1p4K&-{JL6fnXI@>XZ1#uU_v zyxTU%Y5g)!RVyIYd{aYw9FR&~liTKaEFX;(YzJ*pWY3cI;BJTxpW`h#Ao*TnB6jmu z@YEcT+!)-Wu)ia$jeCF3i?eyiK&xzVS9*Ms+~E^=wqbI-S4HeBzXHhQD0i&0KDBu$ z9`?&WfQ%(?=0CE-gud#%>Z=~qrinQLgHt&EH@FYvHS2?o21}c{C=-ZuzncdsClW!u zN%~F_!5#Qr$*+T7`lqJteUzIPjd^-gd7B_NItzWPBw{JNo&nmR>z1EP=50tDw(-gWlbMea37I*J81%`0B}COuiZK2J0FI2Z z=f`=*LeGI)Jj2zjR~J5dXQOh4KgLtNvmdLhP9v`zPK6h}GdbRRb;Y80cB+bs&Y7Kk z8bx>(qhWi-_8j3E*6D=OKM_*8;Lnm2>l&*6Wr;V&rz)^Z99{4eC0=id3xF<=GuGLd z%84aj4F00T(FO9yTCbctmgPr);?r2j+0G@4J{xnb5ML7TA{J^HOGGD*f_?gW2 z_IDT38_%lG!@cRuQ+x;Wc@^)Be13o$sx}Rw@?x%7eiAH>2N{v{Ilww2pB8j{AMtkp{ z#b~Qooh=5PM+i>nu&1&UpRU(otgJLJo$${rjY#O3&-fQUV15;6!%J3a%z@&c zX333pO{a>ba}0)Gk%9+Rm0lAm+B5Y!FL@gv@hGxP_I$a+XYy=gne0QvShcP=5(%JX zvU0~dr=@jU@j&(;QNuD>`L{PQ6Y*a><}Ujr^f(SWvYWy;@TaRXF4MM-(0LlA50h?k zt%-&FB&lS*digjEW92#01)rz%d)k|0g<=Ndd_H?2;Z2fiZ&{^gpr+6=h7cwpN7Boe zcXEowAs5O5e6&pF@kk%`4nqRtLtLZ)0%?Gwt%as^WER}HEv=mdiExADG=-<$l>b{R1$sE>O*uEw}(;Pof}Z)4B?0IsghNc{!-BEPfoTZkTO=bdQ$ zyK(jg_-(?^)2))*Qc&-RnY*O7@I1)ZHvRVnKGaVUPUAxi4qF zzV7=<=IiM`!@$8rz`{pVyUHXjvqb}LZirUewAmNR8U7+qwb_rVZoLosI6et4+H5&v zot3m|DHf<2L8UfZ{%jYQE_Bki2TCHJ22oyeVW^o485Vt}v6S^aLBPOVx#YkpdtP8q z%SD44e;ETcRL_lpYWyu1P4Ptv>~g_Soe6|Rt3E@SaNY_4hU#)WW1!`tx&-km>pQp|XztOkk>2?Gw(X7{?%C0NkKHYl zxJwgvK<-@5HKPkrSl8kx}#b!|1>-^GUmUhMg8p7Eug$5ryU%=7q;JTA{X zA_aDO!LRGW7Acwo-RK?Fd3EOdYj64EHJR_fbKhzc^*O!)P;uldtP+o}(`&U^zTe}u z+QJ*-bwwUo$s=72DPE10d(_~$ZB_!h)sRT9CI##wuLgJ!6l`X80LDc5yI@;^iw{o7Shrx9S#t}8(O1(AZrNxgn>17Mo ziNxo6GN-Li@QQ?97^++G(8egSA@QS=GadT+)rH}>90!b&-~}Fx4$pe6%5=g1dF*5!;oeA6x|uP=!kO$#L6Auu|G` zh3i%cg^QaW)zz%!d&Vu}5*@nvpvbx%9;7K)03@475gWfxndxk*w9mn(+2nshAL3zt zo~~07l!ArApm~&*LO?uL&T?+x_W_|#781D_-NZ-OPi6*xk$p!OQF8}>%r}FOedO)J z#Xq#{=xIUVy`o1K5Zqc-^$qe?RmK;kMc?3NIm18TslLHe5)19&<5(BG=o`rKT2;jY zl})kHH&Cle%~raNv1o(i`dHNs4#wIdqRH*>xfrN5xX!mb+=8rmmN}!x2*EN}vs@vE zxJi#S#7s^=Tlr|ATXs2d`lZ)18=dl!&3VjS!Wf(oy~f{L0Kwm*h~9y!`w^eU;Q_bc zQ{T~r&>3t4Z7uy@AzTt_Ydj{|X(&btDR#=++m z&GuuPSjcR@ODYnhlKEL9NZ)R=fe~!w+tT10HH`vG8rE4GEisfh=a44XM5i{*2OrP) zC6cqYcX4$i>gDL|_+{-QN3#`Z7uTkH(8t_SfXl6RJneQ#&TU&Qta>B|bErMlQW@Qc zcQbB!N1onkQ!92=?s`^6_mebbG-|wifDg`~vFC&Ke8`>;^BlQ@N2-QIFo#J{1fV9!@wlm2 zpfYY!6U0r;+W#NkoRq>dv3ZzBPOKv*EG|qcrcKM+I-KR=iv|ux57Y9i43!bYwEV9{ z(5Dq957-)Do z4pN`VL26fCNT8!(mf8M!Pyf_!z8wE6`FU-L^5n_N`rMVt{u`5(-vCO^4LX3x>5m5E z86Z~P@gI0AMtZv8&->7F`N-~Bh07PXg@33PwuIkg;{_uM|3T3WFFBA^t zr%mAB=U0pbupVdlXTpI%9`Thw<&1TH4EeF$8j1y~9YCd8Du0?PrP~<(O_X$aMC4m;XthLOQ}}y@aqkI_ zwxgCr$@bF@)NVqmN%p`CfUR>u(5@?hofqwyGLOK$-N~C|*m?MBBP%fuWrJXOM zoolZ_rgb6m*MWp0jE*hFUFKgz$M7HVN$Q7y)jN$k`G$A%>K0*^+sfV|Os$)Cbd}@3 z5-_2Qd!2tHx}1eV00enhu2)x$uClAE-0Q5m+TMUsP)pSZHlf&kX?p)#N>jg#3VxK` z-!e+2p}n!T5-Q(GCDf}kKeDcwN@&?MiQy88no8(FGG(0B!H+`Ju?UuqFBm^3{%`zr zh^kiyC6HbnTv*tMFnv}B{{{$st-!@<4}}@Oh!0iZc@b($Z(rgK-tAA2{?jEA>}nQJ zOK;;B6gqOxf5lWexZWLkJ0aog+6n8^6*^ZH^a7T!V~ zapN%=0~!;b?51r!;u@Q5gG==b2$2SP zB5 zku3N-dGs% z*YW!wKTkF#2c=+v5(ZYUlr{H)zb{H1$ENZiCt8~km1BDmk z9iFK=(a?V%WFm^6)))85heg^JoO0T&MtUL@2(trb3;7b^yL8NlSRQUbiL$|PHz8>W zH{`1pMR**YZkr#l3foJ#Ztiz)4OoAQv7f-rN^e^5Y#sGkeNcEWyFMs@Sh|W=2gF6D+A>7A&n|`siwP zm20~6yA`n&ZDo4xnwK2X=oURfX?j-eeU!){eCwzqziy4<|7-j|G|pdLr_J&EBERu< z?q>Y%ILnA15*I~FZyCZTj{YdUXGIz*!Ve^<)INM25DO;hMdDA*_~--GID8E&^+IasrN zSJO5tPn6dTIl~P+RbIbWdG(rh5PAr$mFANL$9?wfWgX=i7*9MGiImRQ&!6q=Mm*&oqZ&|gvST|wup?SXH-DzQ3QWTrQA1N7-x(nm@aC>E{8NZvCG!p43qCx`1Waj|4F+U~8D_z9`mG!)Inz4Fb+oP0Q8fsR67;?i($A2?en)M$% z2nT`zQQsh~n_s;wv+szaQqb=Lq;+$*V$>=B@Fr^LobW=`R}a=T9ws~555WH}<6Adi z`1W4Q-fTX?t5H_$*wgE;rMD*E7^8U9gSm2sXYo`$_>(v#9b1e9pdQHahU1DwJ@7Zi zn6;%!yJ(A?MQiZ>ZdckB^qjMg~}u5C~UE70?P6@pN}Mu3-tQ*)Ol1q z^0-jW@I0Q%5itSR$oC=J)RJm!Gaj?k!4vu74O@< zHdJ3%X>U!u+>mKx8hzt-A>@FxNHV?i=NGcNrHo}|GIvR<^@BDsUTzEsUTOhlG1`=m zV)SmF;V$CYGKf%@XE|=pGetq1^c>O@Y!4vo2c7qoOxKFAQm})dn%kLM_ycXx zrk3Y^K;(HBQCq#9RIBeHSiA+^?DparZmHbQ;h_UUVT?d6tIh`l-H|**zB6Jg0?=!* zoe@n67Re{s8DYC$245B?w@V`45+KdlQiWN~&Il1obGEgdVZ_Cnv**R>xt4|iG-q3iVMoys>7KG0qy$VYy5gVO^R(O&Gz8NlBN+_?32P^pSF1wFHX+4UDnF_`m{) z_d--A5ILkF*ad*v-*o)`U*7lT_kLKW{OOM_uAP^(K7KOwjPJW>{`f|I-dIBHF9o|g z$FDOSPr)3xw@*Pm{g@5^=Bmjjf$E&r91uCnx=tu2mqO_EvZLGrdC(6>x^qN-2${R%}-?8$MDr`8@9ANro z;c_wB4S#lY@vPv!&%TWEte|ZhfR*%exM0&XMmpO7_E2y~JKF$W7VU>COeBD|0m${r z+K8`rWz9AKE9+!N*=nxgHGI_EnzHsF<%wl|7z{gxpI6pmXjay`pXz5+=FP24_XI?l zs$x>6|HLUqAHdHQWYZb>Sat8rH{bpgG&8BfAWkvDUTVY0`n=WFsSo8%x`4qea3=UC z4{T@u!m;L}ySg8-TUV_GVa4uv9|9H|M*1co+h54`v$p@dp(z5~a4` zcyO*2fWDot-H1^Ap|&9hSiQWUUE%fkCOKITT2!UoUS@|>S#;rpJyq>LKze4j+nbks zy^8oLv)z7jhxg(sv)yZuxoTfyt^hLI$sOwq(xzVVFx!0)WSTOOKQe<@?F-=Tk@W$Q zWhc#O#-w&G(UDb-KO}69EM`nz7g={3j|89r8y721GrPQJb|F z-SOdk_n*oaX5K?B@?na+x60s1=IqpMKB{IKP#EYoA0cP>5T5Eb|3@Y88PF6X0q8c% z@pjrN7O0NVG$7q(ZM2(42`KrdgNzEck}1p@;l2{Y<1v9aa81KuiCd~P98Y1D%Nh<3 zQkU5p)3N4_w`P4qQJmQYJ^meue=$1Bo=5WxKA7+?4RdlaI#zLQWKxWd<2^c_M|iCZ zn1-9XWI;jIf57;C0wLhH3Zhs&5s`|k_!J}eT)}%RBp88ClG7ERh(mAkBgV^*@DcWa z-$iig=>{1#l__{+0s1U}y{g8Cb2Nxh;i-M9Ej*D!`*gCL;gF}=r~j((v<;m-PI%Ei z$?*zLu|Q>oNBgA0(_vg9b(I$EX`z6~U&T8}j1op=<$(=qzd8O>`S!CR9Myk`;Qc7} zVk9&JS6VdXkbBeQV>epX9G_rmtgkdqA#imF&T7%DOCVO^RO(Ej#wxUgCTVu@_m#LCTqo zYQ9r{IzISXet+U8roual#I0ZZGjCeg=IH?yUM9!t-#km$L6f z4RP{r==2^g<-y)q)M9;>{ko`kRC|r;|o0)YHu=B+U7gdF$yj=T!66GiQ$I6K}X(uNa&O$aqsJ zB-JD1jgkm|#F<(tgA94XAVZlm$mQA1gKSoePA5;LteFsf1&qcV$0C!FfvpLXh|i>Ol@a@nj2M+LJ9&i03j2TB zZ_%Yva{4AM-}WWVg`H~Cz97$yMAMq4XO=EiD$l5e6oGgDjMl4Ba zQusQ+*-_->&w^S0iY$KU8mr4FsO9gpY%jOrPwUCWqN28@4rp;S_gV`wz7C3cwRl?# zyC(VKB5R||>d-+H_Q1Oh(Rg21MxO7%xnTUmRg4K`bZ$!Tr6l31`#>|;F=t$ckL@$h z%d@4hG^6SAaWsj8uDpto2NMn42~FVOT)Hrl66JI6wBd+X0;0XV0>|`VBoFFYWIo@^ z!hPL^`-YtQ_?vR3*Tq+wTOWT5SMo6l&hd}6;!ST&C~xj-lTt(pcY>q3THkV z%lr_$ORb;t9YFMR-2B%yd{oaPPwe~QHT<%AXmm-e6HH_88L<_QPVlvIhOg$SPVoQK zpE(HJ>}$Y_POzM@&gbdun&Dru=mgVWFeA47y?J}XX~>#_Lt%1ep3DJ_!C?S0d-Z8& zWqlXXPznwg)Ym~x1xc3v*pfmJPfa9ktVB31WecGi61BoN3W^>or!M{Ktu63$diq@xZtjwg z6fS5i6u7~KdB8g%F*)Y{OP_`tTncXAe1R@MXzP#FsDi{Wx#b!}Oxy)faO6rLwY zK8atMJZ-J%ojUDD>fc$~u8iKGT!S?bJgx8@xd9PK%~YzjW90{_j@2U&@19WsgCapk zZk!P8Aq6|qf(aOu2x7{YxTz<)K-5dw6U~L zrLod9R{n`nIvS+mF+6$`S$t$lStM8ApFr-zLUOE;D_~HkT>W4|utyZkWnMs+`I{yL zdsM+(<^>#|d0NCg^Cy$fC-tUdbxIyrVQWq6486pWYkNFhglIDwl#&zUZuF+DsUgzc^UGE{T2 zzzOV9G+}tBDEH-5V{%tYk{1Dj6b5U znU(34nc>ZllJ9!A`AGr{5n#h#m}L;o)$jWUt{+}kfiA}X7r4HEJx!Wy zBx>J9sQ!fK3BC`*-JFS2AO8scT92>-e?L5vx`n;)-wvgh;^))$&mN55k^ICY*(KQ@ zr#?~EXVu!#GsxeT)>pe95dHEI0y7u)JDlS11NbHLP(S0f7|A1aO}#v#OoMf8l#WFrCSrpX!W+$5c(QY=t?6jXLt zsR1G-7+#1pTdzW9(EL1U^(ri_#uyt&nighIdV}c>Qvoo8%JI5{me%+krdi%hXS20Z zNq?TCw|GqZqV3ybQEntP8Z4vZjHEdrHIgn@VevX(wjmpXvNDE~i)$iBkA~XXEvhBKQG`u zY{Lzvo3=)NN}+~v>|RD-cDnN66wAk@JrEZ7r%ATo;Pl^bVaz9z z#}!*}hh1x9c#1TPG+<-64W}>J3WCNk!gt`zTC|PfFurtgV;oJik0|Qa3Z(r3qJ^2U z-^v;OHBYTbZkB*vWOxK%?TnnU&UdHENwGln2~cV6jQk~SmKRUjsC**2dmqb;`(P_A zUgsXYb&qCGJ1n=J#27tB$asm#Ax>g^-BE$Jvufo+d6^&=={YgWDF>aq*=uLR1h-3b z^w@i6ye@7z(if_nb2nRH2Is`cBe;`*Dr4X7=E>aeNi$U6qAr-xsE~7)9B6m!ZDZyB z2f&p3u@G9U{uNn^|Bes$H1l*e0wHkUk>SF;(_9?>6TYrpvRWQL&o>j}>}KU9{1J%q zPGv+!Z+sHyY9mD-j@IxCLUSr;-1ig|8B=A_@{8jZI6a;Z3H){g zDH%IQFT6yloJJ~Y%umP7>!##|In95_8U7)b4@n~DXh zPk~CS804?HZ?VQNg!3)CIg?E;mYe6>mkY=7;A(~w;Q?f%e~Y(3FsXz%EOvrs?d~pd zDQRVlVKfcRx(QSttA0UJcGlt<qlOU$zX?~hd zS*0#vaHu7W0l_jFA~a* z1YZLrSC5k6NP~!}GvP;)3Uc3L<-Z|s)iYsH_-P)!4uRvi>m@We?c1oqgGro;TBR{K zi}2af6%W!7d=)zm7oj8%Z1d3LadWY|nq$^HrWs{b?-7Mr*$FQ)ku3N4UJIDpF{=|1D?uMV{*C zO;c6Xv6pP>#EX8O9PiXw#R3)e&CK;Wb(S@iBDvA&uN#!7gfLNUhD>Z0BA8vDtD!aP zliIpD>y$1RG7S=pSk}$`2P_G-tecxIYQJg;3ZQj!a=mV;kz41wrHQ{SNpZ8UA{(2l zI-qtTEu!{1UN-$WHfI%x$%+EiEJQI{jAJZBImeec4^j@!b>*L~Lso&yyh)NGbT7!;!YvX>BEwnSF}U7|GjCz-<1a7XH5sK6lBoLK9=(?M=Q5^CaJPPR4pLB|QCvur1Vj>%$GzaS>oE2;}-XU)bfcu?oAgrfe}c~oB{A3C61 znTX$je9jhAAUljU{;%>A2}?ty_wb8g9lV2x4P)h(q}INKM=+Bzq1NQ#8pAK+-yadM z7%8v$p=avpqZtQ%Fdc7`_=$Pig*EO_a5<})J8_XK4=6GD^)2Rb(p{;dfc5p0PL>}aG|mSt~spt15lB?lKnP|!{qgKJL~$`Dk_)gKZz zyo9iHAv{jdXf+Q$Ibnz^E+w50V_4ex(1#U+j)_q9a0e+j_J5nStN$VmO*wGjFiN^P zR^8@!>>Wr4Lkba8X^G8X)8UBhaN4cIX|@ihggUIoOwzO49vm>M3<#@RDufhYk($`yq!%X{OSgD)|1${^$}-|?F3Gx(Zg6msvS5o1 zrh$@MLYA#TOWWgZxMNxA*sY(5EoE_a451%w!#`^~nUfcH`;JJ~dDO)nfJbIFDeiX= zM*4|6*eCm`m2%>@xLVo?T%3KG<6?b)DoyYs7cE;;$2tTJExG8G(A{p&bDCZ$M(xvI zYGdP2JV)5nFD(_;C9gYJyDfNgdBK}Y#m;i~GWCxNtMq|s1sa~V^%ccJccFewV>$8H zw0%SG@#5PlH)!%d5Rc1h?7nPn1yS13T%O^J5Iyw9vvrJ>v+wW^G|k~3c?5TJUPt&R z-iG#gZgpXT4r@Rg!`%?vcunD7@TR5HKO~YPd4;*vwt^SjfSew@2qB1PE1_;nhpTBcjg%&vq$st#;i-;e zC~Q#y8ypuK#l?m`+lPQ?+uzy;!c_o$bE?HM> zeMzyfjQBfdWwBsvnJN{V)(LOrzHGX_yIg5B_p1xqRc(N%W@JW%5$lnytD6p_Z*jGP zGdfRcrZPWN3crcD(X>h_d_ufi58~XqF_6+v{Dq3~Q63In{ji8X!OltWfI}z1>2Yf} zOCt-Z6Wll}sxxVTj#;8(ZJ&<)JX9kKh!rr(5|2vZu9S0M4P00g_~Pn3;p+8qZB`oD zo)B}w9~hep+xXu}y#_DWem2|Q>BZG`gkzD9qZYoN;ETt>O$TW2_2TLx!8uVR=d1kv zA7@o6%x2@mEUs=U|9;&-`6g1c2;3$ zFTVBjCA?oih%W_*v}0H)AjU=j`&&uJYJFbIV|ED0Sj={8^$4>NiCz#iFZ!V!Oc7+B z!Ovy4v1-3e@u~Josee8M6eD?AwWpQ}eb3NQk5l>Yr1G{_=hN4mmME4CpJ^Mz$BLX4 zny}=pFJx+5dvMebk<%1L>4W0O{z3E zRp)^>UMi+^8&6PC3&oX$MG1GT=V-HGfyx;zWqgdpuEFO(`IaT(RCC5bD-mOEdrQj5 zoh>WI$oAF_PGoBJc**q(9xtbJr-Jda(n2UxzQ(I*rgCdobj@TesY3Qg_OvyfWuuO+@#^&l_slY29VRxW0H*p`2C)H)>#TRrIlD>2Ov@7H! z`e}Djmg}coEdPQ}rJr_Ju}#_^*^hGA)r+6$CrxDa0i@{raS#L}fK9xlGhRQjJzDyS zz0cB5S%{%7Q$>PK&`+7Cr=Qq{YWhhjC09GjE7eaz@9U?bhi_4rC&Of#X=EFP8dRUO zcSJ=vR$fl-t9#f@0Q7KR`*pqYU;k>PwW0JP^G%BQjGP;>i(WUvhhYK-V0b# z-}dI!t8cqonu1SN-}X_~C#i2;h2yDK@AKlP{r`3GhjVsEP^U{fV(aqwn$}A7%Djg* zpn5fWHS1tBi~IH})jrAx!Y6v|ltFeI3vtrd&zfV+vUoS2ynp@t=94BHirae= zml>EOx4RS&`BR$mc3d)J>T!UPX@QPG(@^8z6Q$Q)ZWZ@HbYn+%PNy^ypWo4|C z{W7+1m9gfv_R4sXm9e;8Q^tlrE#reBMP;m9#(MC6px(tS-VfHh_>qI!GXQfN z@(4~Opz4Od&S5iT?gSDKo}^q%mNqQBL0#F~@*e_WF78}Bs>ea6%=#a}FFu+F??ZZL zv9;c-dOu$8k$l|o7soT{U)_olJf$I09OwI~alYXp>(dnLo`BW{7cM-QkC=tib*aap z@;E{sjSZ0iHtC$aE`#{+D1|s`bs>&bh+|h5;uwWsiSpE`=wQ|O!wM0JnxUJ>%j5*P zB@BmRacYPRXdXP%4oOktcTXLtoqO<{D&;(jni z$nC9oF@+(=JG)k~K&7*5do_olL(knzFx7M{Hl&7)!>ww}lR0GKIvkys`XE2gb|``- z*bXI2CjkgCj&;sw1*9LhM}%%lM6K!+_8EIYY!${`9kj!)xb>tYvSGPZe$Kkj5F> z`^wUauJ8!Dv?HhRo%Z;|p|SEQ5~?GuyDMPuOO5~c=1A`NG(M%Bl}i7BiH*F%4+2!r zB1^V0_=B3?5ryxz;OOF+A~A_wj4Yz*;#-P=@{TSx{52$Qsbo(Vny&bhO7#j$)qEm( zTtShq!O9iOQnzI({*()UhQe#TaxpTWNFG<5$BGQv3y)YtH>Y-1O6{SFm@!mQS)e9| z-O~0H&U266cqMcj`l8W8Ad%%h*r#oQw%%Dij1J34*4B)uyeIT6R4?@N`xaKH#;~N_ zG2UhEj=1c%JNBLSE%wdiCTn*jnKkW>;ZNJ07_!vvs4QbWvi9YZKs;GL6IdeaXYuOE z`hJ$C;8V%^S<3q){e~HZH(>jRy!dIqff_0?|E(((OFQ}uDdbXKj6Tb^bq-A6S^xOp zOlBu9Rg^|gK1L$K)rx!sJ&DK*=!yI}d`f7QVj}YLGLhG@FBuI@PKZ9O@ZA>N>wY+T zEn+J2VgVu{zf2^~6k8gMFY0@|@=D(K$T1``V8}8VP_n)Z*tcY07x3(#@iUVFl~|1o z82(fS&VUZdfHD{B!TZ^I7l$)>IEPU5H_pQuJr_Wxle7LtDeP7+06n={x33ib6Z4uW zTiGm#-?BdOc5v~`#NY&hjbZv5Lrk)!9w4Sbn zR@GA#cB}{Q6iHny*~seYw+WTiP4%g+1e*4#(zhKArk+Wr2w^_oE z(%A@}k$h-kuy4-DEsD-s{5m^F2$mOyKDK`Sic!^rq3wQDw_@~rdb@j8Va4bTdXpt% z^hUisEWhvT?XolR`+?rZmJ;_Sy>)(?w;$?l)7yaF%-e#db0{9=S=g~pj0pG2o>?Qp zys~HZi14oLnKL4+D|_aS2kCR$v*RlK+r?~G4# zMn*a`YD)RuzNEcyhBC-sF}jVQ&KA6qx-k13gbTukhRkwovwJ^*$<=#!h0s#?Q@#dS z30COnmj!J|XVwRIT0nu4fU`>B&&CCGQzjNrAQ!Oub@gUR653Px(51ISR4E*7FxcYi z-8+$|JN!Jga~ALJB!4jSTNmEmjdt0V&${pqUYkoNAw_GnG_aQ<*#sE8k0jGuam!?+ zA)mi=7NO>H^>fJEDeg>%+=hJ@$tF7b9#O!=IluNL9fiwa)ge}Y6o&P1nyXO--kF~| zjjaUGVnB{T>WmFfbT1)8G1S?b`W3_7TlFsn9O=DPL-UXsM^=2d((ktDoR#A6^lPgb z+b2_GBi~oQyN`*>&ZX8zb|_!-P?CZy1QLUU>pVl{`8tw@aY^`L#Hebz&>a?JFgO1nl6S_!6l@ZO!A z9#k2`dStrq0U+q4hj2#kQ<|w*NuFj%g(OtXtA z{snqx9g1*Sz1pwD-b*VFg`r-xkXTx;KF|B_`E5wOQbVW(M_T|qiyuuzVHT0Cz8U`LaWI6x zSpTi++wJXzw7&gZbalsyZuLzs{a+FVIkIpK=DHRfzLhNwadqu^xZuv%3m}(!`-EoJ zI5ci#nA7wvA`N;K_OE=WI>1XV5pP2|yB1{<>X+m&SvYPM=Sft`z2mYtXHrB@gDBaA zV`S=kL@Lxbl;p&EWIFLTK+uWL;*36_G*g{;V5yX>uApOJOSh_Y6`T9cD1~$Z zn+H0`i+gnoxYna?X~?BK43$dZw+WO?;$#TuB&thMI0N{1cz1!^Y)%%4-l78OTrWDI z_DAq*6g-b(^E~R?ILf~3;)r+BgIepaKjK}hc;h15j8Pu>I*aV$ZeIAOi(07um}2ZH zh1UzgI4oj-%e7Q&c-y2Q={PnI(3ylw<8TOK(QWrnM|j8h_%|r3HZ}WE<>|+|%Zo*) zw0S_Cz9fRa{jm4Au=H8oeO#qbuYQR82x0BZcUgbH8iS7D60(+@7}8;jT>`BmD0K%d z0IHwl(RY5jRv|5j;2UZd?UwZ3jy{W^^49r-bn{u8mM&OGBUI@=n@rJtPGw53Mw%&| zRHoE7J`G&@<6@aK%p??sbitdwOt@~$X2k10XWwF>*wa-SA7mny;7!`qmHk?@m&P*F z!^-NX#VJ=$C8JeBe3<&UdbTxpv^bqmHpDFrX5=vOa4K+nu%-=6IuptunW>E)>(lp+ zti=-cmWEO=UF^5+fawbH)Ggb|c*@Yjc*@`-<*8mL^7K$D2m_L4TOH&|y!su+%h5JWjsU{+hUCsJFl;9e^&_ z;F3V2&yhc(q0;tF+KR>eJHZV%`WGRhEJxG=W?d%m*LA1 z$lIf@Bgz58sOInh~Tuj?r>sT%wOaQGCDUM?$^1*FChRH;|Jpph%G zBY*AX&O}n=rpb-YaPNz&ZzxaC`*}LT^^*r$!RB7W*VLs|I|597+yrLb-3+F_^v1-| zUnv|Wn;pS_7-uCaS03RQJE{k?V9W&wALBdKC$62%&QN^`no7Z%(rOy3mv)BEmwh@Z zOY3**tV`_^I#P8${2XP~5$r~1ec&idM;;-2$(o0j+`zhoXQ`9}67EuX4iK{{m^r1H zZQ^Z=u)Uf1!FBU+DEqpp!ZD8pb6k7XY&PAa#?zvnYm%bu6jNccvoK2GxllHAuNIcs z65cLr2gF}>VvaW4B7VT5j|OH+tX6bJ-z|=3Bd-xUt+rz7Sh)%Qx?>YY1xyZ2IIt9I zoMNjy-C#xSMz@_`d=Ru8lhd+Co%K$FgX#erVjtD@@Qn2ldB}rR>b-0plTvNNTA9cNP2eOVe>9_Qi7<~~mc%`f?3xNRW}#uy`n%~qsmW#Cqn zw1_;6&4Tu8775$6{LE4wHwzl+>4rO7DS&I9{|O6HEjsj-eAv{WDBXq+>oR64o76P) z@6(528~H(Qo3Sle4(CfAP8Tp4P8!l#DN>7((2RZB5oturay>X`>y^Ybfb!0a*R#aP z33G~C8>XLcr#5C8BN98cq0j8pqQ@VL*mpV>IX)|oY%HRZuNjLN{&XzT4OtqCsAyt6 zGTE9BBx~yq^!699r&1_QJEh|jt!J8sZ^_KaHVg>9(FX$9o`xA@@1TOz1z$7B;_7-N zF**akEFI?lWrwb_XYeBZ*S^AJeruQNsu()cdVQx}siUba+icZox*HdxF471e1F`5i zlwCnas$!Kw%vH@HMlOddtKUuexF!4+G3PIvN8Hkh1tzJ(`|&77vxHTz$)$=(JCLSJ zerGG4bY<7#>SoIC9Q?BULi6KdM&>5zYc60O0n@pFyiU)@H>uMLg-La~zM$sr1S@;N zsnh@6cl$>ClwZWlew*W_Kluqp+6&%Ts@9(BFT3ojwRjX(u`Gegwl(xVT@1F8lkR_7 zrjNcg=;{;;?%Z2X>HCKY^#`YVqQlM>2tC>|J#ih0EQb>6i00hT6P7tP zypV^U!I^-2ZF1O_eOTKZ3xt|j2gg}2?j;LOo%9Gq)fAHcQPYV}an^21cper2q?D=wf66ZOZBa$1Q5T;d3dQN;uh6f_Mnf zX!OXRNRG?Je;qke)m|=G9Ko)CBWPAiklEH2xbR6(Bk2BOprT6B%+$~p_-PJ}ej&qi z`#T-p>*wnrD+tR(qJxZ+P6v&oOm_KC0vIbSfY#%!E^hEwjz_2OovI* zYjl|5Z|)b#UDc)JNjhv@LdB8{-q+T*JB(q`#4cRoz-#-Cbc8)r7HQAxm~Dq{3`G?pyu5W%%na zF)6E$J-FDu)#V*o48FAcCfsA?JxM0%z6t2MZ{5~M_>Akgh1W1_=-SeCzSXI79%DtV z!aBuI2-9$(qtE#S7m;ht`MbV0YprBMPYeoOeS!7)~^K+k7A6hD=6zVnDLZ(?aUw1sd$zCZU4()V*X@v_k^6m+|-&efBwdig6*eZ`$AaHsDQ!IYcMc=oE}5%^q%$8)BGWmTN1Vu(En0Hn))Bem52BjqpgMM zQm*C-R_LM*56*T+;L9h6w=XH%oS^tNvJGKusMGZ*m3Ivr!amALFm5m#V5eygXf&Ef z70^OQOvbSg&r;ZyCp`m52)D#HokL2-akOFE5g@n{xJQ5clC=u=qHjK8^?Z9m*!^S8 zWiFOcNy;a`dklHl5szZD1J81JBfJQ11z~a^z5;gzN8phbxeIBF*%dLk9@xroU7lUR z3JST;rO*}Z@)nWo?s6BCD+oaqevoq&x{m1zXE8eOwIgKN!)}m$fS3)P1rnKu7t3WL zxPc_g)PB{#fMIFB=7`cL!d@Hhu{2!D1LZcj2PCbHXHTP$X4x~KXVPrr!8DwB72H9% zX-&bHfKrqVO}2D|Wmu_xl6-WCx$dj0%XFtaClRp@JKU@&Y86;R!<;9@dpXTLVtVi z!82B#orh)LEr8zZ_WXLsJqh4^Php(v7E2eSy)xhYuE1iXuqJTfF<6i+R&X3;Q{5Q3 zIfZ-R1pfyf4ng=cdzCL2?+KP&`>Ml^YA=vf{y6OD5IMu|=c&Vvy0ze#s}HDw0&v)o z9Pa{2#R8Rofuzgr7&o{=7~{d_U`J}0-7MnB>JE;oktcD>m}B)b%R~4RLM4^7b=6nk zv&Vp}#?kLHuBfv0nAM=y3)Wq|4{?h>L<+@7&#)Q2&SnIAZ{?ltllv&?gHz@W(x?x( zXdm_ZXdof`YTzqA5L8_{yF91%$57i8?4nvT-W#)={NsH@#spx!1MWL1uD*VnPNh!k@+uQD79<(lJWXSA$ zA$6n}87}))tIA!0LZxprId``=Hfh>zku^5#A+q;bgk&?Zy=xG{5mI`0F}m8Dy4sru zcQ9;O>Nc^$9t*ICvncQY)#f4)zS1;!tOd8?Yohpq?EtqoCo4f}i!gkiu2nlKTs3f3 za3H0cuIurtaVDul86-bp9C$5#o!4pJy)8LVEngO9AZX2G5)v@A`l;i2TsStH!qn@ZyVmUVbMS$YiCxFY+uif4oF_UZjHJyfQ< z)vYrsGlG8;cK{(K^P&r%wUKDf(w|`#SDl5QiEX74KBnNZ;?{cq+=$5o&I}*LhjeUk z`?;FK)~CCp{inOh6IXUF3+EW#Oj8ZS*>_DAw!u5iLYq%Vn~|3sN|h5sn7rn0txnqG z9&z7aEpeHebQ^DTUbr^L=}|{RbfUT~@0T*qwduf!cU!l2pYiOB)!p%7B$p_u?qV=oN@^M7uwo=Yd-wmN?LFY^EUN$i%X2r| zvJ2U43ki@A*zg!22|b%o5~TMoO^_l8h!5rpBG0{Rklu>|BGRQwZ_=e#DN2*FbiWFy zs7Qy)|NS}hl)3jNtKaYM_21XtnR({SnK^ULnKR{?nI|aA_imLpBh~LdG}NEOTgPkN z`rs4By{sc1+8pd!4*ejns(|5^s^vI7c(5E6VU}y0nPxUtZk((7!Yem^+f*q=N8xbInz(G=v|Au53FjBO)aD~|Gw(pz<^Ire6jOZ-d?$ zAeo&gHi-9E#0aw!QOoS)2lC4M;A(ady>bvCBIK1G*7WMTiiqV#njL9MrMf259=jbtvkwc{ zsNqeD;8s};)rYnqWvzucIJXc2It!8AFLWum3#p6-MY_K+Q;TW@J6=kpB-~LDu*b!Yla;`xP+Lq0cyinya9A`d%1jXWNXanNJh3D z3BV_1q~@>Q$_id!^M6v>`QJDHa5cJ{Sz6txQ4`acy79r2Fk@6;C!O?yoI?=%s;28tRhP2DXpaj2%1Oz_v3T*qX$x*c-B} zMz*KwAs5cj3Qhih!BEG>YV+q1T-uK-%5|P)`R>JP*eg@fMU?5J$=wZOx3OWYsi@V! zy`a-`4dZO;m@sZkl5w2@HB;F&#*J;6O=Kp3*~D`mFK-=@m%@q*yD_0k88#~6{~SiMO7L`m@E~qsV?1_)8s9gENddo9y7xWu3})F(|>5C6H?iB zEwGhdU}gWWTWS2gI-clxM4p@iPx?FE&}pm&NTzURGP=gr4xMsHn;SZ%chHxxw-Wsg z_~|$Z5dv+j9~H_##@Ifom=D1V0`UfWf^)n0iD5yZsetU6 z_godj(+#Z2cT>|mc@OksgYD022h7>D(h16MeqDaaJ_0){ICb@6v_2aH`@+?Xgo5@< zJe2Hl;5{WLW!mjLE536?|c5b;>3bi4)8O$&C2jL8zKwCoFH5g~J_};%a+%LTvVK{w!5LKV$y#%kGuD-ltoo zjIP9x7>N_1N#_+~(dEBSx99YI`k@)$viIqdOwIdr%RhaeekOG2eflY+s;K&ePg7Xj z%-*M;ODgZqfu90Pe5mYYjA{W`YfByBfVx{OEc3DWb4 z-vmq&=yd1t56kGxc%|CZ@X88Ed3AomtFuT|5$W*iY=u>Uj8~V4S803Rgfs8}`6@VW zxPmpHy#1UjkZV8Z6NI?5{lrF_;0tR%S5eG@+D}{ID(YDF@YA#I`$z`KR=M7a^6p{% z_yT;pfOKpSz0uG5+#ce0YxI{<$l)S@(t0JHseK8YcPALV3y}RX;rdjla-I_PTN>}2 zx7E$1wubUx5Q=0PigL)>!Ii2;-VQFlIBy4e4oN$(qO*3OVlx@jF6=qo8&}EdpUGAn zu92}%B$MZLKy;oOZ~nz9GnFlS95$6eUn(ZsF$dL)^-a~IUTfN8 z@6>ctm_7FEF}#eod}_(pGi^D%tu+;xQ^%Y4TlZ#8HThubz-wooMpl#?1oOHG)Vyn$}L3imu=9L5U z1q|Ywaf{&|a4g)-+Cf@x_Bh-MEWX8({RTIBNmqO?EI!54H{v#h^z5~}06O`{H9PTcHj$lZU}edMw&Y0a-(hk)?oK2gPm*YbV#y4 z==s)zPFXsDF263)^njqhkZsM7kaFpP?Aw@%A; z<-J3By{r5r2vt$6iipUp%8ROei~0lJPio=g#TRqCVimAV61!sbXLdy;`*y{iQ@b)h z<6CA|B$*n!V)>_b<&RJzyYdLBDq?14S6%~>$$qz*J-3f5%bGp6wea6Hz_lm$31Z#0 zShpwl1k=cTEXy9%CzYfroL{4>+K0A0JklTM3fTs=fc>vefw_SFuhU9@r5f{}2Ab6c zJN94i>wP2{r(&NTwQ;G#mA$Ip*ZYDf@b>loQFSq_V)U5Cxb^#bwXgO?5`{-NM(E!D zX)J&pZZdoc2;&nO5Y|Ik*{=)}!)Fn3qf5YuI09}Ti2WUY{tX)8v10kEyzuH_&HbdYQWkixtZ!$!hE(E&r1OMPtbNG{P!rm`5es>{@JV}N%f{F%6s^h`MD**o&e z|AQ+%o2V)d8@>SOnLJO=gjJ_!9c*X$3(?_*@H2>2ZfkUzc&k@Px}mW4tHf4tTjgES zB?T9QaFPn%+X@zdm)!Eaby6$1=+;TOpl}l3kL&ODzbv%y@>c-(E6?Mvuol4I zzY`s9Wc*dRBl6b@Zmax*bVIts?dO^&lhhS3L0e+gW%3 zaUW&;{U;#!`wf%-2R!hZJKUrte`paODdN1e$!Z^3ZIe|V@cUzV<$vLd-^-}lyIZyb zz;Ah8lNAycbAFsANEwi@T2Aczt*LE5QNS{tVqcA?vC(+>5cT8a-?e%D@ z?$68 z3wh;FaaH?eRr{+9UjS+^uiCp|+G_}l+CNWL>NOM}KF=JjV|Y)nvNcB)o(yG-4h>~q z=?uTcXw@gZnJvj}5ywN??F!R2_mv}h7TTcEXN1Z2QC?>IatN#hz`kEbYXNU5%a<3D z<+%33oevd4@l`zj^WQU@sG7oKLt}2cSfP~^#~6>l1cXj4t?CEyS3Efei^{(6H;nE| zy-brTi%c{&TR$D^A&A*2%7#BG8SxqRb~9trx7>`Wi%|Y>JP<~?%7ZvQAdVkn92WqN z%k!FsO~24!b`|Ig+^;b9|C$~Wb>(U0*{r3+m9l4lotUGw@p zsrvBwNN)ZcDBUPGVMX*CJ@iL+$m3&P;=pZ$qh}P+)e=32Ul~m_voP_LSy*}=(nQi@ zMJ7zv3eT()_$nWtV?^Fe$He<=I<}Z}K+~~8`b|)M|4e-3{I-1)RJKF&H2u9!oPJv0 z*Pqrzofat5r16<-vpJjS^yh5$oUZd7pXpdOXOkA!%-Jmebk4RY=!c|sXPjMqr!J&C5$~-*Pl3e5CWWFlw@D|MyaivFOoo z7&%#cQOSOLvFEhCoRrl+YcJw(O?$EY({sf$AVuv()vU-NJXK*aC~GfkkP01*XAn7c za!{;T0Co_!QW|Fg;!Y3BD-su!rVLoZg8m))At;;!BZR{_jXtK_VETVcYo?w*WIf)X1K+ACI|Tb{LXOPMlG zp^TpPAe;>qVU<)isqGn^#Avt8=;7%k>~MR+52j&cyNwKsjYh3D0CO9>Tipn(B?wuD zXm;83g#V_&w0p$1M1LgbSKy;2?@YhD1`5+fnKTxx!Of%fmN}H>US$-KRpZAYu zJML2BC9j3WCGmeCS>&h1zNj$SnShfZ@|RBhG(LS^Fg&YIYhiP%jq0KTUY_U;3p!%7B-p z8y#Nh6Zw<5tl~37Bsu9WFD=>VZ)g|hJitB$mV7Ey3`tV=pNPsYQrdhRISlPOQp!Fr zWrCdK>acCyy%_%6(d2yT1-fZ*(@H-QANKP3;M44frVCm9O2LR@u_e2O~+Js8~ykQ;Y=%CEc_#V{6k6?5I0b)C`GmTLLN%5Vwg*>X+)E+ zIb++8c6nT`JdUZ&;}VyLQdFBStl;p{5aydZ5W!Xf9-^B`JWGb%J@ejMu^~N6^akZR&B1n@~SNis{L1aWp0q78bP?cs_j;81fbgTs=Y@vB`e;-qT279=iWEIQ-tsyrH20-O!fHkP zXuawFH<0*{(JV0Ys{2D82458uS}PwB<~$I)Ad8^oUw5q%5U zMV}JVtnxGbTtQSew@7?0ulxnBKJK!DI3@lEu>dUX$*cBmohpd1$f|0di`PfIqOXV; zl%*xi>OlJ?st#-TwiP8X>iEosh;$D@EV57DZ=E&WXD;-l&$A27TlhC3jXLIzi;(Yd zx)AF@MuhEoM-(OFd(P?+)|IFIPH55tP*p5U&d>s!#d_8VI zCrfUyryFsjuIVWFnyjqJ0%hNJz3r9&Edqf_KXgQ!YY<4P^*@6>J&uoFnD26RA!34%F_ke$f)%RvV z)OTB}?{9curvYw1y9MmwcHF32)zxbzRkwD{TKH7=4teEUa8=#ud36P#y7Ig=YhjVq zLe{J;Ps^-s%{m9vtyv#`T2@!l;H_CZ*`8^2y%SI-+q-#ScLJ_tdyhTciyQSWyt2xG z%HAihd>5`NJ0q{G09004d;xQEf=)y zX&rtVOW7tr!ykHr6zMh`6vPS)HE)PRNJBVf8{0DN5j_Q-NWS=L@7*ps*m(MX8o&lKJsh-Loc?#m^%zfV6 z7jUE9rMDf4-gegLt?<#?7v+_o#g*Q!BE5Cv4gt_xdDY$>QoR)xdb?Pnw~A*?eRb$< zjrOLnL5)vcFp6fTb78Gyvw)=p7F$}BP(rgP=ibO5R-i;b*6zPwH!6)h-Z71#)XdW7 zkhZW3fV+cGqmGx~%=B6HDu!bX4F5U`PeI8qjejozf`8g$#0Cx?*zbTFtqKdGZZOo; zd+_t7E)-bys=V^cxMJCAVp(jt2ms6EReQgYvP@WH)kjup>WYVDW5GyRrZwx<&f#V7 zdi=UuaaIm>?*~1rdk$#}#{tOee%5(e-9=zAT-?CS=l+H2&3}!!O#he@z04O0nX7#$ z*c(1+JmeKs2L2dH*h~FwS z@`LzY&5sqrLP(;0`2C9CoBSqWKzHN!OMWl$8;5b&f#1*gvDv9GhJz1V@H>&;WBgj1 zIatc?NPhS6)5v^ner0~Q^ZSI~>aARE!|w)u|KK+bV$CjFeTLpdIa1RqMX5G_gwELX zePF(T&a}3v^8FRzm|b?rZ#5u)oFfb9A&;v^e!BtrlN?z<4|(x=j>O7SKapq8|A#4ai^Q$O3xEOV%U5(}4VCjx3;uyi`5% zyA8G4ZQt3GV+-hGPpsFLMH;Ysb8G>9>`C?5K?8PQjxC^%y>vZxu>re3 z#}?4Xo?MUJ)POxM#}?4XUZx&9?16ghmImwzIktd4 z_LN#|cOO4%m>LWD^GJJ6=aJ`S~V#3)1Yf3E6oY&a!nX?>CrqF&t$cG{J_J=Nk=+0%9JtBLH@<@W93%bH|$7ZEg>4 zxD+GkXgu=?&5S1C&(grv_EswsW=6g8%8TJ@X2g(k`QZ&2zXq`Y%#7q!dv{7_M#3Vi zCCN%NBgL1N;-Mp&h}${y8nSPTCJ}bmXgJEE$-JQ|+1FO)^>s8IWV^fU=vjBuOl>!1 zGOe>_wn0i8spd5=&Br#h2h5_}E-O9Se!%b{UajhWKh>Ads1CB%#O{4}EuV&Z!V`fnJCBOUm@qR1abkCDpi~j*}F+XoD zUZN_7%eu@{9ZLN}*hK_9?!)0qbR~5ku?yXc`Dvx;(!a$4WctUPQXl@9I$_32g<~M- z0@JYxBtgf9AS5U)4^m~aRfhIrp1hc`mWK@3NQpbYa_p{X(Mf}jkHCqcD29K3d$HzTA|FC zVi%;f6O*)_3)mAlLhDH`Vd_-tF=?BayE?-aAs}l#9;73j288!gN!z&w`E5!iKgIXk zj2fexUdCr+w=3E zY^xnYp0$OGdULfj+u71`Zrc%2j)7e~{b%N_N=;^JfzF|_n7$@CMT({pQt(;RW#Oef zSolR%Zf!r{5W}@V3)dFz>fm;_kL9jx0<-2SZ(R>*0_ke6tSkzhMA$604j99yTKNKW z^I}+jwRg|dUYST}#$+~SEboO4VD%gdNts#?samyp4K@2gk`BxlFq}j7$vWd`H6kOz z3hx>n&LUm5&X_~m!r1_5L#skLl>LF<%lx!Nm9`-s?VaylB;YCvzpY5uis71;1#6MB z)ecr6E^7zf>^E2i{EN{4dAFeeO%uoL5`G=yn0|UGjs0d#EE`r4hg%;{`>maWcr`2U zSvGmh61Byt6L+7=xMy-y|SN4WHc518n-w-(j=}vEU`nN zy)uhW(M2iXQRpCSq#Urox?`0%bYi_?z(8@?e-Ac&G^w?y!&yRj?V@)zu4Mp zWOUV{4shLOU2V6cw%XD37&qqZXLqHz0(A0NNvq9YSKqUq(YpZLF4CEh*F$L01|;hq zHFi|EA%VP)G%0tDs%%AuiI_(PAzv?Ae)y3<{1JfL+RO5*z5Aqnq{(?yxDlCYN0Z{2 z=5;kYB{Z&@`5wGfqRF3gbKc!Dw#C`=xk{p2?;J5Lm92AP*ow`qoy!l;Hev+e-odhb z&!QVKEzY91xOiO|FPU`V*YRdY_*z;HN23>spK6_I|GY+WN*QfJx)Yz|J+j?U zX+oFeq;%2lsNab%@}|3950dH&cM|WQ3+u?v&}`KThVLXiWg%)<9na{*rCUe}*R~p} zxDB;i2aXl08I?Zl@1-gDOBh=#Ndxq%Y-Yq}0hJQ`f(bIviDsJchH4#Cd!nYx&1>gotL zg}d4O#Dj2+BM`<`dqWa`vim=SHJ=mY>UUZ zEjC}@7Mq?F7=#&t_(FnYobX&t`(iY|hA9Hh|R9nn8#jO+UH{%TZVF7cPp z-)K+UY}?0HtgLB%c!dqfEZkce#BYwd#4*|1wh?8qw@ne@uSqzSeB9oNMGN~7zLY$} zEuoOBgCQ>Z0i6f@$;*2}fIzZ1l`=V6{YB6Ygk^STf@q)`U5kgWF=0ffZk` zIe9S=<>TZ9t!`{ydaFi(;+< z#|`%+*3Lprm@&4Xj^i@xr*{R$`1V!`DQ%2gMl*%ljkt=+BD}l8Du(d46jqi=n&{hB zl9I>&*5+5otb>V7f`T*mi-EIwz4lp3CofNQa#xjIDC#2vnxO24rz`jg_v%9! z?ajK|UPBgun>w9TM7SqTu9F>w_sA24=9bF6fFQ3j5v9F_i!8p4U)cwT@V*Lv2gmMO zY;TDzzS_J$QKbVc{=4QLh#PGto}-<{^Mmkno~s~u{(X7ndAQ>F<~h#=famhOt=YnY z=RYvd#rr(BOf5HfelUqLp68IZ@DKnw&u_dv_cWfP({VH^`zgMoLQ4%s zMVoHJOQ~S?x232M8|=C}?K2nL6T4AS49_4|`x3QNpDl;8#JKeKQc;x5)D(0bC*v_@ zJyxbwnKhI%0cPEw2Wbk=0z#um*B0(0_apgj0C&=J z?S%E2AJc}jwFTXeCwohO&{dqJUa`j(bfy-Qk8hXW?3H~CpW~f?LEKJbckZvnRjBs+ z+f&^c{0W7w6`XC?xw?Tt7uMN{Hz?&Q)3pkupld%Mf_pl72;%v;LuH(FokrwVn|GGo zJezt9%oi|-4>$KGxY1T>&kJ7EQvs;g5%S7IxKgjJCD`4qOaV|YdETO)uu!j>MZNrz z49n9pV-GI-^|RKT1JauvTt6r2{Q8E%c#TQe<1aG2I~*nymJV1eGJYHhD49Rbfxfr- zErvij^8+B-i$=VV*`5%o=gIQQN8zfT+o+xo8@>S4Q=T{56IT6f&y^K_NYBPqrX(nB zPO-H9V+lvwyYO)e??kwAJfQ^T6HuZH7fhoX*}`dD=6^?{W`Ex>@fllop-662H9}4> z_e7C*fhf_mNj-nHlgPP2st&37Z{&#=_TN z*_rsi#qY+)D6Bdi6dm8GqvI?+ zJ3=Zy0|lFmYc#@l(Hre8fuElU`~v*kz8h(+l{19sNJHS;i?q|M903rxylQWp_A*9V z5MD@D8cHdiFQTd3wu-fn9wTLVaq__8cjY7-t6pb3JmnQ{1`vT1{5&~}?b%wF#=M`A?pl-cnShY<`b2O;ED!Mq66i(LF1i>; z0{vCSHQo3k3lGwYQvdO;}`gskp}atm2~%X0D~nh#45V z95=cGr=vA|nm2mkdR!H33p{*oaXBqJijS?)W|~c0NxHV^*SM`Ujm9W5l4vwn0nQqY z2Wbkg29nG*)H3dUBpXwyHpTE72T$i7>;?D*@zFP^qQ;@R-%jtgt~36f0|@?|2LSy% zQYzh3Igd!Zi{%CJxp?8%QNzlGiiibGdVd9N_D8bw3CBSP5l1NPMV3~PE{7n#K#Au` zon^lynB0CzFd_xP{7PQ=m$(wljuOm8A}baE!N~LMm$1mn)_f3*?3V^jRs~1XS8DMc zRM3&$IlPW#XSCb$$7wvz9?9En&0IaE%Jf}v>pW1O>z&SvEUOSdhvvr6GGnOpu0{nW@!%G37hfN?h z_fOHCTANvL_AgCXmjjLqQmzq9wemoLu9jE63|9)Yvv}&>rwV`q$@5ILuu!0y#o_W5 zM21`2>wqf>2C)&4X?J)7^|jl2e8}N2uw(d;jNs^dL~v8%Bs|;wALRM=bPR8934cxY zlca%jR;I#ShUZqr&cwF#pG34BRkG4eUe6$}WW{yV%oV{Hmty?vzrb+RcClN4RmQ8V zVybBrL7`LC=CRFns%l(i4fPr&cWmVnie1Fk^C>@w1z?%AEZZiqP?=>IO-2h_XdYmRGgHbO(i%PpAb)>3 zmTbR*pq{@I`54Sn$+1{A_Z zOK+7|z7AJfx~s915;%HD6k00J(^6s8X=ylaGDBG7=ainAy_C&4O_Ie~!w#1q1xK1K zR%Wn10qf8=fDyzuntKy&^Z*)Wx}XWAS*>-HwZ^(edRyf-C3d7Uq5P&uf7?nIfC;5M zPZ5mtqEiGWl(J=5HjLkIlus--d2@F&!Dw03VCHDc&z=W(9-hYY6jq+u|8fh7=pVJ} z8|@?O)stkDVGonIV1rlGNI5x~I0bSAb|>%fTBJ=@EvpY(4NRMinYEDSM4hrVTj|rj zNbE=aiiFcO+cdsR{PM)FKpRH2>>jIM5O)>7Zl2S>76K0vr;E%yTPe-R^e;VY64G(E zSMC7B;_U5s*j(0SErc&XHV57%|- zse(^{^E*)C8?7ze2QZo2twKfgyO7#49(X`#8a7y;Sb0Qw1@VJ;G28h#V~TE89#(8$ z<#9Z0orsokWQ*NT`}0NRv1Z|ESb z1q>Y?C7Ro+ab3@U7UazCfHW7`IlQ6eX*HRon%qcdkPI+{)j6zhXC+l#nglhl_6+7K zXRiV|g=&QwlU!}DR&90O*hUYvpBT03(tw^2lB+MHhuu|Q&78R78GuF)^1V~IR^cXh zlp4AP6EtYXAnO_CK1o=mFKeTI6a$%V=wKq7Ary{UbZ(! zH_^V;8Q!dRo^^)CleWqWO6+(-XSj!Wayirou>f?2@~XW*P6zPDlVW%aS!s1u@lwK! zD_u?2+^EPFmP^JRM=YDs`mmeuW;)=sdo%GR<0D&zHQJ0QddiwRs&hzsqCQ=NRllWv z=mmb=gwsFC;w|EIEYZ_7X@Pgi zi>z!4#rlVaBUI2yvj2R8vZcDl87xqtY9|u8e>tSecpj{*@=ia*wx^c zNNf&egc^m+p>9R=*~H$1j0$f9;`Xenkam8m$36UL=GpinjlZ9`N&IAi@ysSP6YAvW z$w_=EhPPYRjAKU^t|RR&CZ{(5VH4ITg1gjth?hkQBh9dcfgN~TUinR2*@3;p@o!ot z0$>N^d3Hcpb#@@X1J|;&yz1`2%>l_BxMDN4jDM1?Ig5g9U5LB9^d8_(#ARa`zHt@a zP7|IA=7brG+p*f;Sl$0jGU|RF07e||;$gnuA(GL^-{i%5NR~MiOqV&{B^*x`pMFcm zmA_kBMF#PEN_H!;L7Ybf@n02vmkh~*2QMN8roJz){1;p?l`obpKdd2S5DNfP<#~e_ zVJ%?rVpWJ$gIRB?QdSK&jya9o<~%{9YAiE0G*BaMnYetnmB#x<8F!GATS6Ho?%Sfw zS_*S2*RKas4(iS=BL(Ne!M6o{Z-cd6iXy z>vaQH|3O;^Q7$#BY*s1bGq%w>;&im{L7Lo(Mrs?sg09>6-3klqZKKwtwZ7oBISDcA zhtqYq-GcaE#M=-)yvMZUpFHdPH4BW_diIwp)AaQNlA^CCi$U>+Jj7gW&@}I5_RW@F z)@9>&(834ieZVspJOSs9blmV#edc}#UEOsj39z=pZHeyUfs3k?F8&lZdQAFxH?cCa zzs1jAW~yk+>}T@I|HhS>-A7umhfyN{W>#LccYfN@35%@mB`Ym6E8c&5Y?)ea7}@(s zl+ECCNLzS60JYsklD7Zg@3OT{5mF2va0yZ#&*D;v&jGkEE9p+V<75-QAS$y7+!Ltt zKg?rB73PrlZSc4DwP1KEF9%zqeW_yj9i0F6-Qc2yzT|$;06R5xrS#okcR?3T-)?gJ z3Q~~cwc=dqXo#z{EG;28cM-xBRUn81f=kCRM`JliflU);M3RBjT;1pT5XXl0NJ zdKBRxZpIx+(4q}Nw<>YDfGa`oCqZ8>a$^Ayv^-DH!m1N=coS1!SEp+8F;vn%Ztgy7 zF3`}I;G}OtC7f#W@k;d|(j1sCV7NcU`ubwD8ByrVC|_T4NLzOQlfMqRBD`Ow|cE4_|TymwcY zDeV{6RrZS5KpwjZHy+@^$78aHMT~cYq_s?0}5WHf) zCtg268dC5Oc2{0=iLn+zF)Ppo9x9!xf?>_*` z9_Q!vdy=Gg_s(MW9i_WWZx#ncyBe*^mM8FFb3m32zG2m0f|z(EYiUao4C1BCRl;aA z*R4d)K${xRvtsKy!qE&sxuQpt6!i*l< zA9J_yd1*iypO@jGme0!)lkjn;Iq7H@9`<0g+*4wWFhcAb3Opnec zaa*($bDotNUkC3nY*7oRSx8O*fO+4L~;rxN3hWzw^^6AGOW^;^?{6-csR8@&<`&J3D6 z9d{%ftz3}#%JRx9;!5V+7qtBFrPLsZ1wiKVJR2=6WL|5dzh($tu_M@ME4H<=3i%|( zVxtdMvC}OV0kF~XJR5DrHrnVJ%EhnmNH*F^#zwE27mbZRL`5@bp~eEpM$7kXw3S_J zqodQzFst~)MyvA9Mz_+;5*x0_(i5`TCYYXzqgM}RvlVEx*+!>Hq~2zGkOkZ9XJO&X z{5<`WWIda`RN*Z2=pNIf)c|2jPNnk97>_d^tU;XHIeu4rwoyE$DJQXauU1I*lXF}y zi@oXYrZl!Zi`ZlVP?;TE;pW`YEw+5z65fQtv@fr;%xb2*o|$r6!W)V12{+;^EHk0L z(APn#0|-FY2Y9VUBgf&$FJ2V`+|m*Wg;QL_I6^pfMmSnbM(%c2Yc<=w13x!%sxJNd zn)1r4eknC1zcZ+xD*7SF( zikZ}`dQqFI@l5_|8qQ1jtadT5YERzQxicF3kcu*im_&9TirC9bLu{ zykbYNqgHHdWj*pqip7rpNX0s9EC6;?o@Ym`*hV`#SGoB09m$Sb$=K2L^P;h%hpFgm zkU4&&YzBNO~%cQazXjRiM#=8igi{dJF17QVZ(O zC7(n9&++s0M-t8K=d{vA>Z3OxF6*P+w+ZYX2-X}X7N(qW%~48kjF&I3y|m z7^h=+D>CnNU0UrFPW7-Z&FZ##Hic_TdMP{VZA2Tj^-EAWB)NiI>&E(%93JBL8b3w( zbAb-{tw!d_M4a%}r53eq@(-9yb_0~j{grSQV5+5A{F@!m}?X7^S+Xng!OAo#eSs#o5Zhh!-F9fBOQGIxJ-4>0$; z<|^Sx7v3vZ_;{eaG9w)0Gqg<%>59F02T>w6^ddu_1Ho|Hc+qhAQSL_I58!NW8axnQM#WJ=zLd8zEVg+DqBhMS#Sh0;`n|aE` zukT1>8!MTy%^`WwjBSoo(Qb|?fW|iRy|Imzy}+@JiciKis(jtp#t~L}K_eU!Oi#tp zs|Oq5D9|{X925EkzG}=EF6gj(WdUzO7w8t|*U@~W~w|Xi^63L44QSySgjAv}I8Aj#DiVZjB z{(;KjmY{52Tv4(&U{v@4#=kOOFpG@Y<3!N#%E~kPHwoM~dt;Z(Vy~y;2tO3)18GrT zajpHb(N;Ca6hiHhRame%D zo(hY`QL`Pn-$>z%6|lr!86E%Yis?N^P`ZhVR(?WWj<=jTQ@+?frfpWlpWxy`me8$I zt(9Yh?J7mnJ6e@m$@n7xO;4WJ^sG{iP0!>Ui;~if(8O^pQ4-zY!h%NEiB{=Nqbv>4 zbSki5wfSZemp+z6KEauS3Mp^V;OE~@0`0Y{Rp62I` z6{JvJn{;h0-Sc@Yz#u*j*X{Ydg>S#X5%fhY5HvgnnN4-k`E4XFR(mBT6%L`iN34w= zPkP$uks#9!Yz|ktRopnmigE6VgexkM!>Q(;gzGh1N0K6g_+)`HGpprhds~t%>#IOo z&S~<>C*Z2(94jSz+muWIT8=!=#tMt9>|F`nsotU3I$VdSEdP1XjC1BZbHoXl9M&iN%`hS@A#(S*%e}>846IzP+es zzg4X)lJf&e#jT$Id8LLgkU?7M3-~k8W19(V6MhX4=wuADS?AKL z@V4gSOJkMElU@5?l2JC@@gOZ>6$q0YwF_12etzm(ujN5A(;q65Kedas(9!j3+lADn z7=GpQm{z(Qq0av)aoK#F?-@SK%!GbuFLY?s2Prc;fZ7$o`mBK9IbpSxGfAwn!Rnx0j*&Xz|?ea#Y0bI<3`b244VX%EpYFD zA2U9k2WY|L#*2Y)^2yu_aYq_ADi^r(D|zMfamAgJ#ho*eE=RqHf;;lOaig%{PVKve z#SOtLHnS^w|C`$twN)#&wQ>phB*oHsouXnVS}p?6dCBwaiWM6;yTbcl*%iJ2y-2zE z_00yX_Wsx2JkOP^_5RmNrg>kQ7tJ8%R2BUz(+2@GZj|qJoK|*|d-t5gvv$IXGm`P4 zaQFUKm3QODKhxwYCWxMdK0R1hr9k62(daS>)Q=NA$b!d-55Tg=`FVYkB-zj>4F&O) ziVxz;@Hl~F?iIM<-yoMejUQGU{WTF@8;x{D=+xVbLst`@s=v}yn;(<#F$n)%ou5y}CH5uz^sI_tj3?0fuJ^0YM*?iWzqGnWyEvx#oRm1 zz02IYal^k$!N^17nX}06ccusT074HcVqp0`rE@3!?kAYY@BxCRf*f8@@Em)aWWlp7 z_zTW@8tLgBq`c`i`{0>UYI(!e(5_ST~&*{BS zuIlGEghMJQ{ZoIx8*$&}=h+-_wHPjHS!8|H6DH?J04=z$dIAXNH_Uw;cci{bxgf(Q z<&_`Bl?>083|(I(05X*4^;N=JNMGd@J3?P&#kN+SBA=vK`l?^3*ome(0?=2<^ZF_) zwz04JopSN(J5pa|CDT_uofl1Cb&iU5eU$*}tK@rqm6g4KzDk8>eU&Qj`l|QTSD7Gs zDvmxqSYM?;V_#)-nFQ+lDi88s_f?W)LtnLp`(Abs{~l=a`R-|@7ieAc|3FOEKW)Po zsTV`#@W$YkmQ-hjex`P5H`fmZ@v~rA`wIW=_M9$N*q!m}lct}~0mKe1g*=&|+$OP> zUZkwb%K$hRVeSjK6=mZhEJybO{scCEmR9Ed>R}!znhPlo{y;ac;uH8E$-u=vesuaO z-Y$`x_iJ*=_cEzWN3{Cia7(??9pFQldHfvWqc^FH1BUGA(%Y&RLF6q;o=*6^V5(#e zcHl-mvMF8gOCz(f`1!kcv4X9q!}7|{<7(^aFQsy;n6?Xmw#%#bo~O4dy^N}aMOHmz zrJZ?-*U0P@qB%u^8}$O}U-K$N<4CNhu!g>D1C$NmYzNd_VQT1T1kxy8Ro;$58pXMy z@HER^05uBvo-H>Lo7{*#jW;e;n_rUA?t{SaJhBPT$Klk-G|NrIr!g{ioUi76kr82q zGhgcmGqa~2WK=i~2=-KX{K;COmF|d$rj>GQ;Jamc?~L;Abwr3 zixG5+9leGE=!Wy;+xC1nQf=f7Qe|x<9fPf048LRpQ}j36#iVm<(X&kuxLdI}?|qan zyoaY~8-3wnyr?<77)`(*?6=YsjGiFHypKtnG)aBBv9NP7S_0s_E4K3Um|Ey7Vnawk zIl^O}H>PkBO7xVqxpyIvHur*RRT@@f`xh~6!8iA>xD|0Ajrf})RC!J?;M!Flwuy1x zd1Ld|^**2lx2{EwA9YZEjNh`bHkCG;e}GA|5ule(k}9Jh{wMB8jYV~!v3ww}{2s0v z%LP(Jw@+ID8jC!yu?VZKvA9}Rn_sQb#GyAynT{_cQohKk1a5pGpc`^uD6PE+$KR)I zv>8#n#aRmZWE0OE(iTnxAQ}2Px;--5m7mwQt8T?`l1r?6Urq%6w8`<`fRN*OBIez{ zjU9R*COV4|%g|edYUzJd^lyZz9GEX)xD%Vu!)Ii5UyWND*b=v>`v*m6voE4RB-9CxF~_xdXfj z{xo|sMd1FO&xmR3aS#;Ya~^~E3*1~0%qp4LoGb0s%XV==t43eSFMo(T7OQlzRAFzW zi3N~VlJDt)@VJx23}+Hwb70N#wfrzNCdG6^jt3d##OTX#TUfX=KTn1t%9CM7;b{o_ zy~(f&2pPIHm%?Ovo*&u-Y7v4QfH1dcZj-sAaKj-!9%&o6v}{i-N zBeh?N8Ez}R0F2b+c^kNdMOLENbk(zh(ck)`t6Si&*FItru(I()-Qjx(^04kkB!6Q%Sd{!u1|VWohiA)}<%o=OZc+##m^gymB|Lb~9ckmR}&` zSOC_geY6!sHs zg!ORo$OK@0>u46|(%E>-MXx#EVpRoqLDp{eY}|?!Yn+&+g>Sc_eM`-XwopIYh2-!b6T-@DOgnc5~Zy+B)leJ3A=yd)Hps2vapZ@_A`b zrChCCg~H2WuJwmb1&lE@(_s^d$%5(d6!?`5-#kc5xEv5VN8hgME=7G3*3(ysv>1ji zZK|)`GZwY)+(26)x&C7k>4JD^TzeHXkY8v#FQj8DeT^LKW@8_+O%23-Ya_i6m-i-i zNAo6jA9Jy?vH9U->HbC*?yYQy-yG`+E6shlSHK$XXjVkHED6>3yE|Gt3N5JPbJmuY zfk@iY&jFS`q{r5MxC6vhR0qOS6jn_LFQ@Qi91b7gnwjDv;*ZqPXK!|h_*fBBsbh=r zfF1Ruj;@3rYd7ksYuk;8U~n~6UU^wu4X%EzcC!a`1+f4OuH<>`Mp$HJ?S`3%+KoRd zvP>;ETF44elZ}dUNL#p~2{Y|So_app&muB7=WJlsI64defRyKrXUhYEXF7|8GEe7; z&)t|i4R@q<4PnxE%#c@J0aty;RjR07#`8HFqUby1dFvX&s$18XIBCuVVYq_xSAL~s zWC|Qfa&2m_fKBbaKGrBP6547%_?-h<-P_WXH@DxL^|7M7VII$&cPkMet_%gzwX}WA zGrP>$1tCRy0JTNFsKkf1{B-P9ScN3{TqZe}v0D(YPJFy74xgOC4OdYS(@M>o7nW#@Z>R6hN#tzIEFk<5?AIKmS#Bxm+6sXq)qu5BT(}f&Rrwebslj(wLnCXJr zNfny^XgvHnpqz&r^29!5b2q>piHE|3ha1T&uZJrhULzh}Y&;YI9?J80D6BdjcC?P4 z&1y-ZmD8bxLfU3Tgx6*U(SV90Pp_3rmP*;9ay|CU5qlg(a*aI-)T@yZVieS=Q4UDdC_7tz+dY{ciSmp$sqN^V(O!6z zTD)XD+Lk2okF6PONsv#H;6_VB9)shp3A;hf*FfMs`*uVO%+fe$N)S|=d#rKL4-Sm3 z2-FgGvkMu-ZFrbvI72%aiWWhp3~f)i+T5RE%@@$&G!K2FA>lYBT*=y=fZ=rrzzko= zE05(TE+td6yq(cb`{6x3W9Z0FPteO=^^xCv(U950ZIbl17?`dFK`M4EGpfq_Kcy4C z(&=83R_xu&#@n4K3jI49Kxr&xYaFmEaTPJ0@HZ6}*9q^Yuy{{+cZJ1!!rxL@>})9u zYHxTL4s?q(E5n)=6IggXtch0PSp$Jp@$&(+s9+$lhrIGGxEcuDAYFC?0Rb2Y$gB4L zDjh%zi>y{7D=kSX-fy**spUqit-1Cfha}e?q;2-;7qT`hDzbCgxn8yvH2rwRc(*S} z6207$ARB?r-5WQWCpkiRm3F1-&I&#B7C62;uYcVDJ+f=juaNh2p^=d zh-xVdn(EY2s^aRVQx<)bbZU)6r)JjZlqf={zAvx5KdyA@=3J))K&RwYdoN3MN?7RB zV4_os_jSrLwcOCDnyV3VNOCnos#CALmFbkI@b;XKwzI3R8vo`2%KL#scw$Gdxd-D$ zx2T@8AWADSvuo-pO!|Qz$}5*})erne^<+xSxI+N?0eRKlE7N)ki>%gEJz0rSd`GJt z00~-48_M!K8swVgSD>L|w6d+x`i?P&q#a|*5ALx~`$bWk*?!rjccAz+pHfG_eqz6h(4FIvAsPqq_B91U`fBMLNd#LBip>p7A`QjVnj@bpB~ zX8f2|`Wi-H{*lCGeWcEPrTt;v&$;toZy4W>Avt_IUWB{zU#E!Bv%w% z|2hFLh)*>4By&&3{eL+BbsFe(=f4!?&VQY%63TK%JpZLi>HOE}mi$;;o&UOBGM$NK z=2m;6bpA`ecNju=|K0g7F)1NrA?Lr2B1PJ*Nha0isj|`T{Fi_WIR90bYwh_j)jB=@ zWgJ<^`7gn0&wp7=a{fz2)SUk^UX{h8`tx5N9WDY3?JewWQx0Dir3=FAQqF!@T`WFztO#(R+ER z`pS;IW%WIqB)J_sm!}{;$J}4yj%3G#i5)vnUilZevSWATc1!^5m^{yp32UKtY)9EK zM}u6mV+u6bF)P~&t+!)2WCS}VYBM{Q>OuF6mcqB-%iG46i%Ak6XL@ixK{h>_dm*mr z0sA!xdh?srBw!mvwpRpdwqayXwRt}(Ra%SwJ-id<*mf}+w;j!nM$*mF6xJUHrc;Z4 zCJCvm{$w;=Lh@WzSMbFCLUS+29Z6QgL{?YID_@E$S>2V(N&sXf&y$s~7AmWKB`ZgR zT$7ao4YIPbtq!zHkF2a+g!7tL{= z=xmqxq;vbDyD7AC6S2*$)#kO*+>+@=Sc2>zzE*kNjbwuOIt70#o$0|!a9=sk9yzm> zf%Iyivm#KN)319#Nah)Bg(=XZzaYMv6z=`*NcyJv1bbJ-7WS?R$7f7<5F}=O{pvxi zx)j6jDOS4LRv1lh_h*yI&4AEVT})7#38kEK`3+GOWli{2g~f8hw<#>f6TV$xl}q>z zg~dd|cPcF25WY)cF{i3E;O5fWYFqbG?PwiB8ko<)&nLAa1?9h6UilVWDgS+>PhOD< zfbz?$_FkP1%!Nf(bID2rbH#hhx0a`6R=3MD2c)|^({a>uuVia2BBEhm=S6I-B;FL6 zEuI9qjNIINal;i*+wl92)!EvvzImL>_ zV)`L?d-KFEXKSkt*I#$y6^8W?gqu{L+%myjR5rvErgN1bvcF z>#Qw_P8QDPg3v2}ENWk(Jwrt&BbFF#eo{?YDIuB4#8&bC3Bh_=DCacw~6 zaB>j@abA=-9R*x;>9(DczhG9Eezs5Op}VQCgX$@m(7zN$X4dqt_#BGy5umEoI%{cH z$DG1(DTTJp!7&W>IT36k5wuLz`#4O3{p}84^-}`<9hNZJm7CleYb=}y3G7Sf>Uc_? zI=&Qehs|NxbN7tE)<53OTjoDcT-Ju`=Vs~H zXE$#E!uCK=oGD1*tJ532sMwR(i9%aWJ(h0yvk;>pXGow7IVdafJI5g^66=kXIhYm0TW>T+T7&5dgW!^VZpggL{=k_tGH}l_N{8iAsU+;bQHkFC)k3s25cZNkx^dE!_QJwzi-ec(U44 zvU-!aOjg*`e=P_9QeI02Z;KM!RV#biQTP<{|7Lvs6Of#*@9-4Fe>V3oxFhjZnDF&o zdFB7X6<;3|U)6bYF)>l_Ri4LJVKwk|DgRwh!demGSbMlw>nM|JtW}_awMLPVQqS5P zlCd`9?Y;Ro!BmTkw-aWJv-^$yZhU$Vkheen_f&BUj2dS0pFp@p+1$V5Mi0S*Xx(H; z@%5S^g>r#s|B_e!E3SCq%8qIfz; z_9^{C`S?X=`}FO?8#`1sR|=t{T~;;=9{D}RJ5{drvM zJ5`y*0-!(gJpBk;#W6QRoe__x;i)27b{tNHuItx9X^rkivYG~)5^}Y)yifQkF+(>Vmk_` z!cAwoMmZWv>q=it1U(f;njTDF6ma_De*noyGTzsptneV|$qHXz?uJ(n^7HgX67=+C zd|_kuE&apvr3%Q?7ulP0#O$6*(=uXU!Q4e~N75JNg1(GW;__EKNMD{5``%P$u>k0c zJWpSQRi`hqH-U1A*d7g;_Q>AUYLC&-R%sTtqXB#KlxWz^auEP~BhS+wqoL?p zJod&~yzGrhuToTIM#|9T`h?g4NHKhxJhSgiXb*D8x0Cp|MAxXnaZ)Jm1qY4uS{q5` zV&lx?6z}sgS4Mr@tyUSWB7EGfMTNVX@Nu`_t0wM^y#V^Sn|#l7T2-2zGV*aZGo39d zH7%tLQ)-Z{tCvVK4OGBspnnsV(P8DY5?W)iJV^S+zIJci81$>3pQnS;icAO7F#~&o zT2=No$vjQx0<`z+pQf8_fbuazCr|8dHMawIBz+Vn`nagPayzc{@eksl-paBEmnig6 zo~Mt(s@KQXK^^{R9lEqe{G4dp)cjfS>L zpRgSbH05VSgFDwF08Lq**OZNhg*9bIMQJlN0>=)yCL;x$jQsDz7!6i9+wE(#--C== zK!2_7c71-H?u(6{yp}BdfVT00$*Ug__E(cw?HAM*u$4i+PQ31^ED4mYz2=U`9ZBbv z6M|bxUU?j@1oxbn)<$XUvn2|_$@6qxSamu-s6!X7)aZHeZG5NRI#(2p@2tGm%0x0q z%A>b_LFJuo_yW*d%kvb)%Hu29>M_}iAw|*gunEe=DjNM!MQ#M#`ss}c%$h6R(YVga zq@SLY7fL_h=a@jUaIKKgD-dtH)NRGuA=9g6ZrJ^tvK!#bqrZbuJ#rF3S<9mx;hz< zH&*b*mdgR*vT$<;a7WTp<$|7u^2*ELN>5)F6OS?x3V@!<^Ym0$^?KT7>Ag~4k?L%U zkfp7gNpsebT%@g5YHQ_dWRsMNwhpV*#Vi*A&{lcX-kVdsu~LI@bLkD*s(5MZ6y@Sq z_f-|V1*uGDw^YeV<1I)uajdzpt3{fR__x>VCea&5RWTS(8L-b=+J zpc(SYE8yyc#p~kre9J`udJcJB0~HqINxP*e83bC}O`^=+T2xfM`~)yfTp&F zyzuMMNeCTilDeo}`KrhBY|_8k?L^ZPeB`IS;a+IovHU`!0T7 zo0IrFJ?So-4E$r$lR-e}$re!0nC}hoqo=Yqk=(wH8@&aa7P3$zR5WBAdF5HS(vY{s zR*gcqUYaO0M4qQ1!fMozn^bV?&_z;_@50mY$GjG-tVP-&mV0tC1{6(Pm5#fxmMn=I zWo?x?O6(}3CI3m3=`0F+-T}~(<$3Zp%4%COqE4oBj*QYbByVF+PePp@OpFRRG5SM6 zBgJT_9}0SqbSPMJMreDOxGO(Tj$(3+9FGP5iOF#;puD}m?Buuskz7b_?s~W*wRdHJ zG&hu2UKdx={2%dbib+!dq$$snrmz~NX>GQ3=;BP8n)X)KCv6QiS)*;7kQ+5^m5qer zs6m2%&Lt=S5|rmj(5P9s1Vun;XGzc))00r72a})zjS@6cjD~s%dXPkde&4qxY}=t$ zeqyU9zeR12^rt4jjR7IQ{Pr#t9FxD-WFF{^^UZv!zv~KS|!iB>{M82Ro!K$B86+gag&Rg z{%;lgSZppGLq#h)D@S9R<9iT`jmed#R<+Ua()uk8=kpgF>K&|Vt(D!4Dytg9`FB;d zmCVu!z;Irk*I=w_fqTKha9%GsG@LheiA7K8XeeU~hbW1Ta$!NEBSf*(&r$44)DTTI zxpkcs)#hVKT-pW^N894)%2UPHUU@2h4tAN+WfIMr&F=}Acs&mq5T$>5$vuX4*U!)E&%}JMZM!zh z-kWb({JG3E*R&5?xu=TF>Z-%iQqdt1hLh7HzK0#xk}SU$vY5mQ%$uBt2m?N1C`v>oKf;$ zRr52fSqPv}vixfA0qIoJsy-^*k<9d+2gS3D5${JT-hG{EB<#;a)Ip2nt=1}Jmfkhi zJSfE=nRZpYQhP(Hc1d)z(@cCCS8eh?Uvovx0NeN?5xY^g`$A2tedyV~P}9xMYVn|} zE!rD%J$w)uFQ6#Sr?{eOzLZmY?P^_7-OTYU=h3dv_Po$&AByT4-PP{4u)4gvJA$qb zPO7UM7qj>}f9HepJ?YE7PF+M{f-nJeb%xtx1hP}*9;7AQ0m#(3d%JdbIZTCzcHgkx zP3w=Sg1R=XiGRg!W5UDue*FIEqlW$);pyJ2ogdO?k+7f3(`@f_adU4uonb5_bfrF(h;RdZ%UEgL_iQw5NXnp&_s#?f+#3u z`Mp2SoHF-jldu2R|Gr*#X3q1>JoC)+JX6oioEQ0f^;Gqs9DY+dT7P>W&(;T9fHc{f zJpF8x;VfXdcwPpxfP)>B!7SilgBi>M9^KisbFuIFHQ}?oZZAh$adpMu+nuF(ldN~O z19=|QeO~nmBF$p&es+(L_7>a)?N6;e`5q)`Pc{RSkr#6%`M!WY=++!>xsg0 z#{XT)!Wn-7!b6CN>eDm+T_xGuu*vTTvO|7HgQOX=iC^s^wZ}(;;HGVJkHk%eJireG zNOByvc<0Di;Kd1EIU@LD4w`bR>Qk138UTQ%;kGGn$9p2@Kz9w=Z@r9<>z>2 zI`f`*-hvidy_-RYf=SHC62a=52rYVS?2-LLhz>GwEL=yzKZquSK4}CC1=woB^Ls1$@8?OR10bABmo0cQa^*~QYAVa*$1)Mp`$QP zCQ@M?B>DxxaEdDM-V{ta*$2N^)iusKl2b^Xa)wU+DbBP2$(`XK(22a^?mM#zY@C(D zeIX^C2tLF1GO<)(oS3zA(fx+2u!IrqN5q-oHL$^jOd1kRXtG3B5rh5E-&IlSb9;Cr&^RyOi(NK$whmPb- z(x*J2v44q&1B{FiXiVO4_Y+wyG9Jp|mT4^#oNwkiRroJfjk*<$A@6s5Rd|?|@Vk<( zuZLb_Jhf2|k`H^wogT6_nEiui3(oNwys(FI=6xAs-g7KXKIUDvv^-;F+F^9}Gf?O* zQXzYii+HO3o(?*wU8RQhVxF0)o`)Cz##$=H@Bq<4wBEZ!46-_{$4o9Xyrqj>_`(@s=bHN*j#eJ1}~9UKNnXv_;2a|6XYMnLSTdP zyaB3GLCOZGbh#R!j;Tav!INF_S345vj9qY;& zD%XHN;%zAgpN!JY9E?e>apx|S<*?RR-#LPFxyl`1YVKu<6LrdB`c(DvG4sA$ zp$;xOg^Dq;cS`MY_7{gAV%63c_mn1)S77bH6-1*Q_&ZF{7heRULG5}q0oPa#SK-EY zQAbDjjA>`pV^zD@Er)UdNZI_91mnul!7w{eg%XEgvUFYy2Xz1r%P8R_xMp%09YV^k zma(Rc2IFoIS0~38Xp6*8axD&Lened5o7oY4kCZm^JXD!)pv+aRRV=+vzfOMrN?e^V z{YdqCy2=;}p_!-r;qKpLU9r+}!t^kRY33=oW}eEC9Z<>>n{!-(2|o1-<~y1|N` z!%g~*@!_@`)I@zBvaaOee_$m#T+CO-Rl+!DUejjBd?mSF**WGbLHJ)W@8$tQVC;4I z!`*i`FkcDlV!qsl14J?)A_EbWSZrC{C_X$`TlE0PGAzi36B6{V`%E7EK=`hwC8d^ z{H(4Jv~Rp`Lf}09YWrh+A3l!6g1;vqKh>?HfSthKt6MUPayZ{*syWqJ#BZ_sa|bBu zPx{XFpQNXux(8qo--Wxlcdkmx5a_q^>UZL52=s~UZXL*T$_@}iAbH-}wNfzzYTBHi z?m`?*{*}RhQu}O+YH~M`Ih}{wf38@wpp7AW);qxfVvO3%$Z~Or)=3YfI1*rSg*0Y#CbtJ8aP~y)qsw^X7MV9%h7h zcRCBUFMm&;5_Y~;t@C;hfNwQ@-UkYOu5H5k9S=5t(fGBPzo?^AJe2pKy!!pPQr>5h z$PuPIAyA$?Z~mfGkh1v;<5$gJxZPFr7q{Ku!iKv3dt$p9?(WenReEdpvs^K@Bl-+) zJg4P~q!%qVDcc*aRFc*O50P26X4~S{Y+Kw&_Wy3Brju45{ypTLpcL4ZHBGZsPo03~rH^hen2eESwVKwJ?QGsLFLrD-sUo2WTB@dLkU z@G!064^>MysJnLIT6ogHNc~l|ma6vR=lnHB{EWZfUR=QQAb*|BTnE2Py2L-2{}P0M zz(0!*$l8ljfc=!eXJ4|1a(I+$FIY$Y1JAa`Y5~$^^GI+HWjG5MF8*T%vw(v=oWU&M z(U@I(fSzFfBf@8NIX`zdK=;8N;uh#~iplvovPI7G0n{F*c)IKA z&%lyraR|Sl@H03L96xMx^92TY5!cozxghNkiKcORQlpt-c~T9NGGjFJlDzu!xEjrj zg3ok$QV2#f^1S6qrGk_#PcoX(@}z%_l@T>+&C8Poro$~y=I7jQy({0_CN{h^$w{Sq zsV^NSo0mZ$n;no1^B}kC`zo*?{)@SJE_|zbO)L@XJfC+;xJG87KoNWvV!MbE!zPE;H zWoU70m?>OK24W+%qk?m@Bi0afT+>_8WQj~`nyJ3+V;07Z2{K#CRI8^}xWIIzE1CZK z*$GJdbpBpjC~bJ_m`jzu2ENmD|0bwH_fJ|e{{}3G|8DNv=DvfwINgg1x_?(*{ViPS zzD0t2%_s_i?&W#9SE_||ukjyRJu_zoRa*X1rHuqkbv6{pRc8#Kx_>}286eM<$YJw*eQd<2BUZ03G|nhySN|ujRMsYeX=N*jg+OKUy#7O}n)(mN$8g)zY8g+W9*6Bv@wyAk$+GAOPX?ba zI~9mZcnXN@UZVEW&3EMeg;*{>9i03#NaDpE4JRl{-hS}N-{Zq z1`0XuWpezpIsL&pqCCprsg0Qi zvEtg7GpteMWSgZ`3A`zMbSQ%IE;K(Ko@O{;ahJIPIbuiB_+v_tPxf8GY?sX3kO zD^fPuSGMV7zeT~tO!lP*y2lF9g8DEI>K-dHy$c!WaSROv-J?8jvaeLlll=}`ckZ35 zlYa|FQ{g&ntvT%D`1p+IKCT@Zx(E41Z*X(H({ubOWbz#!h5m=zUQof#kX+dDp;&aY z9WXWYn5A$x&ARc?9~4!lK4ZR+VJFel;!DZ2?LPry_xx*|Zo97gjlpkQ#gfih58xPL zr!A(qF}Z(xe^~Npjn#g5@l@7LX z$Vi%2IvQ5UZ@|`Uh1^U+`TL6<9p1VF(#;K^t8=l79c=P&`8F(eG_H_0<;O-3kNg<7 zLOwcT8KKi#As^E6EwV}Er|2(V z^YAd0@JulNn#Yrfw!;4f>^7T|@K`#C|B1ksp$V}$4q+dDCUC8J9D=W(`n;uRr+WE& zeTM2rIXuf{n$0Wr4dM>U72SyuE^2*ythINYM5Db^N0P5^zeK8JNf1Fi1~>jA)uUm3 zJBRWO6J>KB30U7g8z$2A?U7)S$TeOvx;_k-C`Q|VaWJ`ZAA-xgep zbjp$1C7H5p`nJ(Edd=(G9_Ih=`nF`f&=`jG?eW0PP>S{K8KwKM`6bK_yFp`z zZhiYNGQf#IIAUmSFK!|V^t+SssyYx)=Q(WR=mQeFK2Xt%tR|(Oqq22wYorRijj1#j zxOhgNEqPx&gRf6D;dNuu#bKZI49bPWf4E+snWmTkH17!=%W{X?UX$9>o=}mpo>0Wn zo^XI=?oSk5ZMrzXL51nTti;%09~bw+GFNAvY+u5k@} zBoYg~?$qm0X`*kgx?G=ryRBze$1Mc5wRNDxR?6&csKO31aqdwT!i@&(roSbMMa?bG>t z?Y%6Z9A2axwQp#AX(`ezX?17{DC&@2uuh-{U4}=uBiA;^Ujf($KEb==!Q`=Wx=nt7 z!A6P?;%Q2n@7UGiMdOZL<%CU6msg*PE1O(GHmOZ%9IOR|P0I7unUxAswquvY3+>qD z+OeF?4%@q1n@XQBx}BBEcDJ_d?-#LrEyLz5(jKPiT*EUj=Ia~cG+$3bGAZN1L| zaGv#_vup2Qzw?(9K7+AVcNklT^R+sC8{=itEM>BvK~!Y#*63E?fp6-VyCQB>)wFa5 z+jX@@H&c6n^9>eC$Q)~yy!uRB&9Ro0DBT*J5X`aU4R`OH^;1d(sZcwBS)&ttXnA1S z8l5;FZhMzP)Go$UX3Q5dTne(@q|36lJe$_&3dEw<=)`KiMyLIqPaz8y=GZ&45-4P` z4FJx8^1wMzb5}8U4sNuTBytI?Ng|ix7ZOo&B(kc!`WJ8|kuFKZ%{qlZBJzg2AIc=6 zRFJw1Qj&<^EE1&)1?pBRraphQ%rdeZnpevTOtxA^rCbUk)XMWN&Fx9ddFy38wijZY z$zU~5$RJ%WbNjW{0LCdsbJsL?E!@S4LR1h%RbG8{T!~_wMA1U64`Lw@g*;CbO0`H) z+?tCb{WiC_V)?{aSsSecu^`qtEp{c$cw;%GpV%pL%wETfx&6o^h=tH{ihOS+%(!b@ z3G>&rY)!>zTY;(PwnZ;nQz2-i{?$F%z z%v~RMaXJzebTn69eQjLnXoAG>no$%29m(@_q*RO4(V00bD8}-aVivWoWelK*4Ir6v zfFioZ!JbA)2q{9ox2|O@EP7qb$XbD#*R=}F|G2ItsVp=mWL+z7Px*=xQ5x5^CYX*k z0!}@0>slYto+V!e62#8kgm9vyLHs3izijSTa2MC+iYO}ER9<~!T&b)_0&^{l5U5O^ z*XAk}D)ZZ1$H#Enf7H zM%Z?@$>nRHkjv&Mn0ed7rsvIp1@RWR(SYn_b#6;l^STCp(Yz`ph2KhEeKTAYzE6dJ z)2IkR;pKU!%#;dJ4X4avWf(tUi%(k;3=EJCYmJRoMu*n#X$VpDd)mZfY*do1mCmuj z5MrX(*u&Tmf+2)FPY1?E;B>$cLj9iKq8m}8MvJ~IontQV0@D#L2cq%Y&RP~4*Vt}I zGJM3*qMGb~4!*}^zYQp4uc0ThSGT~4IAA7*uNCmM@>-QAmU;V0fI+8 z+sUhMi!1d^l3Z4Va1aZDdgOWP5laiHr{L*aap9OuzDd*|mTUYntXI5fjx6T#c6MDI z!9ut6HNRmauySC?x4k^a7y6nkzTDOVA<&n+;qG^{jljlN5FV+ubMz%RLq28Rk(l93 zFn$(Hl(c%*>1vc#dce-xe{Wn^_9*xZ*!6<(O2P||0u!zb9R02V0^|(-YaqHE_$!<2 zr=h_-U`_k-C33zKXe9FS;JzF&1RlLbJzsb|WwMRYd(Ad>BwBjs%GPA?O){7O7eVcF zwOzY`wRB#LjD02Hh@%p&gXzo|-x^&_%C1%>mFlb; zCY6|tr;npkJD$>f)$wJUtCQT7`sd$kfK1Xf=5R0<~ruJD;6DY$hUAy}cQ z%OCE3I2#R`7}~;XAvTUHd<55=QCYIiCtb3R7G4IxKgkZN-UB0)DW6XEBeTp6FKE-q) z(l%ciU8Be5tA>4w9;VW~Pw^6Ds%}(mofMS)R1bE*qIT!+jhkd~3-#Ho7|r9n{JQEBQ8%Aa?Gz2q&VzI?i|Ss+*CJ#`1kdkM{=>|H)cOMK7{S z_bC=Y8#rk3Cf%&qgt3dRU*+>w_NK)V=2KPBY*@OnRQmwUmu>`cybiauNYm-kjUr`B zH{vqw;|@@8F-tcR25shd<<EG>G6oNKWp0{+PR5ZVhI~M;=^N}sx{EhJc z=N*eGebd@aRI=h8>H_AltF1u+#Fy zxxet2a;(yrE=&njn(L{j`BILDX$fxtL*GIDlx3>V&|1zxUY#LmYc|@;s4;=o=#R$t z;Y*WP@Q(%Lr#f~ru%Gbv>X=NT9NuVIGR7EJ+JpELtsWf+ih7jpSG<$-G+2XH!g;uh z+pnmkbR0E#^$1rT$23`8E98S%2s#dV-hM@;qT}%QEB3o3A>|ju2jMPiNk}cVUomDJ9*VImvYPJuv9ZCi}Gx zwS9FULG0Ya2q#L+X;<9%X&SnrOB=8Km=JEst6{tQKD>*uvwOQ2=>m}2rwm00U$-~A zB4~VsH(@)2ZwpvI9AJ3)QXKN(!i!F8`9{xZkM1B@bSDn)$1LAx$hQ*i&+1?87+&~V zh@-Qlj`rX=dT5F}x%Wr>V%DItarHtXuYM@5F6vrV>eW7mAQpn1rSgWmzm#>uO2v5N z5lHFep5U5@Dl@y5qN`;<2X(?uKBmc@#~TTEwG2);iG8ulL0j)e8zP)egxYmzf<23E z(RsbJgO%!3rK&`KYX#iV)zPn0>|N~~J%?&%)Pn<-NS!M`w}7X7S7pWRs!Y!Zbum1U zT!-5_)$qTe_lC@_#FngLyfq>w1uH&{h<$pp8=Qup9;P+CSF?s}{CODiS(R8<;4Ay= zC%bzF*o*uMXG1=^E2o(0U3kidGJ`eFz)>$4&Fo=JE+mmYZhlHcu zHKLycE1CmN#xJxfN;DBi%c~!Ot0rQ3Y17Rlg`kO$H{88LrcI@S)D%c*iB0g@o}AxiZi9(-k9%e?3b^b@|+qs~fSyg!QMuHy8MC1!=auD8%fM|(k{!zt*V zg@=wEZqsWe(}V4MGX9NmUY^_M8Z$k3nAWfjR%VStxIyWn(pUeM4SU*4pSO+5zE!Bw zd+V6prJD3%@;(MsXWLB1C+AA!6Oxkv1o3gW@pC5m;|aR2U+;{tS#vjlh9A9tm`@k< ztig?RY1(H=+s?|)kBr<2=AMWfPEh^3nJTTF-M8Qu8WS(nzmw(FkHuB}n<0(;&dfmw z>Yu#f?ng3>DHWt{g_P=_;L=6Estof%l|-6R=FyiZL3nk*rBSY!auK@bvAn6-n0H{| z-84zr(KuH=d#Ppud7eVKK|^*3jR7|m!x%S?Ikxr;3d#Fj57QbxD^=N?jr>Z~+|nrY zps}jnkNEFIw7$22bdylJQ_;|YV-@em7W)iye}Y@6NwefeH7Pqrd}qq5pNgvy-%P3L_sTvNf?iOb zrzWL>l&OhXved+vU8Y+KvBNeDWo#;<{fxywbEf$;tL|a3dQ#y`Pgb%;>B%@ZmeJG8 zzMecxYxv4SdipDDs>^HE(^Pacqft*1NI87f>1lRt0uAl_vw-FAST-$3|Hj73(MRh1 zR-zuwDiz-VI)|v~H-OGns^S|!Q%%>xcP`=^KoiMpq;CLqmp+2`WxVv(f3R|M4RF3+ z^E@73rm?&^gGmsAMI z8+CHVd?CXXu#d4iPOPLIq^U%sa62l|=ZJwby1--UtrC@iPpDlxo3X{ufbv-&WzA=S zRu`KoCmf&^C3SfN2iTW;RC?Mkf%8xD^hzS>cm7&P{qDOq6teH|SZR$)`W+r4xC{jC zJ3PwT{|=8m>pMJp{WUF@W&Rx=X{+HoJVw8>I-ck~wH_GJcX(9HL=NHe6_z~mZ}Lnb z7I%qFv-?!0TOJpIr$5xdjl%t$C(a||9+H$x!RU7H#_#s<#@Pri{0d(V>YpM}EsQk+ z)s00gz7#6)0wmtQzaksew4G;cMLVu+>`kB@jI$Bf*uklcTPCMl4m=vvy$YKQI@n-< zKdIy5@DYxiQjh5Xby14TSm!;`M1NMszixbXSqAZCR?5qj{ch^tHCnU%FE(7;K#8=w zT%ytbmtV-QUyQ5$FQFQu3yrW4+W#Wo8?Y%I`(JFp#{L%@urUbhUztQ*ZG*F?Gcr@R z-mlh|4{a0>8*LTk;Y)(bq1_Fh>|luTWV~=NrUyB=UDlOaz8yaQZgQ$tk%Y?Oa}^GWtJ_(1)kxyk4GX!( zRY!8Yk~ppyNz4*g^NhL>j3nd@cYm5KneeO?#M@umw!xI{f#LOTypNv*cC|TP-Tzkz1Z-VEzrj@;+n7axvO;XT5*N zsB%_G-wxKddZsZyTh8p_W|CnSX1eZM!M_1Q!+R^9eI_`$n-JEmae8%7O5zlpkdv^N zM}k_sFZ?f-C!2Nt%evK7_zNW8LPP#vz?bVnccP=(m?xNoO|;At{y|>3A$pkB@I8%4Hc;oq@5}rj z;J+j~&@#Bjo|sTcZIbrv+`(TwWk1d1m@Ssx3dvRquE6aBFG_pcqJMz5dU8x{t%{y(2 zns*jdy!Vwx*64MF&rsL%_h$v75VLph(PyjZ2OD)ED7rlF z+t^A4sr4Xb%_2)Bx93#ee$xSXk+{5g7KcM%^k;j9IbBu z@+wpO98_)HhDpjxfCn_+=hJ?GfoQ&;F36nk&-WXyYjLp~DzlZ)iq<^o_b}x`TC)|$w^L}~!oU+=^Qi$wo ztI{_x#!nQtt(+)fnZd*}r#H16evf)Oi|-hI zs(APx%h!Bgm3Kwc(c2_JN49cZTOA_FzkqP;$=r8w6S2zo@o?k6nEu`~fMQrNg7|#{ z{1Z1_Py2viw8Nq+pK?W$|CU#O2UnV0O`5z22?VhaXi}c1Nu_GiX3Ei8E#ucxO=7WHGqctR)`E@yQFtEpeaVlAkbTs5c5N=)&i@afT&G_e+=e+*dPUDzmR#v% zR~tNBFuO=neeUErE0%u9>iaCy?9$7) z?Zw)8(h7JgCvw==++z#rHqsd;owk5qNT%8XUjH0Gcpoxlt~Pj$K_>@wwh?5|r3ddY z=oC&10W|?=B`9Bezc{><*kwdwA!raL9F z*A<+@A!x5CT#!R&!sYKMY_~w;tXIatq%>(KBHtb4X&k!+zNmWW=Ji5ow}5=v+DuN?>ymkYF?dS(#Isys70dH>!WvMX{IsIwejaU<$GShMNPR{`?!q-&!U zH;5kJ;UeF>*vR>aTYT7}c@Qf&zH`BDG8!jFJmumz4bf4=5nI>Tq(e2sUb)V|WAI9KBTl)-Tu{`WOV=9j_G?e`ea~WZy$TURum5fpOS%j7bd2M*BSrc3=(3^3K)Wz3z1yEqYu9wL}7uRaM^A{dYe ztcJ!yAOd-w2$ZTx1YYTlrV;CCG>ZaJab}T~{hW*PvWo}LCYG~rht9ULFAIvYAEC0> z?x%-Kz5s+Jj^*XWGjQ!CNV1|m3mU&+t+E5mH1G=MhPdHWR-+d&9Z_D$Wo3Ew)mIthq=*FGK( zq)o4zS$dODco*Hz`@R01jImij-0Y{#&3-mE@JfnU*}Y%yNnoW|O4SAvG8DjvM^Dm> z1hG`asj1(gF87jjUUgpkG^ymg=3~qclw)741S;cI8HE`It#uc^A8LQ|Hmo~!fPok!a?|Bd+DM?@jI5c1^+=%qr5+iE_I&xEX}bUrBC{ahUV3taP!L+8Xavk zS+C{tL=!lsL8NdUjK3%PJ$lrd>;w3AN5z8#1~wqMt=o%zeLZ_XetmV^ad5P*>dnE5 z6APg&6!M3=pUD=Dm5w?1A0VbXDgRvnQ{ueujq5*-Q%-^-Pu!4 zwl_cAQ7>q}Y2ofv);C^%gLiT>UezC=!gVXuyRm}$Gk}WoH6qy9I ztx-wx6(B+E+zkmQYkPo=1X#xdY%IXK9$*sz*2@8Lkvdko@Cdrd(e1XKq98<+ z0g%GSEYSAmnSJ&GV9bI|d1$;tU|llRca{&K-jA}cqR^6^$#mq9Du(0Q$ksz-ME25^ z(-dUVH{9aZ;{4A~oJXB3b{<%vr39P7NuZ0_u9!=RR(c@!5?9!jY~uRwvn_EjIGGnvryzyH-KHYbh-reh*WQ+7 zqn!d%aW6|Y(71}9_CdYKU;Ed!ws!p}+b)sA9|5lAWxY$$FN;r4SyJ(77!0HK_)=h3 z@%QSjtRjEslGWQi`8bx~(@N81CYuqCwsK3o%+W{No{QD2{%sD5`u8NnYu`xQ;4OhA zN>5w6mBLET7ou?8Yq_uIuiDxz9|wKxx#9)fHhEnCWu2hmz02C}8c{=4+u}_LpPWTy z*>^=QOrl}lPBmu&4Rc4kaUMR&-U2%yV^zdX$ZP<=Rz<|Ws>s*n*SEk`71=;l=0V|pf@5ww&>j>}3M%Y^+Hgla7dnUdC zINdYxO@efolUbKro?@(Sx)Od-dnR^9Xd~^JSi<(@tl_24_DtLlT{alJD=Bp+mUp~8 zIXGojE-aL}V-7ukT=C|0=N$UbF?rm;Nbs>Hkeoii4bMc9;dz>vtjQ=K*;N=eKPbcM zS4~9%MQec^V;AbU)RkxtE`4z?@@r$WtpJr|JEiZn26PkRvrC%pP}2H7RF!TDdsq5gLO;Qjk)cs;WafF+Ih2Dz{~?3+V9 z#arC)3|JW59{rJ>t^EfP*Pv;U?BQJ(ibY2v;p@nrvwbfZTUz#9N0Ly3j!XoZ zj`mJ*d?hOCkSngG=TA9fG<1+e>}eTh(|_oI?IjXY#kC@pnNk zEdMBn`qlBE9O`RD6dJU0p-EpP!s8|KpuN%)tt%bXfT5#<@v3ghZID<1(-BvscCZ)!~7}N+cL`I8R}fhwz}n5@W8$v3oj4aUboeP_TnaIze!9k1ATpx5@& zXYKe6h?@qktY)k`vApBM$zfr`spnANL=@Ldgq;a&tJc#`(QS0IjADpKwXY&ubsefe z(JdhLdA}os?@8thy}p^2L1FALZhu#G9${0hT>un^4voZiwFjB zJqF?ES*B{)2V&bKCozE(IB(n!ljz#*+ap=q-iuK5_uF)cB7rQ?PArpIeX69 zjdgPQ=Qbw|H`tuf&us2ccv9OQ6DyIV2`36m&bgfp5zA{gjs%z5&kqUa?M6#UcX?7- zX}c6BJ-f(wur!aq7E!G6w)F8)#8}t{j>)0E4JfX)+5;j65lbD!iXC2nHH>aQ*|p8> z$q#^`OJ!o!+Hz}1@G}x5$0=G*ay(wz%^M^Zz?u_}`j|>ez2d0%Eks?Zun~D|W;R#k zu#ul*1`5*h(~r2eUo84MwC7BR>*eyxbtow}=+MfP>2Q9k!=s6nNK)wVScN5>T!+Ur z>hMS4QXQU1&}#$MxBP`)R2y&tq(*K7-lvRnz4TcdaFw(+dVxmqv;mfPd=fbv?*9#sgIW|7_p&S7BN(>-+a?mXN}VeB57SVdU;(|&b}Sk zbJl-skjpW*18J(k4vchj6NN+eyvrz)%x6FyyG2`jgWQ%K>}>odTmHt|z} zo=t3Mya>N2n>a&qm?aqmrQTBO(oP1t%Y`?JrH#DwnN2*8tPtZ$pplg29iK@K3){rm zIn>j>#dZBc#Wf9TL?I};>M4{ew5t9yLR9s0@v3JC8yh4Rz>OSe<&||dfUu-z%c5*b zaGug*QR1<>k`WNdrUb74_=#flS_H5EaAmTnW_65=c>4SON0Do4bH+e!b7IxEIeX69o{e)opV{1L z@Fbf%i&%+7NcbFuCBod!&LWm)XXk@U?d(E=*qIymk1icWSvD~q6sH(>b^^Dq!;;1q zfn3;3F3F*O({Wi2^^Hdq%y^h-bF|iVr7<;)?VTpq9 zboX~{Gz-(owPKFF(|E4sxK03C4y8=Tp8~nX1U_{{I9*5JR)O?1K_$6Lsd_Du*CDyw zExENOHwB>zgkA;9TZv0lNOeeAe{|11MSoP#NZSS@m$wbd*w?i^OV@J|z*lqmxkLl;nd~@$c@K#B)iA^3i zh;Q=KGT(WawIVJ14!V@%;!W+LLhDt-{upUfi-w>_n(vv`#kUd9>Q%e?H7kH5bB8*;Oc$Si}-pW z^b&rt$5lmVD)h3v`YX6P?zf>*(^v@YyOBTKy`X{Lw(xI2bxVifoEV8E{q!!Fx->G}b0f1pcMcT9G$WY{ zzMt_6S>(@oJhx+9g-I)pl}i=p1^1;AW80+5ft0@!FMkQO z`;7lY!ukoWb;pO*=kcKHFZ2_98vm&T*5gkjkpI;Ge*+k&wf(hsDZ3oL?0 zYt##U`(hV+KUPk5H9y=^@62|#aCfp3ep{?3_s(o%)WAD40m7{t-kFUqEr5s3tghWh zwWO|Tfvt86b$mt;{|-=cFV1k=tw3t)vjP{yzX!mFV$6LIH{1mJJ<+=`tc^AQz?WIS zhhLbpsIvt32YL1Tadj;6OR|q$$&e4P0ODAryy5OwGxJa?NWBlKnYuklhy{~KVAnAl zO(WLPcoR^8NN)mi?W#sx?9ZO0cOUF&6c_nDKa=MyUE;#i61z~D2R{S~S*X6y3h2EE z%@nX8egrr9R4;{H`|>o;G(=arnEK)&4a1`VzZ2fsfli*XREibE3P(rMMX z5R2xwt4T@oc)StG;Kfn-lfgyHH8rAeQug`+X;0&|To6A2(5@#RxX9%2B+m|NTr&o8l5t!sHshg@8NPXBhSh*9 zn&F>VuKzp3b>+>rf0W#Kazuhl+X0iIwF5MVdT<*d==FykCnmGz3#N=m!#K0b_Lr{; zhkA3WcW%w~`+Z>l;qSd$lR7-R>nZ&i{1#?+&w|44RscYM!Gl>x_$%awb^IBC2R8AK zskp1-*Dxt5NpvT%2bQ`J4{ekRAA)(LI@Es3UANWywSx zp}hKYxatVMB2#wn)P+z-i07HIQbEd0nbT^{lnZg34AaHiq zhy?UZ#aJ_*noXs^WOtFt0QjlRzZCU0on=(HJeydmv<`8$G@Ez@6gKfF3Hi7U58*8` zhxTw79rpjlz^?)B4L5^3PNx1lDOHp1 zJfRy+Bi1bR0+ZHHPv))2a}0m49*Q4N=G~>Af#1qx{&!Hw{BUFP9Uh!;se|wG;DoD_ zVeL-1vn}2~gfij!m5tBR2(BvJAldf>y&WhTQ@9e|!9!4Srx5=Igl=UJ!qu~lx*&E4 zkp}mD!j7(Ehz9qc1`-QF{DGq02DL@K-d6E6KmE7-`rEjAy}haQa*kytgkEpU_Y|Xa z3%%Yp#%T6B2fnFoX=(uT!+OG{O|C`Dnp{0NmD*`hKSF)1~A1 z|BAovfoN`X_Xc)Aqpnp(PuCMmPl4asbp0VHbbX!p?p=Fp;C$8wSgvwCnEueze-$8=)4Qa!7&a0b%0QCq$w$DXyaw#Gew5?#@)Ta0L=`RG`o0)jz^j z1^Sv4r56xEECdxuo~I|JYN|lhON<5OU8}Ho68@7hm8J$_$`zQc?G{!X-3c;mPbzWB z=UpT7sqTBxd`6b<|IBA9;(HrgTeA|&!-UXmB?Tt6670gO`{yI7%lLbBU!u(IAsb_} z->_w-N?S5_l(~VqW!&&Ll%Ht;XOn)fIdChme9k*ijy}*RwI?JaJ|f-xth>TD1htLX zT!p0AoL)!hKoz;A1^?*fJF^@5XcQt%L+PX|fUK7nw$ToHZD z>sP9KH=y?D0VHdm$87Jdy#=BYy^TAzy~EZXRf&|eixy*_B}<)EEk8LBTIvDQ+tbrq zdki8$+{-r)wMfe_}aB-h=It`NGmLB3bzl@4My-r?E? zjdxrFYqupCRinl>qlN~yz&Ocf`^n#WFF#`-CK_a^rswM>%ZZ?n<<-X7WFFW{k6Rd| z^^fi@$hg1<@f3?Y)!b!pqkEA_l`U~d&W|_EVl>C*^8!lq+f0s{b~X+g#TW}P%gU=y z!qw*UEhR;5e&gPMKx{sj=Lu1%AZ0@2aI^_gMrB82jHJ=3G>Wi5q{f-a@YT2Sxu#gi zWtg=$j*+GA;(69P+=5KCQAVP!S=c4ui` zUwTX~h-U$^dB92vgzHjS#t{7rJh6!%x8j-}$E(0u)AM*^)6)(rJG*7k zYM{{B*Wr?7g*AAJ9>nOAH3?;aKM1gv2Y5(;ssOd85pdG4VC-Ba4F5)VktkPQjnJ~` zb0rRMthg^1TMMXeNt9`^ABSlF1@KYn{~E3v10Cy)f!fVR6x$7d7^WJ(k0_yLJsq{x z$d|=MvDRT9|Eg|I){fLMiy@^J)@VH}S`}z-JHav0b{9_>-d z>bmf}1N(G`O;lT!;ExzedbN@L^(^?Tk~<9-eoB%TN(&U9Pnzo?z3XsxsdaS|4RfWn zORaNVSa(T&2O>Lo`E61ru?SqqUk5mNC8cfryf`z4Y3LC_{2KCMMnD!(h3DjRLNq{z zd$YimrhyxU!^}i+rxKUr%K)MPXYK)HLNWuC6}LrkdDW)8+?&z5Kw&EmJI9hX;d>3u zOEr62o5l`Y#C9UA{0Ba9FNO>>-2GQpiK{xOGD23Lx~v9-EwZAq62Bc$1#)hONr%h3 zFU$LjO0kSf?&r-86G`6BJAbR!0kx)g|9c@@{Uvh!_RR$Cc<&MKR-5Px7KdXWqhyo6 z_v1a9o=<$BQktweO13v($6VL>`#)Jpg!PJ!ZUeXG9NM0(5tTGM+W795Fm?;|`oz zrB_{eXgd;Q0~IA6Zu?BV086~gk%SC)q!YK2go(}e=+Dd1$|=3+aKvbB7CPv#Hc90k ztgc$(ngiwOifGry*$J|AU#ctDV1s~mBr~Jy1PYy^J=qCd+Met}(8dmKU;j>~bKw{D zPQ7)@(unWWJ4=s~$If2*?49}vz_II_@UU3Ro1O7uPvVPyr6I+h;)v=gY;{j!)=K1~ z-CM#$w=0fH#FqsAM`a(h+XQPZPe5bs4iXGGCx zYG7(fI(a&vcjVm7Uql$AD%z`h;O0iV<6duCR{o_AHKls*5s>G_4G=l?Z+ zR_8Y5PIlvKZ`zUQ431CEDs30U-!<6hv=p{wr&ryj-5GKqh;W+ARPQ}kp$xks>)Irf zUpc7}!O@JyQc7-+nGB}31mSR7`rz>EIN6^4w7uXwgOWwck9;!T()t$uo{MGD2JB!( zvj&WOXV;dI+ztWe$*qVk`HIIK@%1YY9ZJ-!^-!|mwq?cKk}x-8zL4QJ;BM%!g`zE| zXs(eFvS?&#E$*eQ?L&2Kl-e(AZ*<2UdQ+R`8Z>y=j?dAT=#t7w9XdfvlHggHV*w~f zY>-R_=w}FcYFP8Brn5@Gju-(pe+1Z(&9FTkB}bKOslkV(@Y;0VP9%s1gW-YUBPy2wMz+k3D zF+1G0exV*AO+Cho<-K7!?a5|RQ0q;sPq045xV)anSSvHmB zD`ryiX8t+@q|CyVo$|82DK|DhG8sEM4wxE~(YeyKGwHbw9mZ+suVl zDJ?hYv*sfT`FKJW+Ay9l`q_A58@SSV;^)LlWFmyGR9Gq{e6_;T3*pNYmgw?v#tx*; z+u+9fbRF>;>swKOt_PRapBo8!^@nTy;9vMf)t}uZ#u4_LyK(2$thZ*~xh zy<*&Xn>fN!gmvT2oybSyPGOv_t3*M33ohf%ok15?&bU)pK2%Rrk&QbANp4W0UZd-c zJB& zW&}GJYxhU&=cUi=;Cbo?qP1(2yA#X1wl7qYd&EZU+&c*;;+1CQH#vN`Z9gIw`c8gZ z#E1^m)b?HhFd&hw9;S9D7AT59%8W!kHW{ef@H#@QUu|<6_z4$8;gjQ z+Zbca`#?5~I~(ope$dYDvT?z#>`KhjxGDHEbS62?@pIZr8zIsC;ol97SU+da0547+ zB3{331ZIODG-jBVY_xP3Y`M|W=tL;?Flh$C>`CJz-D5ce65obqt#0KkCl3>iy^y#} zKN6+4Zu57#ppv*s#~9=R@a1R%9SXqaXXZeEFuW?6jRI`hU=d>=W!TszXENE79fu&} z2Sto6ii+6nvSj{pB)rXk3|KBBje}>`juQM&KAiQ=!~3M4a>Sjy{@IVGh?ds%XOyBC zGaX=dBK)H2`j5zGq`JOTN!#4MOKAMwZHwQq-R)ffos&yr8L1XuWnTo~Av zJTJB!a7lpCWqfI7Or>w_F{G_bUHfRf>Mb~I`L>jbbTGR&0{d`K@@FNd=81S!3sh{e zBWO29>1zxk-x2Q3xVgrS#BIsbir;I|skgS4nWjz?T6b`J5UR*jS`n+RY55y1j|;nM z%A?wsQSDZASKhq7A14Vm)py#jeiMXnffvM}jL znXT)C?ged;2VWgsnwJ62CZ@ZjYugevN_A{@?M&tKN>e`bL{oOIy!wi~4i$WM?L4J< zy(!K2g@d2%QvXQ#o09%kEn9q(r;xi9sNJGDF{P>SE#Ot>i@xz4NT>DXAIhbuF9({O zg)iz$-`ugJ&erjN4sRpXm+`jeJo3`#^+kgFgg+Lur>if<02|B5CwW)Q^dV2QM0dUaeC@Q!c{F6vh_^hV-QakPq?U+ zO-AE_=niDlf41UPqQi;fwzqvm4AnewQQbpWZi-bZ-nMrp{}wjoLSf^g-}*@|(gom( z)Rz_MKoLl(Wjt6qdSMO!9X+FOHT3i#l#sy~AF=r5*g2=G6yj1_b5-W(UEUwAKarj| zuZ)*TJ&ou2VnnLHUl&cjR;IKrTK0KelurD*XwO;SJ1^I9UKeFW4Rz7zXKVJC!jtNv zG?B<5{Jz4{SY9u$A{MrP4c`3!fbi?(&9e2`wd;lZ*vGl`mT(o87+EVf-#RJk$!db( zS5trW)L+Z|bRPeRi`PHXOeI)B-Jue2qbuPkV1;6!6I?m^B2c#|K^oC&NF$3h+B4LIa8xS|h)+Xn zEMt`GiH^zfyc66S-fGYczlrrllW1w!jzyfglR>cMiy(%vgdTblJq4K|Jd_&3QUDV< z$ZVX#T?$JEY2NqA7IdfTHrVaKCI=Bp&;GX(aYYdC;8&L?K!aiV1hsc5MbbyqAa<@O zNACfh=^)8?A!}_Dh&RFFIoIN~1Fim6jI%*X2`h@$t!NXH9*Zrm;dX2T}4vwlo(Xf!cLdM2TtgtcJznY6CKr&V_`YbsO zYblv{4q~Hgt;ab*_(!Cd7N7%c&$=u7EyROhZQ|#T&%cTk_0QS})?k%=-Uet5N@L7J zJYDqeut@-jRQ8{hzUWo%FPJWQpAqnNQa+7hWHXwF=j*?ww8D%MSjx@luF!E#=gWT(5p*!P<3bSkk@JDozXuv0x@r((3H_B2IMgEb9c zvJ4L4Wfh+8!pkeXoWh>XK1w3S3FXou&^XlOB%+?pYA(jepj7<^4mN9f2C*_=%NTBW zHFlINt><3D+Ogb*Xv#JGWge}sF`Alyv<}50lj~26B7cJw@;Az!{3V@YjdM?%zc7IK zSp8Hy17!Z*A!`Q?YmzTJ#4`D=K(LUnp7M6!dLa(7wfthy3oA5g{l^Q;ZZQES0!Y3~Zn(Y~_y1>y})a`Vk&!seIt179Z6}_$6zq&~D z8kf~)Wese{0TjL?&>Sv+5=r}ku3p<*$4^8P*R@pe~*5+@EAJ&$EX zlWCHZH3aN)IjrmA2^1|YFwWWzMe^=rfysxJLzFP*LIJp77dj_A>7=MofKGCPYXAWkIJ+(IY|L;Q2vnM4>Zy~B8L?`%oprjWbc*f$Q)M0`#}bq+$fVD=5T72SJ{rr z;S(F+N9S;q?ZrPPhd1i(*c{$i8IBYD+l_o5pTS_!r~RWG-pKn2IlPhg6LWYY?N<4sVs1C53pRWeaU09@W8m~Pnqy?+m$+&C z@>8Ou%1aIVF(IgPDw zIDWYeNXa#`iMFDNcT<&%l&sfs%%&;=xv9#zM$gZS2#}ni7=4zUsfry^bHrS3 z+(V>fZmME*v#H9z5KzjIo2qQ5K|*Ythj7=gbymlC{IZR;3^g58P(M#Z@6y!Et@KC} zX)K|F`uU1*pCVi*GHfppV5&wy7c0U*Ne2yM zB+b(k&*swk+DKy{so@2_;S7n?IZCq;ostYqd zGG2=Dkr}c#K2j}n^E|`EGKq8yq+q(iRPU=DUeZbNPDuz#`xo6>#86WmzKqyu9ln%c zQHS-E*Wu47it6y?024Wcf1&Wt753`zheV_fuTWZvT}wxpJVl5)+=*l)&DT*xJ@xfb z0X=_^`adA756Vt8BJdpZlQQOijS$mh z+}Wc98S|fudB^EAI2*W9;$jPhNco)Qr3>o9MGuI*w7wf)BBqqwq-2vFdphw1Hv+lk z-fM;AS|xcd$7OP{M7fw8=Sydtj}qsOVoJ+6zdQ&_TfsTkD;YW2U4sD#9Q|HQUhnuY zfVEgRE5#JY?88B~0i){B$|ixz7IN7kqa>I$_?M@Gh) ztc;9hu2KyQT9Y-3g5^!tC+Mg7ozSw>AN{>HOI&(wR$J*JIGFF%vBk7mvR~RPRVZt- zFm$Vps*(QuPNtH^8&jFQ=y{+Nlg1m{F=f$hpvvjmK;GL1?4Ta04Gj3AW9vb#s6pwB zQtR0+OxtK>F4{(G5WKcgt(R*X4P$jSZTqbHy7{5nMu%6mNby!fn(;E^6mK@&jF%cy zyfY_jTeG?3o@`1XLi~pHy|)r9M+ab@Y9BM)>mDv!%g%6bf@8|5gwcUb=|;k7Px=6~ z^-Hr>G)JLqB<%CZwltN}RUKq=Cazna%GSZN{^7``{^53*N&AOi5iI%#J>~twlBikz z!><7*atPn4@ErO_wpM*Bb^ZrtyCUSR`<)EpT?$mSMX2t?@(E%Q8u~A#v+o5> z7;gI^MW{W?QptQl4dwEW|H^Z3ZC?Z!{+ETCp^v>(N9CymHB{{&#q4E0%Pnf%MNa8B z@;3_hW-JJi{8pfzN&<#Cjh8eN5Lr=anRw0zUc>AUt_wZ zQ-2yySJHD{Y*Qf~@5|)52UjF+BV5MXs-@6b-d2rOh1UCPtIyoAgt|0#tKr+5Pr~UE zN$DD3`g?7dN}ji2TK}bnm44{iLGwC!5Gwm@|95QZi}t{b!)p&@t-RBvz6&F}%j)J9 zEY0qug~j+jFyRi`5|ZJvZ<`(kAGJ@@cRzc&cRzdCyPx|>)5g(}MZf#W_PS_rz*Z9C zyZW^#c$RnO|7hq@43bs!X`IlSj#G}7#pNh4ZuB(TE!L$Dx427=8t!>tCye?m%jJuB zSzSK5sV+YPS7}{-m|#(t^_17;<&n4Q@)H0PIfNfm_)&$ux;#aS(YfT;k@GR8LlN@o z@|_?qe>BCwavFg{*#G5&3p9;ixX;<3a|pyr{e;6?J+E z=${02z*c}0!Y#Dzb{!>-g&TbL^Okv&qjQMs-aNX<;hzyz@<%1^v;3%i>H4d&=JK^} z`cO0d85A)${bhNucR|^`jtds#{gi0tcAdTdIo6X&vt2Jxr3gZ0u&DPxMzgSW=B81JT(a>mQZxEN`e;L2J8xD43 zd9gi(m{D6bvzwQA#BPMFPE$ngtWpfKn?DQ5RvrOlH^~bQATOlB>P!|05X&7pyQ|ca zS_>x%kdKQsmyzY~^_&9!BI|it$@(l;tmltHr#zf%Nppfjv#`k%H)9DU3nh>Inp*3NlXl$*jK`k+4$6HJKP*6gIDIz%)E``*K!6YW(=n0Z4z|iG4p=R zwoA`J8@YL}EK{^SuKxQ4y(ZG%Yr`dh23yxYydQbG#MT+PHoRZR=ETa;v-e^=$XL(l z7WQr|d-g6%boO2pCbf4{yR-MK?K`2#j$b8pYR9h-EbLfMxgA$wPj>t!z(fw=*A)JX z!k!(kN<_2cL1c5Hm0g59JKhAul}JH%$W-UzV8@mh7k?4cv*WjT#D;{d+Ej?UxD>05hpnk?^gn18Bk0gMi!>{<1(!B_L#FbwX!Tjn*zy&kk@AtY z!y*{&uG;d3qQ-IupR;V$whlN$HRxLf)V0F~{j7j$lt4+0f7o5NLYW*PF1>v?DQm0SBtSzWw*j7G+88 z)YRH&rzbbr>D#1E?ey;i3p>?QZl@c-p6v8}fQcN!?<)L`!k(QD5YfilD z_0a){zoMGzXVOo1V)<|(8L>PY{U?vuhLF{}oFWBsHu?`C`3AcHW~1*35X&9>oG(8$ zv|k3jV`A2-_0JPEi#v4IA}#l8MWpi<87Va|Wf1;d2KG0x(PvB-9lez=Hs;O1R+19^Fo!ZvF2o|=br`)zSg+1BUe*h+O2!EvThYEYPwGk27!_jWbd8b>s zMF`uj{Z2}CWy{y+!t9|Z+%5@nB_IXTY;9vu4oFvm+0)n z1#(`*sXZ*MegFwfQS@xbhXVOs=|bi@5wr9w1}kK0jCeAYREqV{A2-SD6R@ewJ|m%91`y1L+24io5 zvIs))L=DwAUu#w?Y~-@WmMq`GmQ2i^Ey-G3{WOf}C9R*PB3D0`O|_@GG@diTQe!hEg^PcL-Y7}CjZO6l}#`51|nb4lI*QaV#QiqCHDb~h#(OYclf9wM$wISP}JHtD0`d21ad$a-Qo@hf{U0=76B6osC0%|S>Dn#lS z@2;z9a|_>>*H5*Y?sr-*HP8%#qI1L3WKDH-XSu@K`97ji;D! z+6J@|EZP7)(M^c7TZ-zus>T68i3J`PpWtO6;|j8Z=ec!=bG-x<)AKDyFy7 zg>>`{oU|zWUW;ulp^|0mdDyDZc^ygHLW33dYZ(^|^ZR|C-{IplbV43tHhn*QWWMTTr?n*NjyE^ydZ?bki$#?i`9{-XyNYLICyz+>0Lb>6Vw{X6j_?I~!~SWO!~F=sBeHZO z5r1#5GHJGNgBA8|#^TwxEVx*2)fiVtzs|=FYu|v6&bD$moz)aRu8Xwhox&bC~{Q5HJ>dWZTW6;0Q>WdOn zU$hdV`mzOoy=kakheQ1^+Og-su}IH?n4#H<+){?`x!=kMD(S)}_G;U0T6BT}rxzF14q# zNBQ1Qq0vjWKFZ$FUclw>g+@5vzv(mh-2=J{WR%uRvvI;jO?sS6#8i)y2o`$OQ?AEj zQ#~#XFp=ZyalX@|8z)?BdQ{>?j1!D*EE>_9ustC>Pj8y0ONne>&%nt6bWoocOrk0T>Q_kQJUOVOg>7+H&fK*$$C(b;g1z<% z0yE3)Ol`@AJYPncI4r$xTJr|x04qluRWc`crMIkGfe?Vg7A5MLJJ;a0Rh3!P!Q zAs9S5YMB?_-J%yq%M&lYgnF0;FC`eRLb_x*AzkdxO|MGqwNn#8dAvq+0H*_J(MRv7w@&!R-=ZaeN+x}8pI>~j- zR}Qst0k=r!fWZ}>DbI^)oUj~V>dFwJ!03WqhtV61_TKIFH7VuN9^Fhomu9Q@4jes5 zw*6@xRlH=Ta2y@L;~>FGqVGzUmdPf|lWnqmA>zx=1DwahLgxXrrAmM4LO=&@7`POOxlT~qiJG%&^wbKV8gDb79O6;{CYk{cR`gM0=bh*5j7-kj8>V&GA zc%n;%li4_EMG>v(NK**s-XSkx@Q0(VwlbMJj zv+UiRE)%_o1RLR3^@4-?Y5Ddhs}Yk`rq$)u*T5a_{*ZZmQ2$~PrULK~t%;MYg@Ztq zy80_8Xn~@tkPPu?z(jIjW8q@4&27Nuig+|2Ta>MAZ&$>jc==@Ygr{-*N7SS(;bE;%mhE%zdMxd7>01dnjzv zl^oc?jd3gQh5=tcx*2K9~c!cA}nOx_k_Txq!b zzm&8svPkfi+CL*@tpRnHUV_@SCeJUCv>bgIx3ic2;41{8mzd{G2tQ|WtzVmlQ|QY; z?Hgn5{XIabZ+YafOp9;VRQHUos{0rrN>D^eQ@%1{Hm{DHjUtDm3K}D1V^O%eHRFU; zI=|fLVN>Y=|7)2(EC9d2Hp^fZaInoYm<1eciwtG~gE?Ie*hJMvOCQaGg_I=h?XO93pclAwkf+RMZLUHHv}7t~PU?hvuN0w&LyR8lv38#1kJPNdEt zN-)~dRSkUGqang$D$yev>23jfZ1pv`oG`wn#%XAl^SfF*qAh_Z`>-*st2LIFZhu;z zh$$qxTT4c>0kG0 z$B)LtR$;AR%TH~jxGK?%T}+~kAkPX2Q3!)!g)t2|H4)BIMmxcqhbh~(53t4<%69He z+0MPGxO1-%nPoT)z?cfgRESK{FYS3mcckz=K=8%l*M)V^Rw zB2Cn9jG=lm(ABZ1LHqO&n58*)r^mSeK$ z_K%49Wquh=pI;_WUu9~_k$#QeTdER3;4SbbOvX=So!h_BbUK9nrl}NQQs-Ja)K4ap zrhH9|Xvk0w(dZwWgJ9fCAWjzM7*sA=SwkU935J7cWK9q-S;1IE{TWR~4u4S>)8SWB z7t>(X*9Eyy7c~AkC~Y-$F#|+3Jur7kBKu6T8`O&hJYs#&fIE*i^c$-e5@hi1+VD;R z7KcN!ijn!fBu6Z5lby1iA(roVoFtHh$lW(L{PD3N(xcw zZD$8+Ew#K);5wE6bHHFHSC#%_6Dmzr813b}+LdsjiRc3AMrTxv0pFkza z=Kz{}11Lw1)6(7HqID@k(-evQ9S4nIutuQ->Dn2sQJTT$5d)nuct20wG{vDkBS;A} zSf|uFBgo|H+bUBsgSJW76HJ9%Si%M>!}-1~*7*TQ$T61og$STYJ6ZpkcDZ5P8Suj5M(1EC6LYdfVA0%c zF`2Z^V-~~%TBer9EFx`*mc}fg8UD_KcFDjuhDKl+=}Lw%?*>D2?~*D@8=hH2ncrw> z%))5m+*4a`^bTMtJPCcUy^1_&>Da%e4Ogiuo0w!34+T>n2wpoqkF5W;w`;^+OCCp= zDy5hrp*q!Z;&%k&*mnfWAQ&e*WHf!chrN3KM|^e?& zA}V9?qv2nBWSf<}ALcC3S*IGQIPuWtrL#=vfl9|`st8-7zaMOhHjgVo7X);7Vjd~9 zHtcR~UcZAMF`Kv#llG^@;vur8WY}*KXv1M{zX~jw5RdI@gL0+v{+^;U!#fm4SB-?` zigS0eusTwW($bhkq(y6K%))53>k{k882CX9qhau44d-tdm)#wx9l7Djk0DXIvGN4! zNZ)bb#}>fVjFqvl>c>iQ>Bh>s5JYX%8m5{au-lM54!#V>%5iXGzE+RBkDl!$Yhxq` za~O>9?0wv6Fg5}Hm?P7ijm2Z99#7GU5vbmyxu;G5L8}q*uq!9xF^i~-#mCa*I}Q)^ zB+#@$-yo=RG6?D^L`@O!tg%09h8;OO^;FR#^RJ=^*^)pLv_}3lD9Qvp#KbTk{5Xnc zJVm3V&?9B@Ey}c z+LvQ~_zB2DhfXXED;bs~AsOD;r*bF+ibk!%1KWvIDQptSYDYx{C!`RI2@}+?I&@l( zVU?!Tn!Zp)VRd64DFxk=*@^mrpzoL*7d8 z4lv$9_B_O%1?+hkPrd{B*2hD0-u8(1H1)Mcn!a{C^|iRR82;50#C|s(2Hyy`|DoG8 zrfzp8MrC0l6<4jX%LQk%`as?pR%Wx2Wz}{RuZ*8W3PUp+{P+bGgj6*b1};y-(~SMx zDdvvkU#8&w(Z7k_v_;I$nsHnM&Zd?4`;ppmibH-+u-u(w&r_5~zklYj4Prh^d6aAN zI8n^kB!he@C|~oD1i6aH!eo{^tv-tVC6yP+DkNDZ8d;M?SyK#Tnd)T``CnyG+Rw98 zUtrIRl=h~z)2`LQB37Q4;6o<-|LI^Lk~|u+e`mgFtPz+3rXy?AZuI-gQ^g5E0?h>2 z+~P8VuuO8-VPtgGuRKnV*l0RfZ?#YEY* zw%|M=oBr@!74d~JXtP2+yolCVonck}grQd0froZ)(TJOXFy~M{`VIhJO+kWY9J&Fk zejFl~ZXBA0jMLb23q&~}=_eX`#pJC&hkzLrEK=Yq7GqT!!sbwm*u ztmV$Yv;SSnmA#t9Eme^aaqad8Y*=6r-Tw#jgU@7$>CB<;d_YV)^+PhmB;udG7us1ccQ3|@ZFR5^7&K|dgIQ$I;Xq=h}P+CbpjbO4r zlpC#DsAr%*=o>|>>-V*5o(l$L`#-FCC?)^3=3#R6V+PBLUS-szG2)s>pGnP{ht)|V zFr`B!}xj4!dYk|5I0dPu!obL~nY>{H=`_7D6g z;sIr45lU4g(LI1t?~yS0N7>ZWm2?uo5*o%LgJx3v!f@nT{E6dJm`01*{SpjlHwp63 zfB^U&^{=q2JOR`OG0KZ8`Q0)eHeqR1+EuH zfvBh|{&{Yn7Sft+3@RP%y@XUIxSN8)SeQ8f`@O4_0kORylmB&hq2aw0Xx}XT`gX|l z%%B}o3lQ5O<1m%cv_qynVmqX}3`IWGu7=MlTFcjHFe`8kpOyWW?bw1#K>n|=@_PeW zJgG9ic7atqV@cX*^lpLo8% z9p~6r+-BE~m6)5p(dNp&&%jt|oK3Wl$L%YjZTzG$M#>$Tb8LTM1wB%wbsjfjcw3}7VS zZ0uA!J{f!2YGVWP{i#M;vfP0D?52*aFd&b=sw0~iko#WNkxdQA7PoX{Ga}om&B;(v z{Nk=zD5Y3M<;VsCe956>^=3-N(v(8M#II+lw-L{Q-$dm)v2)<;^fr0SRXB=esVc$B zKzoea9kZ2W#BBi|_&7rsK^%*KC$vGFVh%b&16y=A5EYE}};AiJGSqQ+k8l zbk>+e?PmkUY!E(y)Tv^xEGhFGWiu7>tD!g~3=T-WPt|piTeB86Jwx zV4hg(+fgP{KR&Va>boN~^+w|Oq|b?Fd|^$x_V_~k!`)Ea^oQ*zl#NVCqIFF&9-3LV zJLB1aXUErIObM_7K_;l+1KVOC3vzU}_~jk!ju`F}Q-A3RuO%$Mw(w|%lQ9%nuE1Gh zPJ$QUlo~orsgUF2!3r^a7P_>I#t_byaoAj5L=GeMVls@?nJ{SYo~XhSqN&KYkVW); z8u~YIbZ}t_XQK4Jg{5FQ4iSG!k?V|B#pK$tSa3Fl&jvr!9$Q|hUhE^*EM7hvTZ;WvjhzC^N|`Kyr#D{2Rq3oD7>&T@h;E5$Vb zTgtJ=OJz)V-w>P9h3+>r63;ct&MoVKB zk>-pFWB!;$q`7Em%))53_i1TgpY(9*gH@H{x0C6(wJOP zlK5mvuaR#;5M>@7!q>>3`Ulu>@^CX5_<2P#G~Ul5dUtd6k02?eDdd62$5X_nFhXw* zN!$V(dNvB?PrGMe5=p?$m)Q>k%{dqKPviqvDZ)^1C3`*Q8wZnTlYcR+CKOu@6iE4P z_AQ4FtM6+7a`rE4y7Hb^cap#{QgB^FS zb?-wUN{^s`aQcJJQnC&DR`K2VEraqmScfB|`0f$E)resK;~Imqsa<1GX2pKEJ~GAm zbH<&-B+&Q5Ei`v~qWw`?GO1vx{ptH=ic6|jH}yui#lD$wR8)JKzM1Ni$L*!y|E8~T zsx|z)1isz=1vcDGs1HC^)_v;Q0^ZAbqiM-_Q%nVr5R}nwcw%jsS&%l+_GoF$!f0aK z8!D9{a4+=mcnRmhp;lW_bEh!OqHS}uzuOudoTSFH_Wo{foVo=up|b^kI-L)P5d9gF zvM<`6A3SQ>UOQOzZI4{Kws#XlA+^2sAgbwM*!Hf1iMD6MMWcpqv%06im@A`?WUEVG zFb=`)0MnmN2B8fy`JzO&no6jtgTwv$je(97za#VJ{|I5B%|sH{(f-85h4Eytr})`H z2a!yM!4^aS^F^uFEZc}6F5CP>!C&x{7my=$TMFjH5`fKu1>{qc9C7e52*e_!y*0My zA&RCAU?kDN7o}D?3^gl?uBR2gj%XPXYUkQCkOzZ4Fv{tegu^wloGpiNT3 z4cer59^j5az5H97)U53(I)gb+t@8j(uD)Hd3N&a}q)B4CVjNamns&u1uJ)VLNldAV87hjLKZ=)0>L4OJu`tj@oG6P^i52^`KKNyE)TB9E<|F!jFq*V14Wm?r6Pri`OT-T!>RjUW!_hJ0L|IVlPdEvym zgrFz`niI7{9v@I1HFH|!Ug(~B5Q#BXN07mPg}VvN@DbSG3eK#Kl$V%rW>MRnm=9Umk&plvIKPl2sU?YYiS!jY=KesqTCti-Qz$-uKO(SDnAAvX z&*zs(RguIN*ioq{Sf#2V>^T%q2i^yZHA@$%jrv2O-C)O-j}Qm z=~{u#U$WXB*0Nk`vkcC4Qc`qni3%TMHKXa<0!y8~_|#N-Y)l_R7Wf}aW@oGih=64l zb8G96?y{g6#3QLR{?prs?!LS6yQrGtQtqLtH$FAx(sw2qJ@K3;QgS|5wF(FV`>jj?4^BSxjCekDY0(?`ax<`ERQ;DU6wrP7+@ zPojvm@>6jP7H;7=LL=cMxiyE%w$hS7Ud){InDneN1N~eGBL)_X0m4CsW!&kNnfAS@!p^D=HO{0+{ZqV@(v!n zZ|!rvy=4Nu?!}Ql_!IX(bp2jescIppGT{gsf+IE>P%hfEpbyUgkDnllGo&vfI)3Vc z)w_ZJ%>VGe(x3KE_WOC`|^4*}z)N`x=QB4oS`As00&;jwA_$RD?roiZ*vAxUs z=Rla+yK|UaCP+v@S!%wGXhJF|%4cNtGK$_&O}<%QO%{Xxlh|MOpNyvOKUqWu{U_zr zi@r%(35#$PRg9nFAnP$$sXrw;%LkT>+*8Vj%z^LCa?Uywxp16(@|SVOkM%`#wt&XD zXUwm#hhDvC0?344;1W(CKtMfsL3<~HOgPEnrKn`WDG~>!IJPS|>QA4OEVMFByiHkH z8;NilemmHUlFq>HA*NR$oF#|YS5qBOWG`yVFcCvhTG%J)n)r-ae1DQ(Rt_>7PAG&Q z_64;O+xTXO4{j3o710961)FH^O!pLg_~ieY$M%-Y6RBq(7NJ z3l;p>iq3C`o{UVz(19A0jFpIRAM;d=mA-mpo4o9poQBB0MzqlTzen?0?Y9=<-a$Wc z+`@($i|kiqL^obx{K)}TCg_JdcFt6)%Kd^|d;Fogq*d}Ol$|J^?MgT<=?h)Q_8PlX zcO8DL2a(|?1RzWBs5Ka(A`Hus`nWvubsise80Zz+>{Y5>^mWBBWk$Rc8&kA(t?TQ5 zL||4p`tgG1(j$<@*GQwjlfVff2-5V2*J0K7hvd@DQA^;U{;(9L`UW1b-z57j(OyRO z+hix5(&Xh1+*k+JVZTjU#o8SSHCP8WmS9nU0NOoAV*7sv0bL_WZe+$M(iYrZ*g>KQ zut|rfa1RgleUVJ*5tOtWq#_D$#c|CqUBb=xJQjgw2^F{yf!_d|x#AKXg5o#Ap4b-2 z%%RA5k2KO};qnkCamOeT?pN@D&Y`X)pD zi0n?xqod{RKIBylhOUg&DO(XFw0D- zj1BiUf>4YE1?cn#J)s2X#tS<8;|}^8gF5(+wJRm)zt*lyrhdF(3ZhpfHEEK#c4Zuv zQO(+w&LvL6Zq{ zs4pW=>=?JQlCiNCtHTXrr9i#LZ1VF2oDN@sX5iNJuq+~758J_wd3s9z9d%Ysa&*4_ z`ThufN;lSl9YVss*r(Cvm)5{xx^$5+oC~FF>Uv|%|vT zLvt;c*5=$5lwCE`UkZ#q#0Ugq;0GWcSP%Gb!~<(!CSR%|VXW`vW06ncElv@rFMx)& zNIt|Fnp8z30e20Usm~Kr4CjC&r9?l90#%2a2EMVx(kGA~{A03hYsdY!y))y40tD z82#W-UnHN7Y7)Yx-b|Y4uhq{6b8zyfs}o8r)<{Il#JI}VPWrNCA`HrwN=M%Yi*UC* z2&pA_Xg{S`feb5GqD{^sDr1TB5dMv(jS93X*3DI@Y`P&6^oLiA2!j!sLf$eEx>_fc zsEj2Fm8O(}z`uoPHdPVlw@4QgQDz`wjZOqnQ|VDFUFZ)eav5(#vPQ~j9|hkp(^4I2 z)tchmi`LBz#3Z9H-avgb&9rcG77`35U0OW|kn(?_;;`d$7aqL0gO_ljqIkD~OyKb| zw?c31dv~A-AEpH);}PE7dEp!Vax!&e4dz7;(2S+3d+@_pTYy(2$PL-vhby>D}!oRzy=j&bO&`MT>f*(D^4B4EGx8pC(LyvWs3eed)zf6zk2rPz>68-AJPPAqjV42|y3YJZX|6 zrl1ljun(HVUf1kIes!JTHaMsg)b77Od7|qBNv5v7Y3DG182zTql1IAmCy447co^!! zE-=yWIkNj`Ygk?>Fm%Bf5fXX=+kh7U{Z^-cI3Cam76)$Khi~B}jr$Q8_th`qgcdME zBP`h7}Gm!XhGQC`(w2BEiA|F!B3?m;`I$ z{~`{jFXH$Q3F0r<{=0~JwMB>>znE4rX`%m}G);7rr~fGm=h{)A;}_R4Dk>+P9#Umt zd}cJg9T7Aqb5dLxZ2==Br}h6E5-j{q zV!~)AJB!Ws^y_S_72lEo1@I=PbO?Z_=Z8$H_H+^^s&NOmZWNgWL9VK z-auWM==#Wa9i~w_#Gb(t6xARHJO<(+RawC;Rq3hy8CCBd05`w25vs)(Wod3B z;oHIt=t8M?a5qy^3{r)<4jCyHc-ly${B-E)ZF&=fYluO@t3NVo>>J}qkJMfh3ZmLU zl#N6~7ZVXq@uyI#gqNtdfZiB>*cWmZ(nd96Y%CfR-W!2$)3#M@2Hyg7acrX1_2~=Z zH*STON#zr}ra=Q`Oh?P@a#D{XC0RpEE;ZR+td@C9w-+d5(^4%AvKHn4q`L-n^ z#Trk__YBJSC?zA$ znDC>)K*JTkslo4N%+=+OQX%8Vhk8`=+xXevg zM0$=X-vSKk+q7kL_#{^!(;EqNfKm<}5Is;^p&LHrtc;w%LK&@K*>Q$LHOU2!I6UwP zt9t9S=9};Q^g$k4mC4_J^r2V@d(a80WlD#`W-|GEUO#6fsc7 zWYpLjX?2Q1K~x8bqB17Bfle`*OqeNu$FRWk3={sYSRUH)I)7ECQlBM`GNTBY?+kJhODDY)%>bmc@@G3ZS0hR@s^zHo1Zn{SIi!a?Mal<5#my)sd>DCwqT zq%^^kN;*ZaOvFG*lTl;;w^o@b6hsw36csel4U~z=WWr2&872w3)~9Ef@J4L*pw*>g zXLV&niIDNejE(+R+#fP!W#k4H$|#nVkp~>A`}Og7hzIVTB{x)1Yh|nlaPwa$N0k$q1xQrz*R?5p+JCkC=lMvZ+tx@DC5X9@*TX%I!(C%QrQnM@|kl+S<{ zUH0`16MhjG2L1EeO}hM3DrEd(kx%(QPTIxt&x57wpS|Ev;igLDms$UYRrLuEVSxe- zD@{|~vuag0NkD$Fl1F}<;Ys;T)#sNO$S)Z+_Aj*6O`(wA*_!GmxhepekntZyzDsK#&H`&8bCzFku#n$x(W-DUD;%oW2B=Rq37mvo zLJctv#Dr|z=cjRxgInmrQ^R3_m^%n=c4Lw-x`~cMA;phy!kcM7!g0s`pgtIh$#uuK z9(oc<%4NSSAdDqZDXow)eju8?#@Bd~ib2^-{K0iGC=rz|AmRsT{zhgk94!6oQtLO} zw3MdhpFlHpjIuN}!B+@R6hgiYU3mvjHt=L^WV*=`U5lfDk7-43*7Q?HkNvG#TVRP} z(R!NE3su8}Wa5fT@qDN+()k}O9|P6|D!wr&4|N-nO5vR9HE7Hsy^hLdkf&}961sG@ zG!yd|k5D+13%XE)tgv~YtucNph)o28DVa18q$-tK8>`!rnbHDJ8)GS-MjGgd8LCu8 z3|nJd>?qh$Zc^Nhce+f$}y-h zl_M?%)RfIcmR?qHqy++Q0+2%n`F0-V9JC$2l~cZg2op_!N$|xk2!k&cj3kHzYpoxq zo=s56>M39%5%@q+Zf#N{7a&Rb80#G#Mb_Nb)Y?=dgcbH!6t=RI(rad|Ra&Y|Yg22p z8aY0?$M2D$57Pvp7ksxu4#S*~+Bl7J z(rlG5g%b;lmEJ@|=}*f)NF*Nbj+k!K_ej1XK~ab$vfJiwFSG@Ow;^g zku5f~i<#1hV3j~o8Hh}H{(sgz*r{3C?bK9Q{vj;II$cRTAD$+xGGAb2dw45@UH*4m-)E;HLzkcl50iFfxi`#*PzBmX3 z9P5TdxY`H9>Swfd8dkX`hQlg(#xUbgMv5PvG|bG>4>QETFhfR-JzndH!zzV>C<#Q- zuu61;VTQ?M!c2LKMh3%-o?*gUf?+tPpOLB?XDAsm-b(b~(z*lJ2YI(-dBaZtQr?E5 zB;}4BGhj%Sefy#V>;wi*YO`lYJk`S*>j{BG7|IC5Qw`EvBlXq@ScSya)OvNkgl1p3 zo5L-PqeqJ`INoq~@I#$xf)9o`z9X7V!p_!s`TbohG;B-sE83Ql@C|g64OlETUF@0` zGlumEdR8*Ty9cm2vcEVl)+dspW?w-YrksenF4xJBLwPWClTYOuJj`!jLW!b*e<8XQ z$u=O`vAm0I{|97C{3$JJ`}*WkIf^-<@7l~v_}0|1;eC-A?mlGRsC-NXgN{L8d8#Pz z+yh*p!RRi@xA?4)_d#7Ni!rXb+Zw6Km$i|42n@06YviHCPj84(Z6Q4}@L)sRB3J@~ zsYTGxMp{HeTNg4@0`R1vZ8m8=4xyp~i9tgfnKky)wX;bIhoLPC!fY_K5#3fUwU(

    NuBv0s#;Ek6fo*>#Db5O2kB~Q0i;B$i7zRtq~^W~`V z)%puxRcIudA~Mu!oiZ6nG_0NJh|*SYbR}-|C;L<7U%y# zuGwalF{u~J2rENtW8NHT(5aW6W5Qd2fq^ZU!r_nfzc`-e}3mli5Bi%PPyGDerAK;m|Wo z_!i=P!mwU=lzA(_8A+mckNrd{DD3-a=N@&r*WlG<_0ktC)XOXoq^f>Y4k=AhIm<$+ z?_};&xD8kus~S|ko=+`b!WOvs26zZ#5f{~7EKGf~rN~fw{mDoP#gl4p0o5LrAAaKi zB-9=mHTH+K0~CdVs5pqCW=nJdzX6Tfqb#zrVuG1OQ$8C0bULhOnD8-R80-NQoY2k9 zC@C_2w8(eCU6xrWKWkP#1HeN0Oh!x?3dPPM3^Y|KE0%CrHEVrlrNudZi-A0pPziZZ zVPrrs6~-c%`obW|D2zd5qzuH93L~8g!xpjQLnn|>7-ZDgpVAfvg@UNX5JiPSbPE%9 z)(u< zNNF8MepJLjN0vgSLCvwm8i_Thp|hIPEJIlT!(_AkqyMQ@cX|$9G>CO$sOL1d7y%gc zKU9ha^=Qt~IB3J_aWGh@$GI%IQE;%=c#g_&v^UMK=%|K(tm^2FJgUeCKJ6kxAR{nq zC%v^Zto$shUE0{BU+S&Bu}SesP1HllNQuPLMk?hqsKiFGBoMCeUpPw7f(`QYnYT-8<=`kCIQIoC^Axp<4KuaM427UWD*0JC8NeZK>K=)LP3-* zMA;y-M8}aR*|sv1LFp&<@R3rb5!`Qm-@Sg>{PlkHHB|MfnZ zJpSLlPsaQDM0N;*egs3nJ-WEqla3E*)2zF*c^vWWP@>}Hg0=F6Ps_kn9icm4RPp4| z9v*cvM&hbh5T&Y#eeuJis^9nwuLKN&Uu8cj!_vVgFtr&|=xoQrr(#s#2f0J60 z-;x_SXhB-*j}Idzbm+6R>fLVD3}v@={>zUQs&}+}8u;OJkzM?!t<^tmO>5(`b#P?E zur&#vY`g!lq@8KSSi7Ihj&4PqU{ZLJ zGBI{?%dl9bFfCzBtWswSi;Wo@o8aAevT}@&FloYQ@5X~;6O36o>Bv4_Vdl0tu?dcfa+;1K%1PkL=uf2U(}M!FoEv!eO2Io@rL%?W9DY|hRB z$L5?Lcx=vZ<3O8yY)%{D*qozNkIgv)Sk5~(XN_mud20c$W^L!SZ{Bv^4{h4c8|>G1 zUZZYp=Y7|s?YzCc+Rif`(RQ9)H2AS?=UtrKc3xo3qxpBFpKf}{&i=;?^j2sw~wz(KQg&8{r13fz| zrvD0bU0#`fVQpo4YEEVPsQtjD%JdeMmFa;`D$~o~SEjE@zLe2*(WQ*=#g{T-@_@sa zGL%OyWpGz7W&B-nDWmA=rHl)}SFbK*9Ft$p7-N1pW6hbyi~6jqUi|up>c#w?>ct)Q zRWEM3zk2buL)D85k5@0gakhGK{DtbpgCA5c-U$2%^r@&`yeHi$v&j;t%q!VWnNB}A zWi|qKZg$FCbHpjr_M}s0n^R7iy$hW(XWwwjTw3Oox#zx9=825IGD}r~OIp9|w#4+W zZcCng>bB$~7qaBOBxH$;ZOD=djv-6T8-y&`;u*5U)F))g^1zTKqdSKzi3R4{@6GD^ z)5>pB>w7HiRq3~Mz}JOKnN2}92P=xQkM0RudHL6{mC|!zD{JnBt?czMY-NAoVR_ifuPee< zcB=_n86yi{dCoa}Wy9XW$|(U`R@SvTv(hb0vg&4L#H!>B-_^(4m#jV1rDW~>{v~T) z4k%gMbX>{WORAE!$LEx+9krrl?Sxe&Yo`FCSC_1Pva@9E(fuWBcUYCJ&9W_9yTPGs zZLw$BT1)S;wYz-F*3S1YTiZIUY^@}`Y^@yVJF0B$j`3w{k4!9EYh9|`xY=gk#{IVY zHva9lZ{sQNeH)|t@7vfcY~RL~z^T}M8%xIT+ju5n-^LwD`!ah@jbfa{MD;V&bNKKqU2@D;cgb;C(GC#*P z!!p+;+cGye$1-<7u4V4re9PP;rz~>|&syeQ1X^FP%ylic%xzp@nS1=HWo~cID)-a# z(Rl+GzspPd?p@x*b?@?SY6dqTS5Caky9WGm`d!|v(sy}%D&OS|eFDGI zzw#!;|Fu~dW%Hx!*`O^y7X@v}{v&A1uvbA_h66i*(hosfOf7=9_|y&FGQcT#%klcb zTdp<=-tu$1;4K$kZQWWEGkbgNkcm4lg&o}0X2`)^O-CKvwL0$Lu64lnaR+y0&p)`! zcfrA3^|BA{>a_-bHXYn0+jel5&CY|n`gZ1jnK!cdm#-e&`sHHopxw^bWP2I_Pp`}N zjJ+${GyT47Psvl+p7k$fdlIW(k`*-T}>C?>*k)_1>$kU+?|7$Lqc8wh!KSBYD#P zj1N5y7$5F@$YF8Lp}&{q99q9J=g_iWat^Hk#_Y{G^z3lXp_(H(hej3U9I|+obEv^< zxZmd-IwQ$Fl$t-Sz-grHa3f&CDB0nNMA_l;nX}1-%)JzOq~Wc|BWdN4M=U->9`Uw} zI?~B1>PSQTs3VUXL>q|n`6`a+8kRRW^=55 zB-~%y9Fr&69CJ*uITpIe=2%Nx_v2k0+>a-Ex*rd1<$k=sulsR#fA`}%`nn&#G|>Hc zPMG`g%|PgQ_v51`x*va*=6?L*oTev_c4&T5p&WYh_`QUagUUireLbk%S!qCQcD_rqtU*X$V`wG8%4SSvah2xy|7fyHCU$~v$UuZk-O3@JIm7n7*Fvv)o3)WG$8Wne{IsE*xs{8@igBa#g1)ZAK0V#@sJ+H)x&!fd&l=E z4lRo-wi#G(?XReUYpX{TT&oyeaP32E!L?yR!L{s}1=m&r<5CK)o!DG(&18SUwR-vB zA1SzYHNRhp>FItYPKEtSo?Px%B7NAeq~b-tl0|>^EBWgUXdnBP^pW&0nPJtxWHzt> zIJ00{N&ESxrO8W8OVvQ1Y}3-|D@{vJes5ZOeT`{p%{J50;-6vv)wJ}F3#O%SFPWC^ zx()wp-jzOWS8#J#r-GYj`xM-~(XZfUpFssTCk!jNX%<^>^TgDGo7Kq$H-l6KH+uq4 zXBFH`np1GoCZf7bIjXwsKzw!CZ@@PbtIIfLby?j-)n&W0tIM9QtS$@KTwT`q$Lg{+ zTdT`#c7b27{BCwLkNb-fS3FR?79OSmW>vz&6*f~JIyy{!IKTeXhki|_KK$Hr>cbg6 zQy)I+HTB_}KHv?Q`fz8|)Q2;>WLWzyTn2L)iu+sAW%e*5_BvA2(J9Dn<`>#JWYI==t4BF1!Y#ZRI$eC)r1Qn69>9h0i%;(kzW8*~#EVbOo|`@^dN%f1 z`SJ4SS?6qD{?f4jE5)a<*GWdqH*WN?JUtdVLUbQ0S&#I#Ds;c&EsH&>mQC0QV&sA0N`>Lv%pQ);PP*hcQ_F7d{ z>8+}&q6bw~k#DQ2VydgE;sF2f#5Xsi65p(ukoYESa^joI%EULuTbgA;pPr(!b4m|9*AW`x?MxP1bw$4_WWqZpnJTVn^2dw+FJ`e|He} zlC1aR?q$87{xIwP_Lo`j?}k14u=DB8&le=SK9?Eo`n=s_*XMqwyFPzsx9juihPyud zdhYt%mEZNbJ5VQZ*XM!(yFTw6yzBG&M_aH|`(Dzi(Fw`GTnl-{RtvfLE(^KyZVP$* z84LNsvlephyoJ2*hJ`%&4)}jq$lsP*$mc$`kk13=Uw2R}FL6-B-E&Zks&G(zba7Oe zHFQ*10*P*pia0Mv#hKQQimY~yim_cB74l$5#rnAy6#K6=F}b8lGifs?&7|qVG?Ufe zq?xP(wl7UH$=;b};=3!&q~5_alU^s`=X{!ptT@fYrX@^i5m8{}dk@9JVu2-kC%<=h z*uE^mVePMJ4xJCAIqbWb=HOGD=Fkq1m83bWzn|vt`B|DnCO6AryX`E8!*;VA*1ODd z80R+2VOdDIQ)yJW(_LW7&~hi`@N%d7G38EIXOug=npy5NY&mEv%AL&Cl{*FREO#34 zOS#jPX>aSL+z)e}IViz74X}zxaJG$1aGpIp!PzG!!8u!*;QaBM1ZU;)1m~@*5}fb< zl;HewJN*2T;Ow$~vrBzo>xRuP`*SwCxNq6)a((+|mkkFtyEq=+?9%SYW|#R_H@hsq z4*sppF8%)4>{2=PqlfK9!snrs+R)xjQFvtiDF+>ld@^wy9PID>bAyjfZO+*irhMGE^@QpRpeIsYmr-rLq%@Q zj}^HsJ6+_q0>~>Yatrzdy74(TbIWsX&Q|B#PH(AnEBUF?t^UDEw@1f;kCkrkYAW4k z%AdG>W%|UeA8?`06SsLbPu#k@J#l;7?1|gWX&>Bf1KXy5aQklY2e-B>Ke%0A`@zj^ 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�@QCwzX&{lG1@$Ac5B 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 From 9a53858230ae84620b870df4e04ba55bebe9bac1 Mon Sep 17 00:00:00 2001 From: Stefan Saroiu Date: Wed, 17 Oct 2018 14:02:48 -0700 Subject: [PATCH 073/530] Added all three VS 2017 versions to all build scripts (#610) This PR adds supports for all three VS2017 versions to the following build scripts: dev-build-push.bat, release-build-push.bat, and release-build.bat --- dev-build-push.bat | 4 +--- dev-build.bat | 20 +------------------- release-build-push.bat | 4 +--- release-build.bat | 4 +--- runs-msbuild.bat | 22 ++++++++++++++++++++++ 5 files changed, 26 insertions(+), 28 deletions(-) create mode 100644 runs-msbuild.bat diff --git a/dev-build-push.bat b/dev-build-push.bat index 3fbd73f2a..68f142d80 100644 --- a/dev-build-push.bat +++ b/dev-build-push.bat @@ -1,3 +1 @@ -@echo off -"%ProgramFiles(x86)%\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\MSBuild.exe" build.proj /t:Package;Push /p:BuildType=Dev -pause +call runs-msbuild.bat "/p:BuildType=Dev" "/t:Package;Push" diff --git a/dev-build.bat b/dev-build.bat index 32c2683de..b09ae3031 100644 --- a/dev-build.bat +++ b/dev-build.bat @@ -1,19 +1 @@ -@echo off - -for %%s in ( - "%ProgramFiles(x86)%\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\MSBuild.exe" - "%ProgramFiles(x86)%\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\MSBuild.exe" - "%ProgramFiles(x86)%\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\Bin\MSBuild.exe" -) do ( - if exist %%s ( - echo %%s build.proj - %%s build.proj - goto :done - ) -) - -:notfound -echo Could not find MSBuild.exe. Make sure Visual Studio 2017 is installed and try again. - -:done -pause +call runs-msbuild.bat "/p:BuildType=Dev" diff --git a/release-build-push.bat b/release-build-push.bat index 23465ee7b..9a9f15c34 100644 --- a/release-build-push.bat +++ b/release-build-push.bat @@ -1,3 +1 @@ -@echo off -"%ProgramFiles(x86)%\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\MSBuild.exe" build.proj /t:Package;Push /p:BuildType=Release -pause +call runs-msbuild.bat "/p:BuildType=Release" "/t:Package;Push" diff --git a/release-build.bat b/release-build.bat index d47427d68..788e125a5 100644 --- a/release-build.bat +++ b/release-build.bat @@ -1,3 +1 @@ -@echo off -"%ProgramFiles(x86)%\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\MSBuild.exe" build.proj /p:BuildType=Release -pause +call runs-msbuild.bat "/p:BuildType=Release" diff --git a/runs-msbuild.bat b/runs-msbuild.bat new file mode 100644 index 000000000..d56d5c22c --- /dev/null +++ b/runs-msbuild.bat @@ -0,0 +1,22 @@ +@echo off + +set BUILDTYPE="%~1" +set ACTION="%~2" + +for %%s in ( + "%ProgramFiles(x86)%\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\MSBuild.exe" + "%ProgramFiles(x86)%\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\MSBuild.exe" + "%ProgramFiles(x86)%\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\Bin\MSBuild.exe" +) do ( + if exist %%s ( + echo %%s build.proj %ACTION% %BUILDTYPE% + %%s build.proj %ACTION% %BUILDTYPE% + goto :done + ) +) + +:notfound +echo Could not find MSBuild.exe. Make sure Visual Studio 2017 is installed and try again. + +:done +pause From 810e7150494b2b44809247782986e5cc4880e299 Mon Sep 17 00:00:00 2001 From: Miles Rausch Date: Thu, 18 Oct 2018 14:43:50 -0500 Subject: [PATCH 074/530] Update PackageLicenseUrl to point to LICENSE file (#613) I think License info used to originally display in the README, and the former link would anchor down to it. This will take users to the correct place. --- src/React.Web.Mvc4/React.Web.Mvc4.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/React.Web.Mvc4/React.Web.Mvc4.csproj b/src/React.Web.Mvc4/React.Web.Mvc4.csproj index a003753e9..c3b02750c 100644 --- a/src/React.Web.Mvc4/React.Web.Mvc4.csproj +++ b/src/React.Web.Mvc4/React.Web.Mvc4.csproj @@ -16,7 +16,7 @@ asp.net;mvc;asp;jquery;javascript;js;react;facebook;reactjs;babel http://reactjs.net/img/logo_64.png http://reactjs.net/ - https://github.com/reactjs/React.NET#licence + https://github.com/reactjs/React.NET/blob/master/LICENSE false From e13f8f5eab46c102a12b81fe95d992c4a9de7db6 Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Wed, 31 Oct 2018 07:59:10 -0700 Subject: [PATCH 075/530] More documentation updates (#614) * Add docs for css-in-js support * Add docs for react router * Fix a few small issues with docs * Fix docs build error * Remove razor language hint in markdown * Remove jsx language hint in markdown --- site/jekyll/dev/contributing.md | 18 +- site/jekyll/features/css-in-js.md | 226 ++++++++++++++++++ site/jekyll/features/react-router.md | 80 +++++++ site/jekyll/getting-started/aspnetcore.md | 4 +- .../Content/components/home.jsx | 2 +- 5 files changed, 318 insertions(+), 12 deletions(-) create mode 100644 site/jekyll/features/css-in-js.md create mode 100644 site/jekyll/features/react-router.md diff --git a/site/jekyll/dev/contributing.md b/site/jekyll/dev/contributing.md index 74ee15631..b0c22ad38 100644 --- a/site/jekyll/dev/contributing.md +++ b/site/jekyll/dev/contributing.md @@ -3,10 +3,10 @@ layout: docs title: Contributing --- -Pull Requests -------------- +## Pull Requests + We actively welcome your pull requests on the -[React.NET project on GitHub](http://github.com/reactjs/React.NET): +[ReactJS.NET project on GitHub](http://github.com/reactjs/React.NET): 1. Fork the repo and create your branch from `master`. 2. If you've added code that should be tested, add tests @@ -17,19 +17,19 @@ We actively welcome your pull requests on the If you don't have Visual Studio 2017, get the [community edition](https://visualstudio.microsoft.com/downloads/) (it's free!) -Contributor License Agreement ("CLA") -------------------------------------- +## Contributor License Agreement ("CLA") + In order to accept your pull request, we need you to submit a CLA. You only need to do this once to work on any of Facebook's open source projects. Complete your CLA here: -Issues ------- +## Issues + We use GitHub issues to track public bugs. Please ensure your description is clear and has sufficient instructions to be able to reproduce the issue. -License -------- +## License + By contributing to ReactJS.NET, you agree that your contributions will be licensed under its BSD license. diff --git a/site/jekyll/features/css-in-js.md b/site/jekyll/features/css-in-js.md new file mode 100644 index 000000000..0f5511027 --- /dev/null +++ b/site/jekyll/features/css-in-js.md @@ -0,0 +1,226 @@ +--- +layout: docs +title: CSS-in-JS +--- + +Just want to see the code? Check out the [sample project](https://github.com/reactjs/React.NET/tree/master/src/React.Sample.Webpack.CoreMvc). + +CSS-in-JS is a technique for declaring styles within components. ReactJS.NET supports server-rendered stylesheets for several libraries (pull requests welcome to add support for more!). Your project must be using a Javascript bundler such as webpack already. + +Make sure ReactJS.NET is up to date. You will need at least ReactJS.NET 4.0 (which is in public beta at the time of writing). + +### [Styled Components](https://github.com/styled-components/styled-components) + +Expose styled-components as `global.Styled`: + +```js +require('expose-loader?Styled!styled-components'); +``` + +Add the render helper to the call to `Html.React`: + +``` +@using React.AspNet +@using React.StylesheetHelpers + +@{ + var styledComponentsFunctions = new StyledComponentsFunctions(); +} + +@Html.React("RootComponent", new { exampleProp = "a" }, renderFunctions: styledComponentsFunctions) + +@{ + ViewBag.ServerStyles = styledComponentsFunctions.RenderedStyles; +} +``` + +In your layout file, render the styles that are in the ViewBag: + +``` + + + + React Router Sample + + @Html.Raw(ViewBag.ServerStyles) + + + @RenderBody() + + +``` + +You're now ready to declare styles inside components: + +``` +import React from 'react'; +import styled from 'styled-components'; + +const BlueTitle = styled.h1` + color: #222; + font-family: Helvetica, 'sans-serif'; + text-shadow: 0 0 5px lightgray; + line-height: 2; + + a { + transition: color 0.2s ease; + color: palevioletred; + text-decoration: none; + + &:hover { + color: #888; + } + } +`; + +export function StyledComponentsDemo() { + return ( + + Hello from{' '} + + styled-components + + ! + + ); +} +``` + +### [React-JSS](https://github.com/cssinjs/react-jss) + +Expose react-jss as `global.ReactJss`: + +```js +require('expose-loader?ReactJss!react-jss'); +``` + +Add the render helper to the call to `Html.React`: + +``` +@using React.AspNet +@using React.StylesheetHelpers + +@{ + var reactJssFunctions = new ReactJssFunctions(); +} + +@Html.React("RootComponent", new { exampleProp = "a" }, renderFunctions: reactJssFunctions) + +@{ + ViewBag.ServerStyles = reactJssFunctions.RenderedStyles; +} +``` + +In your layout file, render the styles that are in the ViewBag: + +``` + + + + React Router Sample + + @Html.Raw(ViewBag.ServerStyles) + + + @RenderBody() + + +``` + +You're now ready to declare styles inside components: + +``` +import React from 'react'; +import injectSheet from 'react-jss'; + +const styles = { + demoTitle: { + color: '#222', + fontFamily: 'Helvetica, sans-serif', + textShadow: '0 0 5px lightgray', + lineHeight: '2', + '& a': { + transition: 'color 0.2s ease', + color: 'palevioletred', + 'text-decoration': 'none', + + '&:hover': { + color: '#888', + }, + }, + }, +}; + +const DemoTitle = ({ classes, children }) => ( +

      + Hello from React-JSS! +

      +); + +const WithInjectedSheet = injectSheet(styles)(DemoTitle); + +export class ReactJssDemo extends React.Component { + componentDidMount() { + const serverStyles = document.getElementById('server-side-styles'); + if (serverStyles) { + serverStyles.parentNode.removeChild(serverStyles); + } + } + + render() { + return ; + } +} +``` + +### Emotion + +Emotion's integration with ReactJS.NET only supports rendering inline styles (instead of rendering them in the document head). + +Expose emotion as `global.EmotionServer`: + +```js +require('expose-loader?EmotionServer!emotion-server'); +``` + +Add the render helper to the call to `Html.React`: + +``` +@using React.AspNet +@using React.StylesheetHelpers + +@Html.React("RootComponent", new { exampleProp = "a" }, renderFunctions: new EmotionFunctions()) +``` + +You're now ready to declare styles inside components: + +``` +import React from 'react'; +import styled from 'react-emotion'; + +const BlueTitle = styled('h1')` + color: #222; + font-family: Helvetica, 'sans-serif'; + text-shadow: 0 0 5px lightgray; + line-height: 2; + + a { + transition: color 0.2s ease; + color: palevioletred; + text-decoration: none; + + &:hover { + color: #888; + } + } +`; + +export function EmotionDemo() { + return ( + + Hello from{' '} + emotion! + + ); +} +``` diff --git a/site/jekyll/features/react-router.md b/site/jekyll/features/react-router.md new file mode 100644 index 000000000..64d172cf9 --- /dev/null +++ b/site/jekyll/features/react-router.md @@ -0,0 +1,80 @@ +--- +layout: docs +title: React Router +--- + +Just want to see the code? Check out the [sample project](https://github.com/reactjs/React.NET/tree/master/src/React.Sample.Webpack.CoreMvc). + +[React Router](https://github.com/ReactTraining/react-router) is a Javascript routing library. By using the `React.Router` package, you can add server-side route resolution by deferring to React Router. + +Add the `React.Router` package to your solution: + +``` +dotnet add package React.Router +``` + +Use a wildcard route in ASP.NET's route declarations: + +```csharp +app.UseMvc(routes => +{ + routes.MapRoute("default", "{path?}", new { controller = "Home", action = "Index" }); +}); +``` + +Change `@Html.React` to `Html.ReactRouter` in the razor view: + +```csharp +using React.Router; + +@Html.ReactRouter("RootComponent", props); +``` + +Expose the routes in the root component in your app: + +``` +import { + Link, + BrowserRouter, + Route, + Switch, + StaticRouter, + Redirect, +} from 'react-router-dom'; + +render() { + const app = ( +
      + + + } + /> + + { + if (staticContext) staticContext.status = 404; + + return

      Not Found :(

      ; + }} + /> +
      +
      + ); + + if (typeof window === 'undefined') { + return ( + + {app} + + ); + } + return {app}; +} +``` diff --git a/site/jekyll/getting-started/aspnetcore.md b/site/jekyll/getting-started/aspnetcore.md index 9336d0082..e755e4d2c 100644 --- a/site/jekyll/getting-started/aspnetcore.md +++ b/site/jekyll/getting-started/aspnetcore.md @@ -8,7 +8,7 @@ Just want to see the code? Check out the [sample project](https://github.com/rea This guide covers enabling server-side rendering and Babel compilation. Getting started with ReactJS.NET on ASP.NET Core requires a few more steps compared to previous versions of ASP.NET and MVC. If you want a step-by-step guide on configuring a brand new site, see [the ReactJS.NET tutorial for ASP.NET Core](/tutorials/aspnetcore.html). -ReactJS.NET requires Visual Studio 2015 and ASP.NET Core RTM (final release). It is recommended to use .NET Framework, but ReactJS.NET also works with .NET Core. +ReactJS.NET requires at least Visual Studio 2015 and ASP.NET Core 1.0, but has also been tested with VS 2017 and .NET Core 2.1. Install the `React.AspNet` package through NuGet. You will also need to install a JS engine to use (either V8 or ChakraCore are recommended). See the [JSEngineSwitcher docs](https://github.com/Taritsyn/JavaScriptEngineSwitcher/wiki/Registration-of-JS-engines) for more information. After these packages are installed, ReactJS.NET needs to be initialised in your `Startup.cs` file (unfortunately this can not be done automatically like in previous versions of ASP.NET with WebActivator). @@ -87,6 +87,6 @@ You're done! You can now call `Html.React` from within Razor files: @Html.React("Sample", new { initialComments = Model.Comments, page = Model.Page }) ``` -If you need support for non-Windows platforms, please see the [ChakraCore guide](/guides/chakracore.html). +If you need support for non-Windows platforms, please see the [OS X/Linux guide](/getting-started/chakracore.html) Check out the [sample project](https://github.com/reactjs/React.NET/tree/master/src/React.Sample.Webpack.CoreMvc) for a working demo. diff --git a/src/React.Sample.Webpack.CoreMvc/Content/components/home.jsx b/src/React.Sample.Webpack.CoreMvc/Content/components/home.jsx index 6ebd58d23..382fb51a7 100644 --- a/src/React.Sample.Webpack.CoreMvc/Content/components/home.jsx +++ b/src/React.Sample.Webpack.CoreMvc/Content/components/home.jsx @@ -44,7 +44,7 @@ class HomePage extends Component { textShadow: '0 0 5px lightgray', }} > - React.NET is 🔥🔥 + ReactJS.NET is 🔥🔥

      mYMM%92sl36pFT+(xJsP|;7N6fbiVtud#V5Fq;v-x~ z@foh8_z>4oe2VKRR`gM<>7!WHN3pJtVr3u2+CGZaeH82aIM(-ZtncGvbmu*k$FaVT zV|^dT`aX{JeXRQ4oSz@_)BN{|{rgn^efZG+1s#iZj2Ck>*!|=3{QRNGK6Ke1RrZnP z^@x^D&8xt8>gEd3*Q50>hg{cE{DCcTmVL4+@Q z#v{*#pK1~vACZYlF--hweR;FN!q86cwqxz65jz)-LHrt1tIT4>n%pEascp|gT?E=D z$uYk__yj6F;2fD&kH(1~^+h=Tksq^B(nb)$@CaVZetwBj97B+uJN&r7jA)n7!*Gp5 zMqo7&E5Nat#uLKbRP9Mp#}k(_BY0w0DzRzX=cSKB>zl9!{@Q-T3%@;up z^z~yZ$I%Z~kfR@<=Yb6zKg<54#5ZJxa@W`TSjzBWvAqI>GM33sVunPrH9wuHzr?9k z|GM6&3=ad~9tm)o+X;ILIcB1b9p=|!^5_Y*ui`G7iY2{6qrAr_O+n=OJe74Nz&_+HYIkqR6)qX}|yZ-+8VQkv+_V5)NAAa9hHM<+T69@;ZuJOpHu zWy~)zMbjrP@X5YRYzvK&g60_X#!sVOaNg&JH&?Mw`WkO=ZE)xC-=zv_M09IlrVQ8+ z2^n@zaK$|vfk?ofPOhLLKIljZl=b-n#*YhNmGCS*C}ZA!Hy!!Ay(P;P8fI}Z`&r}4 z_KX4ic054AZouZ~_%`Koa|Jdi0%<6YHQ`J<&d=>|)^{cn^+fz3AafVy~ z@%I`~KKGiH!J`p7dMxV_G-F;LmgZEVm|dqHRNqz|@Q@*27bt>gOmFa5CM>>EdD z>=we#bb_7}n70Zzikfp^h(|$oM}dhQUH0EN4!S4|a$0^5u5=~ixYlU&VPxlYLebs z<`Y(j4!EoS6H#%ilqYn6k`dg=qheiB@mJ9ABBCy*VbgpI#bAa{*ad)Z9+$db?#!66 zfo&l`!^+m{rG`jex>@8SV z?9b#K<*b49a;SryiSqI^6!qm3OiyRB+W;5q%WhL_Y@OqJ7Io2NS)tQ3OowG@QTpNh z$W)9wsQz`!w_v{RWM%99`u&+26iwuNTC3ADN_|d8IxT31m!q)T05vEJs0MpEy9PCA zau22Bfs%X~oIRxUxh(S&iH| zX6$*@Hx{S`+!k{*S2u-lh=ppMUjm^cS7$*_)PmZN0C!}P+dtYSm%FSJk~@OgB@}A% z%NcpmwW>lCWn{T=mt@8gs6eAXzq1u>;RTj*q;ZwjE+5eXi+m(GOrs#BCVB)qG@dF` zj%e%E{#4+9fNPs9Er+b4b9u?P6$ zak~A}ZUfEjd*E*{t}tLRu$Zp(OC5;y`4VkxEb@`qDYnmkTQ2?_WeR)7sd@QkuQBD#fMXOKsM+oK!tkSe(bTtai(E;%*a{;C#*awkC^B^xdqe0$Kl`#swz{* z;k@P<_f#wXOdI~8iQr<75MRwCE)24wK-bbQyEJmiy zml#tqIFn>R!nax}7^sfVu^ov+CR;5C6mUA_ZYj=}IT^$D4;f(5>`^9MF9A2eEEXnE zxB%bE(oV3e=AXGHQZ-7i+rCEEuec3-!J?kM5b2+}&30jhx@?7KoOUCuFvO z`4X=zTlgGLNbxTXGGTHSJA0Bz4i%>0P+OU|eB`TVi7){`si_SRdKw^tC7x~rbGGAr|0 zPhKm_c5$E?+0xF`Vw8!-G@y!(9NjsI;vf+tUl1g}jm;>cul)hq3 z*EmI!3Og}#CU~p`ZW~l6L!rLygLy6UNT|Ou8tSi%iWOJeyeXxY9EHQ4DfW5dh&9Z` zv!3w8ozl+zg}==MSz+y;6NpUI-va>l|#7P=J8Q*!xFFjNF0LECE3A%``0 zd2~34tH_E^YFO5nDPAi_-C;}S3#ZM*NDPMmfpeHXu8#D3a21cSd5AAvV_%njj>W&d z)uaGNHR0(n=8v&jbBM)a(^J#A!r;Y`Wh=L%UqLyPqz6LemyL)%O)Cx4H~r>hU7KNvk19l9lP#4 z4>Q{P-Ig~8?ewMb?&l@nPwc`+vT1(R2Dj#kMrxZ2e3*q_K3us*5SDpIuve^yykrc) zT@p=~Wa!6N&;}rX;lqx>SCEEH0^NCth+y6Wl7%|30wp^1;|2e1SODfkNIRw);;+&t zxM|RzMbyl7`4(fjxY1rLc~poJuR%B2u~`LcF`gX#&^f}755!r8rKQ3J9XuD$9c;A5 zu*24}e-XvUC$Midl2$%o^C_%%zgM!Er@}n5YJj75PVF}zOVm@Dn?-F0S`irBuuc~$m8mt_gh>A9_mqL!LcfXi&* z)syCTtfcFBBpwgq-*#E>U#t}PqHAEIE0CJhRdeEfwMC3Br*R63)zUUWmW3AeJ5`z% zZ`&K*_ZKp6r3t_Ho!fRZZVN>!Om8O zIHfAX6CPsGro|X)D;HMu$V@0=_6fc@wx)(V^17G9mjMidyxA6Hf1HlhD!i3(0^3fS zbU5WS%o^HPq~0q|UxCW$=I#kIG5)HDJf$swP+rpz??#Ir(iB6JV_XTNt-D8`?LT^q z;iA%D+Nk*9^Kk8?d%Q`ncx{f_AAC-&8 zWA_@Y*Z$bEvVog=RxWlge^xDvj6Ex>ZppJ^kJ!${3Y5 zSr(|gVS|CPm&5lPjNT(yFz9wmm=oXO3BgJ63XjJko1WAHawuS%za9i*6u-an6;9h{ zip>T7f{eFi96~#9pa92jcu$ZAb`cafJFbmBJVoazy3=PcM!#A#4aDmrDA_kVJ(t%v zJN$?&*fGDp$ifv2FL5g9qLnXg^ERsue25J_5+1fh4o&He-QIY7c8C>sT6N_)LeiJ$ z$+s3EDbBVy!$t2MSRchp*v*HCti88w>4Q-tc5a|}%)i)A(GgJ0k#!8mZovMlvlHvm zpfdb)F9E1SUf+85wj{Jmr0r^LXR4Tb_Fco-6=QSmmTtI$JGLJYt}?8X zOAi;X`JG8&{kVC=?)ve_?#atw|Jn}aXfws)xIB`=??!TWb%gVu;aUqh=9p`E(FS6} zi`%q(gl$7xXHR*m91i~r$D>&7p{%>}K9@!^z=h%oh7lbB06!hw-GYJ`+-f$ruyGAB z=?i?Ln+3-RW3xBSS}R&ed_j>12`>}?H-vn3bYk;pwhxfw$Ic-U&DK)p;O>^~O5rTj z7Uq{ZFKD~5uQ;9OaDwUO=0`-#VafipZ9GJv*q-gA2%G9U{B-&GOB{F9(M0Q ztiyg30k}L&dc>Ppctf+xBU{5SV;?c*qWw_Px0|+Ly|-&Y#(ZJ~HWtc8Bj|`zUm4w~ zb7iDRuZ--ZwwIa)Ez;GiVd}|73hMt4A73575aC#s{jOa*g*l?8vE3h>VH~D%rPpC; zCY~j(!CU57HiM7as1MENDPK9KqiTc`IyL4YnykFmyx$F5|9bY=aT!flt9=nE zMw3LxW*gQy{A(15{DZk?O`APHd-Vq_yx10P{PJ7-g%7E1Ykz1iA_Kh{0pFkQ-tP3m zt*_(*&!SyWX>;dyma6YuVzq4V*p|@Rq?fKGHL0sdWIedfM02>0yoW+-h5>AAy&AaL zDOiTN&+eGGx!0So!PQHaZ;+2qI5ap|bjqd~p)~jXlXv>t;m*)uxNl{6?aIho7kK*< zos!~7#eWDbdR$^r*^GzXTr4Tj&R_`WX= z3^~LeFnn0__WsWC(aF)n(=~rH99HUIWkHZcq(i*YuPSSGlTqeRo+2}Nh00>#Nn?&j z_~h(x=l{CWT=BnOb?`tud=nwf>UaL;HKzlFEMrQ_f5~e9|M(75$T|aXTf(6PP?9}< zJId4VQ$kMk!|%cmm%|TN9bQI47n0kr_m8paN1cYEZ0c*x)NA*`(_MCL6$X2(oBiEC z&ObLVqxgc}gV*eKezY^2m?<2vfU0ZH>DaW^Rp+@hKcf@*16+T%iSq69qvv;WdW8N5w{5z#TcoBdSP1)puL zy?lcAfuB6+8MZgc*mlc~pXqVdxdDMCiJk(A!#3>r17AjO*vUAdxWU+NLP0gDBn}_> z?4dG#*grlxq-(c(Zg27}vz@bJZtLlx^-OIUoWPxfC4zx{Dsuby84~i3X+uF^7UC`#b7TP18;b+P+5VPuVZdvplNG=JbUj)^jKOK4={Gd z{E@|*OHRsa`fW^F%jw%;Nuzz;m}S4%&IZ@)z9@3S>iV9TF=N7Fvjp`2N!g&%SILLKD^6EkxTh-|C=H zc&JY6Sz)Q?E1m7qvK8Zt-ap3d&hHN&|K!5_%pdv@pS^v*-uywdv5H+Mhzms^KB zM?444As98UgLTj3RBLKeU3|YA>8OISweQYDUmY!{p5aTL$j8WoK9(IpzyYq?`ul-r z2oa3|e+^ezIw#CRGsW35`q>pYoo`_HtIfDrZFOoT%}$Og^o@)*FB*DVyJQ{j}+h z`E*;q`_5~yQNt2WpSLEn?ZbU%xpm*sMg8C2!TB7%_W4M7B6G`L&wv3{;Y8lcI2CrC zc{fK_JOuo$(`R&}iLS<4gBf&EG=OUc!sadq_Aacui^F_$wzQw^!vq&Q_MXeC4Nd3H z_w1=KN<;Z{XZ2b(ws9s>GumxWhDC4Py9Xx)eT6i^XW!&&KkRfJHy&>vKEn6Pn)ne+PuBD{9>?l7^p|O`LB?tr68m!R$KKT?iS%sx zNNdEH=WZf)af-_fP%d^*MyEToc&S?izVpQ*>p++`m+$=K26dpK3S6O}#x64k4(xi* z+Peqi6J^xuv%7+cEcM*%TT^DZ1!a zMr|Ilcf|)RUBbjx*8;!xZgVXCeIWF|^zNfE?!xhF?=~ioI_GvPNez#}k@_CcDT>XJ zi7)io;aS6}DjHgA)mJNi^U}4^b~{eDU>FjD&ouSou)zQ5r2Unx-onrnS-_^lMw=K^ zwROMF5q)!<(5C(B=T5`ntCoUV9{&P&n;bLCsU4mg7CPe#0l!AqzGHZXd%!x0Sh7Wc#bFZYZ)NF6`MUO(8J$uOpAXYI~C&&9p)P zYWrK5Xh8eaK3miLpj`OjU-W=lL_5XVnP0hOTi+U7OVyMtn{-xX2j08q8JbI|h_-y% z5eQe-`F0e-q8f@Y23~7#aTKzPgPqx@Xs@EH>Zdk3mo}TRD*A6|Oz{?m{{a*5?B`)r zxwnm^{(cY!-hXep0FK?${{=@e2eo+63NnZTQo)Gb`ZMSn?)_-Tg>}ppnova&6yOQo zOh=R4OyBvrHcGK`5q7&azS{0y{g_>Xjul7|tvVOvhTSVoD~}1iP_}Kkuie71)uE$v z#xBDb(lZ9^Uu-|vJHR9!OZ>$7Y05^r8<>Fa^eSv0XqfD3)3&uVP~G_f$JQMj{n&Ox zzSw^9U>B1qO&PF#Z+|nzSm~=nV^NU@xxde=M z-%lgL^6I6_9ZUQ+Zt1V00I-j&kxpAR7{A%j3 zV)^LM&yRM8gXH;oZ)XqlFut1;va>Li+TE>)Qh3sS?HOY!eer=yGyJrIJ>9@l8Y5N2 z2@kbi$1yWVI(XIQ9h+`B)--)<;6oywQK#c!eoOSYwx+}3)aPiW+Hp27$7XJ%bvECL z;K~XrjGkvJ`gqTabA3&oLu!~vT;moN`xLicO#IB&B``ek!a3n{$&bNJaQb*UVyC_0Aw$d!+VUUN7BHkyeu9x_=Bk9{w#&zd#*t142AZGl(ajFL{zu+I{My4#pb-e#N3ZE1h>iTNRBYKpL z0Y|*7|KRk9hhN#7@Dzgo32VBTWp73(-K);#9KzTKFITC__Uo@r!?&=E>DmQabQeP- z_VM;3JpTFv&XOJO?OJ)YvQ}&GjO#4z3^bky{YF-{s$)T@*BaLad>mN zV`}Iw)-JRq(=qiA*xq6{84K9_yBSAr936eX-|lt9{sJyxw$B-A-Os3S>R(sB-t+66 zCy)1^nph+QobLgbwHZ6>6`;8N3*Pv|XQR3{Pr8OqCk3~Mjwg!Q#$F@o4Ezo~AAQQh zkA@k;G2f3S{m}1eR5uX&AQ(3q@v(@SMW4I-r`-Wg=oMPKeAp3exDostVs8i=G9FNX zw~8L0F5cp--7XSt?+kLqhu($f*V-n#X_HYuVT^$o6+V)I?4l!!C6L`tPo2Ua zUe%&H{q^Xq^SoP}W$pgnc6|IT&YAlL7Bh;+=*%r+Zx%VR&;3XL4WedNr0KkMD$M3k ztl6OV|71UPr*!*}_urXZyR@q0qVRN2=`w zj0iE3YkzNk`sSpUy=D^1W(S%gR}Og*A1ku1ILhT16XQ711LHZYcJ}%Gm))9F99A2# zh=y}oI)R|Q8y*8wMcOOXEXf3Q=;z!}5bntTIvy**HCV&P>AUJdJq{*aj6XBjuapRdbuD7?x8(lk-uiJj1 z32!mJ?9fr^Tw}}3Q-xY9tUlr^0)S|Uk|rKZl^;zmI~SL?6)nI?awnXy5~6)SX{ z@zjUNZG)HieAwN3igR$n035-V9%Iv`Cl0^)ZnBo1Y^6)1bbB8h^F{5_3UkWk(y?VA zJ+E?M3y;b~JJ4+lfe$fKHg>tSGM#Cv$_BmcrP~jFs<36y2*@&c6Ac=NM1C5{pHP4E zG#sDWViGmXAu>lgRhF}$V0BBBJ)di#&RVnwsP2Mltabu<0ep*wdrU?1woI+Ioh-vSSS$g6or@bqo-i>s-fW z5$qkF+C0>glbxgEgZ&4cez|w^Fsk6|d!3usMHv3R)@(Id`{8$MzYWmdkkx4bV{7sb z|9$!o_YZf@ed)H{6Ss$-Zs5;9+;81~xc`BlZsOXB+i}Nk-#vAw`1{BmHddElbq;_2 z!?_L5a~C|v?h#O@jaA_K0_X?0ON(dC-44gAx7^>|8SWn-P4|mU{QV_;L+eNN^B<9sm@Y6BuwqfVqX`ka;tEr@k^37scbLx4*O7x=*R^&(->{O}MT()+-0Qd8 zPx$@B*naKKyBB_T-o5W$c=Ky8J%RlX_;=O!o`q$9h$rFwT}ve(@4{Q28pc13uQ^^}DL!)@);E~jPzwR?Uh8@^ z^6_#|io0>k>f_9wj(!?a*hWsiM{cQtk8$1CX4gBwBcJKAyI*u`wR;ElZ!_n6coy#w z-p^Zh_l__7;q!e8)DiOV)VVjuE!@vcQ3ckTLP+<#*1=bSHC<}Kiu zJ1;dKR(uFyaHJT?{21J)$mj3fMg0E=$TfR5hRq{b9RYueYyNpI;K6$@~{YQ?0 zkw0%D+}?0k+-3ZK3E}N3FsuirF)XWx!1yxoW#vQN8iJFrX1dP_INd94^}3(GgYp}M zpq*d2U%NlMEr@}oS~Wy(dj9;O{@61Ve1#?+*v}AD}dw`>)e} z2fo)_0pf361T20;nRhH+UF-e^`$G$4-UHm5{W@%#lS{2v-gn;sb7H8cR{He1U3VMT z+S+&b=1P#ILmq14%)BJj#TM?c(FsjFbHV19(aQaDc=u~u_dbcczi4fTcJB2BkNsvxfxZVYoTq5*vIBK}-(FTC;)wZJYWSYP&aik~hr&uwdT2c8;gwe2LdzU5xL zfexXMweBL*X9tE+eHS^I!M;bo{2qVU7SX$&;Qwv>zT1hZu4l#PYgs$_czYe#2T1o3 z{E$)eq-W_~JcoFpN3s*w#nqi5-v)Ot)12Li)e4&yJOdVE8Vuo{SLQ# zZIIrTn_yr)uzSzWYPSq{Z*kD!-fy4!ev^-Vl-eU$Z{iPAx2SwRw8-}rZ+=2dU&GIA z6Hid)jPmGUUt+p!-C275JbaEkJOkqqa!220YXk(kVclLv=q%rc1%1!mxQF}4u=V-6 zZ=TtD#vHo)gne7g$9D3{dp^#z2rM4r*?hP2_h^HCkKmm9S46CC>HY!t{%m-b+h6Us zqmFO+Ywjdyy=~3e(_x%=3d|zwd0h4Vq^_Os({1A(TMxFe`&QmNxYEzpntS2=x~YhY zZ~J(Cs}uA^+=b7S50*)*9oEw^qC5ZQ0LS;++^fDU*e`+lU*?dN|GW3b%gYZ9iMh-n z;u~Jo^qjU--Ru1lL!MqEJIh?@ya?>i&bbfJ)n^ZfeSoKUE_ybsUq3hSH|Fx!sGeS|MK20?zva)!G`ez+BpBO=50_2P@0oPn@(IZBMq3cAxiu@3S%G zHkPryJVb8U=J_d#LCi;w?gTNEtrPnO=y$*Fd;aVLaU{46)vyKdtqbFsd)1H5*t+1i zpRqM{Z!lf@(7u(>zWYB&&t2enAxt$b_OclTi25G3=xtr^K9?_t(6hkH?66=Q>9%CF zXTID=Y^#GevHa;h^nA7hr*0kjWKV)md4Q*7{qo70C;Y|Y=%V4iG;A$=f3+JY*%l&MV*IpZxJ4RA0E$cPeG}Ke%izAZi!vkmWQqVF1QI1%|zh;t#rGa4P?fBGh;yy$bjXHRa6{%^6yy~UuE z-~R+9;QOY#rpq?B{W1vU9sI4CKzfILmc`L+r$*lNy)Dnzx&B7i_Zx3|qgzVN)n8D< zp^wAKD*Cm?%I|njSoF{)k1w%jiSgfCLqBgUu6d5()Af6eUNejmp@iM*9=D0yP(2)# z_sfkjbTE1N?w0zY)B-u%DZjwu^h`q?c0Bo)8z=>i#F+A?<%x>r1R~1Gv*u`o+Z@cWY!=f)1k;&NZ;6m=@B0jk8;v0^hSgd=}1A zb>}{U7ce5A%&v8xh3zKqQ#<^72karX^~*Mlpu*(uzk!Qh5^B+1ZTpq?HRBL$y^h(} z4n4XCg(=Z6m3SZJ z2BO0FxY4GKyV+KRQI$^}W$~JiR%?n??&slm_TQeOReOY|T!a5n&s3G~d1KNYF@q_! za}r+N?)tE;xoJ!+u^n(w3;j}i=KL7Q{n9_t65b1Ksr7xr_r(Vqv2h^h_2{2yi!hx| zze7#`!l%-$qo$k|+R5N?H-V-Od@qR+fn#{^{+#oZw^6QbRCZT~CBSxvk$}E`U@d@e zYw4{`+8Vh&1+%rNf9m^2zlRj^6;!wAB{<@s$uE~^SbL9<9(;PM2J?XP9X~@6^2OGy zpNjh+-1BAV?U|nu+n2vEePCAkJR=on)>wXwW4eVuVER>F2!1-U4T180T0w zTfjZQeR{7)xL3ab4@<)OT<_e&Zx1kHXZbyV^&|YeW1jL52>AYc!GbZD^}_V_hE_Yg z%XG$i>>I!w;(w0tnGSuDONY$S-k@Dxu4No<2z#b6)_d=l^@Z--f@Vd-5m7Wz5BLsOFOonhZRJtvfUk7OWll^`I>xmJ8Jq6#E`~a`p#c$Y;hUaDbVD0;-zP)3gYG18PKZn#~ zJ3H95!$uQ4Eqi6q$hA41F0zBOI7ZF7S6NP6>m#GX284F3=U!vW$&tEWZFH}GV|@ID7TJ6+W9iMsc?rBs8jTL%+-7ral?n|%HEJvEg1y7#e}zZg@;&W?T|}4Ject_Tm`?Xz+ZR~s zGdH^SL$0n~#u#uG;6zFJkqx5+|MNVxdOJS|G?_~f1p)$7y78aI){pMA52;I)#hIHX=`2sn`gSQ-@S4P?X)&W zz5FXY$u3sv-D|(H67+LI_#M4tDyW_Bz_nle$|CjRx(n{T{wt)?&eP$_8+@Yvyb|V< z@f;j~?hIPw(3ZCSbMy@0?PIpx@hsj@N2gz>TO`T71MV{Y3+r>6Vq!W*wo z_2-7xy&ln(X{7H_`@JQN&t4hMjriVD*kcv!eE;_hx!=Wzhg$Gsu(Kc-j*u8TkqXXY*qb1y>2=jjb?Pm#Nr!g>SyhQ6nO`TrNO+42qMaUp(u z-uI4vr0(ac?+0uv2J@4Dn&O&6_tW~;a^K9Bp6}<&kHhz%|NfkY`+#=zcFt({k&%C5 zj%+z&$<+$KD#*FRSle~fFMEvKfza>scgGUmi~U+tt31CmAk1jp4>MXXaip*h<&C%V zVb+l=_v03Bef;`;jT$*~&272tKa5+t8{^mSBi8$VyPrK6w{q`~UuR6_*zOqdnNbU> zTxv<5=nlU3-+wyKT8GD_i$@7c)$QrObS?Ps-JRuTk!tMcT(7oZ#2g z3i~>!`K!yhT3gz1w(X{#YYNr!4O4WVw)ci}B2#Ttn-Ap~vp#;V+I=|1*w({n-yS=w zwDtPZFm;wGqrLZ))aV z_OwF4y~JVtm3vbBY!6#Wwuay1ZfIdUvtJjet?ugyhp^^M*+cy6+u)A1=I6s&qI)~E zHhwnU&lq&<-`PT6aUDB)FJV6J9Dermqa6#py5Q&ZY<~!LgZu_|zOV0kD;F*1Vu+=` zdztYAh_j*4Xqi)bIVl?)xe3&Kh zHQ&xX!tP>>9p||BeBA!vOZeNT$Qeh2x7>F&;^Qc8)5cvK^L+(9a|GyabZs|myvT9l zm$1=O4pNDSK2LaiR5i+usZ0g5h(y*V)hD4j^NJ33^7z#oKY~Cy*p1C{XSCt|P4}Pw zcUw)%8rC%pU;JZ)hw@W8-Hx<>n7-9;ff}#g!Ckn3#0B&tD*z5{2HE`2|9alpTFk=# zcM-YzeWz=1zd|{1n+pRFw+HZr6aV`$(&1ppZ*JzbA8_UGc9$Dw+Qra*>3)r>?A8D) z_C|-vT_YD6+T!G-0bek|TaoxfM+{q_*r}xpVuSSNB5ngNLkDBGb{%Q>iMBRpX9a_}b!gvfJeu!xAvJ6S)^ZL}%llP;UJNukK*y zb4&REgQ~8a+)L+BO2B>4c4xR1qHA*(NH(q9D9%YW_n-d{cUA3J9AK~Azb(`j$(lJk z=Ox+RaDQokba=!44zBNK{rE2}SjT7X3L=>p+qVO=_zJ(XpTd;=Nc{Hiy{S3b4-@+|Jyq@>;Zu}Jqb zdm*>CKHRNGJ~ijDC2Gn(+k3)A)-VYTzJ&i3@RtBu`NPWNuVG`jchTfYLS&DtO+ z&Dd~f@3hS>>fvn0hBbvZb0*XBBZ+An&KDpiP4fH=DPbq$q|Nv62SlSu8}4Sq4wxC6 zQ+WBb4aZq?b-{RzwATA|+Fw8NafDHwGk)P6$*{ibJ5x9Y4o}v4Ogcm3JC&H=VO5yS z4=XUqTPrZhrz*wwgQvXU4dyl25?@Kis#;7&S^!o zWVSZY#(;jy-tSR5?2+!q3-&BJ~w6qU5WIDEV$O%6vHyCErd&$=B_T;5J4^L{+R`b|d9H zqVf4mB>X-LX}+IcWSrGX5jbdZ6R7BZ01Lk3cs$UsULSxD1H22%RSKuRN+OXteR zLyX~vZ_RTmknIC!LT;ip;5a<&Gl;cs^r8I;X*j4O183Su#z`5;IO!r8Csiclq={sl z6p@UR9+GiVLk7;Ykc^WOl5x_3%>az+pz(d}#~JhCVAJ?}v@Lu*($@Ss%2vJ{Wh?)U zvX#$9*~(9&Y~`C#w(`d)Tlrw5t@&M)t$Z!YR{k|%yD)!vWqC{<+BW`{jDg=JV$A=N zF!IABjQlYPBfm_-$Ul=X^3x=Y{51(9zfHuL|0ZGN$4MCZ^ZUzvl)GpATX@!Em^hcG zZ`t^AA_AVAgfKr&K*);|5c1&!ggiI_A^%N4$a@nI^4$c4JU0npew%=h*Crrhe73hH zGs)exjPuz=#GKC#5%WIVN5uGS9}(lTeMF4U_7O2Y+egIsY#$NhvwcL2&khmuKHEpc z_-r2`pS^Sw(X`zY-;KJwGqN^%Jr&XTa3&JIoP{)>&OpkyGm!G}45WNL11X=+K+5+s zkkUW~Qd-DDnkF)k(nbcds}Zi3a{Cb#($4u!X(R>F*GM`tXe1TcY9tNW)kqq$tC2Kh zS0ic2u13<3U5%t6yBbMDb~TcUY&DXG>}n(pDUGaC3FAnv2m0Mr{%xNnn%OL6Xf#xb z37V?HWE!i$B+XS|k_Iagv5k(4IiTV~4%2WEhZJ1IA^jF{NWDcI(ryullv~6h-4=03wS^p}*&+@p zwunP|y&9vr;p&c?Xt7(B4^fRq3(!z!HrjNViIyTW(b8fjS}M#$OMjVYDK8T(&1Isc zwrsTNEE6q-Wum1m`~JlE*tS*4;H`_O_Op*^bd`;Tsxq;rsVuA%m4%g_vanK97FJry z!b(Y5Sm`JWD-~s8O+#5&DJTmo{k+Q-Q&=Zuy7aK=g=H*00SHDe_&nz53&;5*4E^QAl0;RhcXV>_5l07^-!QOm2+FsrqZ7)BLwwDJ-+sk*O?d7%6_VU+g zdwFVtz4>Ugy}UEpUVeFP+~3;%?s$B4ALZd1zb(SUj|=eT*V%aac{W~tpN*FevhmVI zHeNc(#!ENZcF&~;eulF#?s_Vs(OM=FD$7EezA}(fRt8d<%0Nm@ z8A$0U11SY%Af=rQq*RlIG`(aXrIZY$G_s^EYul#&yo#G`%lh_>KC*C7M+VNck&Kfv zl5x^SGES;U#z_;&I4L3-Cp{$Nq=pQfX(1UWB_!jdg9|*phh-bJC+*s}b*q{sJ-SPC zxP=zUzHq#luQsK=-rN$kwIU8_?#`6v*dn%H8||N#v!s=s{4!iRU!&`l@Ivb= z;5GeM=T%Io&Z{_4oma7=Ib#0O)p-?*R={iVsXDJ>R&`#*vB|!7|0J&_ zrX*t!FA^~p3z9I>c@jn%PQpl^Nf>D_2_s!4VWgQPjP#I*F<(!@$d8jS^3hvUZLL2R z*?%{NCsiIV+hK6K21}!Xifm9vH8#^tB{nIl5}UMEiA^f3#3p@KVv}+!u}RaF*rfJq zY!(M9u_;1SVpHs}*{fx9OMEMh=Vy1nL+7qf#fdRQ6B9C#(0>-vw4Q;Kt}~F*a0XI( z%|J?<8A$0c11ZgAAf>M?q-iMwDcxisrIAS_KX}l7L)D)Tz|-FOK@GP)rIjgUqnSd6 z(ma@k3i2Q=6);Fs1q{+w0fRJFz#y#^Fi3L+4ANc^gK4mUL0T+ekS0HxQWoE)?0y}? z_j~;p@^~gaPTT*q4BzOp3J+9TfycC3%p=7X^GLVFJW_8lk2GA&BPAE}NYBMQQgsC$ z({?eB6kg0DozL=2e{m#Ur!hP+I-Tc<)9D;ftWM{6Vs$#l6RXoXo>-mE@x9 zb3Cy+o#%S)}Gd7HRofoR$~%HBI)(TNMv+jed*pP;LR< zG@Ff=TC?%eX*OO8&BjZc*?6fk8!tU(&1t#gZ0+Tddfl2zV!em;nz$D#QU{Va& z_`><`vG;e-`!f{!3O-r3OXBl#jwTLN<3c2;#AUId3YVfm6)wetDqM;PRk#!rs&FYP zRN+!wsKTYlP>IW8LlrJXhbml(4;RL@eRF)y>S~I0qxlRJ)SZkn9Veos*hG}HnTV1K z6H(GzB1+0iL`g%5D5)hGWx7a2NdbwdFxDLRUiNX@o%!_q1GSlZIBUawFpe7A_2aI@ z+cxS*#y}g17*j?PM!HDCNEJyKX(9RQha`;Dkc5#I5;3NPB#d;BgpmrakNarE zY0T@n$i~+T8Q}Rv45otu2C1TeK^iGwkYWlLq@Mx?si}ZL+A3g>(ux>NcLfYmVF80Q zd2L)-?fL;*rI9tnkMeMh9*gi$V*%c@n2nbbv+>elHeM>s#!G|QcquR&Fa2fXrM?2Z zX)hZu9h)$v|EKsdalAHjaT9_-B;mKEU3bz`0(Kuhygn|qxS%j zpugI-fopqqdhe3BfPUyQ>=MKW%MrsKDEp7g*k|I^`^%C2R@}XN2dBB8V&3!!v#Iy( z`4908*?srOeS*LF{O*H!n16vQ_kmvQ>15vX%OyY^Clf zTd6nF*3=ngEA>U$N?lj_zViwE>=bGP7ckKkWi<$mnCZ~hPcf+trTI?ndEI%_*YklD^016D5eINyuC`k!YHOjzQQP`2A4EdAH|biY{acW2PxJE@|68Ovg03&Bj8lnOM_k7FNp4!b*=>Sg9}zEA3@rrMN7tbe4sc zx-zk*sVuCNl!cXk)~B?O*iR#Z9RAA=VVnpy*TV*yzrjpbzqC8NShT6&@(M0*`6B zm`AEE=8>+8d8F)O9%;LnN9r!-k-m$0r0@znrtxAPsl1p+I=?oj)32fML${7U+y(gz z;|uP}aej zHeR}$Y^A$99;d%`G^O5HmPV7e>#;$h)!0n0mDr@-N^H_{B{nI$5}R~hiA}1n#HJWf ziA@oq8k@z3N^FW2mDm(JCfj~L8~7Bx^JDbO{VE0f>LV+elk<-8JWc$l%7+M2kh;`mM_-=$g-ktWx8V;GuPREY^us0x$Cp9)NhJQbJ}b1E2-3=t~~)~iDD;bG3L;XW-G8j zwZ$x^+d>v8w~$5JEo6~;3t6P!LKZ2wkVP6UWRZ%CSxm=;EK+hIi?n=os{L%$IC#rH zG6M8bjdlyr&}=r^w3>;QMl;dUW+qyi%tT9znP_P+6D{p!qNTZPv}r99EsbTOrLD=a zZTGG1y=A@I$v$=rL!-G$Omkz~*gVaTZR41v%L-2yGq#P(Q_R>ljwxnr8^;tgwvA(o z8QaD&#f)uZndZl~aZE8|+c>897!Y=|E$J^u`1UkIN(_i$ii-jBOtCRwjwwC{%rV8s zfH|i47%;~a9|Pu?;$y%ZQ+y1VV~URf^GvZZV2&w12Fx)j23!h#?EYzBZSQ*Vq^?v% zqw(u`NN73>X&TNzO0yYAX*2^VO=cja!3?A{mw}YVGLX_#7Sc47fs|%4kkZJ7udr6c zle_vFS<)tA)EaNyXd?p!T_mGS6NxD4ArU1lB%-8)M3gj;h?4&&qU8IDDEWOd%6vW% zC4Wyu$=9*7W88bWOL80QojfJ+W38QXPX^zDc(iPch+So4Y}{|X6|;T{&5q$?z5|kr zY!rzRa$ee=0qQJbFr^kSNVNqFQg8u-)Lg(IWfw3=hU&LUMpnyS9p@2aV z0&~0Lx@h-9MCcRis$(p75l@~V!W`l5>9VMTb)sBsqwZo3=(~`^6kfz3jTdo9i z1$fhEHeTAy#!Hvkcxf^lFFj`CrNwN#beN5o1`F_}zihm;myMV1Fh4V`yRrG1G(@Ad zCB5xdtHZRKo^BS>^p$~>vNDj;R0dLN%0Nm-8AvH811arfAf=itr0FFCDWzl}rICws z8tJd~yVP^J4s1U3KxbC*{HhcD@8?7tovefx8d?Fb z>8m=gv{#*1x~$GC%~t1?o~!dp>(zM`2deWbMy!C>;zxB}#g^*4G3_?jN;VK_cCh}q zhp$%gUz}Gl+18I?5HAuj77LOv(s>d_8cxDUpGg>LF9{=EC1IqQB#iWsh%sMJ!pM)4 zF!Iq$Q*Gl{?lM}yFn90IX>cD+Bf4LB;ro;Q(`fOXpij&2jZ&)cKs^Z849OT+AbNSKu+l7xO3z6!R!DT%Xb@@BJM!m|or7KXZuI%b%C% z)^m}KwhI}c>LLcya{+^tT)-d=7cfY@1q{+{0fQ7DZG1b#;*Vo5Y z>TZ>wo3^+D3lv_=V)`y*k-7_6r0qf$DZ7wGx-MjqstZ}9=|UDMx|qfET*x9d7qUpp z*W%PT+$-a*#^L&V4_svA=%X6V7oef_Y_w@S6D@6LqNV9fw6vUwmWDIY(rzYNn$1K@ ztJ!GNXeL_P%tQxGZlQmBic`IxqJR52ets7BuGU9+xJF+^cqps@ZyL+SOJ&)3=`0&B zrDfx#wQRi9mW`L*vhh+}0p2v1jhE`O@zUMKoPIc#o$e#M&&xR)Jyzp_HY;(NPOET9 zvsJjH-zr?vauqJ=x(b&xUWH3~ufiqmSK_ibP=!k|p$eDc!}^@IXUD#qr3_7MsKkWG zP=(3jLIoy8g$hiH2^E+W5h^e#9#mjbG^oI&SWtmUk)R5b#eoV;iUJjw6azktSMb7^ zdA5Ji#*ZPk(S0!o6ko_;S})>|%8NLp?;;K^#4g#t6NroAkzRF{R7-mQXSaZ3~zl6ehw$RPdy-*zE2V*2edJTd+DIG*`_dkjxZzdeRWI^XHq4(F=2niFk? zt@$S2Cfu+SICvVzUG(dJT0VyVe)VZI@#49qg_!c3(z3YoT+&i(dM;@xem$486yu&t zT8e|uB`w9u=aQD<>2pa-G50y8WpVkrq@~#XT+&i}zd99r+co_Ds-U}(gKA=M0UA*? z8*Oni6RpUXiB>GjL@PRFq7`p4(TX6MXvKs~v{asrHr-~TrNm5h%p3}}#jiBX%zb`7 zr?h#FMt9Y?=H^i1o{jmMpF@e|l0vIIW6T^%Y`$XVP-3}a=1^j}V&+g{xnkx}V!2}G zP~y4f=TKs~V&+g{xfCC6ZQ-q$J*c4n^`do~TiwHo2*2s_4Cgm-{qym%S=QS%Seh77 zkquFz8k@z5N^FW0mDm(3DzPbARAN)SsKlm-QHf14qY|5(0nq=w4I2Oh7(cJY9dOSOhie0i706-5hX1pqNJH*lxZUo zB@HB^o__e$00`$Gmdv5q&= zH)s=fZ4M*y%O}@U5sgYRk!(eB()6uJIx@5(>B!KEq$5Ksl8y|mNIEjKBI(G`ilie$ zE0Tlstw=gDv?A$9spq5R$WL%?4!`W|PiTIKpZ76i$P;z=_da%59^$QoGJK<-Dm+kA z1s>B@F^`m1%p=_u^GJooJkn$_j}%(WBfS>$NWB$!Ov}YQQg$(qbbfWYPB+m;-W;F3 zyOD!xG+ls(lC#mK-%PYrn~9cIGtp9LCR)18L`#jCXlXDLE#+mSO>dcKsVoy6MqP9f@3dch}PF8$D&=I1)=w&oq>blX{YIVI-EC&oB~8#f6brDlUw~QgLA< zmWm4_v2>gtiKXJgNGug69o$}y<2k2K(PQLy@cg$ZXIGcMsma!8Xa%fLSanv@Uu9OQ zvofo+TbWhLuFNXkS7udIsLZOEQJGZ{r8=v{o64+;MwM9=t0rb$wlHJ#5bCW0=?EG((Igrx{{2In5BG$!UfdO-?h!XmXk%Mw8PFF`ArX znAhYqLyRV;8KlXHk#To__>#8r)>K>BzM(&kZnRl}1^O&zF^v|oNT-D?(rO`#^jgRw z%@(pqw}mXyZXt{GTg+k_E@Y983t6P)tIO5c?gCiYSu+ssbJ=LqS|(Z=%S20C6YHqoVk~)#H!3*$wRBWDvCb2N zZ}e7$2g<9!V;U^xks6D6q|0I+DYTeJS}o?0YKwWK-(nsqxdM-Ax|m1mF6N2VIcK=J zGh)0?>o(T0+PXV<@9MtoXWd79;J%7O>~Q6qS3B-|?RMpv7C+!;?!ef^?(T7pK4u-( zTzA?A;#r6P1Urt#@!kIXmw1L#Z9{iAWP=X|W{2 zQqdy9Qt=?dQi_kTl%^vrrP>Hf=`zAn%8RlzZADm0JrS1D2Q2ya;68l#4Bl}DpYFe7 z*!7SYOYb4`mcc{jEL#tmvur(N&a(B8Im^~V<}6zenX_y?WX`hnka^4CA#;|khs;^Z zL(VUH$Q`T=h8<;%e?-~AJ0k4NH)ieR8MAisi&;B)#jKrtV%AO`F>5D(n6;BPMA(@x z%-YElX6@t$pMQ+#z#WFW_}jO6Y;FFAHjDcU@1o^8ws$>3oA?QS_oub`(;vTgjjvSW zfFFi%uOEb~-(nYkrd_US={vB;EA5O40KaIAR zFGkzT->!!}>g;#+eb0aS)sJWR{_Ppsn%%bL$V9>ivykSE8A$nM22viHft0UiAmz0g zNcnFDQl6ZFluu_N&AT&@^79O&JpPLJ_!D?^_Z^LW^pT#p+vr2_lx+X5Y!hXZG4S$4 zjQMvGMxLF7kxwUK*CdQQH3=gh{V3i?`A!kfQ{XtT z@z)|ee768^ew>Y$PiN!h-`RNidNy8upN*FWvhmVGHeT8&z?)98@zP8-Ui!JTfoRTo z*FE%EI11(r@Co$6IoIx25E{iKBA}5ZgsCC{Asr+jv1h2C(ZT-M%4s$h-kFItKh46*W3#aG-7KuUI14L(&ce#G zv#|2spS36I#MzQ zewTd@}(d&rCpso@)Gagq~_VBJ@<_5uv9Vj|e^06ol`o#v?*c zH69^P{Af9%duMmqPT?XvytDvsKAVl-MGJ6NkiPsmJAHX~HeSA-jhE+V8I^t0YoNx!$z-U&M-yKen==6sgLoxKfomicgg}En-#WR1B-iITqEX;?XeraM#GO)-l}e z*hnnB{oHtN^FWLmDm(bswij99LBakpW^y`uZTKQe8fp%=gv z4BsE{Z&Wfr$Ac7agP&{9Tw~^H$FL{Bov7N~*UM=v4yw+;nVyqzQgSj*8cxPZy~#M~ zHW??yCgY^lWSmr*firz3b*^TCRBXSj!cU9&5Sc(PJ%FJbJ9Pqwi_pI6Mv|Z1N`48BM|{LBq2-z2?%+80z#gifRJ}5Amq^r2zhY=LY|v|khdlw z%tI3p^2!9nSiEMxqwTYFPb4}X_sU+pPD2mlbqabhUdN-y;&nWFEMCW>$KrK7dMsYY zqsQWPJbEl%$D_yMbqabhUdN-y;&nVa#OvYcqCHW?$NsPu(Z=gE1mkrI!pG})M2Oe% zh!C&i5g}g3BSO56M}&ACj|lNP9ueYo3c|2$g)n~hZydMZD%`-^XGchxz5ToR!`!&5Db|g4GEg~b znT8V6l8zEl(o!NydP+n|Q;8_)DiI}ZC8DISWRz(v5ha}^qNKGe!F&CgCjLZ5?nRwA zjWHPm&rQUb-zH(?wMiKHY!XHun}m_SCSl~QNf`NR5=Neyh%rA+!pKXLF!Is2+LLzr zJrVcLvO7(jow0ytPFk2BPFTq6CM@J*6BhEQ2@CnpgoV6i!a}|=VIfbLw6J=guuv^e zSg1~av8?9scK5r>?=|&0YlE7dv9Y?Hv{CI&+NgdfZB)aPHmc)E8`bipjp}*QMm0TS zV|6`gquQRdQGH+i4E?18%!&5*B(kQDal#P)-oyCY@1kmIIRnLBQfgYhmz0JIy`(f$ z=q070LN6%|6?#c&sL)GFLxo;a8Y=XXQc=E_l!gkuq%@Sg_ZB^q<=OY%`b^*N4C*qiE~WsSIYb&kc)igGt#8v)%GQG9Eky9o~lIpDo^9j~7v-}&d4=cueh z8?!XJs?G`3RpvBJR^^mpt8z-uRXL^hs+@`iRXG(Ys&XohROM8Zsmy6Hs4Ax-R8`Jy z{8|=6{K)UIMXpCS?(0XKCTds|EMq~OC}y$9P{^WKP{<EMu z*c1yYu_-20VpD9W#HJWgjm=_3B{s#3N^FW9+wrPj?Em*i3;lh5O(a-x3WyFXO~E3@ z3R6%NSz!u_EGtYw(Po7yC<3i81x2M5rl3f*!W0y}R+@rEv=yeHD7V5C6#4F_MLv#G z{H&s1#pQ`>oT2ffopyeuiF+&MN7P#(zs09?W&DbEE8|zJTN%G1-OBhC z=T^qAD7Qj>i*YOCSA<&`zvA1*RDAmev1=ReXz%t60DXVJvNNJ~VvC`*e`5tfQJ5tfP@5tfPo5th<&gr!s&VJUq@SV}2Tmge&j zmh#>ROZnlOeGduyL)_cr*BgJCybmv#xNp9(^u9b|>3#XZ()+6YrT10mOYf_um)=+X zF1@c>ow#pxx%9qjaOr*3+qHiEbiac5t*ssL^yluL{P4C_4i5F1k)G9aGEViMjFVp^ zNIQdaBPX3jQliwxd6~{ASWdJ~C+|f0(hcx}UUBJx|)GPA~8qejK6oXRYt!6db?1mMh+S z?i=)94zO;XV%_*e1`1x1j55DTM9Gs9QSz-sl)NnwCI3rA$s-d{^3g<;yfztSew>Js zXD6cM>({5emm2Uh5?kn}KgIu?v)~?gd>{RTapdUUk}L7HjY5(!&_^Q1)RBadHj*$> zMiNH4NWw@JNf>D&2_r=$VWfvdjHw|BBP}Fhq=dKVqdZ+Z?3!vkamgL{+vpwhs*yYL zosm28kdZs`gONL`?U6gG(~&!>xsf}npV2#33nO<_)+2XRq95_i7@oAkFL@2y(hZv} z;3-XvCX6rst9X1*{ULrs%Zgfz!FS)WaqDrIeaufhvUhwxMfz;%dD`S-{Otak$M7j~ ze1tg=K5c*AgU{ZuZ|1RohCH6y{?vwP@=3d8!Wo&Hc(QQHH*xh+gyCk;8)Ik@W_1+ zZL`Mxj$S@nyHkk%H>|Nn`$c#>NdeyCNH$*4CL6Dql#N&9%El|cW#bhEv+;_R*?2|N z0=&iDY`mg#HeNCOTK`O)_<5Tg9Q2Zrp6MhRCw(O2q>E&n^pK2`4w7;5|74u}J{c!} z&%l|VC*$Pb$vFA-hr^Sb`tNRqdF7MNUiYR=$i~9IGqL95Sy=gb7FNEVg_XZ&Vde8# zSowVxR=%HwmH%gAO#@k2=^zU$ExgOV*E)Ka`|fk}ot};P{HzUpd&b6mc+y6`I%y-H zoV1beP1?xECT-+PlQ#01NgMgbjE(ugq>bu&(nfXq&e%MR-)r&^_527cUfzOd%!IQu zy3x*^pT6Hj!zep=M}(bu$gG{bWY$ieGHWMqnYEM0%-YFoX6@uTvv%^H2s`tjSvz^r ztergR0#CwviV@T!8zph%c;DWIY~So^E!=zU&tYVDe_>aXyK)C(eEQ)I{w$7|yQ?V8 z`0~SaOyi^3Shm=C>G~Es2OC=K9BgQ@bFiVs&cTKjI|mzD>>O-pv2(DY#m>X}7CQ$U zTI?LGG6D<{FqNRjPwA7G^mLf9IQbi_O%E(5WIx^8xNG4h;x!9li?yu6c z=PiZ#5O*!jzR^<_4ob?vnTC>aQcp5Yx=F@KG08Y-B^f7`B;%xyWSo?dfiq1cuhp%96`H8dYKp1MDm_(ZmD(z^N{f|QrPRu- z(s5;0sk}0)VnB6Pix8Dr6+bGoD!Tl+EV^uUz5?&pymv4kvyB-Uth?{5j=O2SSDpr< z+KSV#7`M_i6!BJ?hT`8!(@->AX&Q=+D@{X@a;0e~Zmu*9MbQw>e z8^$u9V7$-o5#6-;GQNLH1@kPjXLi;;&r{}Cix_2h+nIsMSYE=77`P&Ci+wBMR?J%o zw_@E&xE148!mZf05^lw`m2fMTt%O@KY(?A_yH>)jn6(ma#j5S8{#$H3;aV+sv5rQp z6{mo>wbB$UdaW=8#jq8oph&jD6co=^n1Z6(3R6&QTVV={a4Sqfac-q4ShQPV3W|9v zOhJ)vYbx^fS8TYO^bqmw0RQ@vQkI+#Rh<*jtum*@v#OkmU{yI4v#N3`N>$}lT&l{c zNK}JMh4EZs?0xAH}J7h->s)goknq@TS>pywsYFmrk?sQfM|_+RVmFmDzadF&i%> z7T`^T*?6fh8!z2miqp?sw4JB+7OA_QifFW!iG<3skfyH;q?DC`l%_I}Qd0&}I?6yw zK^aJCCj%+fWFbv28AvH511XJ6ws4$%3o~{89g1T+E9SxAy<&HJN;k1Ajg~61L0{F_ zOmmgkq{B*V(q<(#>9rD@G+c>Ix~{|~tyf}`{;RQBOsK@BI8ljBu_KvnYihs8hpktcpFASrvmSvnm!rk8&T6r#GOJ=# zWmd(ijj0|=|6X@Q&QpA!*r_Yea1u=4uD_?ee{UH_6PK!SAsSWUvKUl_OOdAvm*Pzo zE=8FtT#7AKxD-*Ua4C*d;ZpRd#APv~3YQ{96)wexPy71qYkLcG>wET2??c-|b%@{j zhE*6Fwdeb~J9T)PI8l`kv7#cM#fxfuiW$}T6gR5zDRxxjQ~apLrx;R=PjRFgpJGWx zK8q*S_!LvB@hPr+FdYxNrvthx@wQETNX8%rBw|eGNf>E42_wBGVWi0M4w5kP^(2h^`F!6;Z(@d!HRt!~-Eu!+E}bV3x{GmkjUOl3r}3NrM)S*e zqwVFl(f0D$XnXlBMWJfA_J)ik%3fX$UrJ0 zWFQp@GLVV@8AvHV11ZI4Ax-HSNGUu6DP=D~_7xXY(R)`c6S>^ur_-GB_$lPH$4?=r zJ$?!~?eSB{X^)>mPJ8?ma@ymkkkcMNjhyoMDde=rPa);;9|mvk&+mn+zTepAX`*~K z7G9r;HNVfo%JZ|Z^8GBVygv&o|Iflo0a;jSAPXxMWMWMRSy(9{3o9*Pgf-UR;chs7 z_rRYa*6ANz^*uG7CdRLc48JW9&a+%ckME#;t2hG%y(FVdDTyd)BoQTbB%-8?M3fYf zh>{i(QBpx7O8%dWGS5#$$>$SM^7f6z?{jcYfa^N^@)O^T=jeprfjY*u9bCJMtGwT| z0L2{e>_QIn^CAv;eG!K=P{bic6mdu&MI2H~5r?!>#33aWa+t1)IHa;74r%Vwq2_|3 z`m@HLVJ40(iXX|hifnXOg$LTJz+?I==8*=Ad8ET)9%-?dM|v#gktU0Iq|0I+X|n>4 z>9d$e8ZG9LPVal2j?cmI8()X`pXV^#gi3i{;4ylL94k??-SYwc9`OS^Z>DqR>`M8e z>lN~w-dD!2IIuE)#fO#gD{iceU-4vR{E9Ox<5&Dy8NcGv3i&Nwt&CrBY-Rk4Z#Smm zTUaIZYZUyB-WeiW=Ul7;G-6XW+9FRTT5%;4t*DWSR!qo5OYxa#={XZEwPvEF#cZ@G zEfXyrWum2$zfP&7d*=M`edC+x3ml^_z%et&&;FFT!CK+oD%qQn!gELknqGM-ru`MC zq8PE_R1`~AoQh)3ic?W+T5&3hVJl8Wv2MkwC?>8v6^orKPDL?x#i=M3|9L7}_Qza( zOCP8GKBwD=$vj)apQqf!$dz#;GOmc*;^9iT6$Mwqt=P8`ZbiJ6a4XKOgj>;VCESW> zE8$ioTM@U#ua$5sYORD@vFgKq1RAcacfZ3p9Akymknx$P{?4u;wuxt&sm|v>+$!X- z_*BH9I8?-;cvHloxKhNS_))~6I8nr*cu>S4-4}A0zKb}d<06ijab8!;W4mF(DImi! zV57##QDhlAbhD-Q{6sxQT7gJxxTs=bWa+!RMN$qT_Q-Q!(?o zrm0B!T+>v1eXeOL>OR*r6^oy1nu^fRIZcb(&oxa&^XHnTV*I^s98Zt&U+7&_?p5V# zM2P3p`vtmbj<+4lc$;=&ay_$@A8o=4`7Qphj9;;SW&DckE8|xTUm3sR^~(4an^(rK zIJ`1`#oQJ0TYOy^zhddi_!T$LZ(%Lg@7nSajJq0!Z%Urv9sM}FCaxvfBTgmQTil7Z zR~(79S6qm;m(HW@rQ2wG=`h+}x{9`!P7>_R@1yPI$IDRHVe&2nL)v0HL zaa;G!7ChL$XVUmz5gz_nfH(il#>-!`@$%nny!<&EFaOTQ%ipu{^8akS^iY5|ePrXM zmu$TBb7xLJH=(JA(9Id%z&dqZHJ!K-Jyqp{zAEyW-m39Qf7SS;$7+1iXEi?QwHlxF zTa8b8uEr;QSL8FjSL2iZtMMrwZ25R_YJ2e?VW-E2?ZczDA4328hy(|?df$D6zkN@z zjRNDg?$K~%r#oI9j={MmJ2itkaX!b}-BUQ)^FqSzTlZ=AzMq$EPx0{Yn1(k_dDg1W zW&3Vw(`Tr{gVod zJc>b|Pw8|##!#z&M<2!S8t&}0uf_$vR^l?vR^gIvt8huXRk)D&}%Zvl$nT<1`|LP zi706$5hYb5qU8U{DD(70lzci7CGWj5<-NDiLmu(nWDGnv5o3Ovgpt=KVdS$(7MB5zjH^>se#{y|Y}i{K3X>`&hy3S~jDb zB0PMz0B?Srjh9bnuZUVfjAmj<%&(nB_0+9<%APO|aROg3KnxzSa{P(NXQ zVCi_H01fSAqfI%PXz3;sE!AYArI}2$6qAXTUNX^AOD0-c$wr$}GSSjWCR!@_Q&mP&SVcyut|Ft9SdmfctjH+ER%DclD>6#i6&a=W zs*Dx^Dl#f6RAf}7xHcCl`uCfDXci8t&%l|slW|gTGEO>8#z~FIIB6~!CuJq$q@QG* zRFZ)+EhOXQ@yR&(_2g_f`-hKgHp`!F#o4SSeqMzKeqVvdbWqGAT@>?3C&fI{O)-yj zRLmn?74t}E#XQno1s>C3F^_av%p;v{^>x>u59!`pheqkURBHDdS`TgS%K>(lHEmOM zPUyEXr)jw=r*vJFQyQc)xT zoKW}Pa0P2NlB|ds@nj{;7FAZjtk|*wW<{74Fe}cifLYOI1li(H#P3W@+$7E$M$!~JGv9NkO8rzh{2*p z0fXX00fQnz0fRJOz#w%OFi6J*3{q?XgS1)1U@9zNklqRyq^#>x%HsER_f1cG_;T*H zeZ{Sr1>=%uA1 z+g@5KvhAg%BHLbCDzfdRr6Sv2S}L;brKKXBSTb9N6OWrd5_<0<@r$jIuKWW_zw3o zyamFqyKZZ&u-!)LDm+j_1s>BzF^`l|%p=_t^GHR-JknG#j}%tSBfS;#NPQJ}OpC=l zQf4uabb4*5Q}&zq4bqP>M%afocb)&D*Hip{+Uhb32OVbMOn1pR=`0y1T_xkBqhy?P zlZ=y2l5x^SGEO?kz?t7ClY%Y12Q+4xi<0=|`mFds`m$k!4O z^0@?rd@lhZA51{V7ZVWj$pnOaGYMfnnt+h6CLrXq=a+k8_gi=FVw_#$uSxds)&zU= z)o6QpYP7xlG}>NX8f`BhjkcGEM%&9jqwVFL3HIij(f0DpX#2TX%C(^b>pAY*jK}gg zH?(YgbE!(k5mT{r3^5%`7ZG!@bP+KZOBWGyv2+nJ7fTlrbFp+0F&9f05p%J03^5%` z7ZG!@bP*w+T_48CFW{m4b^+H&hAlhKq2O4E^L3497Baw7ix|vv3mD|d1q|}+0tR_{ z0fRihfI&(qV30Bj7^IXU22)M}gOpUjAZ2|xt*mZOWnnayjfI*rv8JOetQ3@mm3FeQ zQcV_Cddb2{DOp%)BnvBbWMWMhSy(9|3o9*LpccNzpCk98xwI{(E{vK^@9v*2e zpN_Pa7e`vlZzHYcsgc(5%}8r`W2CkGFWTBXF49^)7HK`^Rfm|NeTrU-?_tk*)wK1{ ztEQ|My=uAjm{%>g9`mZ@)?;3^+z{wIfqfI)RrI~B4m`s547p0(weRe%sKNtJtiWSFTFfKwE#{G57xT#Di+QAl zVjiiam`D04=8>{0@R;U`d8Ec-9_e(etGl62d7|$zw92oraAo~#cZQ$&cE%x2n&QsC zPjUCuaXo&o9m`hdgnlb?nwG0_O4n66rSYnq(tA}-X}>C`;y_hS#e}MyiVu}JEmlAnJ!V!)kv1$S4F+E#SX)2_+~HCN;_O;_WS zva9h)-_`h}@@jn2dNn>Nz8ar&UyV=dugGUHpc;dSY8=jRHENp} z1I(ePN2}B5xzXwrdVaJzg`OX+PNC;Vt5fLt(dra>ezZD;o*%7Fq31`d)9AU;>J)l@ zv^s^BO5PsYe1)0dBlkC3xq&C2pT6JdCCV<2&onU0CvTs%lV8u;$%AL@@)KQ5|s;R^#HC1Ah$||u*eU;dx%1UffYc)1gaV0jX zyAqpJf9W39ppKh$?E6@g+Jn-!(S99ZH9MRE@-43LeSqsr1X`AG%aNyrJD?-G_s!R@xyl`+-505qoGPn&{P#B z(^v&2X|4j3G+2R2nykPijaFciW-BmB!xfmM=_*X7@d`}Rd<7=OfDcm@d>1`p?i53d zxsi`;bYIK?#TRmz){8i#@*)oDyNE-|F5-};i#Vj_A`a=eh(ii4K0_M|PHvXGO%HwYh z`)`|=FZsb{MD{WN*`F=l!gZcMc^fLACpA5|3M^1UF^j39kVOh9WRY45S)`mo7OAL^ zMT#n9k-7?5q_kodQ(Ym86j;b2HC`R6k?oCNk$r;R+^NlAKDBpsLQiiOd*gFZjdlyr z&}=r^w3>;QMl;dUW+qyi%tT9znP_P+6D{p!qNTZPv}r99EsbTOrLBuYm29B}dx92? zZ@qEk^euirMz2n%4qZ#LZ}gOfgOW0ErlDk<)RT;pZjy0QOfpVdNybSf$vEjF87F0A z;7k+AIH@5SCmnp0=GP1J{hyZM8=X|)fo>}Bn2w5hq^n{c>8zMXx+~_94vTrD%VHks zw3tV_t-xbCF6NQ0i+QB;g>mR~d)JxMUzkUUMK;9WJ_{J6%mM~!^7F;E^O=3mfF}h~Wykuyho5KkU;KE89_b_O zPvHp-yX~AyH7=;F5|`<&3YQdEg-cqj!X;H!;gUY9a7n3ExTM)CTvBf(F4J)pE-AVS zm$bdG9?!SE!#?SK+hI!m-h_(#yGx%9N1lHiMu}Xerai9Ah=@^@(c(r$Mn#W`jEW%@ z85Kz?GAf=_WK>kC$f(#-kx>z*Dx<}jij0aj6&V$C{!}YcER6EESH;}Kq!p)t7`4(A zEM~1R1;wxxrl6R%!W0zaR+xff-U?Gt3|wIfiis;sK{0ZrDOk*0VG4?&D@;K#b*on7 z>&&S9xjttTM_0y;2)ZI}i=8XsR@7Vxx8mhWxD_c^!mSv&5^hDum2fLAu7q0=aYft~ z3s=IeD7X@C#lMAlya9sKO~0R4c}=)K3z{rp#$H|~G`*1hoY{R`r?)87T-@5;Bzjx={Kinn!EK zjePAOS4SwFBg}N2x;1wXxCi+6JD?BnjQol(=ffVt;uzP~@O)q6O|9=xx?kWv%i>F1 z^JRA%zp-5I;M#rs%y0hsS#Xxg3GO|!S+v_=Jw@7&u?`%=^fByr!N+ns2IB*;@d-Qc zfZmJY`NY!Y^DjQx7V^eDCEGYH`4&=PxuC|jVt6;LtZC2h9S?IE)&u-bf5go@shq4S zenr`zdo%o^vioBh-fQvs9dC*o8lT1*TJa-0f0^uffcC!ncuQ>$1(yur7~nm5Aj}?~5(@mXD|Q z9zl)N=`)mkpYO!EKgB$6tH?$FUABupE(&l>%xSp2KS3%_#>(6TvYCB? z%ra`*h}jgPynC@l>X$TQV~A-k(}Vhq^cpJQ3I65#0gK9q2W8gpVoF>mA8Q?vMwRmE zK1rQicNrJU#_i>KWxr&m(?Hoo^*`o(hpDiSuhu1!day?p(_B<*u~^DuoLlH)_?}>H^rbG__Si?=yT~u&A~nSO98aJuGHa3y;kzIc zu|2a??x0NhJ(6|!9KFt;!^ErBx6F*U-Emc0I-H?B=|wTTSrOIaS*%Tt4e1pesf4^g zL(j7F&u{SOf8xr&JN*61PiTb>@Z9j}w+>O_Pt3o=c;xpOzrz0A`{wuU zSwJCQosrA-Ur={{0ncyTuiZ!PU%~0w{(!4Lx)0p@xbE-&1wVNkU&HM4`Cj-5a=8YE z_hI=y{{N^!{4b2*7p>jPAr<%H%g((wpU>apIlYFd3HIUq8x4F?_d1{ZSb4E4Z}2WH z*>h%ev8(6lB^=B1i-SH+T!00~$5b7AYqWdee0cYWJ6R^|-dyCfblzOV+x1u3A31=p z+Hda-^LW8>${e*;FTD6?)caqZd*gp%K7un7H{5y6Oq_QwymHRUVHdL%?xl;UgNrDQ zUGOkUh1zki`={$D<(C&>8S0?*2IdQX^U_b|gYGq2`Je6jtKD(C`;WUe^KuTk{Rwf) zk3U&r=SG-0o5I|mL&-A&(S|YgoGI7$%FkI@pTkwo=lH7m2{TEEy{RPGM9&UGq z%FxRq3XdHGONriq|9m5B&*)!_{e%0n``@_tR}=Pm_wT*b z$C*NSSma?!?;%ys_U}ru%fdjz02H1ppSF?={>d%oPVX#rV-v*5? z=_gbf0^Id=v%G^R3J36RTG-$;0t5Crd)9N9e!XlzKeH!+j4t|#5guZ94o}#(_VwY@ z=J0IIx%(kRv2oy(D9htK(l}=w#-FrJktK8P|7Y)Ae)~GIJkKBmK~M_>K@bEX2!cd2 zRZOLlRMJe9QYkByKU1{KwDqtkTXxwlwXBy_mSm+UTT*6a6^+E8P#81@g+ikjjYh8; zg+`+>=+$5_tHGcby_iK~7L8ud-!S|6e&XEoi^sjc2Pru_3n&PZ$a^DBoH%jbaU!l} zb5H-en)*`hX$RG9W>5f=f{Nqsa+tV9dWOW7DLqqYC=d>pGZu4UM$iQFf>Qfh|N3X6 z*gR*Yu4wFgYRQ@nGb%Yc1U;9%}!sOm)xzfUZil%#d)g#Zwn4K!{s+YGfaTRmXp?M`~SKjrDVPi zDg?!llqw1f73iYGQk$YNg@D?!9WGZm_=D-|mngfWe9ebEsuo>Jp^c<_aELa_j(!ji zZ0=+%7kU;q1OI44Mk9z5f;lAkZcfrd1$oRUPt@KcEk-`yaH3n`(8H*Z!O?PqDMHDT z;s@HjQDOfNBK&*G4UB>}Oo_Rfvo*QbP{U#n@Cf^Upw(2Yt*reAl7e+@m1UVO|a*e}&7xgfc1k+=2`xg9g_r+C##`?5- z_Ks(AbbMwm%x;VkbLeDqNP9Mdz5Oq`fp>dSJ0IX^+~O%iF-Vu}!H-4y`$7*^3EThr z50B2e&>6I=RUkLOo$!^)W%0QrICnX1ts+mZqJfg)wW!kdOj67aHTF4Xeey-&=NyXG z@))#BJGi+XGx>4WX5_uG3 z189Q@WgIs%f_Z6NC~Z~L0qxviXw3Dw#!k4kaM}L-x+dmficiQjqw{^T7ciSoB@g6m zVJvJSLuY}RaeW>x!s&QCy*TPEEm-9CkA$gtYR)mNEussj+IE2RDv2cMYQl(vf?r0~ zz$9d~i9J)Rq(w{gNw*=YDWz3PoH;K99S;d9ERxZd1Tx zHl)ys-IAZvpXv5@Yf&jP^dnW)*kD9e_-kwNUtdr2jZ3voD>DwIf_GyUd9=tK*>l)hq_GGZxqafM0D4Cr&4Q;8e1W)E^aM_i_F)`}&^xW9k zs};l9_ChBbv<-YQroQ+!IL^{a?6bRq!~W}yMhK?|X&-!6a7GBM*CkP{pOF1<*hs^e z+h&J#!-VAaP59mKhFY&Yu9GpEj;Hcl*a>aIZj zJkO|h>b+lgW117V*2Kdx%e8Rlh#h*%A(pOtZbHNg+kZ0}Ra5%iWF9t+>*731;wPQ} z`Q(q-^H>SJH5!j$W3{DuBTAMhD?5p{{oU&x6mcFW1nt`mWgrnE_t#6V#p@ev_)T3T zVqO&_$}zR7dmiYol3IJDa`$|rzuLW-;yr2*^YK`}Uy*urb*Xj(l1DkuCh4k;!8Ji8 zLVLmJ1Hx<6Nf}oSg;HdF2OGYlaqH8^J{k*hENPYInr{R{or~H#gCW9N$t1aKxNGL# zzON8bfNkyGrZFjq#8?OiF#L|DjJ1RA8Nrh;DI}GVZk;jNitY_(xBx;1UoOU(- z<}M{D1aR(&CWSIq;%g@wtQ;0Yu_HY;bwSpa6Dgml%6(lMl1V_@Q46Afw5bLt)wCAv zY*}CMT!Hd)E#~vEs(+c$eN_^?DNl$$)KYlWj_Ne_sB&eq?Ee>9WVQpbt#~ibMNXFI zD=ibjz;etjQk`Jlk8huD>B(QH7j46yAB1ptK`qU=+>%|#%OhQ3i#;*TTRbwx!nX-~ z&g<{Ist?XLIEIr8>SY13-Rg2%xY2e=Sg|vKl1hn@i31Dq2|462x6s)p3w&SZB^K^UF9}X6{uzVeXfj1A!814*`RM z@`w-oQvcgpgsESO+TTR~nQ9S!-;w~*4=*qr`DMh*l{QeQ2KhoQ*tOaHth=KK=4`XK zph)gPNx-!@i87F3S{AyLxd}AKFunb8tNaBKAoarWF#-x_Aqm6Q_lXCBQ^u?5WLQ8<*HX?oSxT23;neH zcjF=kYcSwor0T(0L3|7>N;{--A#hu0)Dn_kl|GSYeoJMUTZ7VWb5IloWN^&^&BM%O z_he~jUA6r@Pxj2dP=70d{CQG-`@LasFan`TA^SJ_-*kZ` z5=~o<$_*e;#^PvdOIM~yIkM+>H&gHn^=zec<~bS}4i+Qz#&N3$T2mXkMBPe^&2aiw zayP`3#Dkg9Dz=@AT16RmL5G)kYq|pcg2upuyJzxX4%_F&K8m2v6QOD)mb3rCn zM?r6Z9s4L09~z@{IUSadP82q+3th|vY$c^)fCt!phMu?nAMQBz3TF4Y;kQRCxL?k9mZ|IqifMNGf308R+c#J{fPuLe8}n(60^p+7R}9UJ16H6fO&ckn(;AWsmQ4CaEER5m%q6!&Wv) zuW(u&*3(@v=fkFq^4zdK7$sIZxu;d{i)9?_9?emu$>4|FjfEG9%`ks0?zuD!3nciy z`eC9h0)x&a?1Bzeg;Bz4Cpd+nIOWdrSU8;>L@9IRhfyc245N{pF!mp55aJQc?(o*eJ|Kyz zHRVRHH&CFnsB@ya!oOFnMIKq%(Zx3QUeTNH0djmvX8`y9NIB*3ITaJBZv1K#OFT3R zOI|AevK(njJmk?2YQ>yj424Bhsq$I`J=JZTP+WCNC>gb|aklMUd`jWv(S2Gcjd3^ShBRvb=_zRy8!e;zM8ibidX8g$_hlyVYfgCm25=v{bF@EkMy|r|0e>W1( zx0uj=+~EgNt?G=h744ReH$_v5l1hqgm=USf8CDsU<%MUMm88Vm%$!s)1nEkNy5f!X zxL4j0PkkL3{q?Z$-*yB1AHcq!bYb#(Sa+;RmJIhjvF+yIN$#Fy|5NS#l)4{FlIu^> zV&(yT|IAw^YkYHO;tHzDNNnCEJ{#T}Ugx?*ugtZ%C($mTZ7i)$&IrJJxtszshPf@SSR(4C-Nb919Cy`x;~EdK7T8KX|~H1oyW}-$c->T5S$%*li%J z5UPS?2MVNQKztRA!2s@<31yLbSt@uiei~WVjmu7i1`k9^K zzb5X$Bi}96nk3V%D83?^YutwO#+~nnG1c%)M~7qY9nRNF=XXBe&Hhp8o#VVI3B(hI z<9FWMXWY_6R zZ=p-9CJs9JQ6hUq^pyzUQt+yTA@Ol;f^8 z3X5$6v|S{UGB42$-lJ-_`^FuKH!Nbd+=<(;I}xr)G@OlyyR_r@EfHmxHdX^A-`)=fisK9A~FnS1uuqBx-)A z`--f3DBrhm@>7kH>H}Gpa>;UM5<$MAAkhn2eaeFg>qy$Zqa7^rU^A7a<|-kfo(S&C z=+F=x+`^K9U_}@R{4Et|$;<>%#AqDaWC$$IbcfPM>N~XS!&H$AR!XuBP-yYe1)}KE zl`rQ}s)aJiX>o2+sD1Z$k5umiU*E3LN$uvRo?S&);fqtq=I!ZRr>j?I_D5UoNgVk6 ztJjk{2RPJ@5aM$auJZOJ)(Qp4<@>A`sY_3R=gz)`7rsXJTPhM#I{mLNt1pRj&kXnq z+Wf4iDN^g*t@2X+ob{s>6_>_G&atl4oLj_C0}cT~A3w>Q_|I}D@U9g$k)S1&4IiLF ztq=6zO_stQVO&`iPfd^H#qEDLjHQ2-6>sKZ*~MDKr{&HANZW2jZqf6_F>RjMg^4Eu zrMz^wUn&~ny1XhYUs7jJM$btBAyEj}GU7_hU*{sI1>F93J-zg>)4-Ns53w*gk45{O*dde~9A7eECnLu{{C;KH_Y? zt$DrZynHtf@&1P{2`W|K>yn!iYMUHsB3*ju-z14C0sT>+cd(w0?|qkL623ag)RuD@ z#n@r{-w&6Voq>CGIjLDHlaB`_F5?=~ve#IqG$yj$hPiJ{!1qjMm_!I-;)2r^3g)Iw zLh2!lmaa7_n?8zxoW0y{)ywpjnb9=S=9KTKDs#Ft#LQ zT4Nk+FS7vibGorQ?46JQzQwipd*9;cJ#XnJZnF-1^i0XzapzJ_1CU|K)K~PN|9-w zgv?g&&T(6)~{nHU?#DkSGEnR(Mv6%t)+9a zmAl&|h8T@HHRGv>(r-;LVQUjVA0i}$>wzj zN>qKd-b(*{U8GWn8L@J#ydO1{epP5+t?9Bv&f6@eCgxnNw2N$;{t!(9+-lCbB}{i$L)h_gIMQM z14sjX-ku@OKduX-nSM-~w4BFCnZ6Bl(v(StQ;N96C23KfC-;o!zOJ1#+Ip24B+b90 zG0$#@mU+N6h(ZoOvtP}<} zMy~skxk#PtC*yO`Hbsmv@C*E$HE(HlFo-D?a5M!4ju6pIH2n?FoXrehQ@gf%;c-6n z%x8Efo<4M=Ouu*Iobx@AQmDB$cH-=yXwZzlM=}Ygj7i~|q$}arNk{*iFG<5S!VBjy`2+rq1t)dp5|l<$+=I8bM77Sgk?&e z=qKFIh)MDMk|^{<&)-yp^!p8g&UHqcsh72wRO?xyB8j017{ZknGesZyLcbaB#k4Iu z3kK=2>bGTD33!eKQ7M6nf7AgKF2&if|LQ{;fYC!jU6j-~6Oept|2^M>Cr@pq_FY5U zO`nK6pU_F{pHrd?gl#hvh43``156?%dg$j=>RN$`mn>$!Yey@;%B&{W=oNANQ;dhA z_G%e?kgo+je)4DgKMxx^53pYc8Yy4!OyuFzt7V~VLjZkg_m6iGJ`oT-X+%g&7Wb#V zPYNc~*}6xSp}vV6x+c-hJ2nL|;jPP2bv#sGR7M@OdvDYnsuM%_8~yLw>+GZWeXX#6 zzPe-rq$>0Uw^YnfFR`MX87k(iE|r6q^a|VmwN@8sX>*d9FnS6r40A$+HYKY zX=h{M`b4qR%XMToWQyJ6t%(OTI;Kg8jkT*)Y+$M$DoWsl39Jsixfrx(#h`+0;L zC~Y?nF0%lLBR>W!%$gvk3$Pg>EPWJL-41!x}1{0b9cY6Wjm2r$_nv z=cdfPm$dhpuL)9M2oJu~llIO76rDm_P%zKkIj{~wdumboL(XM+G8GRT0+~0!Dy8ja zP3;CVBc;F+@YWZ=yc1i=dJZUll&oWD9(p_$>qGhoYP8TCDt?acUP8OlqA`(1$>PrBZ)!@^8B|6v-qQ6^f_UUX|dOz|!kO z@HE_NIuVerj+Uy0J`Y<(>G28`W7rVomDa>YeDM^84Ldzu) zE7nJP98UC|(qVA(aNO+8P{`Z=p*zGY^?`|p=cW>B2s5IFnJ$qs(t$uKT(t$O%P|v4 z^0xG3`4gEW8ed(GL`pppYno|?(M@fe=ngY-h@lhInZmsyjWx#AHa73Uj8o5k(D$=g zAg67f_Zt^7L3g;As8Z7LhgzRyd6!WCx4I3%mF*kao_?c==TKH}$h7Ojud4}8qWw{Q zt~EjVR4Vt!ia~y?xa@QKY^6RV5pcT9mRJOrtDPK9?QrF}A{?+XTf`GzCylv~#?0a5 zu0!~$o40Fvk6y>&vx@ZJ{_nMnqWer+7#a9ISqdwSG}+`$o@h3^QhTTnz=Q&QTfap+ z8XVWN$0jf5%7kn%VZg?ehYg{;~7D+0MGfO)KxBp|TktCVSwzNMOS65D#Kk%H zkxhVXW{9MPZIj`j#S^{w#gNy=G=~Ifao6gu-Wr9lbyfg_XP#r3C}qkb$IOTL~eoJHd}ZC9c7{TV0x8`G_6O@xmZ^Z zH?CwpPgkhn<3d$i0mH!db4?U&tzCN3jP1EO^kzbA&Fp#i9NulDCq2-MDgA{F_RBoVi4G!-CU)hTNSQK12w{#>_r6x{X4~?5J>nt(;Y^p4#}M8eL5Qi?GFa(L{~k|BKgU zRdY?4>*!A_-`zFvKUvSx>UL|=(t4Uu4zfHfbz+ip5P zU(tL)4|GQi-9IX_n<~Guzxj*vhJSb<=t&(;c z**S+5(cIk)@!@9N*`P*-pvBx!&m6biz1+4LHO)@qEwTIJ7TdN1NFGf@F9-=3$NQ-> zDEG6en+-nz^d)7le{GX}b$~n#Mqz4Mq`w zf@%1A)7pXZH7|F3%#krB?y?f*Ym?Iiw!0aq7B75BQ$tkJ^er9%rekG0LzY^SLmQ8Y zc(&A+8n&_RbZj5itX+!YZ9Nuu21}OGXBy%c6^D<3NQ_Qq?O@E+&A19wbeI5i2_3WK zsJLMoPQ4T7&1!r(ey{H)yO{%`VO#7XEL%7qFqb(G__{KIgx2g{C8FkDY`zg_+?|*T zoYMGU;l#7$OqivR(u33zSHsWWwK2-&Q}Q?9t_GmwsqxXN+8l07%*JaPjWvlYO=`JN z?1|>a^74$-jcYs)m6^RKYH*NXZRDNBmk7LkUCCtvXZs!zk+0P$c!h+;zsZ+~Ga7J4 z4ceev)0WII=1nj)m*4-_q*Zbz>-JSQS~=e&rG7tNmpxlnA;psU*g+d{+vHuZ+l> zl`17Ew_#aO54P)-GS$X<=-ZG& zfqu9gHJ;8<8){K=ykYMOIyqV~cDV~awCLKKG0RmJG!N(IE?X|eF}5nIDQy@m3d1r7 zIPu-@h9Qy`Jy%ohLvCee&Nd*az!~J05UyU=64?7PosVkhsv;Y-R513SaZC^_{fxVZ zZG!}DSgx2@c$}oS?bk{+aSxi#|DWavn?C?}_PhrUL)lS){ z?2k3V>T+(m3oDC4$ghc+KHa(VmBTMR6cbmE6~gDcanigNa`zi$%E0T2S zAYsCWKtSw@Exx&+X&XCVKpdX@;u^%xBc#Fo2UTIaJ#+iQ!gWPEh&tk$4t|Kybvxv% zEVD5+XB(4)TI<)m<^pfYJP|AiShmY=+v}LvRE+r{mN4y*qDY6Q1l%70u2W zs9)_ADkW%EY0TvorfBn-y7%d4Gku>)W9dd_id7K_lxM!L1zyB+l+|{J1z|CzABN3) zVj<_aE@LH3KE>ET@@M14OK{-M6S*5h~>@~X^iFR)ld^7d+}IVkL?TM)^;L(1_XucQT1@r z=0anN-17{T71ss*ut}b3c}Q6fayX^GTnPP>SgFZ*2bQ0r z#Jjp5i6DY=*mgh;7+3W>XR1gOzNfb@V}8JL(Lh|$+k5)|XM+5vk+7@rqY!uX?3Bu} zU#bUx7FBb*C~914exkl+-fItCyyc?;J5lKa?jzfOP`0;Z?j{nE+)D8 zMT5;l;gYh<{EX?`Nw!<~>}PI-b>S8aZAnNoo85&ER_I4^wf<-qB9FsO(1+k}h=$DP zg;ei7(LCIK-6J5Rek&GyuQ6`E?lG8!tw@Cb+Np%UWmH0@G=uGbxZdP)Q{+*)gJmXt za2f)Zuq}%&U&%5IM4F&ri8F(ou0??DEq1T#U&K0dxYIYa%$B^PEsPzS=j$<+G|`FA ztMB5Jj;QbUd9Gx@7aOjaxR^k|WHpquZPo?Bp<9dsyNrV85pKc{YNeb!CI8+g<$L;$ z`pfHD1G_TY_6U4$*)zoDS`y~utDXXblu04-XH-VBe2iVh2rYcyS*xQja;A~pIE?;c zN1~r&Xmj-$g`rngSXkkPq4Weq?Ss%RDZh_|A-5XoxaWr$Lrezz=(!EJmKk~;Y4BPP zz;*Js{k8d>E&(JbS1Ku2beH4UP|r_oJLSz6;e=+`?2Sesq|(WJAot-MGtP55 zHeYis()XI)Yue|$r`1~9P;cW#OYNI)W0?rsNbS1%J@Kz#OrC5UnY%jS6!sqHyRK88 z>0ie|Pxl?y6^(j6+jZMx8#_mQF2Zy3(sVfOH)+UD$j@dKx5#c?vxgyPpx=$`$XrQxV z1KZ3QB%=jmnBfS`bE8D|{IIpp>5#qcb<13uon4TFI|;7IlkaQKF(6<%hd@w~MjEd> zZ;Lfbn%*>Co`H5ZtB=(_qffZhPWdEPtjmEZbL2Lz&0YF*pHY`m@RTDpc|vRZ{yO}& zy93!8u&8!5QE{`JbXx9777J<+^@aTg zQ;NKG-8VwZ0*C1b`l(bnY$~DV?nGr2TV1-OXY3PF76BFUT=V-BmScF!lI910$~Hcm zFts5lFs4O&;gE?}dV&iDvk3DmuVduIN#Srk7Wqk=twuYrp_w5Xy5Fh)vu;wFxg?B; zBomHdbGMi!7(UPbYRnjR1x{m70JU4Y(}>mknj33tSpb|N8I%K8w0@|bUn?3NJ%>TC z^VNqs&7D(6-j*2K=P2!IQpa(3`doMJpbLA#0Af#!p*c}uEAZzRN04q8E4Ac zEq9jJLytB@p0%Gk-Qw*a)h%U%=+TDKHC_Sv!&kw&rj0`mpT7#!_AEZo3Xo~JYj=&k z5~XXLE7;nD*!?OFhW)xJvKcw@w)8>dkJn0(3ifNINP=D8ytgx+Zu5vaGLag$U*{Tb zO0W5jR5r%V?{|#wTH(JdEkzkchW~5jm=gZ0X~J5DdZIod#Y^M#*UF6vcDVm4>)GbU z3$j1;T?_F(#9zP4I5ll@-W)jMqd(+`;qL1kZQz`4ecz*my`M?L^6%sLueM9{^S$`* z7x7dlrN@;&(OR48Qs@B^L1LE!*7>`u3>( zDZC339+Y|9j{dNPZKo%44_L$Yzsj>H?mXK@ z1@5lj4`AV53jdN@?R{+9s4U~i->oZK1p_>bOHU}|nL{w}K+AiC>AKP=yw{CszA)qn zAmIazW7(JP!pn)R(XdKp8$ExYO`X^98BKgMddzf-fEB2|hEex>7#0@DXFZGJXH^<^ z+t>3QN@9$W^$;|M8%sH*y8?a!25t(EmnW}`W^V%Sb*&V+3K(-)y^VhqJ|14y&xEaH zp1B5_pO>|&gf~G4;87#@W5`1GYxIT}(C(`bTy09oDz3_Ue-l1C1jrn{5IJU6&iLLB z>cnzMo&af&PiEIf)7;)8P;KXWaU+=rnBX`sWh0+#k|JT> z$?zln317dVx64w{C=Y_VB*A`hL!OvnhKyq86W}^%M46Xi{zRt%$W0>Lw z7tBIGkz z)|a78Si-T(ni-3eM$IY32)ZgR7NCBpK2XxxdPx^|r(SHGy5PH7&!KuRQ&;|FYWWmX z&78kwLU>spSl&0;E zb2})R+`NSuD#yN~g|X`PCZ7Z{oC5i_uCtQdD@kdF;(!y3WuVLxm987fPP|8b-G z|3djel>Cdhs!rc-U+ITvT}bn*XOA9%kf@xFAe#Y0kIf7|lorjdL&na1*09 zZw_1bm@A3WQy^`Tzg)Vkm9TuGWyFYJkX=4_vaEPCsd1UE?8eNS8DG7l9%eR_Pd>XY z+%R@e<0gH+m1l;);j@m=Ya`MKeh3$L-xt^}`(bVOaJ=w8oEZ!Q?(xm_cl49pOwL{9 zT)99^%36KO?#cFgpdxXFtA(@g|n^?kj$FHTvDh8jx26}i&@T(syz z{lx_fy+M7tC}U>5f^axNz%_XkAu|pmhZFf*=P94brsTzB1Y;f+QrnlJ0j?7|0y%^t z>=A_}Z`0NuFQXLU9MSSa{U45})?X{$1S2@?j#}K%|4;R#!E@eQrWLBNJL4_#6}>Ks zUlTNJi```IvIB*|T9V$!;vKaFH}+z%EPQdKpg`8rZFi}EuW1}sKZjY%40#0Zdt!%6 zR6UvSu3KJ{zPO-2Mf*M%p~=uG^z!w*B*=+VeI3IoAA{VGSC1iucDIOsccP+sf41;A z4xzQ~pi3X8Q7xgq`2dOY%09N{f6l|hh@!P}aPg|3NKA)^m|j!WAG{S5uvwvHO(VID)dVmZv6uh`Ce zk6y9ez-+BpM&}&fR`mZm>3qyr25W_eb3K^%PgbS0X;0&7W4+y~B|DtAG?;Kk-c~Ep z*Id@x!uP~ONDcNq>EW_nZgG>w%-i^Ea{n;rgwbtHQ|DZr{HbXhmGgp)JRs;G^+PyjB$ExO2UXXyr0de)Xsg6yzdp%hb+tXSnP+g zb>Y0vtMpoPdX;{mX^ng0Ggdcg2KqnMljJeoiC$hAEy{1{`xN*}-Rq0z0<4q}3P%#2 z-fL5|_vB#W#4?_)c{ZH7B)yxgO6j@WRDFk?jd)OKqcD>qKs4CxXg`d5+&{EqDV$k^ z2G8WJ!%KN=XzNB~CqHj-%#knE?MlwHb@FI&LnCiR4Dh1c8G>+echI0T#lYxy_&xM? z2j{x_Hy?@J+zEto&S{qD&n(VRE&v$`Q%9BCS<>Go6E$};aubo=NyY1M7C(o@PaFN` z83ESJD%`f>$C_UVy3);4mI-(y?RuN&;}{>S{X%0~cFR0EzIE{|dWrbfg1&cwBH;zY z0nEsHp%0h!H(5HhJkr(1vL9q1!sHKBplfY(`TsuqDct{3aGnXDpKDep)s9p)J|LSQ z%le-<1uK9=TAkT#{q#s}@zBUsJ=E{W=Tki^=X6s0f9wgas>+FZ-4i{3roF$%>Jj#@ zgr8~zeZE+Ab!jHy*m@k5DyhLT77iro3sWT*ghQrX3@75)i*W|{HR1GPfDTC#ORl&k z%!r_lD`k9Cr<%^`-$knZ=127ib9r==jkq-4c+GmuS?u?;@vHh8ateM+dcibV9%qyq zE6h6I!o~f(?LvBL&-k5Vc>K@T+q5Y#KdMbQwIMzb?pGSPpH^i3hW08g zbCw4@%tzfg(2k`k*GfFSbT2+n-!3d$pew1Hgg4dtFp#i<{yFIMO)0%S0);tigd7_O z74Mbz152dC>;dh#EhbEvl=-Z~A|uuos{`Ub@KF{dY8qRocnqP*uDd?*ND{phq@D22 z!wU2#|7cmrybV_VrP})cH?^ual__^#sxb-E{)TnEC%9pfb%h>`5cXeFqi+0cq;Se6-7sAD{#Z$o^YbKLvHPmt+KBp=R^f`3!<~Ki#5SCa~ zVy1jcnSBq&U`HcA)({SWJFTf1^`BKUIt>qzS8-_Jpy}|0Z~x7uB<)?fTD&0m9SzwN zwr~`ca>Ucu;`8KFh_lZ2^qi5&4bswdJ?-HXi}^3ae(2ibbLXeV>D#ibC&%fP+0oN= zd;Bnyo1xgPjOy3I?8K-Z8CLVq1PM29%5$1o_3+B57VYsz^~lCQjXc<9HY?T6KLe}7 zKUx{puZ`8H9vN2WETd!@Jn|4$7miPakMI050JqcQ^=@IfGG4z7&$V_BHr$c!t*B-A zEQaf?0oZoTbuf$;&K+|d+&ja3)i6&HLhc_9z;tO?pB83|!&+yUT)ZlMfyTTmeU@yQ zQw^>`XQf?_0oe6+3a5qf*_}ejW^p#>%To7wq`VcQybf79HBR3awz|qDNy4BJa|}K1 z#7=RQpnb*1zWF^uqE3y|w~gUAy)q2X(4M?K@od`FVZCclqw)kdcH6Us^V)79W%F1e z|M^%}^17@b$6MiQ%kK=}-4la*v@kq2xNU~Ryn7?QgZn(P;~>>4MCdeh6jke=54nXthpC8k+ZAG>7{4Z$1yL7tjd z7(LUzXV>>^bQ^%}PlU-$9YF1AzAK6V{I@st`=82hvm&@J_5Pvcfsrh0twXBvEyz%@ zV|GPj;m@Fth%wu(<^AmaQoX}oBEzr`FX*=Zf21DD030Oh`MLfshXwtyI3!kY%-~z2 z_fi!_IG)pknG&@#-`4K=@m`;|h&z+dhj&I4Wtk!E7@i>aR_f3)YT&nTGzM)4x3lbV z);1oZ_H#05Ik+24Z05ueaD#DRC9%hmGrS(J+i-34zTjBQXH@`U#UwJ%*y9hptKQVO zx7Q;~xvy{We%KqM+kMBx1E&@HUDn>?#rTP;oAM^!)e7HG?64_m?Fr-e6hk4g?(MrB zx~%coH3|ps=wI?ytv3fAtCwXiLcF)zcYCdJqyKLDTg9PN5MkAbwI-&@JV4lI$85t~ z`FvSz`3hS&n7G8O0MY@hpxAm-bGxSXCZc&q`SADkdzfLKm-N#GJ>SsXCwivC*Y@nH zW`13i2>bm>*x!FPNy*+btrly`@#gefAD_b~HFK&+PDZJ*`17RrGfKeTSbw7G>E&26 z5^Gte`R&v2=jySn43er_4)C16iknorrziXU3ANbzea70;`iE+DJe*g{&-i!7p?xL@ z4Lpr!@OT#H=*v&mo1bF;J%1iYQwv3%;1>@5x$x>~ef~`A!(sH#CB3wtm;%D{aH7d0 zg}E{&?sLejX-K&6ein(9t+Ps4KEo*Z&af3y2&Uf%|(wlZ(GUsh+ zt6ooS@(VAioxp!3e?@NgZLK?dI>aXr_0tu#zbWpq{YPb~m)7+J?0Jrk@GFH}Gnl?M zYJ_>0nsR?@U3^VsDGoccp|Mj$;v;WH{=){a$GjyxEccb>7fzCs28LS*G{|GErQ6_A zPu98)OY2h4g&;W=;TT%gtq?K!dVEiuMji_+Bz@~OmN#2kqMN=w(XJ1rXIE1_*BFVi zITcIXIw&EJ5?^{;2p?-TmAySZs+VUD%ki1@@X-e8dhC6FmpSVBR1E~3uzSWga9qn) zMz54Ce%i~$GGK-9jLA>yT< zbtD((IW(Jr^L?0kEQ~$BjnpVRcF{A`WE06zbGG$?^ijL*Ny)~lTEN*@q8Dn_uk1Wq z!+EZGKOX?c#sJ=%f)`fnzFlKieLk=I;71M5sNWMlcm-5`os{l=zxkOuoO8ltRi4sM zWv6ASzX#|)k>|&sGxBt5+y~QYIBm8hJ!lweC|NQ1L-d>_^Ts|iUIRNB(OZo*oN(+{ zth@G0pt8q2;m8y9NRckNx7(Q%gd=H9jB|j`7xJj9)E?z`|Mo4B)HY*C7+O-;FF1Qc zZZMk>Zz!3FQwC_?20y2#Y5U?0LHR|zaq+DJfzqH@3zE8TX+k;TxhmaiAkog+8q!CF zFc+pVa+=n%a6%-&(To7wgtV!bYj+|7Tr;VJBv9aC>ms-}#DugvnPL8xej7bUTICB? z(`#bNXVJK()Bd{)e%O0d?nju0DOf#JOLRMR&IgA#Q)K5ZYsDy0GbNYUCa3tkP}m*w@0kU$Q-0FKTq{3s0`KEm zc>z7)lbsF<`@Lt{zUVudhjTu2{*op+ETkjfiR0X z{UREhw!4D^vnABef__t-!E&0*7f^!{rj>04JXS!w74*= z{bAOQ;$70>*aw_QC==!7aDs-jZpngPOeJip9C_F#Zk}$*u_8R^3IF#sAA{EcS?QaU zuy|MVx~|c2kLmHQ=4yRn06%4Vo>Ug{A7Ww@?T-_RYr;_|qqK!jq}eze1<&yAUYs?W z%F_L`#AppE>4mXi?D=g7dqN1C`Ha?-kRUC=>Ri`KLJwv{`r;$~&YNp`!aEWe zS455L`kl32({HS)=zpq99mQolII(siJw4SJoLWrKP3J;8HLNbG&0^s{4OWCw~F$3a_)CjN*PlXNuqq z+aiQ4a8Nr8yQvl9I0y-3_?e%Y(yfs_*VWeOSM}_T8nX+JV(crUAV6QVG#Ho-MABbI zONoW6Fj^Z0@3LUAJ!vIN<~vj{;#Su%O1iEwSj^`eVcEjv+$da1F0Zh-QA;Vw61@47(l*zo&f1h)4BT(m(5% z7-m*jG@&%?x-?3A(>y4pH}Ktle;1~#&03@eI>O)dpUhc{tFZ-~W!_CV=q+1sH zRoUmVN?O<7Hog0NRQC>Z-TiXTvvjD-a@c1*!ZF8) z0s#C7jwNEnu)FXsURw z>-(%dDM60YC_OymZL!qNGj07?J2a!V4X3;fGN<3?O3qx?s8=L=VfKaIC%Hrl<&m^n zH&CnA4eY}u47NA%bQ?K7)PBoaV;;#yKhs6r& z?Y;}rvLEaJJNjM6$)@agm*X&H&-*+zWgOT4{ebZ;g#+P$@g`nX*!Q8h?yCOh5+TXF zHW$;zYS_Cb`3m!lVuy=}+d3p}|2tYcG7Vwx4WRAk-_w*39v&nw@$JmLw)7sWi&ER; zi5qnQ+jAL27FhmN#@f}xFB?TFllKv3&9fkeA#QCff81FAoqoeko0o0{zG076eX+eU z&^2N>L1b_GrM9KzsG84I`6L{$QZJJEZ1>+{&1XN&yb8nZbM-Ww|Ej?@EVgO7A#LK` zI5Wjp3G?lC)kb=CEy6j`t)b6ciS0RmzURk+Yi)kq%6)z-iHQa4drpW$mc7p`lJ8~4 z{VdZobH>WBUTn&RLv4Kft@l!R682FLumAO%Rw@3b|M$oS?~R|t*tgoer>s8gc~foP zG>rD4c_pLMJ&lDXMq6QF*z_hEsyBkdbiP@A3V1W+lQ`4XGf712neb>mTkUwJd9>PT zwykF>K+(oJS^}!ri2UZdAY$9t$VjRErYi)$|CCF}{Aq;Ie*<)X^QS=1e$!0$n{N48 zU(5U~Y60s}dkVH^5DpD`E2<9gG3cqW2lmvvAw7lXz@B61OyU(3a(jY)W<8Lp{DK72 zA}Q|?R`NW;J1yHl4ij(E;)SRc7TT@w4cRzz&%h2`B%R;x(WxI#Zb*iP^{TYxM%ljB z`0Y_C+GGa`FYaAwpC_^wXz5TD(2fHsoX;u8#^)E2dSrg^0@43`G^r=b5Q%yzy=Mi& zdfwmG#SdiU{Zk2**~@aI@WJk&T-RE$GY6Md5VM^qq8ohUF1(mWo<$}em-ha2Jbd!; z+v~)-dL#l*SyUR{8xM9_W>wChPyJ%`$~HOm*BVJO+WT5Q(*e@)a4C&B`GWqkvqHu(mErgS8L72*iam#NR|1FIBQs_ZB58vHZz6yg&O&Gv@Tl zXGZ=AscZQcH;D|u0^9sF%8=JZdEMXxB%eVah|?J@rGnESfbg z$0N8XNIq(pyt-8i_g@vlI~wh&*4b8tQgpZh3g)~O&JP;L_{BN7jca2S?!H?8F|oXu z4mLv}C~MbJ@l(BX@0`y3?<%ihd`-Ksv3odpsAzs0F-F52xxL=0USZ|44jF>t0)?SG#stN}gzqbg13udh}~$JI=M=-Dvz>4wb!> zl%U_?e5=wyQhZL~Oqx%L18ZD9DYalYlFJd$S(}F%r#XT<4+PV8WRTiC5*Er9hG#iu z_;k4Rln}0HzImmP9X9|s>^1r(e;azkVLOG>bv~_Jg^IYzj-$WIn5Cx~!}(~@mmQvw zxJQRZzLrmpE;6f7LP+a^5Bl{O`q4b|bOg&aWmu$tNmtXEmGz8QjOG;L;7rRVsj|UK zVSCbJZu_<(hgCd~?OvB-Avxwb!8feaxB9)0@haBxu6!G`r|FOy|CWrLDqC1VJQm-% z4?h^cq~QNnFJuEtZ}8!plE{zxopEj(Py zYL$CCAEUx@eH;iQ=elB0o@pJPir%@`g2xQc8wK8OIGR|~bT>WhU4_{aEiA7_gxA$3 zc{M=?l1nf4f_i`p>&_T22m2LQ>b|)bj(^?lkHG0z%~~?Ti7p-`Qrl45Qi6hxHMjYh zwr#jkf5t<@9_1jNxi3-cQDSJuyr*{ICJ=Yi)8;vn7vq;&2f;7bw$q-pj#nCo4EEu( zx!tPgHh$kRXQw*qJWo*0$G)$dvIynd&6wBlBi^?wtsf4RkPBO~F!-JOSYdH+8;<~q ze#0v5+Pg+2u3T7)Uxk+|4|!>vK7CBim6tYgh{@~S-ih+-r!QEYI+M`8_-v5oFpXjL zdHBtB{x=-M+w_|E`Z~-0g?NXUA<_su%WgoOhk8OaW8ni-#}eIA7Y82afl_Ai*taHM z(ol2WvOACT?6EAK)n`F%v;WfPb7uc6uE$o|f!VP5STH=s&wYYYQ-u|Lm>1GmTyOD( z@Oi3n?nMt4J8b?Ok%na_G~)b|IEr7f&B~N>@Use@;dW0`eb1E?B&V37)sn9|;AU6n zEo;RHj25)qQIi$F_>tP!843Ri z3>mqcjy!*)vEhgGsU0ZDZ*Ya`2+ z9!}eGg?-J1bMud)9Od;8r4JcS5R>EczRgJ? zsG?DIRm-J_C-Ek-cq`g_s2G%=Cr{>iUU2LmU8^pK$#G`)%q|ObSqU1^G>d1la#-j_ z_*Ha2UbpLptCp+yKJGcyUNz9+*ehz0YEr_HT%y{08yp(9I*HH4^;|6IHK?q@ZNd9S zG!k9EbySXbp7k>BBu{DAUlc8l@xI;@ zK=&4{j+7&|-rul_SknnE4|P3kIm4dtG3v6bK;+`>vl`jIHn?x8I`>OePgAjP^)c`W zI?3jiXP&*zFjlXqCKu7trOxhOg%#K|?koEwu_`bWunU&n0A$fKl z&$ae7Q3E|6_0P$&HM;(BW37y4@|?4$SL7>HoxmqMw2u1V`BaB3OXz8 zW4u4w z)8?T%2}q_Mjm-MGzl^50-4x#OF(B}d7x-2f6zi^22j)#JYv&Z~gCYUj)$8!QI##o_ z=h>X0YI&@Uo%HKY;+4He%nR?%0LrePDAxeY;Y<8d>j}LYzxI&J#75B~<_UC7l=%Qo z;c&pXnoLNTHmO;U^s^^;Yh0iKMdOphb)04N#)j!A|M7Ai>yw^U+H6z|x3JiV?F;hd*2$C7-|p85^S@oL7|r;%8<)NiB)IyGp-d~SE^{DOAP z9M5jQuBD41oLj*yIbM1-c%ZxaS%U=aHX3y)Npp9%04b(w}G@9bArD=C;FX z-or20X|F-SkxTS}@|^o-rE}Y0`jRK#Xg=&Am9)?O@zQdJW5ZhZrDd&bRnD&MYnQm$ z{(LwyiUZ&*^n>k}nUna4c=3^`XuH$>b_fVsofm z;${1R*xym3VH@3>s%S;YaZ>XB_2?Jb>byB-X1OlFTb<~DZd-r zma_`V`Xrr!ed@3e$1P%_avX2PE;zAzk7f0s-m1Bd@6h0ue%`LS9wnafXT3e+kxpmB zZ6$5P!9jjyP=!%H!rbzc>UPfr*K?9>B5#Baf25Xnh6!t2UJjpA_cay1kj z_=g|!)SxjRS!Mu1AcFNn6ZG2UY_dX`kp5InoFS>upLhLwH?DqZnZHGce3G>!F*;4x>ys@$jz~b zdtHopqG9d{ef5B27tQxszInalLp$c&Ewp_c76y$vS^ z0X6)wg1q-t5R=@BCC$hKSW6pBZ2vDM(A+;T9WOU_GDoFFl!42qk9FJvfI;kQvlGrW@Ty(D;Cn942%>a-j) zoJN%ze;du%GqXClGKQ=?rR%3p|Ir$eqalju9+81V%PnyH_I@(=cC-USb`y z0`IZcnp@JFF&j|M#W1k>5G%5;TW6ys4V!IPn3S{!;wHp+-l{HBu4FAnR-O+;A_Pqhx;HDEF{FCD=(icQ zDfLz4|4OY%uE%nYU=rdr{HabW*MDWd@Sg2ZrJRDz#doHBx2mp5;dZ%m`fJ&s<~Akm zMiA3^1q~TcuN<-cDYIDSdw8obOIGVa^MSa&6Ih)c%HbM+*?tlp5FSaZUP7Ny@DDMU z8XijJS;=r_Sj%B2NQd_G5Vz@TAuh-075&fvcZ0qPI zKc%xrgT}967#FfLm3>6;J$B8?tLUlzz(e$F=xJ^K36|q}w0TsHQPqLIf!~20K6hES zRd;#Yk|T~JTJF@OkGlL^OSE&-NuKZ_7#^`!{4`7F5Wll@X(!9 z#C@y(Gnmm!8r}xX@o5UKUCeQ*VP|{At9iTO^uRA7OACh`=evRCS|0BVJ>>gwExx+38|d6TVCRO&JK;?|jNvBM27g;L zIKOka=AFUsy3=Nj{-sxo9_TuE^HG#RBEZUiWP5eKUsGccKQ#d-^H~ez?WrgU-H2SVkNCy5qh!B3+Y?+FCpeNGF57l$+Fq$$yL$|^!ec=w;a01)nsDfnlTN(j*&dteus%aE zALF!%+j8vfHSs;3bBr~QAO&QH9yc)+`qK0WH?M@#^=>9oNO~0Mt|R!32sM6)YqhSv zZ|_!`X3l)~Rv(x6!4edX*W-AfI1javA>Wp9(0d@N>^Q z+0R&sbZ|MY7@i!sk)nMODG?4Y%VyW}>%U!P9r1b0s;9hDDfOH3N`Z~v#OIQeS2L&w zGDJ*PS5=kLl!0= z-4PMa6B(pC@4KRBR^?&TcF>3DEoJw@{3G>uUIYtjfNrY?+!Cvrbl%t6V;!l>Ev@=F z?ZU-7)S4UmJXSLf4J)~Av)f(M%_Vt;l+m!h;l!{W<=Ekn+iJU=X;Tz@Dk!n4P86)Y zEv?SfPlfF%{cY|v+xN5hb9&y)CO+5AS$qFE-{R1}y1`HX{y=N>Nbq0i6IXaRk%Rg* zZG1k=qTDd+ALMcWBhvC1+?;&Wl85`NytpZT=WZ_Y1*{n{K*wC-{UohuxH^}Ew6=U} zovEQ3%f1GYeLP4x?OcXMuY>SJ%0Rj{;muu9q4Q1uq{K$iHyliId_}WMd!=EPc*O&uhkxAG?7Jkj%p#>PBb_! zig70N%|Tms>&2zEjBVj-P_Zh8&R9a^*9CsO)iq>&a#uvvbuam1!Uzc$4jZt5xxpye zQDZbkoNS_7Ay0Fpr-JOq$NCI>Dk)vI9C9qoAQGaq(lFIUZe0OKt{U17ca-y z<>FYO{`*3ulysgfE)^;Xo-Vp`2xoXNABXQ;!uyOV4w}cY;>egM*qjSJ#T%5~Le%Dvx_Kg9YkRuX zFK!y3U7aXMDL(Z((cRBEsAyY#q$hXB1nF?;9F}q!CW}%-ebxx~fjjqf(?1v+nQ8)mfur;Zl=V>*RSN0y2%NZ7I z7HMP1R@!GCH##TLGC2OU4F_)NXR~c#2K=#|S&%c8T#@K>>SIlCd}C|nSQ)o032XEX zGnrUOR*eq~L01mOuH`+Of>yVfc4Ux`$LO;a$86=>?{KQ^+G@2rl8=(Z#_?X&%)n+z zTr1C`w{PGacU!(LJn@J4Tu_Ot(U}h;<)sz%l>p_pW0Ot7^00x% zdfS2dbU9&u-7Dd$Ye6sVNpi#|mGbwN9BGFm;VzcK3rQF|Nk1!(Sa4ST^sDc(`#wC&0K53} z?BwVqm4Re!V&-Pzv6$On=tL8WIC(4T)%NgnesVu~rd%|+{5sov1 zF2*GbVyxRJNS)nJ3~KcfX2>wyezvND9&bbPkhmwj&1?ga+ZD{{TP>VK;{7&p7`kyXG z`}#!Q&Bpu?x>)EIP9z12;w#+%4>wKUgfs6(DSje{#f<$O;b@LE9Bj8}K9$H{Ib#>W|!G7R*UD=O@gU@7a4`-L}-KX>l;M zsOV6gO)S$Ec~}@$-PNi&2p;r%wM&|(l+O;$|4ARK?uVVQ?;WB0`7QErKc!Q*w`!+^ zp=k%C6n-8wO6ukNI7PoRgZi;L$bYF%ljAaYM0#2fVK?fOx*{y35iLaC(CS(kLZFS* zhZEkW)Ltn#TaWx56D586mTeQAd^fYPBK;XVo_=2~K__lmi7!@&8`Gp+<{hiLr*mZJ zClc!x1F5K+o4A9KZ{xfty1k52+US6VGzV}(mgqaJ+Y41MEztRonZeXN~NY$W`ZLiTW?-Re%9 zA9nV3q=DV>pz{OG_bGFC_8nk>QY&LxPWn9hVH<#S# zZKCE}_1{V_!JpbJ%l={BES07D2Bs>AU--_?TU<_PJv_r9$e7Jz=aY=MM?1N$U}3EL6HIUq3Vy zNtk$V-{-G$6m+HgA2G3a`*lLU5b-8;Z+m`C+W+S39D|4rDaG$Fu6e!dz#PhyW|KaD z#dT=IeVJFzR!7ouP8o-nx}b-RSED<=2pU_FMf~t@wB=eu1RfMc0M~ z5YR)Ui89Y%(xS5_kyC9GxQ#GQ4TnE%Vpt+qQo4MfhQ#5Im6n~*7w#;v!PijiW|fJ( z++7w9#eJ3_uHK$~S6Cz2<#UtEq)*W+ra`m3K(zYi+2QkhWMg^*YBW+2 z?*d3Zwpsl4Jws`+h2ObvP6Hf^v5o zq!EwWJ;aHD&{%b(?opVyKUk-5%9RZ@=*Nvl^<5jpw)f=aos6?eoR1wshVu7*-}DLVp4CF8bH0N*%oe`@%aliqE$yH@k!{h8 zfV=5^{^xQ+*;C$+ETfeY#W>?GwjFD;Fk07 zyAopVVU5yU#KK=|6uT0DJAr-@xckO8R9yGl+IQWC62AJwjUJ{p#C!N1_!QhvocqlE zdl;*F&!+AE>spU^JL6$^wmUm7nDMK5rM7AO`@(2|s|JL%dr# z_b$s!%61OxJ4(;D`p#R9qU0=SiO!3D(ni9pY_;RD)(1fvW>Z=iUrJES(?WLZ z%&_N$Ypxg$ZMC0aDrY)2v~%NfT4&_g+X)ACLKwqy>X0JcWoiE8^~O^kNwu-}%{xX@ z0c%-~P>%^hz|Dklbc>wKF&Q7hjqy8O~Q;|ql*0oK)j%tO) zYm(^aF|+Ae;PoxR~{*N%T@>k~X}`v{$F&q420x)<_ghr0zX9v?sQhky#Ww9DScV|&A&JH+ye#TIs-j3@cwg7-T*|yh(Uupagp#7l ztVRDOMe>Iy^~XJ{$Kv@qkN!kBq~bNZOOWis@6_+NO%BHSf@j@a8Wh`GFTVaza+ALP z5Wjhy$Mu^1fnSQhESnJa{WA7$ebwBcrOv)d8FTv-U#FF;Y;bg_Y5l!YxS#6BQ<^JIyWAZF~ITaGkfxcVZ{zPipS$ z%%0TBaZ6{(6T0nd>PO-)xTk?P?Z5k8dpdYyIbh_Mh#<_7xv~@Ite{&*%a`UHVJm9$ z4>6yMtiXAeyHg%^j!2Abk>#E2@Q32389&$rg{kaXR3@8BulSwoWA$5FAu;xKl2vOz zLk#5w{p{?BLyxgODf+7YqNY`qZ!aSW?g$2oaS}h(HvwoIT>wbs5_;B4$)R5^m0^~e zF7ydp<(w3jQob_XP38s2t-7jHYZ`;R8oOc4w#!H28GK9rJ4T4H)~Jk5?OQBJ82o3u z&x$W~CkGrtmH=6xf7b{`w{`U-B2u<(mP{=4=frRSX;tM?QiQ0se=74tDb?L$HYa{( z*@GlYnSW8Kz8||>LmR7_>%uk74*qp&lO?t}c(smw_03n5_il}VXnf2LhV98#d#YFJ z{n~Q8t~s(xn^%-EOV6W*8@q*vo@4KnT}bl-5>)YS{AygfF{ul$R%!ZDIalgp(#~*A zmoQx(OVOA*`3s-9ucRka3&M|{P(Ylx{kQpPm3-=c8u5{q&%~V#hHs)+*}0c3ZH4)n z5zeTPu1cT$`ciC)dGi*ie={6x&D_x&1k}q)#N4O(P!i?`b@M}QRp*H28+^yZS+y|L zq_YqDphu2XX5MFk_j9Gjf2Yj|Q+PUa*}6X5-2#lF8$fFv4W%~t?CHe*6U|SdIICDL zk{c#xLuV`z|KNt^oJue4r?~O3=N*0c$<%6?ve6g|6&()OI2pcn_9N`M9>SihI%d42 zIZjNXWH5|~9Gh=0J}6YtI64477ZVBY)TePa_L~kW@A;uFt2Bk_E$jj=Xc&7m?!i$x z3P;1A=#PF{=|%2H8*f}gY2`zH`4Vi6L(-hAQ^9Ci_Sx>St~mgaH@LlQp$Pjidg6NE z?4VN9MNeUM^qB9f2OB|bv_V6*UPj?r_qn1T>*a+~V?e<)QRd2JGMq6%#2@SbyyO*% zAk56p%()3Lh6fsfxj7VJ)s!Z|!sC`hPSP0|xkCY`lstS+Pb_J1Pg007)05T*;tT^< z+wC-!;1+UXX$mj@H1~~lcGswX&HZsJiBA_zUlRtUi%D1~^>wUk+q9K#(biQvGz$ll zOYm8-Wgc|ukMu82L^`1orY?#Se*9e*w;r%y1`{6kUl!lIuayY;7$boYCXP*9_%O_& z2PqJ;pb;&AQ|m4`GV7b@=>rBP{U+;v3d}DG;C~BcObh%r{1k~kjSkrPpNVsiA_to3 zx+P4X$+b1N`;p-Jh67rcQYEx4&)D)m7bd=8MAK1|;h*(O?M%Nf$+2OBHMyup19W`% z2$Tt9bIye~8V&eH04{%R*8DWF{hz-7VVSVAPKg%8H?+*>VVN;!?15XPmV9PMeqt(N z%uf^9p}i%EKAt12z%n4Z6PeEn8OsWxXUdc3p6|rj#LlBzm*PI5y&LmU@hlZ5Od)Xi zafrAWcoM&{?{CiV7BfeSrpKXDxPOz)BTObik-?Cc0&Exp2!cLMWe9cX{7WQb-}p2m zQeqnB7(4CaJGH|Bd?UnG@TRQNr2kIiTXq5XVTOp#d~fi;+YE=+^v2D`T4Ml+!bA&Q zD9+wFeVe+=Y5G{bMDyfW9W}NqBK}g5*0*v;;yD=I`OHiQXZTCy>tBv_Ui>IhJD6tBAzl~Xm&-5mr5qD;nPvoW@AgZ>j?ZbX9hoH(Q zOnn?jLovafVWvHPm?fq%S3549#QFNh6q?2&oqP>*SqFM1ojMF|)g72k zvwNuFb7fVDA`!|ZFE!lD^#=>C3Ki5x`D4uD4=lc2|so#07uK)FD3>e!- z#jw5Ni2JUp1VB;ABv;YDABBBg!iWkb;doNw^Gu5=)p}%jIxS55rkk6@5EI3u+Yv|# z1}8YcFh(7)lxhT4%Lv(h@w;=@js7JlcS=L*l9ZtfxCVE&|XkR5A^woYSOfbIq zTD==;bxqvWZFw&*lni^yGRP>iRSg-tTtVG5HEcE~c0p*eGY)L9Pw0&<%tfS-voa%TzY#Aqb< z$qtg`+z^x|_u`}5%@MHVa8hb!&VuCv{9YVr0bERUPk)guC~gsK)Ak5QJ(J!*QqdvI zpS9ycH9iekx!kkN`+5CTw|P016h5(9xOA4%);x8Win-bPIp(3Djc@-ULyUS)w<&wtUy<$LO+R0i|mX@WC1T6XIrez6z{~Zz<gCcq0aKF)G zVcKGEyALL24CiyL%_^7Ntra;!CWEbqhf!a*-d7)Ntc!zK?J(C4Gx-3^gl=Tp5)YC; zfgens-;b*Tk3Oq8X%Z>LqQbLb5A#Gm{K<9w91mzOFl!E1d?O0kEhN0jy`nIWgu~&i zN3NrMV?4}WRF7x!P*NEMYxbmQZyPV+SUF-(W7nTWP~Um9se2ObkV7qw;qs>ZkLlFX zD*%UNIq*b~Wbw*j3p>*7G&xUDq@Tv#)V%0J$W?z1IDc1_^Xq^IK2*xK4QZ2{}$=qYZB3O(`lrrKVTws>F9 z*Y#UCkUp{$jU!U$w9d$FMy;)|=>U5Pc-gF)h1PDPOpejS1;0+) zYO)S+i~3E`24BW5R}U?#fRt1^wzviYiOnULoNeNb_S>L~6zl^Ec)u3Dbo1B+LB1F9 zj2o89r`I0e2bw>;YO`gmw5^*w(Vz`dvy7(i^Q(#d-WA3wZDBaQn_i-5@mT~YOZo+B z-)Pv4aP3l%K-c^P$hZbSOTNf}Pi4e!tBR$?UV=M(m< zdTQyi6BY-xC}D-Wcyg97GhQs;vt^uCAYUm~$SCX{^ZUXC-TAPk&%+VNi#1}kY-5zM z@q5DQE_y_oth9Mk)FTpBC`*UhTSdf`+U+vEwb_1^UpQBgW+3Oc?L}>YQAKepT zmm6%1j}4FdliH=OFzsxs82VQocv91^F6fs3un8B~$47{wN#fa+y2uhd#oD9ckpL)P zt{v75FKAQ$;%UW_^8WP+q**EAdn|3=zETFrW!f=epL#+^Yz&@Bz3Sn-W1rdsm7T6O zt{vm`FZoFQKh$_&JaEioKITx&Vj(qj9oC9>Xy}s1!;+5x2bY?x7kMf#cL}|nv^K7) z#_L}UQm!rD%~Mem$+sh1i6+rn^hYlHl{2R0rg*~+T%aR85h<@TmaRjj5~FhD_PUXB z&Aqwsp3`8^NXCEQQub`aPWSH)f<+(aurc7pa&zW52wt1x+IWWk&42CI<&2U{jB4q! zThcxs$vxr+;?w&TD<1>3b@k$;SyJm#`$p_H|2pxTM zD?%)dy~l@d_3ijb9{ig$^k%dItoSWi6tfg;R>6Pr##KO7`pSO6Nr$8^3~Gy1exp$} zm+FS(cJ$ylaNk}o1Etk7ZSOv4J#MIy@K6QWwg|&5h2y1WjEH5BN%Gq@Q} zDyiRDUppQ~UM?OI>+P;TQA)#y%@r!{Czag5XxKy6xw5z$?Pu;s)fWjNQ$TsBxjxZ) z*y`AYI{Eq5y0y)N@E8$Q-0VK( znNP1M zgD?g6T#ZpX-gKBNe@Evr|1eu_SU-@h+-yBXn=3P+!gQ<=vx2f$)slT4;0V&8_FJd~- zabI(M7As%deO9&RKZ);3D|aq__yvn!mk{g}tJ86W-SiS2Ztr9+c4e#Wcjl5ccrKCF zJESrn($U4RJEF4n*$HMlrC0NLpB-bhva_{6QF7!^K3uA~yt}o1s3?pDxuN~oZN)(= zJHdj_B?VPmv*U_QHam?*w9AFV9CP5E)mrwS@8xs9;UGONyYJpd)9(cR(1K|7%VOxAdKX zo<_yWkZpbab6oXNPciCkjq*eq8*k=Hq#}EK>|wrc+WyqXjkM*^6ZVBw8#2pSq2cy@ zAWm^6V9}C)J-(4 z=Xnorrrj%#0h<>3zEWA2(L9fk;pit?KZ@5Z!sBEHo(^Xl401Nw!S-lP>xgweB>_@Q|d`N1%Pj$WhD zyqy6TynpnP_ka%gCFqk>E#YtJu^!)bz>A}q1mN9O8Z5&F+E@G%ae-g*RRx!F|GL2= z&Ujt&Mr>pAYu=m$!&+{xsZAL{a&?$-6YX6Zn`b(?ax~|SI9lgwo}eW3PO&Hf$ zJd9QA+d-XQIvV$Q{z9$&N`9+Bvx3#^X|%KKOp#mSh$_)ngLCAde1C|3efq_>2^-G` zG<~DifM?;D=2@iiJ;5*u@V$)08^#AkpQtadtH(%v8Mz3H(2N!(ADQysp%-U@m?Kfa zrmzDpv7_f6+aKsGt9j6b(8@C?%5SQQ$#POI$95PO`@5`|@e}>+>968DUD2Fhen;6e z^2h$s#Nv{q0{W6KMB@2qB700<7B+R_z*4lW_jFOug!~;H9ggQ~;PV%n>5uf+i(^xE zvOFFwtd28xq^P@~_BVRREYeXoEQ}d@SMpu{D78))3JTVTRClnW%g+RAmIbR zkFEp!SaL@Gq`RLQ87!>rLXxe4LqZ<+sUhbO}enX9of<~Lt1e{Z;r5DY4 zxJ=G>^H zV*kHr4F-XVzHSVbvTJa^9o{MFdo+9!`|{;BlONEt^!40+qz{JA4Q1`y1da)g>X5O|j1Lhg8P{AHzvpONM5oi^!%LW`-{$asX>IaV zWTTNyC!8X)*UTQlr3_~m#sAu9TecG3eFN^x88qX?kW^PM|t36T+KV&R!Y7JfBbX8 zL-n1Gcx;K1K5AGPO>wq^jAy=*^Ya(#j|(04|NqRr4UkpWbuM^stC3m=wYgUunoWx-Z*etkkW@co|6f z34Rij8W=6o0cE&jX_7@gEMx8|xBh!^v-Lq>G3Y^8(wsCsSHqs2K{?e3shPM1d zcDTjJFOb|Zo08C*CVSa^=;+{l%>0!LfnTYew@ZJ$34Ab;l<&fSwbm>2*T0I5$V#Zg z+S2cq$_2>pVgpphTV?j41gZP}6zV{uN7?K|?1`}$F8O?NZa1#Di}E4Tvj~ySEa1tr z#{2E1JBdTpDBZ=KCI=Zb?hB(7QQ=rjv)3Rw)f=T#->Dmf1d44 zO(AU;9y?TiVA9n2ujSA*zEW#${Lf-~q{{x2N84i=6}V36i_ZC1QgL5LBV<#LPfu}z z*qw65Z8@ba8Uty3gc3GMaPlz<)`0QJxstU7oUJsp_3^KQwz-cMX^3c2{;myL&6)B? zomWQcY)Rpn!h9sEbnj9~+xl#iRL}Ixd3oCB(K8xoZp2F;vN28PzVWs6d?b|`M(trt z!OmReB=#8REX@&(2zwN6aKwgKhpsF)=$yUwrQmpCmAa8LCVP25&pys%F-D6o(O}W+ zQLlLJg9}IKSf1W|S`kqf)4j%fA9!}x-`aF1=G&c+9OYGhiiR#9OE!tp9#GnhWpcp? z-Jrx-Z@%7THRztuX3_50OZMV^8QlTy%yCj ziv?M{*zSC0wjk5a7_aE5^@!h$XGEfe=d7~+@{9@tEcP}Y=;)tkG0g`Hk#FP2qNhBm zXE9QSf=n+mnv6kEe|T?|vn;*O=gx2tN_VkW{#?vmwmFjieq?`Ru0(QsxX>u6rjB=iHMOb3$iyKgjRLagM31 zk;Rj!cQPKOQ<|Uol$^0&^aR{;y%~Vg%ePeS`JX-oQ^-Zg9>g=WWl$UrIL+(VbAqKA z4a_Yn+vVhpxsRa+%fE~=`iBwrjF6T!&6f>)9Ip|3e`4j!5I%-i8qkyB!|NP6zV?VP znl^)c8jvy`_TMZ2lYDck6eEzOPsGEi45DQdh_53crCoRhgTGw_kA>P}tc{pnjtAl> z89vU>aQa`WFC1!oVG&LcXVe3C`_h4Nmc)_oA5f zoJNy9DlOQ9u`hl6{pn5V&hWBJ51C=)j)q#wD>aZ;>K0$BMSUu~zZLHlX^i2_r_GJ; zIo^UPP9w3Axp+j_$9tIumb0HhO*Etp` z3rTaKrBg$lG{ekUVJ=;Kg~=8bF34Qm>~;k8wscpv-zopid{M(j!^YPpux1zJXpRkM z6kRU9l;c6%pyR^w<9q?f)rS;^Abo6SRPQz~1&) zb`-{(mD1i{w)JFTD$F97;cIFeyzr_8n{{~JH4?%xXV&OMm=sfL&=;=C@{;J6BuR2TL_bl1-!M4jA z==tvnlaJ!fHNFrgKmH$VPjmAFhe1EccIM8%fB$|P`2UHD>9t(hiF+>3j7`|i-FBj- zKYs)Ynmzl$Mdt(C*L;>Oa!0~8V@abM#f8Og)nu;SyX=krB8wB{?+F(_bzTE=^e`1XU1I0u6NTJEj3G~H9Wr+oXp)jP}gl~eSotaY@uF1feT^LI_HtyR=*0Nvq57`>kFlv{3FSZ>L6tD`m7Ez9J)bzADzZP6`` zPe)6Fw{%DWI_?1Z?=^Kafqn?ode_>TI@;QLkF)*#+cn;59Np~6=Rs*@xjJ-_g8N<* z5={#hGS3eDsN9MMTA@KGf;^#l%?r_Qt24QtviotlI=P-zCfB1%rCeQ(OK-W{%FBXs zE2{P0i%})<$@Q(?3{rP3%%C9Dd!I-w6jrfPQ>xUItK`tu>SU+$(|J3Xvn=?S>=aj> z4vMr%_rta#p|Rpb@IUX#XI zc}Se0 zYW)($r37lAr}bOtWAEoUct`_tWx}+fvjXc^{ZwX#(M3tf`q6;}RHx!U`k;5^OaM!ffk(yxRLDicq1}O#+WX zneKFvQLQSyPXQuYSB=ETG`Sp^W|wzSFRi++y?fBG>qb{~vvpuIl%R^7_hWMl`@yo+ zxIp>AbT&ebL)ikwTb(PH&S&UGrR&}X1)$+>60=YTyi$3qn3y#Gp~n zVJPcel-wcZ)HEeD7wDtQf()~RquU4y_d)ATPpvvyG6CBH6oA0WsYYv~lhH~6hI0U6 zReSycx&i@;y~tBJVakSgP~C@jFbfkkyaQTBVdD3@m^R}ODny;qEY58E2a#<6sF@kc7%(S$|IG?Bfp1G7CaA$%-5BTF4~sW96C zh^f7_l_qUuDdt|K_xo&wtDrm(K-FwJDwB!!KnVbd$fk;1RH1I6!+?PYtrZ~_TxGmJ`);-tcoFrsqOspEJp~ zso*)(k`lJ1F3W`+VK<^hm{ydsIi!GH`DTxPM_sssQ`Fog#ve&7i-P9>!KS3fog3_d4}))v1q1!E_W%HyQc5 zT$}ndmqn1PPjjb-OSL`&RwAi|EX#ffDx1edF;yk7qp{IwY*dO;AC;Psza3~ClGPQ= zr@R}uI$EQ71rsx!2~EwU;lX+Yj#sI1nF5 zn3$Ghqahatl34D7T~5JrZc;qUxtQbE=bXR6Q@i;)N&VrrX8)m}xrdVtsLU@YS0`S>)Iq}LJl!ZT=ou6m zhd^@o500RKkjuntY+*vG3PMA4+}XLITLhvJB^)^M8nQ-gNKShIKxpU|38}vOtF7Fo z!OqAI(F+PkH@0gN%_gkY>i$zM#8a{n`%jV9{!?@`_Q*R#1Jf`ZT5Xu1JJHf2fAst2 zKEh5>i@A)@Mcn@bTuG((n0~kDmo7d??f;&W+W$R)*XWnq#J>CFp!O}%4xvKD0AV9^ z*(?7%D*qgS)u7g5ZZYi~vb{HiSLrL^y0VNbsNZVLc~b^5qEA55TEODfZAZ(nE^u)Uz%VQk%LmxXq@%Px!Ta<^S>x62)Nxy>#M z?9%L9?q3q@J`#y%Ah7<|$_Q9k&xXPA{^bZ1sXraa4Qzr_iz_s$1ME-(n5D1JJ;uP( zuvyiCWduR_wgN=mBPeKoSHk-)jEa!a;2RoXyZU77`<_q2K8P%s30szCoG5*UPP&AoiK6cHi{?qhXw{Bqz`9aCLv| zP4{<+Hr4U6OS=CO$$g?+?Q6q8!3t_2{|>hMpfJ73t|-5sVL%jXI6uL`m-o0oX~7%7 zU!7O@3*N&1Nc3S1mB#Exo0d2miSv;-7m0)n8ztm^K(wy*Z#2`5CANPfVbG!dT+8vx zEM=3}3VQu3olIXe-j~{J_oCjPq7RfF$@D)8+q2Ed_uUAUyU}Fcj|sa8wntJgLS;Dm z7aO%c&QmhgM+<@R)D>edqMQ>*foPad!9~>IVM>t;Nzk-dw*Rp_mvRgG)<%14p?6Wc zDMdG$7RGYWpP_6~-EQ0)0lf!|GS?%M~f{=G;)+IyWY3i69dhjU?fPqf*>oBkiy!lnO%sWHj1&t-%~>KHX!Uc#>@s6rP#f2 zav_D03Yj7o)4dyMcDer*{r+8HJl9GpMB&K1o@Z~9Y^K}%zHQ#AQ4TaVSbf{j+5VrG z8M31R00pLANhxlg#2mv_Mt=aap|1xG4cuu7Gt#F)Y2fZMJqO7J7}f;ZViT%ts4&8s zQ+-#GIIcKjf{2kTM50n((MZ$9#k>BB;ttKc{x(b&^aiZ}V7;#NFRS)%_NIFu;~vykVTh*pF%wbm zV~)`CGiL=tb@lIkj3d@7M+wSr*}i5CBb*QEWdA6$_Pd{#HHLEL7dwxbb&=gBxs-#5!c2V9Q4JmZf&rJ&I^>6np@|rfMtDOPJkp*Hv9I=2LvS0^B!8L}y z7qvq^81zvgF^nBXgxg@n>lnt$K->=_NMRemMl_6~gB%U>WdZ(fL(eL`KjLrSW60l) zzuWQGjK4+ry90lB;_ogDxh6nAH-pl4$cgtB{e}+YhkxLo`qDpInSRTaq+h#5uEhPj zd}^uqu7$T*9iURffoGJF;`W|%5UFfN8Jse4xJ!yT^erqsvux*;Mm8Awj`i7vtNU^> zMNx|r6ZOFn($Jzlo>b1s8+vPH9M@tfVp-53xhG%pcEdt9c!{! zdA?-V>06!;c#G#3`E{}5z2kWrWYBrO-LD;fUFz3me&s%mcq{A*%Q5g{Z9&M0l#J|P zGt5|REV>FkjfnvHl4m7cFd-Z`z_(21TOIH2bT(c2%Wk5<5S^#{_S zN7%a*WKxCI&H#N&js)=&VgrOFIkstz#9 z#Innri~%4^mnBdUgF7~G#yA~ZN^npdTxzuk7YoXbCptaID@Y73cAsHzDLBRIKXAD^ z*j^cs=RVjDCLFdnA`hww3Imrh8&!C}{Ke;IF-VwR4gv{lVc;TwoPU`FD8!2t3^q{? z1}>IzO}c@rxI#X-R-UK#uEbezUwQrl@F0o7TQTzWb>a3Z1(V-et*>)2*A?NYccBs( z))kfOU0ytV-lz?qr(}k)<*zd2JHnxWXh!Jt;+Npp9SkytN5Gpl{zypAN8WUD^tynk zJS#8{dP9py34I@0WC(+|tisSDCp5H38nlNfoQuelg}?_81b(RdG70(#2nq*YJ`l!#A`lvBoho5HqjN!DC z8|H?OTCA=@#5D#i(e>II?{a;V2~2@{Pe6LS)AboiuRg;9h<|Vk`#iYCWHY!0U~ZKx z0Sbd#yyEZy1_|R>rzMh*x?9UhEc08lTI zC<_6Oqbc@;-Up7=j4a1>fm}M{i8mWGDBNTkGr{KI4A~r&Su5K!*8v4$&Z;XfpmVtCuBo6|Mn4dxJ zpR0sC-3XPFA~V_sF%v_{G{+t%hcI}|(dQm~ECvW$e&2ug{Y)K>?C>_8+~G~D!N+ey zRd6;qQ$553dPRV74Sm9V~W0MHI3Lc!y4ulbp@@w&?b61szGne)LBl>cgjo9uG@ZNLS$#?>A|-j z-hob`SkvP|SSKZ@{adO1%CT1MZPt>Oqn0m?xc_}9da@5(QBq`Djltkpj~NuGys!%J z+8GjZj*K>=J?fF;Mx&Qt_G24}+k8{EnyE6{3hu>hlK37D%IHlJ>;Abig4dKVH7 ztgS&>qL$5O#T7nBYb$&WsI3sf3Trx7t~p#=q19^qwC&7v0~n0Ju(K)NF!p-n6k|1h z+Bi-J1M9cIBMryrFbA{L_-XHAovS_!Su3hW%6hj8&D@IKk&5@dzMKi_FoUIoIOB&r z<|6WFo5I{22v?kIv)I+z4MV8iAorMnHQBA&jS$xjSYktgMFvWZfFh0IYhD)#Z7t-P?$HBeeUCD3yPVh zil7XTTGE*%7Fv`NINYhXdOb_q`K26^weFbN{R&osBV(0(C^2Lv?Hcc#V6?+5<(C1s z6i|gh3RKRJtPReMLB))skr~_v(}?ginGDE1ahoInKtW%j)wMNf)Yc@=W%uD&=44c6 zHR?UMLKjCmEI*=+$Ot1;iOxueyXncZTHyf0(^>?Y%=t>C993c93{(O4f^jMuKh_5K zKD2z1A3O(j(7YSE&UP^a)thX}3C_uv!O0yCznE`j9kV055q}=K2u~_sV2#s*R-DpY zX{=8#oJnJ2D+mRhttTyaWe!ja*<*~}47ksi+9o4ir@Er&@>VHh!e6+Eoe6bWt5nm!f2;iU5IVfQ7KdVd1V%n&A>~mlAbpQ!YdtSUI zlB|IX_3TBcq{P|#B&CKGWauKMCt|wP3Z31T#=N+Jx<)gu6h;M!7P7pjj1(v`?{@aZ z4X8;os)V(R6D5H@bc^W7lcdzq2WsdR^n@y;`PLen*X#*`TXc_gXvP+`9YF_n-s zvRcpvPq7#9J#;XfwH`p%csqxz3y8L`?Nt(I$B6>z54o;DuG-=B{xb_;&cUu}l}^S~ z+hVpnb`yFGN?s0*3Fak4bTd5pp__nGf=ZYg58d>YYUq}? zhhsqCtI&8K?|4J!`+n*)`+ll^^!?PQZy@Nr0ukc|iVg&EcSRe|dzD}SUFV7H;li-A zrrXUrvkecnwH0mHFA17r)|MFu@Cufxo3&-me{GpGx3)}6@G_K};A+b#9)Qs-6tPB6 z3>@kTO;1<%qH61fzTU^BMlcOPN4haiYn;@ngCVjk*MVCOCOJHW!O0UU3D$ix*vNFJ1%&Z86D?>W@+i*Ez*H?v_bVmrZmH0;G99|bko;mcnU!z)APFWz(( zeL+*OS>q+16D0H&pt#ofOb$w)xy{R(Fp;p*H9-Rstn%VD{6hfu z{t~X3L#gC`L|Q2p9hUrV$mV|C+Q?;XA?D!RUq(mWZPF0=!h4fa%k zLI!{(h=>iJqda4)Ied;*VE7!W(^jxLy@TN^;2jAO^;qE*HH=1v&yyh*vL$U(F@9*N zGP9VCoFg#Yb3@_8o$0_PpKD5OHmWN?mxw86kMPXJv7Lc=N}|SX4q2t^EAyb;N@a#C zvg{wXD(n-l6b-|>m6^2`tiXQBst+4@18Qmda}PuV6>Hr{d$wO3S;|N#Rt+VL?D#Q^ z0=qwc3~?z6a~xqGG32B-=QgquWo2fIScz@yNV~F~FnGiEps6!6+~%v$@Qzs75J9jI z)EYM4i3 zhIfQ=?LgnTwG;q%iH8#abrARg!0-O5Efd*rCuSkIqniQ*{Bw9$Y?Y{FU8Z|oJgm#{ z8^*@Hi}D@rvd8*bmY}9wb5T;(x=q3@)nSAnA_X*WP-r3FHPn?|`R7g%jp2bb=*v_2mc({6 z?6aH|cUXwks3cKis&cH2%}R(XUrd{2#bA%e2a?D)OQP;74Ex4+coqYMI)wqkR2uFA z$Gmo;yIvk*k1WIvBpzxA^G7N=)FdO(l{6XSxtWuR150so&tZy0W0Kg9E*t;ebw!5_ z0@PoZ9K~)L2Se;C>|uwy8uqZ#siO2To_XnmG1KGC9gU5kDT*CawiSM?dMPRUac?Vt zEQD~cuZqSWeg&oJqo<+_p1Z|5X3222+-b3MC=e^%8*5}Sk(GAl=*{Mjgttq9}6 zB6h!66~%2XtPB$=+AxJsThJKKmQY1R27SnpX~Dk8DKhlJA%d7NjAm_6yO@uM0YDG? z4I@>=Xn_jq&P0I@pCN6)V-JgEFqhL4D@w+VM)yEojjO$xJhW`^jv|A)IF_qBo%Va~ZWM#mlBPSR>wW$QyEumF1k* z@xed?ep(+cD=;>EnXa`Q_CNwHQZ?8cXi)vS!UTJ&1U2@W6;*~Aup>57#>0U{##Qye zB5lKRc{O@qQM&hFo&oL%SnYB5xEYFTH zJud7i2!$@z0r*<-XbxD%rd0|zM{CJ}MMQ%a;9bG$Mr5*CdFix%&*=B8ex-RJdMJp> zYpT3-UZt1xOJyNNc1Rr5QA-@u&k5lz{a&RnC+{7G0e40Y;Mkdrgwl&uBL`5Ox2@Ac z<$`pe!?j=!`q{ztNDyE_KMpV~S$WB1O8&h126au%bXmJuKGkxoN6uR;-WUd za~(M+teh~U(?|7q%#w18Kug)RQ(x{!`T?TFkXqLH>=*iMElSgmu5kg2 z6lc^lX)>`p64X~g^6H33=N-B)5j=% z!LxjLSqtc4o*t+X3b)mv7DtX87u}>>R;?OB%qWREb`R1{d&K|fMgceLcMJNU$uW&K zL2n8DJVYeX3Vh899Wy*>N4@pfspid5_81)Ye48Tp1QVjxrQh8|hm(G^yIN;dOX+>8 z5C)`vlNCAE5gi*@Cc`nZ%o$1r^_wXMSXZD80AEtMnBms25ImW8MNqN?f9MCbm&xRn zuo4022Ii6Bz$YY#jL}$;F=@RWOh74Yf_3}oMMpY%2?ooBR6Tl`tfT5tE?SVz(O6z8 zeUF5;%WT{XZMU3+_J)41>i3#{uUjv{iIzaS_g}w>-JOcDg-wHkrT`NM8faxJ-(sjm zIs#_ucrA%(oiZfxt!8!ugK+es$w5~r<f~~45;s`c&@FSxg{#L`(g!=(g(#QN@x{Cl4_^~dL(}!>j)uqTQUf1 zv1^Amc_L{sNPE#5uXSh*8Xs97C+kKwq}0Zg+LTh8Q)){}ZA+=nl-jNodXB*zIcwd+ zL*r)wf$T=k%2yiU3Wp4>!S|VfnWxe5%}gxeeLpKadEWOkP6SRgor=J3;WQ$$D29;= zD%Rxa1{eX3ZO^b9hi}E{qQOV}-u0kPNe@1P8r<}K8WLiSPs3>Q*9nZY(Lv-eF#+7w zV7)CyFzx>BS#rg_DFa#cJxn+mJhRt-xAE40H^~V=fd~wu{deb37X-=zaK*bI5%`WH zWuwhTY~-3>>F2WL>k{(y;Ql%lmfSM|6f`vA?xU{AixjKAX(Upfb^xVLYP1>s$E5Hr z12R^Iv9UCp5mM}uQVGCu`_@naV84EtBacWDUIRf+nJBh1(heS+T0$D$(a?@6=G!rn z){aPUcoCd3Q>KKGfM_%+aK*TwEldzgJ0B?z@)zY1H-~P z@JSq5YamAvwh}~&fQ&UWQQ&c;JL1~Y>fn!~C{h^1 zh?k7CM+y%K&^y9KLw}1427SD1p0Fi^kP;!UBXK1X!T}^!$-$qI#$eoy9?3kg*tU%} zQz+WDjW)-bFcLI>l6Oh4M2?CVdpQjkFW<-Fpaas-M@zVKFxnC>P5%PA9H`%qK_{Wc9dghP9MWQ@VI+ zSga^veTU7_Kl;SjG2(XsJ01opn61{c+c92Xl7yQIT=cKvCyBJ<1`nghs-v^$CC6E5 zh`e&_Y5nddpBn!hpXiKsX3N-9^hz5Lwl%WMX26Ia+yH>P9=f(8Ji)Me`2 zBB~3Sj&1;r!B-IEhcV)PYHkY{@rRrv13Bb!(0E$99OT#XHwJR>(ES{!g-6Br6sv1G z2_W&rO;@Gj%E1YEq)d z0`g#0*9s=^sR#^kr>NNJv0GBGcQ^r3h%S2pQ++v$kC*hTc;a!Y5Oms+`BP@qya4Z{*4Oy%wVFmxP@+K^?qVEp(p z2-3_I)Jdl<#+OV9Q?dnx%%<| zGJ$$*sCs;zHFJEOuWZNHK~X{A)3`u?xvQ4!cOXI2prf9;_l+~3EUMJ^kr;1m)b|B8 z&l_>Iw`W7L$7<{WpZboNICwILGYOaI$g}~bW2)JU%=TbRrb&~D9WI%;j(dI@`VOtY z4_=Rldr^o=lQYZY${2}5lZ5chP=*aj@sY#6wJ6P{83PFTj$AsPVaG}MzHY!J{_$LT zM=m{zwDpk<1on(!1ofGWy51ETaNgvo)_by29dxCEwged`7mq6tK z0{F;Smcx)j39DNXI=)0=-@$x3V@41OnLns^<@glrgpMvMMaXo5FlDnp+Nf@YY3Itx zpv%^P0;iDIoo{1G6=1lE2+}(5K@hPXbSOG)CFq$!uul)faHpnpCR?5JYo41Y_~ zkkr^xli1i&0C9d=;u~8Ur?STI^2-#j_A)A#zbJcbDRqZ~20NRhs*pRV^L8A|6~_+5 zhRjtTG7c)ey!w^o<<)Uu%%b0-rC~Xy-&y^hj=L$4xwIJ#V)e`A;sCwf4m^G)$Kx2| z&y;{)Cu$}qT>+oGVEM@lWDK)&g6hu=lO=HfWD-YKj6c^@aYf6|nhWL&>0R}aWO$jdx*O_cFtqTW4!T-tmA=|q$GWta(ua8auawkPYd{3`UP}AAb{I$ zL*_QUCFO(;sp3&+=>qSvR>!V+SBCV4y(Kt7y@Xvnv54Kr5Dq;6j-}2TlU334NE~c) z5ggQw%@h8%31icAa38ma47+R9USdlQ85(jI%sS}I6g%gVfU#s7B!MC=) zeObVlSsjPc%4<-|t)%56KbnSH{b4?PUgRCvua@!%rY7ii@{`FAIFsOr<+(EbOU zjr|V@-lgB&CUJX7`w99PLwi7Y7rB6n_dXuh#!}c7BEdK0>wdFsHY+E%j#f^L>UUhf zQ{I@JI5;t#8*2y62=BCh&*=BHxKWxZm|WTuRHDiWspyFdN?+9PCF8QSdg8M3Z+ce` zcE*@?3jS8E^)VafYbv;|-*gL(D!f#ncldjf)}N~g@1a24BTE~P9tntWR_-8^K!u}7 zffUSj2XozOq;SXmAPTF!1Lf+$?zkCgIiYswR~(*Pru1?QAGki)Z3=NP+$HRGL5h1R zCSuls6J~7elo64b3cWj>v)-M8ueE&)XvlDpmhJ+;h*=uq!BEktSw5n434pZ)GdPD~ z8>Lhp8>Iw@jZz-KRS#hm?dQe($avi7k12nvpn9R5mydNqs#tw%%4qo6iiFCdY z&!MD3rNdSjL85XYEYuBv@S%XT(FZTk-mNARJ`gnaEE#-6eiJSnSlFWx&M`U%mLP;a zv9BiwYm&Uw_T+Y@HH%Mb2|2k>kmq9YwwZLYha#~fE+_ki!4neV9J+z~Y+94%pOh~mI^{L7FCeoL#~%y+=J%XB14{x>s2_`6kCr_4 zvoK;%0i!7h*%HKg7}*EnzEvFA7teZuiibeau83ync7o^RRf+1Feq~5b@{v~`$og5w z=a)HngST?>rhaefSN3JL#Pn>lep~drNWWSqW_dG}ovO~Z3%WD}0*kIid;Dp^m*YW9 z>pa8-``z0F=Bu--=ph#X;3!{6PIY7eLdHok5YY~qGM`=HZ7D&4_dd>%-o*qY54Gxj z+&jo;xgO^jDq)J#`?xq;>x`PfX4ePbQqtKCp6wYH@O^99IVa`ekcSLh-b~l4vAs2Ogc3+rN zNMUxLx4o|@Kbmm~QZ{~;Gqf^W)9i3dW$=SDsiffwN6Q)Pc2n?nSPh+S0i$Y!&E(ZU6A$E2N@EO8P*FX=^ZeMCv0F} zJRMkWPiToa{aF>0!OW8qqPj`HoAtXzzuWZNNjswW7p8pggS?XO zZs2PbS1aL74n6`)No`aD9^@%LR3#5mDMPFD*8LF1DGn2-nT|_TPF)av4b~|Q)+r6v zsW$}Ipq$d6oVq5+4gK;#PBR41%<*H$nZZ=fCg%7tTrm~&MghW4`&1b}rr0*0u3Cxb zg1}$}N$kPxNnKuHBMHMR-6Dx%9_Qi33;BEk><;me)Q_G{$}(sldwsnl_LTf9)eP^R@wCE<)%MehddF{$TS zvJ$mQINwP4ea9&h@LqevEja=#5dkKOl_($YFO#`S%&HO-?q_-*0dYw}v}`W}(9xWO z)ynlg!+~`4;1+vlipMHEh*iORkMX<(FWvwK;BWbW8MMMir-eh}Pl{m{j9+ohP&#y{ z_)U!QD}eJB1hDD5jjI@&$pAuG0Zf&Bt2oYA`Eb6DUm<^tHaOdWpjB)=#;@QXPeMXT zkV=-0d!j=dIfXo-dx>$V(Mqtt=QdUo8Yz2xgA`Q79^Xh=kYYe8$0Y3;9i8Y>i!n>( zAt!t~*OQ^2DgYh4O2bE-NvUVCh?7Mx+~BY=!Jf|jREvnJ;REMkgf0GQ(y5a0^;HVTxhW2k|Crh1z7dJ{4 z!!)4yH3dTg|7ZY}@Ht=+94yd>nxR#&K8Kp)xdsJ?4>dO;j^8rG@mmGN@mujuN$^iv zt4Rxe)p_T9sR*ESoPicvL%h`4NcJ&I%WPCTMC(JQcqKtj0(-Z?A}`^UC9&0J=NgWF zNdk-p^1+!T0V4SX@B*0?V1QzUZBdL=(Nd!b4lOEl9c^RSLy|rUhq&^BE$br^+_Y=N z4)NU!4$!Op4lT0iMTFCcYSa!bN-<+r@PRzE2pJBfC2Z6WHLE=eh!gfuDQk~6f(R(K zLIiK6lxwAwS}9Qks)+=d=TIHW-dD|HZ<{j@s~mp#*t{G(<0r~O`- zxlCzmXB#y5PKVa`G@u#PxZ9gK!-5>z7<4y+uB4`fGqMRB=`=3jdFX86seParmKL8wXE82VGz7%2I?4uU#?dyl&G85M5bPnI z#>FoOj5gMZ7!V;ZY8)4}sKo8lq3*;=x1Z@?ueAIeI?M0@q7H}7LR_$;>aQhO@=CEp z=V=a|^?ttvJ#n3~2K{+hHSRdqBYHwXT{n4Mr=m!5*8x+PuRHo1T;0->sSsTut8D<8 zbTpKTRSuRVFu2wmFceQ$YKWqDG5TovjX<#O8b@d6K5&`XPV29=^=?m19)1l|9_?^^ zlt$ll#h5`OJ>#LGL%e@U4rgt#kDj3CoO3A)EE;vH8tJM}SW%fa_T%B$Y#>ogb8f{T z1ZN8bBqXH)Ir5?dWmDTX<~*osBgI1{ zO6jAG7$LB(Jp83d;#$echs@HZB~x$?5IJd@yIdn7!!T(H3*xhWpG|Mha^=(|AGl@r z1q3Az+$K=YJd=eM8x(OP`d}qJ70Pnp7XZ1{o0afq_M-*L6}Bjzrp-6Xr)g6@&0!8c zPOMO~DfSGb$!lLY@Hb8hql=}-uO6t&Tnp@$0_a8JOec0 zQI3Q46*TZ(YWFE`=>4kEX7%K~sG{Nb zOAtea^=V>@iRk^-LIv4Bu3oGj_j)I~-H;v*Eloon02}hip%~0YF3kJxpb}b|s06^M zM9#VBG-?5bYKuuOtz=S53TNN8ARj85$Opj4N6yGb4*DGieu768N!m`6PVg`#y~hc5 zKlR`|=(U5+=1q2GV z$Abkg_ka*13b=_nq|bvq05y1rBEt!RloFHf2;jcO@GBZq!Wx}eXOy_Nw+g^!JD$UCGAq)NNiR@%&C?PTjU=UOhL8t+ z2=K-rQxPQx9!X$QH$=ou>JP!yi76NDly=s_0FVQRSvJX=zDAs?w%$~0y;s>_*QwaD zPL3z+!&gBZ#kvMdggHx08nWZqI~awY7$j14a+9?(xycxGAQ*&kLaDT$@l)=VlMzvZ zJ?MQr9jLXBrNd_Yk{tYdO1g)c%L5gQr@e)gM|VcX&!P|uAID>|Q?l^Ugkn#w zx0$CBPWR4ST}~0u#h`(ZWzwcE06;)@QFBW1r77NhWbP)1R}5=-{jJe7SjH_3flQX= z+zwjC?4YI14q6&bX^2!; zWV~B+yv*4`^(w!Yh{hh}*VdTz8EnQ3I(E3tH`Ry1Vj5ZKfe(m{G`AoH1lxkdxZ4&a za%hJpjmB+C0aYH;JH44OISeuJC&saug$_mhYrHzqO$+2vz~mtSzB_5-b?P|!xgInR zTgGMr!OnZ4z%fu$;xd8Jj%hp9&}f7jTF%wbGKQKkn@laO%+%7-J_u+J0W@?23((YJ zCa~&EEp{f8dr}#EKJHgewOj8jtagLJ4LXyDE#)tejx6ABb7yLW7;n^VfW#r025?h6 zk>3DEbNTjfruHqx!~6>1Sr)C`V*8fk+Ed8KqF4Yn%?oW!eC7#)n-~l0B1D`Q3`j{m zi$dUAvO^|F6btX+d5{K}-a*g+%Qfx2i>56LeO1$Wc7I(B&np@Q`wMcwG=oRbATix0 zD4@0K@KON;*6`^Ko5FZfXo`N(6ukeF@FQ;pKghr`;rKo#AuH74n`wUxeFXt+t zFz!3N;vcPhq(2g49)NqRM@p1%f(Rgl(mZ5rh0 zDa~I&POg9r-Oy^^A(;qx~Nf|YKL8y%U-an-lW?$ z&xLLCY--ckvy~=8O?;!VpkvG?I+oQ66^ugGv^k#DJ}Qc|dSxBpb^_c(2JFY-V>}7K zpv+V)KP%gSR09VXvm=pCvoZjwP7VomFhKMPYjOp7s|*_%qlOafC8lc9axT>-YRntxRKxQv9i@15#D=sVNQ_O{|4LW9sCK<6v(0f$h-}Dv{gBM z!&SQ#NtB)DOP+DX_lZvP0Tu9r1bD-sSOOCQ32u&A1*3{z*RBcNaqYHFV9%Yqn>`UH zJr5tNPHcDV$qNYidzXh^Y1OEc04dX3M1OeGTlWD}j}TR|J`BCWxrv&{QbrmL2o2$T zo1%x?Y?q;6E`4vf*Z7BB29Lj49+6^n(FfyHz61p6n#k`iz`aIBqiLRIz_9SJ5@d+J zrO5!;8#f|UpoAHMb~srU@lvkCbD7eiqYMwdypKNETtxH=@oevWV=bK-VDx9=t?JaV z5Y3TxhR%Q}E} zH>p>-PQ|28NbYPzAI;f_9Eh?job+#n9e7Lep)9{4mZ7P$v=H!htB2c}*uex1tg;LN z9BzkVg{y&F#7mIULdf1AT|^4IOqvO`mK#LSVV1p=Z7Kps0fe-E>!>#wjk9*Aq}Fn ziB)`Zy`|Y(EN#8~;+dyYtRFTT$C0@9NV8=2a;P-vI+3CTB&GNm*6oRLRZ=PsHd+L) zby}DFD{A=6imc77$e}JK6vm6ekfaO_Wy}~6GBXh{ zm&_5{QW0kGEO=aQR+VV@2Syqou@NfbX(#?}L_Q*&m`ka8WQE4V1|!lToXFb-sn{H7 zMKRF1{O9v9hS^}zS;%q}T$V!z`9RZC&V@~ZY~&m_0f3It31-W3PpLDN>g3r zDfixObD%haTt(C1b6MU4h6`gHCvm~Ck9sh(f5*k@YbPk%dMS@}bZLU{dn}lx;}P6MR>N zR3cCLH{zv+^RyZgEYOn#3lKZrTmVJf1)HxaKe_`CkM~J!vnro>gXXsR#E}jm9SH!~ zf_iYToB5wn#`g|}{~55fN(R7J$;jF&895Mzey#>_o;IP{`L*XCea+P7$rpr3^9;Ar zHVmBFM>fL7i2{y)6tk{Pc?`&~v64Fv1wu{_>#;T&xhBv&8rj72-@T_0PKzX()(Csa z5_$ITRxfT_MrDvn(sKg3b?S2g#d;wcv|P!Gh&!SnXq_9mKu~-xGFTA91Piw*S`P#q zLIH?NArIRJRQFLM<0x=3^C&SF0*fL5-`P$OuVuB(Jyu53zT*iGky3A_ z)RmNaE2XZc)U}klo>Dhb>g|-enNqh>>YYd-K<(Tk79FXUl;W*-^$lUgNVTO@drEbr z)Y6n%mQu@8YDG$|N~tv|wN@!iVyxM^^8tGlt!_xEjVZM$r8X;tVb?LR@84eCRo&X! zQRz9X!+{NX;_T5$vDOZT?@}829U;Ez){bfq11^m6S;kj5elVI}?Z&Ii)?m;vA@Gsq zi(1fzE}{Zw5AQpVtw9A#a1k|ReBlNu>UEH)9Ki!w%wWDODC^y^S*~*A9EmVIuAS;7 zhV2o>s`XZmT#3ZhNW9Gm+f#UONMHBzWaY@MD8J=Bs10Z{#n+KkYjyn|((hsGPqjAS zN39%l!0c;nzz9@oFVRDMfGi`BsV_KdZ)Z7g?wdVMZEz|!xd%qs3wRQPjJ}f9!6_WI zw9XGG=aNA|<(s2irt+l#fdhUX=l~KTZ~z1}2C}mw(;A17X+H4f<&|&h&68+57@IMf zR@?P#9K6MLu%)03LlPR$cDvV($OJ~Wo%iYp0q2AOKS-U%TLr{EmYos4(Ob85dby*1VqX)Xd?Tg1(-6%DS$#lI<#iMEVe|>D%O^+1G8U9yyE1(~>flC0W%@GOLByj2D9T^QSoyx_o~Cohdw{Q9)0!* z2f1buwC%e}fRilsycq^i))HqJ@jzIi8p&=0SzbH+y4|n5=Sn#5nDN@>*L}ERX@JK-gM^g&e666>;ZZRVc|;kD9-;EE&&<+ zl3jUmkzaXYkZaBoT+OtHqy>MGClq0^G5PMTD5Llm#s%*JG60(7-TR(@Frn)D;u?{y zzPQS+dd(wg0 z_R5QIp!mh>6f^kvA(*M1MTULhtz%dtzI90#BHnOBo--E^!lW=F&9x^XzYS!Mzj6|K zNp`V@<`%J`o2bj{JAS=|D<_6-45$V2>))pr>I{#`5@mt$fX~$f#hJ5=bLSto_dXy8 zqsU><%mMAHzDo~TfmMBN9`7ktE{BlK4nx6r>)CeDti8=Gq0dD17(^97H2S}mOkj>C zXynL>4}dy8hVe$uLJyzM#`H#Irsz-&p9iE+zQWgo+FRJy*^I|}g0J4o`_=2l zUR?{}xlmA+w=&FS7D~D3DKN7h04S;(3T^PF4_6?*U}Sl&3w#}<^b_CnvxRMDb79#z zw7fF2IguJ+&TEYKM~yA1e7wIhv&GBtYDuTKEtU5SS7x?FecpE_x8pdc;o=ytRc830 z06ZRj5*xozM;H=)xEvpWmp>$9haw;%iKRl{<+kSml=SHVBdPlMK(py8CmiVE!_0Q& zR7q{4r!OsbmS0+25CWXzm)fGJZB7w`;B-`8YA+C5T0n#k{!$S_s&gT*AR3SZMRj8J zRR!`{4yZ4!LN$HYaJi3k{TB9xo*r3NO)s9R--?L-fkpTnWnkZ|9^wr@>IlBFXPk6Q>nc=ZpS$Mvxr?S9hKXhu-H_r#a|_uJE!{EBi!m97v9+nSv9*<#_GQk(OZ(=u z+*5$C3q=UItIfg5<{$erS}13Y1_&e=??vFZoEJ%&Ok|9L%y`OiAaU-&j5(uotkvQA z$`3Y6-|OcPh}i#wDD@dNrB|Lvzf#T0OH_o6_uB+rW{9u&$w1zjr9@g zG7=UP-x{}1JYz?6paX-0PEc>P@kn~B{T|iKOjJ}NKRw@0E%ki6@>1cO#r1Qkj9gHf zT0-KvCwzuHAwZXoX6qDlymw0Uqj+1I&ns%;^3ao(%2C}?$(I3Cpg0c#-g+1NtfM|5 z?6bL=9vs8Pb9Db`8)Z$?-dMK0a#Yfywk+lr9(`)44wR+Ql@*a#6$uY;;#1&p=3n;G zKM1Zbgy#Xid>yD^;lXHODQjxVsrG>e!&j>u)kC1b4;j)nO>>-EGfz=w$AFci4Qt7C z<>-cY!Q7~x(%R?PO{Qh4a&%*1YQfAN-JFK!0LrnO*EH4(rqn0J&^WW3Do3}3jJCv( z0oa*KcjeN%F+u|i@MUXkMl7)}8wU;D&C1a?+&jgGylqQ}4{DoHyO~PJi`4EaX933b z=w*&8s-OTD`3E{yrniE^p6F}ft9kX=ee_~zEN95k%lWwu0)@GL^m66swP^BMk`Bz! z(d)iyfItY9*l%kxZ;Vl=#@@{2Y}s#>peQ&$fbWv?Uusd-51$231W}bA3D*z(DQj5=zk93Il%`t8*m2dTs zCUnw1jKJ_$d}#?WjpzV&L z-8uZ-h%(|9Do>-+!uD-SV(QyeIfgfdMhN5BJNc61B`0<~GhnE2JPg?J=B(y%zAG2R z5jZwtt(D_+E~s(GX^!x@vGD(^eQOo>V9dY1nMS^jeF;ZEUm_BZ^|Krtt`d3}w0<@* zRzF)gK92c?uMyo-%EvYYfLjJGK+HayM7(L>gF4!|~bZQB&nO zKDJ}zu`QD!cfGvr?mjHBmC zW9xY$lo1INAUd>%*p*Aq)|bz|+H z$tkLHLR=0+@A3)Eq{@jE0OT#!iL~LZo`9>a^8CawfW{Md++sKq?-2Y6`hlFPC$bF- zWrp311Te&p%Bwuv;tegRoLCo1yDCu|TU9x+-UV2DT`J7&EtI9&`((l*@r^0h`y_JF zLS~!@-W1?$fh9Q0kd_Yr`ISYeVIpzq_HTh zoX`_12Rl<|4t4^@`HT6euNmPtD_o>Pi5=g`aXW!e+f+^zg6;>qvsIh>AtKD!bjYfy z`O_H@G@Q$!r7Q<`_{5pORK3?ChmKWFEHvK5wOD4tAr=Gh7_@P)S679@V)Cv&4w8pJ{QTs=fZ?NC#8BWSgsy?u5z-N>nW5K zBQ0p+F-$g1PpQJ7Gv-dT!X;Hxo^k-AXyuyA{3Ik-)6-PL@LzO;apL<2%&V9O{ldD(L~$#M9}Cv2_`# zrz^AYd9=2TcZyVJR@j*pjwuR|t2wp~g$Why%r>VS*qv=jIhJKPmMtojWjU5DE|g_C zmQlOt9L+9GNCYp10`fz$v+ekoO4#i3EZ2rygjdt&o3glR0##=D>{tyUR@?=$uQa{7 zV_v*?n@RTFs?-`n{QANay^E23^VZ&wA@8fqZkQKmW5R(aJ)7m=1kY~qQS1FDj#}?O z`PlL!SsLx$e@c~SS5#)*_*KGl&lUIn6N(cuX+NEE6mM6`QKVUpJjGL(v-=<}H+!@D z@&TpUV*DN1*&Z%NssYw3uV$@LY_;gfzSJ!1jHcX3A;+@uR7RG@GZTmN4W)yA%I_EI5tIprvVEJw^YQW-_i5RgXs6(5`WRfSWq{q&jiRzX@M z^;Q&RydWSm8%B1Po}4D(_0;C<`O0jTqfD|KW%72yq&{V~j}ppq*dFQQUDdu~01@z0 zuu;&UGo>sV_cz*g+W;NhNoN5nE+0-~_ zB(ao(hK+jWAR$*dRlKE!Rq|ABEyj2gXGKBSgsjS%vb7V0$J#RB!RvFXtao4Zy7O`H zx}zVwj;aJIk^0AGHWhN4=g=$$W>|w;b<7YXlSAR1=tTUf_D_6lr&9Z0$}QRvGG95h z!yT;H`ugpSuGBb%8ymq>-Du&|YqsS^ecT7Yt_=xo=kaAS?Zwdo3dDoq=<{VlL6Ps{ zRmlrvQ4oeBr6yz1P7X0&!MDv!c~4!41m_^t`BZEtPF)TNKR=P%FIZP$($UqJB&T8` zow^oVW0Z26Aey((CER$i11!1;@848X#E0p4S-X8`%JmlCmcnP2VVbzWU%~LM)?OH= z@gcL-aP!{qP-eW9p2tg2gtyh(wZ*PL)e9wY)jQ^2?lSn$>vqMN8pH3#HIa-rhU#=T z`#-s?_`W;j>BZ^6wPkS}-?KnQ*`S^`;+rv9naI3LKDq2e=^+?^k#DyWsv1(cH*}_l z!E!J@$)G(?4rUMk46%`_-c*NnBynZr?EsBJ0uo6Iu16s3eRRs}0a&G= z*Tj;)t!iAYtx_JEy)aBjCQ!VdOESjG$`nijA9(Z~a|us^^7M>SHmpp2@2a1_S9S{fehi8BY}6Q;G-HOh);~?}#yD%|O@eWsv1E&Y=55cy(2> z0XRm;bBVI%!&ee`_)6u~wJ8VlncbnS^SvC}Db&wpTLjpWSJ$Ts%w--GZgRZ3F_mHU zdUaDUvN?8CkUPFNpEqvEzPcsVLaguAZBc7mKFX(1W7K4v&q9u=CRX5AGkch9lXvQnwJr&O9Ml}fia;RpFYed3YTrRGwpjQ_v=&iMb) z^fzA~y8o|!@8EwLUVCZDn@#^==XaJa+5Y5zd*tH8&iiXK-}{5Md;hO*|G}Bc>c7A1 ze}3ro|9ksKzP$3A?f>WM(|`ZnyN})RsRyq7^?&%<_doRWC&%9WUq5|q(`QCM_t`tH z|L?!w|FO1*|Ni?wJJR>HZ(jO;{%G@$zuCFte{28N=l;{pul)8WtAF%&|8eIhfA$|+ z7W~C4>poZdYH4rj8>O$8c9#AG*FVCwyR^CVROySQui*E~$p0bW&y>1KJ4%n1c9nLQ zz6R`W)N1`KlDqK#Qy{XV^s%P_?MC@u;_vGy+E;qE^dQnt0e5fduT*abdtNHFei6B^ z0(+-^Z|_0_Unni?2J~xaX>aNFy&&<$Xkxe8-)Y&b+S1Kx=ih+J7eVV!as3kh*q5&Y zva|HyT+qKpXUHUf9}#0a(St9b(PvAG$!pf{y`{DXf%SFuZ!bu*345lerg^yj6AN~=Nnt7xek75^=;4Eh;Bf6J1eM)K=m zo85l~>3L9o2Ve@8gTw*LqkPP$tU=+I)Fo1|G5N~e#vTINS3#+}^t3wiStRoil6{+?Sz(d8~hhk)pzU-utx|iq#EieO(GlW$c;y zugw9c4z=T1@cK1Lse2Ar3s*|fzEoOU`q)a>ASx#7ei!cwLnuyf^dQ~9=Xb9q6zr@04(Il%4ZJIXEPJIf2pca;~F z?=H8NKU7{^u9U0g|6Kl?jHw5ofSmV2-ems4(gw|xr;xIVwg;&{)EH1Fo-MU*fe0Q! zl9Tt@Qp;y?*^9c1s6aa*m>tOe?z_>nk$ncOJzM%?pg&uBOznOFzh5uiZlIPefbRxm z;h#y=-#~KHvw-pck3;ewN3F*^wF3=)ytD;>8}a|gOTULdT24#RJU$5B&j0_%(N2zh zEA29EEZO*Ksr6r@eHsJKjJ>6WA63ad{4V~e+W}5;YH0@nJ5>8AutrhPVp`P?e-ws* z^PGhDy2ikGeiWH!po3q<@0ajL1thVR^P;!>0j%3Di1trIWq+^qDg6I$P>XD^i?oP; z1qx*NE1<|p@SwB$DKwm)@_SX+rhTRd^QNS*P^+BMnf|^HSca0NvI!vAf8md25SIz# zxk#n_!Rks*EE)3zX0x~H=l{9+Ik59SQ0JZKcahp6{@l%CO`;iB=u#^m| zL+m~63>`Z-mXs_#q7QRz-3$J|4p3%37ln66skRd5OX&1BP^G(6&3r(P8%-dnu;*O9 z>9~^cAEKQ_w4xkGVl5`lUQp@6|6haMYo*{gqV$&cmYRwBVLEirXlQrl#(UwvRXwgL z3%iiy%F{Jxf@yAPJ=Ppt3f*g7&!4~H5B~DAu_5~l*Z13(sUI!Nq-|d+EnEh^O_3KZ zL%-Q4^46NqK#8Bgz!%7|eSVze>xb z_Gh5_b*Tfnc^Dr3gQZX7ZDz%g@JoDS%4>}+IJapt~$ocEgTdH$+X*>35 z?RhZWPr9WnDBwSadbhj$Q3#t0&9~V3!IFL)%~L0L zsyiPr@h8+XZbc}oZ67S>+35V)uR^$S1hO5(uQZ77PL`tB@>R}s!!YrR2>dFIqJIKf3>`>)bWu8 z#@;o3gnM0VIGgUq+Zjtuch2u#(C5gu*)0p`>kyQF%6MPF9N@1rQ2SNIRlbZRmrh`4 ziE5T}1RA^=uWCDq?p#dtQ>CWdKM$(6Fa*CBnw^iX6SjN)@ODFJzTNno+gS4oI!tpr z)_e}`;i4xH=6VE9>1xQ)GruFRwUv=1dOsE&vM`}U1#%^eDBs3Z66+%F_}lP3PpMzkTdJRfppj4mH={XDp5yph|3jz1}F zMHKvVhy?y6qQ;M4Pw>b1CFF_HgZaYG1H1|U|DhwzMgQ$Q`bJRP0*ZeLiln*`6s^h@ zq&pZh;HHYZRYu<|XibfKI`z&K?tO@-D6RKVA&qBK>4B!U2bww_n6DD|u=BtXD=sH6 z?$Fq37Cv$+$%X`@*HkVwHIoCBu z8`}p%+JGx}+Ke;s_lsC`=Ha3B-(h$9*VuaeJ51BRo)4p)^^24|a`k1f$({c0(*61S zFrNq5!o6{82@|%F#IvO~DrE6i-QH4lF0dtx#mDB}vnt-aGq!%~z0jU5wbPf_i{|5| z-=8?ciy3EObm<$oavAY{Thb}DTN+X%XLF7IzN{aEo9wfp$ zL0jVk5{3+sCFehh4t&zNg)S|w4bfBPXOfKHAMee`c_(>{-Y`msG&+TgSd{r4@W0aw zXJnc3*53np-T-!Kz}p7rK3vK7Tr}W(wjSa*3#Pj$RW?eMYcF+`s;!r-l`Ex{_g>0Y zu97NA-b>a>Rppu@RVt&vY7N)8x{W@SP7#M(j55RR9A2-86xedzqN!)M4{l<#r+;y%v zwIZ*KT)hMmvAFbi1z><$$tR-QkAC_UU!o&~Y9p5y?Ue51;s--ilyct!gK z-XZHz#zpzH!m(2053iAlkQ+*~z#E-Y)HZ;r?G4fKvZ-Fh^Y)Ql9;{aDUF}XCSNmL} zLM_*sSebC4dE=SXeJhy6v^mI^Ub5x|ka(vkS?4x?69VllWgwU+qo6Dm2nLQe6;9$V zUvUV!qfn+}*O6Ih6z81k&0qrFEZYh)t5~&GVK;Z7Xe0R4a0=E*-HZ{KUrHr#EruLR z%PQwARc7!#+6<03%W$_61~C_H{vJy!KXUGJZYh@OE=QZurhGud1ClT`(G9IOt5x&Y z1ErXA-Fo1p*4l#R1fHeL8V2ss7erCmU2J8uhRc|gffRjNX8~6tx%9+`8k&9_*vhsH zG&uFjwc$aP6O2nEIqTGMI?0D5#|Prxvt0Wa)uypqQd8R}0znEK`Ik z3zsG|pSUbbCC>Xu(EP#6%eN>?TlK8p@-3r6i^_}ZD7iTmK=tLOU4JgW|P? zoUFMMJZKz|$Y3Bt6j)I_n1jJ7O;B>FCTIfe!1J0Y7meZSM``G4*KAFyj_kF@Jt zOU1Xy_yuy@13LE|fad0;Kx9a(f<`C6oz5LH_=?+BDlg?D^ZF;SR9A#ZhXiY3U96ch z^bW*6XTe*Hx?tLBoyJa9DQl4O&^=gd^ zyKqXU#(;^auFD^O8zi$1EG+b?1}YGroKSLv!o%jZH%g>Xt^_2xFY_di3(=i_mC4L1 zv;;H0GA2nWH+>ztf8K+*Tt^1JA0q8XbeZ}6dOojTQMBoav;OV*C7jygtiC8-i8)8e zMRNDdIYO{kLR`)61lopTd+c9Mq1;$C&ia%|$2s~wJ@%Xh-ZcMu2CK+1=v=82E_nHE zmKCtN2>?YG6Zo9~1+u=?~KT)z58NrHFkwJu^twe zGD#}jOS6zsa9#+P*hUOe83~E3-k_{QmhQ_g5${ z&PrOkrkEF?S2+_L$%E8zbJA4-3&a<>Ev_1#iM{u~W09 z8A1yQ-n*&mHcqIOT}hjgVXpaEZdL9Hb_|74GS4jYu#z-6kF1OdT)GSv*FOBuj@>7H zgb5n(a4B(@b{+_bcX7pvt8o-?4~SYLA!=sn)2+9}6u%-D!BV%X6=*#NftfTv0wid) zYY*eHCP5%7R=e?T#S6k$pG9L3-FpX{>k41;wQ{lfC4I_8#3sN_vExwO%LxUtuP~ zHFp2X{gYaA@|U_!X}Coj(7P>|n{UDFZ8HjTi65@4W<2l~Zr4^2pFR{tLZP1Z&lV4$ zFqX9)AQ#!SY!(>nVW=~3q0n!>i0-7Ea1{AP>BpN)enU%6aXOua`N@k-LcUt?yigt< zV{7>0L2goYQ{dBO!~V?RY74jIy{HS$uW-KA;F4cT;aI&eb0O687RJv>n8Smn;+s7kQ}QYWy#X=;AW! zuBZ;RFSZN6=42$(jqKCR2(u_=FccU8*C~8=z`R&$in(l6XmNNj@XsYHrO2&*0=bk^ znqKSheC6#bd>TR?{m)0E;%{m}rz9mRkMUY`!f>wdTRw&?VMlR`I&BtO=A0gcO>!#| zy3p_KPK`<00?7bI*o7ap;71F%9>umnT^1y(-0%kYbE^*PMhTirCbVG{mzFBY2+dnr z#>asdYq&K(`x85`DqcLjIpo|@zjb5lrcAUWzCWFLdimq= zOcsD2cxH9|8dO=c$i8YyWIL15?yblfW|@e66G7gugq-VE)vu{z^^?-jQ^=%UF3cQ|OZj8?a)x&}J=(cdT2rsP zfxS>KDLP?ZGLg;Qv>6wj&=k+MWfIb(7AvIv)lO^mHCqy?4ViseasZ#A2kcX6BH!YI%SPw&CCK&<`VhPdXcCN+A)a2MXg-%Z+RyD0DvMUlrun^~jjszojdgOMuak zaBXv{J)TMA;<3=T%OZcH2l?%pcqX2VN3#%a?kMf~A7z2eZxep4Rcz~F0F1i4zAicj z7x@a8@2?wu`Au&GD9{-EARfNulU@G@k6#q<|ys|0_$x zdF?20lc$u2%|XDLYc?cvl+K~=y5tk_Q9_V=piM`R=NI!}QbJ@b&M#&Nx20^`zvfDt z0+CA#!LF!M z5$^VG&wrN%H7}7$?@eVHSD69|#*F#IMGW45&l}H6oWz&%g`Nb-b3i(CM5O|<0S#H)O-IT_JVqtjtj+bXUGwHvJ zx8)uzF+6VZ)gy2X#`lMuHLh`;PStN|d8jLqjBQs?Te>k->9~6x+ytAtlF9ASTzmGx z*ppALx;NOQ69N>y+#7NlE32#-wMs>+eHFpSBwjKMxV2^ZBX5oumpQUV`#WVzf7LhR z+mL0`DU39L?PUSn>YM7Qq2Q5bUcGJY?#IePjrgE$O{1SWI=!=hFWjnBr}RZ*S+Lh@ z9#pa~xNp~$g|b*fDQK()*i;sRae8ioy}Jh-UkuX9vXE*tE?d(N!=GiW4)~{5DW0x3 z13FvZnocLP^)0zf8p^c0wYxJOGcRQ<#532d=G=#~AD6c)Zw%b7(LKrd_GkvJiYL)! zZSiatel-p50wRUsTxN21lctNdNL!-M#J8klhCUV0)iVu+FGx4xzOwb+;3>Bynt3{w z-Vdj-OU|G>&v2L5J#Uw-W_~i=7ENXsZwEBEU2&h zLA7WD09^?6pUz++CxG%U`C};WwLDh9JpKu63FZ-i75JY003U)I*l1Yo)$}%}sVs3K zet3mlufbJ7WYvzw3c(5$REYkZu;%{mbzC0tLV~&8S3#xEQo1I^yXr?~F%R z{=Kr5-{GODw#grYbjRvtYF{B|S0Y7Rw6>;I%L0Z-1x5l4O^+8Y&`7AjSn)&IzH&Qh z1y!vH^fzS*^z}Rl+T~y*QMZ@xzG7_vWqnjCdHq!sGh${b4qD1K^&9!Vu>zjd2$gu|=*JaLH5Y1(NmtLR;MDB`<1@H(~-?K|R-^*SH|zIPRTW zEHAC}qZG@_;(`jgn^xu^0HxCkJP<0b(+#*OO1#w-(XMpu6}%0eYx!MacdygWdfqB4 zRK`P6K^?Qsf?$mGdStrskd?633~Ro~Off^OE?zO%%bQ!<6WK@(i!+h-Xg0DZ9#2JL z@lNzBvO%Fdpz<`%eJkNES7{5dlPs8rBok*ksEm^kwO$Ua$z|$%82uAA?JIu zg1ECQ!CDPGx9!0UtJhOEA#w%=i+J|7b`eq9F0#`3Z8M;-6wpv8(EtU)q9zEaoW zdPA{gVm2)aDtonTg9v)_%SG%u1cGt zmP7op3>EZXX)zDhzff!0f(uOFtN$J`P(Qlxd|W|WE6q}xCY3^Q^Rd-U8z0*FNQqXv z>m#~P)qa-_c(Lo7b&{6P8=pa977x#0`wTY3xD{R2yJaEgn}4q{ZH@s&1b+S~^7pOL z%sxc+n5|>e=y^^6%FRVCSBqDL@GTkH*`zxqpu4Wne!5&Fo2&OS57i4T*5*2N#vMwH zu$QK_;~+-8cCV3+#?9+E+$oE>M?3{d+J?9bb{nLU#sXQAC*TMwsTVqa>-!y6hKR;|3hnfpJfm|AjJ$B$-WSW;FSjTv*2%XD%6 zfqjv!HP?TyE1R>^qz9jfM`G#Jow-OVj_DNVQf+R5$o}?3TYDthMp)Sh;KZXHST$pw z9Gvp?F1yXzD!CJ9rYY&&6371MT%t{Tj2W1RMm&S1=#rWhMl=5FdCo^Ata1R~yFjJ; z8XN9cDsXQCJEdFN(_P8fqX>h;Ze~W(sDO_`3TUtqKlbBUlr@xKB&c3_)ohay9}v6|A(>q7n`HmoHFHO*O+v(L7kvCbmiJHm?R=uz0X4stA#ha19eLj zAw2kt?nxwJe%%IMT+?vx{TrT1CuEc&Bos`T#5&r;>8{SC8y}hn)qR}xSaU(m-4$@p z97*O#LRB)y2cIVz%o)<3r{0lj3tyd`^nbN%1*JI423`B;lMSoTVi6n`>XLr#TTiCqlm94Pe8-2r_Qdg# zuZ}dn@g>vF$lk78S0)}o1V2Ae7D?}o5C*?Qh8@{oDEiDb=E~~Oo`1$?_1sYW7My2^ zZ&r0TJiK9LW5eqEo6=j;7}IUZXa*loi^jI4lHFUna@^oyPf+Ccj{yJ69yvt-+d>i@ z9jZiq#C#qrf}@C&IJ6)giQ&t8IKamai#7}ve#|M7O0P(Fa!-luxxwH7q*NL^Y~Z}X z6=z_@JezC2@N9+8nOvN1`l@@_gW4sdJL?Ni(MlWG^AFh3ds?4^x&`N%ac>mPTx)CJ zl#K2JduJo*J^1JVn6^IBnvQg&V~M@pvbm{4<;MPd(9q4JFtfjT53mEGJf|u{T%1XGQLybr-i`uGd~$}{z^EvQ=P$zBTU?W5CYo6 zP%?3R+Y<-9ayJ^c?`=!LNU=TgFeDKV)TgW1>=!di_oXyUGfSo%t2;zqy zT`U}yS{&>FFFfm)^l~x!GS?o|8>Q2%?|$wEF->zs_?!}CW6F|Z3A^p2>TCh2pzB!oxPBxg7Xg zaDNB5|KFcK+?VrQ8#W>D?Mek4^#phG(uMt}K%_@DCN+L!hwFT>@3 z^ke3K66^|9txCBRsQc0JKUG@4EoEfEw# zg`C^%F{!yU)&=Uf=%WiaCE`i?U};V8ti64VYsdq$&^-b1kqizj%eHQ>!NPz|R?77)KG5euvv>pK))sC!93scSpCVDx9( z<1xWL8PFYzGwRc#n^hw=$We{lT+q66DU8e&g^#XlE*CkRL(>AnxpMK#|fl+wyUE9hwm>AXxF?PmKLW$QJl(GK+&slmT@v3 zSTop{zQDSGQq}rhc9r+AV8x_dIm5}5F)T=A{) zU#f~Ea>@;8r-ixn94d2EsgzfQ$>$hmj$tZgm@9}^Tq%7~?yP9HH+j|Yz}iGgK2UCy zE0f~to8^v!qiFwPPgf!tGapr}#TT{O(w*I{Y4yoX$6@}xm_A{x%W)QkoUf=kiCyM# zoOa(4y_hrNi0E6PQ5qUns$e&KOdj!QkHlfpB-$9!8W7s{O$l~@4^f*I5?Zor%VyV2 zm8s7^3L9X);>OwSB|qpYwo>&XC{#^E)c7WfB}Ty**hI}x^R_5Y zMsMd_2R3mgk-ZF6QdGLryvx#RGKroBI}RqAMJJ7pa|oKuhyyY|Y(?TSzzB56$l3rxVe=R2 z>hHh^-bc5}*VL@rh)}m5@BwSbS?2o^#o}Ul9VZ$v#HMW!)X7-`peH_@z^L{%Ib$Fa zjlegN>nfzx>@+{<#84G1Vd9GvFf_3o6ghygtwwg@hcdF^ELspV-Xs_lkOx)QHD|YW zC6f#xR=Y~RsExloB!?sChWwABfbvDZmU8i_4@q{N{mx1O3tS#5VF0_|e)+0@VA?$; z9*K1ML=9YfO4Qs^1WS=L7rz%TPd~}*?BX}>@^-I$&M2>Y;m^eUF}F#5>FDB9;PP}Y z^#lC=wx#*{;o`Sj80_*i-u*7sWi-|T{S%kNO_29BuJ#LI5mn+M$@BkA>rpMf6kewV zWY(Fj*({L!PqPL-2jI%uDto2(2Uhy*C-yGAG`~E8ocB5H5Z{jPnPc~<*-Mj3ri_B$y8RdVv$W_mQp9z!BQEiTDb0^_k z>_bpGLQcE8I=9hmmdn<27O3RNXn~Ot#VDa(pb@;v1yXr5Q zuvv!Bt}CaCZT$AGZ2J|_^!r23nta?;5E@oSdGLrv`R;YCnQoor?N}k=#*nkVG9XVx zlTTacHQa>~FHU%Cyn?SOcyh9BGN}U!U2ykla1V!^2WJAw;xHdD%@yaS*ccpX36! zFagluu4L}+b!7R3+Q38BTnQeSexYyApwKEDDsp$oxuXbr1)}nvkn^q5c{LBQ8I6wf z?U1v&bbd5lP9)+MCEM}fntMY|W0{h&3dE&-$PJ(DFWSe&$AJD^^WE#3`Em8!=0qwk zAXfsFqTnv=i^oFF<~)i}|6!H-860GjF$&bG%+h+Y(I@{dZA)fT+uD$`Dvt^{CGTlc zVrMRq%-+2Yr}>x^#)YeHbeu;*&O>uQgrZWgy7$Gh#f3Tq0v;R#+WZ#-<(S1 zS|pGiE7Ci`;u(tT03eVD0UFEz!MbuHww=fQw5O8*LaG-c0vHd5oNwn5Tfso&jXEyK z1U3a0=dmo)Db8s=$dZU{610T2s~u;3$oWobFp4I@&A`YnN($SI)=V^&<%Ypv7(n7X zA?My=NH7RVOP)eH_?W|GlcJ4!B9YqB%6PEm>^6O3RwY3Ftc+t3;YPtJb(wgoty^(1 ztR~13Wg9$^$hEVn9AWX8E3lsewtkTfNE;8d#XD)pd*EPn>QFh;OEW2Uuj8z;0rVWk z#cQ*o+*oKXDcw7NCjr>@Xs+EmhVgX-=ozMFA3|IQPU_p%qIH}L<@0#=-H?Nrk{mw9 zphF#aT34H#sToPbIj2r#Qj!p7Gf_F>ur+gzl2?9R+SYrm%GBP(zAnrM!D(;{s!gvV z$ISydmLo%0?%q6`w4&0|^X%|@F{Cd=OT8Q^%ZOXB`65|Qv6+J=K)?{@uoz5QRY|%u zuke^SuQc_5(hIR_@02;4jkc)rqCOM{7sTm1)r!xnpUQ*Tlt{%0TJ6yy2pAmS4>_BR zEUX+vwwWd(qrs$$3F~4_l4jkr9wOPnlC5_K4)&2hgPl^+b#AIVVY*@)HfzdU6aZYH zXxjMD&POiPp!{CQ*{C?wIt}QAkb@&(;&mXN&wWAP0*4_w63(bc;GSyViczY^i_7e8 ziL#(LY&IwMWUz5`X||*XTCF%&qQT=b@!FdK!W9?vV4utN=rV+xooj zDbCMYLeAD%0e@JwZ@37GMP1Az5JtI--MH;&r zOg~eQY9gW=<(f^aLBCkYd2%LL`ay0=XCC4%I1bW%Tw`)4xoe<1U3p(2VKpfVDv=NC zCE6^V*Pz$_21gZ7s|Apin#SA=(DpQD1=;45)hFHCGLTgq(Q7VzFRp$3kSm*u-OF%dN0`OuS3q`7YtLqTc1?87hE-M z*j|%F7G4>hW7tc1*aS9s>WPrEV_JA?Ht=}0@_czx#0QD5cb)e zp4zz0oeA-ZLxTWujo}Jgm=6ty6?@ib3;jKLHi|ooD6CJXm;-FIPsuzQ`yRhornDqM zjTamy5RbzDDzF6%M;ib6w2 z=8_G4HWdd-8-7DrI1W^=Ip6Z--t$Xl2aLY2pSYvoGZADJE^oKvSNXyi8gv zU;>CEZKB{NN(~5&Qr1i!hQvpbW3Mi(#bA*ldOtZiNR88=2N5& z5n^UuS_l+IELct_%a5!Au}Uki7&(L7g@SaIWHbhA9>Bl1ff%~-YuiJUaW=)l zUZp0M`L)Yw;SA2p!eeY~VW}1sc&yx}VQT3vR+p!Y zMhDfvJa=aSlvSlB6TxWZ^W#cz_w*a5q0nQZyi#uCV6shz@C?~fpS2^tJX6YTA!S4! zJLh{F7)sBHBHYl~&UhPdci;9zA8jhHeaHiLyF8gr>JxxvMbP9}PJVdj~r))*Qb9Uu;Y~V|mPO(a^6q zVlf-bo8&cr9W07eTw8c)h*HFvgRWe+6jrA74%Uz^9U zQj1C+dwNTYc&tP+X+_C=iu}+4hUa-0t0`B$16L-8j38A!{+n2 z1!f3)LoDV-2e8v2I{y;qENHboL#T|4e8v+ODOMgj-Q(MtA>^V%tI=rK+0z6)N;bBm zmIKKRkSiRGmGKGP&VI1d5C+p{?CF$D}*1d7=u<;BU^n&c;Q&IhDyx2Vp+(-K*BH&z8FM4--=G~dJ`u>Qxi+FH( zwmv_iN=;;O9x7jpcn3qeJIBDgm4Ps>EGujq*Kp_91%Y%gAzeVu*${HpS-n`$JTvn% zEfNap1y6BvK>vAW2mu5tgrLG>NM2BP=7phXJYLj_YK9KfGn^s|b?=dmrCIotzVtTf@20Kxm4@oB9cI3-)V4-43`G@$~R z_R(CfQvyHioI~-Iq;Z~P#nX%?9_|(b+Y;7@U6z?{`Ro;)@GbF_8(9n*mTp9)Z|g(O zU3oH#RV#5W-DjIdlfpfV#fPcMjzli^sL7aHa1{k@fOzuOq>F-&I&qGVOVGyEEWE~^ zMG{yqEppEn8fCbnC(2-pQmy!CZ4O`MqWF+{r6^`)9&fD~x?XHmm={wNqq}YOd)kA_ zD%J@q3m3Dyfjpq08}L0mEVn1xWaCCKXJCHj2}>%hzX*&CZP-GCqjcOoh;Ea>Y@U_; zib0|Q9i5B~2n2eC*{7ZbQqw@-f1tYvxqO2W-R5%vDS=k1cqwXwFagvq1iBW>DO{?un@PkeR?S+=6w~%Gk1~ND8o<05Z+(UUL4H zUd?=bEJd6Cu{u=3>y4>mD590Go-PuZV2f@#P{brfn>;Icl^|2RRi34B3rK$kGrv6` zY?+8+43Yq2F29hXPjQq2Kp6Wa041NjE9Akb3eajLKzPl4bWwnPSgf#X>7!3(R1Qk5 z;`SCNnLCI*0nMgAxA9O_yIizPiR6{lu^cogg7F7cG;YmrnhF4Kj8CV80@Ah>_gqnu1(C1 zhXLlSzqF#DR2Dn{{n?E~VH^QIc`M~G00TyS@p8>_1WHbJ=C209SJ`uDK+K>PKGua# zpelH*kh=&2W(fWYIpx9kq%3Q2cc9x3o>d|D7W#DD#=2(_oBY8DV z{oVxd-%}yyuk*%7MX=2fE?of_HNcc8T0wCV1dvjo1ltqE;RFaP1t-rAm_7s}rVSHI zM-(b-uval0@*xz*!5vm|7ob+8QM%77ha2Ek@d8qk%WYtuE};?T-aE5KF|Sdd|^G^a2(%_{@X?Si6^SIri(TgTj;SCIakT3{vDVJzP00Q|Vz7zrh^0|oIC)BdA6OwSZWFXq$yjgZ;5NIy%kqNma+7~l3U3wR>5YUY!q>!B0i)ARa zNmPZ-(}orTSY9xTD_cWObDnjs4s z(Lu~j(K|zMLCoC+54r*0y1OtN;sVx$CguF2%31dzy2 z#%u4%EWo3p8Jyrz=ud)>T2<)HEt~-IG;|(hq&s8UWxxWSEqF%L2i1cn8@rs9fmQ+Y zY|R=)%9~`Xc)>maUU>~9e`dx&6)s)a(x6cQ?g4W;Q*t{Fr6cYr7~u9UQBYG?)LVcN z=;gsYF3BSZ0YP-m8V2-s0QIMb2Pahl3-*SuTk+|LbXQKzIXL#C?t%!KAhd8V0V`Mj zF@mvSL!1iU*e(T10gelPPsCkLP#Y;NFzh4HM7B^MqyqwU#4ngv7?|k7Srr-x)^LwL zh1^yKQJJD@K|_Hy;Pe=|aKIo?0!UK?GqEc~K5j}z5h=qjWDp}xjw(kf2+G6lT`7ES zfxu|g&mJY(@&PeXMH*(v`}ius00LyjWrMX}k$RgTWD}`2%PmqnWMDw;df-?F6`jkF z68(Zj8yI>PF!(AdYwT=y@a5eFIJ#)R)T?-EO+mlk?Cy2^C>t@u& zEMQruJOpCU(%rEKAA=znil-UF(Tx;1;L-rCUKu_b4l@fZ@M?gGIxSeOX*$r{;TSN# znI=5fxkem0c@L1rmxiI0RZa>0%= zR}Fx`_9ID<4?*CkmF6zVYx_6D^TP3gNQsriQ9S6(ry9kMYk?~_jzjaaIpG$JC3h^^ z!kVYdvlM(NlYTm$vPQ3tXD&O^^V;D~^9=BMb7ScQjaOJ1rBlIHLN)=t70`mpfU-R3 z?~WH!ED$M86^XqoL~vWGSyT>`U|yTu#YFuzEA?>_?swA(h!gFIVw*NC7~etf*u1SI z%{1uj%4}bC`a!@&~WelO=*11Z!1DQ9^r>A5^Z8@HmA14JNCpgEf_7)96p(m zEgTNZWjJ6&U;_fiLpB%Lo4{W>g9N04a`6n->>_Q+Xf}KC8kYz8hXGB!gH2u4sG9mP zzhWb8jVA54<)qPtOBaIz{vi1WPdc3i{#P~kOhWiB$`Y@4CwFEUAi{r zHTg0;UIMB5#i-&k^vxx!^67w~Hbd1K5m`c2ET(y+Et>MF*!oLZmk{v(2x#1l<;cn> zT+z`+`6H5pa?_O_B01F(1E+;>gU!rtkx1l%q7|Y(V-2=%rsx(5-8$g~MAIf`VQYbW zH@bQppEiPC!j|B+ICc2i#zv*XccxekBaiW^D4gSs6BbHPfNHe3aWG#Q2ZinVzR{Bm z7vlFZF|CeB48f`hCL3P0@^n1jDe5%g`&c2BX(Zd7YOB9wWBYSfQO|e)|5eEIg+2DL zQTsSN)35ilU6>%i?90>qk;GoEET?KyNI$+*@d^<2WGx?Q0M zqD6BY03A`JrrOf@?sYslnz#7MNTe-;PuQw)m5T3=;Cv1o$)`O6cuP|Y&Vh6U5z|)= zCPE#=5Eq!tGn~rQ8gnneKbQ-sX2w>^ouGOwow^eWRC^_IIJshfB-WK-AH?E0^dRh) z%Tj62M6sr>f!{Tgz*lMTB~mE+Y)gB(D~XS)9yD=>!Q5R%(qfKGb7Trt zrdYlxtb(8zkK15o`cc9#zT!F`c2bTlhkjj&rGut)ghop&PtA59$SQ%8O(HqOZe<;( z=Y?Y8b0%)=tsZkY6NfuL6-jl$8pf=ZR+SjVk#t*IR|ZG@ME1AC{p1m@aDT^ScB^gW zi(_mdbfvg&uH+?&7f!i9y0(_NhiDcC1epCyD!x%dYm=c{i2su;J#55;pyOjk9m zy?-m+P07R$jZSM#@5C1OOdHPgFSMV&A!k*{f+B6MD9o+>u#}jYs;w)2aY$Zib7z?E z?=K_^*Mo&K@fFI#iAFkTl=71#T%7gz6A&^7!lhGzla!m$Hw`Pb>u*~Zzl^7CkUWc{ zvB2VJYQ_X47E}Hp7#!A9on0PDA((|mh#pyblwebq4GK}8Q2tzY;tc!#A{XoV=i(!f zy}YVn_5D0}II*|;VMtc2Uos%x-^(|u!_e!M(OKV`-poOlZ))yn6(_wo{pbsXNtwYx z)%4?b$&_dt?9M1*~$)9YPK+Fe*$FE%qL zt|3DRCQ?6${D9}4T<9hR!DBNErhqe^o2~X}++-S#rj$oWMJeLEO=1?9?v&mpv2 zw5}**T(sP~o`DNsC>1Kg297rECy z@_U9YaY#ER-_%+NWXhzmhdl?!8V-_l*%V$xcc*9x~QI(L60hXd7J;XHRY z=ePNi`E5QIEPq|dse(JrLEn5X@SQ_)uA{zia>P9?2yxr|NJO?CdjPoDiA^p!xRrGB z-RmA~d-6#xhbE)l57X0l-;>xXw9fxwE&Vm!J=nbUV61X(ad#10By{cAdV(nI!pa+- zY(V9B`ylFSm`+`Dqqy>ZnWNPlt!5_io(wsErOt(Ny}lUIvc<4ooyz0Bcp{p7I%tqL zt`-r)^IJA2_GF@&?zz!^=}aXo%$O6$RZy7c?%|1_6#=YB1pYttr|mD z0j~b?D5bv+Igb~kp&9g#;Oo6X1YCKqXmWM5Ksp0C&>GD?oedc1Z6W7xXIjguMyaJa zg%vAVh9p{D8SGdq#uuL-)%RB+XQ!7gSo}5LkH;spGSN0zafJrdN==Y#4q<4rvt8)% z`6tKcr{m@@y)@QUI^_JF9w6oz9M2I9T5ziqnasIP^0i`!tA~^66t=@CedNy~ryZDc zq|~s%F#-2ph;tfd%^2=c0`}k^o~3F&L6$$0YgEDjx-($-2OO=8 zS)tCKbxW^w00Bo7`9DgL-xq6?rt*EO0(5Kq@>mlUbm=o8=LdNsdOBwX=hM7V(H#6A zeAebgat1^so&vP479?mWiu&j>IRum{NGvq8`dqQuPMk~QiJ zT2a8!wfTpJ<@bM93S(nE6bm`2{6;G6fXAkx*2+>=+a^?M7qM4`F zIU|^sg3Iw0)555V$C`6@GGM9$8^PLfoXDPTtb*^=Q5D=uB*B+$X>2Z%?Jn3WCVRbQ z>#pn@OLHb3iFS4(K(7O*xwt6K-Cb&?n4|a{#b@SW|DteC&*}P5PrnI1jw8elCr8yo zI(8&*oD{xuUEiV;-Lwrk?2Oyfm5VQrbYKr=CYji?Jfi2~53H_l;Qz}bI@I}rRJ;pr zu;lW{_O3n2MBDe{-K{*M@PR$|-4|Wcw&vc(Z?9S%Z&>^7uZ3ExZo&bN;vtmX3!CJ? zJ%rGQu9|;?gTGMK{F-_5!=t&X`E~g1`Qugd!#l5;e`C1kPobKs`Bl}pT@eZ&ThFxG zP>>I1XgYV#hsl8W+!b#M% zopA9$BzoRO!czqE(Y*P!Js(_)S3o1&`xw(c#$~FrYJRm8Z?39gkz>1&b9A);359Bi z+=>tz()%M^dj1oa!FE2rihP4f$#=U{cBF@OoWQ$DR9QRPiM!Ed%o^w8v$#8W*Iy91 z=Bn^c+%x;9NFC_sC5B7SA;JT7lFa-?w>LS~dSF z{GM3O2O{0);BxRSR9xFT976kQ55CFE8>-3jKHT@0h5)MpjQ|cVz~uz%KS6YQKhYTu zN|%C9dOuI3OaD8(!zJAN0q=lL_|Q_^_5GTib*P=4 zb!h2V%>9kw{`bKu*WtP6U#r4>|5`(?BKI8x>xBDmJP`GaqF*;*j^u5oLpV`N^&D}wJ*T;7Cvzh%X zSeAEv@A2{$FMQkgHZLG__~1vl^t0*xBxHXhUi6Yx`j=VA#6|EsXwf+MmQ8!p-o0b* z-Y|FlObhq^ITY@H)TXU4cYPLepM}@^U*_$>#pbS$btp>L0kuOQckLnJ@oS0cdteF> zG~D|Uv-LNJ!Y6j&vF|J|Db_WWa2O;z4w%|i7y+_zaq zXJ3vW*YUEJms1$1wSBMQw!fPfN{aqo&5M0&aZ}s(Xy^t<4elGj>*2m2Q{G=v_fTXKkW1>@$|%Y+l#)JLdI?HvqK1nit2sRz&Vok{Ked@0?CK$5MyB z0VY;83CiaTqUUTcoTdCdxKKX>GJCU6dK06t?gmF>esfiA|I%>(cGP`njVar^rHTWT zLu{vXQSTP>s^`yD=C*$n7>D~C^ti4)@m?5Gw6^~Nr1owhLI6-#CpWL)2FX3YVu>c^ z+O09}f67q7a~DIlgLUkg-n&Fy^ot(qeCl@dh_{5O}?JrOFs1a zlJHKG*t?~Mtsu`Dg z9ducZFyo<+NGBjPa9-da3WdjCL!Pl`nfs(k8)!vM0~BD=wvlD56B>Fr#%`ubG;mVU zqjvZMatcYKuHms|mM~-63AK~(aaTLKPRj(snW&Zr7=`Rc|z15|l>c^Hz`B#AdE+NA!GE4^0(cyu1-9rN> z&CPamqq++u8at1igS&A#G(-z`1w_Np+oAB#rv~uQC)7#3ukgiN-WS6k8E84?9r`6- zvJoeEIZ2RHyo}>A@EWnJ4J|P$WZ+F9B^x&Qu~dLtZBi2&#q@ySR%Z?Jo?nAAq?Naa zs`xu_Tv|K$6nbC~O|Bh8)wP3Ux50OXiYvr0AACn+I`|H8c@>v~-!N3}eJtGjmn_jF zExtVz9y|*u2baju{tvtnD_!L=LPP)!vbBSvK&Z8(X}l4s2u2)QDiG04L(AFP#8v3U zCV88|Hun##o0s7?d3TN%4uc`FpOIsjc9>XNL)Ib~ z`rsy}VRQ|hhVb~c*80--q9_OW%mr-8U^U|ZaF+9Ae zs+Mpd2Zm!xHVwzFoxemGWHsc8;oaBkXAbt^n52=6!&3|Ni)!SG5g$;HmYh732pC@S z93E!(4WE|gVHk=m8s08VXs)U@73V!~rwVuFk>sk;c`$e=NQaX$T!eEt(G@P2#^^fw z(P3g-%5(wd8`5Pgfib`ZC&fsTWcJB0q&ehZ)%;)THdpxclbSK^E|)L=l97L z>_EPqSjNI1^G;M7c~U(ec91y6JcpmitY814I2V2vvJngedwtJjSsk6c_|kjJ16P_9Qe`!CCP-Ay_B-{ZUnRlA70PPX~M+VeThQph!W&z z;Y;rtPXpWg(t9SCB{5Vli?h^Wv@JZc4wpWfX(KWk(X5dOnR0}Un^?*ht9fbQBhyCC zXrLo!@H9X>W#j-ZJ;S=0N;Q5W%?ttD$2xsvvAOw!z8N*N8~Mn*QieDs`@p{ogx>(d zVhc+RWTyQ=(yk^4+P5E>yU}^(ZbZraj*yz*ViMXj3}kz0Xbt=cxunBKL512=O}v1* zwW9~5I2dSj3i(D)(9(r)4)21GIZw>_{xl3p*&~EcVrQh1|tyNVAdlM z$RGCMbpjDxHl}z4J$-Dq8DQ|Q9Z6cLBjb?1i0~0h^dn~sMn~Sni@{o6Zsg?*fw0q! zu0Qe-ldqQisAceW;62zVTIwz!#esK(qvhyQUc_#v*bN_fkI(aP853DZZ_D5V0%j-K z@|yWyAKVcBX)7`u@p=Z2EfpX+fef2&@&2^Oh+50Ek z;GeSQ{_6!rIw#4mN8c7zC6AyrjLp0hH23J+9s(YPd0}W`Lj$kzhyP7R+uBEkXC0mvn)iu^69T{8bJ)fgxIYu(yhAb-F>Y){2^> z9$DtmVR$~hTrflndmnQ(p1=URoIa43J6D)z?8Ce~Z=vDiPw~>uON^J@xExt0R^DUM zToD9lZtr6hWpZN>(eeu@jgaZaPr38~O5>+6L(^^n+B_>@s8WObGB;U3H_kN{c692pK*OPrPrluqW9TqIKqLx}X5m?K3DZDR?K^ z=Em^xH!v9?>7}H8mVE@>U)NFib^d<-%B1?RSk=)iP_mPP|V-o+dldQk<}Y zS9OuR6y7oLoS(IDMR? zwmf!9ch2Nf=ElsKCU=>X-R34|ICFAWl|~~xxl8(D@+tf7Da*B!IX7EQWfO~#?VcP8 z_r7Xd4m#tJiIYPz4F3oOhin}~Quz2O!xEFZ@T7H~O^yaZ8buBZX;k+w(g;b+enDb) z_?Tz_d3Y*({FKHB#t#_fO|gTp7+@%DQ>vC0Bq9G>7&SHv77wzPe-99 zTc}tLlzWGTi@gVsRtuzDPQZDWz{=(GHK)=N;mKChWiTiwb3W?6S3q5pQl;|&Et3?U z?DQ3Wzo4*5@f0>m;YqQR*vUj=mk-h(3Lu#j4HA6EPIyJ-7j>kxv>^B4J_$fOS zI%%s+p62C*E_ZwphaF}0)H$ZV#>Y>1_e)#smsN&plfOhdA0XzBeOMj-g{c*Hbw(0U zBh)d$D+!oDjftOIG&4{V)af)CP`~IT&IA9OnM~!s=(Lspq7!u*OpdLGu&@uO@IahD zqDYbH4{M@Ao3w@<%&WoQ$qh*s$M3&jQqlJSYZg0Va-9H0K^L9Lb(WHo z>rj~?9v*sMwS9N|EVMZ=cV&!9K$=xb$3K8lLIY}#ZRcedF2~hu1(fAVc=-5gUc@a1 zE{CE!{vnDWU*Eq7V#wF~nA~ChFlGEl#}^SNPWz58!aqaD$v3La?JqtOXDvt0FFx{R z5%*j##I#%P_##XH$v0}e%vckid_z(C4Fmc3BIA(e5DJ}|a@p0F zT4lM|mt5oGhZa1dEbAvWd@rf ztql(~0{g-LHUqc!+Hmi+oDIl4?X}a=J`OCf_0^QgQ+0-e#KmMe=(z>bOL=|w+(JpU z(o#RWgGnd2vm>1VIHpBYi|w%QzuHIJ=N46kr-qQ#ZJbF#dO%{IgwJqP(ZX=T z1?r#%F;r|Q6yekq8~TPF3T82^AjBk-5RPY=>;>u+R#?)rMdy^os zxqd|)P|&@vnn@o`B0R#laoYe%}JCaD+peEW4hAfj!hWwy~P)H!4w#g>^v)w$| zRL!2H5|AqzQ2Y97aXE?F#X$WN)v6V6$f@!uRbvzq3R!-cTnj`@kKw^Jb-+oJYk~ah z;%`-u#Z{o3%Anh^^=|8z3O&&O7zn@-!%WR)Wn7qn>q$bsJO==Kf;~d@yj~iGo@0Wl zTE?qRkt`%B1QpC&QrPOYsl`w`hO$$OUE(>e(guTRjaR2}4L`RUqTsm((+cpUM^yuf z=hjyFXX`o%*{Vqu(frJ}E>vyV8}+CZ=CZVs+Q~$i%u=zD<8&JO^||$wNkkAb!D=vH zs_QlIB@5>yOK{W_%P0aT$spwez+het zd925TJOK0U5`5=XHzoy{4PMNAz3HERs+HP*Sis9d_HZ0V-4Ct~cZ9oY>ST4C38=55 zPJ)m4#7Lg-&bm5Mna@4F*DxX6a|lKJWhCI$LJ$kvKtNXV7#~?*O&wx7>e!Jsd$?zU zM!YSc7Owf&^SlHYncO`us@Nhr{^d1Beuqr(_#~~_Syxj>m$AHl9re}K)R=WwFB)|< zM8j8Ywg2%diE9!#zn#x^E6jbgLs}hzEf(W%qk*oe7Vde~k9Lh%3?6t21q`X@>?j(1 zhZC^p-ar@D_AWu2FjQ**+)l;@-$94g4n*lP$7H6qmk|hjR#{nC{P|WY90>RP&bSak z3PTy8t0+R`#L_wozQ@ZSIM_MFlC1YpR58@c^bhc~i#JrR&wXszDjD8x3TzkWv#(-1 ze8js(RBjAc!v?T~AsXQrN!ZDtoJMJE4iMR-@We9WD`C`#L&M65p}nw0xM!#ixQsfs zyFKg~?tRtrg~~nHUPp21GD=NdxaXG!qI4Pn0%C11XV^b(Ad{grOT-^)tUaKEwXTtI zEQ{jG(xlbMViBez5kr=dh}APAC#(h-IRWpw&2rXwSFsu(63Rk*RzX{2dW*;*w95>` z-hZl=VMykytGih@N)JxjSNMmv4N*A>yK&Uu8Mt$OX~+_0A&39YIs_w{oa_%|`*o-; zKMks(#?~bx4SX?b%rDwrp}E;S;GhVg^HFO${*4aRWMrZ?HBX`xTR+lmw|W4 zH$$d_2d1n>L~xQx9el^$9vk;<~%;5o=!#}2fOqhRQ3f1V5eTZ*4&Je2mPFL4=tS6iir z7ho7DEMN+ZobWzLu*6goviH2fVe{WC{g!Fy*hz}AAHQdxrL{l)fXyHR%j~c?_?K!Y z!jG*~>G>5Y^W#tTh!A52GlxmaMJYUZ9uLSeIgj~_7o#S85KfZXAAg3#6PO8vd)M(o zA@&c;aCcCg5@cDT)+d7>s3`CV@3r$KiYvqqef8dU&~iggb6ao+{$&qnvL!}?Boa_LA+iF_3~+CNGu zbwVQQG^87I|K3=% ztcf*ai2RG(;B5~9_7FfH%MOvc&x^+vRJ@8bect*$54{^c^d4J*k$>pD@W5gOX0rG6 ztp*#AWDXEeurr zD<=u6u>-G5*axbngdk*es@(FP9VAlfBsD1)rBz5Mx>yMm^=J?u`b5}(&cmTk*uDiC z5f#UWQK*uan*sydJ!E!oTkY-G2{R7?HflnIAQeNku_UNw9)?zXNI10I1u<@90s>Nn zEMsoF*h2%)YTAsy<`s~#b96H1sWn;!Qc(ieLv~6tiiyP0ZPKb z=gl}D;OeBJiYnm;%*+FC3eQ224ZNvw;CTN@zhRlN^Va4Xn3BX^Kk7 z^G~FQk+o(CwZl)yNk4gm)v~zmdU1xS(Zttp;W9=eLE?K~_y+jVQe^c`A`*SH2H63ozQYI2wd;^P}yj$c!XZ>8TM@rT4{p>SO)-Hx#{ z#6kSR+df*UnWH70Y%>wzE&=UBIo*RpcIr0t6o4FjjF3JsUMlgmSS9wthwNyH_k7`F z@C3yH7RtcW3>;^(FtG5%$Z!3_T3+}R&t@@%L(!i_7iZ3)cac+ye1;n~M~zg0D7EcW zI!V=S2I~zDbuO}Eg9U&<*Q>a4jDy;f3jsz+Gd0}E!-!iC56Oxe=sC>6cXF}mx8aXa zhV7^Nlh`v=j$lNC0vfYKJ#U6b*ehStS0cwWtEFf8S&{dq1?Eg{DKqyo}#9l<5pk#upYAYu{WG0oH}sy@POJ-qbWA;%6#Dq|^0P)So_J8w>& z2HVlfMWr`5fXu?b)W)PL6~oIvu~I|DVHhRbZ5H)TXU+5B$~#lJ@wJO;5|}c~ZVV68 z+d?`>!_^Zp-Ar{LZLJ;HVi2IPV3T6xFwTG!B%*D_>2SA7K& zBMvVRzmrfx4Lf5Kt6@I$DL4{^4>z&>#!!<SZG?lQ0DwgLbL#0d_$*>iueQT=}vwd>_Ds$ zODUcHp104W2aRG;yIEd5ON7K%`cK53kjCCbA-eR0fyZP<2^vVh;HBE#^x_{Znl!G* z#E_=QJwhw%#gBQhlL0X5$TGu_hv8{tUDVwmxF>mJ8EG!#$kLqc#4wVMdGRADhU(lN zkihmAKQmCUpTIgy!PRHX=onjQZK$zjW_vs4MjQteceJcyS0ZR#@kjENJ&ji&;X3k?FH)Cfjj-c*ur72#=3oqF5UO)FIQ1!$aW_<0h$M zhaVpIcI4q9FUKF|`m2Xk6*Q)~q*Q6ZRk6Ez1e(ke7U$nfn^_InNev!WFPtQkY`PIg zP7potig1EpMbY_EJ1^F(9XrQ2FP$)yA6aJQ>DW1Qk^sPP6%7e=B#VI63D~%CPRNXv zOvS@v=Lqi|Uf#9DRziwtADD`;Wy#phFTE$7qaXn~wllf2@^h-=sGbkMVY{A8{E~G& zjzoa;5@{z=Nhh-QOVV7CKqQ-b{7iGGM?8XG)sxU)o>1A#3yhhlWg0eL>9T4(uubBY zeVHLX;$9Ug@iN8f%N$mRMRGU7y@+_2@XKpWdl8Kz>X(}BWgErB7#*;v%G<=MK#H1b zeN#=IeA&*1Fiqn#nc!v0zn5Ei*@epp&8L^2;@u)%C?`joct_#;a*lV_&Dt}pwwk;= z#CM~nZw5A4H}V=HIWj~n(2xP_DO(a=L*s(C;g^NS*kvP&pwLbEkwr3QDHUicV6ZUn z8@!w`V@6gwnerAd@8UA@G4I|t8Aj)!FoyuakIo};Jc~4lYk-A^JbDKhgwyCeYq)_s z`5Gpz-jadWBi3l=(hm9Q<+Hi~h<;;uWW5gYv38_Qal@Q#67n}e#@c5r%dR$Kqu>ql zJ<81aB~ZwQITy`=a+_JW7z6-mwKbQ^2{_vctXw`{b1E$n9{I?0Uf-YH?oiZiEugMR zu^|oN5tD>ne;!C9i+%mHs{oQoaRal4VlNRP^fp$W!^N`!)qxP@q4=Qi~1z z(I(b+YPoqH_!B{&YS1K-kx^$}j<{i7qw{3do)y>LK*?ezD_Y8&iV+M&#i;nCs30jb zPRTq6f^cN1g}RjT=9E<%BTEH^QBuSLz z)N7`~zO_<;wFpK}@%iwl#Ntg{xU({R>V015P31gLQ+ITCK6PyhvUoMI(%Ee138ORm zHj6BWy6D@iJ&dgPl|?RIh9h9F7!SSjdFU+qI1Jgq`AWo;8*yZ<>6NAKoDr)|GTC{B zx?+s7`xUWuX=n|*%WTVx77mZ;>7WG4Q7VotLq;u{WqSR}dP1SJA7kIXve{HW7IO`% zargFwG)}7CZL{{c@2%4m%74nXZ>+~V>BG96ERVfHMtVi6ZMU#aN(D*2>EtD6-e8X~ zp2sNnU+Jf&mG-;~=D8i}SdvZXxk(G})cI_}*t-VY*t;&$?-~auwws!M9h2=|WAD;f zlz9)FWuV_XUUryRW(_mFhe?|>uc#2lyNDP7Y7||&Q-MNDj*tXL*ok6*9O*R7r0&Gt z7FxW+W=kXA_hK;iA)f?4S_0JWuYAA@Eorg+j=bf~G4>(aFQx>x?J?h{mO?a;`ZnXA z7k=MnF)6wHrrxtSs#~J#I!|80HdBdEJ@N-Y99)9Sk#oGGxAdp;3?lO4r$T8qOCFCp z%(BR2IVyL2dz4b;sI~WchNXV%MMi0z!17{EvD8l&^3giBbSa=}DsZ#PCS4(rx?^$K zntS9kX67RunYG+Kp||HQH!lv}Zs3VS_-F%b&Eax%HCMaDD1_<3gmrrPOC&C{4Qc)( zqZsQ><06U*QOs_oyR^GJ{B z7ewJbqCo!t>HDS~M|bn_EH57#bq*ws`WDKL2yakq99@9R*eAS8vdpJua39UNam_OC zAP{M{WcHEgNCZWHR$bt(qLhc($GM*HiIo4@0x~>aDH4NC^b=wDjE*C@e51prxaNyZ zf}UX~3G3KS`Wd>2C+6bZ>9m;KY*`!#~^1ORH)7zy@;8&vqI5VJ+|I5K@kg@^Z># zJNh%*2!@={gLFl4amW*?00rpbM40gzCa^I{ty+u4<*`Zoh#Wr>+bwG*F` zTaLCk{j33b`T#o8HsydcWwq^Q^ug%^gh4T=?nsl<2U!1&Zr{(P%%<{GYJ@%pEvvDCDu^9W%wW0XeWikDOQE(9UsmJnhBW0q!QO1w_o`3?+dGC-TCPYXAG~@N zc8VBRTFF);aeSO_&KZswKP78PKX(AfI(XEcFE}}{w4oqyG;^tr#}niwA)9sZ>s;{I zS}E)%$s&x!mJqAO!!gdYp@6mkC;6mewhm!aYLyQxIer#+|J=@t#@+araqJeq-P)wws+i@~}wi@g%4noA;$+<@1@%LE4S`A8+0V*+?T|owaSt3D#GSQTl zg>p$Fm?m~5<|X52@lVYVF?3NalF=A(yZ?MMbM9smB&2Fzl1T>)A29f57gL_q-34>I z2hS?8-}K?c0)wVe;R~z=m{<^=SU?cQTnSG&`MDi8w}aQrJ!)akv&QxKc{ks@@Wedd zL?AqV-uUed67%xvL3x6OYjC+Vt^e6kKUA?ix6gQ-G<_`WIqK9M_brpX|L!2JaW2HwaXj!EO; zS5J$XUdKy>7pj=aWxTAzW$<<0QDseb^6^#P5xL1xUMMB8n;Do7{zfx7=6>EaMcG|E z*i0%j(3f$-b>YFkvGMjj41h<3Zw)axCajH3I@pl0lu^UHB@g2cp#eSriQiY$Ijj^z z$Clc@QSMzN*kLVZ*0H6?MD)PYYIiDG^Vn;+$oB1De9D)yEmUquCbBJSl++sSl*JCe zYP=&(s9C?%2Bf?J#Ho3>yk_Rh+!@MhPBGCqI*^9lAG&w&VC4dK^8hq@a_S87AER`e zT40BZ?5S0|FVR~|!p+Rgy@zrtsM>oN(y~X6?3`)`vVhSufy>YmL?$-l=FtB(e1UU; z8Tc^O&&w1pz0Xr(*dD54Z%oNqhM3Lr;W!)jI$<7P$~&gL&b#B_73?7*)#xpiT}XV_ z#COsv(Eiwm^nc+!w)mQSYOl_5nc$0bQ=5gJTc-Ul0EK^m(tEA-cq#GSdn39>7+}3@ z1o1vo7xmuET|=Z1B$9x5ojpEDl&07pufJym!_XlUgrK5@7UJzmZhaL~LxKcedipbO;i{z-eE`ohbTkO504P zF)xNrzx03&HrU{R0RuMJkU$!I!9W5AY^XpQ6dXvy{r&%I@8_J- zUVH72hZmt6gi~p>o;&arDp*&k^wCTe+E?A28pIfH9#PgWJnr&BbGtSl9#a2K$WRaZ!NkS4%fkpp{V(C7e-VWI0y7pJ#aM17;mkF)7g> zSfjaRq+g8U>nv``d(o2j)ZOVb?(Q^$#n`>!nCUmjqGDBd6%aPqd;L&$)6sL4q7wT= zGDV9OxazYd+QwG>XnTNaX@ULCfwIwBF^sHZlc~bZC3?zrm*@???IYL;^;W13hHD!2 z)u3%<-daNJAnaN(f2^2)%aT6b1%TBu^qEZB8Za`5pZFF>F?AaHdRDRk1W-0MLC$1zR|x@T zShWtRP{pRoIuditxCT?ELe^IhVP8H&Lw!fbv@rf7m=|&yyxsU` z-!-wxsptzS8zC#XCa<4;O=Gyxgs^82{(~D%zX~qc4K<1{xZMh0Fd@}IS;)E3--zts zF*3m>xU8Y~^z|_@BJCm5sE;Y7%1vv;dX*s;ZBR;`!46;iqUBg>5yb%2gpHbn&(GIU zpV2yYtQh}K`^NvX7?V`yfV71(4h`Y{RgEc2T%X30Qw8Hcjy7yk7lzln6@BX*px})X z{QLtugX5ozz1OWXHpV)ti0`)WT^L1`9>IR^fgC%5re&i-F+>7NkTb@Z_7-jv=MgQ1J zBb__y?14gF+f~CKfi8PKz(Xd8=s%Pxa!`PU@kE4`35H ziIcz=0sdgE-g5YUklK};V&dg!>6 zR+o08xUZ9M{D#XMzv0032wZpIY6PxIiFM(Yz^R%FA2K3UF*>PK;qav*^a)xx{Ag#N&(Cw6L3DGz;;85_3>30Cnyl9YwVbxiyS{-dfHqW;0&i66=9 z$V>a^(fX);fPBO28~XYZ_%$}x6T6lFo87PhFo76R`^Q!jMXg#tW|2BhhDz~|IT#6= zd~Qj&wWdMAu4wEodI|**c2QruC1YQ2tW^BHCDk>l^&DSZik97W;93N(DbTv*K+D?E zcm%@XTRv(UPUvm8RZHlx`!ysnsF~OacIaZ?CjD&I&ldd*=x3{bHt1)ge%9-!-*rvA zVrT602*n_b4@c-wImnwz-{#V{rSuJyzOAK?=0W=!@C~JJW9eI0`qr1ee(TeTM7sX5 z&%6GKA9VfW!(IQxAvKtZce8kMyurs-P+i$q+f9Hu&J+cHOejG3vdq9pe-m^f90))H zC{zpqU*<76Fh4Su#8WON>EqTDNImiI8!J-B7>P^`B^j#nPYDCj9707_{|$EyN2l#9nEE$cTv#T)}rk zM@GFEKdGj3MOl-_NqMMKo|sNfhImI$mi#3GPaSfyk5(4rXClbL)dj^AJRV|j{E<4s z=e)xCeK<_5AnS_=BnO!WETrrN;?ZrGh?IYclz&l@R-Xf{KBxb$i1CcpGSe0<$t4aI zMa(0YbOk73+U)Uk_t0k~E9vO3h*Ezrvyg;&P_SwP!GUeixpK ziy=BgPF8J*VhMAX^efkp$~+mWat;wCRFX+WhZ2w~r*5Vq*-jd1T{Ld9hTw=d9D2-G z$<$*U1zI5{TDLb>v{vVc$iy~CLCTi>A_X4k9zc`E;S+8W--1p20BV(^&$2o1O=M} zg99hF!RwC2%bHF=lJ=%(Y!c_NcB!-IV-)Qp%`+8jU^zerDsR>)zX@w?+hF(jhK7~i zT0@#ueMex(B-tE5wQ5s%1+1(iKhMnr3@<=(MGMGUC#kE&PgHJOlhtc9N7;$+ z8mKAdf-bpSt&QasBH?L`E)E?L2EwOF5|u=~kW(kSUBRjCbLW|WN+OSa&NKG9^WZp- zTn3!XtHt=8P@^Yeikk2gHStl9=tmS>l|-d{t(i34yEQq}%}94sq&yyhaR(-1UYoeJ zSxXP}JeC+Vub4nJxnGBzlaH9Km3{@(5JFBgP$sf3CmP6!JSP--wykwULZlUI^VTj0 z_Nq}uYp(+~dhwY*wXpSlH@EeD1tx;?COkn;+=z~ZPBi4e_>hx@f;1rosTh~g=fiz|BYUoA&(-kM8ueX~oYXmSa<3=%s@xO}b@PeFqXVf3T7rbs#1=ikf(XT5 z7WO9Tb?V1HnCKLI`y2}6U`{rp9m{n>79fV!u_NAm3t6GYP^$Oj~WY-Ww_k4f&R zY?9Y~wB3KaAsLL9$;UH?8E;gjSQhSQR#CP3P^H%v_({TiiATDYXhaD}z8Pn00x`+< zhMc^Nn|P%s^VS|eM4*Cd;qdy2LL0+LaqA<5s4J^i^4t{V$$n+ber3ykhA&d`aOq14Gcui0TOyc6F*oJdZnkJtx@)da5jch z>q$^c4Pyz?Eq`;5e;~KKx7ZCm2{!ilH}&|pL}jT30};|%f?jM2XA3AN#M0C*c+8a@ zTGOLL2|PaB3mzZNYgP)>?7Cm;oG7`OrWfWUO*qH%NMj3TlU4oYtAuoa6K7^(b0%FD5TjF!*?(io(GL? z&q9Zt?l9?SlJUst0_GyNC!eiE6SNMY3I7qr9}VYRDGtv8K;n9`Mw>HRF=eERIeD%6 zk4D8uRdL`{&lGN9_em~_2Z+@Q1W$~NX2|^mYLe%%2&DOqKwVfXqiWAYi%Wo!vyzcK z_D>G~PQT-a>}Q!vmpcu-QOxue1O64Ytt& z{Du}#EFMwuqbETh8%nmj|lL>0nJ1`TYY%Y;1R3}m+WqN{}Jcl#8jz(Q_Sl5kF zrB=*i1mWFLb!t);1T3$DtqX?@6@@Ug$l*kZoQ>hI98ieYuH|eFXG=Kf{sL~r0nJzx zlZW|F5DPV@pt~*OsU>cq`=GWQkGbx62Eofgf7)@heI*5v4#+ zqL2!A>8H%+)Wx!4;%krOT{Q*}B=NP7fQsraU?@p|iLb$9WJ;b1?3sp05_VPx@t;T zh00O*W39u-z&)0$G}1_sN7g!h*qgt*?BsVblu`At!8}$5K>b}?A15Bd4|jutls6a1 zp%unhj~c0L$%*XO&|`n1s?^R1lw?fKELI-6@ee)5R3wzEj?D~C$d9`kCm^Iyfj9)P zNqO-{nl#F4DV7E7sLWImCz&8jx&|Ag5#|Fjc}?z>ubBLP)Adg7#nkj{rKtgL9n+4r z*2Tj8DqIV)BR9UND-KOV(p17B%ksBO4$eI2K9VI`voF(=LdVtkB)0v&lV? z+;(zDllxY3&n5Q?IVU^V5pR{0w$R?j7fn;9}$CsGbcf&UN9aS1XLoPTjiG* zNwpqtGLq}Ci7_!!f?~B7LFcRM&gjxj%M3zFqDl3@yq8P1PWW zkRJQ9TGYh)LaCYoTBpFaJ*V-gkk&Dk8q)oaSuXiYaO-v#+`8?$^d0-COFmjrwC+l2 zC|W;Fyr3%K1x(7~jA(!W0|CI2MDSMIem3f7lYX{%_yVIJbdVJg>|WF+ep9Jf=atU&{-uX*??&*)p7wm#x8YD zoYV!aC`iM!;DK_YE6KaILGHMVeQsnUTNY}h2}XnhS-_T7JHWo@YBW_0)7n72&7Xa( z+ia1g?l4pokQ%x@x?Qkfhk|p*Gj#0bUMK@56crg-8?JTx_jKmTe=1Bt(b!yM3#ce5 zbpgcDGB+oIaze&HXdr}Uz9%y@|L6b}WW(vjZ!%i$Mt#ZYPks*cjyxKZRj)_A|?((!= z-~bJaM}qnrzagOgG;cG$O?>`W0B`2XSEZwywRenv^8hWy=6;=w2=~f{9AM&`6aayz zW4GF>7U=oP2JHm_NOSTbYA24aCwQ&WuMMMGjgk$brQ_FfLEhh1LBy*52Axvx&?_ca z$`zfiTtt8m2`k`<+5=bm`pCq^jEd9A7M3!FElh!~Eli;`wlD$2sgv)TU;n>4!^5>lVe=3E}CaR!6DZpQjWC_yx@n)?0m~Z9XTB&9)Arb53qhj*UFQT=!eq6_= z*zLuo$8;h&&##FiS%Nd4Je|il`jgB3La}?SV(H2S^WG~d`0kqEX+wgVxyrWB4r_ZB+w;hI992#)>%W-6w(vXUAW4|$dv{bMn;9fO`1M^oE3$;17P zKAm=z&zW9>~2LOLw+>d@rdJy&LrV8~kXfh?LJ@y)CF&Dt> zO#^y-Q=>{QO##R$4w!FG%X>VdAG_eG?Sn`b4U#n2NQ>A_C*ZpWoePYtjH))AL=wQWp3S`MV+lHt$5tq!JN45VxlLl_bh!>FjTddR1> z+(t5Tdm-a=MuKM?Orn5$+#euMHinD_S~>8%95d#Ma|E-ejK9!oKzW zqP17OU^?HZ6pu8~YxQn`;2JoTPF%Y0Im@_-DV|Y!g{s6>svA0cMGArR&Q~xROIdvd z6lvzgmLcN+CK(7zaC|5RVms!DzUr_%R3#%m)Kc9f;UDLLUzF|FYmsO?)fyiWQ>Rzo}y>x>R`QPq(oF0=*TL9Q108i$XI*2|g_ zC;u_EiTg#GsTl~iRcNe+21}^Khp#d;>s$Ar@syedovIBt|GrUO5AH)P=}}I!Q$O_s zZ`fO}u|n38-2C~R1p+e|4|{9#y!d%6_ZMp#Xn-=H*i|3(wjGlwb_EmIm&NFpIZ5X$oD-)ZrIt(bzln*0OrkSzz|r)^Rh{W3Cf$v}vHsl0$_A0SozI5b*&J?~8&D1LrR4Vir_ z&^A}8`rw?e2vGxf;MkU!_x8yU{@N5AEbO1ceh5>u_F67TeJ@z+*DyMc|rw35#%e2hxTq#3f zE$#wuboKxaLv#QVm18n}uCiqf66>6+27!YkmS&T@pzuC7s0@J~j}`jP1xxb!;LJVW zdqI@a`k&t?!kT@AXRcEf4@O?6Syf`iOHNbF_;AwHJ3;-FKlK{u#Gzb`!fO!D;M56` z5040IL8pf3V~w7< zL%ki_Il{9kZ~5<7v`U>0T(sl$)TzrTj$m3%zD!E%N4{(Zat-Hwx3?H>zLirfa9Khk ziRY4LZqOoK8e>qS%=ul22@xpe&+ifu%pa={jX=yoGax!EUyz;*)KEHB3SIY6{qbW$ zn0}*}I{W{OY$B;HuC4tNir?lJxt(xH3gNbK`GQ>G}+gDh_%;#H(Rc zLoKs(!BNIX(xc{rNfd;9i z+)jkTWa8@KD*)~u1k}yb)CG1AYmi)b>?r3-&r%T4~h3FJCA+T_b#WQAwv*5 z)&34j-P9X~tK?ovw@jIT%S$}2jx7ui>zKx*Pw(s$7w{WxYeo4(e-u6AC{i~tM z`eJIdOSigCKK~Uc`3^MW2nr+G%#flm`iduv3NGi9SXRRxh+>`u^VymV_GJTDb83{V znt{j~0qm+`JQcPp30eCC{H}N<<__>BTtG4E#?+`0Gd1eK8);?-b*1lE>AU=QBejw- zVl;Ill|LjflE;JDt&hD@wMbQ4W@>tSg8@v8GyR5GlnF;%G~X_!P7>`~xiPT_QZ2MB zGo=WN+*F>rwKahpy7XK(B_$ws6}?!itN*$f9$)k*(a~NF&F5W3#n(L|C0_vQ zPT_dT-u^Z8_*D#O`2XLLP2>}<&uOBtKzRq9r?>o=wj0f{0nyZS+L}#!p9JXqT+!YwOD`Qq zjO?gvc3U8{`8l6migAq>yBXp73zGZ*=R1^6Su~12YN@;Tj!7e}wG31IIxX*nPiB3u zC^fw-%oV7-be3w7P4JU(PrcIvXnbfpcyvGA%!HP!#u8=4(aI`gt0YoJ^!dL?2nqNW zF)u}k&Ze8sm?SVdSui|XN#U1rSfrtsXfTbrEoB7nFX;l=bGFam)zTstV|zFybiq5G zNSKP@)O9!ijtZ}q#1zPamG*ofQRsG2;MhEU1`(~7)T6OKY8_o4Ucb?|*}U|V0Rp0} z$`#{H{j+t#(cft604@DDcE*1ap}#PY;$}7~eo}fzyHMZC2my$^l_;clsQPY~pOcZ| zpF%QTaW{T&YSA1ueV95Jpu@)TDgVB~0$fMxgeE3HHDYjj)Xu-{YP#c3t(&8I?E=tL zRtLf{STS~JIhl3AwjPfh=sRGjjX>es2J8Jw@z2)Rvj_(#gVUGPKpd?+aJ2X|t8w*V z`c}Hjj@6~Vn7%E-*Cq@+KsVWqZ{>StmX=n^{a9m; z=Kq*A7~(?GMIS>Wjs~ep=F9v6Y=XiD7O(HQwd3Cv62`w9ePDONN}!&|c*!FfN1U`K zJxqG)v*t5>Pj!#KBswrJ-or;DL>NNF*pFQJ*pEU8iw2BqKdqo*NXC#&e^w$GX)AGw zzQXs{SPw)X*t1)AubmkTe5mX_7dA zxKv+}MOFBF7?1%8M2+af{NTjIBc9U05XOyq50Q>+VEZG;kEoxQFbTq2WJervjFjOC+gU30zjc2@x za%r+;c7}0nIm0k+YKi?I$!~_5fbDwnSXjJHlZj^7U#GUgso!a=rv6h_Od(Ch!VnW* z@<$B5KjRQ12Wba zR3$wn0)8O{I?!kJ4wxd^J40WCDBHWWyklT_`?_c!#*~RU#ElwonZ*!Q-+J^?zbsY7t4Jd6bbBp$C7E$fjNDS8%?Gtee8dr8r$~gFp zz`Ma$>YKoW?Xw};euR&5_;u=~cVe32dCxEssjXb+!cHnd&HlvLt2`D&f#({$9u(Js z1pz=9A%Oilg`@g2vJSP|MZ3ieVtO8bHJUsCLs-{s%ZEr6ceEEYT}xKstHD-w^3`6K3m~0D0V}4P+q#Bn}h<*EGM3=cu>(nOQ5_W zYBWzhx@rZKgZg}FP{d?d_-+uZA;AhH#PdmD+LMw8KwM zG6MuLmVORUg+3Z4AS!@-pHDEeuq?Y+hXmI)C~J0t$aARNeD{fIK{iq~NrCn!5%Umx zh!w2pLi?+zUMtt?Zhy*C20nGAH_G}SDfxgVk^aW!-?=>>sB?y*AZBmQeFLV#u*S=< zN5mI;;Qq+V-RiyA20_@x+E;R$42(AAn&{O?X@-gw*i#9%Y8oozUQEfc2R@Z@3-ehn z84Fb?o85F8;d|7$vyz6uQ6V>3AgY($uXY--_X4qUi1TUp_G-XZ&72g;CqfvCG<02Y zn~XA&w)dX*?D;e<8X2yK?cmu^KNj9cvSw1?VRpXlXbpv;!s^fK`A`@3VQ_9ir?oT2 zxUa%al>$0Ur`2>sRndRSLKj*T8uINlKKE{BTL3N<&b&$>r89SPbV`GPD=vJ~=3iC%7vD4TcmmXQVpmyP)b!p<0w9hcyTpq|F5W zTvNxtmpqcG+?u}lN%uWPJK!IiqH+?xKB|q7LC(+A@bf>4;{YJdktx9ljow8t(6P_T z8j*-a2}&*SNE^$3F9E@-RzA`EPB>S#>9`REODRo`Hu$V6uxQYkC-O~*mFox_1-{EcWi@WYD&&JB^4Ev za4ZMAwA1N&uM~+Hja!<>UpMwlT%RZjqZO>(@VfjXQT`E^e>2LLqlOtx4@_A!N44Sb7ezh@ykRbwIjwaW zFEJO>7_aF)-$0$3^CSn1t+@H?8rAbWt-xY6K(pRno4=z*oVS(yyzjltg^o059clit zTQ~n$sb;=*VCL(zB;wtT^RO=^&fj6lz&0yw2yd7T?5FVJJkykBRV9lsYtW5S(&k!x ziS%GGcTNUuwVW@&O1W7ZnPR#LcH{)=+|&8l;Eck{=%-33ym1=!AEth4eJO2=IxQId z=C*zB+fqGM#ja9$j1d9vZt7DBpD0pKYJW@0|Ko|u>HW8+{cmg2+S2pCO220W`J8t> z`5N_K&9F@}F=ueeAo1^$)&2Z{yBTi}GYrw`hhW-*wEm*CNwz{15!_iOdckHe?T$PV zQTzL~eNyMYkpP~=Q%}05u>ZVUf~6m&FE>HzAIDO=-OJ>VNM-n`IJe_}5qqgPpJIL9 zphVlwgeG`+`$&IKtwE|$R9R}|=V9ZR#B)^2@C1~rB)ORQ?liqX>(BtHytFz3BMuHF zh2J~&bMaJ+dC+S*nwcWVX_3!oll_Lbz)j9>n1@yP{Pnf<#L0vhp|vq+RYokEBQbn$ zshgr3szcIRQG`>hgg+TYmYyiK1G~8#m4=t`Bj=iEro;0G*F-;`CiPPEq*w%P!WV)T zd8x@z0Ey`HH3e`iUBSlr8V!{a%%}(rk2Mw8KU@g{GHNW^lt8u>wGASVru!q;y)iGP zm{3K?a=uwo#Pu@2X1)M(C@&u(5&|ht)nM9}lEDY6r5i^C-62|fmS=(U0}|_VKK~c~ zsX0L=j(!J|9$DSFw+J(v&>Hk>J^`OqZTg7pheNe3<~0n*|3>nFOwB>9#oV=o(qMDC zy{ob@TJwzwC=8?T{8zpBiG-XZn7hVt0AgZYM`MI;ZSlTX$%06_VsUX;+b4$zUI#LOz@X_{AYXo7!qv@l@c&l z^v(q5+p#;vY2x3?mjy|2zN4~%=rWio(vT+vk&*>nwp7lU!KC++Fh> z_uhmW20mmi6-l36m$BUAz()@PhH=&4uty~ID2pW!Nevjw(kI(r5RJJFg(~TZdESdn z6Kyv+4OO4d_t(2qNXI#&3=f5QNy6bgQ5uOn8xD)5K3BT~?lTf31U$9U1wV^+t@CHS zNe44?m6>y@-kdg8vqK0IBbnzP`sk6)95E4k+y0?us`Hn%i|91qD1u7D8dyy+^FAy^ z()`0j0&6AJY(8;hnPJ{I=y6~^sCYjEjKlyHvpW%{F97wp7~j1ySU9q_;sGUnd79y& zQ_qJ3!R`W&+M4`JteF$(V9a45ceE`ZL0=~no(E?iEt9Nlq9!Q^m_BCEOhpjKLSiMl23u+D`KsQL!2j}!6H$S z3f(w=1p>wFum%b!M54Hi@lHn@GlqZ~slDCL1==-xlgfLvBI{q=DSmMq0IEu=NasEt z+Dd&vl&6yo*h^@JXz3TXw7;vtj}R!UR`;sgpr1fgmbAp#op~gmjAq0D^+8m-oJr)B z6Bp+X??t~g{K-PshDn+0-_Q<2Mwk z#UtMPWaVz+kZ49@h+J{#9^!YAnLI`$UF}tm{kDfH^q)b zgNS85Ib1ujKSiWQR|ss{&0!*Sw1>9-Y1Bx~AWxV+_fn zQWmp3DxA))pMPv5CI`z0?OWUxSeUtFHGzZnGqwS7M&)(9>}FX zY`Q%ZSj^59bGu;i=cH2;S0vQx9mt8BS4q?dy2`}TLtJ2YZ0OeovP`!zMrUIc+tj!?hG~Y-HISr3~ zMSECpr0(1ZZQe7ahsHiElol~$<*1LJbO|`bv3SJyi5Q9oCoQ=3rb7wZaHZtcwjDE4VkB@;ej{`%wpRH$zZr9p~knA z@M8ZCAH<|*S>oW_*y|GGq?o-27m4*`L6wUmrcyLGbXW-;J9{r2$sd6CO67lcsO$Zt z^v?DBITuhe7f7A!FXLwKcfFOIY<4KHHRQ$(6|>>_jAj_ZOIDAbsYnHuFSsLLUzz2y z`lB3}>nC8!=BzBkA?Li-;K8(rK2 zi~52gAc+`8H*hQ=q?so|X>{1G@aSatCXmR8vgD1C{E&VPC9Tu`?f~EIrud{M1*nFM zbf5(5ew1c^HzUWzA&x7Bk{MiR4(Wy^s97B;BhxS=aeHtF_1x1D$(c6rCXNWJwDP_fk57wJp` z9n5Mjgr*dOY#W&Nb>RI09XVb(c)jv*s7CA#|9oH%<{e zvf%82TTkse`=5$bZd$1s1fOSClqiXjsn3O1MmthYadFx+oPnGQV%kK$#=zJsR8D;^ zq$`psUxK%SW-)gl;Sct04gTM}rX&2d234@|4YzQuF}cAdX&9)R-L}@?4hbcnql=t* zKw5)Pf)v-Xykho~C&KqrqP@E;9_a zqBw#kt5Gu>C9FMRL-X=Dc5$_85zA;I(M*M!;8@d^0n``bP^E!QzXr}MywpS#;o@}(|dg}&~%N`idt6J1ta?bhd z=n_a0dVWsg+XSwFEBnN0eEL?WLdBbNpAaeD5Sv&(^J)RxVPjDI;n2<);hm5a@>8|# ztm~Xs2-7Z|!;j1nR8N@=`zheKrthdkbZ}0`d}*M(!FKY|Fae2+7Q@jVN6Fg5N`RK! z9p;dq$PLBlh-ud&a zH@e+1ck>(LFcs6Nety3>T5?=1R>>Z2U+=cYCQ{_nahf)?gor6_bf%QOXm~zK%n{*i zei17&?#xY?GlE-#J)dL;5HIl+ePD9Zb3-E8-&yq161|qsMD#kWufFM$ZUlmEB%Y*) zjRXPR?Alv`%Q02gMlA~=Jj(dDEtw0|mko0fySaU*FfE`9t zYY*uF4#3dZ4tC)b^Sf>Dp5M&}HV<`r%s9W(2Ber79)*U>af%%4)k#L+?MPD3b#>jq)Is~5yp%&bNVaUu14 zqs^j_UXuVB)Ark)}B#9E3OcD_7kOB5cJ*5Ercx0_-6m z2_TrUC{YmsN##(N9H*dDaDbtYr!;7jJ{=RjdOFnrI{SIh!pl+pa;?o)1DviddLvC% zMokyI+5=wo`LMFeI2BX|)2yoYxr$Sa7lVANENedR8Bhg&4a*rJU5Dl9-uyvz1X^J( zGPxWS{)>4&B{gE90Krh}OqK5hr@$zb}z2bxI<>|Gy{&+{)hp7mMad95W$cOd34 zZ5GYz0KQl%0xo+#>*XFCmbPFVyGgo^=4<7H^KaVrgUcXSaro=@G#8+rp6-Gdy2zYg z=z{Yei&CRLXkL_et|#?eG)xn&2vGJr-Ezb-U?0b{eNY9U9w#O+flqqU~L0Sacy?`4fRr9S7S){#AQssL`mwAE`i67XYlxOfkP+Y(*6jo zB4zT8Z^B2>x}>Q|gksA1#y9-AODH*@IKBfizmPpLRMK3&mksZ^*~&65dEq*kB=btv4~do*pptnm`Gn>2I!(fXPO9hC~MqWpwi zw~n5=&qXbyTvLmb4)ugDFnE=;-yhy(y(n17E60WGi*ed77LjH#q#HZSeq?5Z(Jpv?vv_6N2;L+yB9!~hme7+Rda_m10~!flhJ!^J ze8e}B{&OI z*P;zP8*`|vzzAPn#Lldi=kE#w(}VuqzNQcz z5BkO?!jXpO;|5;G8^SXPZiFByQID3JGO<0tz;J9jrQijQvgJwL3o0&C@TRX*2%|aI z8oXWDR>CYSCWHm&eEfn?=}fd-qMK%`4L$!hF{!G?y=DBlA)_`<8Ep zM1+);?8%=#7Z=XLs0@0L<5?WST6y89 zUC@7e!Btaem5;yd*Q>APp3YJ9T=?b!Ys-VCTxn<&%MFht!7p6vis}p3y5Q?Q;Omj; zdOkH3wDehV;W46tO^d*mwZ_lT6~KBkpEbI0qnj#Ip89L89G+2IU~x24%E{qD9mpn( zsh#-i=}T*|J7NHquE@$~u7$%3*KvriuW2DIS=&PJ7B_sf87}E5YXQPhYcL#LSnn?` ze4>kakipGlD^Lta;Iy1l+%#h7CQbHIlcDh>H9c5NZ`W)weJ$k6wXGEpEQ614jHCQY z2IQbHaN!;!E)@*y(H)$Z_;bvCJkXv&7xMY%>6bk2O7%T!e-MEKs$u#K(L{>7aGy0v zH}1my@`e^|zo6GTXm;H-!zLog>6gsT>tpycU~qb`1|CPT7egjq9CS&9cFjeqkOn+-ksH6BxDaU!Udec1YWgL5P|Cxx9}Q0P zJ}qE%%)E3bixlpybFs5tT;PqVR2D!*|EtE3t6;z^PNh!XT14D&Df=2ruf4`ErZAuD^LzBj_-p6qxglZjHuev(ch zpj+`A3I8llG_>fnvqSFHg~wW|!RL?FnUaPnTPmo?WT>3SliivVbYSOZbDPsJ@wE-IBrRy*M}r( zX1(GS3EiZ+>Tn%TCMs4ViKuwv%k~b@(_5q{Bl6~~dV%goOu2X=h{ghGWKBt=2dEb! zo90@`0v9z5@!*2nMIEXuQS$5_f4dlH2;kW_`Di9&AazaCASoGlLNfe;q&V`xjmlZu zB4}WkWL~l&kxViX2>hKZ<;21py^JOX1)`h2pKH2_7J>K+tUVw~@u;joHNLr~#&ZF1(aa(}MN5XlNSDn$#J&79Vgb>Xze6>6P0>O2c4iwg(Pv`l;=&IeGYmvV6ZVW|cW&NqD7LVkpOl)PA z5FKs-R%E2S#et2l&^1+09ECDOeZ4Tg$F@IjUyZ$5@(XRY@lrx(?A2jxWIRW|zE<1n zQ*!bZI%6lx`Q%PWBnamjuVB3ZZ+(s<#0QI58mg+cw-s}j6JE$1iec>KCj{l4_5 zi1@Z76sC79l;~MaD3Q8^ZNS`CYj932Mb%;!iSjihHC2>F9K^eDhu%=NO2YPwo)r||rR1#AKq%1{U$Dz~f zyEJ3|p&mDJAravOl61Vi$}6&Web+_Lics&uT{+21cNnx<9akslgz?ldE|ODbF}u_E zq_u)Yv@mPl-N}Zi)2JZfU}rdPaKudC8qt&I-nT=8hI&w4 zCa~CWj_m6mQm4#RFT_;CuR;@R(l(l?NO3y)czQ$x9R=o!Ry zmmsBBG~HQBP*h1 zi~Xf{0qrS?S@58d0bz!C6a|an^x~Qk@*j-MNUdilw* zY}Rd1EYVw&FXFXr&h7sQAZi(36y#LpE@n4YK`B-ZXY<7>SB7o!l4xwqkGX@3ebLB$ z^p3Xf<4ia{!R6DW%;wGFK74}l=L+|g6>`3u&c>ljJvcDT9K_U&lL{mYZAzKDrI%&y zqWR41m|zl(tbM0I2j`gtvB@mjki8hU8W)>LB=B0V^EHVv+60^JlT1NpP*;Q$Fdx1n z_$F+NfkE9%;q^5EMI;uS^7NWDATMhvXN1(!Wea77D20 zFoy{%M+kzXqW~x>0N2bVN=MEFrmY;X zN<5lMQMtw9Xnx#g@mgT*n#?qdZyMRoT@km)N=ZAfS#XhZ>|-X1#cP%nN~IJgYi`43 zW3r(LfyB|d{2*WDC}qVWcC=6^T$GwcX{wgeUiL`gK9TF>Bx&YOqC@_9p%quFXYK;@j)sEGkxx012v_5>1FZSR(LwU z^b(=`kjvsVB~0(WL?FHUviMQ-_@mt8wFuzkT^iJ~kJq|lb|IQ{Wl$r%20O8>W_;0; z-uG%s1Tq+j03>mfpWWW z!lF{59QKGm`LNL z4xm;EY1Z9SG5H6L>tKgj3~so-=H(-*rktV5YYaY{4lO&Udy~C-NNUWM144$Dj{r^Dx%({{$goAEv**I9EXCD zm-?+J$RR!3c%q4=-F4FR6)QF7>c~F!p5vDes0Exx6nN}Il9mRErBlIwsLD&2fr1^T ze^pGsw^4})`C67)5Kp#YES>0PIZ*;nc7Z2L;JGgFTnT)w3w#Y8@@R61-W_chODE_{ z6^G$<)Y7REb}FJcB%7kn7E9-pZ|uEdsSVZeYa$3hq;BWbE0>9OEpt8D=A3P=n@y)y zsDCast&UfjmTwkIC*@Hwr|j{eN>%y>COjVvwJ!vPYZX>sBeD#fBY<|~)!Nco0_F9V zrIWqsPV@#&^#(YS`^fyUa-EYo7}eMF3#n6P2^kT7R&MlyNY|5Kj}zQff+tf&!Y82z zo#B=;d|R%__-(PrT)=G=@YhO-g8o`6x&Uq|?tiyTkG$|7*t_!-_A-R{V(Ba;_W%fe z^i+lnafXvUNnDkNFsl0Gshk<&oTtc{0kA8ycedn}vt3>}3tiTrH9M`J+R+EyD#cRE zM%A(R%r7e#V8rIgg_X-%x)l)-qGIVB8KLR3&Unc}ae1{A7%ST>yO!Q5meDk@7uZ*H z9ybfdK5=o?R|E7=_(FG}+9V3+CpaDp1$zs3{TyUN?xdM2HwPyJ?a>4DGw z>JfGRUX3^He8&BZCW8k?QF3XLxkkNv*K`@(Uc* z#He2J>(@(HII82kDJyX+t&3M!Qpm}im_jTq$ zs%OuOt(eV0t5d(}=ezIT#$9?R=<-UjWSwZ~YiIj|3ZDLh#+5a75q%)e{{?3Geu8-ta6svPJ0DBf*6q-1%Dhq46@1BS9A^+)4CW{ zEZ4+4&7!kP7S-l5vA!>@axl^dJ8U;?)|>jkAq!r8u}_1v>g)~kxcP%N3@-aTAj9j6 z*2^R5RUP6JTaUfxo9Cdm7Z$Aku2OCBJgw(uJnN$?#0qnHHvk9PJ?@mlZ6163z zv;&uEm!B5U9{g&p+5^^97HQq?U95hB0d|HdpOomo{mLOmRh)HG=47OR5Q{Gk2rTcW zOgF58grXmd3wd&0M2bY$_js6SHO_j!nxu7o%e0TfG@O5`n+zWpI8h0%8DUA~#n zLRUB#74k$4(t#<&jwRQs)!*=%RF*ZSkih|y#X|CsYw18Y*JVlr6DxOF&!WD#pJh-e zTspwEJVd#2PaF5Jh*HZhm3OI=0%C%dOX_2CU>6NT=b`)Ec?g+N1KfsKMEw)DsZ{z& zNDbsb7xGbpetET6*(Z%wscOpCa7I4_N^;hY&iQO*aQPl$*X0JcjLrxN%Eyj?v_|!b zEve#%(oVHmI{Jlc^!QdsbfCaZu(NbHEoBq2cC=QZxr~mQMFY_Z@vR^pSJk@}ZEPuQ z$+7a8F+>)SBEK-S%wc2)JV)tyO!f6LT~7T%(g^i`QXeU;rmhl)69D;ygkt*7e8zNS zT~nUX$!4O6M=&!Nv1KG*KDfEY!PdAHVi81`vZ!yBNFQ|8jK;iIbnaNBYTtxEZY4+t z-ihzFzZB8#=;LcoU4h&QZ`M2+W~Ryux%zRGFhw3J@i z7Fd&0EmpR9+F!cjAz0bwFLab4hLw9nE8Fv;@!8Sfq-Cx3 z!1Y~rM8LQd_~pmk)>!sarz-~nr@rS(G`$s{@fUDNNaI8(j)M>G_@ z-k%pyZb%vUj09ysrJEm?55kD1m3yjH-aAjtCZD@sx# z=6t|V4{XaVAo>{1lSA_&)VcP8CtBGyU}$Z&V+8N*=d0eo$<=|jw< z6aS8F)$jD9bf#J=2ryx2`Y-bM_%$9{gh7`G%X>emA7!PTzlKEF`!zSDa|FkL-WoSU zeUy2eQj$hVLtF{3>1$dI|DGOy1?Jou@N{WN{ZtQZr*S>06{_BcLwehgrSrf z95hX5c02vzs?J0B#KYNnn5LckVvm!Wc9ymDh~QTEHVJCLdAhUwO-sc4=H=y+T6v_5 z;#v4j^ab^Jg0r0Ft+hm05~+wjbwnH3c=&%gTYY-L`Gt*Mm{I0ChiSq{Wyr$Rn@-dl z_6^lQdtw^1l(*csCb1+#YO!?ALWD`GSXvNali`c69sk2R63+f-pp!|@`qxT+u!8B?o@^ULy_aub}e_c6Lbuc%nn2ZXU8jnfJ_W3MA5DSc&C3rd|EYC8B8 z?a#2~%cUQqnIhK4veY2oQ{X7~VJ_E4;8q?hd%!?f@*&0r?u`Sa_+F3hg*Xvv5qzS5YL zFrgG=NvgL8@r1B976_T-jlzuU_TDYhslj!7FJF=;n{*`SM;?!D70SvxQW^qew1tC{ zZY?JND|y~zgMD<0dBO2(mv35vqa9i6b z?z9Q%;fhk1>ByML6!|N7gw&D;J+1eNTK6NRdwW|>7o*t03R=R-VavjN8s|;iOn1bF(+W%28J_Z3%I2_Qqu5jnqi6J_7)Nz`*d{rk+Jr<=N78JlDULQS@ zpq18Qxp`j{G}yT>0f*xa@6J6?LdC}1CU|dfrBWYmy4w$pR5f%Jg-}bGljx9I@}7)k znAs%2v zdqV@|=IBH*<7oS&wjtU{;6CYREnlHfz~uto{t~?OT2Ic`I8&qriAvd@+&0rb=(9<2 zKNN3NQXw=;p-hrc^->#(4_;6{LFU}Qr8gv<5)Gbq*QdXzIcoX~7A@pqnZ){D#z>^t z7a~jZ@XBR7EIi?F#(w%s#DUuJF+;9kAm{*RDWgKl&}T*+8hjsx!k>)fYQg)mK?ow^ zS$e}Pq)NF+o|b7#zQMf0$46$YHrN-;fg0H;mX4?qcvfm=Tjf3nv<#p!g-Jv)Cy22{ zQ-M=~xfR(sqOT{3ra>ytP7aX*R*K})zapxbey^!|Rn?rrOJ^-&RYBVkr?i$*1nhG& zSf(v=Hs=q2mA($>HHKE6>MCOx)P5p}?}RY2vd4jyJr3-PKsd{zmT>AvJ9cJukfpFT zhr~mrg6fx!U^X~NhoN@_ZJB_bU$UhETNA_Dfr0F%RNfT`sS61nS;dl|rM=l~rGrOJ zWc?-1NzO`#PcacX7|2}+2O3nP_ZJXf8DR>Z+d3jdtS5GXTs@`=FK&$8=2#_v zdnoklGF#f!ri>>ehmc55LjmO_D~(z{=%agYH&v=y>0cx$SSf*;Y{W|?z*ZClG;gx0 z|D9i3vUGmU0192rqWwa0w?_gjS&YzefBw^>BNZE|aoA2Lb|qk?r6bUNEXpwb9~J|; zf}_tHd&qQv*rlxQmI1bF94>_(2o}$BlLHd@)xLTa{mSgB0V}~Y zs7fr$AdQX9M%mS3J^Mo@PJdByaF{GT(qaQ9G+(1)nfs+VMQfV5T;+op9$nJot95!*af#t3P{ElrMa7Vgrd~lMu-P7B{0T5a4vaSN4fX3g70T%WW7d&HX)2Js8)ia|lW_8E~J%&c~~@A{FW)pFeM0hTONVLfy5@7RFa@ z!^&l3+28fH$uUpwI)IeG6TF&s9VHI8r4xB>M9ym2(2JH7;U_VkgvXAS7O_oUY02#h z#88u8kitz7w00;f@XVNkD`ejQ7*GAP-F)-d)e54#~% zyvDSqA79m*iYc zaM9Ae^pc!Xl|^>r8Z<~R$#pJ&b97Q_?uANq*yNE_D$Qcnp)y!~AN?5Gv&6v;Zh5X? z-!S)wW^DD1P7~58$n}hOm`{10P%>W3hY*IQ#J+wUPNOdYMF5|tl)+`rbIDZ6CW6kA z!LK^~jcH%o#e&vgFg6uC*E}A`rpqDnwa4sMjeZ$;jg7z(ucms900Qo^xRms!+p+g3 zKq38Ac-xMR-^Ed#vNMR*8sva>h&W=W6pH3$MzP8fBzh{!?;8Q5A{D2*vHk~bh4Bf{x{i2>g}Cd*Fwr@?I@eoL?r z+1d&W^wn{E>~3!#142oA`kZWFo#2s7|5u&)#*jNBOWy+#vASaHpU_#j~tJuq5dY_3TJi47mg}J47a~osFn< zT+o`m#EMsy0ozulJat+s($uX8$l+3A2Zy!hgKz}o zJ@vU*g`7W=+&OD~qqhg=&eHfo7YxWdWGt(Jx)v8n+rJ_RkL`a(&BRzZe~Blk_;ta4 z1gl>B>=WnY5q^^TqAK658UK-U+QEYG8#-68J8DhUy<*dJ`muVj)bG{9UTIybeEdBK zLU&J07lZ#pM>eWB=`?9Eb{YW5{%B_mi;F(mz}FUhp|o0zLoU2jrUO$96l*e3Ed$Q( z1lFaA_hZ~A*d9-qpIC*1<7hJb4hp1G(FDA?hY7xK%LvTM9jMl)jV3jQ|4Y2NkfWyY ziF3LRp;rj4!>+))!ogX%5#UB>$;i9QOhdYE~P{#<;ehAAwAo&sH$Yu@|a+iYg{OHwX@NlF^TG z`ijXmG*`5b@*sdm-#%gh+5XW!K%hQ2X+z@VonrDfR;t0ty9NHKA@Wx3Yi!QY{JC_N znv=Kw9>H#-!sM+O-6z}(G{cN!a+|^j%j_?v4sdO$U+BP>@d4cUfSU%~li5#VXGP39 z{|-|)rShJ2vAB!(-_-hexRJ;+gFzML*Qux8L0lCxh?V$Uwac47<4jZUn8!zQ?uGZG ztW_MInWJSvVa&f=4iu2>F=gTHAK&Vu-V>4KZc1BBy~B0jcd|U;Yt~cmDC6jFYsxtK zTV_($X2`Z^POQ_~HyMqulz=;Dv*x;DO2<6Fk-IC})A$ig_0OM4p0=!0jPLGTXIDtH zcdP35y%_d;+`(6v3$xC8w`i~CJbb2fO0Vb9)8F;g2Ghr?^Z-E;Yx+P-AR|K@Q6mJo z2iJv8S+9{Yv2=}PY%z5%qK(C3>P;5}?eGkg#6rddUorLiwZsd>gx2I$6!5Fjs}=utSUu-@?7tm$cv`(mZB+^g&JSq#NGBVJ zu0yhc;-ZA+Pk~8OH?+akxgDi5wWD3 zn(h6y1{N%IGo)qvaGH7k!;N{1;mPzb4P4z3-CmQNQH*^q7XMA4$w}!1fo+vVUd)%( z!GF7-LimW&5G$@0Z`XYu#Ngu`cwsu?Z@3uAV{ysMbr3)JPNRTg)dnB32r}WT_GUs+ z?F__yk6zHJpeg~|OeyAFJ|ck!;jwTzdHlYqUY4WF{DNhzLG%d)v0eOS%<4s1YDO8H zIg=cre&$S>fXQB^&@Z{XL7Sx#z~F+J)BdVjlws;g@G~z&+1rbmQl~;glKk;_1~|MP zlxK_uqNB~oERTOQOh)}wQk^?isy<1Q6c6zxRgQOpL1?gW7nIPEGATuHi#wv$pEd>0 zTxVcR(ssby9gz?pQ?~Pw9DTzQ2c2j@5?Svv#<&Sduq5BM#KR?Pe|t#JJ1Wf6B z8Z1SfZwJbB(Vj1dxOBc+*R}`g-5JmiQidV-HG$b; zN#Jcx7Te|MnX{-XJll^=JmTjhi1ng}_1Kq%UighiFYtKzVvp82{S_XWR*1^u^EMdy zf0{DzT^VBZO&KkmC_&#aNy9nU?(|6F@#xt;VMuiTN%q`Np1FrvOVhUn zX>4M~C}t;{RNITW6a08`$diH=#)$Tw2mnO(0Fqsx#%Eo5O2Eaet`5r5`e;?d^SYk4H35X`5; z36(#ughvCY<##dPah>y{oJjyPN%M^ESl**vv)D$Tylq`!>?QKt=1<9wgEfaWKk4n> z2u1NBZh0M9f@?ap@xlngoaT1JmaCD^DOm-U#Z>f+DW&PPPgOB-)RPx3NXH-sw%4t5 zv!ty|59a~CxRZbyJw05;Uff2kVK0@U{J%GhJ2LAiYd0-R=X6I?kPyW~~U%HtOb zjXYlDQ#`4(LDV73jMSwo(m(VToWfV$M53gK`OoBG>br1FZIliY({ZU{#rHQfgb$RI zC)Os8YNY+DGhIssg@-rT^mWRFeVz>CS`Nid9m>V(Q-ok|D%6g>=s#%~{DM}>SYy!K z-i6Cqsmetf*e8rVVQ;YI$DcUVi>oDyHuvPg-S)i z5WR%739NAd7%K5V;n#JrgH(DWD;^x)%&54Bi_(ASsP$>T zqC?_rbMw17WwHG|#iaDRip5Z%^^S@eh1X3Iwdn1Spqs@9>geKw-qnYn)8H_vo;nB# zjFCOpY$LZg?3y~w74uvYhWk|J^siJVhkumdbVw(1aEW~BtYN>lrIZb=&y;Zavlv>7 zzhHi!ULYx%e(0xy*im7NiwAQ>11azwRVTkj2p^_ny@8`Aw_YsMJsnrCbc^7M*>Da% zos!rM6$XHMaVS|!OK!DQ*tXbN26L|$7mUd`%mH~UUUB$}k*|Z}G#;d;+hIAEPE?3y zUG~ydCH4-l<9#t9kYg`=j5Sf)sX7fv?|n(ZL@jnoF;P#t4xj?P%Lz8wI5}A|yMZx- zXXqCxsV#AghPf@L^LDpIJXZ_ih5*0TW7wCR_(9Yf=j=7)^eLUX&t2_!{_YIH=89Z< z3|;S=(Vuo0Ox;DS+3F+G11qk^UA|CP$`i>0O2M8WFXgsgrEkJc3Pl^z@m=?R<#O4S zj>d-5w_pctZ3!u?>e;nu`Zy@yr30L`(^l8`pUwJg#`zEq2Zi>#w55eGx^#}J6!xR0 zzcdb@bP%$9&$;Z=s~+i;5X4RtACsoG@=OcqQ@3_{-*4rztu$}1J=&59P6XqT(IXH# z-p)Rto+wp`<+k$jL9cw?esZ(9Ck;9{&3Y;YeN%xroUz)U+I86Na>rrGzhpFWz99<9 zTUtg;dlCXtk9!z0iE4VvSwMzt6XZ(MHQJR;z8yQ}bE+I;srF-Z=MpgFdI+2P;6Kzi zQ~(chl@3jBaOU4@mH(f*_Ybl1O7}grEZtjURcf!8Zj-LcF@5xOrH_42a$D~;_nLc@ zYwp!EI%Al~wFi5y84M(IY%t&f8_ZDqNA22WRV7tc*(sCKlt~%Oivcs(j12~CFyH|L z1`_aq0RskXFpvfVHY6~g?{}^D-Mfr^?wOgtMt7}u{a(*{*0Y}VtY`gd3%@80o?tDx zJ^ZpXc(T-Ak_ZUmf3aj9Xn2v#!!Lip4hDtNaS7Rx#b8O{p>}EIrQa{EXybze1;9hP zaS-1JSX5LxCFxqR=%GbfWRfjp^)zOhWv5NHDILnVEGle+EzPKO7Uo_LwZ{$p^sC3_ zaj-luB?6wU<8!vM{DGdBi))xNA!xR!u!rcOg<1X&X=Gq-L^H9n(bLVULpSeMbi3To z<;&sXw)o~tT!M^d%u0ap6qE{P8+2FPA@P`rDlgB0^TE9C`-&{c=fbqkX+D#sS4ZlD z^}~EWW-Vf^ZJ)@7!ZP%IBg^3F9-u1?zR&s5`G%LK?=1Bl;l!2~NCgOQ)g+MAz~#l% zK&ys*pOpqb(5CLPP8_i89gn*E7yuqU#QY0aq5O!mO8b1W{TkqUJ~y^Nj;$MjAkOCI zpXK+*z+>|lL#d^54^3Eja{m1JY!8PYl**4sbigdU)Y{pzfI9c^DGmM>n&vgsz9XX5 z@> z!7N5&EwzWWDiReRiMV*hxQIo$(Rpo?(k)5lZCvCU&(3bIg@y8~4CJ)oC!I7EaLLNg z6&|5Mw8-E0mH1)#sG7Wd%=-q8G7UKv%10nPDtt7K)u)>vmg6d%3Zf)G151H1|Bs;< zt}cD3(4=Z8d{N8;CJqLE+||bR78W9D#6%paKZsm)QA1qdEB_;P*FqZ03qOh&xNn-S z81^9@N;y6@-|zKx|CNi;kvxXsKVKBjhR$if*p|X;?j1WAxpJ=`d`+E){v0=7Ko*)V zE?5Bl&=B0LAo^*Wzo2L=bBO?_h`>!diMZzVLl_aAq&~*2GS4~2cgAvM;evVdlq6IZ zi!;)JaF2rAi4-s>~s($|GdXc-l_H1TN zuJQ>dofmXNaa_DdV(5YF0OY8;W97L}*(L($`%|R)PN+T#ZBPI!*CrKdYal5V6)G>_ zAm~^A^nG5y)e|bOuquh~D_CEp>&sr&16sDg$y9LP2QhNr2XU&5fKnN27WRtXsA}y{ zktF7^ZG^)foHTl_H2AyH;D;b&MI@yAbPJ{n&p<{R!~4F;Y5yA>V6V796{-Bb)BUaT zv5C@W8CWuZL1?IaNsT+%!JrH(ABD>A?E9gezb9#|{GW_r8rAuI=b1v)4*^xG5~(Js2=^4F@pyh|@b?~ht71vc=%X|%%6+P<096^pUyRhr@F0Cbnc-BB z>e^H>DJlZJU~!q>b-L{Gt3^)0K`cfltPfh&6^wkBq;H45i&rcZv2iUmjHidoVA)rs zGD_9obs-K?6rLnnsK_EC4fH6nx5@3urNNJ|5_#KFrA^M_oQ%p}!1}pZTfgel9M1QB z*F6hZ`eN78t5}Ll=PeYkrN!44iwn4JR<$*RPML}i)gwmmF=H}RkExleCu~N$rYk&R z^M3oHQ2oIEzV)E`J}J}`I|!$R-iJiZ+KWEw0h6cP7<5vY=x(Fxj9u(;)QRkb5}2i2 z5kCszTKbkCTrr4pA(8_9PXo9+LG>d8uCbotKZ&2u;^&_rJ6;NX7=}UT57mDZ>riV} zKljWnRKBs3PyGH~5zR^CVyATV;0rTS92V>OYaLlM??Vc;k_u!yl1?@<>HSCA63+HT zsrCqLKz$wf)!S>2ml!Ky(&;Tyov?D>`faGKQVpOljpntr@y7tk8+r__`Y%MYBLV{L zS*WH(Tqx@6jGqPHjIAabG1yLqFSe#^TObOlZi_zxmSh1-Om8m>v#kW?nw4tXVjlva zGF-8vgWldIRFK!pOPuA)*!bb+J4nT(iik~q*SSc5vv->U2v={v41Y8fFXQgO&8HAE zpgDbs>7wXdBq#Y6lJ~+G8G=!1?a6m(bS_QK#nHJqIUk752jmp5=nl31^c_s!5q(R8 zA2W~QB-r35-SnDvTe?lLcxn9UE{fi|7?*YPES{nED}Lez$`u~$?{5oc+_f=Uu^4J7 zCqnIaGJX%tTrdqwm?uhDTN?a~jzGh;Vtq-GT#zlwzcgX7i_9!cc+AkYO&NngTB4}t zC@!%_`HSfPj6angNoAqGBTv7v0NVQ>=0*=>tt8+qT7dwwgT+OWVl0c6`j+VQ?d6PT7qqTvn)xeL>GAE_^^VLKk>i2oPH+Q&_y+xF}M?y+nLMLDh{A zU6EdGZ=5OZ#s}H$nK4BTA#>f30qtDf*x|mpQN`-@EUr=(hoB21aYfGd(0rImCXzii z4-)PFgBEx-edzx~x42LLS8DNc#}e7URKO0g_5N>QyOEzMDh0|5_>qM5x-JKj6}Rsb z2_4up8|?p1Uh%i1i%jZ}oI)3?0I|OQKk!qj^@TB>a93aKvi~3-$=iy>UUIczy`*^~ z0}eEa1H9+19bQ(hKP-}kgYHmc*B@zLR2uwJSmcvB_Ls)?;Fp9Z8zgNqsB^rEtv#z^ zMM;5O)FzwjE=%>Jr7PgkFYxQ(&oouiZrhgHs;QZs@msrGwoTCD2S z))wYbpe94Y!CC+jX5;{!eV@po*>Hwixs5G1ShUBvUwNDSqrLi(?9PDr9%0BSuYh*Y zsRQz1XJ2(&oFe{t37^a;_m}FsfXVw2*kKMkbhyEeIx2?T(Z2=9!+J!)Q(oq`ZY<4k zJ60&ZaPchYfHN-OOjAD{biQV2bj@dVgeC9EafYUej08Gfu;^?DWot#Q40V4f4Sr?h zJ*%3D?LAKCrL`DEQJ2u<<{6K-3b*Ab?YCe>h7oxB>EfJf7ADY)|_SM9DUhy2h zXyN=eo%&F&=E=eCuzbxHKV+t=0mG3;;ic`({>3?SaN4?awRb?@iCscg-7xXWn(mdl4lt``U zNUvCsKrt(ii%QWpHf5{0tfQsp4)-QCM#nOvj6*$X6h%y;#|{{cUTN{}^WUPhw+m*>CQdmRm`{R9SP~qn?-R|Nnb3MN zRx4#{Rkx5daAxDW@IeLBFdjpAQR>kAcpBbTG#k2T37XQy_PO!Btg}=~RBla_)y3vDBZ_upQRoAw`zeA=PI@rW)j* zQP;2y!GUF^#Sth8hw^TpH?L=bZ|G^V246~0I;1Hz>gtD`>;|=^WW}H4RsM8Pp zLl}6`rM_A;MpY|O%vuplI-l4wVbUd>iKI=;exI0QQgIPiphcT*SuB6n4%r7pHU|m_%bbW z5Bxz+#P-3@;0Z9$=TLE$pX1$b!QczbSm|(g#Kjy*YOB8As@TfQs&J#Dbf~9v=y9-# z-NaHlw93dW9eM)jl@B*dg&pzcpvEeCm((-tpIk*x=wxplDWB-!GM&6vB9o?p9`Q+) zk|G>|xx2G7P6Z;np4-{gN@*O8V$Vs<}XB%qGHd%r|nL&Gv~65`M_Q(%vJByiU(7EKvwl?YcyU+})5@kjd zphUsc=x6wds>g-%OO0bvkrARb0Ld;I*LCAZ8@saOT*}?j8?>3zRK60xmERX11f#iF zEgM>!Ic^;?apMN}MCu?Ez&mXuiD%vjWn9Rv z5H>WZiG7N)UB(VdC^|n@Rp9)@99~n1`FAUB`PVjIwRuwE1AArXK|bX=DU%~` z_*53l9Cqk%uk7U)?Q;#YG<HZoA1jkPuu>D&EMPn%Km?_xz#=|V3x}JR95*wN5mh!Gu1GZuQ)_0&{4Eg=t5a1 zSA&cNvQ;kFJa6-?0M&M>qMX&0n3}>V+EUrew`DJ@mZAKu?EU*?RxaB-C$o0RcAM4T z$zFYYiQp11sqDfdGmXCLm-4B)V%6_tug$m5pKKSja2U)|^@_~eQ&n>%B(rjIeT_nEKa*KC#MM~&<@ON@Lgl8+ntjTDY{K0gtz5KM+w2%u z^02Cq!f`yA<(m)m!Z)gGfNov4P+xT;R@XbuI!ulfF6wn~GlzB2r`X<$N>XuZ#}prh zqhof)m<%}8n8R6ero0trwNm_qY2Hm z2b8O~8o5@bT7+p{i+`;1Z6}gQT}_FgyHLH87k|eENAsr85i#4pR$$hiQ78;oRox`B zlF$sL)OP0p)%G~vC+h5;B?*bQ46R1aroy^b2HAEQU=qTNKi7LY~ zlmMA_5kEsqd`5L~AMC&MV6tXzC18b?4Eoh|LccLo?@G)u^4hOrwO2KHa{aC%*Qa96 z{YY5PE2p|>kiDNS8X6pQ^Nk#o@5pw=7+!Bi1(VXThp}RGJ?qy|$BH?i^#e*Wc+KWb znWM9LSuNJab%l+5ohKaWjn)&|qZq+H5l4)=dqVxCgcg9$ZQFC(w6d!=@}fpu&w*X? z?r+HCMMR-c0!ZT`0z@jB@*1}za!)Ae!knPNn|TTQop-)trPx}D{e*Z}~zvB5csMosjMO?fLd zL<^y@)#gr{(dYRBZ`n0=vMd+BN?2;_i}hm%YX)m$e?H#%SYOk1g^t&BUCg>6ZIwD? z<9u$@Sv?g#c)@MTDCI`AXQ^@4LFWzKr#4M&joTRzgBO|=y4JK_|DpRBG~Jk?_eyGw zo6IGxgiIKh4sNv!>lQ;&t~RD>?$Q{lfSwQN7$lI7~JcW6E-KEc}mY4T7!E` zjF|_=`W$U0f=P#s`NYy((HLQWp8Fn+NT$X?6Vc%HJm`uNjP+uc25;HE+4hSnLHSfSW+{fu zsE5|8^r3Z%F?7!6fjq{inQb_SW@vflH*_<%&2zfju|P)opmeG_@f_tWUR zP)*p3a5J}Zl*|=TW**{0`B#yvlr3-7zW{9butAWpXihR52}qqC+7uFcn*)6Ij)bShM=G!qhMrxEKWki$of3TkyJ%$ zJK|y7!`Mh_EBOkj(#U~kimBW>v?8~T^fj#$PI1QO1;NGke>I^7&<-`}i32tditC8} zG^%oxLgqlp=EE|_vk{h?60`Q?J&g?chm9_-JyhZ*VqQC!L-N{rl{0Xzqo`5-gp@Hl z#I0f$#z;uI1FP^T4OohOeT4!?QW?~qd7_K+-9#?vuCjc6rP92<-1c6ZqEfVEF}kq6 zJmPy5>YdkC7<@(>-es2z8{cB@T-vnvBso+mjfl~_@~Pu6bY%lSyg%zgz{uOef-!q( zw`q?uW%O@v#u>dUP{&rQI%BTFn5x6pdsSrYfX%)P;XF~P921`-62Cmm0~$NjmF`{! z$uop433&tWs-w;1iJR?2$tpiaaC@@E4UD``S9ICzNY0Y+5`(fWf5cwub@l|Uhj%Ao zJr0=i*_ns!%59PNDl~F5+4c#l!?l`uMo1kHX@NqBfh(N^1h(&n11n8Txvaa#o(nUtNkurQBw%ZDcL1uYF>f_MlH;&u{ZhWqD>7HfDm$Tgk2BgSlY3NUu8}!@H!F~LQQW2r z$>&C}mD{s)&6$Wkg~q!Joz;H9!9`w*iSVv&4V?I~*n=6d&7C|HQokhgaJx({pmE-? zz&3RUkIhW`$_}TlsWp6 zOwNL1a=ePcgO3BQWeqWEni+IMa6pHM9I3(Nq>S<6<1vwIF-mb5FDYpAyf(_ux9?K>E-1`z zTUuDC`>C`8t@QMQMf?>Q>)0+DT{Ro*@bw!HClLd2wX{ zl`q?k+0p!Qcj#l+!FP6l9QAB0dv~{WlB(~!E((mEfCFl`EH7|1<1Qotbb=5#>Ug&^ zS2=PaV)W}Ow3U9tTcqq1kHRc~m40)cjp7F9g21`(c%h(tB~s91bk`PGi03GM7gyiM z50GINhFx^-cuN3@O`H7hTvA{!kWh>cZBf`;lJhs0trgcAB|1y;utx!lycR5aY+grU zLHNy8gS|KG6*N~L5j2{4s%-S5AM2nsXb1-kMGByd1Fp+8>LPr08lNYPs*_aPm}+o3 zRCApDDjY7-*uSW-pr;$H`l6ohhiF+a^8#sOFXl!mXL&>W=m}KK&_FI#X5=!&J#H@p zV)^Ceu?jS=bLGafL|qRQ^w`i-y4GwvuqMKUeuxqeMl3KQjDXNgtJ zua`!YlEdDxhYIfjIz?btylCf>2<_KE`&U^DN)U1!AVQu?2F+sIBUv}Fz?9-SiKv`^ zOcx$4&e?TIkvEp1Q^FaB=cxhSrva4r8_U#=-J#HaPqP$%P~h^A)`p_X@y`W( z3@!w>9B-^vHmil5En!OsMLpZy$!btvBW(FmVJV%0nL9Q59Vn!`E0j(iwx~Jf`7kMn zI}AVCtRF`&`#$J?q_6}bJ|@;imB>eQ;QxOpbc8oHnFf48oWx?T4k)qZA3@c>6@pyO z<@{nyMS$oWQ`1NlGqhZgZ%Sl3G`d6(#q2V_75K%$W@yFA!XmdGk+MtaOgSn7>Qja* z+Wu{!6f=ozirIkMbZC-x9;IOwaWcHIRVI~X^>~Pj=~lQYwyuQK3}$N)F22PhB#2tP zRumZB5>$rq8!PBy;-|xjWOJU+l7biB7_A?Ap}EpBMjZZd+5e0;d^hXJd#x; zB6OM9^Bem_zr)3_MLF!vu(nLDea?Entouzg=dt#khbmd3=GP{Iexnb9wq+PghkPbL zK@U2ei4Ho&8#QmG58T!VVEm)c=nO@8ypuiwKV|GFE-fr-Qi$S3#>9^H$sejW!-K>$ z;3oRe0t1&aUX?SG2lI&PcLSHZgiYcHvGD341CA_mHtf!RRY1A9)lc_1{lQaNGeXiJDcmVQv|Oa~ zfmhnk;L=94i5NG+-=r2T9 z{z1kO8Ak<8WtA((gR5%oH*V9Bxs*-ulh}|xZXVi!G^IDbh2+~1CEe#!OFak|;UFXj z=GbP+!Y%>`M>XANCX0a|fiCcgQlVXhKxRE;ASL938oJfU79b#jf{wT>SfH_Pa#;~x z1edM+wyoF^htGd>C4c{8jd~hL#LeyZEKB_XkK}GccI9sT7}y5>9xic|NbC)18nkeO zO?k5zS#beUbbBDV&+lxJOxsOoY~ui+YV?6VJ>6Z5Op4-ojPl6OG|3+n1o^Qmx4e5X zxgmqGo=OpL&`^0l)%y?B#-bvXDnC!24@fKt<^3W(VWzy_QpO$w@w*=v5O`sXR4CRe z;u2@{`H1&GL3!nU2g4q>s39xgh3euCG7jZ6I{NqlqN&R3C8Emc`;%#r-PE6nK~`Sq zS!iPET zu>=njobU-#=bh0%@x?ztazlyDrbO}6_&L2 zR25t-K2vyhGrJb8_ahO~gCVOdfj}>vq0DtOK^v{I`I70is79M38J(Rx|c0+}x zQdX?Bhw_~V>{q_c3VY^vH3oVDCWyF0e5oz)S@yA$81=xu5<*f z>h1Pp)73M%y}+r6m7IiQ=dL%d^q9qP;0Mnqm{G(uoL0_Au=s2ZG_CL|N_=d?f2o3Yu zBZ0tbzg~dIY_doYF)aztc=c!KMMRPfU)>Tls z+Qmv`RA-4*LLf4>XfT?YXKb8%JY)QOJQv51Xhjp_SxsP>22O#t8slri(N%|UT2MnuHyc0N#P zx22NOd=aQQHsS_TMpg&K)T(2l#y-C%>Ce?;VT)KcUbw5r+L%AelW+o0%6MNBM9RVY z2Tb~^C)pJ7e%OIit<1T#wdga{6xEeshbEGwWpvg*WC(H6v7{A}hQeu@stV$B)KZ!o zr9qQGYGU)GIubBjErc=?)Q0 zkVHT(K+S)nN?7S%NohbpTI@`e+1O4!cNk-T0As4PVl0;M%z;ix5kF)&OzrWZz{u>& z=q4LsmfARhC=!|HaxwKCo#>)ky%|cDNedDE*t-hKIVw!^vCZ!*4LxpFkBXI#1Vm-G zwREZiyN=}1uvrtRm0b*FkH=1D$1Y%Eav}d+kw44k1iSvW0QZ!X69+EIv_uxzPd~sw`h-Qm!+*& zi5RLY>pJ1M)AZ`%1h<5Q@dVFz6|+Gw)SP&mMU3}=S!8CY4%P0 z{O=17rO1~{mCKnmeb1FDQu5Ny`S(Ig?kVU}sd6c^#&7LXsg}HImjIo5Tnx1-hzl}; zb4hA5zH{tUo0zONQC)2!wf3_-Ze@9HWv3q65`=jwO1_J9Fj8kDnfo*5Jy>`EGxYCT z054k5wm=$z1u}6mHrq;{z=MBGM%wV=gVLb$r-kJUn1i6wg~Jp}wOi^xOR&S*wrSe1 z1V8b)Z5>KjY+LX^COENG03GcEqVZZ+{F!uj{-?qN5d7_yrv=Oos<-jvCr8r6;fN|Z z`HGRn&=?OahRPM|B5GYZCTi%s)yY!>v{3!FJPyo0r}}4JDnNx_D@9(yy(Kll`~PBl zOcEMr&%@+Se(-^H&D_K*+$%hlgmHHE6q2Nw$$73&=J-p7mpLAD9bmAt^XG-7-S&nbsZc3MQviI zri*Hy)=5-9Li?g+IRb&ZGDAG!nE-`^oTB2DMOJ9;yRGTFEz7ne^XtfbVBfKz1(^?^ zN1tNmgESR=7G*w&NYST|`7F$Q7G^#OTrp0&hXR3~1ue;fmSjFlGoPiI&*IEyapv;y*C~jg*k!z>p&-V92 zO+P2u>PiCL{>PD$b#-l%wXVxpE2R@-y%R+J5A8#Bwz_>-;bXEc5Q(&I4!T|6$%8)< z1V`?lwacd-o0R)xpUs-hhRtD{qaKP76CdLJQpO%I`ckM)v6;JRLp_ptGO8@tQg}2C z+>$mkw&;$X{L^d=EncYZma#{Mbj8kA>^%PO3yQqO5z;>aNezYjp-E=Eb!@B7V?mR&JcaA#lk$O#T6Ukn&-gu z3S~(y*Z4iEspb7TRA=#ro^?uKxt8}Ir4%RiY_v6CKax7gZAN5STW*h1H55{*1B!|e zL2K;PpO;yMklH+ChcJ020*%uHt4IpF@GyCnpRiQ9>ZZIJ`X7mwQmy#E6@C~ddE!kF zWhJ(LVP@NDeS%9h=3bvd5qUguRyMV*p1;J1NH)1a6ord;NWMaJKqYF!{9@wj#rUmU zRNFj_ruqAIYw?Og3OQze*%w;GH%_iJ;mHI=;^@l#OiQ=f6ahhB_Phx8oZ$R=js;k)k}b~f~c{w<+4st>antfHs&ObTmeJDP@H zZEf);kwu(UucU7_C%c?=ho@J?^`B7N?W*4Yv!|Ek9;3kE>XO9#hkEK0=18ANRn)&F zsnS#}(MioK%>4g6NjiJg~xoa=Jr-|%E7K{4-Av!WdeIG#%pVMWs zI5i`0l4)XUJaM~%1S>P7FN&3%Fn)YosPkd1hp@m50{sUPKR4Dm z9`z8Ns{d84PC{Jj9|YdPs8#IyfGSGol~I0eH!Ua9aqHNX2ki-*p8|oCLS~r!^v9Zh z?y&Mx;9<{yy4h7N0Wn8Ehlv!WIE;=R+G5k1E=$D9U`nL;QN5a)|8tdG`|3gQk{6+9 z9wh%2s!nfBko(u|c6YC)h21*P@jVQ)k~7R0gEM~0b67%}+CO8jINbc3Si@xb(|sH< zs;zn>SnxD8FCqjO@^(EeB8tNp4?3k`}>Vns>Cc;$frVXJn{nMQx- zJ0~Jb6;!PJl|njMh3oE7nqL;}R+BRtyJ0JC%D(@r@K^MIHtyAiOOw}WHC$47`-3N0 z6xt-`~9CX^2D8f8V!{?fQo-ft*bwecnonX7J zCP3LJ3brIvbuYIF%$7(>ZK<1gcb2Nl`E@5DnHbb;4g&f<_}hY3M_x$P&cGA~9NXB< z1_ZwPOGuvLGZi@h<8BaR;*z4JJ8Zur`>oyMn6g3SCAli}vq8t)@|E zyP8_EuEFSTq6(`jtG?pFwsVELVeMYvGB-e?*tM&zjRjee3VV5kQiB?{uzXzXL3%a0 zQz*S4MQ1+*6)Are`rqdkIKfm{Iu|@?W0a9#Uz@EL*8ZP#Mb;)_m*`ic(uNsWS`Vr< zq~-B5M)NsPknVbS+8YC22%4C%>uIoBUc}=wh@T8sSQlw}rzU%z5GlE3(jV!x9HK zD#PweT?6!v=PcbChCkvhw%;?kDvx|A35B^D-+Jn07Duw}ppFwL6+$)=-&l zMEM&(UP06B^3Pa)h`y4HV2Y$kakNxSA7q+p3(8{!qhVlAPGrm*i;scE%%QZ(gkR>x z?m4vFOACva2-sp99fNhnVB*x)7>3rP^Jr-cl}B|)yRNj0{zY8TwiKK7L`S=@vFLJ_ zPabbs9&b6em{T{lW=^`vG3K-~w{g@t`K`ugIluoaf4H%ZMy$QS4~=lprgG65cLCzp z|0Orb`Sw6uKhl8rLQ9O6urATm3oS{NDSfT#rN4RyWGYIkcZB-G%UL~#mbniQn%u#M zU#PE&^Lob+0dgK(<|i_1FNhc^yPu_61IFrt+$~jRQ^;u5Eia4{nn~gz^RaoJJ`zo%7`sZEN!VEw z>ObpY2eEfn5H4lQN6LW@KZY1jhDdWy$PdBo4p2+=gw;@gDt2{xRq~$`#5r^>3bEwa zzl8)H9-%vgoa~+(+50~6PI0)J>Tz@fALT|QvQNJLJZ>�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]``N7Q$S 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 z zs4i~>@^Ys{in{`Nxl_%e{LC2Drsd_pUbpKyA8LMxD;a)yO?E09~9slQU~ z-U{TWom?T_FTy|VR0tV}GYaCgH*oGe?<`@N0_lRh=u}A=Uy1L|Jq&rtsbyIPX%f=N zqP|V{veU#e4>9$KdD&@ZSqY)PaD3TmW%&X^D{x+R+NH!dR)YI(;%G@GXug`o7<5PQQ?fz#kC$zSe8bkQA}s zDNnnbM{OTZR14p9W7HN~sbr$sVsE*kwwNbsi@oi}s4eD++G3ulE#`^ZKJU1B)b@GD z8R5Q9D3D*b=y0@QaTbW4($_6IoJ1i5Sa=|}{JTyXi~6o(r<22?zU#QkDPmFIb?kB$ zvZ(Jvu6F8K)R!LLb6Q!{mmc4Dx>(eg9=n~5LgW{!Xz>z>-q>sPCFZ6AB`V#nBH|AjEi6G`vCsE|-jLU}X2l>oN zX31yiby8(r_$`h&tsGBW*E_i^mm}tIl={MH5>ls?K{6m;I)g&ItKJ4@NX7*A=ikoT z;3WM{{qnAQ8=Mptb=BM8Ol7G?X1eNqZ&o)(rVu5_@> zb)}Ex6it;HW|`;4By5wtc+iz3mJeM?XW8sZF3Ufz6te`+S9MjeOm(G!CEJx1ESI{{ z&GMit{VW}>jI#XXN^nH>V$Tay?I|oLyOPOrtt=6>a@5Ha3W<|}8VPv(l4jZy;i%WHI%+3XCm)FTf)x7q9rv8ZptZ+1plnh}$S zJe!@Ve^K8n18=Z=?Ub;rW9fHVShli!;|#LIUo7(sI7y>2kInL}Q^0aK%b?T1astbD zPA^Ll%N8g2x6HGM<$EWGdzG1wJo6FbNhM?n z_ZsA>~>NVt#=*(JUceFJjR=pU_j0ShU_J|DaT2bVN$vP2{n!#PhMJ7B6}cSPj`< zNPtB>5!x#{Ns6`(G1Ej$Hpi&H{@6R3%knK^XfC>Uv_MFCU_KOa)s98!%v~?`?qEl0|l+JWvry_p^mJwv|BHW}6R&{K6OW@^x$Qrqo;G_iA7;w6J)Ug% zkG%RHQC|~vON}kV^B^;{~; zl>#m`+m$p3m73$q87M{L#__IP2{9paT{(sGoal-Hp{8Fj~N(u6h?m8(7p; z@8W1Li@NF+MS~M$9(C2bB$~sbu6mb7t60=k@3LqYi@NF+N8=M@p5-{g^Kcei9!+5B zfY7goT^S*%LGP4?6u8UT&sJojRqAfydv;&Zbp4gW~Gk2jgH%N z%Qvp1vZ!(6=4hG_c?GFKdv1=l3F#ESHAZ)T<iw&V?7q>+h>Y^9g0T4RBZi{YZITG>^YQHU7Z%|B)b{gbyA$FLg!u|H_?a?F_ z^_~CQqp4EFkznH4&K>T#GY@&5L7pmC${=l!yIi@Ar6!sq@>FW~LufnKx-oA+-bJa} zXn}~S(>{Z|FQk#>N61>pz0o!nD)l*}F51sRndzvzFPadce${C^7Gu3Sq&}L=G8wW3 z@<24zlv^VcG6H!pI>d55WTz6Ws)|-yGLL#k_HeYHWxpD{t3*s=G}{(=++*y~Xo@3C z%|jk~m-J|~gk=GQ{-$qPw1VX}NbXdus){zS(6wM+WPUu_?~}tIPerw;Z1cS+Me=O4 zjOBljS&$c^gF@=?b{AJY$cxbtpPUJ4izddng@`GHyc*4CX-6KC*P`_-G>TpZX^%Gf zgx;sT8SP4xdEVpN--%Z5A>~uZwJ7y&v?580hQFk^1=1DmXQ89z9>{yq@ZK_J6H3wc z`5>CY@-yTS#C#NOVlgg{*P0<~qk}9o@{@cT&7UmusP{X)(XB${8=vP8vpyO>g<`Op z4tZXK^hIqU_%$>L?TZc3QXxyVSrFQ)8>6jU>NLo^kj>E%mJ1*sLHeVa$&|S=@WVQ6 zW9;{Dqq$Pt=d0gFOIYanDm^J3j5bJdXUpG3TRG2V$V_9@chNQ><$(ndnge_n?ckUi zj@c6J=9s5BW=phJ#)!;xeg8f>B&1HGZ`}2w%|Ar7edHEfjZ)u0evCG=d=B{$@>6ug zCnJ!bqow=GQr{wGhk01}5Z%Z!0@(@jTQqw=xt+&dfv*cfevkICgdlT*xZ{WhQYdDr zwg)5;F(c6>Lh7_MNGjydXvY3BhW-*~8sx8N3(L=s;{7UQG&;y~I!euk{2g6!fGkC8 zGtPi$u{Ehu=*XN0iI3GED&>5Xx(hNs*6fo9AQNJvEOZt;4%s;tI82tJW8+20Zm}ko zD>+XnHq1iDA!RmV+TpSk9lh^DBC$*%H5whgBvvdvjbduFMaVpw77afEE) zr;zjUcO?hKdRS;g+6$!)jwMZ}m^v*sjNj+MnQ~~XfMo*S*wY)#!($~Zoxe&+iB?zHX$Hekkrn6+mN?5j_E_yS2Y^<5(e8kY`H!IfWlWC|cE7rwAOnQL8NSVnaSDLd==54!I__m1R21{Mh^~nP(Ts6vW&Zn>1Utrv>Y64~3M)5?P{% zIRJ7~teHiv6g)`YZOu$_#Hx5kOyPUQpB}jBVrzm_0Od|-hBSySn3H<)Xe;mSe2Bx zi6!_xHcBmvH43TJ=;|;EX^IWA(6wL!R+cZ1Wt}MVsQLU8u@))g_eUOTPfM(wB?FR& zza(vmtzl7j*)6eNA(a7j=h70}C}ZMsP|8AGEwMo%<=VxN6i91qY7W(2uFdMi_Nz~ z)v?4}(F?IPXx8*zEX61Ex25mL(xe2`s=Nykf~*x1=9r@) zwBP$;i5znZgtk~;EQMnVIp)jQRF0X)F<-_qIA#IIY>4FusnhO&JcRaah$Wsb+uR7D zdCSJwR3YB;)lIQQ-(O|cv)?u>dA+D%$8UN%NmaPK9F9i#6rA?Bx8sZZX3 z{2Z(H$tuWjY-2vvUZWk1%%4C;Vp(TPIU4dMc? z06(+FXEfT(G&1L$&*yy3k20Z62%%Ysg&_=$5JKp-&^<*a6Uvehw#m$dObBs@v?0VD zcL-tk#CI&WZo0|s`+8s3`#R@r_vg>&<9+=+*SXH`>$8iVb&-@2$RUs^dfLTOeuo?f z*-c->vhy`KmpBM(nCL}9g3&uwFOf0+eSoQYt&m1-Po&C6K2!BrG36|U>a)9EdZ{eS zK}-Q;4}IfhQVxck57|@Czg)_E$W@S;`bL%<+`X%W?5z)l5h;_?N-FRff!FO2+6yURK1+VKz#-v`{^B_e6}Rx z`a&O<5>Ycrx}H!f%8IC&BwbHpX+T*tBORdYEb8A656~T!gZRzr1N00Q^Gk_^3!rH^Cg=oKvAa?BjPhDCkj zGgq%;QQ!E?)tgz=H$DgJEiCFApM&)_7WIu!rryD#zVXS_yIJUatFO`Xhv>a5^u5)$ zLIzmqdn<}LR3BoY@2x22P<;yveJ4ddf0#b1^5O4*4%4-(iI0{`=)HY zfJJ@Zl&u%B{1;p22ekAky@X}AGR(9>%30|9ChDJ~^-31{zKQzhXuXz&z5}A;=`nf( z3w;Mf$J1l76VdBt^(ZmJEmkIacozQWeRD z%oQ@oF?o<%=HZG}-^4MCAoCD2UmxL^5=cHIS07`kfSfKQ;cB@}=^LnXAjj#6LaHM4 z4OFp^WR5v$EB>J?3s=6n&Qgnf_QZU6yq?BF-+$3r_X&E2kl=mn6ZC8$joO1qRfe2T z(7R+RacruDoTzWQhU&9 zj+nFc_K?sBU!-pl(x~nF7g_o_dSZpB^JH~AJy)O3qK?An>M2qtsH5wjS?-2xf?TB6u&jf8FQkFxb;wVUi}hxf_aT1>Su4dq11Z)!LqgvH z73=++Y7nVt-ndjBWTCx@RzkQ`-y}qy^Y45u-m%xKE2&+U zvP91j61>-4qL;I%m9k3oN*48oTZvx7@*`?UZ@68quVmTzS|uGUhA(|ANBA<#a;`7h zO=9armiv;-^0+VQEU);I%QEOop^#+}>cc^zM+*o^qAm zFGYLnPu%ZB&R6ScH_Nd)6Zz1U!e8_}mV?g6>!29n*XsS%6jQJ5j~EB3mgvJ${Ijoe zeN@P@NFwg%(TFP7$61=t3Oc@*>j}3|KJt5NdUjl{PZxsk*6+kQ3v#|*&lVC~pWdJ^ z6e7prT*Taq#u?s`h3*h2?1U;e3=;t;bl- zhnylLo#iITxsY4*OqM#xB|>soUcq(2Um(l$JeG$LQz@i?g^qd@bE{s+LPtG{xm7P= zS%*|qpBlZ4r5i%^snIK0zJSz1ZqsX6euCU9q(O?7P>!`IA6^ho*sczeLJ*?*lk?pz}_jVxl6cd~ktkm;Z)LFqQ zJ$5(6REcL>W2oUHdajUVVqc!T1kYIYf{;vwJf=6Z)E8r){sOYPv|2d*$?uh zuC1W5mT8pgV93*YPDpYf>-B{pISJCPPj8T^Vpx^pY{(0GK}aruyr?&YCIC?EU_9%L!xRXw*+%AG%APlEhSufA8xPl&05bm@gnQvQJ44|!eByHCo_ z*I`eAyrEaK%z(5)y7dtj1M)niM{jvRraB1H1=*;lKP=@~$Xk%N^hGQMkiSFT(Q89s7QkSUOl^o=aL zT#v6rAs_3bA<-cNdg&^eb24HMgnXuNVTnTygAD2gt7S|&6xAxA?Jj82y9QTgm|lChEHES4ROej&lkwv#a^WBi$I zCnI4EwIZ0=b~1D+{t+!=I4pFdPwLgf5>0%{mBS~*4?sV5tqENXt< z*(iC8N^gwx+<|XTk!ok7Oh~o%$E$dThFNPDqlx8Bw4I)K$Q2^D#hK{U8Ai_IRG;8jxu>y^MQw{@BXeCa66n3AWFs#mbVN%w z3PSSZ4!A#NluC&l!1YNnDp?Na`lJ|jEXQ%oKE_IxGdN}+qfJO~^*77d$T8|IuUSSP zi~4utS;ipCW?qYOUt<%?g`D%g#t4hLucaHAPspu9=URp6AKl1ip>wUvgyad4eYgZ- z7$ZW0J~R!jRradt!>G|NB-rDk#zrarSdAKeENZMqjX{}NEw&|RaILRwg^M5C20MSgN*#=C{^$zG{Y#A;y-iA zFe+KpGnY9=T}WvDnQN>K2|Wot*w`2ndJ1!hu}Mhq%;iuc_B@pyJPAF_$Pp4e2|dgx z6C%g+5bB(5R7;7hLc4|`M;o>OBMqTcKZ=-^ko+5RjL{tuTD>#J*bMkn@aI7B!O;8WpcleS$NqLZeGaW8?$myaf3a z8XJ{NPtg7wjkyq$OT4HNS=XQXy_r?04X-oLNW-s z)F=>Aul)!4j6yCqs)fj{d^AS*6-GlyeuZ3VtPIJCkgJT2knDT|R<$)U|3)?3JXwwT zawD5X?HA=nE{ocC%8h&$wSSeXG4Jn#``rKeN zg(MDHYK%&W(7M*NpWbAQv(UQM^xecwMx;xQsAn_e$h_G|Vo5~lG-Kavq_F%A{|Z5) zx7vuY{2f9u)kZptSoacT-C|_2&^l&R)-6U3OXdQZ&oU#AB?m(JEHesNOqBk`PPl3{ z3Rw<-?65OQ2}?G|)EH$f`5aSYRI(I8Xg<8nXkc05%UU5-+Fg*j=&{=j?KRmO%@EpC zZZ{$P~K-L*!!kYLuTH8zG~=A-mlV<;qNLF$dM zkX!|6GGedG8mj&MAtQ~2Rw3TwH2m+9k-@SFHKdimA2PC7M!8)N896KoH_9X9Lq?ty zQRiDx)B$yK(H6m|NoqHy$IrC8?Ny>zoDE(FB z^Qck8VnMD>z}sR*Sx9;jv&N`lIRG&qK^`;uLoy`9>87%z2Q6X~wib0+*5_&{Gi{3aG@}!Y1Wb*`dM0?uEWl=}8r;UXnp(9$G zQ6y!uI-;#NN`zF28qyJMy)nWvAN5&|H#*iEV?u(_(rzSfp!zgwry=He)TiA@lM*S0 z&~u09j0_?5kqQWXU+|of#i{BbCnMGKMwyUcCV9cA4hbC#UNBmuL>@#c+6y|2Rw-IL zqyYJJ7#%DpJwvANhD(zFw=Ov?GNYJjAj3FViK2-Wk#+H!KyI3z9 zV+j3-{fS5)hwJZgYhao*i9}DHP z7P7$@4oL^(Ekk=p=0h>#j-ll&y)^f~+D1F&v+&?thIc5ojTH0@PveZMUfBMz|r z8ADvd?~rO4@&BXVqUBT6H)Jzi+TpdTvMMCht7Ftn(Ryby9NR~l7vpOVqL(JZGDIEb6_T+2#NX&AsbHK0_>O?wxH8v#6Dm zXPaAC=x$HDNHxl$X5-oB7>j!UXSS*JQU7e7tY+icW&(@)M}ygB5(~|=vd+mYw0`fa zqAZ<7&Ed1n7>jxrYqpujqUPt>W;%^1d%6EIZz;%Bp5L)R$(K^L%M%S>{VG%M-qAVtLn>ah9#VO#e`} z;(%&ZdYTY9=HJ40-`~uVqFsxak0A$`c|sbsJ1LcrT9y@%Zy*PnBP@?Ywm=Rt6aP+S z$(-rjFT-?%^l0i1Oomy#UCdmwb-S3k=A!-}AG(IkG)qE4*RY3}T`s-Nl0*|nQbO~6y#ijR7aUfA=wfCV`fN+ba4OVm{}}uLc~94 zn>j4+KxnPJ95XMJ53QA#V-^Vs?l~N5cCe^>4)e_s7PWree6#sus&g>+&No}7_;c@k zvzJB9y}9OKNNDao&KwO1&ArE))BhoI)+iOty?JK3kYMgT(JU1b%)KX>bsXdWgSOcv zL~i%%a9wb!Sv){F2Uimd%~B!DG`gCYf_`3TR&tEGzBtXS4GCReoNl&C@vkom%yuEc zId*~B_6e2MsP&`grz7VAvpXboEI8X7V4CM1}V3Qg@(k+VM| z6`C0=YDOwFvsl!ORA}a~s2ORoxrjy0NQ=!f7BwR+HfveFKr3h-TWq$lB;2B;lg06+ zpGBrUEDPrmLrGn*iUm94{yt>$I zWl{6$VzZlN%uhAQGHsb^>8MKOOX8qxMZPaFmNH+mSZaJ($nu~sB`i<*Qq59uo9drt zmJNPPJBvCNEH-;t{^`eTVwrTSYQ;E<;mh>TWh=6MNnxmAJfY6>MLsNbgNXp46>*r>|%42Wuu=@;+L`&U-}Yb`HwGIEb1t{*j&is z-llr2geBLPYL-iUX=bVNrJY3`%`tvh)X{vgxryabKh-#kI=(M9rw_?iyynNGv3%!C z4$I`_s?Lj8;=YuzsPhEOKP>7z0rL+_j-RTNP4yx1IPc?@#x zuDI82CVnMap^-cYDKe8oawX&<(_v{tOx~Wj`)y{jya+Kc&tGEZhQxzhY8J3`Bj$Cy zD^g1pZ5Mr({`-KEYkW#bgYpPF=_9apj;T~+MSuQ1_;n^467rn}?;FymQa|U9r zGDlhHy_G!3U(9hK!TC?QnedIwS;dr_(^*tLH<%eLs`MMpTp>X|m1h2SF_mVK6u*X5 zW--U8oU6=Q7FGH!W`mG=?Q8T#HhQDR><|)^b(`76sZ@P#GyA3ZWi2-cI7XGV+|1uZ zEv?r^ku$BRaHrWIq({8hL;Z7?*(@X|>u$3}rt;r`x!X+t=eFD8ZZk(pWEA~O+hT>8 z%c8c<3Nw#WsrsxihgnqH?=?q+1f}0^j&Y1?>HTKnW>LD|(g(~WDVoap0ke!n<@~T& zAtcCowOK7CqOKWNo3$+J|A|(cO-gRZ{TAG}dBj}FG6nKiA+0QXLXOAwYBAec(jfUl zx`c%8NSk9a#=k%RsHuHR?OGN&it~BYjIf--`8;Y)XHoaw*O)0R7a)etA=j7=i+c0n zF*BV-z4`E%nZo7XswygLT^5tfmS?j76_?|(3=nE3n`K@ek<0Q zS3OTQXJZt8DPx&-z zFF>A$JZE+a!9Pb_gEt8wFPq~W^A2JLA)RLa|52)XEg8?Uw?JMsD_Fil%s8aW90&=; zykT~2k*U5#%#=#p;WSfz2xL#lMl<X_Ak|j0lI23kGeT-uZh&+^M$9^v2OvE{nuG*B|C8A+B)IDT$s84eRbP{F!L z3i;LC$nrB}3^HbFzferQc(ZYbDy+9-W=rvpMB`?j5c$1%B4WnP(vZxA{Ao6X#DVM( z-58QNkV#SPS1N1sgoHa2v>Zqzx=2XSW4lC)LQ;U3U822GBD*5h#gHk{ewKY8mkSwW zNr#jR*~BsrvQ)?j%UKZGzjlp|v0MzH{cG1~!kE|=k&dI})8yTvi7f9x{(|QPyG4^( z%8-hlI44DQmYX3IlN3#3xtn9AMl)E}aLm+bwvb>8PKy?B%u9&51$CYlEo6BIa=VZc zDPr!u8?t+JM2c37mC_%F%!n@hk7$K9h*YmYW=6YMwnBy=`$W@zlQ9W*;XUe`@Froj zPDqtD9kM4R7ESn_VyZM3vIp)$xY2x;BO!AU<3^i>EQ_25p;^L>cCwT}=y`z~-6*7c z0`1F3A(a>H7a~Vg9%R4hrjVQlnH|j?r_zI`?dj1HA#$`VMofA%`wxog)@Vds0XZnz zETl@i8KvI{nG=otSGM8-NF(HsXdcUYNVAYGmR`v6qjAS9Iv^z2I@!@J95aj&BvWpB)jRd9mSX6JE63t{$ zy>V(Zn??1;snI+k!PraLwcZQr6tq{@}SqVuJQqA%tWQLI1 zP(E~gKRwzmBshYc9?jT6wp|@_3!+&ALM*yG@s=qlttt4%xHlW zQRk?LDG!MUIV;*EB-jVfiFOES)OwN69K@Ux?VL#UY19T;&WkQgkn%mt;wS>}>zSlx z{tJBh1u-Tr~GQFKJe<_STnF_s|JxRBtOa#1v464fWz zUKd4EgvgjrvMINOfIwV;**`syw-8eu&6eVyODv1#3kh1fEV@WYqu9zHAXQDYNQnHxk>-t> zXo*ZE{?GRc9ARssC?=^I?_x#UI7YoiusWKut1L^sMX)AXBcw|E4Q1_x zRO_N8yKP%mYqUm4P*!VnFccFQEb4uL&gd|UdiwubG;f+rMMBT|-;8z%3AWDL(Ls(;&(YqFrtcoqa6gpZ z8!Z;nGkLeWF-Jk(iP1-}YRK1Nb5UmyxwDj}nN{&%2 z{X9AvilKbIj4qrZ^HFasd>!o*Ql%|LeNI7rhNI4&qJK2%`69@cXoD2LT_e#pAwj!F zq6x_&m58|!ss0rml@d`;t|!IDS=96HNwI{PB2`2^*`E|kWKnMjOo~lsQP1Be#Zp-4 z$v$nJNwFA<#sX0P2XOLZE3HykAG?G!s?y>1Cze9Gp1=km`I+h();2sDhC6+KtrkVz! zHlM%0AvBgj!icxRlP>52Av6UV>v>qv?CC60VFlnCFEx9ct{20 zfLNMIsT#F2Aa_CL#Hxj?&@O_k#{c=wjg>|zW`*`Zj{K+2gJT^+f^&e(SgR%K98v$U zkQr+iQXNtMu#g$+64En)W~4@xbx5o)B#%I{Vkii|o=McJPeG2{MqYs&?aNiDVJ~E! zFNt_Y|2ZT#HY7{;_sZjA!$RboKvz=7$Hrvon#$*dSYn)7(Id7gm3~qzIV4p2$uWmT zm9;RIB_x<_PLCCEjGApukF|zksPuwZ%$8-T($9<)v8c8$iq(dMNB$%>eSgTMu?ChltooY? zDT(Q+6jPTQKi?!68EDT2Bj~LIYNTAFOOA(V$MO2)yA4RMxFoM5o={p=RftaP9arVH~N|0 znQV+Xv#G3VZ3~3nnY=&NEF>uX;aG=|p!A1hiTejNEJEq4VmU&3G<8PwNNk8joe@12 z>rSUs@{H&Tqu=&`qBT87L=jh44# z3x&v->rr}dY(PlxKI8|nA(?8jdXxEs*f5Lw&i8}Z2+Pa{c^>saY)s08*%11!?Soik zjwpR{CS>_VB*`qtKK?@WBeph_iniB4 zteaD*mJY;{=LXw?a{e@yDWpeJXGEXH+J)3>=OgEb5c5?m<6ufvuU!qH)#ks6RSJ=3 zO^+ewpRqoUp|hqJA>YM%Gi9n9k&5m%{}@X?L`p5>L&R*2IYNT1GZM=Y5{!+JSW_s5 zj?4dw4RFk($mbj6^K&feP|CSSdlB*r86vvKQp{SeuY4Eqy-L z!iD@dHq7z|V&+0LE8#H8xk{UIkCX{k+Tl_RmL052Awer9S__2)t(a)74aHC^CRx*u zkabqA*wJ!WRGlMM35#miE>swg!a+ZQt8UKbmru zF@Hrq`&f&FY@V#XIGAOXu&6H%W?7Xi>fCsiRi}jCPM>8pv#57mXIX75YCoN2b+M>- zTxVJREb7~VS=J^N_5SKCYm7ym)6TMzj-gg;o~*t~m}O08QRl0(tQd9L%zYgw$&n;Y{zT9k4p3m6#(-S3S0`HC;$mgw`#jW8A)$E@W9` zJ+=;gwV_)M$Gi*q0cU!;mBIO_em1OJ7S+#&mCvcv>WhZ8NX2l^n^qCWsP6(ytCVBZ zwuoBg97C%e($m|hRn0MK>%^=k7PWO^)=ExA>mO38nAOTLYI|8$JIBy^jMR3^>JqXn zGK`ke^+nv;$T7b_C?;<8b3SS-+twh*yufAI)-cDY?e1739Fx!}zq50!agI?V!L<_R zi4h)|h8U`|Yb6QUJXwtm&q@|j6;W$8dRB~M)M!byayUkJQ0-NR@64AG_`7J-`|f5{%vhtZ|M}BlAEjVLqj*ikywoY4jdw zB?;L)S&h|$tYnT+WAz{_reb)kW>{$)qsD56mB}$`tj@8rIYy1uIaVIWsIfZNDr8Y( zb*@#+snl4VYn5?~8mk9e6&$0+>cLixkYKE4T6G+w#%iY3%=xIXdWhA+F>0(HVzqIM z8mos|9UP;^>Y-LQ$EdM-nAOWMYOEe+4RDMat6A0%$EdNIWo_XYHC7L|5_9F&QDgOR zD_O|q$!e?~Vd)&B#_ADP8po)ydZd-dF>0(HX%z?w#%i`z$T4cHW?Lm3qsHn{RvE{r zv3itMDI^%HM_Ua->a{B{qG(<{+G>~i_@nn2t4~O9{5r;p9Vhl~KW3hlEhLDUXEkgW zGv8|4E@r-!aQwFU9A`N~f_#p%I=72C!5Y{u<^(J4gl+RV(aIGPqr&*B`Dd!-c)2u~8g7btktn%$*&ais7 zi#gL8-Y(`$E9<0f>wLCVAS5X3Y^znqMAW^?bF6kD!M)0Jtgh|yIoF!LVB0#MYn2MA z(yqg3X~8^JXbrNgfV>PTvRd;gRdAo=BCA`7Z0QEXTx6A=EOPeWPbjv^SyrAlL8E`h zEVinpXzFb65^IP>o%>y8<(wjGsLuVau-3AuGsdf|#8WAzN_!GD{1~N|S$QmUhl=D{ zYc0!bi1`6hZuKvesXl{fHF(Bh6`UqzGh{MksnyQ%J7h0NrImC##RS{*CM!)yuq|$~ zDut}jrr(Qy;zp`!YcQ1RXvnQr(HSD2i24rtHmgKPkKbdrS!FD$$8NJKrT9Iz+!|z2 zJyvUF7f{YUn(DE;tQHp4V|QDTGi6KnLk;s#pL?tl7V5)uAx+i*%Tb6Sx!=k-i&E8V z)MHmcnyqdjRT}l!4UmT{{cM>t^;j)rrBxv$7%i)<^hFdC^xUP)P8+=?$x!Mcr@NV5OfQr1~AH zdaXJk!F`hVt#KB0pXBdW@dcEsMcd#yT%t?5~R8ak`!+i(lg;n#^ZHUq1*_X+DNM3*#@w$+_28qUFB{GKYrMwM^ z#cM+H1;mbzhvXMXTD<&nnd%+nJaswFPUE#gWDV)ed~Uo;iuO5|esFwPNWHcdLU%k^`N&ib@;NlF3#r$3Xu?{HkgRy*N{Xr1ra>}IVv704N9kX9gmI|3hB`<$39B;k>Wd@V~9W!(zN zjkmGv2e}7wV!VT84x|}!QapAQmDR2NT8OJ!wEdKLhL9fZNW`=v=G1r=OAh3K$#@SW zp2I?`fX+<78bI+pDgJxiXT}$@oP<<#5ADqOA{OB!@tcy3ZB;AiU zS|LxwYj2dPVvsK&t?_0l{xk8X;_X5jwZjneJz}1UCs$G`DZ5|~Umvd!B4?5)I^sh@dM4BRb?+ZaGR(5zCybOMNJd%IKd`?TA7@c#7ca(9 z8T@)CsWaG@d{O5ToxZ4ZiNE=x&Oly|N2;h@4caBBVK!>`W;`aOTCC4@9Hb{+AjQ8T z+Ym1iBHNyim<{o2DUoCGejObh-ikL!(OU5zj|GT%E1q%_m90cn8aBmapR()iTwG=S&c(hT|P9>k+d8`Ft1e zW9jCczmFH*B2#?^c?hNdU%XaGmG(1)X0{*VO)T02STh7MKg1K4Q7XKN3V9ha8gFGW zA#Xv(;>owl82Y#OPaxy*29`q+L$ZUNR3l?ffqVyv*qtm_KBzu5k9!CuQm-T`cb+74^n6dn3zMU;0?4HLI8bmYI06FH;Rk5##4~)OniSd^^>rQHxxHvpB3{ zJJT+$m6C#|1JfWWb{$J9a;CP=vTN^=QvPH)-LAe*O5%e!Kb(m9*RH%@%1j7-O>ma2 zKOn_nIon>#k_G8S&Wr3WA#!AX3^~Uh5+c`!{04HaJt8FZJ-(gLOgRU8T%kQ(ir@2v zb~=md`NeitNT}z}xAQ_m`_~0_p^%`Ti|l40%e2FG$A1B!J{Q^rtEu#Q?Rd1}cgV$d zDN7+_w>$A}hCRY^17s%TGCTH&Ow|BMhg@zCw~)xT)0z2|_DD$PBj!qb;8771c?PM9 zaqM1V53&5smtmHVA+d`oW`yNC$P(nU#2#b$6LOOfZH>&iIRjgH5yeDU_IL>Y{(~dz z5<7|I|`loMAeFX28GD&wF+{*ow$y2#+ORS=LtxKy``0;Udw=NfGo8O zo|L7Z0HHa&(k_%Da;81E(k=_4YVFLYDV1CWbObTAc9D=CO|8Fihh4&=Rv5m+ZV=L_U5cE4MXEdPu6Eh38zCuo z;hfgad_fA0gu@|Cb~npih?xhu-`>JPc&B-N1Bb}7g7 zLGFaK*fkvU3uGl^jh*`<<)O0eRdmdYJ_4BSGGPtg{D%G-`)(OsieqDN8>c z@-AYYw7Xv+3HG=)yH`l?pFwT5_Npi=qE^6Yvm-2O1&lU3iRE(SOe;=2V>>LhzGSmJ z>PrF3o4%B?^!rl7@`EocS$0~f%IaX5;Y%OOLB0&L9OsMnH`%Vsd`V`x*Ozpb4Zh^E z{L`00A#(4g@%)TkvYo8A%eRwf?P?*x%+_u!9 z!5$9@&2=x@$z9aaV6J<~E)WtNQ(m^qIYu2*Ubfc?3D)`VvfEg+RhS_$e!A=qDgM6P zWp510FNk@~-XtX0E8nmquTg!1eeez2VNv_w8+N7;x##XsH&N@hR|;v=rla)9kT>n2 zkR(BRZ2fhyO-0O1$OgNJ#X>3*ve6z7#dwgn?S*g1R1|X%Hm)+90JFQU>|h&SO~*xfSvc zJA0#yc?;4A8L&%OzJ@#s`NXbe`4iF(`P5z+k`0j0>~5CC)p+X_^0_@CBsd%V!X9Ix z_j`vC^M$RwMWqMh`3pNKB%_G=(k>Drw~khid!BZmkYJ^wuk9fgHPe1$r@Sq47GG}e zgjCeE*H|M?R~JO9V4XeU5W|X{-fQ+qT0UI zj=U#h)GAL~?K~mNB0K+tvoqwg)n3SQEZTLpkVPz~LM|3kEJWUargMoAyF$i@wwEDh z#I6m=jgX)0=8!Ch{L4;wpXwv?X@-p2=|Yx?twaBQ_={aGM7DH2Vt%o6Kajmqi2BUK z{4-`3vRnaq4%dwTu^U(_Ag?0T?{@4%N+o;sZO9*XhmfGh{%db!Q9bsjJs>1_=JKaK zBBV-dK+Yc^pFi!yzl-|#S2vn7on=B)uCbswDN;oL%);4)=440_EgeKYJ2<&Qf^oQm zQ^=xbq#c}67FENEPMr|huCI~LM5kX!Fsmmxo22-&dV-VCPj!}8e{}vl$(bG!n$>r7 z(n3PB`c6(>NN84{>=X+LX7!z&wL*efeHUjV$EaC-7iUa}+`GR+os*n|k3=7e{uzNx zb&^8z8)SEFWR0s*qDo=9SSkzhNNlpigI;%X%>0(i9oh@(%SaMMooo6m^Muf<%yc+dc z;5c6fTZgt_zLOOa+JdJ#`5~b#c!pCH654``oC+cGU1Ay=i=En#&=xFmT0%lw@KUEU zB#%Q%o$Mh|pU9c0Gi{4&oP3rGd?{qP+?P_8B@kM@^BSj`+~ACbaQm@f}TWmo-wNAN=5&yyW3*=6xi-q>4KOlEG{ohcXS73+t0KIU9w@y>cdE z?sJBv_|GQpcgBRseTU8^?sp>JQa(~%!LjmwCs~M`d-p{?4>*pHM$vW`@}QH+F|^%j zo33<{hbbRRyoDrk<@E{K@GDZk2oVN%OS@@9(BsTmoX1R9>h7@W6qEizs`?4 zN&iPNjoMR)DL|^nos}WE3exKI3fVj%rx^DVAWu2%TV#DYk?MvWaeeAUevoDLK$atB zy_3!IDa*4?ISb`ekC=96^hcR$m}8!Inzxb!efWaYA|yC(dBJH5#n5r*1*bD4_aWyF zr#B>zKwfgRks#+MA)SscCGrbOr~UnPC!1x`qxkLyF|RwhEW1Hye}CP{7ZMynUUv$l z_%p!kP6>bN*z?TLgn{r-*sm(MCz+nS)r5$Vm*zH;CzV@>pn(`#;Eg zPC-aUA$?BqFEXF9C-L0?}&~%1Nn!uaZKj31U00XPn>~} zP|T;!#@}Qssu7b38FZ3=7vhiS&z%M#a{L^Ln9rR~DUrL8inj7sPA^M~FM}-4`!dS% zfiH>URMxV{CSPJKze4Do?JFmZMV-Zcn{y>4yC5v5>olcg+k+YO;A+n{7A|^-M1@+lHfqG*li;;rR1YNB>#2l5~M7GJP-NP$)6;J&f-Wk zSKm~IgR?A$FZ$usb6g^*Dx;wmyCWYMmaD!4{Vc8i3_ex8PyWVfAT zsLs!#e`dPfEb7d2FBh3mK9k}oYbH|dl*0Quf&VU$h1ItU0b0MbN$ZZk_W#~kPuPp6oA?ODhw#ALV~Ebl?qoP=-5-F_ie+Sd^3=S+88 z#`s68L)^$7l#gu16Nov)O$o{KkVD;4DcXcR@eBxZxLe7xD}-`B!tG<333(54q?<59 z*3g4|4mrx*!m^pSMUFcvBpCDa+=M+Tm0VNh52Tu>dVb15$S1NOEXV(kTmYHa7>>CP zGG!aN`+s5{|DSwbh3vacsiRa;P>s{fHk|3@}Jwk`cDUv$yZ&69(6RU}i}H%|`Q z6-kj2w5yXPXxI3@GA3wOlP)D_SF#}`Xjg+pQm+l5rLJgcC(8)Se0LMej;Qk-#2n{N zkIPgpBo~tBW(nCmS@q8Xx0yxt&jNRxMfJ}Dx5<|EQT?;P9b!@av%qy6ijgDXOq8|2 z%@GoemIZE}kb3Rk7*Xem7$m{3XVQl=6SR$qxL2UY&!nGNPVwa%$bR{FO76=}dr3LN zm%Si!5ObCD`Glq1mqgt6`vUn~ z?@Ns3244F-KU~J_h>=P8tatlZ_J-U9dDg8yLdMKxX?HV^l(G=g zfSBjpJ|WArzd+7G4WDO(i>^q__fkbXB)NYILYH(N+>XQ|(B1^r7q zorecP|B*`bYQMWEl+XPl=bDhv8w($~O(7{g1?T;4OGwHg18(9ORKsNv^*`yKxzkzb znF~FM_{>dVnY6FG?*7b8W0?-2`%#~{87#UlIa0Jt$STzEGgmJVWoZjIX3$L+(lddC zVg}vJvt%Eh5BU>kdY`-FEM*XSWAh6)_iS0`S_s_-_|h$7Y4oLm<#AtzSzh;LjHTa~ z$Re5ZH@+mZ{NPKLkl@bSmu`*_c?Cr0#$UP%IY!+l8FFh_)HTtN+aUyNgMWhe6A!|D z8#n13DqY?UTZ`WK+SNnyG~^q%l4X*PD|*O3-MaH+s$>YI`qo_;5{emi6BkoVy%s~v zi;(Z#%=4vWLmt3L*y1j_K+16tx{v*X+r)AP%a3k1OA*UfS1*#OmOv=y5x1G8j^$r& zd$EjJ3waD>jk>)oh1lO|oBrGFW4Vsy7k7Z=ZU|k`|LSgGd4grk)h-b^`?JJ<+;$<$ zBFAFSeI51rkJ~9lTvxs;B>7TG72MbQ-E~;h_8ND4g~)9>h*aZl5Up) zZGD6K?BEp%sn@#E8~=hNcx4=O4N{#r1z&`DYgz7wjA3uu(Hm!>^B>y3CVSPF%baO_ zl7Hd;{LWs&6(q7MVI* zBE{=wF-VHL}4l zEW<1Zdoh+Bo{)9U^wL>UAaqCQ5HEveF3X`_CQCl#X7t!$UN+069Fyhcu-wFQxR=Xv zKZN@52(N(UX_h0sVj);b3_?Ah?Ui%PCmeIMSIsda9CM7f>sa`9Kn!^`*gDmQ<<3cZ`lIpWrJYW71`7HE`gfwcOW54(}kP?^`|)nPS9TNCCpgMn>eYl~4q{5Ytea&_CywSc8<%>$ET2MXBwX!{38~k1d{Q2p zuJIz(luGvM@yMsl)1^fI52+SHuJs(21f1ncNf*)>(IIDvm`ovZBoqqC6%rf^mUy*7 zf}UUEH3$iwdMxpVSkzOGCEhTLdg`&n8&RoHIz8hk_ae7YD^^5~@kM7j-;xwEi z;46}4UP~wy?K`)6Z6Wy!QZ4sVZWSXTQvVyiYK7eC#e`HvPD0MN2ubG{wJyzFUM9z= zb!qPMayUkg&b3WvS?4K_ez8W~(RfeSVYqJm`(H9L@5OmwCI`reemX^WKNOY#~8D4|~Nz>b1)_ z)k?2ryHu;Z*6mWQ^7^-nS?vvO7qi++sFf{Ui=3(FAMtX81np|^@??yErO@KF%b18d z?zDKFEC(%|AjU?Ew~>Xeh3Q|UANBfJXziotP}ZZ~Ad4ESYrIV?YOJpDMp)EXeastU zQDgNnFX0Z+hmm}gPGfbgm&me+>$BENW>No7{kW&IT+1Fa_R3k-Luk)^+N)-HiQ0u8Yx8PZ-s0Y9^ZJBr zo~&B&j5oldTJelGB%~_x8t43sw}oR=yViT7EUJIjd&zfEyEacyEnV+r2?=JB^6vlxMv`A#$uzyPowj>*RR85OdTZ`lsFB7V7`e0#PF~5H$`1QLC2+LhGT? z`-g$3wbues>#7B!RzC|wtx*<;`VaI#)R+%Mty&g{`d{)u)W4z!qSi4BMC}EEsQ+6J zMExszAhe<#{gZnj>fhA^$@~;|U&1{bx1on9-)(3q#asncs`8Q{IC)9YfP?@E3^|GeUDWTF52 z`&CH46hG%zy+Mu{$8&Sa`BiTdOBTiov2e^;h5Z zT3FQjtM7VkENbn?_q>fPYVF7OynYs%>!|JTdxI>rh9qsB_q|~jn*AuI&l_Q(wI3;_ z&l_i4#o2$EbB3KlEZ8qh`^+dubdq?G*XXS%3F3 zIY!N^{a!Z5sB?*aFOOr?O#6|ykYm*PkRN%49HZvmkG*1!$wXOH=a0QIj!`r1KfDT# zQRf@~@M<_l&DaB89mgEU`3!i?9HZv&PrMe6QEO3t;l*3maq~-T~QD z$RZY+!*$4KUJ=XLjR~43q?Cn@1#=*SUOCGu$dN*-Ssv%IKKGn^WLe!@*5_V2%a@Sj zk?IRCljSGKLLoUU6Q7cG{?aRB*#|;({?e;pxg786p9dN8>R8@F|6C%ZS;$wD4@N3F z&-}{kU^yK^>!p0<^|M^(%LvQEz9cqME54fiCWMafUwL^f!@ktA?EJJm4u0ho-78aN zKwcH4=Ql~Y1kx^~PDn7feC4$Zsn?niQ-)T2?TxdvLT-e7;}zZ~dextQHhIND>a`7s zsX@#puZ871$X$?sdaW$GwBhLhWV5%CWk1LxkZ-*KmXjdsAj94e%axE9Am4ezEDuAv zAm4i__fvi9wf7+(K>p85WBC&@0NLVYutwXt7ADEvKQoE-ddJ=NEGt3H!7r2n{_HyL5GZb6%WWdr$XjH z{_W*9OUZ;B0r|!2e@M#lkdq+)@e)@`IU8~|Z#hgf!b7VmXK5>gW$mHC*Eln3$rA~lQU5Xd=@9aGC$@*z(_c1o>WBU4=r`4SRI z?PRHh3_~WT_Osjr`4430)G?NIkjO*0f061uCiD3lWF{mrHJjxNhzFUHTEy}PWh3kf~-NG*~1_%v5b1wF}QZ zPsOTSxQ{e5)nR!uUp~p&E47m41H`;@3EmD(ZDZLCp*trjsog^AwTDqU#q5*X^n~bn zzgK6aCbfz_6s6O5nzK@MDdNjJ`jTtkR7Xga_`f!a**7&q2v(0lSu4>lJvCQIy|&Xr zDMo7KNl}*e5=#FBrJJdREIp7fAkox8mXnd{G2~;VWG8==|`%4@I1~= zZD#ovLbIQf+RC!ib8;4SQ#+;jE%j29o~E3GZ;HLtWFhi>iRVz3m#PcdJV9N{c&RZV z!AM9;O&21sPhUo=wA3OgVrBY3o)}(%YE35aPVf>*qOa7GhxtA=4PbSffn{@y>KC387Y!w^$~G zA(IIqTUr>}gfKLc5F5)|2;ax^x}MkT9G~y`^L~3?KVLu2>&NxFuG}`Ub^NqP4Pl$w zfqWKqCvFD{ghX?;0~JDQwL{Pw-y$D7fQIAOGg&>`aRSvcA8)U70`)OMPa&K@bBxea z2sf}w$Z&$nClu%tQmZZ95&s1!D-`fQM|GCZF2;n+7b5$aVh#^15K`%{MXCuQ*{fws z<0r|Z`|v;o%TtJ<X^X%=c#nOlR`fCBcIt`&imt8ZZG6`PY#2;51Hf1Zje_XCwr0&q369ho}3E# z6>_>K=dhgNNeHqTF=u%a525eP=X&xRYDjaGU?=%oJG~SC}6!n zIY*yEE)L8P65XbY1KBY#2clhz19>q*d(@IZL5v)RnBu^w6#tT)@SltRxh62i(hQ;f z=bAvq8Y;a(dmiE<)ir_nFOt-1n;}_{>jH5dGUivv>5v-&y+WeB`k%m@mt?A9Jn_g2 zVSHwwO-KZ9LhzrPJxMDM_+O@&h;|m_Rmd%YOd-QQwJmN9)Nss7#9V-~ZVPmCjM_SP z1oT&AKF=ZM3dB?giiP02KkOT{kKGg4#-g^@@<4AVr5g6B?NuMhdQH~(IOOv*>eCRI z|GJD(TkyYu8C|lhA;j!`Jid7hbO;&tscrgjpzsZuN^R3e0;59kZ4OeEqJ}MjinTHy zdPYP~zaI}YvTQ<36=EI_Xx$W3t1W=^qCQUqQdq8Jc`A_4atmY=VxA66uhdXRby}MwGe81XP{n)+~+StS)G9aDgGZ&I_;TVfkBzd zza2tXGF^dDj!7(*&xqa#jIm6IP|Og7elw8TOQlDzqj~~4LTa^V zk%~rI_5|`-I$72Skc3jjPn*ElaMZ9jut3D%xiQOIfkq+Gv&7qhW+8PNow46S&%Yh$ zWqAuZe*$?gkolI_g5E!VU!Yt_o%R`GzClc1pp9h&GN~EgMF#Y@DHX0{AX6dzfh?8@ zN`+BF9|m$+64qc`3SvGA)W0Lj(vlz+J%ZHG!AY*}~_hqUf$S7nykjC;JN*{y#5olrg2$JwHMx6x)VHDU{+vR2 zobIG+n<$@%-$V=@gFESoLMr_iag1M2=9p}b@#|?aMqHC5BUOT4CPcoqUx2c9(L01h zkETSOjuSdkUMj&`;^T1t16+Z8rs&%^XB9I=4}Cy&9`>nxlJsgJ zb(&f?d3U`@Nc4!Cs<#P={x45erB6N&?YatOMdfk`J(G#bjSz8<=B2s~a(!$n(XQpQ zV^YO0i;vUpha~Hr|EE6F^u8GR8}}g7^ie5V9df2#ovu%?oN>HQy9s5b=$ZZ0_DXF9 zVyYpjdd){-3u{}+(M z5R;{63{lSA+RqRgJ(8v8v1l(zIaV(h647>rSV(o8UM(bg>}2cpLZaIuTW=Q9AXZ?X zfmGT02n(&iehlPzz2+O)uKkenNstru4c|$5^G2MbASdho@1+C~GY@jAp2{*4axvs| zJ;X8x(ue=ATs?;+4??4h&+v}Qiy%j#rDu9l^8d+Q|DXK#|C6Wwk91E~@3zj=3q?^6C>h$){b3RG!2iQsC2W5YjDD$(}EVr z4nqG0=j$Pkp?myxLR^5Mm9k%*2jd%5%rrP3-qR+Mtha6doS0Mg>-9$E%@I?s>}7%m>Ak# zSLl`${~gGA(jyp6r)Npg?t>%mEY^F4EYn_u>;YM#w{N4;>$E<|{*Yq5 z_-EO!t&l^6Wc(r};T7EdL9W(Igw$yyvmhmUXuFKr2l6dySgIGW*pO2YbA#S2q)sC_ z8}c80#;=r0p64%sl<7r6YPC6tSs->f%tOl~`R3;C4m zoh(gAb*+#=A+q#aAQ9dFKdMhOpNL*AB%-w;RTW}x(KCOenCRC!75W?&_0>;>p39=X z@u|@Bg~+m&BcBSrT!<{IQAkaU(Es4AdUK4dK+J8rHZE%DUx)h8oy#41Cd)=o8d<)B z(7ntZdIyWIQ>MC8*M67z>;|EjJM}anScM!y{{_|FnMAEIcb6x$YCPQ&Mdc9AIV!XN zKWV*5mL82!E8Iop9Hd%>mUz9?$QfHyP|9U z-lG=_8BS2|m+#R_xi{4N<$LrBj!~mxYV>N3QRB60^hSr2YtUjhhx+`===3Nj#2NR|EtgE81)YNzj`6ZsCUp0=*1kP z-a$X0mvM}Gzucr(aEyAt+@#lVjC#NPpx($a>izPAdJD&>F$@pstAs?yFg&DpaEv-G zR_L89>bO{;ceAMDVuijzNTvUhJLOTiLLcB5b)+=wgB+vQf^61DIYzx(e^?*m81-)b zVO{%Ep0(7NrIos0NTpbXvkS-9N$ zo{)&Y`b>NSj#Mprfsh`bI&vS?>t!mRI=UZK=N50gUsTkwtfV`BDUNPBCp^xny5sNU z^Ty+PlgPP3y!Sjio?-?jsO|S^#^v(N)~e_HMG_rf_k^A&q*i+r`Fw?(pU~$Ek>_W+ zN_kS>79(_Sc}mawTO2#$>T4@fJ*{^OktjNCG<6n%dMHP!YtdIyVY`x-r6OBC%={k%r+6%x@lqAa?)SfkJI zQA|V|^rR?`q}#V0LRUm<^b#QrTEeUNmK<$gqi4obOs$p-NkpC3=s7GQ$W+LSdLBz2 zBo)%3&u6&`LRSSZ>4j3f>z|kPHX*W~>2CC8y(>njpF8!;9jSB~a}aWVO&=2y?XfrX zoSi79M^ioahQ66a^~O5A)Gu1<_2D|bo<;THIz1_YVj|jM7}G@~AJ*xaEO(<7bk)61 z&tsuprG2AY9~FZA2Qe0E_@+L=vKDd_q(_h2S?2sDBnPry&t&-pau%dl&k<6q?fx3d zg1n{A=NJdF2=cbx$Z{rx-e|m|_X&~xLtA-+J`f{R!wvdSjO?so&T1Xa#II+v8d3JX zC)KC>wChk-RGJ}W|B@fEo(o-p^r=+wiF16~YyXnPsNpiCipG?(Y}B`j`b7ViH>rHQ z`apI`L=7v&>W6nApG|r)3$0I7BP318aDuAy2YLpJs`CdbXRn6+N+zpT^y}FoRgX{A zxnIv=QFZ=MrHZE&_wGaKA9+%VcCCO6cyd)8)@Fiys^^J(qGyuN^aU|OZ)!H{y|OI7 z+7_Sd11zeBpX-~2Ec4UaC?74w6Ha|p#%QYNKi4N%R4YE$6B83@D{HD1U+AeqhJC6P zU+M@#%&)k?nympP~ z{Vb|oBl>_8P1SisPoDDcI)A6n7ZR=W_j)yps`IGc%A)H0litVqsQ%fij|-{QmScOZ zM-8{?{v;|ZqCL!8@MpbPNUhe+G28Wej#&qxZThQ@B>45je+YRW^1pw{0A$>gN<3Bj z3i78XPebT9{mYY6;^a2Hd$6BHT^sKn+$>Xh&jEH1 zPRJM^jUG7_Iqx3K*e#KI%v)JwYH$vV`l@bfut10`JrAj-1{;Me^E;>^?eo)u%`9^~ zX_fhS``EN#hZOI)m=^5i7`4|;3l0d0?orc%iMvw`qesCWL5oH0QF{i9SX8g>6>Jw0 zJ-YV^_QuEsXvMz42_eyc{Ip=)R4OatFF-5k*hvc}30dZ+HH-?8YX4vg%aw>(A|zc% z^k_OD7-CWFIv_Yhir4l7g6%@0?K&Vh!lK%h9&AaLZCB@ngMuSMF#8$qw&+MXBsjrR zj{01S`WzZeoF-bKEr*mt4hyESv_S5J1cD(U(QoMVV5X4hH*|Wif<=8prw6N9)Hif` zu%2c67|xg2GlRiZEYp5f(#;a`WHU>yCu1zdo+M7ER@C|L@+6&QyC<0}Q~#&R%44xS zDPlRGNcWWxFR6EK`3|^-11Cw!-#AXUXv-o8<#f=Cl0j zNeN5xxXQVj#qy+uz*0(?@6W0J(Iq`$_!=;kt@{Gj3q|} zbA-qdT$J-s!F-NcgFT$CmX8h=aLii}y4E^6SR`Y#&5*C~7V4N_zmQt(cL>e5d`vKB zFDhL=QEWyHvx2KwXnxwqA;$(gS!jNBlG(uxLU4W9g>SAQ#|Mk|miZhAp?u~9tA*5R zYPRQ-g1tiI*UG1);CXm3Ih9gL=|rkif=xo?{MhRtIl)dAnjf3wv|uj_&5uoz8ysb! z`LRjP494vv>f@*Ru}SiR=`1uqHp$#zrjY3USAH;CNG0y-WUuB26Ze%hq<@fikt#o! zCnWkNeO|DFMSTNxZm?TO^bNwf!4Zy`f&S@7KIaA}SWbj|4w)a+_oK4pUPu4S7Y0L8 z{AVF%1Thx|i&-vXDG08LNkw-q7X|e+k&pLJbV)EIMXV_~hI}pwRtbq{w9ex{kiww8 zKc%YGXjR84kKs9OuuMoL*3ZC`6KoL`iG6m$Cu%)5OR*nD9deLs#caNPhMlW-IF60%6#td z#4Lxr`Y)kWU7mC!hElEjm(Uhm|1Y6b?|71a9>$?f?4Z5pNx=?syy*L$JPElUsiN{K zqy^IF#cYB+1=$$fAkF~t3`uV*HU$S_WHn+w2oA+a7v#g>gb?`;`w3(qIR9We+YI|u zeKrS+GvxVaGTzbuj+o8CvO}dD3DF+MeQvPoFexwKE{Wue;8;M)XXqc2FN5_u$*@ng zYcN=5lhkVCh}i`(TY~*UhJC7~Uj^eFnM$?v>tME!i1r@JNm+ zG6p#m@@;T|E6dttt&I6TSj3VJITA5H1WQM!tzUSfMq-9vpqP(GI<@=Nj% z?S4Z$oJx=Q)t97xBT-0ne0YM9%rW#S^{DBu|NBxhHnkYmDVMG?jo>}r&7Og5w+`Ajj&IOaUar$SI+{CeWAhHQZ(8C4=C z`c!S2Q6D2GVvPMXqf1CnLIqOMzvpzLmt_Tn{ynD~{W6s|GJg+avykqDmpRoQ#vn_d zCqpb-JsDxy@l9FQ9>%DUO20bu?_rFws5Ac_hIRyPiwge%Nc9Wam16jXMEpU>xR7Ka z-3c=|=RJ)SA(dKis_f@Ijjk%Q$2vWzSrFQihlQNt4v zqjUfC#GeMqg9JS(fLsJIj1ieiyiZvIF%2z~T3YEHO}60|67j2}$u^QXX8ob~uS6=x zNadI%$a$%d3?b1w4%et+Q8OyI#yE?*n+O?mjuNGd`rL|qLPmiU{|(5w8WJ`Ng+%;! zLMSF|lyD4vg-tPs8)Yo?6*k2jZd9?{gu6pJOB`X;uv9^4&pg6t5)!TR4Ao#+ci?x@h)x6>fAyqI4QLo4?k?aA#$@~y`)p1cjA``j!~ zK7=esyN>l_DTLll%=TmpOSUI8+At9@$Nx(nLOv&Y@+romQ_d%O@*w(|N7KlZR8Jx2Tu;`soZ-nPmNSiUu`Qw_8_zPdqiNreBRW&KGtZd8qPEVtMkb5e zI_DW#ENbh_H?mpO*15o#!=kp%g+>mG+ByYBZj8{@x!A~KQCnw$kYr#~5Rwy@gWUWN63ARBHcOYE-b${?mc7%8i;B zq2v7)!#Yl;QhU^`MjMOTI+eztkYS(NI=2}~vnkcEPi>tlBTGn+Pwi2+8+j~hkGjJs zWKny7ylj^$Y-U|!Ll(qPBVmbO7Vq}DkP*oMvj9#Vpu22UQNmI zX{SJ1j8!p`2YJ-!5E9XjMLy?29y5~Xh*oI%kOe|ASuTf^Kpr>RSxO+cLRyV&EL5Kc z$P-5ENirYfLZ4PR31cdZULm#GEr@v-F{_Mm7OG(zP1LDV%8XGLTa^s$k&h;4U1z&A=@DxMv;){JC~P?5+RlTxL$cp z`;t+{axjFhpI7L#s{!QP zYh>n%vb1|q!{Z@u8>K>qed-qh3gZcFYYpgCd_#jp{s#kw@k2kk5^JmJXC& z1Np*eVxd{E?t^@3w6Js|rWrD5w6pX<9*1l(x>+_u+96*V8(2mlRMyub&w%r zGmHN%c|HG)F~YJp%dj!V5`t_*s&5VJY}tz05W40cF=nuw4WX}WzB95|7DB#2s_%_l zmTMtDLVhsvg$#S=u~DNyNTs$6F@Gaw)F_rQ-kI$uqfy3)eT<%dZ#CLtgwDNNjm{XM zYshUze~i#u&R>kd7}*i)pN$zgbE#d?W9K(xzK}}qE$45>0v7d_^EacIQ>mk1+$a$e zeSbP`lnIHxKOHx!WGe3{_}yq>QR51JH=558_3_3+{9)wf3-Lxi{AsLWQG4cJ#vqG2 zcK$ZDu{?TioVFWUs+oP~Qa;Nx8jY|IWCyeHJSmiq1&KGc`BG>!LN;V4b4HAu582sl z5)#qIj>4KRkX_8s`7+hIlW`29=O>%f8X?-5d}S(c$k@*u;TW}b(oFp#N;T|L<0TF-tA$i*NqEagd-y?Svyh0k!`pI% z?LlVR#i9>2)rSY0R*X>p9Aah(snd2rDtd!?s96vrUnAyFvsXw&OF_(Ukbv2AiRe{t z%v;dxm7?v37;1aa+$==iP3*9WWJpN#jw5J}3W*-wL32!scPt0ZaUszwVZ)4DK&8w7 z3qNu;%sEoLxz0jnu8@ddjeicA^EpP1@d%p>I7W?s4x7as6GSUgkn`bYDa&lgzCtQk z)T|3fnAMyQ&Hh2pC5|u~IVR~8`F}dYZ04AG$cO$yM#pF z4<2cbu&6uwS*CR<^+xobdY0KKM1C`J5b8Y392X*cjLv?UX7XjxKBN(eN116cq9fHY zX0H%D^F)2ZkmJk=mWLrUqJFlSzEI?&eT#2GGZB+*S}}5hkbIUGk&4Ec9dA~!tYbOR zY-f2NLZfs}GP`2r4CHf)xgkbqjL>Q37|Q@sor{<=O}$Xm$A8V`@~!J!GfPNBqns~8 z%v>`!My`dNXI3wwRJGc6#M}zG$gH@WB%=KVc@FhiU^ZVNg<7#3F_)T|MN;0_1+)D? z3eC91GM``P`NXlj$V_9|`5nB8K+NT4h-Gic^N=gdJQf|&2Pra3SdM~x16gcVu$%^& zfGjZ^SuTd`g0)?*G}~FOgB%PgHaD}}0htN8${b~R2$BQ2+MEzl>0b@G2y%@Xw}e_z z>F}j=5b69a=sBU*PBH# zvJ6scmc^u^@9}Rmt2t)g5t>$wnE#laF;WjHGdBns_Wf2M&xbden}tNr8#kH$E9KVt z1f|m$;G4`uA$8g@JIizLO=cF$sVqy)Vj&IMc`P@ZZ89J4>{o8~${7DJa^4T`vdhgr zmT^x8Sf*}JF{Q;+p9U=hLiH&(%Y{ViTy8dU%*nGc?&4y~d4T0Oq@w?eh?#kn%!h>L zpt!|sXQ{av|9a@33KIq4*E2aEF|Cl>JXyk0<%t?0aJwgJguoqU=G9`~5ZkmJ`P^yd zNYQRXKCeNl&32Z1AoSmKm)R{OdOvuVxj{(ue()}{U#1c{)67D5nS(KMrFu z--n#(NnnksT|@PW_#cJPnXSf56jJGb9ztLA)SAg0vmQb@*P3ZEMwIm?>b%^nh>>?8 z_2z&~C1O5?G??Q;qOG{!oL@qvM_X~fxj@LUcUODASOa4zjE4{s?<32n+z_^R3e1@K<_cBrW4MP8e zp2SamS3X~TMCB8IC`*fy$+Tzwh8jNV3GJCAk9l$=QcZdWck7wN6)}By@Xok@H@69iXg4EO6`lh;XC_@QwoZcT zpVej>i)z4Y*w+T{^>L~u&Dld)!fXYw&`o;1dH0HubZhiP+1Y} zany&7nXg4H?xp+W_6jA z{ULOQeADa|646WuwY|q2;FyyjON9)w%!j;l2}UEB<19Bq?nF$lsox}XZiF;J-ZG0> z)<9l?ylvL7^h5d}@0gt|zd$JG4Q4+}()(C-t`J`?n4>HPgks(^~GsIE@(VoSq1~ZdoHK*ES=CSlcsH_jnA}QYgSHHJE{|_;{A)lzk_2Ehw@}U<) z`^Nr|k33Q5pO60~bp9FeL_G=o#FHt=*+f2{m~Emy^87PXNOz3PhJ0qm-AuhP>{B)T z!VIyf8h&Z!3F-0ejhs(MszGxB$EX@^F`Ht9YWS7e&!XD(wV7Hj%ThHQGIbW!iXk&o zNJKjnWzqA)A+vzRg5;z0A+uOW^i2DWS05?WT(AD%$?SGKwZ+x)s3*&iisUCx8X@%W zxy_TOSbjEBZ;952{;hs7XGrmPA%@QC+s#}d(Hd?y2U*@nOf_maX67uTe7d#IApeE@ zYBmdztA~Gm7e->33o0lkqJ57Tx^fsdtA#XZe?T5Vs&R7zOTtEcR}1;wjJuUm;X7Z* z!;>*rjF}=NdcX6hX~oF%NHt+*#z+_BAG1t~{}|-c2bpA52#G$uoMcrA8TP3jn`G6q zs2+>6npsrO$6K3aKAO6t-^nVhq&oMArz`Z8O@g&SNTrsK(&-Lp7i)xL)VCg!t#Kh0 z+Es}82sNB+rQRmTMJm!*D{Hu)id872+o$%H-K-`d>vm92V0O2% zZl_cc?Z4Qg=vnSmYrc?WS~*Im@5rWF8F$DSy0@bJXR1}rLU&0d$<~;VTCEPL22tl} zmUX90MR!|2LZ(}tEb4A6#pF;5^B-CONxt-4Ff%MkizZ7*vZOD}}RhV5<5xLd{y zu%uceEb58SK33{IGUj*0(EHr|tRf-!2ib&c3DhUeD&`ovYtz~=^1-U+7`jKB0y)5{ zXE_k5_Jtg1wXz%m2}07X4wh3OM?wy=dRZ=noCrDC>SMVEB1S$~11t|f<{~D;8Wa*8 z3vsA5B1G=t=OgA&E31auRq1`Pa+ozoNOb0k!>l}xp|29?KQ~|%vd~uvw7mjW3ClW^ zPBFSw#`$~%p%~q&;+XF^CTP`g%%l%wOwelLm|=_&qI?Xig=2n&P(Fs$#xeUK6~&lV zAB)cUnAT>NSr8h*ZdpT|&zTS!!ERaGIA#&&V_V}Kb0gAmR5`WzVBPgtq<&<;uJRh>gg~*Zc3$S%UR(?IjG-#h8 zpT&@{RVYM0r73|NZuJSN)kYEXiiPnK*0_-9^Pibk#=WvE_59~Zt5is>_8U_D2l*Un zRSA*%20h!EWo?$C1@Vsc7Q`H7&A3nWhUV|bC<4gQR!SpDt+pTJv1~m5vF5M@A#_}1 zSye(Xw;|rc(o>ORtyYdX5ixfmpX03D`(-}oK^}t4whDzrwCf;GAyu|j#WA;$AST-y zWNCrC06D?h#_}4Z2Xdk{&N2Y`7&6Dw{wvDzu4GQK(u6cT%IVAaIPRLE&o?*pt3^nib_JvuGT#~$BKKap2Drc)lc~I|e1WAsMENvmxAx%6=_@e1j+Ms} zsKx(D@g%K4^>ch_A+DN`^TnQ2LT-gzYITZK!#)+W$eLhLF-2D93M#8kE5n?G_aRlW zRVJiC$itAUtx+MhS}9tw3UaMA^f0B0wxZM;jgi-u;7OM?A*9DE{RS&%C8g@|snW}= z#79W*6*lVp0&*_5bRiM#R+RM%^0`H|YjOjG&Y~5bv_R-g8XDPHztE_Ax^6d8p z+EryWve23B9mpM4vykZ1usc;*lV4pa*8+&j#z$qHqw*Vs)(eQrkQcK`J zQYU7M+Jw^Yw6@6@Z8BOhAVhDWZLv&y7w=rYhumWov0RU#SlS@?FVxA?2J;J+2maSdAxCR@?u{r@`7BlTRXI z8mw(X8nm~|F+&=p(TaPF>LcY4$b;4(%PsTdQ~gIQ?Qt1X2l)cqtHsI}60P&2RuRYS z|Bqaq?NO_m#bkNRN^X_;WU)MM<+Gg5(rQ%+iRS!-RWD>XK|QN{!s=sD&nlm^5}y#g znxLLlK4r~eQO_z@SrtO$F-Xs3p0@l?%2et|dB#d&QAf%%R;rMm1a+i5Yo)V%fMbX9 zdDgO6)UnfM%@9)Q4`92~G1z8hu^bMeW3bK2VL6s#p0n~;&fu8mtO6m!3F;VJZ56Vp zV{o-q!l`b_m-7`oZ--yl8C}GVD{wdxzDwN~Zb%G4#asC99j|TTb<| zH6TQeb2tw5dBxhy@+V^Go2*x@K~A;P$M~86F|S+xrzz*?HhtYniIH5ybXk^=9&g^l zwN{oCzuKm2ty~th1=m{nLYDdWL|Nw|pS4z}kcdXJ=g~G@YxN6x(|4E`qdg;AdIY3E zq$(29pq&6&1X*Ww3Xyew2cx0hw1#5j8pQNisn15+RRQU>GKI*wIv+a>&zh`kmP?Q` z<@2_c$FhXw9cuwg8RQ=1v%xB1xr^mptAeGOI3O-S_W;!CR|M(E4mFRf7_!wKrYa?l!+ zG5$RUa4mtDK}&mH^mBsx_uOLng;e?vMhu-vwphs=qyA67vQjx_Cg<~&mBBIUANFg@ z;+Q#{&(~I_kmy~~khP$lO2@a!Kj5kyEgiCoghc%3Ar+l%hOAN=x!=vrdf zY8Dc`iW|08v8d~)@2n0XwOTE%quNo{kLp??ehSMx@h?Q%X>a+% zs^J**-OZm?Bgd#O1^%>JI7WT7I$^Ei81>cagw-KrI6-~y`Ij}uqQ3Y1+p=Did&0-4 z4}DSik5$B?z8lr-Ru=WWr_UZ@QQv#+V5fD+eAIWNlkE8{>buc6yHSYju}{$(@pfB` zd zT#ufoFO`z)DvnX#)$V53aEuz$wVU00*!?sglC8f(3~-N~Z944P_pv#2kFrrLch z>YLDHdw@lK6Pj!f390m}@0+ICqb%zCrfK%L6pg;LrTu5R9rrTzSfvnpqPT~hB&5ej zG4u`Qo_2PO&=;5c*m**RMGSqPn`SQ%QX%sB2iqdu?h}F$L3oax_&lCI*@drASrtO2 zLjrbIr<6Oth*y*oRJ`wE$mMptk zNVo4x$U(^GSi6;Fl;t?PgXIsF*>*q6j-SX>+4eS;X)MRvS{Ieo?K_a=1UpqoM6)3} z$~w`WBcxKJFQe&8+c|cgkYOJQeMNhU-5Mj*8>ib7LY9eCVdQg`-TMZWB~ww`&#@EN ziXQVHi?Znd^jtfcB@aUX1?SpnLTa^zkZk00o}D3M#QFIY$b369M)DvR+7&U9d^u(e zuoTux5fya)eG%*A@UB0N-wnab)wGRESHPykdR7ml-D9Vi(}L%ugmQ@9HT~g zU2f-bjGE>03VS}ss97$runSpemdnan7?Wcc3yJt?mdgNIQDm2K49#*$F^laAj-gpD zDQ2-~%NTC7chfkXRz5obyqu+}>zcam;a_;^_-w zZnWz;p94^zYRG@=CXOjVeeM&|$}zOE;UkbTyNzRLWy5ELbP5?xQ1eXQWOs9nnrHGR zyH7}T)xxFr0E=3+aH&1Was!S^x=&eZkFo6hERJP716gWMuq=Yms)bAKxHsh%RC9hV zwG)L@dh3=hwNqq_Pp$BKv%RW^Qq^jY%$4Is%WZwVlxHC?qh00p0+x3n??G;{H?aK3 zvdkW1`3LeTVk+#^UYXBs=g3sI+Sx+twENMnZxB;yXT3!+b=pCQ*$%0)OWr1lh`BN8 zOmc_aE2I)Dz-d}M-hJL>XKtXFO6^#rN`%~PHw%eqr$bU8HFnCoGN1DyX^`c1{(DmB zizg!v&tz=>`y{nm8|p)&AMdk^r1-laMOk>dVpnm@$Dd<#E%Ir!Q~PA9hmdm!@_=2= zvJp~;d>*nluzUtN1~Dt_?2R(jFOU-;&2|aPM<|Ql6FqE~v220RSF|hb36`BcmGX$4 zze(m3WNERhSdNF#I**Uq9W3WVsPxC|ewJ%F)#G;72Qr^~AXIv*J%?o#%M*4k%Uhi4 zNxPI~6hi+OPuW#0Q$E9cG^}j6%C2E?Ahf3B({>}vagb9{pJ(i5mORK@$g}n;mdhYC zduN+H%5oj#Qp7xGkFneVp>ZIq?Fk_bTJUdNQR12B^LBPWwW~p!0XYP+#x7+!1wy0g zUb35o)M|?%S%`VXF8+{G)oF#;Iz=d})9w_~pxuO+r+s(|VQU}B9(w?#--wvCcGbr+ zRUPNtV~?`jgnUlMbL?KbbwI{EiI}-4YlEHmiIh$V?RD?jsVwiZyl)o^sntGb>9fmO zUP9@&qx6k-HOq&P8ptNQk>z)m59}5p(R-PGyF-fq9-PPSL#lqei)G)?eQ3S5@TRKvEx3awpWT&OA+&#T_~hM zYrA`rwi-EqVVA~8CuGnLeMYHjHCiEYB~pEDmkW_&Q{O_&knR7RVx(+>d}FtKAyWm= zE?O&L*xt-?9ON^^d}}9tDP!hBMj#{h0+xl4Um@Sw9V} bUkbVtb6`9!N6e2Yb$- z%;yQn<7Z-QhF!?gg*vZBoqx1jSw4om4B2YW*&qPSootpT&_7gXzmv=IKa@^S%o3b@mYtD`p2{XT3#5pv zcPf2nr#MFF3-n!_vKW~@17l8{su-!jwn%bPMyT!bZ4S+@lkChF5`A+$&8cQlb7M|- zRp_cz_i5E7lebGl;*iQWZFcQRS%E`Y9x_HeRU z=q`X-x`&g?`KY^q6epi!)LlS|vw(%}0w|w7ogx;sminGfDT`W5eJ`h+MXja2ms2ey zdKa*_Q_nH#E?{q`nPb#lK&sQqG3qWL)oJG#br-OY)5$UFE?^(0mtzvk@lTC^kbRv# zj@i9IzQ5Sl+060=_7;lS&lzI*7((wj_H(we{0O18r#a&+e?zDb)12(@rcbs4E{~(U01a)t9n3E(V zdT(`@lgcsb-YVdvbBwyT3OE+WsCz5jnZYsY-b#0}IYzAx5Oi`lMy(DIbn;nf1zXw^ z45xr46+(N0;S{lqEtN5*Q^Il=`k7)(r<`R2wld{oIaMqVa*XBF3mHyOYYNy-6UVGU z44v6*rbMW0?6OMwzon)4L$Vwq;EPo@PCm=^S87z~( zjKjK#Bq5em$QsBDCzmA%=@c?w$d-hoA@tm4rn7)Wt#m)rX<~T)IkXmg3 zvK^^rJ37nHkoYwi*W}c*>^z9Cejvv?Ei4B@OvniiDuZ87{Cy|MZ(UFHB=tlobN(gt z<>pDA&}_!^h3qN+5{k)jIz(Br6|_H}=Jdu0eYJYJ(;p-B9dxcU6eGu?hG#m7zfjwI ze5!_dP6msr;n_|mi>l9DCpRXB>T`}$7864<&uJGjoSG9G0khG6o>Ey%+J+Uu#@?(UaNMG&L#0WiqzRpSg zjcOQur*MPQEhPF*;XlsUIK@EyGh(NH~384Hc!q*WN!JH0|G{U@L-x&m46^a+X1Zn54OVo@_!tarwRM7(R8^-fVD z)o__#UE8d8N`*wU`N+8#?do;fSZJ-xQpnrR5DSe6Du--vw8@lDbk>)5on#@=xmn(I zQg;=-;jQ%1=ZsB}qE^k=DMH(i!gHjrodrUMeM=#?p`}AkHOJfo zsfB#&)Uz}}8X+T26U);q-#M#TUW2Sa%=b>0kV^lLAIniOKRA6-w7(&A=kkLy%Cggd z9HThur0hv`j$YgR=;%VC``C|8A&c6_esWq^)IPS=8DvrW*fuA1FOjqVebkVymVb8A zg+%{vp2dfoLv@#;+&-ImDa=@wr2? zbn%>IJ?b;boe(0Qczg+ocN0^o&ci->n(-ZECpT3{bR3A^?Uo|Od2U0D-_`b^RJGbM zsNo-wo!tzU90kiJ<$}mNs2~evFQ4Fio1bj9_mB?7fJ3IOCif{ZtA{byK5y7`j6Y)En-;)p?s#g ztt@x3B)dZ_Y9!b+cS6V(-@S;Tb(f~OsrymRTYN7=sPt)WI?ER<(_Nh<{u?>#<{oao z5X_qj@pWL17q>|WW}AoX0@=$Q6cSx6CDq-=qRu4yx_X-2rs_Ra}dRJ zYiiXn!>wmgtFsyIW+4$Rf_yGSK8BlpFr|uU4Uk1bHnY$=Vymv8nAAfkrdE3lG1nl* zbjyT9v~>{i9Kh{j>GvcqgHqLLGtZ6F%8<%(=d*l|7@GOkahrtHYQI7%5aYTnLL%DK zVSJ4O3AybYV?$`Ywy@j9ayo?GnjP-;v0MSEN2(*-0hZe!4?%Zxh+D56Yjf8&SiR(yGlsJfAcc=mBdkQ2gh8>PaThT zyEx{Je0df<+TFl0Y8IMf+{OIx~D$I^&ducj*h`Q#!V6;TS0X` z#!VFx{jMa-)&EbbEVo98+z;PCsw}rXCZ7)=C%BtqWCU`mTOOd&m-#oMhV-Q3Y`2Q# z8wfqyIoqvgQKL}ix=k!<6v|w;RYn5|P`?z!6 zG$9rK-_dsMC5)xPr)88+x6l7A&QU^&rD$s2=J{?%P?V)LV7ZNC#GLOo8d8#xYJW(9 z+sbkf#DHAnR@)+HZ^q+G-E>Ean(_EDw}nN`c)ZXJxfC<(JFQ2~Z(Qhh3#rsdPDIX& z+~lw?R&gF}2!hkY$i!H<_gnLbJnN<)*TfvRv(^3yEk| zkb0!L#%5`<=%yUy)oc?7{O;5V=49 zfS4QHF(LA}&|aRTmAm>8)QU>Ke+2I)kgCcJv7|z14&*8~OGvk-w&3kYA9QA67s2cGlj?= z%ZJ?W4ho4Ll`Gs4AZojXCpbp6qS^HyDSJa5l@GhgENV{ghust*(R0hg zZW@a^w><3XoJ#fKN;g|bL>z;cqs}Yc9F}v@Ki3M$7gFgzf4=&PUCD|EOCpq}w~*A9F`o)V6rs&6p*6 z!#kFra5Gud7JSmpk>aaE=@GQzDYuA+NX#gha1|Uv-OE)OGKxZV8LJHh$GDV^LSaues$yB7Qon zuSU+Vxm7Imbgn~4JZI`LE#yWY8{krSV zqE-xh>vF#ChFH`$`(17ci@Fwl!);_y*P`p(0Twl@K({+0q*A*Z^`TLeJ#ON$vMe?0 zZ;u;dQFpcL-Rc;jyV|$hq?y(>xN}(4lbk-cSV%-$iLzct|7>*2S!gb}9>^xQ zlZEDf+z9!=9TQTktwE|!A^mRhY$~f(TMwa`6+d*-SUzX@$kkcKAX|{?V>iSy^?RAm zfIEl9fl$mRZmy69?F`8GkWbwOEEhwltk2w4EGObR^Jm0tb_=qpJ`Gy^5_x_2xm(V1 z1yYS8<_ou(h32D9dNc|c0->i6Kf7%#e?!hk%r9=YkUDMWAEaz|Gv>&A_JAxw%$U1?A0HZLSq1qAsdfy-og!0pa;lv|i7Z19I*<87$t>fL9Xl~cM<|;maa3Mi z>>SErNrTY#+9j07awKFLQYD58q&=v^QcVhx%FQSUwoCTWBOkEXdT* zSd7eoObcb@$R0ZZWzB}9gz{MEym2NZHB=BI^CA0&N@8RYWdBfAjFdtS4vn5FbEbUm zfasz0)1;h@vYH@HD2Ij4NY6k*p>iR0+Qo<=IXu*Py6k64)d`sq8Wqx@k$eZ46{^UM zmNfy%3N^A^kChg*ywF69ltL~D%{Y_Fs?+X9=_Ct6y+Sb4ETkH8c_`;BSs!|$xB{{`)X36;7?Nv3 zeR&j9t33}{2e~1Xbhb=IPaQWx{u7!Zq*mL2m`@>Pp=Opr$X3YBp}rW|=`~!7hBD{M zoW~He4=-g5hYGc{TF}0x%mfe5C zn=F*RJhYAFFvvBKx{x+cw&FOJ`cM+fxe#jCy`dDAt09$0)ey2+?tm2mCYJ9ZhalBkp;asskQtD-Lme!;ZpED@ zWJ9QzB@MC=@@}Y4h@4&dM#y`i0U?!s2QlSBMp@=S?iMmGq{o}-=>1Sm0o7SvL((-; zUnoyV^f_%`s7i`>PWvG8=?m2ek@q{4YGbHTNP|C!_bI>oaQzb+WT7`K{|FgjQEUEg z3~gh%05zofmN$j`7l|$CU+PI3OZj{iGlOOE3MIKLE4);NEU$S|&hp+xDpe!PSDv)7 zeBq_)W%=8S8DvSmSmiU$67nSJV%druPcm38_auwu0Z;N-x;-go+3HCZ%K?|D(wkY% z^rVC3L9fU9SpM+ZHKOv_rt;A)k#&C6OO?WMlow;Mlxix~9G1CWOaaTao|LlGc~Zl& z%9B=>H$3TL`NWd}mQTHwZevOMS=GnCK(->?lQfnuymrlC$@XG$SuXLUkmVXr%2`^y zwl}i;>gC+VvfNA6%kq>bgDmSk8CUsul60wT#q?iPyE0fDPqJ9%dXmpl;z=>fot{*& zJncy{ORpy#EI)eE$1-`ls?P|E~?`_#URT}PsUmDJxMB*ttj&(gXLjQvRFRxB%fu+3sqUgEUqV2 zEL*)AHnWuLDpd!|8D6SB7XPm*W`w0Bs6<;N>)h!{3d^adsThmpFfX4uEV-T(uq^bX zl%?L28kTNPT3LoY>0;UWf2#BW7Soe$ET?Pgx?gZVmWXJl}|IvY_HB8EEjpw$5QOoXN2VePqZRg=Nr9LDN;1L zUVRMLEt^7}iz%i~J7)==(m*~8buSUA#P#a?kbzM3)l%L=&RZdyLtR4Zv>`}b7sfe+ zMupUB#ke-!1F|KQd<~_l)l%pBGz&5m%4S)KvT`Bcg+^KaL_UilKZeFwb{?1VQ)q%^ zPY7KfZVe@t$eaTZx<1?%N?|z)Lf41CgfduiA#{DXJ!G+50->_TLNi#dgOosi4P~?3 z4yl6t7RnLQpv7N_*@H2s<#?!>Wf#1?q!Ar|gxXkowoCal)XDj5fqaQE9uuJnj`Xb409oavjQkMN#eBo}ECe(+@niNjHPPYAN$o;5cT)0F?gVqIE35gH4 zvuuJq3E3$;!tynQ){63n$65Y{B;#6i=Wz4&B4_U@L}ECulq7m3oET1u5qeLZ7_Jdg z>%Z+!d=sz(o>YVzg$(=D2#U$!ff%6?6uX8~ZlIipeQE^7l<*885v>#XoQIg*!qq}* zwRbt^-NJ)H8nj)1$DI_~wOcszM#`r_+Z*x{WcP3z%k_8zd=JJ_PYrKl2_R+x?m?2n z+J9s!l9^ZIIY~H)MZ^3^vmtwg=dfIZ?S3j`&v28FTCEI1F?)r3S*jp;kks%fOC!hZ z6Rs|!vTC&u%36;a?ia2X(x46J%Waw#ZeckD&lu?ozWu{}EVGe{_PPVYX*bC_pAFf7 zeA2@OEc6DPQXLX5VVTO35pHFnrHWJEj=NdL zyt@m&(wZ_!v%@(ta#RtX?SxBWWHr9UbHhzB;yVFv(!K}OwQhiPh>oG#>Tb&l35hL+$VCKni zl@xEio4jz1km!0hdEq9GX-1uCEt|8$EgaJZp|xzz4!3bk;qmf~#@uiR#~gKr9BD8& z+|4nMVa^ch`E$Y>I3{_`gJ|7k!vtB3#Yl`va@@qO1$U z&73MeO^&a-Fx*us>ywHYIzJbL{Z%sOV?W};kH^Cvj{?C3yZ@WV#Gzv zRpG4VGKT)~PefTI;f^|zI=nT)c>{8Nc(afO?cQ%uJ4k6bytJd9MggJQN;?kwU~Yhm%&wd?sN} z_yRF2!&S{vUPC@4E#dkYxe=)z3+pRo|Ln}Eo(Pw*90*Co{_|A0orUJ2{2uu{9nOD5 zrkakJ-ym(_Z7c?4I#N9!?rf2z_oDRsQPvCLS@$1T_t^gd{Ijh%S({9A$J*A& zmTBbHxqh8YtXU(L$u!QkW^D_h-9p^?YECA!31Mi2kXxJB5JH= zd?;^u3!l+_js%$kna$qFXZ3vQu7F1>kS*R=lnIbI1>_xX9g2V%#=#7myPwj6 zb1=iL-Z+#$;dseRi#Hi1?0}XJyy+-MgIoy5wAGu1G6iHQ$TqJZ#RqZ&$j9DXlnX#^ z1!?oIhrfC| zQOsDsdXrub9qTu5u@XDhZ{A8R!FBa}t5Dv>vHHC=*vE|3?~Qy#cQ#}7dvj3Cy8iIi zDY0Yy;ceF9`3%>!&)bU9g=6jWwqqYN);@2_tD$4<^H!jku?D=IO6*tz-hM5fUvR9y zyn`qMIM!d@um;`PjP;i{AH}TeFK-iy8S8Ivu*Oi5<%!tte(J zhs3?1*KWodM)H-|bqyn>T7v5uLCR6i#<50_O6+6ya0D4dF=LG&nT?@ig^?;HcC0Y6 zNsDJTuIn(;h;k*4br@;JK4z@LNaCBivl;6!Qi5XEbvS8NV#hk1bZZH&D}wZ*+<;?6 zkbdlA#)=^Rw?fB?AoVC_tRu*v5HVxwJP|S5=mlFN^z`660gJ_uSimkV%8N& zx=_qmqexKwd}8b#8ycwR1sZwkV>aU{t=S&d^INwSpKv5q8-C}yl9Nz`V&QZrT* z@hh?GiXw$tf_pfI6r((fV~ruD*vIVQ7}ASk#u`IXw}g&$G$~hN$2ywSXbFxrmeip< zhhvQ;o3M`=Yb=RqL# zjx~woqsT{3xvoj15c`-toJ2ZN%vh61QcLJq$CF|ucC6z`r55#Girm9^QiURaJw}cd zPinA_87rPdzOOr*vEoS%idol*q)v$)>qOG5#q$*&uPLMz$}ab2gAO6+6y@N_bW zV#Ye1WPThvRx+tlV#i7*o3wc5Kc)AOkVcdxAo4sUq#65|u?R_Q)1A#&gp{C|by3o) zM2{tZgPoF2Ey1xE>BcJ4nUTcpp`97YMKPT@S*ygZf|GhJp4LTr6+Y5{@+F8|g^x60 zA2XJZBzzJ&mX8#pn6XkwixN9l3hB}kJQJpq9+ahcbf%L&>|@57PO?7@9cwzNLos8W zNd}bIvCbq>?Xqf>=Q`*t&+xNI3`#MMbry+JV$Zs>NEwPbI%kni6f@S@B;hmFIe1Td zHc8du*;K9{h0{nnihMs@?qM3qRAR?UBMm5KtTYn&xn8LmYbME7V%Ig36ln1rfY&>6 zU9(6LN*G+pEXSHfO0bXF!&#&U#f&wJqxo)5#fY8Bjo$@#G_?c zGRP`;cV#xoMftE0uBr4$$yZ`$IGdDV#?0_s(t=`UcrHoa89KvrNv@Jz5k)xqxg=jp zaE9lSLd=*Mo=b``vk9u!zzokN-6&>;=aOC}dWLd0&L#ay0?uzxwNXiPmzC$;*P>H?5ErWP=g;r&dC?x^sSggt*F|N${Bn~qIGBf3;6@RcL>~6@cgU*>`zzAk8 zB&~ZwGZ&IhC3b)2l5QmdXUfa)ttj}W$y_p^#LjRo3Hv^Df98@%B?0GA7`+BYpG#s< zUP8HuB%-_zQUp7nMUqjzM!A@zD6#XIN769!D`e#Vt(ZsFqKq1@A#@%GvV!y~vGe&4 z=^r8qkogbE|5H}kZ%-GJLM8Uw(}ko2Gv?dV*OM|W!S6v|PpXvM>+FHi33R@mB=6Jn z*#~kS$c>~>$({)F8FUdTRQhWQFf$!8mqDLmGN8ns&$p1U0Xb(o`Yj|Ch5<4zQYZVa7ZMSWS8`W1gj~CTvjk8D^dXtR|^S^xEZoRueyF%(Ij=qzc8%XAQ|c zDErvwQEN!05<5ev(h{8E8d8H9Gs88c4l`zkYl!Ec&>5~FQA+I5Swmu!1e|waR~ukg z*N|ja<{pxQ8F?j`JQMCA8LmtP$-+!K^w|u3DoBA6d(U<+sUJ34?tJiB!M&tOiJi}V zq)&@yFZ7YmGw&nLa9Op=6LDC$dRBQK@t~XtBCo`_k3^%K1yX+;eCA7HQRaiRzC;o9`5V|SxYKV&IXbD{4l9jV)yV7l7D#U9zH^fmDoLel$0t7 zIF~~od24!;6O_CRMTPm|Qq*ash*o+0H&g?4_1R4K9RdY05E z2{^w)pBNbHS<;}y9-Ug!?5e6ItyneEqj$BIbfHWJnE-vBBRwc*fy9ISkMyDVLFDs| z=g9!djUacyZ=KZ<&zR6vtS4*7hOS~gsa0ZEv4PYp2{@I|M;_%3qzPpM$W$2p1=42v z;QrK;vg1NK*ORqMZ08qAwUU6-0)6B!lD$Y0$H^+2*+`O==x5ZY!B`tfh7!AnFOzIn z)ypIYt9C+X4plFcB3I@WQi7S^Ad?HfqV@`@c4b~AwU~*B2zTb+1XmG|MwIa&snEHB zII(ih0p~Q3cOdf`iB@7)@j8jc%uLAK2$|POx)QsJH%OMN>J8$@s`*fr31huMa#5~D zX(ah5x1+pC3SE8PBE^__6i0uH)DFqWd!)BX!Faif2R&QiKipjcV>OW?CHB9IZYGUN z?7B9SW+eeC~u>DK+;gQgWL=={E%dze2dabvXt0$eMJ12`3Excw)_#PQ(|Yh zjWoEbwvi^R`q#*CXC;iajdY-#3bF>|W8#Uk>ynT7Z6scaeFn0fB%qi_{OzPwOT<~w z=OO5`owQ@dyic;7bYjLlzHcYpm??v*b*d_Pk{sRshs5n9MTuS4c9O2d?#6bKsU+ZR zhd$4$KH09SPe`t->JyTWRlA@{UTOIWDHxLJ1o@PdY4JoJsox{|jI2dD2vzbOq0dM) z%315foNFI}tK3QLkUsKv>^~z7F8PAA3=#R5`z2}9;zUMDq$ z{;K~@QirkyM4l}>NrRHDPCR^mF$w0}MPg5ot61r@Lq^Ij(t^?j@-nP+H;IYYnO=}a zkZ(x>iZe>jxtpY-j0#E>%CR7_b2sTgIR!J{k=zqy=dGS(_*8KY{Ic11q)>}<^ktc?zJ9e8$*I5|r#3b}PuQBj6Vm zNQ#z-cR}QF|A}NMv2*^36e_W!|4NFq1V{gsl%SZ=e}&%waNrq@zI`=8XCqsOrKIU= zl7Gj{)?w`%;CC!wrTsza0x4Jm-))$vd@ITHS_2kCZY{wBScA&}Vv^ZA=N33BJ{=!3+g#kl}8gCy3KIY8nulM5NS zs|QHxA(?c{+zJ`_uJr-pKO~cjnJUQ0_k<6Sl0!0On0XB{a-|1IjTXunSx50y?73CxldH(!E+EIKU@)v>rAzdivgS_@H_~l93gK{~@ z`0-NuQEmkJ33hcD9Yk3T^1BkxNot=xyVt{SHjaV+4o;&`o`TF@kQq*6P*%Y2&b1#c zB~FWa#S!+dlwKt(o!6o2Xpk_PJ5_eR*J%Th-%kmrc_^JA^19r^Xg*30NGXhdI4wl! z2blnUJhT+$sHkw~WRM72p=8&vQ$QHV5wsV@yz)JQ_M@1`xFcv&qMXmJh-FYEKbts$ zwrB~yhCPC|p_o_4N6@Tky2?E29YJ%I=rdCuuOn!Ql9f&sbe3nrNLr2Zzo0bfKEXMU zq*14+&cRpfBWVnZne#~6qa`@!k+csp=5cu>9Y8U29!XP94W08ynxVwbc_htKveIe5 z8Aj4FT{Y|zcz(#>jEbZkC}vk9X%~u_VI<8-(qp{`ecpp}Ba-H63GQknEkH3djHHEF zWp*`^7AvtcjHGL^%FJgJ?Ljf~8Abb0%zQ@ClG8%xGm4gJ3C?E}tw1sJ8AU6x%FJgJ ztx{s=Gm17~m6^|I>iKu*5gbjUP|SQr(<&_yW`9Q08qAm@IGWa>nE8yR^;l)*GnzIi zvGW;C+m+~Fk-aWnwFwW z4oZ!Zt91IlE0m3cnMF|-%uHppay97|(~99@qkcjGu3ujF3G3!Rrh z<~W+DM8Crz?|a8lhw3?B2$?G(Gmd(+1XntaMxmIMj-y#vWmYbSWoF~vCCH4_yB3+Ap%$YEeIx|9dbt3hkm>Eu_ zkuyVQIFUwc3C?gLjYTmtoJgy%%FJ*gtx;lUIFU9fS?ToSagU>2D8t9-+i4ti&e1b8 zbB?2VC}vmVXaS0ua~#b~51n%y&DIi}a~#b{Wiomge&97nsA*g3;|X3Nei9W%p8 zG!7*S=RAp~DA_aYP55MAKI%=PekJxb>?E3tnb#oG4Uch?XaS1(_37hjF^c@{>yIFF zJS{_+2y%AJ2>dZ5_{Z}X{i$Uzpi+cy|f0!oV{M!tosD-0lYMBj_MqIKIWwf zC}z%Hntx&FoV~PAOK{F!T8v`m?4>POW#;UqZA$E%y|h<}y?qfHIaiKl_nFXWElwh= z>w$^z3u!dYm0>giGXgV=rnoYKreP)>GWWnS6*OCmrx4EYGvNI3(Htc!Jx9UsZ=J0q zA2a{l37-ci`XYVPrL}%3Nf-2~I2CW++@*F#pZqnk+gVCRc%$c;s zl}V*-n7JADJj!aQlB3U{$yy>h{(^TL zp=t&##>_r^_h1GsS7NUSnn9~DBkv`)sj51i37#!8XrmH)yk^j5EzbQg`t_6KSQ%OB zm^vFlK06+M>6%t(34V4ni>}4Yr;w3X>CB>=T$yy*h?#!Oq|>$`8Tp>oY}%#7esAkM z8hf!E-Tq(2^C(lIpF?)Sx-w{<61$4?X@M5!sH5RMe3wMZRDBCGyqG3w3GUcD$}lq~8eZqZ zSo3JT7Ecn0JfG*$29(sGG!5yKrK;ML*d5EJy(s2dwQTCSM4w|)euVkVr%Z|6u}f*H z7H1BOb^JKEDu(6{$@~gcm(dd4Ct}QK_)o7};ffbpfwDIuOugser}Ze2@XG}9T?jvI zLy>2%me_1PA9Ek&r->-$ocB{W=ppY28PV?ud0_N~n9=VD9R;!|DDoYl2_To#6xCV3 zLp23t3C&cp)tSBx{zJ|waHR^(R$_N!8O_n+Tmicw$67`UU76*y7&EtEW;tE!%H+{% z%-oBaJi5u1xq>!grWP|-&^A}*O4@;$*D-S??MK;;auto7ug<#QIhIeOwKzSP$)`!K z%+-`(X82gW(yM8fD{~F?VBY=F)bGmNOLH-E05VrYpL=OB%J>*9 z_t8x#XQ13qV{=01TuI}#I13V zhiEHiUW3eSAZuynVtq?#11Sf2g!)mw26+JFQCg|R(*sfkQbns!Ui&ZnE{&2Jlmo#` z9m=d?li7swU9hSV<>+Hg=Vp|vGfh>i61$2j+L$ZnY~Qn5N8^^dB~gjJZ&^o^l?0r4 z7;EzBa6JiSD5rz`aui%oLQ_#PF;h*`P;yY7q<$r~a}CYKOaWw`gx#p2B}(iJpQh!m zs;6lsR^1I%&q3AGvA>*3$tcdmAZ@$$3 z0p}&U>5xpH=Y zZJ{Nusx7n(tBxM0uU6ec%TZ1Qk=LfaLn~2yAoAMOW?F@EA&A`7cWE`sau5nD-AZdw zZUvForoKn(QJzF;p$#Z4Ao5tePg_yGLHU3tTrGDa;Pj(>NK;Ubh}BiCG*gM))sJX4 zX5t_-9p>{9EpTPF(IU*4b7LE=LXqc&T-V36S&6+;u8lSpgq|C1v{lI}4})9fOt=bV zJ8ef1F#7H@;5rc6sYTs(X2N{7(|#rP=zL0@6`{xdQ|eI?a5A9Jd2lta|`74@@ReN#tuc+TuwS(rls&>!GW?4YG6$AaX5bka(cBoMi- zujyKpSs=?H^9`*jjSk*-vQOZHCfvR1!8RaRE5|G`r1LbwB`j+;hYzL7u z?556jdVhLA)_{CRJt)oucn$!vhsL19pnOl`P?A98SUofWB^_kL^>9rE%|OWkse;Up zGz+B&$Fz@@E3wD4 zk5*#Uu@l3c*P%}zUF*vHN~&C z@27(|%Q=I<_kiU0oA%Sl|Dxcd!(TM=me9;!G**dS*WWZ=Nx=CU#_EUB|E9Sp10a{2 z55HGQi(FL)XbEPHjth5&wZQ+%q^(Nq3=h)WlF-o)(n2M6^nYlvl7Mpx^zlHSe`vj_ z!c{oTxh=Gh!=jYfKEqgyl7N#AeU5@Y!&rtZGn{2%CI>R(Av2sM2V`g4X9P=85^!#S z%t??L!7`NCb0dspyQ;!i4pyy(s((XO7|Ta_5`=?!895BeO<3YFM%Bbw!w zg&xyrR;a`ti?OU&Nx-=hJC9}cD0iY9!#YuFQU1lE?!?Y`{=~49dqT&GVHry7SjVy~ zB?0F>=yR8V&yHDvslq=}MM8&qODAJ4)b)}!AFRpn51Jc~rRALRrVt;F_;XK_kwpLmvlRnJ1zUGNM) zo~5{|PGsq>suNizR=o^Wa#v4eew1w>@?L8)%SHJf#6#`%Gh1Mlf>E3s8RmZK!#+zD$Rgeo5^a#f|UQdd<9E61vbp-Mg$q_CPH8M$L; zuqGvT$EGubxNeDc49ScGIh*xq@f>wxxU=9Q_%GvZ07ZU|KNT`* z%y}vFxTmp5C3dB0ELsWN;-HULRmHk8Gg&-l&V`J8_CAwkxiaT4KV~k6j9mLUEFYy5 zM82|{#i~%AK}lz=O6;+i%{r9W8O~;1Sk(em@;U!(){oMQaxU|1lq(H5QIquy&towt z$sqFeMFvYk$p(@0IiIDY+yEla-V0c<5=dlVUb`|qjl@hy(d8|fBz_}InP`-~ekJSyy z$W>gzT9nvTWV2Qjvx;n%`=(w+1@yTDj!rhq*AiSsHY>!8Sw%K0#>^h5TA-?0QOqi` zS-TQFXE~p2)`uB$&B=V0^cEgveEgcvV&0Zw&*%A!DcKcaW;mavY6;G8K1;`pnc;kv zi5WA)`K%hn%y2%dRbqE_KC4#}aHc2ddy@IA&6T;7bqvYKZ|q*m28LwhN-ty4O?q8s zrGA!$Vs_roayN&r)Xz$l*p>QOxt8Ec{j3r*W~F{sg&DI_KkG#?EA_K}C3dBLHmJm| z)XyTf$obggwSXlkvFFc1R)Atwv5+M+hpu8FOIKo7v5;kI39e!x%f^gZ#X^>Y8MBIo ztRBUzVj*i#VrRIJwPVKY^CH%PVrICA`M0WL5xku)V!2v^^I635F=OVlh!tYS+)fv< z1{5=&MXX7QozEiHi5WAW92Wnc8a;TmPY!En3Ei%okfVGirV zjM=dqmioRP%giu`r7N*B%wf5hF*97uYEaCMEoPk`gwAj=8&qOvxR`}~sK+wTh!(R* zEx}(XTFjy`V`jLR<)WAwE@t^k>Di%*_bgiT*7Km%nX;XdL?>>^6`BMYfu8ei2?Uo%i-R532Qkd({@OvONo8V zUBY5M(Z|%hJGX=-D6zYd%hE7oc4H~qWUBB!d?`z958aKWECDSjx(@ z1ovkttH6xepQUUqX3VW}DeFNo`?HkwDY0{2$|670>oRj*#-dQn5nRUFv;^-Zmaz`Z zm@|AC>%xqg&ob7788e?{jD4=hGV@u+QkB^GEMtDmnE5PcRVZdY%URYJp?kQT6)Lei zwwx7f3GUc(R*D%j!{w|TGiHX%Stp8_;d0ik#6I6x&ia(tb8I;qP!e!1fpbj0(p=6W zJLC*kc^-oATgj_Oma}M-Wx-6W7WKKz$*L-Gh{&_|3YM%S;H-cudCkBTtk9LYk`-g- zHpr}iGyFef_0%3-U9!7`fT_;BG!X) zBCK?~l721fn93t~9UD|)kHvM&vqPO5Lo!iH0uF^ft6=A^V=*W>Age(NSscopAP<6E z&k|6c#;O}w63S+*x{)!IuR-Lu)Qeau%0D3MpwCS#3*}!^wcO0|P)wUVGSssg2>J*SsThPD7Ud*CH58< zVEvehJXu!-SX8In)qry{N-0ZJVykXv$(T78Gq&ld|dd%F5eacvqD|07n!OZ`#&z-Cr>GV<$Y1=Ex5`Quuf%q)WJyZw*;2_ER;|X)l`I9N3Zw;A@gPe>c?slW zkcU_X%Eus|gREtRD7_#%K^|shDB;t>onDYfSfvs>`lGB0GbcgjcgQ@->V{(~Hh%)RJ3=5*=K=3aCi z%S18vqU%_;61@sJ!*#3>Gv?9!F;;|P?&lw4-CBb4d5ra9#?0q2){hx8pU2oBX3TsZ zV;Q^j49$EVV_8b6N&?Od*j0HZJjP0P%PM;&JjTkE46UkE5^xqk)n9Nd9%I$6 z%;T&UGv-$%A7_n+WSTK^HT03Ui^o~J5<7Y|>vC09vmUIv3##P(YBlRac@;$7uRg&B zTvbmp=Uch1fYS{bdB6H3i&tWg&QmN^i9LU6SP6e42(V*`aH`zP-;P@fz+}tl(#_$$aAa*<#Ui(Apc{1 zC_iD<^K3wg-PJl4{k>k7Ip^227!shas;2y4L{g^T5{CYNs8MBA$Sy+$mZ1!+H z%R({d{CehBV&}7-6=BBAX9H_MG4t8LHtm(2?NQ#q+Li2z7eh!`C3#<^uyl#4d zRVdjN@ivT}2cy5h)@ljP`2|*u88hb>SS@D8B*8T~sw(W4&^f=rB9+*4>;)F1#GZ#Q zus9_FXF2pKQhgFpZU6~@)HB#*_=ARq{2+`>e!O^#Ln)ReiuJvFadHy$@r3z-nEY4_Q5CMxO@1PB|NX z8;bS)A=hqK(aHvu*tNH^us`+wOoOU+=-kSZmDtQjECn+cK;~D-e8l{&%r=&bnfZ_z zgv>TpiExGI$66C_(TKx%z;cN z>vm2{Q6?w69s%-?EQ=|K}T)G3-b!c-#4g`IXpx-pO*61e`N*teq@pxU907 zE|#Yx;ABB28|Kr+DwNocOzYeD%R_UUJBC|f|Df&KY|b)b9&vL5757B)f75PsPn zq!DBvi&J7}xSu6p=7?nYOdMvopXIwUf3ZT$jE9U|#b2!6mHC@BVCHnp{LR{3nL*Zx znc0{bWW7T&^3}}&=9#E>)jV%G$kI{F^Ol3GHcn>jGpmEFMG5?h5p+HPkDdovo0j0S zl!L4TGv-;!LDq$t*P*Hf_U9l=nWRTI&#VrzG$nS&4zdg-0jK#n_`lMy8wXjQ5_?Sl zVTG=$e^@bAMS1le{=-ULRSvIkRXKbuR!xGcPhf@)uNsn(J2s3rD6y|NhVw=gvtz?~ z>hWq_5oyrpTj(>Kr)vrB&v2fJ8M8mbc{XOAgQ_1?RTGNYpW(bkiCz0}-Zw>#rFTru za5#@l(7S4m=?GqeVrDpkcTSZVdrU|0K@{^`bOet*S+Bwz)rJRgBM-7gRp&#Me2sq???uT6d2|H)vKjA3 zSp{-YCS1+S2T`5|`5WdF!NX3I`x9_J010b_t9iKxWiQAvAR~D+N+gAEwICNk=1880QUS6MB#IX)vFFB7yi$q1#f{<7{|-Gj#_-@-uoEu|!f|6YkFTz;Q!~Ogio}?vs+{bW+8FSpn@Knr9WANGvW;ljdp_t=7hSw;u zM|ljdQxb5VhbnomHHJ63GDq`f%(O!0Xt>VmXx`zAZ8-D z9&0R*@#-UZBFZs58D%=kzj!9fB`7gGA0_j7eNTHVZ%|^-y5o4W61&plcq>*FV4vf7 zC(7L@<9IL1GbpjVA7wMjcDJZw0#Pc+i$52k>nJBNLOy+)+&q3t#geg1+DARZ)N*T&2yc*>R5c!AV@`1duAoB=a_uGeMpM@$wFo%Rm}I2=7L@5k$_1@?Mm3 z5VB&WPoQuftHj>k1!qd^?cK*yP|Rb2kM}Uy$36q`@jflV+p>=jV8+~*eca)y zYM8kX_i;apxh?y6t`d8O`*^;Rfb$B>`9oN#kC(VIDZC6bpFl>weox^|uFM&{1vA~a z_A_{wD>I$kB~V4 zne%yxD{}!a!^{9=lIFuTrMyaso%0-C>#CZ=>#^$C>F{X&5&S9+Z$wD}83~ffTTvE) z$nW%B$lFnF1Cifdn#+4po(35MRTuG?6n$%ww@UdQS{Cm-0|nn<$l|?5Fmo}lJTo+N zF|RR#nRz_^tkBFno~*ce=bX^Y zd_JJWj&&(_X30#z`2okel*cKtnag+rW@69O^SO-smDtzIe(t#-bSyuQQDXZn;BiU< z&K&3?kMaVZsl*=Th1~C|TF7&;>Sm~t|J`OG&qt{Rxp^7MEXs(t(+Lo`y0AB4>Ct&p?Sg zTaR@O&qA3AB0FEp{V4wdk++lro`>=%$_ieHvJHeo=0Cg`W!MZ|bsaB5Nk%E;l_<+m zuIJS#kATRP-oWcoUIiI>AN>C&-iY!!$k~u7;>{@gLCyoYiMJ}T=h)3WcR}bmb~7(D zg6I5yxqne;=D$2&i9HXCd7+Yk6Pu>b!(v{Bat6vRyvkMef4l}W3o-M5yc6YClv{Zp zN;OIe56jVK!e*3}JVuF~&uu&oGrKW!8_#!T0=y72BWCJ32Y8t)Q_3qa6Azgz*uzp@ zo7AD``pf(P!?g;D&D5V?))9R>GIHBy@R(Yv8yQK9ZCYuP1w1N_nSX71+cN^IwHo{50!}LQxeWI39$tG$rrz|yv+f?=R2bU%9^R(JcCO$ZN&?QM&{?j%g7=#$ z>~k+qx-qoRy*yQk?QmKd(1}nMxjiOK7H&CmX@c1H9g?%38 z)m5Q=9_IB%F!Km6dOS4q2rn~&nMZlrlcAYMd6p5(RPlkQLNis|QzOOBc^!{Z5^&bz zFRcSxqd^uf+GJZEEQ=NevM1T#Q_QDPxE>ucJya>gA%xw z4@Up`Qur_IJnU6jH8c~c#6Bl^hQ}O|iBl4AE`UDr@$?y49(Q>K_i%1&tu;T&8+8% zO6*EEaHhoW#s;3M1ilvuGnBW=4Ll8{3q*e3`~{wYvLEDLSVcY0K^c>-GcWQyl#@YZ z<|ST?k_Pe!$VOg@vJm76kWIWCWhIFGp7_grEy_BOTFAV@tCiRtdzII{9lFw2d7}~B zjRxMaIW*J2dyHV_HST{mH1itIH-eeh`M`Ujnb*0e1qCy2@ca)$GjH%>BbaIAIjy0Y zMqZ%A9*Z}5krMc?bGRFC@@i9secs}O+d})i#UnosozL5R(8w@&4;CJY-sX{QGGoVT z;?YV1&Q~~A6HjnuHuEIR{EnH;JWYu`7F&4C_R#rk;R!}?&hPL+BRHRTc;qLcb8hBc zMljRN`;^$T_gy}y#IE999`>p16L2DD!*vdDw!F(DQO*Q;9b_wyN4W+w@9{*G`$0Z} zObbs&X#nXzYJ~GXXG-i!Kj4M!p)37>mm0y9e#rAa3(b7Ui;Q5Vl{b75nrY=NMlkac z&-yYn^AXQgV%NTn=PQ9LQDM&VKLBpy#ik1Te9TjKg!cKEXBxpw8&CTtG}Fejl-RMh zbH9>+^AC(ApEYggMWzb-Z0DsrL;Gy!l}c=%Pk5D*fOGu0`qAMN-f&2!2{W@HBai7P zyvvpOl=mpHN9R+Xu{(71Pr2U+&aj>PzYWc_^L!flu z%kSh(O7xunfYG~n{CA;q-o=wq%$#@gA|>{i?&c**0?raRUhqgA{!HbmG`TWUCF!Kmz{^Xsm%s$?Yna!Bl$NfKqo*M%^R|)){3}y!SCRb)Z zZ^VpqfnNK59{XcxpTBs#5_pFJGk@`PSLSb?i5V|u{^nIfGI6l;gM5<~kG!3Zg=@AB z@f2Rg#kaAysF9j1Yq;=00kK2-~aX>{$$bwpQ zlmwjBxIc%9B3I^cQG%JrF>|=6RAO&U9#QS8@`zfjdJ(F!Va^`WfU*^25lDn+LfHY5 z4|0TPL+Qh+k)jJFe2%V)6g?=%fymCI!~n{vAlHG67S2y{?QoSli2T*WBZUX$5)gT- zj1o~OSD_pwVo+{H86)CQ?gx>bj}{3i&w|L#(IQES-TASi_0Q0qA1gYI;N##iqI@7U zbBw4mf|-Ab`oBUm{}N3~>=BF+ElL7TBg{wMAI6AIl#fu36|sNo-S`GX!2RlRA_?Ue z5c#>xIFW|pWNL{O*-GrX#*3E0(D{rP9ZKwcCWtO2@Y)mll)#Qn5Qzt5)zD1xA(Emb z;G6_icdM#QC3f^UQ87F! z4b7w;BI!y3&SI#lR#iE!%n2e7GbNZgL6j)5tB4oTk)bn;7x7B$=qHLqB?0Gg=p!GA zP85Z%%w$oFnb$EhSyU*ox5_D^%2hQ*)L_+4sFIIpQ$*d6%opMCi&CORiT#hdQ$?o| z+j*+!8B!%byO}Ebl)#mQ7wT_YOcl7{rYEJa?K1J5nEuHBhx)Rb`== z&vT~XRf|F>@+p zK7>q?=vHD!KTY(xs!kIFSTz$npC+QB?GaYThk0tuVh!mjWC}MI1gut1}(u`(+tss z8FOozAzCo=2~>Tfs$$0K+n2dD%@A=)>~72uiAwBl%n->+;8y{&!kr$~Ck^F15P2S^ ziA+5aK6;&vwgUIU~&J)!r z*(e#J7UfEm^F^H!dn_&xElTXMm?J#L=>0LrVvZ<}2|X5bM4ggd5yjB?7ubzCVw0BO zv6v$oF=LL!9MO!KFQDoVRTX_~=&_h1VwKn#&JheV<|@ieQG{YHM zm`S+=-b+zcl_+Kvb48UBd(O`lwMy)|=8AeH@SP**BhT=;qQRB9NHk&QX~@XmW4uU2 zPmpuAeX>NXl7O=X`(%kkCH5J}#Ue8fcLQG+Tr6^w*go?_o|1sG6Z^~)MM~@{E)k`! zs!K#URt;d)C8FL{l`R@wRoS8$tHx!AI}>3KvqcBWX(;nWAIjM%mkQ4$xeEB*Fp$Ym zb(x4#qE{i$1iwgBVsCK^L_Uf+pFvKLee9XAK$I)7zp=1DRB8#H2@6COX3UweK-6Hy zd>eOx=tnVU!U8d<#LjSmh>6$7!knuMMK+3=;X+YxV(1JPiV7umh6}}7Ex{Qs6xEn9 zGh8TYF=J-9P=rm^qnjBn6p>2oQC=uwl-P4)p@>rg-;#ixm*?t2k$@5aNrYpuNF<>= zg_0u}$~!2FMJmd-D3^%IXQG!wrBJb6&5T#1&O0N{Rna&q5(6%U?yL* z4#~(f^J>wf#GaYgh=eKnSeWB}jfgoZ^tfLmm=gO~aE(aS5x2AK|->qHvLvmo-hM4`x0 z@}Ork$SlZQFY=VwIbSalP7Yng^&(k`UB&exMM=Ps@133p|9Rwkk#T=K7{$m^Y8{SsKn0aM&U`6^Rc7fD58|WCr40qF?7CB6b#A8bL=KjuEd^W zH;W1sbB^6CQcsbc?LEoOB3(=HjJjE5V#b_NH;Zh{n0u0&MJr~2#EX^ z+y99~l-EG+gv_m?0Hp&&{vu+DC_>o>5(ck0R*Eu|WBl-p8mev+jVNb;$orOnXi=h9 zA@{jdbSts@e7opDG5dVG$T~fApKlj_Ex~=hUF2fM?DOp+A2Vj3Zx@XyW}j~t%}VS( z-!9se*nPfTbSMcpnXrndU|qM1K9nm!Hi4`X(aCzBZv%M;~Ds6hD$WFE*}q7`Ki$g?1Ki#D(B{0~S6NVyn9Id*}*RjwBCL}yL~k^8(xB%;g& z*#%Yih%}U?AisfBh&+_rL56LI-%AmLC{Kfo0l8084MhI8 zuXUo))#owMjG4WVxfMo#OtdSpqdzXXTvd;Y9;`ZSk-mLBF8WZ$g2-ROtQN&Sy@zL_ zJRv$zu0VNG#HQ%X?I3c_Pl*haCqU%8mo*|6WInRk$l&eAHz0LnbJj(qbt6(>t7nvx}fUE|o6WJ(lg2;1Yy~t5w zkIn{>hnek=sf4NxqSuvqLG)v$7c%lz@PY`NE@!Cw$a|Z55vRo7+q@|9P|Ur}i=ydF zS!JKoz9_ns*!%exMUR%?{m+Y{4>RWe=S4Aq8FT;hqDW7bo$Y^pdQoI5u`7L1WGe|c z&SL#e*NdXSm3c`NVdgl&s6+I~PK^h?Qn&?Nl2Ba0_4Kauk0Flo(8b#Py`fPa!uA0#eA!7t0+Y=-?-c=YLwV>b*re;5z zL(kQ%B2I}tURy}re1Q(}+B`=ZcQ^}Z;^ zs%N2UG*rDW%3W0-h_$Y&4@5OqH9*x^sQN(EqqL%YD4I~ZK;(U9tB5*BpR4^K@;>t; zk&NP567EcZKHEeVN-T)H&-_^UQIbI9BS@PlL`efV5vsO}a+GWkc@O!Cs6@#Jk+0D{ z6;&u}LFD&|+C>dYGl;yseo0Qn2^Mz={Ol&SZQp4z9h&GfNC>^5PRrRIl z#mtqENrtK~Me{7V8@BUTqE$)2xgRoTK;|pa>B{U7-I#e3GV&Sz4l#I0CM;d=^Y&mS zR*4;Jhlt0_Zpg?-haIBSmFX1aL;9Qp^XU{-uFTh>1~c;i3eADc*P`g$&~<$yN|fmT zJtVKz_(oJJv1jH^QSGYQDQdB*4`wJ|FYgqMD5I9@dw?#{iZT^tml#Bug|b^Do~L(X z8OUWY!*2ysV&8rGPIO)(Ga$qCb#dQ`UL|(N_K1EZ0cR!jk*nAvJlR-|^GYOB*k?KPk@t0jqFad_{eb9mRUHrmSXByD@*U0t!pW0s4>(VO$g}sL z@Swa5vI*w%kBCCq3L>9JIlfqwFEBIA7mw0|GTfJlvL9uHFBxT2p1z%i`O;7(fymow zxGxjM3nFi)hx>9+W`oGvsmGUxvH(QRFv3@WvI0cT@CaYA61(#weWjRrH(alDq_4@9 ziS)H#<{s!HA1fn$T_}$QW#Eu1=L)@t>meieFw*B&Vn-k4%f*a2pGWzM4#|{Y#@ySC z@>L#^slv?LFqVAIHp6QX?im@)TJQNBhLb8Cw7H7l`u80BkK zVqcL(`MO=1qkO%t%u&9ud^u;^XN)gW3H(Pecr_uP#f|YLxH3okk}zXlwH@tCb!Eo- z(lKLR?~L`8DzV4n7+-~}>KNZztlA03LcX#)##e{(3rdWy3FRM!cpzOozd>qJQfk+19~__~$YwNLc*V#d6(o9G)vk+1B&gU)fjn5#o~Y?3cd zNx-=nI{!Tq{xh8~Nr`<%biA+Z8a!L@8PV~+wMOvS&I!KqYeO?9_^OOxCf?Uu5Soei z4I07BiN1{ggl10k`Hf&^vM=Sj(9C3Ch7rt6@l_XwW~TV+jbJ9h*L8hpCc)RI#2)37 ze1l5tKA+?ZyFpgLr%SM79~}+9fZ>Zq34rv&K2P<Ee93^^md0Rf!SFFU|mXmyqDCW^T$=6dPXJ~KBNj}d_YNZi> zLg(S1!gV{oC@sO;a*{6wGv>COf0AV?`vf*?qx+Ac-eqR85?MbV|S+MwuC6h(AfVihUTW^GiLtPLBy_so3nGdU;C zw)O1uJo~=an_gGvn$P*(_uTX6%$ak3=T9CqW#`eG46Ri?2=B{9a-1c;eTw8HOB%&A zvfA8QHCy6abx%1XX0@lB4Xc;PYHPCEQ_hQ7?Ijn+toD+vu=+Du<&o81vMr_=D%+v? zk~HQ!yhCNTB|e^FDXui_<7-hYGc0Ko8RxsNc^1p8m}YO81I8|Dl(1iF*k8^A8CsFB&ob;U7lK@J zo_pS*M7DywPBk^pJCw*}ASE>^F=9WuA4#UJw*8**9%){r_BlXSI1;|)@<3T_$yl+H zG{)*cnR$(|@_l-s%(29ep95u{C3Hj^?N$y4%6t%W|Cm`z93%^3eoAF=%ulIQu-cUT zm>w*Zr67ew%t$y`mVq1w%^|WP=I2m35}I>JWA=hW6MQ`edvY!pq}S+WFVCn6USsglD% z6cO`X^0Q?*$gxDso8QinBSA(Hxs0sNl}kVxh?sg+%Vi*Uf{cxR@`L#UNXN zTqK9Z{M5+On4cP12CD+HYNXbvkrg1rK*q?CF+Uf}>X@I4Weu#3Br7voE|zs5ry`z9 zWIf0QM9gTZmE%CJ2DwyD0=Ws~GC2k0w;-3xCXhc6F{7nUP6K(4h#4(c$QdAS5;5^y zDQAOxLd5j)Rk8)-A4E(%^>RK)<`_q=mJ3040J%oCg6sowt!x81f{2NyLAHZb5;5_N zm7SLOKD|zMTjKllI@t@WOUcTt0j`so*SXO$8KhAbSmOPRlf{;JKjWl=mFdA7sPu8N z6y#CzWA4JeUJj30jhE&9$cTQV5`N~BpIgcEcv)?Uk7vBB?PpaFt9QuiPHWW^(@c=l zp!w&!DeHNHoMDOgJVCbfvzia9&)|82YzO(8$OBZ?M7bIyaWQ>!lgO`S56GrO<`cO= zibmJY+Y)(|$c-`!WOtBBGS3o!c5{==8E35g_1>Fg0TY}l+$?*T;0)+ynQ=X=pt(gh zjF0-cMNYP4#o)`2c59N!a;hccGv*%Sp23_fr$Mvw+LSopY`Q~0&Vc5WJ5u6{YC~F} z`3~!!+vI#`wm-_Pe{PeDSVMkJucx~Rc` zQ?I+_XlPofEc2w>J+c;>zf(Ns4d?gB257!S%uRA4G=;~y{%Vp_pxL_I_33YA6Er74 z^IJI`8bzy9^JTGn04r$jm+efTxnHhk0?qGb?xbj0 zzn6uU`2BsF9A=4+d73P-q*08bnwt4%nj8*tRY=PFSeY~5X>znB{>=9QSp&jnB@f8F zn`}ITZz4Zmkmm*ZjQFkL$a3%G}C40Em6&M*<*=s!-r*RveEd`AC{SxxUX!R zZ^t|=vn}yfkI1~3)g!V1R<}^hrsW@zMIiTuWEjY-kd%PD9FpN6?}elss|t~T}Xz5>=}}BkkXKhu*8jd zGXp##Yc26Jz@xGbglB+9W%WIFZwhCCM`ev8;S4}l(C`fKsBD0SXMjiL0uY`79+itM z@%z`Kvdt2|S3WA+EupVWQZ39?zDH$OOfy4vLsLzf4VKW|Su)jx831#_44HW^2E(qqv+ro4YLjAj>TAF+V0p#H=2Zm9V;%tjxWskI8CF{4wQmIsCq8 zJdeu}miTyP%1TSStv2gq&)LFa1ebJ1tuJ zlX9FT-t#Ou*%BYmEIHMZMzM%I??j$w$z?IkQ?dh^cGB!hnx|y1CBF1Ia>+x{(&xwy zOMF>#WmiAaZAqg@Tu$!~C(mFSkhXSk!Zi%(BFJR%G?G9PUWQX5{A(BG1Zl zOZ?NX&&sAgR_3_#tej>Ey@Q>s%B)on$R0#aCNfXfKW<9*wU{TzS<)yJX)3K|nI*n8 z=E=M#qA|~tMV5F!&&gqyG>Rk0&-vu%IXQ`~Q1|EMlqaKpo|n@s@qS*AGc0KoRfy*W z*~3=w^MY)h9rg2qY`4UZjrp?667PAw?6!oyK2M(OD8l)&>M8hv=ReA-IZ@All(kHt zc~Q2tL^UtUPA1U2Bc{^Hqt8B2u`*}xBw1nQ^O@7{Mq`Tl` zGsvq%?xyxxEL+$QVqPMbv_?HIksX$J&r4;OC5@tu{Fo!!QrT;Xuh+XW;~nG2TfHl@ zENK+0$?AS8{au*@vSA%P8%X3m*7ULa-fR>R239CJUC9hUgk_*mvHil4{v3H>fi5ze9h`b3TcxroRML_U?1Eb%dS$n1`2SsgN;3F7%oPX8>b`AoJj zfo6qVy&|evA;n4%XjaM|CfMUv%8bsarc;)D9`(~H%Pkq7(MYveNVWKj9077Ck+&?V z0(q3k-s9+QIyoBT86uT*E#-4r=ScWF(O+dlKQhshMq%ctrR4dqaCj<|>(5Wvm)SH<6DmDYnFW{!(_Wj(Yx5_FCfmeYMQ^o6-2P zR?93)8pZZkq>I0j=hZUD67TtMvgoU*=fBAkCg`27WOa8`^OdZ##FzE8Y_OzJ45PBT zsjRPMvn4*lZaE`n)h%bk>Tt69o~*j%Jdo3fq?XdRt7I3*#YD_l{YG|!j0gFL?6t(# zt4A*QCK_{(Tw;lj`CGZnl16bi`7zgIzLlwezzTIIO;6O%x3Y@~G~dbWe?~Rm$$U$E zS^t!UmNbfIs4R2u^5pz{P zp(ca;iimkGGO4D5loRaSHA(B#UAaz8JCX%jJgG?e~?g$#BdO(_qn0sk9 zP~yjE4`!$qu^H_b)EbyuGSosQ=)u9NJ{i>vR+E@Ov!SX>i)uDh6PZA>k;+exYBo~E zmiTtgRLYV@F`Htpqjn$G3qJB139hP`Mo2V{J=v!mt$IK*~sNosLs!_a0 zWE6ScL^WCBN5ZCR{@|$RO;sxsl%A!QZ5Y*LsV+-=>6@u;OWeBdaw=;xmD}0Z4k7Yuif{`xIp!x@HO2g7t7))0ovbF4RkoUKiErnhsm{!38~#l7FhM(S zsj@eTYPMAQOrY6H6>S>TY^6#p@$HaxUp-d^QqM?G(^3Ynk{^Hkx_qMAIV zm_W0GD%~=w*+Eq>fo4Zlu~k&FqpGsRx9U!+#u8tzom8DAjpBQ%g;{;=r0PMoy4tl^ zzM5o-uh-5hdz)xkJF9$4yyqdR(2_>6JNcPKEjC1@er~K9g(hOY%P>UcTH-zLqH=Si zo_A4&mUzzvs@M|xt_S&fjyxBrX&~niF(ax#Eo47vpIz0$ZKIxdRc)4d&%3F1OX!{O zJ(3o~Mb^nFR+rh;=i^y^!zf>ib_>oYg$}I6^6{!kXy-Ze} zWL2bUK;9?vHzIqgx;|FsO6gu|iY5L^=}@%G<0L)AD-mJj}dJby=? zhpI`Agx5}oswvR$wbP-h37P}0q31Z>HCA09eC>3o>IUIoMu_A`+j*!;?QDo|jbfE$ ziEoW!m17C*?^KqVH;Pq3OtZHtf@T(JOv~@BhQ~DfsB&l)lE%EzWgk@;)9kCNq4|U~ z<|wnTs_CbxgQk}>=9sdtnq-L|QTwXqA<>%dt7cl_YdTELv&7eQm|9>-quBD=bg?0| z>M*q^rrA#|fo5OQm_2tt)nSP*{a31YmuTs~QkexH*axLjyG1opl`(-vsnLZ|jZ*bY zpwVjeFQOW)#4io;^$JvmCGMPP3#wP3axC#N@2^x*)X)B^j0wsrQC)jRH6^N-2{Z?& zsl`#v0ctuEXbx2K_K9i^REwBEbCAjy7S$Z2a+p9W&#bX0SQTF3;NLseH0)f}pNEg7G23;hn6ORYLwrS>|re7I7U_#P}%3lEG&Sf<)6@gw0#)ow|n7*3x?kkW)ijW_ zYv~Mttjg6)kUPiF)p7ECjA{Y7maeE7%`s{L$gHc~um8uYMIbK{F`8pl8;H3Ix>W_e z1xvMqOeC_cC0&k$5mu;fOZ=Qrp~RuK2m5F;ETQ)&P)$W?ny662K&BEIN_}y>DzU`( z#R)2Rc(e^qP=%KGzBo}8Thb_=B|pC+KPRdNwnATwQ00e5{ftnROrSYQ<&;G=C#eD^ z(44HAkBn+gRx>T}@tmSsETOl@P&~sao>SDKm}aC}0*yKMG~;Ka>afJu{Zuvim}pt2 zs%A@kS*NM#me92nDr+Q_b(&fj)10nap~-HbCnZU9y6UpTmsP2TS47LIR3j|$Wu2ia zEul9Dk{=WE8LF18&^~9XX(vYgoT+9rf#xh#ds0+$mKw(dnku#Al&Gdkby(u}owHRJ z2=6;*s~$(fQFo3KBaNT&8GJ|3IVuB$?+7|aWrOg(bFRt-;eF>^RRF^KPPHlm;eDrC zDM!N6N2yXv{C+V?mG{$(u!O$DLallU_0A|&4RSt_dLrkk8cTeCov%ip8f~BRRlOy? zzecNZmiYZ*v}$83wDSe3cxzMl~0yT1$L9HLBhc zdJ7-wRimb`75t1*O=m^@j8QWz@qR8=vn`?D9WV|rRtsX9OVlE07Luls+VB#!%o5** zwQ6d0w5(b+-4b8crD~=nje_@`OVuK_Ld=(`g7c$(E>puS@qR8>C6@So=WUgff#wRe;G(GJ3bn)%zh7LbmVxkoai!{XBpjJnsnwSFk$IKs?WalAn6es0 zC$-@uYQw8kwk5s|>s8j6Xgu{Qj|pPFT4i4x)m*LenLu-mYPlq;xkfEy0?oBbT^iL~ ztI90#?cAU$EOBG3hSszVYBXEH&sbG^S=7&1HI4~1*QwQ)M>W?eQ3nD|qw2gOs%ca` zmiTzaDRHII`0+DNbyOwxl{Epfo7`ey(6lbsxt31#MksLm2F9*Fjr2@6_2}AVLweVH0GMjTxyNGRE;IR z4ewUYd%pqZv-{4T1Qrsgq$<^eUmIjVU;wJ?F^K{fLCQO$#D zv?adZA5yiJG>R*!UgnLy52+@$f}iQC_<^XO>8jKc@8@AvW(l3Ske`**&JU|*wt}BW zRM+&VpGQ=$CEm}YD)q3@G>V7FPX@*FsLHd%xAP3u{7BT#3^mgd=f})ie^85{;U^p) zQ<;y#isCW%hd-uDW*FjUt;bZQCI0%@W2)MbaMpTE)j-3u)?=y;8ooaEm}&>%S?e*? zX^F4tV`{Y}jp8|~skuV+m=b?5@%UOiu5vB$bMH)*2f}mjOqF`f)+@ZGH&bOg62?4J zWkbU;&s4e4aLhAR9SFxfQ#DxPTSgLvwZR2~`d9DG_r`?+I1c$I6V2C)5;6 ze5*dGmVj_Ao>aL{n$rE)cv2}#mJj}hJpY|W_>-#Ck+5D*sxoM}UQenDXmlez18%Km zf^fZ_R4tbHcBXis;dY*-+CVtMSxU@y?L3}5r@u#cKdKBz!gyw>END2MStuAK`2@0~(I-Db)qS5k93xwnQU*O4VE9_xGpNI7h+=pHh>c;Rv5n zQ=s9o`jlD?!Vx~DdMxn~KBcmswyhC9b3I4pfN+F!)Qo3bi}CgOIcl~eVLWrxJZLzc zIcfnk9M2q8_^d07EvniQemT3?N7 zo>T2ipm|=+do8MYUM*q*%?oPL8&S;*YMCXz?(Vn)!p2UFkfXZGFHBq=c^n` z`dZ~#(kSjFt32xE`Kk!yS&%=f5=(qvyr^cp8I9*fHIE5meo6Jb71g|?GTsJ(W`R0nVs`8lT zRW$;dO|N$=qE}V5CBE(p)r_UlvKFd&miV$>QwuC{-)AhOR((yiS>pTRb=48GdR=wF z>c*|<`ZHO*uDU_)CUOvwH&ic30Y!K$kwq%?u8D`fzf9x|B5$fpkV8P;QrRHK6R9E1 z+bS2NipcduTGcR1TrJG8`yEwbi9dEPRtrFQ)>^Daw3*WVv3s$q1>tvoE>@E*Sw8qm zD(gPlyBDjej)e2rV$}={&tr?#OlW43)zTcg=T>FD?^>Q`+Qll{65sNRRjws;jfkww z_t6%s;+W=7NHK+1_UljePu_h;Adl|;CxW+Z&1rdi@g!pEuugh#^1YRL!D zk?^tVw#0v>>togHNZ9WmtJE^vr{NpqK318IB=`+-AFFB*?)Q&XjU~PoAFDb`=y@5c zh3WT?)qG2QU$m=5F{^g91XitN^(eJZyXpXG2U)JVK~{r&qEa8amKPJ8)u$>OBnzZN z<%8sbe5Q&m@iDJZ3YsF)m~UyVP~{*8f~-{4AQd2;st)8FkiV!FOT6dL)qH5`Nb@As z>vPo_)BIJnL30CX=8@*Fs>c%FVqGfrk*TTo+@&%tX%xRDt5?aYOXY$*L1ZzJFVsYk zmx+8rWR;o>@;(tWR=-qJLB1ej&iYrYCXmELS|?mY@1j&QEODiONq)Xk3mnNX-`xD3 zNVi%9l1El)ZH6rAV`bJ7-D;U7jbbQi%-+=1#iqInnr&}%BVkir4>A-aOD_XCjEK2U zcr)D%ayk(c;pRHE+(mdP5%b2{Ep$G}jYQ11jI*@@xew%Ly4n&S&z8Cdnz^JgBXdhV z8Ke_dTj`k~TTgPHbM*W^e$4#5wO(e4pP#qUxu2K_-MYnGf!RjqcNpT2)Z6G%OZ@!2 zjV^N}oS(PR70~c;c^f?v8lIoG(XAjnKX0SkEb%qnMz>qiD9lmD)N~syJ~Qz+jj6@Y zb*?487P)#P2p?r~b=it&Epqi}OMESIb*&>|Epl}|G+c{ZJq{YKMXqiK;acSCPD^|( za`kFU=<6iZ7p4}uI%8$D7TfB4OMET1(^Vi`i|zEx&S)*R)2)^)AAA{kHZ$9Hy3LWW z7Tf7|Xt);J=}u@~Bde`wZ`w|m{>6CqZ|vVrms#R#v7N54gq~--$<<;zT@6wKvb}DI zS>@@8(3}ZPo^Fn5cF@zI83)Y{x)7f$XeD zTjFamMAt&|6*NQil$d50-2_d>&90`q=oU--j9s7?#Hyte-Lv^9HBkME1}lK!)5x_hu0Jg{}m7RXfcu^;AoISw(u9CBCd8Jp)#Ilb_Sb zPm!JtQfdgzYMF7-)}0{N z5xI`Y-g-62twerJWFOrF(oEzwBKzvhRc?eoPULq)hUpxT7l_OtvY*bk#FcJF!mo6R zC4SzJx&eeog4Bhpqa#7;GE4k>0;R5SBpeA+kA#Ltg49*e@OuKKo)5yapVSL2@hv9x z5=(rGNxjUHM)5Y)>uIW&)EzM^rB}zSl$f`u=fgA?S0lEO>bZ8FLMV9zl9HfUqb1AG2(xX8pf|Tm!nAO30 zx+7xrP+AG!PHzs>3u2l>^de|BET*@2lI9Sd`IV`cFa1!R?TEOC$})Zq)#WkGa6JN= zC!iUwt1Vfcc!oSLrn(=d7lCjO9;TOo@c21Qmv@`emk&ONtddmLVS0ok;b=KbSAy`2 zbeNt7D;__G=^2*z(MzRUGFH4r5t>!^;kv7j#*uDE#Da%Ywx);ctiRiM5)bd4E|yU( zj?fJtT#F<0L=djU5jyJ|SBp}zT4Akn90_Z2gw6xuS{$MCVa2sLLKj-%YjK1w>qAV; zWxB!gkwHZkN(zKam+{RT1$M)N9rk-j1@yRb1i?Ao(b|H`r;_v+Q-V&>nPpki0HzI zI!brOG)L>z&}?#Rx~ROHzD283-MRg$)noM}SaGXT zS(f-#Jyy@QWUOe)a;{g(NG(_!%oEgro@Mj*ygF z;(NJ5k8ng}?&s#H3SA4bGsy9JGDrY&f}R0#BFKq)A;<$%mYM5D=>F z#M{_n#hH2v zthg3u>LyEkEzZ>QEEy}>HgmN&OD}^Tj_@p9vU#+f&(gy|IKs1Z#}?5D&(d9vgb|*l zyFoa@v$V=~Rvh73y3`UM;aR%M5+7le9_OsWkx->OLAVX8^lA`}uu7M18I7Q!m2S4gM_8rjTjEE;*}5HmxDC(NrCUYY@N8WM!V#XW+Z-9pW0m|s z!(T8tTX%wRglFq6SaF1B>uyVYglFsQ99KHWbB?Y9;TAhbH-K>KARNy*de}D3isLy)mssNCIY(Do;#=%o-2lSl@LWB~S&4D<*2L{;);d?${@i%J zRlJc#-^!#bX7tU%Ttl2^v&W6nIhHI>6w|yhgsevC8W67OC|w7_H65ip92tBYSsn0$ z@zVtjxBMvG4Z<}YrF&q-H65kJwmu$nmNZJ|S+YE_iaZxlJm={;5RT_O-2lSzoToFl zcWrpeZ|Ew7waRuRZ29waE(phSp3Z|6$8(-8u*A3gd3rdkIG*!$GYH3XzMc-k@tm)_ zc8JDvzV3D;jOTpa3&Qc7uf>keisLz7XISFnIbRp_A*KgM>mo&xvmFs1P`%7|OE1#-F-?swgysvpn*3!HVlXMi*G(>pn&ghZXN%7wcvaj^|=M z9fae#SZ5E3#&faGbtH`EVx14d@m#D6V8!uVtcxu1@m#FS`w-I?m*^3Wh|>z`O#FBB z`G0mmA4I1;VD&zT5ov}-_PcPM3j)*~1=vO@I_e*u2 zCDdPn-qS@_+Aq^}AlyEe=>`yPpUZStfoq@p=?($&^x0*)+mWz+F4Mgr+&-7-l3kq@ zx6fsIxFx=QF4NVP__M9c^+abCMtHey2jK`W*PS37;pMt|w`hcy>l#PG2rt)lAROW4 zx*k>>;pKXqB|gH-^)y)JQ5%}y&Fggb?zXJ(tfWrof^a-_dS0Q6=XA0%ztPv}1&)OA z)agYa98aCj+9TRxbvn-yA5Wbwv1F`Rffdmey0VYv6zb(Gbe$viiA(dvw5xOjh|dCeU4&*FUZZmz z5s#3@tc|bHnZJx`uGQI&h-XRjI9&(0R_8jB@iLKG@;p}OgDfR7<9tJkKn|ccc$;x} zogM~q3=#8$<8`_e7N3nF{cJCw%h(T;?5 zzh2k&A=grb*XwbXtQdUdTo=!HJr(2>B4h5Ox0mbbAmT{?tByr%^s$*TysxbUidDKr=y4>Z55OtBHDnBN;b5lM-par+2yQMV5@sxPYvT z=GVFnnk$Knr;%`jZii+Xk=rckg61tEzaw&^?uO<&BF|VN_A;$;s~B=ex_Fn!BwY`3 zERoNM+@v##o#s*^X@92YTyz%5Lqs+ta*NIZd7sEuL?-JzOMHvnstX(unRlj(!BnqX z^{|-cHeCWuA!#;xfSwuAFW;e+BVq}a zbqJMphb{;C0_09z6|tmX`^f+j?C(Y61`7S**rny@;Lu1wn z?_NXCu;`inG%e65@?)O-y<4|hvOIAlk&)#29$mbzYaedad$a=KR=r18?&o^>HnMu_ zA!AkTNZ6|P=o%1i)q8Xcthkr&(eo|wt$L4cx5QsRY|`RarYt|gn{n5kM@oYIPP5fRjgq3*@gIN_ks9QmJRq&u*22x9J44Cv3JyWAQKz81ho@=AE z=tFw7BVkRa>z;l@DAzuxQQgf7cDl}TB(!>1=Rk7_G!N@ykl%njqRV4ekLnT7%p%P> zG%_F6i!8ZSyh-G68g(=DvY6E$bO)?flE$pM|Dd~Ln#Xi6G>Lm$%#Z0D9UWtj>pVxq zF3>!#%VV0EdIU85#o?K{I;MF-*FYo5&m~lgCv<}&8AlVTC-S782yzmU@s>;hIg5zt z_gT6Lq=tz3PQ)xd9VD|R&8|FW>zN>15^1LO*laz|k+3hG(hK^LMUIG@i|8G;RQgl8 zJ*JtXJE6InO8+fs=ICBamM3l}Vphv@bY)=L(BDBZM^}UJyfH_QEU}uwtz>0Z%X4&< zBjLO;M~?>Kd1H>Qffdgib993xe%_d)oBI$m8_(6#9T9_@(#1m*^IY8$)3oUM(3mg9 zn09W_ZT&Ru&~$E^E^-C!Q99><=xBLb=Q$#_qq62wSx@U?kllzF&(G+JnAJ0SBsBYy zW&v3}qibTCXLTJkhm+<_(mbmt#WeHu6lg}k&pbUZrg=^;fMyJ7mXM$4bmoE4T0F0_ z9T7K><`dF9uj^x)7xXx2?jX(Qqk)e(C?q&a@Q zs@p6Xn~^&#B^sw0(gBV5Eq&#Ujxq~%7c@U3axR@aEYv+t6YgKHX;ErxA$B8;`TgQG zoegpb$m_bmkkwto(CH_eLrWOaAviu(Rrp^H2J?>3i zafsCn<|Fl+dZZ)a9`~lM0^vRGO+5ovyvMz%XItX;xHt6@OZ=~9Z|Uwn8nX|+rF$I_ z6Q~vqkJ6i^wK~+r%-1E}*3BTi-gsM22jN=0t!oc+wczU#Z|izT!dkqo$ANGy-qyv3 zJ1efm+ge%TYw@-oX~|e|H$`Y-Zq@Z54~L`)q$MQt`uK5H3mg%zlE&=st-9g}Q@UTb zwCa(Li1$NHZ9h#tG%G_*VOiWyu_NM#P*ZNn^28?hri(*qw6yBkAl$00dL9V3YO8K2 zckOcuSsi1oCOQ(fYO9_M!mZk>m%xf!wN)>(#J6gz?zLpBc#u4s_IXF=9uuv_J38MH zF`G0eQt9vLx|n9MZh+=x_*tx5`e;Uz)ndKOk`;s7zDpAiQdvuNwQM2zNrJpx2S^S-WfB%E#jtVj1FwT_76$!ZEk_-8#Mrujh6hQ_QDOgn#|m-W+h zKyx|yNuyePpffA%7)$WeC?Du55FVKy=+PkD^5pq=YZX5E@`3JfBpjI^=q?Z*nIGut z6Py)~%nx*(CBAn)&{HiLE3T&q&B$D)TR?cMF4LWTtej@GBjPt?WoGqdTAb*5`C%fz zrxyEAXMoHlGSiZ5ke7*=Uj9huf-E6odif(=;7HgzAM2t%r2AfaB0~?iWP$j4o;#aZ zuFLyqOoYqz2uH-HP`^uolkYm zNv@swnDVKvb0qAYPjv$b_s*w!A*{G}KGm(3_}=+cueM~YNNaYz)1k9Yw(T6YPlwKN zMEv}Xlz5)nxkDGmG@t2WXf`81=6m9w>ESWW3SAD(&ZK#R{H)N`mQZUDSxjW5UIfCe zu~IJq;nrBGr<~$i;~uhFX04hW30q^Oo(96Lu~K)!id$o)UTukQjg>lUr19*3aqiSb zmN<>+_f9>`5%FA=I~VTM<^41xpjk-~n)BsOUDHof2hBU==M$<$r=HkH^H(B&(XEbT zm@^KucX#P_SoM(SOKC;arE^ZT{gsir&yD#n^l(SQ9{fU=J0h}3V^&{Z=(>KI259m_ z&Gdenna~U)joB-|(DNcVd`1;Y(fUh;5(UEm3`l>E*xaQb)uX zvNBiN|E4F!G+*f{&>T&z@h$b&S30-SmL9hJ*E-)3aUNRiYh4U-Gf1~Cx8#nDVRR)v zxs2XpuSZz2BJt8$^zNuZhKzJpq33UOl_mbpv~P5cC1d+&>fmR`eT2v$&)?|TAX#)g z-JD2|UJt!}l%kNIzPnJn%=;rXAsGN$R()zEBwzZ<>1dU`+2OlWowHLLq+dioJ@W;EtrozahE^&>fsh{LEX zGg^9eVLweVG^dj$k6Nr(SHv_w=#kJ|N}8YdCdCiBCZ_pO*FiG@njiI~m_`IspfT4W z&1@rrY5g=apjohxHS_vu7C^P zUX_V(d3Ya4DkyLyJf@_AA`qUDQb94Sct%PE$`U^#rGk-`G>WXd-7iq-K`qFS6tj4m zo<|GnK{AIY#Gcd|>A`f6LBCJ8zZeb*xtA~c%?^JALLgN4xCN1B~y&~t4;S4^`-&<)Kz(wNo7 z7D3gy(U`M?(T<3vq}h+|3Cs=}Vw#@?6QSvV=4U}mOtWP$ADSL$whS_=qh)OsWH}!Zct^3 zUuWh9OF(!p$PJc(@LrG`l%Hp6L3;syWylRiI1=s!xj`ie?*+NRG+6OokQ>af#P0>U z!6HliI&<5gtB=OaqT2@Dj)>8y*S10C`LE zCO;SrO_9-1g!w^3OtW(^5t<`NV_IY9U|K)T3~0^{HS;a;tFN7doC|CZhO4iggFF!K z<(-493tcbs>Wi!#3458WK)9E84ys_qy}WZU+7jQ(I|q|287r`NN61{fMlv&4_Xp+PSQ&o)DY)WxpfxtE6q*_T)no&^jIavcfB;m{x-gnM~t zPz@{Y<)J~1CBB!329quEziAc+GvVh*ig{~lvEm@3*2TjS76(}%9ARQvyCdRLD$Cptuy?RJrr9UxfkvD` zzk0ky&-4XZmzfCt$lN!`aYX!s{20x?K~YRIEEopOW)HcqBMl2GVw(Mek` z;(o#Cm_`P*&=irTi|#d&!OWOO1uf7VK$;Hnqk@GX#}nC!`a%aCF{>cxf@TzH%=LsI z=!dOJ&Ot#&of~63qDq6&jtqX4p3Ql6i!@Oh)I!5E zTWL@a!Xv6QXn+-usM27fC4NMe22){W$}%JB;9%wzC_O>F{31Q~7tCh@%^|_$E2El2 zf@UVr92(5NDylg&Sil6D;Xy}zR5Lv2W&+J&LFP44&0#?<6KD<(imr`n4i8G0KyyS; z)DYDi5tJ~2rYy)C8`YErMNFVMGMF(wsyQ;4#{`=922A_M>WR;*-W50HpssvOXHKFOLW+ zq2Yb`q+os@jTz6U1Ph@VG@VxOv@f3$w8u0fgHC9QNMr7f7#XDQh{k+skm-mxoHXWY z*r`E&KTRPtXOZRzD(lpsG^RN%D1+uIXif{7W17>0>CjwPK))c+40(Fc64O)$^P#zk z{FrrSWgtXCd~!E6wMdF9|6tOD*z!}Craw$)jl^@`G^ywLHc!{&Ry&>f-{{;QorT-K z6w-v)9r}IX$L0I;Qs|DiDIJ$q8W&tH+);jPhvP0yitmXTUCAeg)71^ce>VKpqTH*I z-iVa#ANkSw>$ZN9;#RvoO-!?CN(|k=_@`rB#IAoF9orZk{VoN68`yY^Z}XQBfBoF0 z9KVa#`*HDdJv`sumT#R{Kf9uy&fatO_X^^4so%aB+_iH;d}Q-Uagp^$-xB%SXnnqs zc#{6HoynVed>Ly89xt4Vx7@hd*ro}w*Y2)=c>8wP{!46^$UB}8@jTlNlpX;;oZgu3 z$~y`C4EP@v%NP98^;ezcbiXvl&9%_6-nCCsY+$$38%}JR63&jUn!xTB*l~NZUFKh1 zyX^v!*o z=3)CUZJHFrkmr>9?=Wy@Z~E5!@jT_z<0CrHi-?!|@eP!_7=GK4y5o%jpik|L^02#$x-eXPHv$VYp}(;d zPhY=+KlXnH{GEZge)FX(zZ&`E7Oos_4~}Df`*(fym!SNcZA#x5SYhHyiHB`IfxJ(j zhu-ND!X4L>q0X&a65_3x{YS|2df;>T`4ODkd41z&{l@RO@$|FxOxd1Oo?mm|hxt!U zFSF}Vx^jZ`sO#5wJ|XgKd7kq)e;js05s&ki5c?y4M9l8_AKbW#k2A-U;xE`At6(=_ zTc;ldf4hJ0^3iojLX3fa*)TUw*S9_5@x<+a>h^lX74?@CynjWv(>#Lx?v{w1=eL8q z?eqpgd%R19c1_s+kWCXJnx|`=m>>DLHv>9OpGN+trrb|l-+lgK`it&Rw*5}u-nQ!# zx&y}M)5Y_)yg{P(E2G;$Jc#kpfPQB`oW5f9N!a^#;c>+&>ldLuoL|>;efxW${)(43 zkl*My;Puqn$4R^&qy0T_|1U+m@cQ%<Db)0?EBxakK*&$Ue-@a9AMLgFx$;_g~O3Q%cex)3}cDc;5L*6BA-O=G^XFPF%kMMQ<~(sXzYwclmn~@w+rBc%F>r=^ZSH$HkSvagCmR zThICr)K0rv|2%Ie#m$(%pR)dap8J8fzlicVeFJ$HFTE!MejAX!i|yOsxXpP^dA!WQ z_Lps%6z#Bcd73|wUlmE|x+n6y{@HAan-6krniRi4ei%~D$I}gPoiAPw$LYKeB$(IPY7O@t=iTdXV<3V>%Pap&xtloiBmZa z)Q5HKpVw~#`LD9}NiiMQbvf?y;dh|z?Ef;@UjzLFq&GxT-XD2A(?50VdwQY{?K>Iv z_t-Qk9!Gws?OeOMG%5aQIejxDvOOu>IEwRxco+UYgxzrKFC~trG)eQZDW6j_KYteS zOY=I)kMGwUmuY`9@0;@3kIAnlKPE4hn$*=No;T&O|4m3|^1L5$p7%fgJ;2o?A$YqR zuL%+Fx2@oBAkOh~nh!niHznJ3LI(^MSaF zCm~#UiO@fv*YI)gJe0@B6K)sBlY;ZC=Y0IU`T@ju1^l^jm=t_GUShW=#6-K@uY)*$ zo8`0~LA`z-)A6{O1^$9f6T;;aq8t9-1~0&V=F+6#aUS3A___espY!pQ%i(d&ak4)i z$MKZgZGDf!@1vg1o}TQ&@g(kVU3CK;*W>;M(yc_hZh+&2J5NfAuPyiEG0tmkKcqzB zT{j=a+b5pSg>Lh}jeED9?!W^tv}saEo6u* zVe=_59ou=`%yGGO0*y0l=kzJ~nQPND@keZr@`PvucPTxwf;{`-a{k?EH_BnZ-y!eP zWcYhrG*8d9yyyCf(@l}z_wO|Q(D5Xm^8Uc(#8W=b@NvlH>E2rFm)`ge|89GKejv7+ zacPcsMFG$%M#}3WPUG?L`X*ivr}Nhr;�KT$B^to($uP@`Sk5>XYK?HQM!G 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%0Dr1gZIP^tZ4zbKms`%T$g*cD}~VY+?a z!fvV9epu*_V2llFYp?dxV~Filb_S;RjTVo)5A%8%eJiYTTtKRBOX3s8r1hinT2@lE z-1nI*E0wZLSWcHGsbbOsiREXG;;f@8EUhZ94lI+h_UZhGCV5XxwI0TTl64E3u#|(- ztcPt0MwJ|@ly*qfJtXVf1F=|@+7DJpne_8`#EPldTv!=p($CUY(l2YUobI)+9%(y} zT1l061g2Xh<(*^Ro3z9y!&Y^bBNa^N$Ox;gVkMS)4=opBO;s%D7rk6z<|q%-`+?Yh zrsQW)a%)wu*tHez!`=`(JIb`GQ8r`E*}g}o2HRY(Q3vLDh1QeySC^BX{7?7BV6>&Z z>J91L|IE5cn}?+Kt?M*nNPXj9rcOc0{Zy*7 zMfSBHarPUWAg?S}nA=Ed3(l7#RSwyUrMyUaWp7%-^1g-XBkw0#q_e?k?th&Zo4x5x z+6Cm*qvHdXlH`;rIX!HgYH1woJ!LhR+64B2igkqPQhG6U&rmaG7>L+BwcI4wVr5eA zM~E#`vE{JU%C^IFy~kl2RO|*!w?JANK5a(eq%d9b6pYmRn2FSSS+_`iCFA51C~u3Z zHy3P&vI8|NYhQx46hP`B6{`w6rc7Gj2C-1a?>1 zMp)=xaDIFAI3DSIDI>a!@{z`NIh$@nZF&!jv_{hUNb44~KCD_Q{UTdX)>8UU`asrK zwu1D%Y>#TbWj(IykbaRhlJ)q@eT8$6KIh3SL;6b2R?;t#_Mzig^Ngxh7hrmRAak1A zi0Rpl`-|z_;Mmvas7Nyu$t$xPnbRagDcMwQ8EH?$@~c=0SP^CAVY)3HX|lJ+V`MF< zmYayws>*_S&a=wqAXZmdFdJ#CY$0NL-&oGn)wDmC+*0LubH4SklmWD_kVDrSseS&L zu+=U>ZIMbzgXLaT%Qc4SR?VaBq+NpbQp@dH;XUk)WM@r|(lEUhUSw=MZ5{15+LPzP z)?2E)>ae$!^@iydtfKu!lQoi_4EkR8P+)pJGW}{wksNZ4|5tf+PfCt|wcK#k(mbeR zfSMN%gpF0PBdoXe`LH!r#d^T>?7BB>rix{3WIc=xWal7se6@4n@=OAw{)a^SB`)_S zM{vEM&vcJrIlYb2(Q?6lRm&Bjm8MmO>Dn65+QW1yJ!k`9S5+xPVS0UM!u0s^8Dm>$ z)zSC&RgQgJ?iZMj-QseOUofpt57WnaW|&^LE-|LpawDc&Q28b2;rbS0-jcK`v_>%9 z(wAYnrIAKz*+y?*xy1K_^QxSCByX^dba_GFr%=oNdp)j833^;xq#l14ZP9mZg1*;d zd(fv(sCt8*)E4w^Ruv1jhc?+p($A5$(Vu%zxR(}H=YK4z99)NW?n z;g3};n9DCwHUZ1&wVWH|(057tntA(r#=fJ)!`7(0*I}ELCB9@z$v`Uz)2)(HByX@^ z?MhHeY2?r)|M_}hzgkXm)WLE(ZwFd$*iUM?F|;`_U7pmt0d@n4Zp8HdTpV^o<&|@k>?Ku^s<%hOz*IlCq;;UZO3NQ> z=7e%(Bl}-4v_$%4|vIz%uiVG~bm{g7cf+ z$K_bK!8(HZRe7~W!ThR*vS9XAUsHWSbthI{uqeW_!)Eo51v+9^h zbI5tvzK@Z&y((o9Oz*{?!}Jlq2KK5-mHC>K5}bSVmiY?Hy``2r0DD{6G1_mmJ2dxd z*cz>tOH0c`D+AM|NFC$Qr+TJZAF1!DyiH*`cIsD?+K#ax?=-bscf@8X3&y{B%7Xd9 zGG&E}nx{r$L3yiHY9Hj)W0Um3aKzTB)JZVCJtXfe#5SwcMNC~uljX#u6e(F+AoWUH zU|{mPE8UWwf}=sZk)Vya{Pq?QX|kI*^JF^80V1F_%La=~2r z8tqPkI;6H>FVU@%SS0hVnbrqw(bqUZTN3to3NDuxW?3%&Nx%I4)JR)K_8hU`xu36U z+l6Ndx>X1Inf>J$VmkGS^!~&BU=A#i8pA$-Im+@gwJ*wBrjEf&xSyCzm7E)Elv>#p zl&AM5mpR6;UfJgLMw=EKWa??=y+D&Y$H9JoSk=1=Ezs*x67^}xtm@2>6+mW$B zw2x`aXxnK=X;*0B8>UrH(&A_}Xsu|k(MHqe(l*f!(k{{bo2-piiPnVHg*Jlr32htg z4lVU9Q*vQi3)&FcLfU591=?e`O({ibEor@IBWW{eD{0@-exzNYrMzS6h^1Ahy-4d% zn@n3p+e9_sF~_sCW-vX9wxL-WOpcC- z>2v%5n66_CT2)`wRtsa@N!9xCNNuWOAH!NJTM2tbnVc*3A@-Jv9f1u~b_zB|*>A83 zI@Z;)rYO6M*vHBe-!qmDwnW8(_Yd@VFRhZ+$6&b?YB}jESr1va;#h8@TJAZRUf-6m z9V#Yk`6^?wz5@~aUM(j*eiz&FNP>DNVY#1GY&PsyW$R$qls$S2?!|I?OCN#h`zpWC zF2Qu0?=cqi>3vmlah!2BsBPrl4_j_1ICo2Vk0F*^#bp1JeKG@5)2P&3u=L8}U|E#C zGtjaMDl3gxDP=_m;7C?h6)}A_m91X~v4$$O8LYLkjxfD$(tq6%>!eZ#!n!GwEf}e< z_H!SX*@)CDvzAAv{*yW35}w&*mhtL2b0kl|dg$Ib`(()KrPe6eo3zbFs-AsC+Ovc0 zrc)Qv*1!g+Que}zDwF***o*bGeWbZXJaXuH!~q zKzolC%<#skEwcczsmkOI_)5g|{PathJ_6*~w#SjJtXZ9z{%Fsb8ht zqq&YrO-hTjN2EcjE-w$QJgp(^HQESTFy`p<$47|ieLT4Ko3C0bsX^>h75fCs>GeH@ zQGU6Kt!FHB(Ht|o5nHEHr8gqA{t%Yat-nP}?wVL;S{YgcS|?gR+AP{vv}3f}v<#l9 zBaZewtrKk=Ot0_CSIoM}*mRjA*L*CuS*`CX+9sIp)19;mza7Vrq2t> zd{fHOO6J|3G>GZ*LI#*_Uk=*S%#ogR0cok6Q)G=~EraWxJ*ri~Hb05_VJ^P$@UFO(c4Y7(K*CIc5v>NHJ778 zu1#;TJc$KYpGj0+vEcbf8Wod0@gDN(^UPymvu?RznbmRyVR@BRgcVix9IS$}=CqD5 zeUC?;?Da*grdn<&tbsDQCoL@q`bFOf9F66gspX{2f$5TiJ4)?U>gv}VtFy9+$kAQd zRM;EJg8O>?XhW4r4k<=T_{E>N@5o!GU0j22i?>g=AC=)A8Yewr!n?>75`;8`hn9K=N zB#L@CTh9oar+On7Y=yECu+7TK!}ckwO=}K2s$#*GIjyWcVi%PK$A`WmsE0SZ^u5v` zrmqboM<1x_MHR~oYpSdeOmB1PU1`<$%ihB^p9-s^MmSl{ zTi`vsS}c!J^mStwJY(*pN)AS|ZpvyPwU@FMwC=DWDmEB4R@oHBKH+lfV6#-}ewaS9 z-=IB_#KelgbSX7xK?@eCyn!uM)(WYsly##8b!_8uKPVf8)Sr|+|DE%2-RjdOB31X= z4BA4NKB8prl&csSRb;vK$Z<~9A$=O;)ujaID1A@x8`iOpbsVN$VCq$x{g`QAG%W|M zAgw5^2JEV8ODmd>!HU3Io{l)rk~}w49;cx{1%K6iQHfmkWzwsEy+|YDe|UPmX;=aNiM|F zsno(WNe%Xm>?$=VFOM=wt$-W_RqQ!fQDt(DZ-JQJccoSB5YzW_WX*$PrnJi21*sL4 z4TU|UOy*qgA@-b#Er!)swhh))*%?@CWuask6V>eI`X}Z-QWnJ8tJLB!oufKTw@>aj z1#`X5YPqIN4eqdXSFv`8y`e19e%cwSdO!VuwvKk0mNL0nt}^W<+8Ek$+Ai8znw`Rw zl7d!%_AISAtqV=A4f->-n6{ht8!eR5)Ru)7M|+0WlJ+KTB5eunTiQ>wt2F0vQ(HD# zDOzhp>evn??JAc8GQ!rtf3^0qdvs;>1rxS%a0yJ+h35>GMJXn7$KO9yU@f z*AzBMStppjM=M9|TZkn*YQM&HRAKczO7gyg<)*1pX2J9^xQwEZn6m8y+q0S5_SMld}C-?wqn;V0upd0H$k8@+8io zDm4R4&sB26bZTLy25)icx2a?~*;GYb$qP%Pa>zNQ6k__x zV-1-8UgPoQ*2Ak=*BItM|Xuc;c=t7fin&mYF6;g`Ay(Qgq)3rDzN07P=0}A!qwP*s5S| zmP55Am~qF_bnMvoX5Jos+sxZ@!Sq#3WyTsX){U{DjD5t|7mR(+nACAPLhLSMQm=Q% zv?Vo6w zual?OldzoL|30B@qn)N%>CJNKXiw8B(3;X-qm81?q%EV#)8PY*$q^v?z1(BG!sU`= zFs;f=D@&_KlOv@YV{g-BZYIyS&rdq zp|~p7$Lc$@NicmkuQrZ6ZPOXs0@Hg=XtXi8Q`sGCf>Lx#|L2iLw;&j4 zw8?$Z;QCz0WR$wfb(2>8-}kfhw2^GVXE41NpNHwaIO9`hAFm73d+`96-iu{#I*8+Um#RZX+fT9F zK^0pI(`(t0N6({20U1?(e#Sg4_y(ou<0H~YbAokTg#D=M4aT7p$|8;Je_%O1qNmAZ ztPt%vS{qt-+WWMxXvb+*W>a1cS~*$^+CbU|v@dDLXeqOp@=DU$()!Y-(N@v+(~8|U z=ifmmFiNS>_R;6$iMU>fQP&G{wS=6SlME-u>8_28Ym~Pf6 z>#W*t!8ob!+DF=gX|SB$f_Z4wXfM*?r)UposdAX|3eqak+R_Hl=Fm3Nj?@02$*dqtPE$uoS~J>P zwD)LV&<@gmq1iE}ybQFWw3@Ww?wj75>LaE{5V->sTwh*Mdr51icB2i3-BPI|VTt_U z8b?MInMF=SY8sU~AEw8b4Kx|eGv?)rva;wHe}^D5 zV!F0UFuiUKX;QD;bCbF9Yg}#+?X$jSE-;O;5s2xxq@?xIJ}FPmLTA`M$-5Bc>FX4! z<7?LOJx%J6vHd(!^_ln*?IujWKjh{%Yo3ypjwbDkbj_3v%js4fI_5mIf{5w!o0K9Y zmuAUw%_%bgx!$UQ<@AS7>n|{E1L~_L)j-Vy&geZbdN_GpVweHJwAU&J59S!OP9wiSCQ6& z)`d2l7PLU$-Iv}7?q}<#H`B44-hz?tfXnPq_S27$W3XDc^{}zZf_D+8Dhv8q+cqxu z6Ksx3y#Uj_af=q*7x+x2rnzFad2ok7w@T^_wu0VTvQGwg_jP%)PZq0eW3%6j zt3hi`3-;%oD(|a^9a1Joe1F7FsF+yrT>Pwx4M*zl%HD%rQ}!`T-+5XD)BP8h)_?ew zi>%Qar0P9(6RiTChEGuQp`Y+}jDD9%?kQ}=a{4($W_%NJN7W`zBn}`|Z&f*4{lb`B zyIer*;a&o}uSyA?^}6BU%p`4*_DP#%J%X!f-FmrOn~Tr#gPFcgjm5ns-6|`uxnG=w z77f#Vm4{XqrrTE+rt`{r1lO1P-eG&B>TB%o%+U{~x0dvk^yyfn>QP_@a|9!%uI+Qg z^tFbJv5S$KSoMosgGuj3y2{^#Qgo} zU}=?IgJn`Cdu(v5=1?)Y=9Ie?GRg<*8>^O+^_A zQ+eg?huqcpt9=k@9Cz}WE%+3z9IZ2L5^XhYH|-WJOMX*cecE8!9NIS8Ia;`Y$(w`L zmi95MhU$ZtvVMUyR(_Pns$(Ok(RuWX+b7hL0TEwxGd()+q#U&7VON}aN11TTG}DnHCl?NO$)Np ziqoE_b)og6O{PWKhvqPK6>SGi_OP>zMf#iGvi~J1Y+Cvhtq4u_$<~bZp}kN0gcfPv z-N{thi%&5YRm8L)JFN^Y(%#;PsV~un&>sCea*zJKIT^$5VHDMO)aRk(=hdQ*#$Km>)D$Iix%}Zv{_Q+NjhmC{Lep_Q3S@f}GEPMNE(5H))|bGXsb;Dn}u; zvnqM#Sl8;VOs@UXAywCw6E;Al7J>~`RvtE9S&o;?T|{}RRR^j1%-NjQ88%tv7>^vf zrShg-Z=~v2@Lv6NwcOi?%~m!ErrRnpRM|FUlEA?Y>QM$)P} zXsMou{gWA)wC@Gh`=4p4j4v;trDxR^l-B?Mr_FMt$cQAfW{JtWQ4;HqHP^FTIR>NS zEbE%;jo{6*`?SPS!F7d<^24|%%6UP)Fb}@1*I&B_S1kJY7>gXysucMmNZKOb2h7KE z`q+}EP_o=|*83gpGOb=(bA-xFTFw=+&HZAgj#RYFG&$aKA*R3H3!YVGRjrpN%kssc z)FxIKdG)tYWoXaCa;Z{U!Jbyu4OT{(ygM@w*Nys10eLH85SG)&exy0(NTlkkqB*oR zw1c#G+6~%c#ZBI5T0vSxT5H;H+H%@%n)HEObDlsM--ipA zh_YI$)ZqKFmzAY{A!NOtpcHu*Lh8+kyt=PqVS3yx3VU0Z$FVrrBlLSgm6;>cdUKwx z&sd}$mzjA>ET{Xv2=nHr<)U@Ma{7AO8gG8*xZqr~$M$Az!BYx-1Poy;T-dUPtJaT0 zOsCFZ>SEej+IO^g+R8W0SxEZj5>tb>K;BVxbVHl9J$lXEl4i{_(n`|g`9~why3r=m zR?&i|%@b7%g15o71+AK@V!`ZTrm}za7Vun^8oUkunX=$*a2@;e+u&cR)c^Tya9v99 zHuytBd6C{i|Npw)V9j@`HV5{dvfwTBACv`ep=%4?LO=HxQiD=%tL1`wc)Fj}8x<<{ z=eu*ZuDk_j7W3(SypCMUhtJk*7s`mRuTEin6+?Saz7s z5!~JHqhciy(?>u9nBIq8qrFG_0;bQkhiKPf`d(@J(&pagvoL*!G@e^fwpQ>S$`Dm= zuxIP*!C>qht75@&`Yp3yn@>_PIVys@1JqLhSx!>rm=+64o~cR+z7(CSEYg>v!E&Fe zRQY1_(cff7`Vv#Vzl`*}JE&u&s-qWr=u2g9!*q|o1JirhWY||KHOR4zwp-Z@q<*jL zQ<(k*vvsuZXh&&hX>#-g&#aHIb51JkLwVb@v8U0Nt{ zaK?G`nKM|ouv+eEl%i*rrD@O83t};U!u35Y?(-TgZGEx zR9?vusXQ6Y@UI9XHQj1utt3n)Ej9OxQTiPs^w(6 z$(I81eZUo*t@M7Hs2siuRXOCod~(F}n*$kXMQCe3Hos_C1u=b|d30aNy}ky>q4%pu zu`Wm*quSD!%jJLBvL>jQ^pK2o!I-GmV>ohXn@kJ7x6-l2jC}#qSCu;$`+;_rCUwZs zEpz@Olt&|)4#kF+$TK2de178BS1#D zNB`o^<9ORz?|R$pSOaJ$@QhYa}wz)UuLD#utxgGTg*OK1JhSe zdzl(MyVJ`>nm@;5IsF^DGWY(^%yQ*vU-t-4_GDHsb70vwg6*dJ8qS*>rVft(z%zY}U)PjgrR~G3?q#{!F^N*G^`5H!^O!Z;v zd$dU3LwwHE|BWvr?GnwYV(QI8D^6=d>q&c$wubgIEvl+1 zFP2uG)|%FnHjO6VOs!_@pL{)ah^5@5C9P)K_n-c@DiceVU*eGOt%@);(r;+Um$r4e z+-tO9w9jZi((cgGJ!96b6s-~ME!rZQeET)2hk37W8&la)B)H2M1HsBNyOW&KAVM^}9Lr}OS8ZSoF0WnxvCSKgj&&-NWm zX4c~s#$>q(NlbYulAGmzJ!#q^%k^Pi>8tYm9x?dKq`G}$xt!#E>j(2&0uq}NVYy(9 zbf3;Q-&J;IAAHH>wz7Rv zhvdD=KK+i%1@9#2dV_ZobiERb^cAO+d@q$*qqqmAlq%RabSc3bLb~MOh|;l0Ux4~G z%-o_fO#d2UCz`|_J+F&YN~G9ql&p{Bb*%RQO#cq#IaphDtXegrtd7c3!n!Jxw#Z%Q z`bgFD(>b_br=Q`rWUM!B98BMd3I3k2{u}0z{<_(RSWdTZ0rN&$?sulz&zh1`!gStD zF#WgL3c`A-)(3wdO#fZ7iiq`5vEXl0>c0%x05QFdWGy4bhG9AVH~(b0e-hh|@`fbn z-G5TvU(Floj!3Y_>c8apS4#=LPSSTE<*#=Jzgj##!5THJW$skIKns4qbDCQ2kZ<;T z`908}6n!joK@Po#^`pH*`w%uul@fdlrELjg!52_E7JMJ2Z4*<2dk;D$f34+-ssH_N zv`DJ_EtlOWMSp`Of43!4><272FF|hv_d)d2*XN(Z(_Hn7ZIO=ENO@Z#hyG2wU~4T_ zC3ivWiv)EZ!r4*A`!+DN^ZV9nL?+>9=tuN2G5bB!?_F7IidE(3VK;`>V0* zD6eIL@`^WzvR+IOi?rNdts~NMeNl&=H9vZP4n~kpsx3>9qnolw`+cO?dgRb~rH-Tx zF(*v0Zjp|eV4T!%QcB)nEFPF3uNq_3`=YX3q`ZGM7HJm#zY%MTe$j7n$$G3sY*>Qz z{j0G^ibBstd0Kr{vzk|;7RZp)zW5IZh|s-qSyg3eOz{f=`S+m-K|J(cFFr( z|KyFWf09?;)9Q~lf2h`I4s4;aU9c_6WNT$zdI01cq9i$t*+N8Oa*f=DGtniWJ^?iaLAKckmk`|sC&xRaO0wo+J)K^u3$91C|V zpKuX*77St@B6%>oOJT)=wuQg$i%9TGswu2|ppE}agn#*?6C+XpwDC6>lc20LAg)TH zA47ZtXj@NMNfFr?oeYspplwB4$q|{EJ_RDPK-+rKN{Ps}ERQ3y9ki{qRw_hNWKE4o zO3=2_p=_M9vp#`HHPFTkHX4ySS)W9tE@)xaq0 zN{$SOUj=Qe2L6I0egh-NQ;1v#ZL6l036VWHGb6GWw5?iJ7UX>n#Bq`{E8^dQwpG{4 zhRBJW*%3Jj+EzU)2bQc4Mp?h)%!&9J(6$=jFUf_hh9JJZ%b5%DbD(WCvT`Hd7{vRV zIrAWX9<;3{RxIL8!6@sGoOuzy2in#P_&ao%7supB#072qb+!VCcrgVL@j=__X%#}= z*TE<&9P>2dQJ`)0vI-;q28b;eQv~tEppC!f7KeCWFv?02Qxx&XK-=nP6+^r~i1##O ziX)y3w5VKEgEuL#=KNUIX!qrfPuQcPvUD}%N*8e2Pr zzc5h+@&2(@5g!2B);rkRA!{s%b9wADh`$Zm);Oy=;^V<6Yfx+r#0P`6^)9x22w%U| zM0`l>vxpA`ZEGU7f5@5y;v5-JmMok+j`%sgUE^4x`>=7YrHi-QswjttYK->Bldql{Z17bgkZH)Li(6;7cj|f@w zK

    ?A(mF5r8EF`6@i!^Hqq0oIx}{P6spnEXR8^jzV)wcQ zUX^uAv-DoKz?65k$_uZ`x`i^n*L6#a^76U`CWgFXfLFF|A+Psy-O{Uky>5Yt=Lp3E ze~{KKH7%9?aGmPJYZdryt&_LXc%iQR+k)`!vR|O_>$F_sINN{1iTZ6mjl20`=8eCo z57!0%X7sSHxw)iau4@pJmTPyT*w>e)pvebr3EV998VPnkZ%xc~4YmgM{6GIgWj*f~ zcLh7VV!jgN6FmHA{u zde0{?W9LGR9e7pd6Uz8r=aW(8<@p3AhHoeacxCemdA*<=d9+B7uI?zP--u-6=0*`t8H&j5R$p?|ANUiGrG zF5Lt2*+jn_FtV(+WK&KGvR!$AXE z16z|luHpx_2DYX?Xkcq#Yih)lkvTb+nEG!>OuO)1(C&8KS88rY<8qBC9^VI{IY#TQ z=cQ?q#$|+^FYJ7q#pH|smcXrn+X5HF&Z}0}AnKWY-5Q;ja6BE-IA7TL!p^rp^fB0J zyFyynXfwu>Fh$4Qvf; z&6n!6xB0E=%ua*aCq2I66Sf|jIup}xy94(I9#H+eEd8>(EQ3jdf7tu*u%AZ^h#e>S5Xx#sY#KgurWH@QK zpTdsb>~+gX(v$CK;F|fBvezcY=UCEEhxM|%AHr@&*zK50X{i(ZyDSaC?m6UD%@6o@ zyTC3NY0ZsF>wID73p?L@(7@Kf*0hS<7A<181$nvt3$nXD`#)aM7lR&++r@o@y29>y zZVMXNcIFwEi?qbUK0t>wjtBNNqEqZX2|G^Mb&F50pJDGWp>bZ=Jx_Mae$BJ;rTbaF z`@}oEQ}hgG#$-L?o~7Sv5m!~|yOBD#z;lo#IzvT$Zj$Ur%l?4UqB$jTzkIsh1_BQT z9v1tWoBeF1O<}he?Doou@kw7=V`?VzpZ8@mJDj6Ev}C6b!|vyKvHJ;ZpRj#4i+x>& z-HyzS`#e{b`KZp7^{rW{H`w)Gkly}b`-knnJ!oKSU~4+XE>~CJ?!=UyVGq16Xyz#fz7O+8Uh9ouZwTC|v^y&;-{@B!)tLqtrcvbG{DC2v*ryEdS zzNdqU;U2{Ruk4o>(qvNCe0d>@8B)f zb!}7{$3J^*oj+VFTYAt**M4zg5rqx15-3S*>DYypO+@VfVERUX^QEPI_Orj3lPdz&-;2`x*rMJiutubI&pscu4npJbRsUgwA4}RPo=uZRJ{7E4#0i zbz~|K{V>c0Rk?oYGR>!Qf{oaQ2jP8Tn0w8nMd=d;g?XOc^;}Q7?A6u)}<_ zJs0eC!9Eu9LVvH;f$WE%iERIuuU_`Kh4x9VPw%_&46z~kqz^QT-7a~tV{Q_=UC_Hu zVBhb<+~;zp3-&$i(3Hw}VQq|_eZr@8KTa8UQap2N%1nLQzPIeKziH3?`#l$^e2TeM z{(XN6`+gJl{U&KSXM5!{`o6mOdF4ggPHD)Oyt)$8pL@hEd$-tSF9v&Wu(zu$_R}Z3 zxj*ng;K9VDxgzjrVAA?`Bw^~1ISTe~m&1HJj^DK$6O%7KYd>G%y1>L~pRj$x_6gf( zeMtLsHk0}LiP_91y}D;fd9l};3!0|D`M|A#i-9`>_XMU~lm-8==h)t$aXq8y3--al zLxCxm{R{{DNZ{-jD)m+qxIS<$F#X5Zh=yQaq%rll#^Ck=F4?3ybM*n*15BFI z+^BfmPa1TOX3hsqbKv@*!6)CqKV1IXLcUJRckk)*FDix;q$wl~*9e%t&0cO%yrOT5 zJr{K(eQ9nN`+L`&!QK^^F*T~Z>UPPNzO~5j7u=}*$=lRtCVggd=2T)(*YlWqx4pie z;IlvQK;R*<$2;ut4tu?{wx%vct*+)WbvF)%r~-?L}*j zZCIx|bI;-B-#=Yf^>BvjAs2kY_6ggk+m88aUX|V#+t-%hvpP+I7 zXYb{J%6`Sn7zQD)H z2hWLMkC*<$T(bs({oVSTs%XXjYOnO(YsHWEu3_RQFMPTzu-DS{Y2C&AgWYvCD0Us< z$Jaje_Jd|c9g1D{;lS5zt-jG;o%#K+)|1Ij8DYl;dtFBi_#vM8szc6&@@^aUdmGE| zp2ME=N$a|uTcdhV8y)_9HUsazQ~5VpXp3WZDE}sS$u7+y(%h!`ZMP??Ge4AnWtVwP z@7dofM*n%~X*)DL13gyHL9(Y-+6#6)pg&IUVX;<$w^h5tHPU#kg1u38-cg0~V#)}& z1pBGM?!Hl*@?{>wCwA6Rq&-*qM^u*CV(YQ9#$Z2f?ppdiZk6{=m8&kLWlX`2A70TP zl7_r^7C@aWQQFzDJ|~s;5+6_YE%nX$U#YIpz!~OG)#qW#_rDG)$C*1LTPi#A$#Jq% z5AZ38iNS5^@8Uis|BWG@C25UE{P5{Y`+I4Yib?yt_%ZQ` zZ=5ZCj~71jKdVdM<0T%Cg(k7b0_;AY53!;5w@KZvURA!-f4}m5Gw}_%^0$ARLt5&Y z-$}1JNqW`cQ_@cpw@Tyw1H0W}uZLe!%q!NDf!`9N=i9=rw~gf!{-gZYi>aT{#FwOb zV5%B!X>~a*?`lp}JKBF+ih=r{tvS>E4ZHhNm7W{cJX8Fm(V>~3HDo9X|w1^uvB_33`qFUC&agQMN~&XpfD^!c~s z=RW1NOy#An?t7-XlrPs5t|K=op26gkIRUm$ct@S5nyKFp7)~1I!_mMsU#!FfJ1y*Z zVEbX*J*IeWSH6tR)xK4pbEd3S_QUTHGcQqZcS|!*Wue}-d0F#tsGmCdbpOwZDKD{M zhq*2^h#doC-2DMwrWm*`%$Lts#6MGBr-(BLOwRO+`L6f|V%AiR!9Vr6s7vqA%Z{I| zrD0xeN*daQcBg;-QhuHPO--z8vE%^ zdg6qm-Tr%n2DYXz*{Nr@7yAqYK@VFGJ5Ji&<9#Uj83{~%dTcIG9dcjr8`?t5`h@<> z*m2)BQJf&;C;)MSfbMFJ4S5d8TpU}5$D4`ULP&8oC zC$i5E*|TTQoH=vm{CTC(?^UVn;q;w+ z%6<&|)F1ghR_u;hbJtSrzryGC*fnpDiE}^7xip$@AIGk-A^)qGyQ*@HSjU~_u_w{2 z#jbB?Z-EuVERM%lK2fx5yA_q=V&gv4!!fIPN_7VIxgDD$$ZLc-6EgL z?Iiu^u{QyG?5)lHEI_a0LTyodHD`*C#9ni5h2!{5xE^+2h`laq$TiA|*yBwa`Bcne z+Z%Jc{GU#}Pi^G89{iq1Q*M_Z**j@hnRw2JcjkGJ6JTlVNA_+sYOnO4gO{PX9#-2= zgKvh__A}wzVb3{{XU2)r{5n|cTWQYv6~BF)k8__lACVt4ZliMe8Or_+yK*R>V&_D8 za10uIb2*N5Jud%?`E3@R<1Uv^V*5OPo`l=+uXeTO?bX;2yHCZQ_u8MsKJNP3i?Q8> z#$#K0`{`uNdwh0dcbw(K-jmq1uCV`SiPJ2*e12Iu%=u<`B=PfPUiLQZW7vJ%^(L`N zb17}VTX}##1@AFc=r$VnY`$1HZt zV#i#clx;}3F=4gKdnQfTJ(g~s#dku;xqf^4a^}q1x0JG9P;Y;JUeGucI}a@L;v6@I zM#rhHq5c4m!N1!spWnd$U(vMY@x(a-`**NcomH`Wzesxh#^TP{Rj*^N;yBW8 zZ@mz^G~c7_i*r`Y4X|Rn;fbp3Ah<2BOZnV>7rqO+e<^z<_SQMYvCy7qI&#(?W+%M$ z`X#sPT0?gCiJhDr#es6_+OtmNW z&V;)X?#@|zYdx@I?u8w*G>%ixE~+l+WmkK(PuK@L=KkESu{x00#m&brS#me}RfZ5O+}TR3)Z z{0}_0IiA<0IMe4gW%si#;(zB^m(n|mXI;d4uH%{-{KNmwvo31m|MXdx8tU@1E@H*- z1!53y>sc4o^}qS7OB?n2Sr@V5Sx-FT|4YxhWCs+_x@bRB`=U2BaE%Z5v1dD#HL&=X z?9*z@3=zM^{4tzU24T$=dROjt&WY9x=bBsDmk?|3r3Jm%W4p{f3m?B?AE%>vSsgFq z32SZ8(J(z*j-QF#u6V>ghl;m8Zv%T?RlUB~Aoej;dS@jD)m4|U;_+NjkKJ>H*vEcD zqF+f4@8UPONB+uOn%KK`FXp$V#7`p^e)4}gZD~&IV*6K|(tI3EIoHH*pJCUzSif_p z7?gj_htjxg3#{C#UFsvV`p!8KKge1_=PdDouc%xLXguh7Cq1vCW5n-qcP2hZ4l4Rf zZU52J{Kgq=??U5w?<)3P_1w;9e6w)QiSXj&V1E`n!%j^}sAFXtM><827dp(j;khwjLDhIMSt&-n*W zP0K#}YQ}2fX9D)P6}ydM`P8|o?xjU;ODsy9^O}Tf6IO2hzI+{a_e*`EX~(C=K)mOU z-Q%zow!I~>x8-G(xAufP67C}>&O>Kn?@hQ1b{oZRdk^e2Ltn1f7`u>lseSe*_S+a6 z^>1e!{f+Z-VjoO+DB>~hNfk$T4y z%|ybJ2}}P1^rxfOxYAf%kDt=Jl739MHsOBO2JX9t#4ew&!RL4J*_7DJ3Aey5+nU(h z6YfY@KL7sg)a`d%ku-At@i9KB>Ydl+%u7^9xgO44@d=>sNZyjUl^8i-}48A<$T&hfK(rFR!OugzKGxdHZ=uZMjsG$r=N#NMBb^ST!o_sj(ps)PvD?4m@51i*J7CA(3H$jjvFCP` z^}N>&JLVqPetKd1=}RH2pd@hQ8XOBqb;LkUac zJr=R%5Irl^oyQ}e!{pOremE)H!}zp)9J^y4gWbl7L_f?mm-VF!iu}|jT$gZt!g@zT zZPfEQ!!Ih@UQRSE3AZKOnsfANVqdsRWxwK9<_+CT_1;Twq8IyE^BAkm$Jj}Xv1`ar zJ?--QEQ9DbewY0Y_9(>v>EE#$!RKR-R{V=EyXQaq{Qo#U{X16T>;J?4ODl`~i2u{S zV^x><7r%2(<(sti%#GXnO&Ny#R=e2mF-h-tj%44;`1BrE1MEF6vG=$d;m=X;`5XC; zI(!AJcWlKUfZKEXC*k4T-kb1OVC`{9e^!)PRXnd?~IPgDn zy;;Vmjx`-G>Gh`UzTOo7JJ*|S=>2YmSnIbpu_hM(JJ*|PzL|GxF2@RV#hNGd!7+{ zo)LSV8A&u^YsA)QO=bUMiC%2I*!t3Yiu3pccF!%fiM})4CUrF> zd^AhJ8&*}Gm(%^MN4Q@8GWWAoR`<44ww&vA4Sss=U;QFJ`>5$z%lj*Q_iLwT8@Uec zWUc7E^z+d?j?W+9=R)`!`>-dS^ADS+XR9yb+A8VK< z>92r4y}ZK8$&+Z52d$}|$$9#5)3fTgRqFlqFZq4;Z!>?+FZ#C{e$P>*?3`&8jqjZJvra8l>Iu+N78)l z^;K~`>gTv{U9xZB`?0q_QPJFuPo3|iaSUR|Fqil*n=vixoX&Tgk{HB_;p5aRRt#6= zy!e!=>=YjQmEG}(w-t}xf6}c*KrJysda-cRb>M z7S9+O=T__-ik-uWL?gCFY)u#Jkr1u;y)^&%D$1aXF?~lpPMcYry-d4?CP2#_u zdL4g#VsFSf<{#MS6hD9X0*-}?@qakySlvT!LgRdjohz|(rJNkS!--yOz1aGZT(7mtc%m0u zFSdR%(TJ@PTT|OvUke!&d2V1++zQB&tPH~+dc#9tmvWX~W!=BBn`>bAsr=YJ3EM9A-j3Kg@5}FNXg|3DKU>#bXgoIL-+HnAh^=W% zG5)mVIO=<|XXj z`_&$l)`7YYKAHFt`~FesqDtQ6rzT<5<=DiIO=IA!{dwnzyw#%j-d!E+IPc1j>kpx+ z$L?|4ko#BsjR`j;?BBtZra7^fb5@-4<9J#UyL{T-n%L#vcKP=>7yBBmEzzr9>)R81 zT{4C{5_@ODT{&wEi+!AmT~`n6xkc=`MeMny7uI-I9{Ll#*m|+`1BreF_VwUcZdcwW zVAm_QAF=(E-d||M)`+dCfgM{zq8D2)PW8@%%AS_5*&36wVwV-WY!mFd%86cVy*Smo zE|qm%tw~w2%ZgpL4OU&smChqKyk>g#G0hK&y))sig!>cjfgQsT?7kRIG$RR*<{Za$ z&Kf^su;&)BkL7XL$C}Ezu3lL2tE}vv!)3Q0mG!YN%^~!K-X$0Ne%~bQJjm`Gj^|@Z z{`CyNqc543-SIr`$*wButxLEb_IMLJ=VIr)0k%eLjo6w-Sl3W9f6N{x{F{NQ>|FLR z#e3hB?~%g3#+2RHQ{szXn(u$YzV1k`H>L6Ql=z=rPc5VEm-8;h7Z@AO=sgFPVfTyX z$%~jLzlO%=&F|!__e{SBx1ise=jBB|wqaMl=v#KJu>1FBt|LCm+U5buc4B`s*U>Mn z=KdhO9r@{;UEvF7PtOMT;WyAI0uRvHP(X{^K{Rvb%L%4}Wwe?=ap};is`{uUqzQ^^xrE zBk@1$qqVea1M&YC?b7wv&kmTLegA^u+r^u)58}u9A4qt~!CChGxzn;KyHzwgpT;+$ z(U_~ASLC7b;)0tJmR(~*zrWlJdu)_pofGw3hxFF8B%0Plv-yxpZfjmJHM^78e#5oZ zJ+mu30AG~zCSvX(<{rxGc=@g#|>MHHdJ}2zDr14l1dn_q$ zJ}w#)R<7#ypO)2;E7^U{6>r_wO?VL27&rv|XwI7d*OO;G8*nzct@!}&u<+2qJlZme z#xcl#GB?bXTk-MS=T<(Yk!V)9@Fafp&hL{uW&DWa z^lVmcpAPHWAS!$E@A!U49#6v|m2-#e8xJnxyq&rh;ine6`uzay?GJ1Id`m6!=ln`;-A3hB-|o=-uw@o8pnoafF);u3!h$E^ zX7;|+FB&JE#9%+oIcqp6Ch8EJgHOCvve2ELr@mCv@Ebv*XM&WYGL5j!V+iAHRV z*c#>ku#Hu*N7s+tF?ZywmVjj&|<8VCTF<4_mdp;Ae$A-%K znpf;KTdAuOo1TpkFWGNu_NmYDd#v1V^*8Zqa*gV$OZZ~;gqJYJj-;>WGX~T~#dbM% z-G^F?{Rr%OxA9nbA-suo<%zjoF|@*0N{^qvFn?;FS@w7*w8S&O*v~|x_46fgd(LY& zRKC%={dSf8s0r$5BsS+z>>P@nL+v-}zTO4+(KtM5r~JNNQns9w6}#-pg}jc;dq9il z@H=AgGPo74XMB3@YD2H{W8W>6dsU7{cCTH6@L_wB`g z*QSR1FP_J)W}JMI@t}L1>*$Lcd7kRew56YAj-S;ThV4JKk6>5)`W*+c$NUI&IX~&M zE3*6974g6G?8-QLKf5B{je$1sx^#M^py zMRomeKD$!Bw0L$!teoslJmUXL&#sIT&$&l({qof*nfU$iG;%1OIHD@M<&G)Y82mS` zarP&EvD#9f^BR6%->6(ch20 z54(<2?d8^7Rvf28oJ0LPm9l$pNAZ06GdvHU``@xB_xO%s&lXJ@&%XHoMIKM-H0JPJ zKmA3#ql&)%Ir>+ie=OIRc}LIsU30zKSWYx2q3Otdz7)-#_-uTR&oj_Z;IsaS;+U16 z$I0`Z*u{#uv=`TCYS$~KWv|b90A8N+x}230={5f}Q4iOCjd4!&93{;U(dZsWf1(*ocmVdZo$}+kNd2N`x4QG3G?J5p$VoZL ziP&ou`EgrR*J)fY>N#84Js&EbU*z!&?OD-lz8%3XKe~4;yWgD=Z;gj`J+*J;-pvqt zw|5w}UTwF2l69T(_FdisY9UVNO?tnNBfZ-$jmM?<>{8ZoAmmdMfL>q<3AT zdAk%(19srTlHz(Yhv*KxiJ#LkA=SLdX+m@8oJ6Rrw(j1cSfp@@a zmwv~s6Lt=zk^gvqma?7)q;XqRukBr|OSdu_x2q>-y(=enzla^@dd|OId&};=7|e67 zwS6yk$EJ72_4~G~&gS=ea_)xv(5POmbHqL#ZP(l=cAR3xpnah(>he43)~k;Oa-U|e z(`5JW5UH%{mH&S1&YS%BcV471tE~HL?xFvgwcH>+6@%hT*K)FZEhqkW)^a20y_OT} zTz{qV1^+v1IkoYBx|SQIF0bXpilLVn#M@fSsjmOcwOr%sVl5|DJYOOn@&Bc@+&uE& zW2%eTZa=W{yp#AQSo`qeHs+k=r}M2Jj-&lvH7(oiK(0l(ZvEchrer^>XP*I$##ImR z#oK4b82d->J@umBdLGZqYW`nCJbU2(7JSy%7w3^dG(N6}68&hxBe2gqV~Ktu(P;jB zmTx5L+Zr{O7h}EwyWdl&!|r25tiC&y^J7zD7t8)m>m;H0tb?-^MF4t&(_@=vgc9^+z8Drr4#H_va`)SwD;cIjI zQ?TY4*(c%cST~BdKfbUZcI32d&C57HPOIcx&t(l!m*>xMSbY&|gPi5Fd}?8DhZWCv zFXVVf<9Ni1LHlF!>A7?`_amP@FHXh`c8{@|<%Q1)?Di?P&-(2P&19kxTQdSX{?Zi{ z*8IN@d3YXq_;2!mIyuyLmA_2hmNc;k+dM6sx;NkPLvwJhsm;qO<~rEpydHMU^7BUY zx8kP(yU+VqV%HekjXsj*ooK2Tv;I$fHsyR5WyRhbysyN55%*;EthiXeh4%wAeN&6` zR7+k~{Zc=p$Vn@9=S}RK)Fzs?L?gCFK6TEGXO{LZxMQEfe|u6^oR;-Dx{TfVpFh3g z=cmN4-(!_sYov}u)0~W}x*5fI7JCefHHHOEx<-}r)cEa;ix+c_2{{(DNqCO-ZrmG8^l z1+PQ@C}qXp$XRoye)IPa*u_7<{tSFG$D`u^Z}@uHIT0&<9aBu3ThEotIPQK-*?k{m zpQ@&4`v~oIS+U!$_;t_m>u;=l8&>`MBd$;No!DQWQ_61TxPB6!vQKGe?-zaq{~wsk zw*uhS#_8FP*sn}9WBB)ZL43}Vs_emy{N_09@iUR|WWuGLifbRS&w~vg%Ca5aP?eqd zt0|dSV@dOs_?V}rW=|7OO>WnGUJJXd*yqq^ImQ*kC7i$3GPI|kP`MX8neTfjpGQ;| z--{EkIka;Anhy{2?#Sd}?6lkUq zuC_}f*4kqW`D}&t?7;@~ZE%@=xji>kSeobM{Gk)4W$)&A>&*Sc`4K)Geb)^Yz5UCN z%cg4^vHPMc_oHKK0RAC<8vA*#1lIEp&D1*tJ2vryxn=}@6xMS%WAFrgEIg5Lsk_i@ zPaeKTuCxxR#eQnb|93qjdpmZmXX;>$xA)?+5mvjjPa@Vn$zELRN~8Jh$K<4nai#ZF zAN??Ek6f?()Xpy2+mhRrf3fnj>m%%|BzCdv2Vn0^>|)tpfxSDii)CMgy&t|Cj`w}w zpCvrdS{dikeCY6k-^`lrzi*uK|Ju`&W)}7*zC9&N_xEIP<$EA+MlU`N))*82fV%XX zZsIq*mi2HR&yBN6G2Uc%4#lsgtm+k?koei6IN4Jh%=OBZSZ#bOK1X4ngtbIab0sfGO4T=B*iP0c>Ll<#kRxT04K^&DS5=hk5NIalm+ZXN7v`3B}d zU)MAwe#FZ8-^qD%Vi(Ik4!h{EsAdvFyLbe&>!w{Nss6EX^OD z6aOIJ-|$+Z^pWCxD)#xb4t5O9u=NdzUYzQ^j;&A1%8&c85q8^4JfCl$P1t=-7u%=& z*r&?6-^;LKyMXH;@kj11WgmkF=M?_MYq9rYZ^`vq19$ILv`cLNO|aLT(tBS{ERE)N zvG>Zv(JuB0TVb_J`=4#F&(~s~BcyTss>|y%vDay0uhTkVuSL5VZ_Zl>e$;l&$z2Ke zB~((-wK!B{Vt7j(hEDDcG&TV9YZthdR3SG zC}#Jm*nKK?pEkdw$j>-?2Cl0wsjD_=yX>x4cKa9Gzu5k}89&Z>KV{wa0oe1y$aC1a z8cOtH=VTC8dv%;@pYZXQ@JuOl#b|EV+%gWkEyJ+$CU*SgMBkEd-I|Jj9T&~aEglRj+d{cFx7l`Nln2`+dKZ&HXyp zW%RFp|76M682@M-b0hP!V{T015j&oK`q5*lCW%2g&-f1f=?g199gqAw9bCJ?i`98&jcFpdyBpAE%v^5-CK+MO{28YW3L529(xVUCyGJ$iE6Ps zw{1CVT#2nw{BEPzZ4|qW4dlx4w^P>fcTtyfF1y*Z5+`y7DX#%?rjV;^?6QTDBE zgzdj4_o*1<({`109>mUr*m)Qtw~nD7yX)%3XKJ?}Y3xUAKaKR4f?Z=w^IjM1`?lS=J^%u< zo#yL~j>J9yJ07v;*fC=Eu{nZW`~}v-zzk^>qdI_#VC6B^%!=KAK9H} z+1=M-_qEu4J(1K~y0VCE2#sT_N$i8z9h=y(N$=Pulh`J(J2u%Jo9vEF?AXMPP45SN zm+v#^9f!g975;09$88teXNk3<>k`|)*#5=#@8?C2pEEV9$B*N$OZn-U|U{R$B0OG*yTNifsOAmJUh3w9uevd=(U&Y)a zjdLh=4#m!)ez!t;J$r1{9(ZYoqTcSL-oB(>*1u&*cozGq$gu}VBDE0*R`H0j<>1NQyT=KVOH`J6bgm~UlQTcYed_F&l?yqdDL za1(m%cZrXK^)8jl`dlOXZ_$4aeItIHE7?y)e-L$zp!a@->_1`O^6kH5-x&KDXO^j#ddJlv}|%d_cZf3m2<`5Z+PnYI-g%;cOSK&KbIKR6I&bH znYX12zMK4LPfvUqcI_vNKMLFamBfAr`~ZHW@$>3Bzi(!YeTy+ByV`XD_us{ScD)_; z*pvNjXI9=1?S%d8L<2eTcrL>pKhkd|w+~XU>>f+<=`k$!7#4dBKU?Day1(NYpf~fa z8~ADByq7q8&^SM0kMnNWeb) zg}s;fkJ>K1@~O6qx0TO-Hzz~*@i-rbZzrDTJ})87>~dv1NOKpO7ZbDW4_!Jf+vDZT zCyAzUex)tib7+Fyk0WT@kImRU24r_X%I|_n zR?qS^C;E2y2;R${c#`{B@O>Rs+3(;o>@g{DpV!}O8XMGv7L!>;^m-X2eQGU3{uibnCb@GzFgTMrtKH)*_g-SetKFT3V{ zjXkl~V|BSt)!UovrBPYw_3Xz4{ym1=|C>F=X0bMs?C&odl7RvAmOzY4p? z)$Oo+YJF8Yg1L8PRaWz-DZ#s5SQ#6#Kf9FYqR3|>vFU!(^U;Xsp}CQFE(RCTkGoIJ z4!@ecLD=J2?C~u2I23n%x-t&MW1ryn0Pr~oKlu49`&RDr34Gp&&wlLg3+a!b-aXO# z8Fk%9ko^s^f0eZdd9NB@htXu7W@9`eYt+>+qu7tALm?}FH-OC z@h^TLk3sxv_!;IL@gLx`AFA-Zu*R+I9y8*#v@ymEe8sgDzKeR_z_Gjo^-429+0E4T z*zT41t3F$a-}9<8)6o1G%?NRBf&Z5C^De67XB5rwsg?YU=55inr`Y3P^XlrC^R7Pi zj^`T1CO+h?RoMr5c3}eE)>=gxuT`Y+T19rRRhnN{%!g&3OZ0mICFTip4SWc5wZ4-h z_8cqrysEOEGiCSwkJ!hlG-mlvHR?yrEwZORWmkJ;HxClCSaYvPiG#J{s`=Pj-mnfd?I@b_L02o+3;_2))@Xn&KF>x&m1nj#<02i zy2`kf-D9$mHInntkg)8|q3rL<^Vv+#3sI*@3@(lnq+*P={iTh{}_XuKY{nse^$ zJkzduubF4$wywR=cm#(Q=97h8Ec?~iSMOQmq(0GzrRjT4PFk@a^nt2u0DDuS7yG#G z$TdS~+7gX8)f|eSN6-wNRKzAuHQ!#yoQtMC_oHK3Y)u>bSL5f>d#MXv4C`5=o?Nf7 zAy!*vJv}AUeW<_jy^3474<-H$d`-@K@f+9oz_ll4*)x2<;wRjnlIDA8K8Sr7|IY0I z{E0tK$-cCJJ$Cr~y||vozxY~W(0QsUzmNGv{M7UN03Ih}pDe~n3A?Y+WcN5xS&fq$ zDLa8rAHS2ZVmK4~D0;Ex5V7Y;m7Pw^KSv|}K5cm;+)2BvnLzJ&#$k_Jv15==&#Pju z0Ti>xs@P*y?6F#g?SC@y--O-mmECp8Zl7ZN6x-)Gd&~COlK2t3tk`A6F53nxS6Y*o zK2>l{&Kf6miCwImYmSn}d8>yVLoMvQiQN|Ioj0-b)(CIwm~F=HaV6GRUHJ^xs)=1J z`z6?yyr?*4I}(jpnvbAK=dtcwqqf&_b7ku_4tCFJy@?;O{Oq}f>xefNd(;DopGNF& zZ>`ML;^nY%C01K>4((6M4#K|Pk=;Cu&)rX~$`0hW@djaCo9|7%{jkTpG`cqb6UWqO z!eg-WCRWS~@G}W-E6+7o6?(DsN1(4y>|)u=*qai&SoV{#r@3v#zOB02ld@u!y_B+D ziCrxF8tjXhKfI^fn`p$+eEK={w!gU;hXZIl4#iu?;Q_@soIItHPhETVa9_-0crYm| z-dZ;CKa^<1TQ#Q^$8rtqV^Hj4Q0!x{7k0hFiBGY8j=~{;lpVnCIZAf>k=<<+yNzPEu?<#TI!}$l_R|NuT@Cnj zyQKGeRqQpY%DOJG>k_-JG1&gclQzokvSODNyX<75_xmh*r*#62`=~L=iP(84!Omw* z!sVPbmo`1e?)kF?yZtxA9=9dl?{HgWcU`rKA8Fh!vD+nfyXs)i2~Du;YE9~@$L_jh zcU>y$IBVc{u-3ZhGn~6&*DH3tV%OUY+h;R5^cX8AERFq$?MG}s9qmQTZAr{x$Jw3K zCALqoeTwZE&vw}3Y6Ny{6R=|w+h;FzIp<>MLF_z;ork(4hFaKTPwW^Jzt7zh zuw$-I^kVCWk{mW*cbwv_aiVdq8nLU5njgfz77+XTSL_(XTdy}^uY2`vaQV@5L3O7W zaW^{b^wk0t3T1V zCwg(Jcb}@P`&8^c9ZGz5Ch^GbvSODNyKGmYAH(jpcO>zM9nav5BIljhmH)WDfL*pb zDLal&w^w%i>CMY(J=T@8j!pUWyQ^Y9DDYJK z_L_=aW3nHO&qq22eJpn;xf(#@aadYjQa8xUhT*BCHDS=6@&X-?0y%!-%Fn^ z?k|WvZpG?f-HYi&?|z@ezhkRG<9?CGbClR~m-@?NN$l^{)FyS+Vt1~@j#=!O#g4f? zDcg{sE47dz(zNv@V^`ogS6g)K%a7aD4!d1#u-nx@ew;(u9h=Jfe4*pQ_dZmY`$ZZbYaOur zR5AFNlHFrob-9nk?jy1Ls0+R0?1UYs*s(RCcYgY?o4a#XpVn}lBD>CIV&4l>S?5P( zokOwP)t~#(dPZz}Pi~igKM%PZd)-6W9rFO}n477~xs~1V_a=Vi-_L$12KVFeb2RQp z`E(A&&Y{>jT+DT!zoF5O-E;dG>|;&rJ{nEzV%zIk12}%M>lM3RvFq)ota7e7e=LcA zJYj2eT~O++=#@{|-^bec8P)(3iM|H^&VLPh&mpz2$D7J}{v3xrChHQ7*yFGkpNB99 z>YMFix3>X}`>`H&KZ@OVipPC1NnQTtp~i#t;>&4^_Hw21aa5wL{Wm85#rEHc-uJWg zz2d9zqwf_rCuN(GvQ60CN3z?`#q0xjujU!*H&Yh7`bBwGd;P4Y%DPX*?o+Y*v<%z7 z*m|+`;;nk>^0ze0u)pmo_V+nk@_4k)5qnIw<#xp>yN}a`(~2C5Jsw&UKVs>1-ceci zX?w1bPmK-tT`T8D&uMz@#rc_}E$*WZ%DPX*&g}#mkHb#v9)}O}evtg=+Y}}CI-EDL z^CouQ#LnAzvaaY#>J_`*n&djJJJE=(sYT;=2gH7+bn@(?T|G%zvCEFHC^Wr^Mr_SQ zqUlRCVrz!UkI(ycw9)zOPxNK%&X4Ra+qrkqzhWQD18AIQv5#fd<#8gP&a>Eg7CX*GG2ZJI1URF5>q<%V@S0Lu=wkEI%(VG0!G;vFxwH zzJ%w!y$9Q!XvESiMw7-+ers{Q7H_>qOYB{Vy$?U%`Ap^c7C-l*{D^%$CC&UpxUWxL z{@$iEVrz!bcwQai7dGz0LIe0~snei(&44~X3tV)upEeK7)iJ{hI2eSVz4zSR$Q z&nM&99j7$*FSdWN{g*gr*^k(IvGro>$0+M~#*=vJ5nDgo{O`Ae*Ish(XCdkxdd_;(v?K3n8m>~<}ys{GE; zK3tC+T~n#6zL{^!!AK4re_|6==ZfEB;y4YAKbjk#U( ze>3bj>tT$ z^Tey+DSV5g1J-<~XHmwhi@CQSyT_;4pdUq7hhqqT+KXWA}I%g}2p5<9S&f`(owrO+52jx-RKESoXJI zuS@J=+0VzG_L0`5Td%)zy>osPYs&@XeDJ~|=PilPR@mdM4c>aZ!_He7cHWv`^_Tq1 zr~5_hei6H024MSaPkfGG_nafU{deU4m7n(Ai`;f%_i-eRV%GJk{5S@&V-P!rA=oi= zQP%Am!|oVlcMRRI=jUNG?%y8lj-eNJ-sHzIh#iC2F-*c<2lnOumBSLxu&FLR|EXhV zyH9egpT+mt;Kw-@RyOfI9jxE=Ud()`{Sdud)C#w~r-)y_@vS*f*DUhm-})I$>dFqz zve)fBEjwjbzTbl0IT=9XoQRzV`S~lq8}c~uh#RW-t(!HR`?xlrB(@o+aD9Xyw_WVE zi`{lT%UatqJzGJ{!}!CvM@lu3*`> zRhKkwOU>FMX0iRKtjCquc4<CLkHHy>qB`RBy>>OB6n)A-)PQGD}_T=|$) zS-+?DkKVD8#_w2(-51KakC%V<9jki$sJ%~cPeuIX&0Mb$XWH+wyDsrR>-WY)BX&NU zVdq(P<@4jzCA(R6?9hCJkqP5CptX1B~d2@_* zdCYgdyP}DE!RS42NaHzB>^V^EIdB~IeA`7?=SS?eccJkd-ks>X6a55s$0NJT>Kvi? zf52QV*1JgB>(*R1m$~jD=DHsAuY|R}k{`z`cFbbO+{yafG501hh+XgL`2PjZTCd?- z5RK`&E7A8Q`X)4vU+fsfjzR1gyguBQwhZCN`{81r3&cJb^uzAQfrJNPw`CZ1{>5%f zb624mNi^+A%(7cw&-&9oM-#o+nsL~gu|y-bM*f`#vGX8y9-2D~KNE?c&LlS3?NfI9 z6x*lRK3fu>lZnsn#HZ}`*^b`l)6(aP^QrW%OYFMDuB!&U`=vhNri7alF2g&YS9upq zy#Cb6K1^$(=}5RU;Xdkh&bzR?uf=XlccSk_@83P|hdn;UZkO2Y61!cUNe+9Gy2P%l zH?K=;+JS`obJlz!yPv5LE6@6^nLgO-7U{i)98TlJ?(51S?8>uzs$S1g^5g4Pm36zs zZkO2Yx@$@nzZq9|GS6XR_a2Mvuia^C_RW(jzb~xshkWu!Tnpge{VToii;ct1=TM@N z-7$zAgV-@lCS}Fei>()1UrS%OuCctXbEfcHE!bUF?6P8)ZGfFavGZJp?Q=YdUv~Qx z+o#w*dtmp4_^Hyg*h>`e#dy|Qy%n~9v3-i|Q*57YiC%2I*m|+`P4L$J8Q9mSH|OVz zI2X_^kCVxyja}#+Tj}#f|H|%q#jaQEdPmc;S5(Ss{CB;t;1YJ#tLr%F?Ne-@V*9K~ zVrapSkJ;M9UY~FS?0KLL_Bve!MpI|A?( zb1L5r5Ptw}-&nE#cDKs!v&(+w$-HBx>mb<2QAfg?8+o>YYqx#5cI!&)-LTu(3A>GA z$1_B(yml&GRB%t?r}n~1y}AzVLt~%4iBGY8_QTfnB^t3cLy2Y}(TJ^SNY1%~iAHQq zcM{KVq7hp&3Ok;WL?gClBGHT`8nHE#iDo>}h^^@%o~_44U(sK(dkl*`hQ%Jky|Cxf znxw4ko-_Ml`>#zjvfIDd{>An`2|Ew z8uvvkJx_tlCsU%-Nt_GZll;Sm(e)pfuyYL zu1oB?#IEaE_IsPT9vR}Ar>*EN{bC3amyiT_3HW&MKraLR71Pq4e}a8g$6vSW#6 zG|`ByX-(Q9cKl+;FLwMbuQGcT1ac zyZTz}bN2x8c-^Ak2RWA9eu87Xj7D)@2RFm+N3rAFzEp{4_FVRyR~7R>Blq1Le?4~h zwKS)3tm#;g-MJDwS7PU?7Iv;$k{HB}p$3hQHL?ARJukJQcRU+7C!SQ#{zEPI6wo*} zvEvat9tXY=dd556xvh<(wQ z_(lYF@pklAC;cM+(Cq2iz&_kVf!%khMt(eQZ|69@XqaznEoQ$3yT_#1Z4|qWVz+S! z|Nr$(zDs-)zqbN=jEScXR_xL^2H7=!K1!U=E$jZ0{WHX`@g}`~-{C6s;*atznp5+- z{z$!dKf$+^$hq?-&92n@nOy(an<~ED_nIKTSOP_S(+1mGsKqi|Z6_5jyYm+bcWuZ%JM-jMy*e6jFf zg6&^ypS711kLC3an6`xoo?S!Pm~*md2>`Sg|dl(M&SK9&6v>Q!uF#~^kL z(vR*pEvwnRqQ4UTj=OU{x|r`;u&#SO>pJPbh+Xg6iygCAF_+Lcz&=Kr;g9V|R64?sKc`zIIkw z*ClpcV%OE4`_#RIX6*8>Ypc%0-h|!j-Wu}e_I99gdt1>sPTAdF*&Tz}F^C<*?fE%f z$By_E)&u&^&t32Z@a-JG&obsOhqqkL^}u$OI6upeQpx`5+}@5)$KQBbWq#1!MOV_6 zHZ*RF^je2V(}TwC>Q34vc3XNAKb=Wk{fWIJ@!tj8XJ6t|Y@dU$H3Nx8Y)vAp+!8Mo8M;c3=IqREU*D?PrW1i_@ zzPgL?{1wLPw;9jlNjwwOWB z>QU3Pdx+;k_zq(GCC?>`hv8rGZGG`0@P{5R1s_nJp8X7c-PGbbwEw!|I&|ZKmEWj3 zmh*URQdc`M_}H9eE#Wa=kH&L|*zM{@Z%sp@5nI!N#>a0XcK2^fQde_s*Sex~aS?MF zyRV&l(L1+wiJvy??ia=Hx>^%WInk)zts2l&l&%8&9Ojs1)5Uu^$7Z&&<2U1w5PM^cyA{)Z{+c)Aje*qR|U z-p>*HTB#R}`)&}sSo@AC|! z_gHQ0D%v7;Tf}aQ*lii5tm7Pk-4?Oq)U!Pvx8sR^EYX*fdS!Q6*&Tz}F^C<*1bVOc z#9Ht5-BS6Ur(@G|8jejGU!#e)wGNlwG5jlQ=9+ay3}VO7M4TRnvg^0o9;@U1L0H!y zdY(t@>y&2hJ3HnQcE>D@V*X=Zc3Uw^@0iQ@@iU)dKlAyow51+D+j?fN5xd5fj&bpJ z-tUnXGSoWFN*DWmGQ)o*xVrh0qlRm#Uc4^^%AmQPJ+b%2eEcQ3+#QyC(v41O2 zyz@{c&*D8{eYdj@pI+bUodvIH#X2tZtqJMXM{9|*lbC&s$nNhY%I^D#dOyPNgi7P@ z&WZi~#+nZn*V?VH-!bpb^P}}cPr|)9E9YXrTPpT@onps7KwX~GMsn8k!2M{p)u)5l z-KS#pOZ={VVjs!v`mK5Wro7)h8Ba7~mDTURr+vB)^ZW~$bKb{#dl|ep{5;nGrR$5B z^?Q_eQ&z`<*!|d__l2JOm0ib91AQ}&-F=bPCH8#Suxq7V+Lu#V_1Er{6}w;bTS$iz zkG`EUx^HpZ4IN(G1Fbo-$fv%|<=oa1zmL-zc;&E^^-u!`cJ+FWM-(pWhSv zdAw0LeJ)OO)D`TB$?pBMA=qvFM|)hV%k!t^6QBFiIa5Bh=jLYx*Yhlyo`qICeuhx| zZS3c8&Z;ACK4*y)gVwsLOV_!2Zc6NDqQoCwT)FlacjSAOp+Ajhi8u4@W$gOC`U{3D z&rCZ1irM)WJO9mVi)X{c%88zftAqbpPU_M8vz$nywkWoLWgZ?v@7#(Vzu57M9e?fT ziZL&~I)7HAA+d|Ul-Rev(G??Ky0X?Ebc`)*i<*ZnY;rnygzIt}l)Yv5$*- z*nQpIS8xyPd-QEz`1i(S2l{`O|9>Ut{i}+;*7b|_!8UO{vKRYrI^G|JcZYqvi`6d8 z&kd}pJSQ|IZ5O-k`{et0f56ZDoK<#V&U(+{h{S$$&J(Ja`AvD#KF0aU`vS-38rd&S z>=!1yEYY0B9AZDGr}jjDR$@OtXYH9>nDEuxSNtgci*vj9@|^!l%va`o7_nWQv%Ueo zHql?7@XZO|p0M@Xox^o*ZdZHn%efl+{fYkJoK^252`@}y{#|aDpC=Q|vx&Xx`IR>A zg#YbxRvULtc=w!@pS^OH&wUb}pR?M&FlWVfWfIR3xqa@bd?!8UU8(o@oaJ*_&Whpm zgwIO&{Dd#&8?f%{3sX)t2|t;~qqbb0+x5QU9c$14}QyA>rE+-T?nPFMHn+?49KNK%)5-Z2!N9m4Eqs8lK4Y)hA8Q{*v?VuPBGz@Qz8xXfn(#2V8TK{1*zeVfofENhB6d!mCAJUGFJ*t_-DB~asaNx} z_}qkdq8(K&75gge({o+}t1Z%h9^UQ13f~Ctm}|tl=6ow$2iNUhS>LuD&+pdkP`t}_ z`gDG4Wl<^n=2FHj{5X7f&U+uhah&sSuy4$HC+rXAya4`X&bz_C&G`s;Jm(j|f6DoF z@LzI15UyHQsdpM&o%1Ah?UeJA@NBq|Io3Hpp7~H~d-b*0=hg4 zw0)w`jPTy5 zGaG|e2hHV-`>FWr!O&~M*2IkQouEa~13~(l^}|7np|PMc^!uPC&|iXDpzU9#I+jBF z2DL)Vf|f&XgQ~LsI+j|4pg-5h^q;g$^r@%i!WzMw784@1YR@Y#=p zs-cM>UL(wQ+glN^kjxGZs)bI6s!8^|{m>pkTsCAchIYvwhTb31cX7?Jcl>oV)DYAS%@0}w z9TL<7y)x)3Xi-ovbX3rF(CdQwpyPtpK`lZ3(6XS1pi_fJp)-OuK`VmBptlE&L+=RM z3|$a30d)rTP2-+?&^qX{p!Lv)f(D>9L4(jIg6@Q_3EBW%8#D~{1#N_`4|)jtO3*0u z)u2t#Z9!wu9YN#J-9ek7dxIvR;h-(h{XrQs-A{u`(9eUap-n-vpx*}7LXQWnhMoxO zh9-j6K+gvCKz|EbU(IzL3)Jdt0ICkU4caki5ZWc^PH4BFA*e2B1GHDrF!ZvZjnIBU zBhb8{QRv{HP0*o1W6yZUJ!mde;&(%;vj%AUpn1^DphoCY=X$H9%htng`t$)Ck=X)CAofv1d&O+ec7W|u#Fy)@ zv!KDCT4;}hWSb3rAgB&{0%Dy5EpOCc8=*6UTA&p{OQE+zybS=I6SN#UKd24rfU2{W zoyb+tQm8Yi6}mWRIdoZ28}y-|70{ZXcIXp9=Rwy5bwJlbGqbv#nUR9#KsN-{Ljyr` zp>GE@K*K@vpq~ddLVpRWWgl!u7Ovy~+BK*S+AnAhbVyJ=bYjq4=q*7F(B(n%pj(0( zq3;AOfF1~Hf*uK41Z{VSYHNmG60{g<3@SrM1ucPEf?A-r1}%l&6VwV_60{uZ32K9` z4O#(xJ*XY}PSAPK13?|oZ-Z7slR=%(_ODP>tDqMIbwT?Ct%eQ=>V}RAS_3VCs=+U5dXgugV=*gfC=;@%9&|iZ(p=^P2+6PSyS_jPt>W6j;S`XC* z-3IL*Gzje(G!DHaXfrf7Xad?lXbbf6ph@TzK^Z$eO+h8-h@fidH9Q z0Xi{g9@G`I0Qz`P6Vw~D7`i^F3~dTp0zDek0&Nazh5j1U4lQ1&I?jWR3t9=iF{l$d zD`*f}8FVLfNzf3~6SM)kIcON#5VR3`CTIl84z0?jW{*K91dT%{25p8;4w`_L1#N-e z6f_B)5|nYT>NKc2n+=@~@m(M2EkSFb6+u1F+k&ow+JkzbbAqme&I{^;-VwA8>ImwG z-W{|aS{XC|y(j24s558~x+v&QXjRY<^nsuaP*>0}bXm|wXm!vCbVblZP&YIqYv$dq zFF`Z2PUvevtDs*8&7I9!>XrIy6SONdBb&<((p$nd0Cfc223;OB2(1gc6S^sABXk>7 zosF>r_EgYg&@(~f&}7hNsH#c2320i-7HEf{NoW?t>E?x;S0R2?2AUUC2OSiDZGsL7 z+ahQo#Fb4Q<39en4mu2CPl27AcZO{av@)n3x;$tB^vTezfIc164qX>?9`uEv4(Q84 zE1{c$I-!A}G3fT7$DnTojYHpoW@MY8N5VGmMVyHt@(fJ`ErP0ECEH?XW>6V=WzZ66 z1yr52LZ1j)4qX$}23;Gp0_qEDhprDg5BdtUOLi&rrdY{zLtn)I$)Jr;)gtx&2sAC|A!vu7QD|1sCg}M=W6%qN9)n&KG!E4VZHD#d<18B`6uHmC+F2hDw}g< zUkhr3z7ezn`gTw|G!%3mbYD;h^uwT)(2s*Up@)K2LB9y?QP3Pzm}r#5E^01kK25p(o?7_0Zpg=0c?- z6=?&seb6dsX3z-qe2DX4eU{A$S_JJE)C|2msNtowH)tO8iJ(U4mY@aDBSB42&8y|F z^JN@S(2T5mZ)VJ(KIkNc1uY9&4V@a)4V?kak8=BpmwO?wJLia^vj@CQ0-#bx}bf6Rzr(}x}kG}O8c?K4625% z52}HNq3Wy_dLn2xG!aw>JsUI!`WrMen+r`jT2zL159)wU4O$6Z8Po}VC1@3NN6;E* zBgEBb12c8dV(6)$GW1N)5@<4LDOB}3m1u>g1@%HZK9u=vzUJ&@X}(K;uD8&=j88o0% z<^+|Y1A~@8hXl1iuL@cUErMn+A(C;ZI$I2N1eKu+gO)%SK{K=E&?RB(gVqGCgFX?| z4_yIxA=p>Iu3N`ex7&^ia?S=@8Z-*s60`~WanKl4I!R?8gANWFhn5FzhRzL|fIb!*J@k&CxzN=? z4bT^Z=0W!cEr1>iYJ#2(S_&;#CeLlqr-HhnZw0M^9)xCO*Fi6QqjX!KeS#*TLxZv- z8LB}g=-8lY=-i;C&^6GEYy!GFY~8PBZ4tBv`dv^DG!b+a^t?Bzwq9s%&~?zOg7m!3 zlAv|avY>uwRnU6q^Fag9V9;&Q4}u1v{|dSjdNODTs%}+n8=&2ShM{>u8==F4MxbMZ z9)ivY%9@$=g8HD(1g(Q+og#nz&?Q0Zp{IieptDZZUvGm(pCFAtd3h38f+`Lbz)}Q4}FWcTFLYC@G4&O;jq1Bno#;QIbMFg>cs-r4Wh`ey?-p z{d+vV|9n2r$NRqLoHJ);_wL<$ZPV%Tmqcis&9oN>)427OS0TyVV}F(`ql;ZIwEY-w>e#Q?pU?3VY_L zmDPvnSgUpD1jNqwnV>MwMKtiwMVI(>2*N+poXbaP)~boN3@^KPDhv6tQ;L=kLZFL z*{`09F0)_likjH3_CU?8dLh^LE=K)ruMcW%zuFHSXVo8_WP4Ykob6Sh)9hCVpw3nU zQPyfOI?rk->TWe0^|Bg)`dW=dS6Ee|Yph120ag#8K~@vc%~q4pZB|pz2&-x6UaKl} zztv3ipw(>jh}AswxYYtQ*=iAb#%c+wvRa0ox2i@jS}jK}BObNr7P|*4(IWfR578S| z>(JX)>rrI25v{b^gw|NqpiiteqYYMD(I%@MsARPhZL!*gwp;B%JFWJj-Bzg!cx+kK zM*msWMYXRr_fUOQ&#D1B(5ewS#HulBj1Ejyp=MSy(Ro(0(JfZ<&`hfZ=pCy?XouAj z)WkQVEJNp6Rij~6%h5EemFRt|577@+>(C(s>?0nvx7vt$BmPPceaepWT!*f=U#&q? ztu~{TR$I|ORy$Dp>&y{5k#DsNO|ja8)>!RDHCCzayeDl{8|`kJyQJTD9)M)kplCf-*OlBhE!Xa>N0tuBZ!utY)HXt*X%t zR?E>~t4-(*s~U8V)n-&_wH1xA+JPRn+Jzpo+Jh!p?L||qQayQ1XjL19R&~*AtNLiZ zRRi>jRU`DeRb#Zwswpa3m7({nTB6lft@=tZkX&}&u`P>t0j^pDjPRDXz>Z5le%stR>P`=;9W<{dPv4(MvD zjwol<84a*1M>kk?K{r};MMKbj{QC|3o(a`WP3gn>5LXoytX85Itv*Bxt=6GsR_jsG zY9m@_wF!M`RfB%8+KkdSn~}Go239*zGpn7boz*Uswc3L&wc3lWu}byjU1F=+Xq;7D zRAp5ky=v6}ZMJHJ_PNE(+ZdHuHAQDzm7#uCEs<~48jZGUhn}=*k6y9rfFi4oXuVZu zRI(~ZJFU8)f2_Kq21CsXdZ3I|FLbI^A9R&fKQtQgEQO|9O+quQrl46?)6hJtDzwmQ zCR%JY8!fe(hpMfXpcPi@(FdqjDt#$;XJ<3pGW4bWYBj2{T8_T6T8Vx@yz7U4w%UXK zvf7K>VdkqT{=4AwtU97WR-Mtii1%pGS2o*_yL64e!Ty;@eC% z0=2OkiTYVpqN}V%qe`oXP-OK8nl;=UI|03DH3{u|yUC`YGOKB*l~om*Vl@-JWi=bs zSj|I!SS>&e?l7Y)Lax;k)WK>QI@_umb+uZKE=F}z6<6>KY&G&q?q~beN;JS~G5L5r*=pf{{0p|`E3pvY<(T4_~<)>zF% zpIFUC8>|+fO;(Fg$!ZDOf*PiVUBxKe#SK%pqcv7}^oiA@XoJ;MvWwhIlvJw4d zwF&)aRfB4eFul#Fp4CotAZnOOU(I8|jIG|>TFdPWv%L?^ANA*PwGs8T z+JuH$?LaRh{?;nT>r<MZM8}Df2JK4zt-{G}dY;8gFI(4cLiRBhVBp^Y6<}x2i-ltjxdtI?HMa zT5PopEw!pf)mF>V3dHjZ+G&;Yxeu&rqrYr#1^P5=uJoU1qt!p?E30|~c;>P?6n$@% zK|8F*qQ6kB)alpp^UOI$J+J5Wq}Ao9snvI=d7>NmiQeiLbdl8ogLt+;byGc2Z>t>Y zXLT343N=g}cO$RmZFVBM0o6)fh1z&VccHdc_oCyh9z`cumC%W(Vd_V8GUC6V8NzqT zdyJN#{j8RugRH7iBdg`8iPcKf-0DN*TCGE^t=6OCtTv*PtTv(3tZGnatIa5D)%s>0 z0aoo$cdPcOmsJPU*Qz7B!m2a6#;P0*uTlGMR`bvds|9G5Rj=E5ZDG|1Ewt)~7F+d4ORXwUwN;Zl_^xrD*@KJGWUE!^ zd8_ZxEURs3j@6%NE;=wZ_D=p*=zMdQca7k;mfh@5qQgysnU=T+%Cg;tBu+g3}^=T^(m4_4J^x7BiV#QkR8mFQ%v4^a=Rb?8c~_2_P^jVN!m z2~Du7LC;xjMvJYsqBT}K&=*!a(JxlJQ0>6Xy9XU&wHF<0l^V;V+p0FY(W)+*XjLD* zYt;aitQw)etQw;xqs_=oQAboO)ds!I-q%V!j;gKx9LFo8p61?I_$bdHh*z|a^Zke; z>ZYnu7kliAiQF6ZtL-Q82(@4BfO=VVM18HMp)0Ja&^1;w(EzL2Xb`HE+UH5m@cRUg{~HMXhS1PF8hM zU#t4)daDL#m{lV**{U&m*{Ug8X;p?cShYmITeU|2ShYj-A29Q_M@L$9KqpysMBS`9 zqf4#I(GaUHsM4w{dd#W^dcmp}ddsR0+G5oY9rU1?tv@=;ssdeQH2~dVH4r^%H5e_j z8j6;phN)&#`8^$1pi?>l>$BR)o5t)8sn zJF(SNbcxmT=rXH?$b5=V!_-?SXVt2}`=VA&LcVieY}bPJvucA5vN{DdvdW?+R&&rX zR`q5vht&b7zf}{IvucH|w>lBsWHlAtg=(b+&E+o#tcIaV`_XqMH*^Lg*V>hza+hO;^o{c6<>{bAJ??X}9G^d;teSD}MYtyJHIoTb&}=&(eK zxT;q9#i>+zlD*DfS6XG4aAgp$v`{a^f35u{@9=R|dDj%JwpxJJSuH`ISuI0fSS?52 zSgk~xt=6G!R_oDERvXc8R-4cstENl2@2$#Et%uCKEz!PcpH#19JQl3_paZS?p$1m{ zQA4W=)W~W8I?QSyYHT$a9bq*THMJU!np=%PWmY3m3#&@h(rPq1+Ug|)fwsxLYe)ktQMl5tX@OES-pYwSiOb*u_~fk1MOL&eNnyC`tSKZ!_}{s+K5iD+Jrh- z)u7X@wxYAFb|BAc7wT%Y2lceti!QNBZROd=sy6CxRUhT78ldZ~8lju48l$0BP0{UE zEz#Xptb=Ew<{1 zmRePyYO4Wg1>#lYHr^-X{o;nHzG#9~4n1i#1U+qa7kbXBgyy5Vso}ry%92s)rbeK( zRwL1Rt4j2_)oAp!)k7#o4O8F!#$NHxXT#Jsbi37VbhlM{7kg!O02*y|J9+}uO`X1* zM}^J)`Ga|fn!7H&hj~%M)RTYmPPx@_2c%Qi@V*8AjY)%aYP(ed?X-I1;B@K`-WOB z+v?z>(y38ahoaF|nX+_ho>eQf&}wQXo%#Urdo{GyW(D-I&7Md9v)LT9(P}>W%Boq5 zbn08%%b@RV)(UO2SsV0|)#<15*@3*i%J4Mk4(9Vmxk|_5w)hwMWc<5)2L4a>aPzTA zzdJrg?v01ZSK>!xA5WEU!XL=D;qT;o@NPN4Z5~d>ABQ{06LAmu8GM->;;V30=i*}z z&m|v>EAXp$80IY(d%kyIU!767Qk~H_ug+K;sPhD_Qs*fg;-!o^4Oc6VaHM=Cj&WN$ zKVvSgUBfQS#jA0$IO8}Mb?V{@ivKh08tJHb>G42h#nofl0;7{>4xLTdfxF~PKHS$lmB>#qE{3XZk z!P~GI=O3J^ot$H>30xz2U+iGBp87bWeE-KecjXOmR(bO$IA7&1&S5itor#I(;{CDz z|BuB5b@rQ-*mMrUA-TDK8sSxV25V@7V;y?~-llxildN-}WSy^JSB@t0n8z{WeEAe> zQ(lAlh*O(?GllDd&AglOAm!U|rShL}Uj7XS*zCz3JXZb3r*gg2nT!kaGdNVg3eUk$ zbL^%3PqjLOaZw(IBlYjVtFSqD_ZiMzc|W{OdCO_MZmE-WuEu59oXaHKM)_1+u6zTo z!e(zb;cB^rYve7sr2clC-ZvR@CvJnydUoS(^6}HzH~B`KSAQuUtGpT)ls9~qeNcWl zE-LSaS1G>`my}P&F*a*{2B+&L>#4%^uvyRZIHUYq+(!BLIIFzfbF5kUi8!Zx03M`# z5Y8(P@mS@vaY6Zyc#iU4aZ&kkRjgS)38(8N>pTrRcs1+qEN{p6$#Zdl>(Mdi@(|AG z*rnLjvDLCUwpJm@&9VF9HafOGF2`-jyWk4B8?KZu#CdFv?TyFc-*7)%Q10VU{eiez z`4C)`Z^aQdkA*vNN%`rVL@b|$)B7cJdDxM=%6~I&PuUs5=j_V+<4WwRKSnnFhh@`W zB%A(QIII4<*puIv&9NWK=Gfn5bL@Y(8-4ySRXgO~(6ODcFP|-&ak|K6oSS7c&YgIW z#uv^1(U&QsW*`JqjnerXDjq+b`x$=`YXa6N4H>LQ#`XEJW1{2828Ucw$W z$8N#h)Y*Y^>YO--eNcWX&MUtgk5xVj7nCo@AvR;K!gJJFi;L zIyt;e`Smz`KyvPLu!GI`FX7tQe6L@G>tS>5Z(vuQe{f56oVo0SI(2atn?3J}J@tFy zZtC>LId!JvLCR;~yz-xLfX#Y-!(-L?6BpFU&SOv1ISZUHpM; z#$1b6ss9;{vB?jb&;BSs6g#}7Z1Nts9ya@M33in~hubKB9%r#R_ubf2=P%q%ozzR5 zyE%({{DEIItSy_!O8xdgVXZ) z*ukdX1J}d$-oy5@rpPDZjQUfttNydNjrucjxjH}NEH>-hg+2BE#9fsChr3}jSM7y7 z&trQ}VjnN%*q*Xk+YNY-`a^J_&TF#iti@y1`3zTKGv;Bhu;=O@DVzQ&c#isK;A-_p z;0T+}y?B*60gjcI@HXY&W2a%V=C-dUHpiZe>yevt?2cV*@-euL@^RSHvG2;Jvk7-o z=UeRS*yfAa2jwkspkw>X=GZ&%San9?P@Q$M>HL7_sIwDC>U4T7vFY@|tJJvyZ{znSi&c zGa08FC42G(u7}M%@D0u=&%D82VY7y#aT|5o;jB9MVNaa^cT;C9&Z)B&`|7O6gVgx~ z=hZ2Dll{SMc|K_+n|YtZW7U5i7u5e7huCydOW7ZF>fma1F2F_kA{?pT2d`593S6U3 z0hi<#aIF4ZyiNUu*nC2lxtD&yY58~TV6&dTaXoDIGrf%GD0RBvjNA>o>R*W4sNV;d zIxZfhP8*z8XE+Y9dEUNDHfz2Qk5zv(u2O#m zF32C?5S#v5JV*V{aJ4#zz0ID>N8(8RGQ3Ltqj8NoH{z0f3y#$vj<>0QH#VQ|W%hhA zPRmQNgUz{A%VupWa6NLf|EqDC`Ukzk{>zQ9i%q`?ZlnHDxLlpfaW~~x;|k?Z;z7!v z#+Ax{#CiEw9N@N${|6qc{$5`wuw zu|Xsk0f^DBp%l@=w@&dYn0z-*8&q zgB@(f{|A>Tuk|iJuVM4rcwbzuydmzQ{BT@>>>z>|^s>aV-wyfw&5rd2hy{^4oB= z^1E=lS<<-=JJ^g9;4>`D3gwNkue=Ek8XL`DNHw-XB-u?%Y4u;z0QgIFyIrNWKln@?F>|OV%?Ad-53U%j0k$KaNBB zDO`=seon`c@)@{B`D`33pN~_Sr2i@|lb7HCn>~38M{0TF$v(^O&vk|IHrmFPme>;K+2y$H^w&X9a6hzCU){q%#J) z@_(}F-}N5Xm)z{tDD0^-S~i`3afLdy-)H~TsfR1Ed433Rpu8G~a;KH7Q(lBi*vxhO zD%Pp|WZBF$AE#RCTHv(21UuNg&Us5V=l-s2j_v#b*G~O&a7I2KyV&%5;Bw{f;jFwG zd+Mx{&6pRg=J}A^{EXZSSE%0?`|4jIoBn!Ssm>QTQ0E)jbT0pp=O1;h!3B8$4zcMB z!qv)e!9{sEj?}peFUMwWqi~Hnqj5|>LEiz}6H#et6fQ8t}FaFsg$;82}f zYZ9AIeO#?hLmXj~AC7C3H^Z^=7C3cu@*LF~JJ|G(!!9=aa5DCkpNW0to^1L(aV5EV zEcC{K`jc@ePs5Qs1IO}goH`~s_9g6KGv?3Om3QNo*j($sv8O!s5&MbFW2z4Jv3ZQ_ zFPm{1;7WB4!&UN;xLPj5HF7JQYMqREEH0Bzz~yoWJOG>ZoQ^B8Irp>hXyqeuwfcEn zBR_ysZIbcF;WBvwcClIWlek>@GuTsJg}Y!g?+ds>ow?XoX92EMz8D9}m*OhrMI0)B z4@dHcxJI2%aIAa-P92-9`77*Tv(9gEnewgJRsJI`SNq=asd<;$k0aUWKdW zk8q9rDNdb`%(W4h$zS1e`CIH^vxe_+1vbyyKVn~aEMoP?D6t;JXAJg-j1u)zZ=)cqj2h^ zWZu!ZTpo)nXfW=GA@&!!R2xlu8^O{Ir&9g zDZh-Xu=!rF2uIlL^RKu@oj-8ujAX98xJ*ue!d!A4Tp{m|E9C|_FCU7lnIcE|<^274rGGQtp9AV{`1qxJvn@xLUpv*Wm7S zDsbw|WPh&1wXr$&1ze?kE}p6UH(aB94>q5gXZAMxDaT@S?07sto`|c|nSzVhJRVE9 zByYi+)!&ZOXD6MVI3w@IS@|zqE&qojY_4hT^{h>KJ?xez`GL3sn|Tkxm2zWTB{##> zatmA|AA?ibmzT+lV!8!XKy<+!CAXxCWOi{{&aa8*rt( z30KJ_TrF?G5jNv*$2H1#;*^)HVK;WL>HLMuu(_B1!x6p`pZOWzbFo>Ehs(Mo$9Bc# za!=d^o6aS;LiuIb$7cNgxKeozSIO7onb;hA6RuW16xYbNd4#i`La3p9=J;Vi*dDlDXx*P#HkCCHB{g-`8w=k^Rv>8xLo;gTp{0uE9Lue zl^oz|`5{~*KZ;{)_U#F5K3~eL^C?`0PiC%Z*u|!^370D`;jH>cZQy>8TjIRj1{dVx zaZx@Qm*kE()gzhfOq|AM4fo<0ug3Sw+i@hD&Ptr>ne^A-GWio+E^ojU@+Mp_j=USYy_0?T3um!e!+*GTpX5HTy^$Q7ydL)C17)-RLvW??#yG%j z$(!LS?!YwE0p)fm2y99 zKC8v_ufpY*CcYMX*vxwau24P%`^s;{mC8rpK>5A6N_l`ofL@W@z-Nl{sOne=KFXJ_LYB!1AH6#cG>LV zs4sb~p#B&fs{b&K?)s&J$WJa<=1f@n{$5)2g={Y1?4MosC*5Ma9jGH%4Q84ajeeQIOQkL8=J9%P3PFJ zSdZKux5Q?hr(#d}8Q7PzIFQfBqt)+;L*3V(0o~`~$Fy&9yj0HtTPUJ$0I6Uv7y5`B)sv?QtZZietGmc5X=KItP1lSL|c+ zGtPzbZMctY*02KybWHxMZ1O9=VO|}ZlTCgDj+76PO@14WmER?sd=z#DCTkcYn|vI0 zl|L?<{3+~{8&Ai99O4L@J)9$(&PzB}zDPFt8`v3?jPnk5DR!_~ zLk4G*AA?=x?QmB4N!U|<8usNgae&Qvd9oR^D-OxcJ#e9H^7nD1W7ptV{uDcdll6R# zUHKdA$=~5X-i`~{ock|0RQ@|ID&LDE<>?Z8qI_Q*E3c2!Ly~bCVh5Xb9*#50n_*XZ z3!GKn8hgr*!#U+AV;`H>s~u%C=D9epPInyOfKD&jbo%0gI#=QlkE2r|PsGDz^B8>i z|Kt0DOJy_u$GE8RH{b}Hd=rl4Z?SW8a_zRtrgQAK>;t)Rd+f`n;y~_Y1l5zTAU%mndas>|M>v1Fx#xXYc+pV%$&z;yAn&kJ&CchuM${&(V{wVgy zjVEFsn|o=hyd6I)ug0Nl`kQf}F@KOv{xc3W=58Fze`9A@vbJ=b*!1gQS9yKxVUr(> zefe-4$jxww&F>{$+4NiENS)(xEO)@}t;xKdWYa$zd&FT zlCQzBJODelCC3iJu6#50kHCR^FAnAVaU?&8WBC#63{S>?9J}&l?8(nyU#`M| z{5%fj7jY!NjAMBbPT!u4{|0vCw{b>}uq&^`S$Pfi z6{qh^)^-MVY}ULJ zXO-{9Ir%T_tMear?%{cW$9V1U*dJ_;JqSDZCi6Cu&AfeOGw&7HrDJ>z_OLm201o6q zxS-C>xG3L-OY#VuzAqW)UYwEd$65J7oRc5HdHHc%kSF7!{EX?3O2(|hCHZ-ru1xY5 zaYlaGbmT=i#^zk!F#UYee;a4y2xsM$xC`#h9%O z?aX`3mLxZO+YWnlj8DW}u$k*r>|?XeGw^8T<+z~!xj0nk0vzKrIQAmES^dj#%ODx^ zYV2Y2obTh&$_L^iHftDymn**&mz3X$V{Fzl5~oKe{XEXd4`3IY@yFqo*qqA*oK@#Z zoRgo%dHFe9kZ0mho`Z|>OE{8W#U*(Oj^(#-dQ7smcd>)bn%~D6 z#W6OYUy;GV*yJ(ZA7>v<*6;|&4ZPsZ<#GjcDSmHXnHdhJF3Br!_;_*;e1K2@lJCOd^yK#)_u-k?T)Qba`)snF>Da?&-WfQjd=~bV&%=Sd5Qp+& zk;=Hs3D><3JvU3$v5X9k?jpgG+KHPR~g?V{k@( z7-!|ja6C5|f0F6XOZrnyUw+njev*gSc`4be*|>WlZ!YnzlRI*YFw1p;Ru_@&SyBrX5JFcEKBCvg0u2=oRfFryu2G1 zm-4!}ARmB>azk8_569_ZGFMZalQTFkAB_ugTby|}>9@yO`4pU!JK?;1HZI6raEQ%1 zyWyhp3vo&Ajom2e^ut+f?w_l0PQDiBD=S&cLDI-He1!v*;ZT$I1TC3!PWuTI99xz(tJPH@&(YPp&#U*(>PJf(? zKM`l-DL5-n$2oZh&dalKL7s<;@PKm{c%Cg;i7y!F3C6H^k>PKLvcpF-E`!;P3M0}XO!v4qj6Rqi*xdLoR=r! zf;|O2&oKGMWc*n;{dwYfI3q8_S$Q$eeUWsQn$DMrt8sc$;uWSZe_;CZTAY{H zAm)Wi&dN7oPacYM^6l7{@5Xs~6b|IkxFCB+O^*dwA`{1m+ANJ&f za87Q7eYpwF%gu2hySN~?#-V&1F3Kn2NInghufT+zk723!Ima!GYWk7vvLh zD4&Xp@)i;N4U3vnd(#Lg?K#GZT!_T|fP zAos_ioWqfPJ&xs@u(NM6=1}a)w_{Jf8~gGo9LS?_D38UFJRUoBlQAb^SDu1BY<_n? z9S6#1;ZUB3BY7c?<;B>kmyEd-dvZ1QLtK#_qw%ys5t# zN8Shf@_smw55l3`2p8ohIFg&=lI-GGZjI9olevz=j(ie!<AqFF%L_`4Jq- zkK;(5jAQv3>>QemUxhRB^VpSN#Gd>z_T@!5kl(hD>>QTNwFbNLC)krW zU|-&Z1G$6?@)jJ*+i_9ei6eP8F3Er4SpE;E4^P%mdoOE{>tRnm5a;AWa6xX2i*hp@ z$t`d!AA_C7$@uNCE1!rx`Bd!7XW&3C$Dw>Kj^qn)EMJ73Cdv4Huq$7VJ^5azpIOhvTf=6nk<8=j5ZYFSo^cxjhc#Q*c4U$zNb!{ssr~W*o}fa3uePWBE7iWRiLJU|0SJXXRS|GMBtB&dK$$FCUEa@?kiT zkHn!|hKq759LdMxSUv$eEt2(gz^;5c_T{s1AbYqVcg3OH6Bp%6a3o)bOLBi4%Q@`0 z$-LKNSH1~n<)PSbi$m4M+PsBxe3XbIIxFpZOu{;Z>TPEwA zhaGt#&d7_gD=)=axf*-&3Y?Qaz`nc|2l9GckUz(v{53AhF^=S|xFr9GWBFH{Zk4S0 z5A4W$aYj!6$C~9jI4kduJ-GqS$%kTJJ_6_Eqi`U%#09wx4&~!>QJfS%F>oI_$|eVqd-m2l8+n%6H*Nz7NN8fSuOK z_zz)MeiVE16SxaDulJt9zVc}}kPA4JU%-((7sv7f?6gVddJVhso7j`z!M?m4hw>^M z%O7Fq*kqhfu`6%Hp8OTg$=_mM{vHSN4jjtA;7I-*$MWCUX`9St{=rsP-UoZ~e%O}} z!Ueez4&^4eC^yHE?BbH#8prZ+INdIp_ayAdr{Rp;8M|^8d-8eMm%HOY?uA3SFOK9Z za4cVgo#T>u2VhqogtPL^*pqL=zB~d4^1V2e@5hn+AdclnuycGe*W=igCu2{32K#aq z4&>)?D8Gm!`DGl-i?DM-GX5JlBfpJZIl`X268rKR9LS&GP~Lzec@vK15_Z}rb8W${ zyd8V;PVCFOaUlO?`X?sG{%87f?KFM49uDLKaVQ^xi*jQe$<1&{Zh>R@7@R&SnX4Uk zRzKY%@a+YtVy1^dd6uEl!fwm6jA<48UQ$8sm^bV%kp8@qBB?8)7*FJFiQ zxi=2wemIh^!m)fUc1}sgzX7}QV4RhQVNbpT=j3~^FIVEcJO&r!hjA!Bh9h|rj^(M? zJ2hFuv)GqI)0bzPzC0hhrzQPYuqVHceR&xUDZIc!a3Q)zT6e(<(@c@FTn-*G91eNaZ%3UNWLDI#-+)j&t(Y*q39Rm$%|T{t*}CUvVh^fg^b@j^%W1*48;$ zXC3Uy`(saTfPMK;9Lh)FNInY3a!c%-nT**6yYlhalTXIJ+z|)znYbXIgG2dzT$Fp@ zNWK`CWxoW-tu9?r_$u_yP!zT6iF@)fusUxPz=04~ada3tT1 zOY&_vmPcU6OV)NTcIErACqIaD@*~)nAIEulG7jWta6zuZMfrIg$uHuP{4$Q^ML69h zSAD{Il`{I5@+Q#*polOIe7#2pl?P%^9)ff7t=O0E#Cdrn4&*#8$PeI99*2wa1RTjv z;*$I{j^*cY`ut@5GqEGj!5R4_?8>j=th@w!@>@73zl(kOeVms+#DV-VF3A7Gq5LI| z+u9xFom7v3v?ncT3jX2|M!HI3st#uG|f0f& zJPa4*J8&f5gG+KHj^!~peL=GRhp{6+hFy6Q&dO76kE*p+|7p1cS9@;|sB z*Q(3-^1e9VGa08o4&;MzC?AHM3zN=~*p$19j^(qkb5SzB zhh4cV_T-+}moLGAd>Jmt{c$Mga8bS0d^=9}O4e{UcH~hwBagPTApNwOp2s<@;TU(&&R&p0|)ZOIFv8Nk$feNvvK;#gjT zolBGPKf$iN0ekW$?8_w_$XjqIZ^x0m6UXvy>|B!oJ)G2lC~( zAYY9`*~dkBAdciAxFp|-WBE>;z9Lz}NbJaYoRJ^Et~?HB8!^Uj5{I*;>uL0r&_;*wqpm-X_vs#n4_y*h5_HE~mq!fm|~?&!^NPj7?!dPkh< zUGPxvfs>u${`=spJ`m^iVYr}=#wA_HWql&9>Qiw|pM@LxeB9KR;I_UJcXS8$^bNSL zZ^5a)6A$%$IN3Sw|1i$#9?t70aX~+eOZp{T*01BLeh1g|hq$3X#!Wo|cl0;7uYbft z{Tt3!;%>gjPu&w_h;PTbcyoazPeP%na$YCP|fIIEY#dA%Yo z=+$spmvK$6i<^2w+}4}nj@}yg^bWYMt2ouWt9ig*$qC z+}9O6)VtyAo^k$OxS;pPWqk;)>LYPYABP*diJSTq+}3B{jy@On^hLO@FUP5F&J0bkHDvPEDx`>&0&dVQSNo8W@p5|{OMxTbf;4ZSOF>e0BZ_ro21Fz)Fia9XUJ@Pu%l#oYm*xyuJ_@^kulLTezmL#Z7%9?&#ZaU*C;W{Qw^7f8m7p0pagK`Z%kf z#^L{F3;FXn{GSlPui%<~6F2pHxT90t)1TtL{t~D9J3Q1s<7B@$|KB*P|APy9;%T|Y z^axzm)8Lw(5jXX0xTELBJv|@p>xFQt7sErnG*0%9`>cQqdSzVJMO@Qs;ig^>cl5@% zueZQMy)8}-i1T;CSzW^gy(cc~eQ`}6gq!+s+}6k7j&9(dJ_+~rX*ktq$`AO-;Znh5!}#^;ii5HxAk+lqhH27{RZyqcX6r*c&Ijm*pFN(7V z$32(A1-(2j>6LIickBKa2~y zhfDfNT-MLxs(uOA^y|2(-@zUIA@1vs@la2|$zgGyZ*X4!h)eo6T-AT!nx1HS?jJoF zZtAIUTThQWdKTQ%bK<_v;Z!exhk6m593FRD5@+>tIIma41-%+B=`t?sb#YB^h?{yd z+|gU(9uB`dv;*#&&preD=y`B*MBJxPU%5A|I*dwksg zeq7Lx;Ie)USM^i4rk}$N{W5OqH*j0Oi#vLNd-@aH*I(dNe~X9uC!EydZolKK{u}3Y zb|&smJvpxGsc{X5?}yKTo93(FjxOQ8UKznLw!0J9oz-vwhxZp{T-NL2s@@RS^k%rBx5iDq z18(ao?&#fdPw$QU`T(5jLveCq+~Fvk*T>_69)rtzEN<#EaYvtrd-`JB*H_?FUyXr^J0d9UkhLarTtB+Z?!{=f!0`Kd$MKxT%-G9lb2> z>wn^*UKJ-}2O}pj0<`WT+;L6vYsDT^+;UPOW=lH7B}@jaa*s7J9-V=)9c{A-T$!r!v(z;F6sSoSs#L{`bb>U$Ki%<;-)?YxAhsgqtC@XeG%^K z%kfaRadLLt`8u4{H{ra#9T)UHxTGJ%W&J3w>c??SkH-!D0&eP8aa+HIJNkXx(;wl! z{tT!3D?HTSDmMe0BP_rraCFdph7 zaQ3{o+p##WPrwCzGA`-Uaao^(tNKD*)0g3fZsDfB7Ps|{xT9~wJ$*Os>j!YE|AmLT zkCXG`&QIg4ejexbE4ZNF#3lV6F6$Im^{2R|zr+pw9d7EMaa;czcl3X7Pft7t`|A-n z)zjdio)IS(#QkT(Sv@z->-lg&FN8~aFYeaV*Kl%S+<#A;)%)VSJ_r}|;kcxa!BySBHGL9p=+kghpN-r40^HG;;-0<= z_w_Y6)#LC`--?rq;?8&BtiB)T^&_~TAHya66fW!Ma8saao^;Yx-2&)Mw$2J|Fk>C3vW>#M#T@4jo+3H{i0q1=sYQxUKKQJ^e6Fbq^2q zlQ_9N&VLqX^-H**U&m$r4zB4BaZ`Vc+j;`-=x=aO|A_ngH=OFf@K8@Q7yDch--Azv zvpBquJ_6^>kHrP^Z*Wcjh#UGh+|+;Jww`EicGHvLo}LQ#_4GK^v*4kg6KAiC`{Zyz zFMvyW5nR?w;;LQ_*Yt|GsaL}tUB-RAE*|O)arUZs-pz19Z;i`(2VB)vT+_SbhTa=D z^#Qo855*mQ6z=KcabJ(YsUC}m`b?Z{#of-s1${9t=__zqUyZB!dR)^tw*Kk$8jcfV?+|WbZ)Su(F{u+1m54fj)#eMxJPIWR5 zd+JGXa&_EuN}Scx;k=$17xWysr02zDJwLAMk+`Opzzw}DZt8#Hwq6x?^cuLQ*TH?g z0Z#R%c&N9+*-qSldz{x5T+qAWlHLoK_5Qf355YBkByQ^Ca7Qk)tBSEZsUT!4wv*zxU6r-RecYx=?8H`KZ@J>aop46abLfHQ~fF)>bG!mZQS#H zoYf!Uy#5Rq^jEm7zsEKG3vTE?a8qaIWj8$u?&v9SPfv^cdM2Fe+3`@%gOlsxo&}uM z3*)?A92fL5xUBzyYkC#j&?Vf|YvZtM|is zeK0QQBXCI{i_7{1T-7Jznm!#j^f|bxFT`zq8Sdy7?&)iBU*CvReH$L?yK!MiPH|Izire~2+|l3Rp8gs4^}lhd|AU8m;vD;r zi~EnjSv?KT>ltxD&xT8SZd}&$;i_H;*Yskzp_j%@y#j9Qm2pQGaZj&>`+7Z`>W%SG zZ-J8=#SMKBZtBDF7#zMAdJOKHH*l&?!b5!;PHu`joQ<>k z0-V>E;)1>km-IEbtjFQ1z7^N>UAUp|$4&hRZtKTzM?Zyo`Z=8Hm+?@)fwMQqo!`X; zJ;3whaN9q@W%Dm^O@E7<`X}7hzvGVn8~1fK&w2IaID1Px@6dJqD+GEFS7JadLay=RBO%7vqU> z*x?GCH@_Me^!2!`Z^ku!2X5+naYsLd`?`yV`U#x9Bku4FF6b9=S-*yB`fc3QAK;E2 z;=cYI5B1kLduN>g11{)aaasR~YdR?~Ur&lVdP>~a)8Q0{$6{tYG(Qg~cg6f-oW6dU> zzmBW=9bD5N;)ebhH}wSE*5BZc{t@@|Z@91j!l|BU0ruCE;pCpU|5P}ur^k6c3oht6 zaS0c=Z*#b8J`z{Wm%ugif8eHG1^0Cc5B1tOdvDxfeVoT({wBC!zAY}9?}W?dd*G`1 zKDcInC~lY^g`4J0+%`W2cg)YhJ@X53-~1|^nqPy5=C|PFzPRU|IE%ye_7KjScX7dd zJT95PfXn7@;;Q+3xMuzdZkT_8o8~{_w)tK za2ALC7sYw=rEtM~MO-pp4VTT=!Bz7OaLs&6+%Vq`H_dCfZN4Y&m>-CH=7-_F`SCb4 zAA^VHXW-<4xc|90i^Kkx;k$d=1<^;`7^j_{wi*pzlA&I zDejqniu>l@;?(>nJT(6cClAK`Ct8U8aoB%KoHw5i7tCkJCG&Z3*?b{fHD3(Z%$LUv z^ObPZyo}rC>*9|2rnqOm74Dnwj8pSn@z8usKNDB= zMYv|Cg&XGA;->knxNUwH?wCJ}d*(gdH-84F<}c!*`CB-7IPUyD&f>81r#Nr^B`%o% zgiGeXVJ@ch;-+U$fI1aA?R>!HGHSy5S zhB$d7-j>a97KhuiJ`3l^^Qmype0tnBp981n^WvfT!Z>*}?!P$B;;{b;IB&i(E|{;0OXj0+*?coxHQyT7 z%qzHIz8h|u?}yvw2jhmztAuI z|HMO`EW%^=SUm5fIIE|`1w9=u>zQ#)&w-nIUfkC6)_<^cVy8+tF?)cfPMJ_L94k+`Ri!+qVv zsXhe{^%*$(MBMXST+kQcvc4QQbsKl|b-1T*!hL-^9_o8=_Q^Q^K|C=I*WRPJVE#BR z>+!gzU%(ChDsJkx@E9ECypP-FAK{Mv4EOX`xUav*L;VZRJ{5QS1J`tBQO>0&!EHSS z?&xW8PtSz=dUl-ZdGJsdaPo9K*TOif7sq+M3@+$@;F4YimvsqO_1d_m*T)UL32y2w zaa(VPJ9=l_)4Srn9*tAIA0Fz1aWX#ce+16zV{t*BfJ?Z;<8m@Co1czr`W)QU7vhe- z4EJ>lr}|nv)HmYfnYhDkIIr)<1^oan>3`v}?&F$%8aMRwxT#;kZT%+h==X3>r?{^_ z#i{-h5A}CA`)u6vXPnpn#s&Q!T+$OS#-4fvuIg!UP0xrMdN$nDbK|z24|nuJxThDx zeZ4eJ^$K{XSH{V6apxk=>a}oQuZIhIV_ec(;IiHpSM^S~rfayN_ry)TFYf4r@HIGm zULTJ8=EvX^hxd{VJTyNQe~d%_ESx+aJLlsp4$tXV;DWvym-Y3yrfksfy4{`RzIRA58&|l-S{sGtYuehoI#2uY1 z&U`&79_lG^_N6#~I$Y2*8n~m^ z!F{~}9_melUx_of!i6`Yx5s5&!5zID?(4lm|E<{HA5VCj|8tyc;1E3G9rAsX%#nB` z4*79-G`>2?@PBMilo_j^z!Pwp{-jHA?7Pv^;sy@a)oi$}=f*ufA5Qf`IC(Gj7sGkI zG%o2Ca8<928@h)}*yjFb1{{4H=^Z;MNMCtTGvoTjnACr&lBytr?{%W#0~u&ZtI_MPyZXI`ad}NJkFnZN#^Sj zxTL4SRXrna=-F^v&mHm!an5`p*9+mEUJR#tX`KHe_E*3qy)v%qB5vrla9gj3dwOG> z>Md~cWt_P!&g-3UN!M^y?};0FU)1%LRkHZapD{kw%a8KWlQ~d}|zKQc6!&UthZs_N5TfdC+-^TtMxTN33 zRXxBB{RwXCFK|zPi%Z|dIX~g5{v9{;-?*)_OR@9!u|GLZeu$nL=k*M@q-VvwA7f`O zoa#JIev0{mIIkDQCA}1`>g91muY}urb==cy;#7~q$j?diBr8DPX3DXcgA_WD=z8LxT^QV4Sg_f>mzVaAB$6c0#5#p^H0Wk zeL61bb8tgnh^zmJ{mVkGTR5Lg^xymZT3pgMhQ7Wn^!44LGg0h65IXu_p`-h_t)Ip{ z{X9%u%_5o_Seb1L(u>IQ<$Pua{kp>vlvu_H^9F;ktbz&fTZa6t z^LiCr(re+W-Uv7J*0`-JxTig& z)e~@@-^C35Z$h8nFA4rJ^!0C{um1{tem@{|Ci(|E=*e(ZPldzpTZGQ^xUFZwJv}E* zbq*)_*k2&@^&+9KmkjxQv9nyr^@=#vtKsnT<8aMqVK9OpcN6a5U%=@)TczlKZtZCuqK;D#RJ zw*DOV^w&7mKj4J#&xZYf#d-ZFF6rc-%-56RhMp3)^>nzWXU3_X1BdVVhWYd2yq+JI z^hjLQOW-V}~Vg66t)~n*KUIX{^I(VQrz^UF8hwll79k#-W-X7<41?Tl{xTyES z6}><1=|gb%UQ(EOBu;n_AAB6H>Lw1~?+E!RxUJ8?J$)`t^+h6c9`=At}Y*)S&=z<65P{M;0ZXq#+VkTeC-Rz?t&Ap z(cnFB_!<$s4{qoKaa$jTd-`ac>N*bBcR2P$oY$w~l0FMp_4&A=FTrhnCGP1C4)^I@ z?0f@G&2Pa8|H8TMn2&4nFFY1KK32`2_YnQp`52A~ z^WWiPsz2o81pbA6KIUVxQtX5*ufM@1{UaWQ!_41s)%-6!8izR(@v&h(86U^;FZ8G4 zW7~XsK91vG=+DB((#r9?bK+4r(3mhR5TuLm8*$ z>*5JGoNGgztP*$F43EH}zctRA?|?_*&=0q}WWGBdWxhAAnje5in;(iB=11YSJ|2(5 z;ap?zc>Cc#OID5hoQd=LJY3Qjs9;=6VocO>9Iodn@JRD%amjo(T-9^qhMo`i^g=k*i{TNac&?@KNWB6s;c%{% z@hI~mu9~lfN1LyQ8|EA1w%!6KYs5L*;=JA|baV~(^qx4?`-Xlw9(xcj>BDhVAA=jZ zf!q2d+|#Fpe9buL?2zjVLcUGRFAcfA3a9!SoNOCA<8WTzic9(~T-EpEhJFOM^<%iF zpTenr4kz2i`7h(Vegl{EySSD6ZT$uA>2GnWf5OT3asKZ(um8p+o#pedswc+{ zJvDCY8E{X}ic>uoPIid%^Ej^;#1*|LuIi<5T`!LtdL`V_tK+s_6L)p^dehSz;ep;9 zXLgJ`Y=aZMBhKkva9;0$i+Z1s?-Y+c5SR2}xT=rF4PD1=eIoAZQ*o-#!pY8Y=J`0U zFToXkW$095rxQB*23*p&;Hth8H}rkDtsllc-NUJV5+~I-|5=>VFX5to9ar=_xUN6M zE&VZW>j}84zrj8IBOd7AaH{{pnO))z6RpY)dNN$pQ{lFr9{2Ptc%bLRsm|d{EzVp3 zCwdW_*GuA(UJh6FinyUy!);y0J-seY^@cdvHJ)oToY!09lHLJVbQM?i?zpb^#tnS{ zZtFvFPalO-eSGNe7SB5-^z~TW#oO~-a3=1VpN|LTm*C>=v2zu!;_x;6THMe#;>sSe za~tlBj-7jOsvpFez2fW4M{$C~oc&khaWp>!=gpVm`KoBXJT964fvY-GWCuM7ZtE#< zPfv?eJrkaQ!*k#4IN3YyFdrU)L%tBsn=ge+dU;&cE8&J-9k+0J{k$e_oBxHo<`b3J z$NULAFnuf=_<_roQ9Fi!OmxOG76AB(&C1U%3uuYgO z--uIv8_pjT=iiM>`T^Y5|H8S0W2cXc`svWu&*O@I1=sbPxTW92U7g~A{uHPBOPo0* zp6ffD=$~;(|2yP|#?F6m?y%^I*Jd|80;hT!oE#oIGvfJic%3;LE}74b>v}%i&=73+MHExTH76RlNmn=xuRZ?}U50hEu&KPL7Q8_r-aA z5H9J%aaA9K8@hqp`Xrp{({OTBoOw3R>kDv6Uy7^xD%{Z5;Ibr3D=s5p= zoE#hd2+r%ra7jNE^5bIXIb78*JMB zbNXmRwuZ}Bv zOcenDAC23(j(hsV;FIFa zQ*o-#!ljdAem<`1OK?M9iQBq^d-?{P>RWJfN}O{i&g=W|s8i$f&ck@Lej;?vi2WCE zNxzD#`Yqhh@8h=q2>0}7c%Z++ss0{k&W!Va!HNC@=XGXX&Z{TEZ9N6<>1lDQXTr%@ zapvqeujj!fUBDH+Fs|ywaa}Ki8~Pu(rB}giUBX?xHty;5ajG}L$=PwAEpbk7hx2-8 zT-3Ybk{*pKdOuv%2jjXv0yp%rxTR0PZGAHC>eF#gpMwYbLY(T$aORx2a|@5e;Wf#% zxMY4S9%X(Pu9`oL8@h*k`bnJXXK`|Foc|Ke>(_Bfzk{p#L)_3GK}1( zUY!3M&g;K$Nl!G2`Fb+k&{N^Io*wt~EI8G3;^h1|KZo;r0bJ6H;Hq8{H}rD2tyjeP z3*wyBa7mYORj-R1dPCgSo8g|`8mD>(oLm@ZR&ieMj!SxPT-68QhCURx^-;K|kH@JV zgOiKm{INK%&%`Bt9PvLQTvyIqCzmL;P<9YYom>n*Q-WTWfLAaz3$5nj{?&$_j z^+`CnJkB`{=kb4k9}JiDCAg}u#tnTFZtJ^oPd|cF{UlDVh%;ZrdHohH=@b`R@%`Et zxURp$JsjS5{DM>c2Ts~C&uqd>Jqa%9DR2dc_mb1%s`<>gq36JDJumLspC6CBI$l4E z;1UiyEQ?2({}WfuOSsaBowadYua8IH!0$Vc6x-{8@9e$=6p-HPkY&S7{g{_n9moa-Chw(|!b=bX&eT>s|t;PH4!zo5ghBXMeH zO*{dI+c-*x&f_?_Io=Pi;}JOI@8G=oXLzLfS2{c{f8&y!$+qEsz#*SXhdDFj(H=WL z9;=tZ0(!VuzTAV`umupZ-7oMu$1O?)ZOmPQW9X8IB#N!=6*_ z^ndwuc$A%!{>Pb}V;=6S!*rN)xen+08;|zbc`DIi{`oreFTo8u;d9{++}4>Y*NL74 zC%4AV6gaP^#U(uxuIkxwL(hZ9;qbX%(68df@p$ta@B|#LjYo9Y?YaMP`2J{eTijtB z&g)xoRo{gh`u@8Eg2KZhIoW!%m6YJ_TnUkM&u8GeJ{Pz2MYyXk#{=EQnTO)B*WsML2^aP4 zxQfH$cn==^NPK>O5RcXU(0?>`p2HRWGOp@3a9zKP8+w3S`V)K&-kitci_q!Encw2f z<8jZQaP`TU|BlnAqW{Lp)6v;oxt8?gI2|AJsd4g5^bDb+XT>Ew7q03&Zs-MZTQ7>Q z!C}v(aL;^soa&Wu@@zcU>Nv00#3elnH}pohr#Hu`-UcVn#W_3Tyxs+u^d7jX_rVQ) zAa3i!a8DnNQyqR5kvt#gpNRANR9w<$;i^6#H}oaAt*^vA-NC880VglS`M2Pbz7sd} zeYmY3#y#D`seTeCFUC2~;=Fzdm-Oqns^7s4{UL7ak8w{=z^VQwbY710e+>C6(ZAv1 ztMS_V3zuGx`9!;MJ?qJEOHYNndU`z2v*64d@z^7r+(02(IfTaZ4|UyLv@D z`px)!u^JwW!}G;<`bYfI|K#uDadfi#C7D%s=Xpo3fz!9*ZtLLu+tC}~lHL?o^;V(( zPV8)tGw()MaH4m^IlULo>-}+2AA&3TNL<&);g)XVu0911^cgtwUOex)IHxbdMSVH0 z=r*qF>u^ioguD87Jka;x%=>ZvgE*%j#YO!%uITZ>AH?hA1zgv!;+B33w{iGd`abTO ze}sGHpW%V|S2#8Q9%nv`^MAn!4s-s%d7asVYhF)++jMg zoZyh}g7bP0T+;jCsy+}m^kKNIkH$S+$EiLMC!fXnr{cUm3zziyxT-I~4SgkU>kjVe z8*r*`!O7=w{+&3l@53eiFs|wzZs;d*TR)3?`X!v|*Ksl-&VL8z^@q5mKgLx(0XOtF zxUGN0J^dR_^*^Pv+~%a7j;vt9p9e(6ivSo)dR*c&u}{XTAVV^&&X=GM;Nm zoY%|Yl3o#4^=i1G%ebxA#XY?tPW5Iu`6|xe8t3&6xTLGNs&~f?y*F;_18`3tic@_Q zPQH%wkH>jE2AA|$T-9gdIu7^AdAMPIF>aY(f!pR+w{ z?_&Q?T-3>E&ZQ^Cbv-3+>FID+&x{9p4xITu&YTzL^!&J}N8*ZJ0@wAjxTXJzyLweT z&}-n#4{`oFIKkm|ZGdy;o8r9rR=A|M$5may4ZRy~>%DMK?~hY`2u^;C=Q=WU^l_o1 zo1ybl?3{x0`V3sr=i<7)2)Fd*xU1WEps&N3pX1D%aH4O=Ieib#>j!aBKZ;BGaa_^k zab3TFyLeHa7hc6Z^Aq>tcIi`b@_XFjEZo!QhmO7^bp9PXSK_?x;F7)pSM@Ep`)BOm zi3j>V-1{r$4~JZb-#y9v9rGt~PCtu_`XyY^uj9IY2eUa$ zZ2Rw=6>*|h!#Q2XdA%+!=?(E19Nsr=hTG;_q6|?B2L*egN+2 zL-9Z#g;RYzo`A#akTE!ujWf@{i9Q#Pz@c*y&Y8DxUSErg`bJ#Qx8b_J8@KcWxU2t# z2fB|d6UQB%#&!KXPW3AxpCoqP#0~u(Zt3tlM{WHn?&>dbPk)C8`e&T#f8)%gasGdB zPEWiKw^5J46+I13CyV_VaWZ-IY&fsy#w9%;uIhzwLobF~dTHF%E8yISICEuO)I~fB zhsR|tTruAWk2c>N*Ufjp4PC`8y*qB}y>V9`fP4B-oa&=+GDY0yc%0W`a7mBFRedII z=<{$}UyPF}3eZQKZM)5i+lPB{5TGuBhTQ}{6(Bh z9cR9V^ZIRE(jVZe9^$(G9Jln>xT}A_1N|$`OcUq-iE}#Hm&Z|0iYt0bT-Vd#mYx~s zrj2vvz(qYT9_aaTX1drJi4(m9&go@wUjGvp^{Tj}*T7Z14sPfTa9eMRdwMIJ>g_{5 zecYjfN6!$i&)x7?y&ta37(0jKx;_REbOUE*ik*{iPM?O0`fOa$7vQ?S6nAHi$6kd8 z`Wl>>CFbLBPTv~(cuL;;-xd1i_lN$hvHu9J=*MtfKNb4=xzL|2_Fu+1{RS@TcX34z za9w|bTlx#!)!*WQ{t0JhkMn=W75z7^>+F8a(Uaq@o*EDI3^+4KoHHxV>A7%G=W#_Z zi0gV$+|o>vKb2UxWwxa-5kf_S-n8ufs)s6Rzmnab4eo zTlzuV)sNzVejI1!j`PRkoPGfp^{cp|-@4J&%o^!qtC@XeGz_qwfJ@Na@<{=+r_c%|8E}O>+rxlcYr2e0P`Z?zx}KJzsaw` zIrDiA)Z_(RBoDh?fh+oIT-Vp*mcAKx^&NPi@5Px?obwRQ=`JqnCvZhSgX{W5+|sY% zu6`R2^anVzMw~yyIsG{<>aTG{|A0s1@VxvhuA65L;;}QI1h>qm!CgHg9_ZO{rX0^Z zH_qw#a8WOWD|#_p*GuD;UIBOY%6OoQIJ0J)zZTBv^>9&dj4OHzT-V#;mfi_>bqx>n zo;b5soWC#5>4R`lAC4>f7+lv4+|noEu09P9^w~JGcAS3!&gn~WQD22C`Wjr<<8Vvg zio5zQJka;!%sO%YBRHoY!$tiRuIT4*UB8T5`VHLG@8W?T;LN&l{wFx6zraQPEw1RF za9#h7Tl#N2(Ak5TIV#Sa9Ov}ZxTt5q-3?-ARy@#i;mn3H&*Pk45Eu2LxT2TBBR0xr zzW6=KEFbzfd@ipR`nrtAZyY=8;t6_F+}cWjU&fiu>8rSsc`DB7vv5(L zk1P5TT-R6PmhRxLz9Hn>#hJH+T;GYupgac}>4UyaA9egP*3#Qas9*KgsHejg7Gik**e=HTeh@WeR0 zXZ#B1%)iG){R{3M5qJ0l*N@I-X5@XuGKX;+^*?awm^gD4T-7Dq&}-w$vGLgT@!*8$ zP4L7g#vQiAIUMfW?Ql__g)6#;ODDy1{e-LfcYMt$an9d(fWz-~WDn=|j*T9Hi+Wnz z(lg_Mo)gzkjs1M+=!J0Zw3siBi+Wi+?(}%Au87C$HShq39oEO0Gom-eqj0#kx5lG& zCG_o#4*fG@fB%r{LqmR6%#X%7-M~eCG9H6p^y*rI6SA1IFdPf8eG>i z;+CEbclF$Opy$Jx>*LIYa0Q2%2jIFs6u0agg$L%3;LHuN{}|5Uu>VtdejGkGXE=(P zc4ozOJr~a06pzj0oL(?=^rE<>mkRxxV}JS3*DK+oUL9BTns}f`;mj@Z*o|-whdnnB zee(-(U0;S;rhDoe%LS{f7>nnT}&O^VRWKy)7Q655?p4xp;!U4Uc#-?(ht*J{9ltk8neO zhD%S!{HxH>--nL=1-JDdxTiD6^SQ4l!4q(J?54oU_&9S>JOYP&DLhhdfJf;)@MwJ^ z9;>g$CbRie}!`|$2s5QqW&dxUWxf1 zc%Z}I1=in;`6Rfdr@&o3EgtBZLjHE_&mM9;56-+3^8(K4g>gkMj_Z0E+|~cU1HB5) zyc_3~a89p{>w10M(wpF}-VzV=c6j9bT(>P=?%+{+S3Fve#$)weq1*hv(3D@F?>E9<4vYWAzt!oc9eije(OE@zj&VL=}^gFnyKg1RNF|O+gxTU|rUHu~-=-+Vhi#Y!;T+tJq zz#KgpZt1CTS5J=zdKR4dGR~P3=X4Gi^#Zt}7r~jYVt+}T)63zaUJ+OHYPhb;xTV*{ zUA-Y5=*@8E>o|XFoYOntq7Hu#UD3Pay51YN^Z~f555)t06fS-f=O2$NdJL}XvACtr z#9e(J9_Wj4=G!>u3Y^nd2O!ij0buS zocS@%pBLx!{J5w`;)-4Z*Y&cvrT>Y$dR08oYv9aJasE0ur#HYwy(zBft#Dm$k6XHe zyLvY~(0k#`&vE|#IHwQ6MSUc$=;Lr*H*rg!67pZ-oHIhM&&6GR5gzEvapu?9Z{wW4 z4j1)JcoYt=`ESP+^9S%~^MB#G`BS*1pTk}KG9KtRaOSso-gj|M4{%X`f-Cw9T-V>? zmi`HM_3t77J;<{1MN)4$kQfa8YlH>v&maZWa7j?4N;K`dr-A7vX`v92ftN{Wh-X>u_D) zgj@P{+|~EsfqpRblZpTPy!I&0O&t9=F6!~2Gs(pNeV%;*xAd#HtKY(zN#n8aJclCvMpfAJ4*KrZ}fR#YO!kuITS@UH^<*`ro*#|APm5 z;**#^XPiF*=kzqVsAt3#JsYm;xp7O+hr4uIM7J>$Px8 zuZO#OV?5AX;LO}{{Una7$l`yZS0T(AVJ1ym9_GoYS}BqP`1P^!=feoA|$9PaeUod_4AZ+|^&>f&Kw! z=8K(QL%v`<_Ro+n6!Qg6W~N>Q7xj|3qL;&Uy&`Vu)o@pr@j$POGYiN08{(YaEO=zh zx5h=i1Fq;QuIt@#OYe=l`T#u8hvLj4apqAtr;o?;`M9eu!2^9I&MX;cc5qJLfQ$MTT-SHvmc9>n^}~3edpNgLocSa!>Su99 zzl7`hb==bL;I94<=a!ChKE_2o0S}gm`8PPTZ1j)8%f)NvH(bTxnptKn-%r#3zymw0 z;L7r`b2hH)3qnUS`iF5iCT-0aaiarc@aoYNIt)Vtw|-V4|D{jII~0SzlwAEE!@@bhra$ObassW&u~$HgU( z>izLR-;Fan$NmqvsFyvPo%Lb3Sc&JoJLLKSJkbBbnQH9xaZW#ti~4z7(XWL5F0ub+ z=F;n?|BMIv-#Al?^Z$c$dg61KuSejDo(9+TjJTy|!(BZ$ z9_aaSX4g1>A)M2T;i6s|SM&a85sli~1>C(a+(!ei^s)8@Q|A#hE?h`~lACPjFFxfh+o3T-QJ0 zmi`@g_1}1)v*$8@beumqPW03`r)R)2bKI{~uHL9j#Sy zzI}XDtg*yiF$2~J7A#m$90ZJ_h(Rn^a8RRIu%HHGPzMVZ)S$+Og+Z|^7A)8Y?20{N z!7|u;@Adr-_w}yz`|q>vbzJRIPh$t{oD=e;Q{f2id@YI*tdmY2W5QT`EU z`8PaKp8Ep!BhQbg$qVBuFOFx+%V2ky9d|`Mm+Y~ZSHqp;wQ!Kv#Zlf6CwWtx<(|06 zy>XSd!R~N7Zh!3MfjG#!;wbNllROlUmiNaK<%97w`S6xM!d}y(ah4y(MPBwo_9GvJ z-3ZH1!%<%TBG$_LV|TQ@UQ=Tb$JMTd7ewj%f0dJi5=$rzW9^yTvwP+!=2=_a4-2>oUgRb z3vt2iJ@^)`^1IkgviV2Y<92U+F1P%um$83k{)$KA_MBe_Pn0*n{wnL)1Si~{+gsp* zTmDpBkXZd*FYIjFY@M&T=nY)#Q3 zdFSS-Hs2iwd2bx${cw^G#92NR7x_qBjN z@8cwYg0uW3F7kJ{%0FXwzxDrtz1$(wFE5CryeLlck~quD;Uag$Rql-41J=I=_HtJo z#r0u(Z_YK5 z&POfN9ecS)^W*lu3pmJqag_UE_oVG%K=V`9c^39^`}ws|{aGxIG&m$3=b`*OzVn0(P&MU&da39S3`xoaH}o zkvm*T<_)_h3*syY&-56ILlp|-?n)-T;%R}n%o0dIpEoH zU+mtowf%6E2jChGEq{N@$kVa=#O9B+j69=d!a-ga*KaMeVatDK-n8ZAo-Hr;#!=n| zC%He)@<3eVU2*u{I`_m;9*XOaHs2q+pUekiFCUJBd^C>ovAD`7VE41FJ-OxO)7#w5 zJLj{_*=;V*Xr61{IoD^QtLT&$!%1EWXL)&C*FGCjH|pk zcJo+IFYM*5ageveQQi?Jd1svE-CMqc_3Yj9@_sEZAK3Epp)Eh3<&SK6`It7J-{!}) zxqKo{@~Jq>XJY?n%b$bGlI9C=l`p|=DVyh(m#@M>z8>dgEORq1E0}M`@A`S?eE<3G zHebc&58x_4gx#t(e;j-HX&mGiaFk!hNq!w?c{VQc`?$)VV7Hp}f7#sC{2li4&p60` z;3#*vn*2KR&iU-RAolX2INCq<`&)i9%TLF3b9)^hYx6D4GjPG} zb$q^M~%GNH6qr4JMawnYS)p3!#;3}_&U2p5z2zz-m9ONx=l>6W$Z;P|MLvx>b=lsml zov`m~op<6O--}1f1y7V8!9{)&Pm`a;RsJ8IEx(H2#qIB~-o$flZO3{CcalHEz2wjE zQ2A>-TK)l7`Pb%ct!J)lxhDP0^Iv%D3q^53xA-g>sjUj91{@-8^Zd*CcbT;zY?Dj$Shf9pI9d-*6FS*UI@E^ z*1s6`@=`d+%i}1ojFY?y&hnbL$ZO*&uaDhM*1s|K^5!_ny>OPd#zo!^S9wPq23gO} zILf=@yo=5E#zo!_SNTBfcD2l**vm)aARmLHd>l^li8#xr;v%1kt9%Z2yIKDQ*vpsT zAZHxqt8kL9#}yyRv*qUI!PfIRcDtLu!Cw9m2l+P~<+-n?Q=T7Zd0|}S#c`FF!EO)h zUlDt`{VtIpuZE+%7EbcIILjO2B5#VT+!MP!t-m)8@-{fi{juN6G6P#i-nC`qJ#mtU zw)qgt?~jXoFs}09&3jwsXzZf-*ft+(KB0L(yXGfjf3VHxzkxl-3*#s+j+49$&hm=5 z${xEztY_4mh79*C2?Ys(yJpDXsnULM-= z^8PK4+x>R1+=b5`@8hh@C%DL8;wpcK-C@@MGmf}@ZutWzxxEVoa8|`%Y$)|hu|vj zi~R`O|1ccn;W)}8aFR#jERVuP9*x6D>luUVDDznCjx&$LUOvC& za)-(E$P3~kFN&+YBz9x0XF2TUjyTAjag^7`t}*fW6!oC%GTa z@&H`qLAc6;u{+IrhF~x6i-SB2M|n6-@(7&ek+{gCaFyHdfpMo>{}}A$u{g-%aFox- zMIMiA^$`|7#UyieU zB`)%{xXL$SH^usI!(P4%2l+l6ujJ=$5mbiyF0COMVw@hv%DIPcUfkw zmXX(O8F@ooy^7>}Hq`zJt8{HLmi%?&Mfc+aBCqtd-}* zNnQwNc`;n%rEry($L<;HSs8nI6&&O>ag^7_NnRgkd1GAU&2g1`VfU={Z;iuq=IwBl zcf?uV85enX>|e0!uy^x|w)PDi=fzcC z2)mapzZmxNQaH%V<0!9;le`Mf@|w8FYvU@fkNvB5jvM1%xIH(<^V~SzK|uZY#CSY;&iUkypn-?t-JdUYoyd z`HgTdd9#+0x5Sg)x9(x8uHvv-}P&@`t#}pJDfr<-f*W{s9O1R~+TJ z?xA0v4`=yLxX6FTRbCpqkF9?N?B&1UAg|iyU)VMLYn#jK;E3C~Y=9?yW#_v|%Y0+= zEm}t23Mct*ILq7PBL5v%c^B-ywVpk&mm?1HKX8-}!bLs|SNW)x|IT{;)$;Q3ILRmB zET4vpd={?qxj1}pJs09AUy74F5oh^oT;v;Ym2biB2kW^5d-)z5ezf_6IR9jR7#H~o zT;*r5`^7RZ;?eRec%u9UF7n%Wn*0H-@~3#V{1tu|x1Z+ zT;yk4UjARpFK(Gvv6tV(L4F69B`otHuJUKtEot+wv6p|qLH-p-d9DZ9zdRq#@}IC< z%6k5cy}UFI@(MW0f5Ay!6=(UcxGZNq>)OAH+d^7)SXDoaAS4mS4n0eg#+g4eVC7{Y zuZe@aHjeW8ILRC1EN_mB+zVHEYwT9F{_U`rcf>*78Ao|{oaDW6miNO&J`h*=(3V-< z`j2cG`IwfGkHdZq%bbXVd@7FenK;Sk;IfwGFThp41iLOa&)CaX;UHg+qkJIfUEovc3rLiaqQ)%agblYQGOXG`E{J-*|^B><7x6IxXNE*x3(SYJM873aghJO zQSLB}W62BREH8?Syd&x8m3AK!#KF>jwU zzrelZZ*fxoCtNhY;2}EYOR(!I_87vob#HEz5IT2FS`z(G;d{I`(gIe$MT2aEFXo7{4ZSPl0378(c&I$M<#)9HAuS{Ci|as}55sOJ^Kk6t z5je;rag;~lB#&hgaSH@LdrOo%So;BNCUK_hTZN5JC^2RMAZ{9L{S*BOZ z$XnweZ-=wIBQEmJ*bT9@yJIi!jf1=&j`D#x$%o=BABl^646gEVI7I6|5l8t{oa8fc zme0XOzM##A+S*InT+TS`XY;FYl&{B0z8Povc3kAUam8JDtslVdALfU!mmkMLei}#l z1)SuUah6}lMV^hT{62R3TmL86%U|Lke}|*|Gfwg!ILjR#r(a$WS9wwF4zT_uv6q*_ zLGFm7+!-f%4V>k!xX9gbmAhj<%-$nCaKP<7@*|G&Z#cz ze}wg4i-UX2-1hcG%baHZ7JK<89OU0|l;?StJ;)1Sf4cQAf&*@y zOJH|~9c$T^Kg%*_;Vhqvi+mxj@}=0FZTX4V%U9zd-+-fhOUs;N$GW4<2!&#n&i~K0A@>AGN zvYzK~lwZP0ehp{&EnMVxvA@dJeuRVkIgau-ILSZaD*uMv)wXu-7y0utZqLT~vDbWI z+)4AranO7joaGg9kv*>RYS>+4{cGVUuZxqsA#gTl9OV;ml2682J{=eNZ0v8awddg=UxcH4 z8BX#QxXRaHccZPn5qtSo9OOH3mhZ(yF1X5%V0V-CJc*AhBQMk(g!eNT_9FL=X5>E1IILl{Yce~}!#a_M;2l-MQ<%zh+SK}(*fZZL|a|`zJ z9XQGN;4D9gi~KOI@)J1RX+6*2D8Go4{0h#veYSZ67x`^m^=#=NhRbB}Dd*_?;^Kcf!5x4t%C*0{i^KQ78yjRP}`{1GS0odPf`9oSp zJ_0BCpEy5YnSbLVCtT%IuzS!lXJ9Y?2M77TILa5}Bwvn;d?l{(wb&Kwya{{xHXP); zaFp-ENuGwY{3v!0Sb_J`9~b(-&%gA<>!8xygWY+^1?XE zi{pwnV9(36`OCI;C{FVJILim)A|H;cd^C2i*xF-TUOu7a<&#@pKE35%wfxyQ%ID!E zUxc%K87}e_xXRaH_nP(Gh`oF(4)UEi;dYMq;w;bm3O(`;*w3=eML5XsH@|Mr{O+%^ zPq_z9a==;ciwkbg|9-g21F(C;=7Vs2%RCq-c?iz(zSzGv-<+S_F|1`iFu#C%ePQR@ z`!$~1@-{epX_@{w%HwguZ9iY&EPvblwdH@p%Sd)`EDHMoqtZx131bL z;Uqtf>-?5^8oLF|FJLdfj3aK(#@BI@XX7ltkBj^XuJV`IEof`M!(RRw2l)>itgDJL4*^f!&`h-xYhg8xC@J9OWK3$pL4%FRpSw>=w4p z0oX5M9)yED7)N;sPV&AuFK*X)7%uW~T;&lsEMc7^ag;~lB#*{f9)pWK7FT&3c1v5& z`Pj?jagZnAC{Mykz7A)3GOo*5&lK#IHBW8x<>sIBeUkgze0lS9?B&OBkZ0g5KaYz% z6IXc_b}Lv<#U8i!!h1N#ALA&0fy+vk`4(6CC+s@f{CDheyNBm_gC2PS9OXrDl9#|) zUKSU5CG1z8f6jBMQ_IW8wY>aP%gf8Z$$sQv*!{)U-j9R4#9Qn^-Unyg_IVGk@`KoW zTl+8$a)-)Vc_6O1tsReDC-VgCpG>DYC){>N~VXW%S9 zkBdALS9un8tJvC#z5E`I^2a#IU*If%i;Mgd_N!XY?>NZw%%(?P04I47oaH5Ok(X^= z&3aa9UftXYS9x{p*Wg~_>rodRaJ$aO<0zkmlYAP^@>#gZ=i(|~h&!w~|D2!oacRrr z);Y1|<*Qp>z5%aUa~yacvwmUmquVW1Qv9aglrBDsPS5+IFn%u$OnlLEahn!R=VP$;aRnN2?8Sn^po$S>n0Z~ig+moLUe z{uYPLt!LmT>`lH3C;3O5UazETl9)P1f2oIG9<0KEkqvd^ZmWSbq@^D<_ z5qO$B5?6T?o-L2YZX4VG7(ACe7JGRd?j)a&gFGJhk|*FOPr^gx>u{1M2l+4Gu}^sjPV)7*$UkG(-`4i} zo*wyBoaC3Acd%ov@&o50uZgR?Hg*FnvpyawZ;VIFo8yUcFPx+O8Dwi*ar?Tk9Zvh1 zcWfDXXI$jnTVCF~&HrKf{n}hU5WD?tekk_xkvPc5;3yx5lYAo1@~PMzU_EDIFQ3!$ z@&zp~UxKTgu^VP-hr*xxijz4iM%{${xnh(cG^AR}9ci|%cgsZ&q&-5Q=okuqxVLlf75#|$cKFWMD zF7oNP%4cJDv}Ml2@t?Nmi`smo`2*~avrN}txIS_>9Odpf$vyCBIp8e!#S`UzxX1%= zl?P#Wyd7&W_VN%MlB#*-NM9YuH?j-XV?B%gI$m4L7&&L_J=iYdnPBwpr3vT<_{x|yN zzvD2*GP~d?-`D1++kCO#Iqn(r&-q^EZaB!7;fh=5o7jytzti&ahb=FEh7)eTi{a}w zKg;?z{)6MnV{ww-!0v3ztncP=ah$C^183ZY<35Fp{2Z?GOW2)bnb)wF-@-wD7f1P{ zmO0n*pSO(s4bJk9xX8cZD$hL^$2!l}&X3~-b{!VR1-I8?@s_#Jd^q;l@~1e;U*U?|>-arRmz#fSo?vzz z=$GfkMP3M3c`?inP@dDX6!ury>$QB#Ut{y#TVCF~<*&8*erAH!BNgQ$yeblUyt2wmcJQ$`F0%SyK$5s zz(sxtSNU=5rdZF@*vl{AB)^Qa{5mf3Y+U8{ak$-jKEYA`5-0gPoaLXfyTkH-U@v!= zmmYaR9OXrEk(b0(UJkoEt*0aQa%Y_6HE@=@;v#p$Rql?%UDneBM>*gm_r+Q6hYN1^ z`~Y0#LD)^T`CuIHF%Q8>-WO+i7%sTo^TTnKN3{HdcHfS~zF6h~9OQ?Zr`h~*9Ob8R zl3&1ex@BI*?jiH**vqqVeAtflK2DEVX3hE7r@S^U^7^>S8)NsV2jX?uq3-15)b9wxQCJRAGxY~FExGB4QLU2vB7X!HMBCbl_l&${bymA}F9 zC0pBL0rGOdS?-IA+^_jn%MZX+9)#U%HXq#lx_Jop^1e98!*G;`<0Oy3SssatJPKEN zGEhD~|GeILRO5EPsKE z{4K8XPdLoB{@-zw=UI>*c>$c|MR1Xqz*SxrySJ@pCG6!+ILNExD0jh0UJqw^BV6Ro zaFw^j?j7szgT1^h4)P8-$~)mC?}oFy7k2Mj&pz182egcQ2rlvwxXS;;?mb)kZya%Z zjZ({hVDr0LUcL{fk8C~-XZg{Vm!E2R`8n)9w){)j%dg=ezlEdxE>7}CILn{oB7cLc z{3CXsSpRR>%X2S8zdS#V^1?XDi{mUWgNwW(uCmAOQ|n(1dwDG!N8)N4aO4|7c%x zd$+l~4Nh`@oaKSI$h+by@7d-*TmR5Dm-ol+7n>i9y?i(h^3gcT$KoWPfU|ruF7oNP z%4cKutM#9UgM1N=@?|*5SKusPgNuA4uJWze{brqaVlUs@{JVXvEI7#XEzGgxt#Oji z#_kV$yrzm)dY z^78nWkteiy7t2h-S-!4$ZJSSSd3g%1@>J~BvCRG0%hPd?AHz|efs_0^&hkuL(O!v;IY}mzTgnUKU4rC7k3=ILoW! zB6q=6UJtu&*1r+<@@6>5TjD79!Aag0XL$!))#7|c^@3)18|fN!AU*> zyA5pZKe3npjf0$UluyA)J_Bd@Ke)*M#Z|r-yA7@Xa_r?RageXYQN9T$`8J&8yKu#O z@ch58+UamOE@8KwajFbEY&hodo$UosK|Bl_p z)<4e@^vet2ATNTWyaZ12vMs-ftzD_*98E|1IqLntLuuerxNw3P<^RT;-dw`$Zy9+uuJZdW-_P=&;4FXH^73~rFaO-~+gbh(9OMp5u}^tHoa9AumY2kR zwqIb*-!(6XPnJ94cjeBwLx0Px(eiRv><8F!yWt>r$7NTW_rO&SEx((+7JXY@{twQ$ zeUIgJT;$of%I{-0*fO7BFMrwQyW9M`HkW_KLH+~BJuK5 z9Ckx&-VuAbGtTlFxX4{`mAkdf-nO=Tb2Rs8c{#NCP@DI~VIOlpT;&1S?Q8QvEiVto zMIM5~ewNu6M|oJA?{D+rZ7z>!KEUQ9ags-2H_YavagfKf{DC$f+w$@_oaOUzk;mgI zPr&{lTRRCy`8u5B$v7NrnJFzJPsRCAo8OO%JRMj0F`N#w%#4(9{ zwPob@a6HN~ALAr{(em=Q*dJq`nSa7T{vAhoo@Lk@Uh&Ym+ydDB%e*-D@(MV}tKcYi z#Yx@>XSpXX^53vK*7mt0_VUg+$h+ex?~Sv(U-Q3h?SZ(+hvF(9iQOp69D{>=9FFpd zILW8tET4&sd=9Si1=t;DotI!QXB_0KaFnla`4j9q-`q0t?KsJI<19ab<0k=wa^IFe)AIeWmj~b=55iF%jFUVBXL(;-At*D{)aj;rS1 zV1K#gH(j1R$USkGVDsK>j$6+*xM+SB=06q8nV*X@p7XT^SIuX)%tV`aT!Bv9dOG7I zAA++o58$f#LoI)W<^QxIuLW-Xd*G~j#O_L)Ux5Q|{ny~C`KQ=VviVmy;nvfACC)|j z9@t%F^D#K!)-x7o&7a0q^A~Wu+TKU2cclLYTiXQ(c|9EEjc}4T!&TlAyBlq7A6(>Z zTSndihns9aJK-!}fc<1!`%cTqAGXZRHvbG4`Dx9%1gJryaLYhUvQCE#Z~?*cDGsQI@rq_G*7YlCOF7j;3#i}i~KiSD;G~w9PiuMkEbQ*J%(>Xh z7vdmaiX(3KxgYlOfjG#A;wT@9lY9)$@^QGxC*mrfirsV8e zt>^kSmv3(K|JnTZHka?lMScKR`629Hvi#%N%TMDVzks9sGEVaAILotfk>AHv{sg<3 z*8e5;@^?7MKjSF>(dMt&>)XLImlwoIUKG2xt#e82<>i{+v3W-v~6*WoHp#_l8QpMt$S6$kl#9Odaa z$&cYI&%i}~9#?rLb{|{+EbQfqgZv(j^2a#IU*If%i;MgduJZ5LePaFdbfRBg00(&y z9OWf&l9$CT;#iOmG8suE9;+zz5FN+@>4j<&*3D$gtPn_F7jKr%I{+Lwe^35 zz5F>2@;5ljKjI|+hO<0(XZq#&ag`Uw?i=f09D8{g9OM;ols!)JYBG ze{0XuP1{`V+2-Hb=hEKT|6o1?ho5af6-W6!oaB#jmcPJ7{uWpHr#An^dVX(nd7f41 z{MF_Q;3O}Cv%CZ@^0K(fD`EGWt?h)pygCkY7aZmFaFRE|S>6m6c}ra7KG^+k{o7(M z?|_566OQt3ILUkAEboJhd;qTUA=v$4{YPLg{}TuK-#E$%C;1edSX%^fWBE{^g?ILV*mEPsQG{3EXNZ`jRiJ#(+hvE=!2kQc^LUcAlcv-~n`F0Y8w zf;RU!%d6ocuZ63;E_Mr9enaf#O>vNW;wbmVN!|u$xqq84Y&`?pT;3HIc~4yBq1Z3F z;GF*tzCRA~!8po?<0K!At9&eWi`m)}u$NE9K|UR4`D|R|^Kg|f!tT%3a~Y2E6*$S) z;4I&Wi+n5gi`&{eagguDQ7$;ikKl~k_pF|5`6bLttwtVq;q!k_oaEj(%iCbLv}O8Z zFAu~)-W4a@{v5F<&hk)PmX|+knXYynzQ#fR z0Y~{)oaDLIB(t{dVLqI3+d~gr7@}R5a)7`x5Jtm-oO)z5%;lmiZiedB^q0%M)>wf5t`b z-;KS=PV$|&%J*Wotz`=Kxb5c=9ONHylDlujKIJ2EktgFSzkyvp z>sh)xd3hkN@>uM*vrNG!Z*T9H@38A{`}r9M-1hSaPMUADF`e>eI1aGPmiS@Z-goC= z_jj9Lgsc2M?l90Y>ukdQaqHgzhn>v-#(i+>c^OB|U&mSAVpHaWEPoQN@>AIFZ1Y7n zqhB6?{VsN1=ine;fTMf~uDjaW-157bKWcN_zNW9$gZW^aAA^(pAdb7+e6h_r_dU$J za%ge{LynG^d`&#}~?Bz3Ykk7$Uz5r+W5?thr-G0_{754J=Eid2P^78Gt%6DV; z4_o^H_VPnG$dBVFKaG?80?zWwxX7<#x4(7H#$J9O2l*2m<+TEL$H_k#X%m1qdXiZc?8b#NL=JmxXPokJJ|ZiU@wowK^}*rd_KHE-t~YDtBd|NtdTzlH zw{yRv`6zRTKIG-SaF*}JMP9lu$CZ!5?r2;44EFL`Thk-|2Uq!h9RF#1SnqFSaNEO1 zILjyFBG1HCUUM6cHPZ6O;ULezMeejMnPaSfIQF>pkHA4LILb@(V-NCvILmkADlf1d zo&U0)y>O6k#Yz4RXSv7rtd)<)?pRw}aKP>B+C2SPtNB1&i(QT98~FCT)7 zd;_lXTiA`VwM!15N8TPs`5av2nb;p^`K5LwFZag@xBKlx?2fn0so2X;wY=OUJfzJ>+qv(H^M9;!0uJLW|0<61n>fkuw9Gk{|FC7`Fp!LV4$ksBxcvXj zPV7w{kKMV}^C=E;_d)c?$Ki0E?eig=<==6Ux7(S_`Ifl|7x_(G%Rqi`3@X#>%Rv_%^$=`ei&zEp1?)( zXK|fSGZ{YJ+7Mng5B-b>Gq-@w>{5`gXRn2 zsQF?zX}%QB^76RIE8{A!g54d~xhD3w?SE|?G+!S_%{RtL^UZPAycaI=*0{>sVRxtX z?}$Ba{X65J`R+JszBf*q?}v-#2jVIpirrn-b0qfiF*wM_;Uu4kGj7-IR9rMa6Iad8 z!EUN`UVuGr`AgdT9-HSjm#@M>z8**UW}NS{=j82jJKsNWVcy(f2*;Hd#O{8ZFN(dq zBo6X&ILaMyk~`xpuYrr)6<4_%b`My8ckJaJILHAiR@V?~b-Efj`z(xKE zyC*E)dq4c7`7E5|ii^C?KR8GEB@+=(Wilh8q%e-KF`?zJ~o(GVT&%sIlw9Q|% ze4kzOql*izVTjn`jRXvHWYe;x1&m9mILPYVM9b zZhxNYA-BvJT$s1cvAD|PuzSts=i@lbJRT=`0?zWJmVezc*I_SD#zCHfqdXPYYJ0mM zyV>UH*vpUMjN9I3;37Ydt2`6Cw=FXZd%5BuzlXE@F)s2K*u86Ozr|ku2?zOi9OZcq z=G^54aDLC$E`p1^1orRSYq2bj@(`Tld$Ie#GRqu7k9;65a=}$zVL15@Eq??~@>96r zc76Pzlvb zkZ0m3&%#NrILq(hB7cml`~`O3TmQG%%Rk{D|BjifVkT=6o-V!IdPn-X2*LGW6)3jW|?)d``x@D_VT7JBlpBn?v0bY4bF0ZT;zc*^M~zo*EYvpc-^nSRlWxE52WVI zZ^UtK^Q}0^cj7GHi_1I<&3PV{Ht%5mf4sd5)K%m9zdw0qyXFl_|)|zX*?LYCju*AOe>fBEBHNOB)%rC<8=FRZbyagTp(!Sm)f|dV&Ct(9#G!AD;}Qg^4;;sycZsu_r-JO&*F*s06cI0BA%KL!=qE&n8Wed zd=#EDAB!jE6Y;$H6g;fv`c7Bge5U*im!FLXXF8vcC+3UsTuql>ibu8FF2i2WPvQJ$Ptd@BrhO7sF%ol6cO%G@h83#e;L)IOXxs z`~*BQuY$+sr{OvCGvxJL-`aSJ>)v<{9@KY!J|3Dk#3S=2cx-+do-@A^Pt32y^X50; zsrgNKaIPEwHas-HL-psm`E-<@@4U0>Bj;W4$UG-+;PO53oOvHSyujt3QT{^b{grR% ze6YNc^Oy1DV&|{naZ~4S$ggtq9E0b~C#c^1T|93-4NuKK#DkWu?<+-^BCgl!9)1NuBI^_n_q$_=9lAn^OksO-Wm_OxV~-i(7YWUnRmcr^SkiG z{60Ky{ve*3cf*6OZp_E<(EJHJGJg_}&HLer`9M5x{t}*=CwS1!jX44j%}3*r`8Yf_ zpM)poQ}Mj{3_Lae2oD}{W6r@t^96Whz66iWm*I)|Dm-t#8c)sF;lZPB%uRS`z6DRr zx8r&9-|;Bt>i6QYd69=XAIyv6iTR;;-nJkPtCjIK~LAW7oIckiznvK;(7A{cxwJ49`tg3hvA|5a6B>}h3C!3;;H#W zJb1$Ooq~tv)A7iBCLWv5#&hQL@zi`V9`ttOEX70fm3U;H;<5Q!JcsKwbR(XaZ&uB7 zZk%oM{;p;ho|^B$g8?pI(1mrG7sDg-lFAQs&imuZo6ZO0xwo9Z zjOWc?Q+~YLmN!&yJ_Zjbxcme>GJhA3&8I0p(basYy!j`1&U_x8m@mRp^DpsWlIy!d zHSfB)eT#=voqvzV<{MOF{xcrES7P6@$E|n{*Y6}-bY;8Dua>{>^4H<<2hL+WF~0>* z&2PuUysNoe_2&1h-uxlen?E9->FRr^<|F65l{bG14`;djb9ik20v>$q@G}qNHRK5Adn8#gHK)k z8ay;#k4NS|DnHL1i(l{@u48d+H)`fPzX8wTdRBZBo?3nZ9xiY-OYj(1%`!Z({6&vY zZ{7?K7rOcuc>YW0SF6VSIy_qH@-ZHp--74NZ^sk!yYamF{dly@^?eAB%^y*{c@Nc_ z_r_E6r|@98>-!uYn!lhLT=$A0s`<+KE6T5Q^{*?x%K4jkY(5^(nNP+O^Y`$)`3HDv zJ_`@NcH_*&L-U1rV*WXvH(!pY=3nE%H?Hp*JTzaAC+0umdGlXX|E;Uvp?dS(cw`;@PqTy@x1w&syDBz`VFq8 zJ|3Ajz+>~qc+UJ1JTbo0E%9)Z^VWFulk>KC@U!!Fc+R{7o|xZ-hnro^eRyR4 zARe1{!*k}3;feVZc;5U;JT>o!hg;m31M$fGB|J7y@SOPwJTV`Q=gr6Asre*4`o)bo z6_3ql;5qY;@Wgx$o;P2B2fw<$OYqcunetm*eia^>uf}8Zb$HHv6P}oF!Sm+Z@o1YH z=Xd4J_u|2JmoJi|#=JP5{^s(B;=xYmW$@U%9G)|;fG6e^@x1v-cxql1k9WCoYN&p< zyO!&y-n^db%_BVc!__px<01#|yEit)bLP!eZ+?~P3tdesJTz~EN9H%~@Kg88fQN8(eJZC-=Pt0fIK}lCX9}mqJdm*Q-h3Ax9`5S*;E{PjcjjhZ49}aF#Dh|Z{;E8Rw_r zk@*>TY+f5r%+JB|=I7(NBVFHysxfbZr{Z7LUzuP`&w0sxRy6Z&SVb z9jZ6)h$rTq@w|B#JSgY-=J3$GCmx&k!E@%%;Cb`@cxpZv507@^yo^WYui-iKH}J%K z44#@#z=LC4-*@rId>S5`e~2gMpWu1(d3bQF>$?aK&A-GW^A&h({wL)Ui`9+_{!bLQLe#Qb+W zHQ$Q|C%C>vdXP6Sjt3Q8{!lzJFN4SC)?rb zJv?t7;b|q;w-FvxcHR_^%$wt}`Bivg-U`o~x50xduJ6rwXx<)=&F{o>=J(=x^9S(M zyel4@EGk+G(n-9QK^B3{xe z8)p|Dn(x6Q^Mc2zIm7M4Vt8m?5|7PG<2m!Pc;37`o|>P42Q}O{Rq)XKG(0vx1J9Y) z#`EUq;Hmlfs;}wBX{dVhCaO2TO!ekh;$baUe=Q!F-=O;1Zrg8Cz4>i;P{-x(z(ezn zcx2ugkIlQ_iFppsoA<<1^FDY`*NyoMo;%xle>^cCjOWc?##8gx@ZcO*{{|kKk5LV- z&yo{VQ_uOkcw{~ekIg^C6Z22-y!kx&`ELA0cxwJ7&YP8e=llvhH2+rl25w#7D{sC5 zkIjF^bLLy|y!lQ%HUCrf7r1c_>`A@(L3rN$5Ii+6g@+fq`lIm3{8-gDboo&A=9N|7 z$mLH}y?J#!XI=|W%+FT-BDcNgDQ|uuo;SZ3Pt7mIgNt4L6?kZV4IY_akH_XW%A2_P z+=}PS|Aptx@4-{^PI%bV)jy0!=8vid*XQNO@!%5Y|5m;E)2cUrUf#@&GYF5(hvJF( zt9aggBpzJq>fgdc^S9-fx%@kLWd1&$Gtc9R`Nw!_{wW?bcYQy@qZZD;z+>~T@WlKZ zJa7IT9$ew-f51cYpYXVq%m0e!%zwl4=6~R+`2oG?+uGF^#Ut~B@q8PXKO9fZk5qkI zmp?}J=EvhX^GbMPev0aEa`n|zZ(dXN=4Ywi{9HUWzW@(zc6~3xBlBi>Y~BJ-%&*4t z=GWmtJJ&bHL-Siyf2+&iu6pykRezhy->-V}hw#|^5jBr&SxoaJ{M2S7vgCr zSMxa@bv}6CbF<}m4%a<1dV+BtcHRh&%$wqgd2>8(eifdYx59%iu5TMWG`|^-y1IOO zJT|`*Pt5Pd^X3oWsd-mC=;r!%$3yd8cx>Jm&zV1~`bS*-0M(nnh)3qb@YsAfo--eX zC+1`Ey!k}cJnF`rq8jt*sxhC5r{=TqAm{4mcgXhf)db2L`VtCNU^(~2q=B4rIIhQZ1`sbaOS51HCC*X;B z71fxZru+a`bB6NfwefJE%b$bC=I5*4yrJsNo8Z9TJ_ntFI{ zwDU+cZ#r+J{9DeO;=vf_&6PL5O8K!a-wKb++u(Wgn^iN;)wEZQ`JJjUzZZ|kyP5~^ z#Jnq>ns>*;w_Qyy)tmQKjrp^xnc!*$sK)$7Jdf-7|1dn5=xPf4ur1~#@Dx|gVR$&n z)pWsQ^BkVXRnt@TlU>bss(;7%52`o+2~Tjn-}n{JoBxKV=6~S1cU{c^eW^Duis#J_ z##8gd@nDLpKN1hkkHK>@T>f}GF|UND=BMDn2d<_X9-7z0BlENH*!)~PF~0!Mn_q({6su7pMpo`)A87RCZ02&jVI>w@x1wBJov(mxfBo0SK^U*ipS<_@tpZaJT>2p z2Vc5zwyEBHm+H;;;E8#`)6BuV7@nG!lrMMVlvd4G&dbVII4_S!E1jQ!2dkV{!9(-Y z@SOP>cw$}~&zqlvr{?G5!Pjn_hIp7dZ=!l!=fh>HS?%(p@W^~Do-?1Qdh;o&U*qbh zs~*=lGgWW-)1RT<{7gJq=j!V!Z(bh{*SmZJJTh;L$L5#dIrGc$#JnY*{^^T+VS{0Tg7{-pB1y7l%`-h3b)Y<2mU z@X$QLBl8h>Y(5&#nU9libA2b_iTPAKZ$1MLx4W8;@W^})9-A+~bLLC%#C(}*esg_S zsm6RYo|>=2gPpEs6CRpx!6WnScx?VVo-^NzC+0<-Wt?4ZoZ@(BekdN9m%(H6a(K?X z0-l;z#Dm}6I47yzysGNWYv74_9XxMd4^Pb_JlyTZX@tk-O;!Jg%QsiO`Bkd_)8$*? zk$D?DHoqCqnYYIi^E*|)*Y&+u_2v(##=I+@H}8(8=Dl!!z`gG^qAwnrKdbyfEm5U{^m|HRkh`Kg8u1 zP`7 zf~%>a8uL1;Io{>#;gNYHujKkR!ejHMc+R{zo|s>S=gnKGrm`EejcRbcpS)Q$=I!y+ z{7yWm;%e^2L-Pml$h<2an|H@^=DqO5yf2ODIS}z#PjAUo|>=4 zgKBP^jd*Cj8IR1j;rZ&WW*45C?@`SeE?@9G>oPBf=gdpuiFs)}Z(bIUYPi1T@!0$X z)tgsQz4>W)YJLVDoay@3#zXUS@W}jpJT`BLC+1D?y!mB#YJMdi)O2HBi-+bn;5qY~ z@WlK!)z@}o@tpbh zcw)W*56^Oaf5s#8t*SBKiRaD##8dMF`?G(}c6|@RL-RxM#Jm)qH$O@>=eYV~@yI;H zWAn;*&iqt7F|Uq?^<3Xtcw~OIYRu2W^X3=gsrkitP~Y{v6c5d>z!URp@Vxo;sz2A& z->7=?Tk**JUwCYO51upcga_xjz7OM}`J<{ae;iND|BdI(pT<-3=keftH_jl{n-5jJ z`Kx#sxtfu9Wd0T&o4<|c%-_Ki^Y@i+==$cBH~$z98oB(Zcxe6^9+`iE$L3$*IrDGu z#QZxvZ~g-wHg;qFgh%GT;<5Q}c+UI}JTX6D0Q;ngyFVAjgQm_8#zXVN@yPs0JT^ZD z&zT>OC+3y#y!k13YF-TwE^*`6l(%(rJ_`@c&&6}*7vPEcMR?x48J?QAzbtx8v+>0IJUn{Lk(97jN z!b9^pcx1i+kIk3hiTN@-Z@vmo%~#{W6K>3Ps=>8go0RYEd<&j4->w?--J{J%AyPBg0GdJ^N@nE3Khsv8*#`A+*{#4Zrc3xdI=C$zTMVCKY`InrZ zhv&>M#PjACg!fS6>~Eah(sf@Wk?C zRgdesn24w5Q}AGn%TLEc^O>s0bzRI>eykgFJ|5%B*L{ic&FkZ-c>_E*&eb$l4X*WG zg6GXISG{>lJQ(k4TH~R4TRbvvr~KP)%no>LeixpY--oB>590X=uD%-{O?2~r4A0@3 z{|-Eu1&lWH+}G%9|gCC+0`sdGn+3)ciO+c*pfUQF&bJJsA(*b$&V? zo1cj%=5lFPsD@wTz(23nNP=a<}>lU`E1p^@9O8P#(c4A z%$MT9G*`1yHRh>m%-5=Bx~tiUN9LPVW4;Yf&3CD0hO6I$$L0k?8Q;7Zo|u=!^X8@T z=mXccES{Q|$HTnKpMb~aRh0kGEQ}f1nu*mhj1P{$G$0PHWcx>JpPt4omdGmI7YTf}47P~R;!b9`>@WlK< zJa67jHA`ImV|Zl#1Rk3|iRaAw;feV`Ja7IIo|-3k__-T%1Rj}>#$)qwc+Pwho|sR? z^X4<~)chkn`ofJl2anAc;5qXpcw)W`&zrBpQ}fk$@TD7P9Uhx+!gJdI37>TC#&B4J=L#rH6N%R z*Y!9{_2!jcVLo5Gn%;P1{uG`we-6)^zo7bWT>TK$o4^< zbDoSx=I`OD`3HDzwX2zh=gsG;W{t})#KZ5Le~u^S%T;6kwQ9b1HEZzLe7)+;e^kBs zFREYb>UXH#d^aAgclqE|=4M`q=gmvt@ei)%Fg!6o0uML1{L!j0KTb8~C#q(nt2tRU z=BKO1{7gKz$<@@w^XB#O;76BlfJf$yRbzgMYJPGxm*a_fOFT7ijfX$Gnznef*?BuW zHt&Gv%rSS56!#bk@;hIZ2knE!}WUfB%YY}!}I0?@zne!Jov@cCwOQ+ z0*}l`st{I%}>H}63Q@W?#E^X854)V!(cE4jYSRd0S39-FtqgUYU^jcUwq#&hQF@x1w+%Af4& z?^WLX0X#Ux<-6jMd3V*D_foxiU)7)L>Yr7;`2f|Mzo>fiVX8mP)el#_`6$(!k5#?- zMAcVy^;1-DK3(>Tm&QL1eh!NSs|&aA-|q^4<-cq9`TD}` z_=dvY`0u8|UHtcsO1t^*SvTzEzrWqBUVq-L%*}oN`0WpI<98rlO#Ajjc0XPi6zy3Ulmf-_u!Q;TA4BqWY*~X$T_arW%PqDd&Zob~ zdQ83x^n^Z{_%!|k41+hok2fCwbz(vA4sj518nOFGjs)X+ioM}{5zDl`nhOd7<>V{K zZ6S(parKdF+kAdgCa>kcWcuvQEc5jxdbu$VB_07sTiY*J)HszhdB0v?b7p4QS-6&a z&ZB)1d_B7$Xhzhwv>;vs*MsV`Z8zdOiS3C^(t=>pn+5x#)=`H(Pg!2eim=a=*LJJ_ zb1YNa=l#4ChqG)nj05fK&xn3*iYsVq%(X<-`}z2qE#$xX%H?4+?ubFHY2)mD7IF@_pwSUV~-lgO)Y4x)#Kip#9W_cnjPG z+ONe%6$D?6`-=hOweE2i{X7)g&MgS0THeR$v_FC2ESqmpwV&gwU@N|cxEacfF9@~~ z|AdXKQ{xr?cVTcOl-X7g977DjpWBsjjddOK^y{lm?jor8)?fRm8EwD3h4s<4UTv=Z zuW_`Gl)s(4a{j#0GEa_WItO}LU(N9;{COAz+qV|*%l^O4IgL^7>%Z<%V_5blxj9y& z<$gWh6&JBw{Wh~7UVYo4ZPK!JEYp0n?-VtjpP%BH^xH#ClRkyPWpE8_|Dqr``8&6b zcN7*0ZX)+Dkar^Ln$z+Z@doqUdg>F)Fa2xmdP_K;SiYNW)|~v9TIUz!cS4E2g+X;V z2YxuNNYIFQ30w}UYiaSA`P?^{<4v@CgI~`P#}wJOjZayf-!5&_bL0lWP*}2=Yeq1p zKei(?ecr++gJ0(3j7)Amz5>33?V$7gccQQLvEa$Sa;0#8FW214(e`uH`Q!U!=W<-8 z#@C)|Ie)KHz6QB-;1^ySzMsHr0sL$&b>vfp z!EMW3zhm)it>1q>`q!39)M-5za?GpYXF&sK3J*^!2$~arVjV4s+Gn~KUWaS`G4Y@9 z>$!!R>%J)n?zBFByA?azvTnqVqY8o^#3!L2Xif=n1l({$kzgG0efX4fNz45BGszvo zy?+kz2kuw8hrC2ojb{bR^ji5T_nzKHo#^YWbeTMkR~<&%9Kx+F795Gk+=wp5|Vm zG3Jufb>rh=+S&I$X{Nma*Z$l>{0-Fq4`T4lU)NUwuKYCaR|n%qLv}nZt3*!MjrO0$ zt4jM!s0$J3K6weTwYmDV#TB~|dx7rL{(h@mUl?S|ULmSBdtQzvH_?_)(Q?S%2Q=oV zun4{c9V6YJzQK1x@ND6}br%vfXW`F{gUM;Eazw3HRKV{gSD)Abw7rdqdR-T)*|(kK zu7T^}M(|_ait9DrAD4g8R-dPc&%q1URv*94?D;r^{4ZO$&lBGS-5 z=dcRaz$VxV!E=SdK}Jbp88{kFgi}CstZh;2J{Q+~E+94s-)>`hExXIy&#No#Uhp(1 zH;gzE#=%E07rufYK<`s_5dSa=o@YH=mnDd$;5axB8bLeg1aHIp#w_AzumZjZosXM{ zzZky}#h*~Lzsny&JPJan0@b1R-%yWSV`v6fLI=1Xw9ZF~TCe8O2Uo41i*nD?*1jA{ z)bjB#4V0e?i(obU47;IlKw(fC%EPH}7Bq!x;Wp4%nv3W}Tj<{1g(wEXEASS)3o~H> zEC;PqbJBkJj<%x4`xzHU4J-^UgeLGBj0SDXWTLjyZ+D)yws{_LDXfMc;aAW)_Md~+ zuX$(=TK}KaY0ihfz&QuULuIHAb>Sko3|d1Qi}H5XzMXhCbb_uh2DBZj(YOa*}P;)k#T*1@l!>@QaKAoCv2wU1$I; zp)GWP`=A><0sTPR{1S0EOoG|4%=p^kfkRxbm_@%_?L&YB118QGSyagTr&95&}>l$S772GZ*K8v0go2kj=1>MIKt<4c zw9j?_5t`e{`uudg`K?58FARZE@HV^$y00uGu7Gv$ zD-<8bXCgQbG>7UIb^L0X*CSp6S3(T8z(b%pJVtyLCV}RW5`TrViQ@!fZMYY@z$@@6 zdLKVE`=+hHH?JuFa>l@&md}F&Lw^YdcDxO@8eJ8c0<9d z)WhK!j=?KKb9BzgVFc^k`?$?^b6nqBEfzRN3_!V|T;cMJ0pbV6UhR_b~ z0L^hAaU{GA?}O&}74b*VwrnMq8Se58iMK&#=mD?5p(EUUR9gkt^{#DIyAAC}p*Qpc z-9LrKe~q@*KY^%yDxZpPw7Pw5a>ZWf{Di7d7cPQ!@DvOOtxt@_-+@{1DJ+Ap;Ro0b zMMtt9pbV4;e=M^1!&AsthuTmNB4`55;acbo17IwC3`<}={00@@;5vaipkrE}*a$9z z!7v@Zf%Whk6dT1o7HU9Uh~Rd(50rlfhQN4u5AvYnuj^qh{u!(=QsS==jAlFG5GW0m zpckd5Y!y zvih`}+H#*$tskcy%QT+uLI1*Ef{`!=v<>1jd>O0;ZG%{EzLi+yE%pI~P!)X5{_!l9 zHH6FIdT0;#LpS(0sD1$P6?3)6{Efe3xsNi-7UMcjx)#61e}t{@2NaHR984?+$H6IZ zhN11%{y2-aVq;-CQ*Rt$J(ERQoJ_x$6k05Fv={_6t_8ivkBPTKSLg}-VFZka$?!hRgaxn^R>CIu4N8pT9tV2Ar*)o$ z*McU{0q%uvpyfS?&%jU^32%d5*9+JOGw|7b-VFqH-t0nQ#^~f=l2QxC=C%>Ys+8unKm-fp2r4g9=aw&V!4fHQW!~LFej|MAaum z?U#+jauYZQLGKe!A=U?-zt>spK-4i&Zr^)9VrO!?r|Glc{_(%{okthe(H(sJr|&#^ zQS&79GqjKNInsaLe1W{4IrzMfe)({gzYF)<^9l9UXX0t(J_oh+nb<$$^v{ZyTfgEH zxfk=?;la!^6uBtPGA-A0QPpTH<#jCNqGqN>ZC~eWuV%UC*MX><=90y4$6YMHA07g& zGdq^HBfHLLS+4IEw4H-+jlY&>1S9abt?k$G5$!o}2mA0dwqY^83|4{G;p30Ae}&)R z%t^fdQCp8VYYor$iDPIhC)BSAxhtU+w1I!Y{jjet6ICakgV~^SZY*QI3yS_3hL4M= z(fIyZjn6CU99I02nr}e0-@yj>8MI9ERrGV)LH=Xrtei*V%MY0B=5s~4B0+InIX%nq z>)AiskNCCo}u}<_+?eeYhP8ZIV)fa~cP*p;x+ZTS_q5gd??C)mK4!mL&@=ewsUHk4!*Cb{`i?^1 zgQ$}jUV_fpBq`%!Nht87YPoxww8->w7vW2$3C8AT5tCGX;pG(K{DHI@40vr z(Dydl{>$*I;0CxA?uP6+@epmT=P8SRo&To)bL0lWP+Rt)MJ-d^C$#5TF5B<#w&5%4 z*2Ba(d~d+B;^Ph}5*!Wwd8_W}2TyVLe&vqB6?MET;B`U$vh`YLM7{~cpy$te4y}Ep z=hL^4yB+-8{=deq^vOQ=oL;0z@Fcm#umUu1jivSmYyU=UKh>Ro9f=Qve;uk%{l95H z$~pKn(a+;qd!75&XYM;IUE`{Go*I9>tJZ(tF^K#m@UI6tzcj9x4t~ya@g1-i^qNul z9-nROn6<_4g!St==IpBnY?+Ub(e4YQL1T;~P69vYY;4Z;`vJ=id*9U_LDYG80#WC< zU#I$1Ay*Y@fW}qL7`9(E{@hg`)hZ{~_GQ;6e}sO0;aM0AuflkE2i}KypuUTVo1yqL z?!lm3S)#uCm`c<-hH`z($91mgywdnOXNE8OYrR?~)ThV~1;L?wkF*%So^f=pz0Wv0 zR(?F)i*z3PapXF;{dXf;hmOfo#;C;lQ=-oCpNKW5b1lQUpz(B{m5--R-@P=(H5ZL> z1%5NMhfZ)e^U?M32!1;C+NT;<$Y0Ln)qb0{j^7NT<~NVH8fr1lX5wVV*iO_~dOvoA z<}icp7PQ}CTrInscC!!IuW%zMr)8SE#?^L=p{<%f^9!zc2}(4*q!0!!O;;xkuD_tMh9Gz8wl?at*?< za1zu9?Wd;1mYlD@urE|EzlEIMKmLo@aU=T(`de-=vG<08pcZxhz3i*xblk2Q>Gu6y z#518dHCjhQmg)STPu*~GD~QT#9RIqtj@)L@YqHj-<%J*dd6)aNA8!|~yvEg-C$Ri< zQ0`3PIp%8nanC2$*z%VU?*o13{UFibJMZBkF>VNtLfpMZbgyc}N#+u*=Y_>2z6!5QH9?FD!rcm^~#y$)yNAo9cEEm#Qsn1lEnUk#h# zPdIosud$%_Y{wH%h9~$Qy&5rsOW_LmawMN0;5uCE5jR`D15tH%!)^R#CHs1+x^7l? zKgUhWmGj%-$LMD@djG2LRkNSlhO(?Kef@ehe#JRFJAnG+Pb2F5ID@ElWbyOX{_*R) zfV!5@8alw;a6dc>I>#O-w%X(Fr%jpfDB61MnQU?Tj=%2pOUbpItJgd|n{a*nIjZ}y zUZXT`McpTTPWA2J9#CG(JK_GdOZT!de2&m-j$Ug9u}s(5E5ym5{CmU?;1!nt9Y5N# z9Yno<5(j=Z5yf)wJ~*uIs2<+C$G=zemuE8KddL8eShfRPh{UCR-5N) zw5{jkiW*1n53i@K_v<$ib$=dB)NvPjA32q_YG)92KlbZaoJ~&0N-VPFzFzNFbPvqd z|45C-Ejgdp8z^frTO+SSUh!Pw|D30C`YW&ZV0v#L?j-*JU58)Mea&Cb`keQ;w?~Vm)n<}aZguV_l)fP zdXe+*3G^P|UD`7(r}ifN7uW$sKI1sTAqxtEV~L^pLA0ylrHD0&=ffq?0K7FBs*{ zQ`KHWzAgCZ_myw!IkTSi_}|0%*p5DP=&#?O`I(My+9nZe^Z{&5J<%nB3 zC&qDa>WS-_rGB^lG_KE~{=D}4J|XXqr{Y-Jetr`(J`MNV{h{?y+tVS30{;$F zqj_b0qvf^CzlQH3mp$)FEaqGVznzLl(boL+yT0t4_xH-wRfn@czx{7c)a!wttB==^ z?+6;Rv&Ak%@i_SH)%f1CbM)gpN$sP&XHZS{8GzcppLgG9D1EZ?*76bL-h}a>IeGlC zQWW}KlAh7Y{dj-(Y-j)9yZZapRIMBI`!LO6DXw#4rSi1>d&`uze%rU6Sd;t4kHo83 z@1aZFcR+eAJsLkAD#NLuaddoYnESc<=;xc=CT*v0|F`Y|by@$p;Nw5t1N^)$pjP*+ zi;2zQD$u@=w}DQeW2BlKo`<=xehcr#Y?)krv^{dw>UXqXuv~E?QOh*WW?Z$Z(QkfV z1^v!VIW7N##zs@ASaJPS0g)}g*FX=_~38egF0pk*tG>p)RCp}Ng- zmTTS~<+s`LT||HEd_3?AxBbP4;s~f<_`kEMNLzDO-p^f8=dW_QUevCQ*8|@#!nM3H zd_t}2o8v8^HQWUcfM0i4{IN{?3B1H4K1&kyTKp<;9H>3XqSiYL*XLb-&VNc<{rp_D zf7JHJR`Hiif7NNZ_HEHG-Det~)905m^M8DzF?_ar`GHDp^lwg z+o8Pge>}Cy`*E|M7pt(WD%1d-m)d6$t~vYj?lRg}L7)DAUFTW%*M2K%bba0UOF_^9 z&p}Vnx|M(0mcL2#$63qt+jPZAWHV!<+()A7~uSKngfy!+SelH~L~PZ?rW z@b7=KpELbF*gw{wUgwPFAvE>{v<)x0oZs(2V`v7g;AR+X zyha=iipoua*{}fgnZu(R@i}}Co8i*0_leOK1zXTJ8>FFY_lYs`j~z4>Et5INV&@G8&%- zIyN(jb3p4~NYwV|H-q8}+B>2AYS*r)2cN6hGcnBVap70cC?B|Kv#)LQ;-h)-(*R8mb_F><1 zuELp64;n&K=ni9HIxGdfKUziH07tBK??0;(&w@sV-Vf$MSpNP zwGY9|LnS!P(0*-<#~{C*_z3ib{xAflir&nbc+>_yf5Ij35Ig~zkCq?3(cLqu5UWFd z(D`_w#kR!uaF?~a5Or)+(;a^To;C&&^&NxI_`3dvkdwbkd;|2`t;xhWum*mF12?gq za3Y)zItN8vya8MU*TTK<7(5HF!87?=p! zud4Ic`wVg)!CLI=3t z=t|T%^B7V4M^W^K0q_z`hCIxM&tVnp0i7ed$7oIm{mknlRDcuVbT|tdLQ}X6?uUnA z2)qiDVLE6V#YgyOu-@20+yMof-8#w;RTmPgK?FJ<8WSH>+wMn0&8HG~!XD5Z%WmP? zXIn#J4XCR&G=tXA5grEBK1m#4yhMBpwEwlQgwFkU$O(UKEXK7zza{Y&|f(} zpc0%4b)hkIgl_NzJOwX-t{87O)rhqq zf+o-$TEm0zDEM>UzrN|Ut`B+PUq2O}r9Bc>g2om9X`gMNR{QNYqV`+CHn)$;5U+>! zpna#;|IYZQun5+|Cin$(tPk4GISu~!>hBLup)9Z=Wp&G@=^13I9Cul47C+cslUL+>)I=lrF zK-bw6qVCT#iSyxW(0q3g|9}H`xw*(gysoty5HEsD;Yw&_ekXAVyb7A*8^p<=^L7St z9c%;ry{0(scg}q{6|^1NPkL>Y*CKZg=(qV1QLmRxh&^B+{0T*OyFMj}Iycq-cwF}a zaWY;FYQZ_6ZPVC#UMlptO3y|wV%Zg-zjf5Tn^^7-o`ZqfXA3)0SpIj4A9d3Yu@EYiEc}5Y(!EDfHw*|y6U=92PIzM+3HMYFSp1=I? zjF->&$r-Pe@hIcXGJb8w+hzQojCaj=?~M1)c#`qAGCn2avogLY5P#wTQaM#ewQ_)>G7n|dCy zfBbJfH(kSeegGf;>AC4o)NF;FP?Z1qXFL`0s-Wi!HHkXcEG@v9O?Ma2Om3exACo>AQtWu+wd66`ogm?0NzlWW2oPDy^qfY{cdYHX#7>QH^NRR%C))wx#-*ft#h(Sk)lBf z@bRC{$-}Hp-_0J6SB6t9C-?n*)N60Ubfl^z`oyDR!o< zI`M@3H_mOMz8ijx_y$Z?p5^{`0PoS(?*UqX=IDPru!X$Z|5uJF#P+EP^RgUoWDTTN~S`@?Ua zkA6QCEBe=%zK>!x^8UN^^YDwoAEOrg^-+B|+5IL(^L>WppIS|JOznTQKVw-J=DUhG zinxJT9=}d4YsoT=@ps#*bqYOG)mVD2s_4gg zm41`qJy-*NAMM}%iDd^DbNj;o=Ko0A6+v^=Gg-|=&t-L7#Odr8J)`y4xBuHDA5WsM z=2n~N*Q;$GW_g_}+D_H@=k`91v6^WX{kiq2wfFs2iGE+x-fcO5ohSyynK$R9jOaF3zp|Y28}LI)xV+yVrD*$ceDvqpQMOFS zN#8+Kq+Q=~x)&?2b@=Zm{5@LFwf*u3T29A3hx=pY&l^96#%o8tkJ{J0$?5gA zzeWGLx_|s{z0M}A=XLP$pZ5Km)SSb=MRhmlqkcCg=8{_iCCG{I@SSkLA&klOUX)l4 zPKBD#0Gh)M@GqFg{?hM&AHjRTlP~~Y-jAuY#TUkAqVTV0B}x_z%0Okf7#6Wl_3y#y zJk~L3L9PS%`Umiy@B)m258&bhitIagX5mX%E?mDo-9tR+(4xUKK@voMf+UPJ=`C!3ut!@iUb!~Uh{5=-vTG|yVcvZ9G-?DFc$K# z1ipu#UsCmszN^EhI)rSAMa6F&>ig$v}s98b`Am5JJyy%?`1uKQhmVrS5HtL6!OUoG?1Z%Ut} zJ;6|WCcYNrdv?2;jkHT0QFLG1_fe(|G#XDYD*l+dtdPJNc;rQZz@h# zzL$H=^XoXDoc~REL;P~M749x5vhO_m7k&?Pf;Jp0ojd+Fk9z*mhrIsoK>i}G^^95I zwnf|iI=Nw-uWu12z`HOPmVy3e?wbw#tr}k8D9(NE2~~*tt+UQWeP&hk|Ms!IukpWy z)OULNt!GW@&j$Y+6~A5Qk@N5CTHso@_V2Zpf1Ka>D|a;8sl5N261koW>vt#ON$UOF zv&U!<`Io`JUw9243lm`~==rhs$qalh_+zVQ9SdnI>Rz!7zhexaDL{4Kf!w#Z(boHG z-`>Bzc-g=DAM+;9)u}(4TxHOEK>eM=skoxHu{M4lTm*U+t~p+w@m6?S$Ud*~+v4}F zkL{@I41U|XnCl$rj_cp+e1fRo1}mp${+ffHZ7b*VS|`2~wtEL3Y4u>P*SkQB6zg{0h@>M|3s!tZ}PSP z#ZeX~TlD*B|M=fJt{<|V+2G?p9aq0x|0a;`YxC)&*NZQS`n~oy#Opre^^mw3_JEd$ z3wR$veZetBgJa-$s01~j4qONqgZ8ujzVW7v4_nXYF>CAZN#DkMtakTI_4jjn57%qL za-#CtW#7@RbgWyq)-S5lKF4TCYzobxCA0?3MRnP6{JOILhDJwfFXMjy81ZS)`yxHJ z75;t8{_#cX^ml4n#}<4q=ygDCUGsYXuc&LNM0w`Uy;kR68C=gbRp-y~3gq-}RcN_h zceKo-{ULPD`q$8g)Hem+ZjSrc(l=O-@2jZSNX6Tz=>&SsKb)NE9;MwI^tU4eh(kcv z`76W;pnID7>Nf+51)LxHy}-LHn+BS%zt;5ofqOo*Ys~x;YBVqXyAf9uD-x`st^J~H z@y}~^lPg}qtyeXr@zC1(Tfb9q{d*rZiN`Z%_1AhepJwC~uOMnY>hJ$vc3u zf%-i|)SUI~roXw`9v!FG$-f0}gWh|!qxN@R54EoBzcHiV0{dg|0kzt%s?i+95^|cC z{>CT8*FyF);AYzTH#xQwcSCR-pIO*9`n{CK(XlH@PGjlc8}Y}o61i$n7tVzXK*v?6 z-^H}`4CHcR_BYSjas6w3OKNm3=-BFb>pE|j$@zV)asBc~Y`Jpkr|8|+_}|DW|2*~j zw^95(-@jiROnx-$RE@tD5^}G@o3H@(e=o6w+;aH4_Xl5-{|={a@n`Vp&Nj4I$Kli$VKM#JC?z_lfqjds$9xzf3Xv-c>I8T5a~<#~DEGCGh7| zg6lo>7^|H?oC!-{4g3uLb@6w+M96&+PJ~mS8tB~de*=-7Q}&tl`P6Bd?(;f_b)GdN zcVqD)!Ii{YLH~xi=6w(D?=||n2H(%m!#`{5N!TW=hu_{_mKQGU*rVV2mV~Dg!}W?_p3=x$4A$DeO#ZT{C@GrP4{4}&tFrD z`b@8Vsn>=@ysuOHe){{*THS128n+j&GM4%6)ww12+pvLUWh-(Ha@_sjI&1&y|L5ie@>QTYv<9`? zf@<}eq4q7AwsIY5E3b7Zs#f@8(U06B&NVSG<7y9~{VI%v?B|fr7|XXOuq=CwnyK-OIYjsyL-(hYBY|Y&;ISLEKk{1ZNs;$ z->>8F6WyGTBntIEhNxP#PXymbwb?q=)+5&pG@f6kc!kw!-?hT^x72>$D(V>c{eCmc z?*Yx<*Jx}{_A_DDJJHAQL*K6}Io&VRS95xtw&t(7_k)3;`3a^Yw*7kqH@+NKd z({lAyRR5{)Q6|pEm%~c-*J|QVFoM@C9rM}5-Ly52pweIaRQuoWE6scVZKy=;xu80& zSGE4N>H_k<-k(Q5Q0Li#x2NVVxDUoL2Ol4z{V4eOIIg+syQ`=0L7;t+%@4Jl@+0y6 z+i#Kc|Gtzy15Kx`?e*8RKgJ)Cp9>2?^ImH4TcZEFqaC=$*iFoy9|u@$g$EK>sVXMHj}%BTGeQoYVM{j*EpSQJdLe- z^;PUkTehmzYj zN21nqHc@jskEneplvf{Z*M+uR>sL-u%Y~nBdur|k)!$2e5V}Jj7!10Xy-XYlo$3D; zaYCj&$9yqyskz4b#{6;mtjCp;Z?^ouai9B>+}o^2ZQ-xe!jpLBV|AtQ=i7GxmMn@6g^x{xsq)qUKu#*Lxm+ zZ7H{xWk;S|G|(~9wXFFZNBdji$;8@l9$W~QLn~+l?ZDS{z`I$l7x8)XY@Z?IwBPjE z!=uj|?^|AT(Q%n&?JtO5!y53%aU-rdYTxbFGU^XG<*#{{!jA`kAF70FA8MbRj;p>l z@f^_ksr^vMKDmJQ#UQ_osB<{W!{i=?9-uKwP^W#Ze=kD+ZiKw|e*IpvKI-SMl{YNs zuMyQu0d2#FkX`5Btz#86eh%6XnzybOe=e`5y#-ESet!^s{(w{edS9WxH7`!PG-zAO z5q1C8wNcS>e&3uzTYtYU&cyZaDAXrvZrZ16H=(U_O~+6BLHpxBop%q>N9TgpqxqMm zzvi-sd6c)Y)E3$nod*ehMuF}lV~JD1Z=a7JlGAxSo2b63{mgR9i9djHzYx`5*V+N6 zvHwAHIg)rRgy6S9*NkXLPVYf3C0+q-;AUtKcfozo4gBW?Kc`;gw0|}JQ|A8qQ%>kL z?gf?&g;znxZmh-W#F^mdqh(*w*8Z!&zq_fizM=gSX#Z~~9#HkK<6Qz*yDGG0JLXfP z*GvDpT7&#~pncJ&M3H^R@j}b#m^Q^PxAxUU?O)GBv~?eNgsA&Q52D7_zSr;0^&Cdt zm%Q$&exLNC?YCzr{u=oB2CnxQ8c*A!Wm?}XqM!2uT<6^97H3nZ^HJ*(-;w_rw!wj? zvwhSqXWI_L>q7&h8S!fH$HR|*9k~wh06YTP4?Tz)L+7{J8gnt8kk`FhafH=qZn`f| zrY-WI>r2O4(c|}rk8`N==Y)^ip2g%9)op&kUp8%uM&p^h|eS z!3i2HxHGr}5AGU5@Ss71I|&-xU4jI6cL>2fc!1!Xdrf!UGcV_PzVn^ydjGhu^{Z7? zt7_Ml-qy7xrjkl$^5;qa#g`LlVNq$YEUU2CN}t71F`D`Pl2+?lSdKU9oKV@0{+P0k zMN&@owVo+rsJN<*8n2Y+djtIC)v;CjC-KyBNLtm8nesoM4Jp5}V-ZX7=XSEcoi@jO z%agJXvyqpwoq7JW^gpGR!M_DM2FX1E86&w)K8>`n+|#-QmgmaX{Jxae^mpNN=fE>; zTvv5TL5A-!u5-JB(hLm5~8t_RSc^^is@~h{_@_b*u;i%qcY>DzR z2d~Ue_8Ma#bK1%{E4v2ya?dm3xNn(NT6}6Oe@B_5?E+Tn$~K+yy88(H=b#6Ww5|H^ z1ZipWC9K4knD6~;`ttw1FH2mJ+OA|BNW0-ED|4r*bs~Mt0bd~~=f)X=sND*O8OO8%~NL0 ziE%rGxvh~W^LBlSw3?r;Ah;N$=D#WpR`qIwWgSZYq;HLpmS;>Yr40Hgl4s-+s}Foq zPL@sl!;l^iO@V%eB+l=!pZ6_gKU1=N7h?~~D|--p98&wn8L)b`udIxfTmz((8u!;I z{}D2B`L0t!VCA`)^fd}B{ZetnN`EC!o_&c`EP0hsUeeJgupRnY=5mudVK_&SJQ`Y7?Foa9TMNXzZ(gL-~v zKj?e+Qq4ms?}y6!p3-K@`fB;*-l~*U&mYu2q|#*(Ut-8|NF6zcY?7kQ-r#AF?4N4c z)O+kQuiZ@KsrNCY->Z<8zDO+f%yT1rl2+?$k3X%}>k*`7Zf<2yAsvcke*yc(FPXbg z%VX87P%vbJq9JK39jr(lpE84Gzm|Dje|>~=W2AGzR)dxKog2aSfo3-2`v>WOe7><)&k!PzmVQXSd_PFa zCcr24WScJpmcB@Sv$?)}W!3hh+Afc>vfgDZYx!B0tA(HCIjH2xHjz>?5ByS;N$FdK z^hu13tgEeH)z(h%UFZd*eT8SKkZhY_untI$5iVHSH)P+-2`&n?g=D*uc{e+OyFtC6 z@sN}i{}iy;8L%>U@eE+PkpM7(ctpNw3yc|Eafn~X*pHf~Or_R7Haim}Be+=7)ooKFK{iHP`QI_!RF3pM|8ZJX@4^AEX@>UyeVr3~KueDU|#^ zcP!W*VdnbFiF6^TB2*QUbS>xsmQm88_K-T?k@NZPNT(dDl-%E+C-aWVb>?uS$3PPy zdG6JIi6$LYp92ewkD6HQN2)*CF_;qpz}m$oabZkH>5Ht%Y%{f-*t{pt4Xc zs1ej2Dsd9W$FY{AZxHuEdIU5TlD?6}r}mES};Hxw%Ou;k{6_Uf-biQ$v=rJ5 z9fmGKccDknbEt4J-?gY*hpOw?|Fl1<`2WeuexUrSuH2tjl4G(+;-`GCuQ=M4`>s`B z8$#`%o{)+qw*O~o@kx7f&q3_Z$d}mSpX4t)&u`blZico)C!kx<1Lz6#5_$`D!2YhR zRvhmoLgGsgTg=b09aI8OO>ItkzoH|!JJbh~cBT9PKg%{c5a%eds%A2-F_?=S0})&@5;^v;^7?oq(iIDRl`x zIhNgreFD9J%q6jXLUu@P;|_2ZNZuRC3HvqlsM0)gb9t?z?zD7TgMI4|Rj) zKr%K9VCDECW3d$c=TOYY0V~H!sk)j4zY@wW#WxJpZ)**t8{k=|x~qLk8hwSbLnWZvP+RCnXgo9vp;k~&NUg__U^zy} zZ?ihroC=?;yXCOooyPZVV7EdlU)i1Tg;q$uCXzbRciDdA_uYj&Iad(BScxYr$LjRR z%L&Ok7hisG8K^qc2x<@Yg@!{@ASokb@*8+HB=5C~PbBN^MKU()KGX-7q0Jt?P_RoRsDMR-uIAf)A*8MCZ^Cx_(Ti* zQfYZNv@!l$CfbR-(@+C!moi?XVDBKEP#NboG5E$FY%!=Z)WGj6jpgeE-U?e6W7`8f z02&2NgBC&?q5aT#=r;5ZWT}Gv9&$t3prTMUs3Ft|8URgzWH0AvL878K4C9dwsF}evw*MS+~;f95|G%k zP$G0U6Rr*Y@4qci@qaP(JJuLwWNvne^F4S7G!^QI^*0k%=5?PBy8@aEUI)7mIs-j` zwCdPap^VVBIJ1@)R{h=-1(${@Ks6w_c9cGU3+@8-g@!{@pxMx3NUfJO;4RP|=qMz| zY`N~Z1ilL0f*wJypihvD(M^nj93zB9>c4BjHGIb>nLA95Nup@@R5>p=8&n7?1xdcj zQ%diK<(Z%{@Z57fQ!X7F`^20{~{`DgL2BJ3IH5%dar2c>cOo_APk`u=|@+e^y( z0#Wd*Hf5QWl+TU)jF9v(8*DyEe#0A`@by`(*U#<$);)k?Xs-;U?0>rlP!VOCL7gC3 z23hY)Kfou)8%YlY{~VwE3}_tEYp^X!{%>F@Bk6U1{~_2`wXpAC`P;+Fy`?U&-Jw2^ zoGZ&%Rm6Mta-J+{xmPp*d7~lmOa3(Q0%!@^R$7X*x;|e6mj5t|c7ua!by4;=NctrGUj&xrl;r3R z?9V7K{+}Redj#wRNXAU`D_HXPK+=!nupgnoIzEXnX*poU_xU!e(*IlAYAD)B4JrHI zwpAy}R6B?J!?3cUdWRb!Gc#0ITXWNfB4hF;!euSJ|E@r}8i1STAv;tf(LIq|cHsR{2wwQ9fnWe|pBC zu8f~7ztqq0*cW3qd{S2VB~SH5<}X%p#HwxnzxkITmeiN)^$mWOwA9^>wA`N;9R*AO z<-A(GS0rgQe#)jiU%iMr(nslo%1=4Y*ZlcX=0ClI{uKGLT}%EOe_3f$;)#|0RPB!e zb$$Jl|07ABDko*7zDTw)SvK*>^0`q*;>&&DtbSJQNqH$J5}z8=@+emqY6Pi#$&)f_ z|7niAwooUi29AHqc0+ogKTq->>A%GMKaI88rq$RgtNhB!wlM)Q z)w%eu;5m@^7yA9;TM4a)c0y_l#hyU=vfuXx+lly|BJHY&`ve%LJ$QDV3iBg~U%t)i zfnV-_NxtOCa>_CI11fPJ^ zJKN$vi}YQ8nTN2?p?{&!`o8;T@?S4`@70d9T(hb7V&jlb1IhAdgq3lTcrpgLkj@WD zT2$H3a?V!+EXyL_XsnFoYK8Ul6!WW$@|Th24fl`3KEF@K=LlHFM=kFuf1bp@1(w+F zVNDHi{Q=4L6c2kD`@3*X@L_E0U%|>YUlz6!Bze_gB~DA&Ru_DIZU-I$jr98@{sge} zZ?S)U$$S<~F%N-AZ8sND<`twj^u?6;a&8mkPpdIe>pK;HX_@qs-qWVx%sEuEpV0%GBpefKoNamGY0W0tB%6llHO-Rc++zWfb z&$nRz_Vd56rbajq!t+Hb7YG&`;kVI#>w--KWrgxVg&~Pw0#?eGhpp%5#;|St+zGai zp9jK@_w!WP*?wLCyV}niVRu0XAnjYMFN{?$NXAU&5|V8x2!4^YYlC$|a!sEOHZxS% zZ%e?Q!ae!#VEaG=AREqkMH9j2Ao;GNJUbLtR-T)x^(gjFf7#o9E8hv1@=DT=sK(fq z5XS?X0g~_crBot()uC@7`DS)USa}vL@w?u}u^s7@ZEi){)&$Q&krxds$6xi`-p_4O z2Sc#?H!x)?*U%o{w{$21rhGhOnDcb_eB*z@NfB7%`@_pYSO>sR4$#-C< zz{(!J1D#WzQcb16Ij*%7vN7&a5HTCkQ@(WKasZTV!o8Z@HK^6L7gF)>*o(x zc|Lv+_8fE%k~T)+d9}p-P+yBe(c4dWp0E;QHf*m4hPD${wyW!~ z66Y@LBPgO3o{b5Yros9cCiD3C1Xb0O9Y6kyF_{SQ!--+}qjQoT6P;RIIR0Jvom4~W8>OHTT;Cj%vPzxw!AKN0`85#*mpC`bo_u-`6 zG^FJ{1IZKphP3z>!^-zh<-I`3m*1LA@NM^(SMMeqM*1Wq@A=+^m3NS5ern z5;qg9lqmu$a|DSRg8#v?N_%a=ogvwd<^AhP;F*wYN1{z&*=CNxO8J|xdRyObki-uL zi{IwAY8^R{j)yWsQcm{oT;TjrIj9oU5NZmwhvYY>KkNud;;A?jke&v~@9{F&HPA+A z8@nysNWNz+&lx1PoHN~kugnGf=l)AyUHSfy#E|a_-9w(dlPBNck$hqK z7LTy}4^h6g^9*IAyw(oy&0+p?6-U00qgcL=qgcL=qgcL?BX#HbeG=b_IC4(1%bzFT z$4LvHd=DoZYyn8VX;TzdzEdOh@l9q4Ah^>UQYE$kLeuK39cK)B# z2xa8kEK*;-&mva7nX=U%`!KA0x8V$|d>7;r>}%*FWNwe`3$jDvlka$__GSKj`Id*I z<=tWVAG{OgAQDHKOe!*?N|vM49tVvzb(z;&T2 z|N7ER!J^K7D?9*_x!#Auj)SD0%xACS%DndCllkS9Pv&Q`E~Zg z?twiAdmZ+gl!1K;`yMKZUxK~q_uYq8 z^X15#sEXxyAp5P9jp~GZ?~oUgHZs6U8!|3pWq#F^s*C(@A$f;a#p{jq0B9)mGc+Dj zb1O)obMEZmG_?Hx27$)KeX2G+X}065G?(=273?l>_v3J zZwY<}aWaYDGKfF+keu-N*y)#sAgscRrL-beG8K9LY7I&8-4H$4tffo%=;+5JV=*-WDZQZUYB*%5oy`> zB$m{ljr0m=Gsfu+tX#8>M4y@=uF)6o!@?)^0>RPHc9csCn-kg%mh&1>5u~M$bzqmt zy(Its(-3KSmqzB5=;miR#~BNbfR#G)!0VtL&dUOsC3N!u2D61SA!r(z`{T^*8p zGby*f;r?=?Q{*Y%?*HJEc%R@89*qAO;eDo4IM%qqS)j~FpGUeVShZ0fEOlhRkho)z zcH+4H4Yu`pVA*e_PsbrCw-!F>|7L%l_+(tAzSz_7Uxc2BMICuoEsFWcHwQ<4SozO) z8CaPwVKbDH8^AAW3Q60tzE`5Wyyv_OMd^ zJ6MVFBkUmP>+u$CxIb@MQ;- zxBO)u`P2XS)9+zTLw(0idDk~JSgagRl$CyGg?}r?btvpqNdD6|16J-iNI6NbL0Zag zf|b6AZy)#wr2eC*##!>Ejq}L+fVficFR&c@Zo^9YZ&|$sHcsJ}B=n3|($FQkK;Cvj)36(>BB5ZRg z0p|%4w=Z}$B=1R2#daw^c_(2PeDaRA`cBeKq%9+Hz4sK)GhtOZ=}SSR%R&vH?$C6+ z7dZiTwx74do`K|DYtzp-_r|-eQZF7X=RYc48R>)QS07k8w~_r$$|?U;_}4({_eJ_3 z`}QC39q{{Q3}t;EMOt(XdJTPmqDJ9&1?mb(-InN&`me-D_@u3+e!CM^wR-_P0{t?N z#$XhZsc87$k%Ggx^hCGXuz40-o9!&n@rpt_K}FDU8np@w+> zbO`LM6zO^3ozOn0&?%fde`c>E{h!9M;5gqns`6Ekt`D_=)Vt3ruOocY_9)o#kgU7K zuxk9|UBb0UtMZ${;#2)UgtY8iGA_z@89v$0LdT=ur*S-j?GE*U#4lyVzrmlr?6*-9 zFfQmzT0c@o)>A3?TR>g^ zOa5y3<+vip6L~g$1ZnAuY;$URGA8-PIsvvQ)Cy|vw`2Ww6|5d@*6zW+g(4;=Z!4-V z#o+4$Nm~+QI9S?}{{$Shv6bI>>F*}wtN%FN0!tY=@04S$jI(8$ z&nIcQZc6fDJIfBg9E0UOo?_rKP;;maB+vVPgq35Ew5ud-{|djfu@zR19THEr!M~CI z==Zs%`_`TK%Yd8t)4gE_KtrJ4Ac>=5iPX;&oiWNc+Wk!NwT z{NEzK1@sd%0vZF&gEm3iplo=D^N!y>h5ZQa@|d;gU-7;)B-^F5Ez6P8Hb7oCs24O0 zlI!7=W!Ax$vhRD4z6Qy)pIigVyS&oR+wjRg`v~?QNY3FT{Q+#u@TDb=^4s8(dJcb{ z%rPnFd>N3=3Q1a&-(Ri>tmK#RrxRf%mWo#o>BgV=I{3?~zI8=fu7P{P%K7+c*k2&I zmOcP`2D%H$dy^kv?KAQG63PhWgybDs$twjGTN75+S4v+i_`Zka{XSWT6T$PL!;t)5 zb;Y%?j6)T?>v#sfThMz*pM}0@xbF;`5jusovcbwbq`6?LK$2Gzl01na`E{Y@(DzVJ zNY>p{*wxSmXbUt8@6VoweF25e#%Rbl#kTD1M6d*bG zl+21L%q0r_Se{bCdg)4_q6n4>g7cK=Q0e&P#@X zM?!KQ^Bb(h+zhMsvs2(#kR03Op3yt7tS9X^EC-Yt>mUx+0~LVe9aZra0hffDKsS-T z2gxy6{VvJ&+6#GEaDFuub`&%VYJqY$VIM-;JiPmgcQkXtR)VTS-$2sG4zS-r-JzL~ z9EZ-pUc|N#G9Tw^P+2GulJ!^(R*q3EVF&p&5q1Z32vXyDF$LfAvy8ad-l!O#?F8MG5R2i=F>L+bvST>B2gI+k|QF2*xns2C*2HSu)- z%lcE-;NKxF>h3QiEal|hhbkj!(dYGcpseT=bRE|XYOIAtjwQbRz5uNHpJY{V3uqv; z6j}!zgswnxE)ljA_b(x7?`zmfP;;m!Gy<9eNjq|kTmhb`>DoNaqy_7SmIc=Y+4KOd zkts-PYD%TGH3e(!O(9wbQ>bP$!Zf=PuBA3o;~Sg~Ex+N^zBXdCB1W86&xqGr8*Z($ zkyh(se4%wUGHdzFS+#=Z>{=mn4y}ke7rrT(8{d;GqE#>#*SeZZ;yaP$wY`=q+FWZ@ zZIQLQw#-^nTV<`St+v+Du3GD9H?0k{r`9Ig3u`k?(^>^;nl(VvI>3%KC#MG^-4G94 z$HF#&oetXqb{Q-#^tG+9_+x~26gCL;mA&ate{TPQzcR{W0JL3hO-t>!>HRjp-zNHP zQ@`!$x8wYF3G8F9rm1*hqtl>2@W;Y_p8mYNYFG6`wX6D}+Ex8f?W%qpLOZe?pU3?? zeF^34IW+CI-#(W9Asw0ulb*w7hD`%o6gC5FUD$%KZD3_Qd;0A#zn$v03t@|(+;-S9 zuqXWXmfybi+mK*ietOsnDEHsm{k)$tKF`1OttYWEK4N8j#LBpcmGKb!|F?Wz^ruk) z{NWh3UNH?{!9yDM^K>ovWgMFLZEM&ODA&cG{{Jffd3~uDR@~Q)9kz!*t>UTp|1+)$ z`!KF-HQc4raF(P6YSCIM&7p;APAx+7Xg19YZ(1$2mQIV((jzAWax!W$S^+IqE2PC~ zMKzaJR*TmvY6)6p&5bWHd$j7PRYOao)kn?7sM!^@dTC#1gHiKmEt57;%dAbpH=k!~ z*|Y^(c5RWCLtCrm(Kcv#wJlmcZJYL$wj1An-lG-P4rpbxLs~iQxK>_!Wv!?k538)5 z4y%VRw$<0phc(oU@NYG9cw@~H-b4!sZ>psZZ>GhDH`n6ATWV>-TWOiX+iID^+i6+C z+iN+(JK^hYowZ`&U9{riU9}S7y|mKdKWb&d`)L)zM`)G9M`~5WM`_iy9l|3iBczEgV_eo%WKeh6QDJEG|kM>QkjxMq$xqlHEMsf9;e z#=rjW;VWWfwM-GOwOkP&wfqsEwDJ*}UL(S!*NQOf zwIeKgvk0r+JR(pZ7!j-wiU`$bMTF^dBU0)mWk^dD?Z^&f4`^g*`f`Y>AyeWb0WKHAnwA7^W=Pqeksr`X!+vuy43dA9cY5?e=o zxvi7F!q!<|Y3rh|v3;knw{_Jw*uK{{+PdkRZ9nK+Y~A&(wjTN)wqE*9TVH*bt-rq8 zHb~!R8>}C*{iL6^4blI!4b`vOhUwRB!}UA15&A3J&-xqNC|$FU)&uQh^i=k-dZ>Mz z9%i4YN7^UpQTEBY(>_Iyu}{_A_G!A;{;QtWK2uL;pQWd_&($;7=joa4^YyIug?cvo z5iO;K^+NUydJ+3Zy|{g|Uc$abFKOSZm$&cG zo7s2iE$qAXw)VYxJNtgUhy8#)$bL{CVn3vhu^-XL+K=iJ>?ic;_LKTd`zd{n{j9#w zenDSkzo;*_U)HzS|I)YGuj)JO*Yw@?>-t{%4gHY)rheFdOFv@2tDmz!&@b2@>6h$} z^~d%n`V;$8{ki>_{=)uTe`SB6|7(AxzqkLZN2h+RdsDyF)24o>XHNZI&z|~&UO2VI zR3vqvschJM8n?fQTCR=2T$sQSJN*x(*ij4G{q9VUAMMq{d#YJW{c_Xu%(naPp zWsb~c${U&AR5G%FsdQvvQ<=yjrm~SGP30oXnkq(CG$lqRnyN=uHGLad&D1QihN)#_ z9aHPb2BtQVjZAGL8=KlkHZk>%Y-;Ks+1xZJvW01IWJ}YK$X2G|k*!U?Mz%4{j%;h1 z6WPu*FS5O9VPpr>(#VdcHIbc6n5s_oO*KBs{HNzAbHPaLv zHOmwlHOCYdHP>W|`px8sT3~WUEi%PKEjGnRtuZA;tuv*IT5n1pwZW7zYLh8@)MnF{ zQNNo?L~S*djM`=@7q#6~A?goPV$=>()u^4O8d1AV-JJfFo)HCX!saMn? zQ{Sk=rv6b!Oar2hng&LlG!2P5Wf~fF+B7`sifMGzHPhIr8>Vqlw@s6x?wBS=-8W5% z`r9-$>Y-_7)DzRJsHdjcQO`~Dqy8~1jCx^O6!p@yEb5hMWz@f>)lsia8=~HrPDXt+ zosRlsIv1rIm!eF@Ur|=$YE-asEh@yg85L^WjS4gVjtVydqisfTwA~1a#<^Uy!-$D? z8gbFFMnZI)@kO-T$Q{!@EXB zC?1`~C>@>EC=;E{C>NdGs2rWcs1lvWs1{w&s2N?zs2%;aQ8&7XQ9ru0(I~o{@ojW@ zqe*n4(Js1@(K))h(Ji{B(KEW1(KouD@ndv-V@PyEV|a8UV`Ov_V^nlgV_b9#V|;W= zV?uOmV{&vGV^(xKV@q^fSChNFiO;OJ=tJ9-%* zj^0MJqmSWm^flrfKN{&B1C1<>K}I&mP-B7PXJesbjIqQq&RF4?V61XXGS)aI8|xfX zj17*d#wN!!<9Ek&W2@sAW4q&5V~1mgvCA>j*yEUG>~qXE4mjo*ha7W_BaYvUV~%;o z3CDcnlw*N$#<9>i=U8N1a4a@1IhGig9ZQWXj%CI*$8zI_V})_cvC_EXSY_OEtTrAv z)))^RYmLW_b;eW2dgHlcgYm+#(Rk_DWc=&cY`k&&ZoG4BF+Mo98lN274c)oZFgbS{ zX6Ifbz`4%|bnZ8ToCk~$=RqUXdC0Iij~UU<6NbZi%1GxtW2ASUGcr2Q8=0LKjBL(} zMh@p?BaibhBcJn{k>7dUDCoRl6n5S+ia2i@#hrJIlFoZZ1?PRElJjq)it~|C)%n7x z?tE#~biOufIo}wyoo|h1&UZ$0=SQQpQ!{_>)Xm+TCi4$Y!`#!E%G}EtV(#Y*H4k)# znFl)~%wwH4^8{z4dAieK{>AAu&vnL_7dsQo%bgzcN@rU08fQB5dS?dnM&}pi&CX2b zEzT_FtoL{L zmYAC6z?fR*R55kT(J}SR&Y1e<*q8=pS4>0m#F$3rUt=1ZXT-EH&yML}o)gp2JTIn` zd45c1^OBhF%&TI)H?NK9W?mQ5-Ml`gk9lKEU-PDz{^sp51I&NK3^ebL8Du^fGuV7M zW{CM@%y9Ghm{H~nF{90wW5$}V#Y{5aj``JmCuXksUd%l6gP4WpM=^`dk7JgYpT#UU z{}Z#q{32$h`DM&%^V^v9=65k0&3f!+vpM#6b71Tib5QJ7b7<@z=J41Z=G3t}&92y8 z=7iYYW>4%MbDG$_=5(?9%o$?$n={59FlUZEXwDjY*qlA~s5wXMNpsHFQ|8>Ur_K3d z&zSSaUN9Go{mWb=_Nuvf>LvpPRE8@&c;Sq&c)g- z-^Zo4^o)zL^ofhM{21r3jE{@4OpA-P%#Dk)%#U+fR>vh+Hph7^+v3t#{)kIw*&X+V zWlvm2%l^1bmLqZ5EvMshSqUK9#_}$BCek0Ra^tho4AIS_i>FZ zpW>QW3|CW2psSfBm8+#C#MR1TceS=SU2QCJuC|s0S38T_)xqL*b+mlp>SW36>T1d5 z>SoFB`oU7z)!$OaHPBMlHQZ9(HNsNSHOi9c8f~fO8e^&M8fR(bnqX<{nq+C}nrvz2 znqq0;nrdn5nr7+inr`{g^^2vS>sL#E*9^-5*G$Vm*DT8**KEsR*Br}FuDO;WuHP)f zT=Og=T=Oj>T?;HfyB1nTyB1l-xE5Q+x|UeRxt3bSyOvufxK>z}xK>)0xmH+M zy4F}$yVhDZy4G2?x;9w;aBZ~ga&5Bgc5Sxoas6)D@7iiP>e^;G=GtL7>DpyE<=SmI z?b>HK@7iy<tY?^p1aO=^y{h zGARDJ<)`?6EJNd8Scb>Hw2X{@Z5b8+)-pQ&y=6@N2g|hhkCtEJHS3IclXYgi**YuU zYMmV)WStYA%KBS;h;@E^sC7Ynn00Y{xOGK*q;++?!@4HkXKzJ zv2Kq~XWbE>-g+SZ3+v(djMg*pnXKpHGh6?R&tknCpVj(Td`|1N_}td(@%gMb;)`2v z#h0+&i7#ut8(-dfFTR5HQ+!3MjwuaH3Ex_cgvQoD{7oPzp^Y_FLR)KGLObi13GJ;p z6FOMSCUmq`!YfKu69!nTB@D6FN*HFXoiN_|O~OQL9XtlApD@|lC}E2AP{K^>@r1e7 z6A8ar&m=6gUPxGEy_B%T`d7kI>y?CM)~gAttTz+ZSZ^h4u-;DCXuXrL$$B?ov-MuW zR_pzQZPv#L+pSL%{;4#<|Z}-R`qikNcd} z>ppKy=e}S~@4jfw;J#$d;{MZ`)qUBT&3)CH-F@Af%YDO|$9>b9*L~YszGjCW@XnCi|RFx#CYV4nNSfCcWH0Sn!^0v5S*2P}5y z3s~hY8nD`3B4D$-RKV}z0ckO_O z?xq2c-E9J%x<>{)ch3!Y<(?Pt+Py5`t@}cN?ztRb_WTtP=(!RQ;<+0T=6Mhh?Rga7 z^aKaGJUIj1oo4lLv86Ij91H!#ujV_;>^ z#K5Yase#ozvjb~-HU-x9YzeI6*&0~ivn{Zp=SASRp3tBsp75Y%9(zy=PfSoNPi#;d zk1MF1=gXiDo?=0rJjH{$cuE9y^^^|k=BXUi-BTl|r>8+sZ%>DyzMhUj{XBhw26%o9 z8szC8^pj_J&`{5apy8gMgGPEL1dZ}c3L4{?95l`|C1`?YYS1Llw4f=TUxKE2ehvD? zGb3n*XI9WG&u>9aC|@s`s9bsXls!rqaA4Q<=PDQ<=TvQdzx|QU!W{NtMdGCsl~o6CCFC z2HU)Of+M|ogQLCqg5$hhgX6v52fMvL1be+hgVTEF2B-Hf5B|ctIyjSeO>h?Py5MZy zO~E<5zX#{^ZVArq-4>kJyC?W7@4nyy-s8cAyyt?y_Ff4t=6w}h!uvM3lvfWa6R4R4{4THazI-*`)e)b*AOsqZZv($HHbEGo+KZen=N@gOIM?79ridBSQLl$At{=E)5yvT@&(?cX!AT z@8ytT-oHXddLM+0@}>_Rr+b%#{_0&GI@7y7bhdX# z=v?p4(0Sh7p$oiwLKk`WhA#2$3ti^jAG*SOAas@25w^zb4O{C?6Sm%)Hf+B)OV~kg z)vzPpCSk|Ct;0@uJB6L{ejj$m`$O0{Z;!AG-k-xRc}Is`_G((T>zbCSBW^ZoHPh-^ z_9U`o3-J4*zX|aBrfmz*awp}^2Yr=9Yv?;fIt416lzWMEgSqcW&h09mwCjtUlfELP zDx~B#lG{zLo7}4gsNw6umMxfAIjJvg;479yeHm{QX&PxM=?_quq#9pigeoLa-c`8Y znM8+>TQ!Mpv&M5!og|;}M}XEKi9$dvk|+w)DTx}-Q_I`*q1j&}3v#<9<>m$TO`@+s zgOaE`Xjl?e1C36i79d}1Z9x;0eBaYI2;^Jx(e%v$O;0Mfmbucu*-5@VAYcDZgBB$D zZiAL3(JPRzwcU$#ZFQ0_e24NSFHtmoZji4B8R*Lo+LBaPYV1s+YVi4}G0U|kbtjDj z`Qpu?FL|5HpI7tuZv%6a`<%QSe<1f@QoH*>CzI#|=zJ0-k4tim=K zs4eUjeUtIz!IvAjQ;pE;lDfZt4*D{HeC3iy<1F?_-#F)Ix#YT~=u7TFO-4!XOGEma zgM6dgo^`(`JwKsZ>q*~8(hSmi(u5jj|JrxmQA>FoxxVGNLVCa&mR)KLlDA1Y=6pVW zWq1@w-lx-|uCH7cQgRQH_l3O7m3{TEq;*-0?I!m=d3mcK*S8fnVY$|zn@M%MfbJ(z z@|K;vJ@-JauU9{j#)EvvoarFn8eB?B-UE`?{(9Cp0`kR6-Xi|fm|kJLd!*$4C2tXr z8Sf)0^={QhR#Hh)J<`0lYRz<{uNNtkM{O_3YcRP7<5+Gw={JyXG!EgPB2SXWwDNJ) z#{XOn-*zg;Y#$|W&s!PqFynohUiBq;pGn?R+9vAS%cR!+(@4sa``W14R_&L`N01Z9 z^{vZ4Ny*39yX?Vh(7U8Il7DBCkKXT*t9O#$)zCcwT0jzI0EH&e*Pzr%R1XxBL@hw> zBPs3!nnPMk+Dkf5x=(sX3f-sr;wI%Jl_j+%jUuff zohQ8~dH1WxWk~HvV@c~tmq?#T=?RU2MX9#UCS zJyHi!f6@ff0@7yEU!)hL@I$KI%%sw!#-!e)$)we!Bc!_|(_s}ko|KaA11aXHikz2JjnsiOoHU=blk^wq4JqoFiky>F ziPVPFn>3EJkhG0-nslG^i4=8QwU&icob(N;18ERx8fhizAn7LQ1IckhwU(1qk<^0J zk2H<6mUNVKm!zLmk)ugDNaaXPNWDlCNXtljNmoe!k|Iv2)-sVwkm{2(yyfTq+_JNNr7in8|g_UNZ*qBkfxC~kWQ1Hl0wg_$eBrH zNsUQ;Nz+LiNoPpUNMYwxH4tB=>n0xfH1lX*6jq=>q8kDa{2H zr7WpEX&h+-=}*#IQv5{~r5LFhX$WaC=?Liw$$m*i$xEt3>P?zS+DW=f(*IOZ(vnJ( zT9Jm6mXeN=o{(&pRlMA!TBPozX{2?e)1>Dl+g~c)m!vABj-*kfWu(KT2c)1YDqcoX zSyB^HKhg}+7Scu1zoe+EDspa8HBu+iDAH2WLDF5)8&c>s71>3~K`KG2MQTmzO&U#_ zLt01LPr5{UMAELS9;7B^CY2^NCiNywCaoqNA>AdJZm2fmN%=`NNF7PTNi#_6Nk>Vy zNgqg2H&tudNTo>)N!>`JNb^bCNM}jUNVZ$5jhv)vq%Nd!q}8O8q-P}CZN?*2BXuE- zBP}8AC*30HcT~ItQXx_uQa93g(n``1(tVQku8N$NREYEqsViv=X(?$x=_ctDDej(X z<111PQYX?#(n8X9(k0SAq~QB1au!l)QZv#3(k#+8(x0R^B*z04IWMUOsS9ZgX*uaI z=@BXXZxt^msRpSVX$omG=}*!JlKY{GSDe(0^b=`0=_1MUNY%|rYDgMRT2H!83Vp2V z79h1CjU#O%-6w@SQFSwrijnG(z9)?)Eh6nAT_(LEMLbn)WG0m&H6jflEg~H!y&}aw zQ}IfX+L6YSHj}QA0-me7*-5oXeMpl?Ye>gQ4@p7)sCXGjB}t7*eM!?v8%bwK&q!e} zROBqAL{bORXwpj33DPr?{iTYRn^cq3jWn6Gk#vFdn&f(=;uRw`Ck-PlBb^|Ulsu$5q&}qCq(4YENS3!MN=8ye zQb*D_(mK+4(pyseI~A`OsTpYqX)b9O=?2O4UPVbmDnV*W8c3Q;+C{oSGJRk?QVCK+ zQXkSUq~A#wNv}zck1BFLQZ3T=qzR-oq?4qlB-I!O;yQM{z$q$Z>Rq&cLWr0XO- zi1A3pNli!tNYhChNoPpUNMWf|H3iq}0KTOe#xiM(RiUg|v}$ zn)HMe9HJtBK`Kf5meiXxg|wM;m1GH3@v@Mrk-C#+kam;qlfuJPl)R++qyeObq`jmo zq!%PxxQds7l%G_Y)ST3dG?ui0w3T#)`ki!!^q3TA zQ*ERn6(-dtbta7<%_D6mT_D{jeI%u}tJX4-z9v;CwIcN)jUz1}Z6Tc?-6p*yxl*fk zOORTVMw8Z&E|IiIRW}1Ek@OvDDrr0E7AaMfijs+xNa{oyPg+m9Kzc_?h*t56lbVx; zl9rH;lAe-+94bm$QgPC^q`stINSjILNiRvMohoupQWa7M(n!)`(jn3lQe=#ZSAf)r zG>Ei_bd>a*L$X$k2V={YGnjfzr`)QB{Yw19Mo^q6E%tD@v1)g%2tnoQb2 zI!Ag%icZIPq}rq(NRvq$NaskeNYUw4yaJ@gq@ko0q_d>=q_i1SlnSISq^YDoNOwq~ zU#PlyNR3H@Ny|uQNbgDMGO8$vr0+?;lJ<}uk|Hyyx`j#2Nk5a8k&cp{lN^~Dh17&J zgtU}&g7lIUn?*$_N@`9TPFg`aLV8S!$f}~`BGn}QK$=SWophP>k>tsy;*}sZCk-LZ zCmkUDO$y7dqU0piBy}fECv78LBN;hVlnkWur1qqtqy?nCq+2B8OBF8-sW_=IsUK-3 zX&dP>=^ZIHr;1#N)R^=WX$k2#=>;h!mx@w^)QmKYw48K`^e@SkTSfVr)RZ)ow2X9; z^okUhM@1<{YC#%7T1h%XdP7RctD<~Gs!8fX8ckYCIzYNjGUZe8+@!*!x}+aS6G*E_ z`$;!QA4txxR2#WTl}T+#gGsYUzmv|Ao|1y|tH>Ehl}H^(BS=e0M@WxIVFgsY9HgqG zE~N3KwWKqom!#-|D&AM5dZZqt>7=csDb)zNX1AENIggsNvlXlNcTwQ;wo|isW7P?sRwB?X&vbl z=_x6!go>P%RDsl*G=wydbb|Drl(D3WSCiDAw2X9tWGS4mn06~#*`PHI6KPFhYnNqR|& zsi@+8O=?2=iL{t>l=O@gm8hZ=AT=ZnAk8NoBt0V8Dyb-WNp(qmNpnbhN%u*Cl~t51 zq{^f&q=}@Bq)Vg^B>X+j|2&{1sU>MRX&LD_>2H#?s)~}HREpG$G>|lhw1ae&^pO-_ zO+_wDs!!@gnnqerI!k&)SC1&X%*=h=_$$HR7J@{s!i%anoinExxaOwwAaDCtP$NbN~uN$W@#NbgCW zRw`a8Qft!Br0t{^q|B{V-NvNJq$4C#8&xhpsUv9~=@KcTt*TLm)Q2>Mw1IS%^n#SS zor;o+RE^Y`G={W-bd>av6x?3L%S=ineMg!~+D^JfO4UI{`I1zd)Q2>ebb$1j6xmTl zDM)Ha8cbSBIz@Uz@^n&B%91*gCXu$1Zjw@UR&{fd>X15-Mv&%{c98xgy&~DVsK{AK zWl2p*eMwVEYe~mQ4@jxLQ;{>1Dv;WeMv#_}4v`*^QgvlKQUy|5(g@OTq#dNcNN-7w z?^WbHq-vy&q>-dWq`jmYq)#MQH%2B^CAB9FBh4f2AYCTCCPn_BB7aFrB()|DCdt21 zeQ)K=rf)Op9O)lYM0eFjHc|yrE7D-n9MX2upQP8Ms2(bEE>d;U52Wd&?W7wdYflv= zGpRD^JJMv*@1!dvQ!f=I1F1NvF{vMECTSb#GU**DwzrC0fK-Rnoiv%Wo^*!vkQCTQ z#Y;yjMruInL7GTfMLI&dM>6+SkuhC~e=8|Wszd5WT0%NY(tcERvyf_&29TDK&XY|2 zRNZW(I;26Q6{N$YhosQ{DoS=z6;fx?IMN!@Y0?W))BqJPAL$!X57H#k2GV)bYf{WW z6|W$vKB*6B25CF#DoGopqIgLqNKHtCNefAbNRLPngH^oTq}rsOq+dyYkZzDHKdC4g zNhL{5Ndri;Nq>;8kUo%HLsaBKqO%UN^q>BPy@0s~NcTvV5vq-7QWjD%QY}(jQa{o} z(qhtf(rMB?(g%`#r0T&Jr2M2xq^6|qq@PK1NE=9pN!Lg(NvVET?Yc>MNaaa&NgYT7 zNRvp5N!v&#Nw-OFNTH)t54@zjr1GSOq<*CNq{F0VB*$nK`D;=$(s0sB(pl0wl6Q=X zQkK+#G=MaXw3>8~be;5uWE-m@XCf6R)g^Ty4JXYZZ6=)}Jt2jRV;iJ0q-Lc4q#2~& zN#{u~NVf4Ra&}ThQWH{d(j?MK(m~Qq(g%`bf@&itsUoQbsUK+?X)WnE=?N)(qKce@ zRE5-uG={X2be!~r6h4XZNL5IkNE1lgNLNVzkU}P_c@q*PMPO+Dp1e`ap{QMa9cODo1KU>P4DBT1MJSx zMbA>LWha#*H6`^SO(v}(9U|Q#eIz+&t2T0x5=kvd{YleEYeYC#%8T1YxTx=%_qPsPhZ zN+fk4jV7%mogh6UwZhj%eAn^z`6_Z=QYBJP(hSmi(w`*D0u?0(sV->{X*uaUNnfby zW+Bxg^&>4NohE%Cc^0WCWl0@LlSo@hH%X}$tGYQ!bx8e43rI&vFGz7qRFs0GTBPqu z6G&@FCrM99;Y(G#?4(Mh_N0-dC8UF-d!*21Dqbd18B$}?52VqgC8T|%8>Ek<*yXB? ze5C56j-(N!1*Bc1E2Ouim=!8=eo_t6ccgKoRixvj$E47eDqdDnMN(VRaMB{ue$pM1 zX_boSB^4rlOX^FSN?K0ZN4iRSO|q?4ZDb~uBsCy)BaJ34B<&zwBt0jEuVEXc@}$7}29kauts@;J-64GkVNUKPDNtZ}ZNalm8-564K zQb|%3(zm2eq<*9^q*nt=`AVpINKnVBQ+)UAx$RD zA}u3rCha4gCS4;vBE2OAoKSs-q%x$Iq#>jQq7lcLY6HZqWkkgAi~lSYshk@k^pkxb`QWDltbsR5}MX)0+0=?v*P$$VZ# zjwWR!6(l8+8j(7a29hR{7LYcP4v{XC9+5tfY!_6o(vu31Dv_Fyx{-#HW{_5s_L44= z9+C8ms$C~33#l}z8EF7%7HJ#lPtqHbyNyb$b*-a`$`i9h%G={W+be$A(O~w0vh&vOwor=Hz z&vnkZ-1lwY*JR&!5;xhB-EB$sE!nb@Eo3P~WXqOBAzP@BY}u2Lgd|D!WM4~?{68~e zKHsPNxqco!{hr^Sm(T0%J2T&zGc#w-oH=vORf_Z+X&h+{=@cpH370mO)Q&WPw2pL! zl>$U6m{CAh$VF)%_8j}{X)ud#-*)K8cJG5Izo#1 z$)zYoYEPO>+CsWQ%6!(Ptw|b0T1q-fO8T=)QGwKxG>5dG!c4!`$@l$Qe1ZaijnG*dXXlPmXr38u8~q)p+8c6QZLdZ(sI%+(pge))%nXtDo<)o zdXY4hw1TvkbdeNu&3VpEs!ZxY8b|t=bcEzxcV6<5>XG`BW|Ov)E|OB+a9+xg+K@(* zR+4@s#oTmhA0xFUjUlZf9VaFF#if0m)Q0prX*KCE=^iQ9ug*&?QZLeU(gxBgQp_!v zwg{;qX%J}+X$R>7Db;VzOIcD|(pb_;(h-t>+odf)YCsx9nn&7AxO~q$nort9I!wAjN^-~Lk%v@?)ST3VG>Y^NX*Fpt=`86UDcv6~w<4r!q}HVVqzR;j zq@ARnNKtp4=e(pEq|T(Vq@|=iq|2mae>#6fN%cuDkS3GfC9Nl2CPm$I{&JEkky?=k zk=`V&BJC$#AthEZ_h(i4NL5K~NyA99Nb5+4NH<9-Le6txQZ3T+q>-e#q)ntBNViGp zJmLa*-;N+K`5lrjtG(?IfKh-6LfTTplG!^+;Vvuaf4F zJ|!I@T_+_8JI@73aikukNu-segQQ!e3<;dSvZR)zp`iNNq#dMNq&x{-+Qy_&q}8Oeq;!c~ifW|( zq=lrdq!T2S*rm-vDo<)jdWkfXw2pL`^cyK%66g7GQbW=R(rVIqQs$&CZ9UR((kG;I zq(_pu6m?0jkXDg?CS^+QQdA-JCe0!3CEXAcqN#(p$BDE!rBrPQEBwZjSN$tE8A=M}KCe0@8A^kxrkj8mwMtY63hIE#cHmyrh zh17>MkF=i@O6O9PBK0CIA)O&*N$*lLB~2#nAw^|y@hXu9kyeqekn&}8DH@VSl2(z< zkkVvwDXNhAlID{RlERO;6eUURNmEJNNry?-NHLk6mu#e1Qhib<(#xb7q~)ZYq!Xmu zq!f?3+zOH6NZm-|NXtljNS8=Svd|wXj?|4bjo0KKD^HPP>h4cz(7HJLX0O>L*CXe%%lT?A! zjMSGjk+g*LIq3xH7AZwumq!6o6;f-`0McaAGSUvx3DO->ntU#gBBUCm_N0-d`K0Zn zGo)~S=Pwtj3aLG5BxycrJLwE5T)_FuN~%C=MH)fn0PC7`sP0C!{d8tHdPZ~>FMLI@` zDdEzVAhjfoA}uE!A%!1vX^W7Wl7^F(k-jDQC0*L0q?V*Hq}8O;q!f?4wB<=%NN0CQghNM z(n``XQlhdhZ7EV)(gf0a(pggQgiD)?RF%|`G@7)Sw2O3sl(?MpSBO-H)PppUw4Ahy zbe0s9cmA@G%9EOtUL;K=tsw0sT_nX+aGrCMDwA4~29w?Q0(O`j~Wxbd{8(vh$apRE^Y* z^fGBSX+7yX(l4ZxPdU#;NVQ3wNJB|8NGnNuNM}i*D$a8zQb|%>QYX@I(k#+y(mv98 zQdCu!M@~{DQY+FR(wn4Jr2V8Tq{P*n=X|89q_(8tq=ls2q${LU)t$dmq~@fdqh;)$@s?B^!B}lbN?MXvO(@7tZc9Kq#?vPT)x!ekos*;+KULcJj z%_XfP?I)cld39VK8A-)SHA&Br29n+&EhKFw9VT5TC93Ok%SkFnYDDTm8cmu*T1PrS zx=4zt=kmx;szvHb8b|tow3l?1l%l@#SDe&<)Q2>c^a<%}(q&TOr=7q2r0S#&q!FaK zq|KxsNq>+sHgKLxlNymak%p0`lRhAAC;dRWK}z_H%Oe}9G^sAB18Fd63TYu}Bk3UN zBFS&)a?406MygI~P3lJ)M|zL6o>XV1dtYroZP!U@8@YVTkXn&mAuS;7B3&k>Z0x)| zPHILPLYhnZoOF?twu$pnk<^(qg|w0MGbv?Lm-Y!#2hv2+I?`!U(q=AgK2mj3N7AdL z`J~TCr$}CN=Pw(nBB?cL2x%7SQ_@kA*TVVBL#j>cMVdxhPdZKtw{%|elj@TCkY6)l z>DxGeWk@YZLrCwEwvvvL{vc&~j{ZnZNiUM7lRhCGB;6#XYU}(JC)FqQBn=}?AuS?( zO8S~~n)DkfaXXh=R?=gn>ZBH=o}>|^nWRrh`$!i_QSDuB*-7O{O-Q{-<4KE2pOKD{ zekWz_;PQBi)P?j0X)WnEDXODOTbR_4^b% zqzs*$=f_D6NIgm8Nbi$&ldh7|bawvAkXn;QkQS4^BHbXR@8Z0aBRxkNMOsSQMY>2z z+SPd}N_v{qhcu0}hV(t@57MLEoWF{s=SU++b4XiBr$|9}=Oq`ZDybuBG-)wu7wG~i zaS!LO5UCESBWVO_4rwFl2w1*C1H1k3g(nQjSq_0SqNQwJ6e+5W2Nu5Ze zNef6DN#B!xC8g}^JQpU_By}LYLYhrlNBWj@os_hn^PHbllhmE`2I&*h_oP2b+50-;#bOJ^G^aQkK+$G?+A-w25?_6dK^XWG7W7wIhurEgAm^n#sU2wy=_As&q-&(KFF7w2NY9fdk=Bt;krEGfX-kq?kw%d| zA{{1qLtNSdq$Z@-Nb5)!NRJG4Y2!#kNFS1plTr+GDV`+tCcQ^GNV-QV^s-Caob(!L zHR%i~)hjMVB~lO4EYfb$ZBm}$E^R|nchXqWBGPu!Nzy&iBO{!@SW+WWZ_-54GSV(m zxlK`Oc=xbU>MU#(duXZw+h}9E3R?|hd#|HXO^huxGUh%d0L7WmjGz)GG}4#s3M15h z-J}7jKWQFm59t@uqp!NO)ks}Puaj1ij*x;;E^RSVBhpaP`=mW2Z?sEWg4CWgg|wY? znUv!-m$o5k2R#F2xh1uB2(CEu`zDY-3&8+N8mx_em#6(XYD{`AIcFwtZWH z8kkn?1Zrw%Flk!lDAn57#=~aYd{yBU(D@F>P?8b-`7%r=9rRZ1=$uX2(tdFkXnL1H1WEFRvGF~dYu%hhGrqu`dhzV z-OrPJ^x(x(%`=O*Sb;{bFpn zLAK0tY^7kcy|Wz1=KEa%SCf&BS8AgwQrt0~8-Q$GwIcNeg?j2M(@;>@&=gQ2LkmDD z46Oy(zOf6G&e#rsvKoqN5K>i5yB&qi*5p}`Epzww;rnSI6_yMP>EL&Hrr$6tf&o}JwF-TQ#`ZdBw=FZsmgQ5@S&%Kk#ASF!V9qx^qu6Is+(4*3L*+braP3O{N$pA-Nu7$n z(3F__=ec?UU&l8kNDG@SRW?#p&>>T*cC@_#vSWmJ*@ZF8juz_>`h!Wajq$z%oiw)D z4FYw+Q0ggB>ZYMcB{+%{cT8w#sw-7Nkm{vJxO${WrILJg`{pyp*0V%#zkL0WHi7Xn z7?jM=2v7z?uYam% z9gy`Wx$Q;m+BO=0&t1XVBVKLeMb~6~Lw#r)2(l@fH*xbJ?XQuEHxi+?rDuX#7~3k^ z4v}t9E-z z_C7-|_jI+fm9}q5XF#@9eYJpm5s19jG4QG3g^nGe)OM|p) zO^Tc#+eS}-wi;V~Qb&+2{Q%N9kgW}=(}%6e$vC@rn>-}98SrOY;jeS9eI}ly_yF;2 z+RsSef_^aZ&Xc4qrBvQq7+*}hw4k32VHfmyPE+pqqwPGKIACX4q`c`5I*N{f=~kbe=RbpSpj}$ed96ke&Xxq$7HpVkaiCSw~^-O*j-W^IXQx=}AuAJ_A2>qUBdCZxz|{K=d_ zW(qQ+kolF&i)H2!Y33#~9+?mQ{n?GoRb+HE&c1D#wNuikUh3<@+#HF*xrK8mSESP{{0klnRW^36VewTTdE@< zJHv}K7nLjBImGK|a+5Pa(&{#{{&d}UGx7d+HEzA=8n+aw#{F3__t#K#-P<{ZGWBel_AYup}@^v=X6!3g77=R1M7U#^H~B*sgc&U zR(8-56Dsvw5H{Q9dKR?YggyqFZGBz48;nhdZX@k7B=cQKA+x?nX(e7|u;nN@hvF3p&vm74V?uQH>AsKLv>l6Ft!^AebSKllNC9kKM}9GiI-%qJ8R|M z^by!>AIeWE2dZOI$bC=3PuzW3h8B)SWN|ByQi3?<@eHXssWYh$$lkFG13hDMlhD^- zYi4Yh%17O&DX_IOHeCmH^mzw1OH$^4Pf6v-|2^fC<6Vj}cQ(f%p8q{%mik+RJd&6- zOQ}hzp@y$3)iYjAO6}^oDu@uz2&%MESXjO(-^NvqFVYtx=>38Z{2 zHo6rmJr=JvX~)B}J>T?U`T_lB1xzMe&mE&s9JbGDA`igWBwB6(u zeh=4pLs>~uf?~8yP3OjlBFNXKElYuDG>!Dd5efovb@h2PCRXZ$@6I%Q}T zL(h}y!}E9(`p8d8ZSx~Q5IV&{WWZxZ#LL0l_E6&)iEjBgPt+e8`R3s zXwti&=Z$SY=@3hwXtDGB**?s^Ogw!x7-r}ZgpM(k7i3FSmMP*$CDCrSd~)TKx^Ibi zlZ}^(Y+vbXbz!qD(}tmXWSC)6NDWE9lJ@NY&+|;YuAs$+ywa|}=o!UIW1E&mshXzs z`|%ntb?`p={aO>RH@s{zGzzrS&>3EJ<(!r?SDn+UWx@>GsKsOCZT}7%5X;o?cu1IU^`8Ck*#*3Vd(j%moyoGo{KYjM- zy0Z6CAHkN?*rdPcHnKM9Ia?7gt%-LR=fWd~zJ<;9;;bCabluxhN!|a9c-c*g(6Shn z*O1g&q_HFm;uSXW3V})+lCeZe5NXV*h7?bl6b(St4YdT>l6C>rF}8uAXADURUWV;{ z>6v0W$nN!ibpD6q`NHnt#0{6=v*j) zz4NL>l3#pmKwCG`WYUME&7>bm-iOX}PEs9G50d=q;On$4ChZ|zC1v=?d9F&5U;k@N zTQAZq(st4*Ql#IL^Ow6kGLs%BwIOBy*nK}%eoL)CL&uRmByA(fZ`b_&-y%6qFY>D- z;T5jT5B`0U^o&=ORFl+&G>|lrw34))^aJS{$y@2ll7;jbsRpSPsUK+~X$fgF>3h;u zQl^hxZpBDdNNq?XNV7@nNEb;NRyltqNKcbqBE3i2NjgbN{E72YfYgvQm^6*FjI^0_ zkaUrxRy)rrNd-uiNR3JTNE1mPkam(zlkSjGtZ})uAoU@QBP}9rAsr^&CZ$~K{1qaV zBh@E$APpqFL0UsPKw6yHeGfo>B|(0pK)z3Xjwx=D60UQlDnP19>PDJGdY`m~bc}SD zly1HAT#D43^b%=0X&GrV=_D!isq>eORG!q7G>{};rIByKyvB8k-XV7jqz52-Z0l% zxpvDnRMubg)!EK?WL0Pzy=b!g9fkC2kG+QOMyQ<`eWO#DJC@U=UrE6x7n&Mm*L^aA z-Ztg?p`}uD4au{2xx34Qcy=waAjszSILNNhR|eTx%RlifX(N?IN+6|@(*Kh>_)p~a z;99HC`qO(k7nxR&`|0KgwXLN?KQN)4VY98E@04sSyhPjUAiG;>5$Pk+I?@)>VbV!b zq}kkggxX$rkCbb(v&E8{kh+sbklrG#A?+dkM7ljBN_}jOSMGM&;||>3<@;M=)H)L? z^LE*9p`R&jHlea2oB=7e8=IVE*Y#X*Rm5iyZ@2N%meh@2UL?Ir znh4rwQpoPCw;B3A$ey)wH*suY_XJo6DmFsV?aS(pb_0(iW0F-gD-NeuC|aA*rE1V6*kC>#w~TS@oV1Ym;~JGJF=J zZkx1nHp&?)=cUfg@9%c5{A(}S;m@vuNgl;vv+Y}*B>76I>LJv6ZcUOipe=3EPqml( z{SWPH`&uv9?0T^rx!k47oohpkKK8y*d$FrWLXxl8hOq>lkv7KE##q>r8G3MUdK2+% zzgkZEiXJLuYy%!5 zRC^h1;_0Ufww@b-#v7YnyS6=6k2&@^(^BMNd;4mT4c$aKz|g~_pGkK~iFP!oph8Wd2Gd#kk!VYo>gry6zP4=TS#kDmajHI#v6KFz0YuP{{V;1Je#kD5BjjTC1MRRmo#B+pXyI{F=B z>zvP>0s48Z&Fu#Bi1e&dp3cohyaX@mYsw*}kkG%@mGvAcH<>BOb5kixT^_lVK9XnY zVY(G;Zn_mL>AJV1>)w)X8B2e^6{N-^wMPe(Ik~A9UH9p24WVVS8ydpUsi1QeV;# z(pZw5J$lA7g`Q^{l3JUB6t?ubcHc9h^I@~JhM`}AKA@M6N$U(f_{yn|ZL^7Y5MJ!q zbc}R^bPr@}XcW#P+h0~!aHH8mQo)?gwg~Y)H=dL3#yyFlzn;nQ$NRrOo<=Iw-#@z} zozpV6gvu`JNNps2vKq=_y)-3Bsl=ZgQ8&c9@h|g@GzS@o6m|~sCTS&UH|Z=% zed$u9B^4*tBDEn6BfU*pMLIs!j{7LyTefNA~x|SrAoLL_mU=U z3Q%T4dR}5l?>exhmztFOUp;o_FexI1N<0ab))LBseC_o^zXg%c_$vTg5knI1G1zRo zJx%HgDrw@$nI|cPqqglH?)hx#S`Fu0o2orhI=t#XERv zWXrsxl)ER{1%I}#z6IHS^)tv`lW)*A17D!FHgBJcr+Y~^Q?&b>?YEEN^jP#+_A`gip;qtAl_2rPhaUiX1?nT$r5YgxsXRq?;Jg6*+?Z3SzSJIx2Tg3M3n;E3$`wvu(Q8D#IHzGdiHQly#m z4TRcfV=@c>_snKQ*A!m<%qy96~Zg~;9%TNi> z*M=&BY`aD3FEW#sekJ$GjgZ!ku`;`s8MmB`a)!!TI|OOJH6@VQ&4bTcnITU?T6-MQ z|KzG6$17`O^N_;Ukfew-Z~qkWelVqa@Cwy-#ItK(axUD2&DNxhDl+$xW0QGUq*+y@ z8VU}?sGm%!l7Z~ZDAN2&JZC|?t0u*R^OYHylwQiL^9>EubH|@~ttbkcJxZBHKDbWx z5hXTWDj}_Hg;pSYwbyf>lqR$*Z0QX}x+fWeP^H-YGh%}5ei?oq+igcHh>4@`JmQbcqym%;k}t^cblQsST+oX*@~xB*+uvc?{h^+E2Po%6r_Epcu&BQOSMT zIKGQg1EF^8lzC1&*zBEL=X~xeF01i95t_@4iQ_>94BdSr>i!O)1b9QbuzAMfw|2H9 zv^5#&Y>(2`hqfZLO{DE9+LqGRj5f)mO9b112(}5d%^Bjp;#R$V=zf`x_Hee&HJnZ2 zEg0>N?YXKhoy%_TAV#(m&Kq+!>)Z zMdsnoOLg=OYtwss>=EfR%Gxr}mX{^C#XNqeKbil@n#X*cN5#x}v=mgzkn9Uu2U`VW zlQT3D$?Whmq_ArvLi#S+&U0ip{Q<+i(lexCB&pqDSX-)LYOM~av7rH=_J-a=ir$7+ zk~V_|8=G$5QHFNGHp!6Q&0^miDulaj+xpsO-yxC|d+F~mXu3&z8Z_U~RfgUs$-8sm zQ_i34#M1Lv`(8&RTS}x@VmxO7EjOgs30E6R+c@fenWb;+?1Jwam{5Ipx6P2ev7~3_ z=gjC`2>$k%&?=xqhMJRJ0G%+l(IDH0BDMZ>gxVQ$q$`B9mfj0t-_Ki%6!r~Ez2a&~ z?~bvgXXdv}zIt`$o}quWJ0?6x-zDhXG06<+-7(ho*WEE$P3Zr;JH~p^yJIZr667~& zH5E0acd0yXNbgdyq@T4_WxR%l{(qHOk5{%P^=f?chbXhOjNYYU)9PI+mj35mDmLE3 z?o#>xwHHV4iD_?ZgQWMwbTPI_J^R6XVs^0KUnEIym-Ae|r)fu(xjY*aoOWlFoVEJR z(_W@5vaeLU==YNcn$ToOJIqif(g*k!$g9RC>jL?ihvX)sg_K3crdXtyXuLc{5`X&2 z{+0>VWqCJVZcihHeLJ%?Xn_fpHQMg5*%2htHTl8U(0)j3-E!>el}s($Z~VP&t=BzgnNUE<{EGpHuaJoMHBvn?}8c9t5Jy!$$NqM6DpO~*eZas z8OneZ1q~Gh+1W^`)7aNyY*k>h`&FI>*}7^0vZ4BmeD=G)5>MJ=AmYVu52*t=@-c|_ zgvo6t$nH_s^;gx{9_()oQq(r__JW=^bRN{iP|R6;9l=lzkbOUNZ}!mrx~~jdI}@r` znQRKZo@i^b8A9#xN^8kAz6(Piyz`RnQO<>ivvgr!lq^ARDURXSXwj%&^(^{S(hl?3=rCy!u({2;=1k%$w{O zA>S~FG_pRX{h4#C2I+ayNYY%=8q&9<-$?1tIe)S*T=wc#XJ{wVEYb$jRZ{Bn&R;C) zSyH5Rz5m2&-UOClIcXQ^3`t#ZrO!kvNvceeRl4VB8%ml$T1whLlC`6vw>+fUq|T&~q<2Z5k`9w1tx)~R(4?1LZiPuz zNnJ>-=Ok$LYE0@y8cmu@inOY>g`u*R)}GJ& z41^?lMDvBdHshL7C7PkWG;eG{x9*fvi7?C%F|vsJ-Vb39|F{ znxrf_$OuAfIRHgO6PmP)QFbltCDC%a6x@9O0$X@eg_f8Sm?wZib3~fe|E3vGz%2)6P zbM18rN#OJ;2PnR*68D`3lENWRk% z$2~h+5o&AW49K?DZzMT#=~rogaq)7Iq+X;fua*IeFLp;k4W!%w_l*S2b(2*=T*U^t%LonHr~sir;Kgl?=Ec> z*zEK8vZNAB(HteUU#aR0vft|L53=W$%=vZs>?}=}&yw6n%|)r~u}KQK2OGrN(D$(R zc;y~K_7v%RHG3SdB88$?8XW z#ItQ#5A>`F)!$a?YH0WLK)o2xi?n$Mq!?jB`+&w68VZ_dNS=4=Jr2|2d6B;HuwEv^ z^V`PDV$fVehj2u;m&odotWl^hTp!ZspncC~HPYI1LFz@y^4DE7|3BWEk#7RZ&K13b zX^}Zzy}x9Iq20K5`P7i?N7DP7J~y_?7(2fRVt<5lBKiiJlu%p!f zJo?yr)}xOlY2W|d8#4CJ>pxrLQm3bR9P-AJ)VAF39%rZ$S18i1`h_KWK6*1+sly&Hz0dDQxnP zt8RP5d)(Om{yTOuTFCrVzG^1lGJ64e#Qz@IXxQwzHIp3Oyd zU4eLZl=__X9mv+u8STZSy$-T@$V@PN8{a51q3J+%3>5-BV@Oto%D`sVKx=~H&sAif zbW4WHj_GcgJ=hf85ZcUm)^po-h9X^^M-fAq*bJSqktC&iK)lKPQGl4g_EkoJ;}kuH$bJ(pW5Qb|%AsS{}oX$$EZDMlr{ z-(L!lDwA50WC_grpeN$p5uNy|t(N!LjFJ9qZjqI~BsKdBa}DX9->3h5Kl zLDEf9=D>M=k~EC8h_sXRGbv5jrL9WpNg7L9O*%@tMarGPd8tF{OnQs7gLIEnD9WYn zKpIM#LX!K1#k6fFoh5~%oxeP!$4S*l&yhxwmXo%V4w7z>lEt_@ij!)S+LPWU?IeW~ zy0ke-)k&R6Z;97QZZ5` zQWKE%*Mp?LX<~oBVk~Tyrjh1?>^JfC7l19TpluiFD99e~P1^2}k|ss1nKi-8AX^)S zNv%m^NJ~Jrq+3aHY>~=$l4&oH^xhPEME{Apk5rTL>)AI^DqBN;kmOf;>C+%K=w{u zLR-LQ?}U4h@?~{jDIE^mTgHpbUgcY-1F@27zf?07@!mD@=71K&E5RDrmKxhe&vI`h&hR@$?b>Xed(X2*f*WLL;@u8wfpbLZ`!v%|lvC zQoMtBw#*-aZkiNZXp{0CfbCBcdK454)pt~Kl;ThFc-Tp z<<9>UQdoaCNa0k@^P{AKpoS*x;~;wuRtMR0unDMnJkQUPQ+*T1eVTI!;pQoWG2u$4E^`-9YwC`M;w<$iuz?DtSb* zN$6;#SZ7-B9g>7TnDlznXC`f=mXY_o(kbXw(g)P6Dq$f{0eOL`Q=zpDibQd!7ZiI*BSd8bCYxm z6Hksqll43Up*c+G1^hl!K0|Y1D`IF7sH7qNRIn_mvLQ(!Ui5lhEfcD3^$kgG{w#cb zz}VzDr>qixgcSDNl53u<& zXRh*FZ{IUtc@8T*;u=EjsP`)=(o@U3%;Wm2?l<*hwkdN=nRh<;3%ilNW&5yS9*(r@ z^q-XFVe^etW@$^Q(}Woks&1yWa)bICDhhhpP-)OuLwfJ(R7291)evfX$Y!_crBBk*CADr1tsI*KfP;!shdwKmB~mz7rz;TC)VN^6QG- zX_Kb~@?=!<)ki+xlv!+l-4`x9jqUO3C#@fv6#7kXTb38$#n#mr(k#+SlK%ZD8*dwJ z`gzJ)>kqbVhJIqGewMJu*yO9vzarF@ManGCnWX-LjBe~qLwfMH{`B{+>>OQxU%*nN z@7EPZtJ)ICyZ`beNuIyuMZSkj>GiWG>rWrAtuEtR`Pw5& zkjWjJK1%x*g#M+;3dYNSDKmCX*%Y_2Pv7p{kHS7_OKC{*Ydn!=Bk~RGRLIxPF$<8& zlNytHlV*}WA?+ufB;6&+5lMeZ`AEY1Pa|8r;>MSZu-Teig=4E>j$FTuU?~ejc zt5J4i{FApDkI!>EIrNw78<-Nv6*kfn;}R&9ZI6niI8sB>m5tclVO9-v->}zE858BK z&`+T4Z%XO?-c3yjWQWGH^p^%#>>g&tP}ayIk*u#tXe672%2CR%Wc5J4txZ{mk>uMV zGG2x86UJ9Qiwl!&q43C>S01u;)UkEmcucMbLVaq88{&Lrp-or0>IvC3)Af14H#YcKc0=9IDT|aq-Wk@?Be#j&=lEd5m2?25xIl6;+VV?{U5(f!`0)!&^-XpUE|u#vutqxVPH8H&CuN^Mg3 zkGk5BI*>gCvU^r$P>GPj)})LyJ(jpqi5K}TI{D_UE~(wgA$6+jz^+xv*NG%wU8nXu zm#-Mf7mB4`IMXapSJj zcF3cc$wS77huxp3$6fngw7g{{-}RI8Bhua(8Kv|ZKq*rKeV=U4^GNfn7f@0=s~Si8 zfOLd(my|h+OCfI^$*!D}v)q?V$}nC%QhUKE(oE6{(vPG} zxtzaBq?V+?r0JxONneo8kp3j)&FwtbAax;)BP}3pBmG25o5y*{N2);TLK;t6O!}Pk zJ?VE+ro7H`EU7-J2Wc|tL(&(dlccQqoWC}t7f2IG^GK^nG7Fa{-!co2^t}5p(pEB~ zkNy&BO+#m4t7m8vzRugokp32-9VaW`9bP+^x{Y|&CZRIxlQ(FS=TE3wJcQ?Ti1(a{ zmj`4=!eXH3jZIcMWcDvB9Zw*hoyW>=i6@Iws=G<6*9omZ$wRO8^)aDUnOh5xT?3G- zco&Asj+EhyHvu%zczK)g9-LNE$ZDhHA>V$NZ=XmC`7+9b^U(K$_BbT1NZkWeX$^dae25>G<)72B3nzCtU#PEyD( z%Sk;;sPr(s#yG~*f&MP+L_?qAC~XaW2D0}Wk~Y%uO5c!pUmGgN*dPg+6d=)>!U?!Wsg zUpP30w6+y)g1$1j$sMVzM#(!NNejBx$^iPtq|jeG`reSVjI@@tptNeFbtJi8kl)nP z?>N~umvyeE@GhP$vwpwAhGs)qj++vwf>G*%p=a5{q^@-TvnvjHk-~b(S}b&b6{jq0 z_R20bUX$^pHgrktcN|(F)ZTN-Dnw`4?3$a@z4X&T2(@=HV?nmx%Zjzsfvlj-Mm$^6 zPf15e&s}uCRUvDtR}uQWdE4oC(u6D_^{c6uB!v=UdyyWMvw#vBlJBNme?#5>4Ltd} zL@~s(C5UuiCf`^sjd=Fh;z*rHeMqm7-XXnD+D1A^xG{ie#SWNzJO9n(gt4Y||Yg?P3$^jGlgHB^5E z&r)L2A;h!2cyHnaZX_(9;C|`Puq^W164z*J^cZ%dnIrlGHhV;gint@sK*~dsFUZSx z1l-8+$MtTv;5U0vB@=0VLi;IkT;Cv9mPogBH6C6 zR53+e39^wM1KHgU)j>D=>OS5Yl-rcPC&-=^^0a<1Y_?SLYiXlsn@d^?vh5~&^CmZP zZ8@8?1MzIH+t0L-;-xF*@+|X@dPPzZg1HJh*R@&@XALgtYegYFDJSts2Qz3-KDnYlXXb zX4ur&q}8yBYFZd9s=!zoaL>pZ8CGA@850mEXmihSF~`NAxLZm!Z?3Q--9qN|#Qk z&c(A$fzAE~l*E(u16gN~-xHBK)#uC=~x{9@=Z$XH>VOdIKlB8^x2&NZv?7wN2sRDwvJ{W5N5B&CWJuOi~vUqX_2 zp^-5vw<$qBthLx9*Q1oZGD$o=>OB_k$RovzWP26)mU)P@@-;-=bL`g@<(r<7zCb9U zveKsS4DGWvx%*6*4qv`8CD68-hQ#0RD4#v@QkW;&Yek~6&Zd83sh&w8UoVVQyOCPq zQFv(-@5m#ijTEmh(zb|~b~kKx43py(+aZQV%Ht?PpNr@3u_thT#Iucst$RG%N!a?t zvqj3|VQo9OW1(<4cSPku_G?=Y>m^d@8^X&#Q_>1}3&PGBnlq0cAZr^&+jQFGZH^_d z**7h2r*QpXJ#4m@>}T3DBz-0iHTm9#ZDhQ<`cK#*)mo%{A2wd3wEu2f&GOjy8n3Qq z!!{|N?GkL$jZN>Awe%-#sVX>|-YIKC^*&llc^O)gr1y~8P`y*uQayy)-J~+=MXIYE zh&L-<`O;vFSY&N@`gO|8RP`!}-SbqkqU+<8K(-IHAw{}I^+f0g#@{fI-B}}h0>{Gk zal8`fEB3m0DP(<8u066U`QXqa$YXQ7JR;SG?7FH{$sJpy@;$8WX?XcOUcOUd`!b#_ zQoM)FBT_th8#Pk<{(IKUWmQ~O&t=VA*3ln!&0KcYe2*GBU}{MAzg&jRUMu98(u3PP z(vzAR6TlqP`X5vaC>VQG;e0W2+{o{GZXXjM2DTgrykNQ^`~!_(~3q zR>d~BInl?o~Fo-8z4&B&A-_P3y(N`n+3l@=PU66Z+? zdlIOp(ji4irH4kVCV5iB-W2Mo3`h}D8KKc?VV<c7kUKtQczE2LyC~f4vkjz3q1<^(@;<4Kni?q z8yc+|6v_(wGf+?ELW+>e4UJX}3uTAB5!6$8kRqh=LZemVLOEe?0`*h@qzI{k&}h}U zP;S_}Ks{9mDe!9~&}h}QP+r)(K|NJO<%7K_G+K2plpppUP)`+ur;sWRjaEGi6@J?Q9mI+0lgk>VsQ=?U7l=C%cw3<}(DcIkD zdTNZS0{d8Kv^rO;D(vT>o*JjB!9E@utu7R+4*Nx@rzWc!uv{uu6PC+RPrajR!E&Wo zZCI{CJ+(l^A?-qFv?^G<4(x@Xo?4{p!oC=aqb^<#_7YG}EmQSj{{R}T9xMJd>?NU| z`cO51{Ud0!dZzd@us4KyYPo6%`wD2ZYE--t?2VzGTB#bt{xKAF7~2H)oKR1#Li>c& zCs5R6Y%|z%Lp`+`Z4y#zpy;=;EnqJN_0(FlLrATIMyoQhtza(;_0)RQJ-&1Y#h#|v zXJIb~_0$H{2KJ56XjMM;IoK;eJ+(=-g?%$LTGfkf2YY>}r?#l}uy2K;KgV`}y$RG) z+f+x`KZ8cArm@e%-VExg?Wz;(pF^Wn^VrU?w}5(Thw1|R7tmf8sHe`U z;jnCu9RbT0sHe`Wkw|+18m(%UeHHdvP)}V{qhP-TjaIeGj)pxB>Z!{(GeYVLG+Nau zI|lZ;P)}XOnGsUgplHFeuftv+>Z$8EKSJsTG+I4fc0BA2pq{#=CcyGc*@>_;gnH^X zH3>0qLvenUeFOIMP*44iGbyC*KyiMRodWwssHg6!sjyrsI}Mi0P){WYO-IZqD9*C7 zZ^C{Rit9*d2JA7=XmzdZTd-e;dMaUPCM-9~z75MwsHc*KW+7%WXtcUhWj5@8Ks}W@ z^bYK4pwVi7?RQ~60QFSb&>UF4sXZ5#gHT*SLi1p`Ui&>*Za_ViF*F}(GeM)(&DslK z{{`x)tf7UlXM;woByo#iPYU%^_RwP3b3mh2vbgtQPY(4|&d?Irb3vn3hPb7$XM}nx zcW4>xd7!w$#(e<$BT!G}4SfiEK4`Sc7WWbC*`c1wA6gE30VvM>xD~MHgnFuAXeI20 zpwVi3+{dtg4)s*w&??xAK%>=;xKCjJ0_v$Uq1CYb6t@PJvrtc!4Xs7YC!o>l=eTvS zpM!d;TxdP)<)P8)eB7t7Ux0e5LTCf*6`|4UV%$d9FF`$3DYOapC!x{ma@=OvuRuLj zHM9lxYS3u)T%E13w}pDDdT1N$HK5U|U7gQhZx8iU&Cqt(YeA#ci*-JSeE`%`wL?2# zkAp_5fpxxseGnAatk6zq-Oz4?)`NPgerON)X{e_fg!Y1;fqJT8Xdk!{)KiT^2f$6B zo@yF82yO<&RV;J}+yaWLRp>CZRpZyLAE8zZ6PrVqr z1|9(Q)WFaU=#bDaundKI>ebLK@F*y*gQ45t*Pxyn8@dC29g6E+=q`9X)Ke2e_rMdO zo_ZsMKWZ|>Q&U1dcq-IW(?VhJbf~A^3`K!wKrvQ_V!)q6F+PV9fxm!aOb#Uh?}B0+ z4kZJB3H8*TPzvx@P>jZ*RN$|np4t~m1Ktny)PYbs@HbG5#-R-0@1UMK9Lfa#9*WU8 zlo|X36eDmb3;0JUM%_?0@Npr#ULow2Z@_>JWdg{+mKJY!Lr+lvf zIDlea>lFegfMQPT6#+*>Jr&~>11E%fDv?(LoEYkZyEQ z4RC%a=7(M_a6u^Ma$X#`9Mn_gy}IBEP)}9y>O-q~4WQM$hOk$Mda8!k7+e$TsajrB zaBZlk;=JbII#8TbUQ2L2D9$ObHTY>L&MB`A_!%h9DX%TK5ftZ?*B;yiik|Ov1b2dZ zsZxH~5Ae%S%GaKs~kC8w7pd8w|@5sHc{CL&3|Sp8CLh8M?w74$DfYr#|*Zf>%K?NAgBN*LbhN zvKH#8b>3L;dZ?#9^~QlWKs~k5n*iPf_0(~168HqvQzyO2;8Rdsv;3*h7=Jo6p+5um zL{Lv9_Gf~VKykJ5XMvMJJ@vT%4z!d%2bR)MPsRH4pk@5|(6atQ=o9{8XgPlgw7kCz zTEYJiTG3w)t>mwSKIyN5R`ypzpYqp2tN81oRs9XnYW^l@b$<)AhQAG3)87uQSm+1-IOvD|1n5WpB7pzHkk(DnX8=%@Z-=mviYbfdovy2<|#y4hb2-Qur=ZuM6|xB07~ zpZRN{+x_*>&;1S19sVZh7ycILPJbJ8m%kml+us5G(%%W)e z`3Io;{e#d0{vqf${$c1r{|NM3|0wj3e+>Gae*${gKL!2XKLb7DpN0P5pMxItFF=3v zFF}v_SD?rJYtR$^4d_Y#7w9Sf7WA}#8+yjS1O3Ur3q9-KgZ}J?eB2B8I04joKMcL# zM?o+8G0;nXBIsp53G|Ae40_d10lns@f?oI2KyUczpf~*t&|mya&|m$`&|7{M=x=^D z=xsj-^mjiO^p2kg`iGwnde<)i{nIZ5z2_H!s-PG&6qJB^K}o0|l!699EHoUHg(e8f zL8F2S(CDBNG$yDFO&C;xCJL%S69+Y*NrGC?q(K}sSx^_6Jg5&%5j23N3>rdH1&yJp zgQn0lL33!@pd~b2&>EUPXamgS|At&Ef~B8EfkD}77oTi ziv$y(MT1GuV!>o+@n9;nL@*utSTF-xGMEW{JeUP76}$s29n68o2J@h0g89(0!9wU0 z!D48+U!DSH4bW=ACTR6w3$#YC z4O%nU4y_gJfYuInLgRwn&^o~$Xx(5hv|g|eT0b}deL6S@Z4exSJ`)^!42qh!7tFZ!7XUJ z;5M{hfWJxLZ=6

    ); } From 5b0ed48b1dffb03a9574c2a688014e9221d5a5c0 Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Wed, 31 Oct 2018 09:45:17 -0700 Subject: [PATCH 076/530] React helmet (#615) * Move render helper functions to more generic namespace * Add react-helmet support * Fix field naming convention This is what happens when you contribute to c# projects with c++ naming conventions at work :) * Remove razor language hint * Fix render error in emotion demo * Fix tests * Fix tests --- site/jekyll/features/css-in-js.md | 6 +- site/jekyll/features/react-helmet.md | 49 +++++++++++++++ src/React.AspNet/HtmlHelperExtensions.cs | 2 +- src/React.Core/IReactComponent.cs | 4 +- src/React.Core/IRenderFunctions.cs | 48 ++++++++++++++ src/React.Core/ReactComponent.cs | 4 +- .../EmotionFunctions.cs | 6 +- .../RenderFunctions/ReactHelmetFunctions.cs | 45 +++++++++++++ .../ReactJssFunctions.cs | 6 +- .../StyledComponentsFunctions.cs | 8 +-- ...derFunctions.cs => RenderFunctionsBase.cs} | 22 +++---- src/React.Router/HtmlHelperExtensions.cs | 2 +- src/React.Router/ReactRouterComponent.cs | 2 +- src/React.Router/ReactRouterFunctions.cs | 6 +- .../Content/components/emotion.jsx | 16 +++-- .../Content/components/expose-components.js | 1 + .../Content/components/home.jsx | 32 ++++++---- .../Content/components/react-jss.jsx | 12 +++- .../Content/components/styled-components.jsx | 23 ++++--- .../Views/Home/Index.cshtml | 6 +- .../Views/Shared/_Layout.cshtml | 2 +- .../package-lock.json | 63 ++++++++++++++----- src/React.Sample.Webpack.CoreMvc/package.json | 3 +- tests/React.Tests/Core/ReactComponentTest.cs | 18 +++--- .../Mvc/HtmlHelperExtensionsTests.cs | 10 +-- 25 files changed, 301 insertions(+), 95 deletions(-) create mode 100644 site/jekyll/features/react-helmet.md create mode 100644 src/React.Core/IRenderFunctions.cs rename src/React.Core/{StylesheetHelpers => RenderFunctions}/EmotionFunctions.cs (85%) create mode 100644 src/React.Core/RenderFunctions/ReactHelmetFunctions.cs rename src/React.Core/{StylesheetHelpers => RenderFunctions}/ReactJssFunctions.cs (91%) rename src/React.Core/{StylesheetHelpers => RenderFunctions}/StyledComponentsFunctions.cs (90%) rename src/React.Core/{RenderFunctions.cs => RenderFunctionsBase.cs} (84%) diff --git a/site/jekyll/features/css-in-js.md b/site/jekyll/features/css-in-js.md index 0f5511027..2e4f78bc4 100644 --- a/site/jekyll/features/css-in-js.md +++ b/site/jekyll/features/css-in-js.md @@ -21,7 +21,7 @@ Add the render helper to the call to `Html.React`: ``` @using React.AspNet -@using React.StylesheetHelpers +@using React.RenderFunctions @{ var styledComponentsFunctions = new StyledComponentsFunctions(); @@ -98,7 +98,7 @@ Add the render helper to the call to `Html.React`: ``` @using React.AspNet -@using React.StylesheetHelpers +@using React.RenderFunctions @{ var reactJssFunctions = new ReactJssFunctions(); @@ -187,7 +187,7 @@ Add the render helper to the call to `Html.React`: ``` @using React.AspNet -@using React.StylesheetHelpers +@using React.RenderFunctions @Html.React("RootComponent", new { exampleProp = "a" }, renderFunctions: new EmotionFunctions()) ``` diff --git a/site/jekyll/features/react-helmet.md b/site/jekyll/features/react-helmet.md new file mode 100644 index 000000000..da639a9cf --- /dev/null +++ b/site/jekyll/features/react-helmet.md @@ -0,0 +1,49 @@ +--- +layout: docs +title: React Helmet +--- + +Just want to see the code? Check out the [sample project](https://github.com/reactjs/React.NET/tree/master/src/React.Sample.Webpack.CoreMvc). + +React Helmet is a library that allows setting elements inside the `` tag from anywhere in the render tree. + +Make sure ReactJS.NET is up to date. You will need at least ReactJS.NET 4.0 (which is in public beta at the time of writing). + +Expose React Helmet as `global.Helmet`: + +```js +require('expose-loader?Helmet!react-helmet'); +``` + +Add the render helper to the call to `Html.React`: + +``` +@using React.AspNet +@using React.RenderFunctions + +@{ + var helmetFunctions = new ReactHelmetFunctions(); +} + +@Html.React("RootComponent", new { exampleProp = "a" }, renderFunctions: helmetFunctions) + +@{ + ViewBag.HelmetTitle = helmetFunctions.RenderedHelmet.GetValueOrDefault("title"); +} +``` + +In your layout file, render the helmet title that is now in the ViewBag: + +``` + + + + @Html.Raw(ViewBag.HelmetTitle) + + @Html.Raw(ViewBag.ServerStyles) + + + @RenderBody() + + +``` diff --git a/src/React.AspNet/HtmlHelperExtensions.cs b/src/React.AspNet/HtmlHelperExtensions.cs index 41bce019e..9752e3bd1 100644 --- a/src/React.AspNet/HtmlHelperExtensions.cs +++ b/src/React.AspNet/HtmlHelperExtensions.cs @@ -65,7 +65,7 @@ public static IHtmlString React( bool serverOnly = false, string containerClass = null, Action exceptionHandler = null, - RenderFunctions renderFunctions = null + IRenderFunctions renderFunctions = null ) { return new ActionHtmlString(writer => diff --git a/src/React.Core/IReactComponent.cs b/src/React.Core/IReactComponent.cs index 243dc476c..0715c4668 100644 --- a/src/React.Core/IReactComponent.cs +++ b/src/React.Core/IReactComponent.cs @@ -56,7 +56,7 @@ public interface IReactComponent /// A custom exception handler that will be called if a component throws during a render. Args: (Exception ex, string componentName, string containerId) /// Functions to call during component render /// HTML - string RenderHtml(bool renderContainerOnly = false, bool renderServerOnly = false, Action exceptionHandler = null, RenderFunctions renderFunctions = null); + string RenderHtml(bool renderContainerOnly = false, bool renderServerOnly = false, Action exceptionHandler = null, IRenderFunctions renderFunctions = null); /// /// Renders the JavaScript required to initialise this component client-side. This will @@ -76,7 +76,7 @@ public interface IReactComponent /// A custom exception handler that will be called if a component throws during a render. Args: (Exception ex, string componentName, string containerId) /// Functions to call during component render /// HTML - void RenderHtml(TextWriter writer, bool renderContainerOnly = false, bool renderServerOnly = false, Action exceptionHandler = null, RenderFunctions renderFunctions = null); + void RenderHtml(TextWriter writer, bool renderContainerOnly = false, bool renderServerOnly = false, Action exceptionHandler = null, IRenderFunctions renderFunctions = null); /// /// Renders the JavaScript required to initialise this component client-side. This will diff --git a/src/React.Core/IRenderFunctions.cs b/src/React.Core/IRenderFunctions.cs new file mode 100644 index 000000000..890eb5758 --- /dev/null +++ b/src/React.Core/IRenderFunctions.cs @@ -0,0 +1,48 @@ +using System; + +namespace React +{ + /// + /// Functions to execute during a render request. + /// These functions will share the same Javascript context, so state can be passed around via variables. + /// + public interface IRenderFunctions + { + /// + /// Executes before component render. + /// It takes a func that accepts a Javascript code expression to evaluate, which returns the result of the expression. + /// This is useful for setting up variables that will be referenced after the render completes. + /// The func to execute + /// + void PreRender(Func executeJs); + + + /// + /// Transforms the React.createElement expression. + /// This is useful for libraries like styled components which require wrapping the root component + /// inside a helper to generate a stylesheet. + /// Example transform: React.createElement(Foo, ...) => wrapComponent(React.createElement(Foo, ...)) + /// + /// The Javascript expression to wrap + /// A wrapped expression + string WrapComponent(string componentToRender); + + + /// + /// Transforms the compiled rendered component HTML + /// This is useful for libraries like emotion which take rendered component HTML and output the transformed HTML plus additional style tags + /// + /// The component HTML + /// A wrapped expression + string TransformRenderedHtml(string input); + + + /// + /// Executes after component render. + /// It takes a func that accepts a Javascript code expression to evaluate, which returns the result of the expression. + /// This is useful for reading computed state, such as generated stylesheets or a router redirect result. + /// + /// The func to execute + void PostRender(Func executeJs); + } +} diff --git a/src/React.Core/ReactComponent.cs b/src/React.Core/ReactComponent.cs index 2bd708631..ad6fa472e 100644 --- a/src/React.Core/ReactComponent.cs +++ b/src/React.Core/ReactComponent.cs @@ -127,7 +127,7 @@ public ReactComponent(IReactEnvironment environment, IReactSiteConfiguration con /// A custom exception handler that will be called if a component throws during a render. Args: (Exception ex, string componentName, string containerId) /// Functions to call during component render /// HTML - public virtual string RenderHtml(bool renderContainerOnly = false, bool renderServerOnly = false, Action exceptionHandler = null, RenderFunctions renderFunctions = null) + public virtual string RenderHtml(bool renderContainerOnly = false, bool renderServerOnly = false, Action exceptionHandler = null, IRenderFunctions renderFunctions = null) { return GetStringFromWriter(renderHtmlWriter => RenderHtml(renderHtmlWriter, renderContainerOnly, renderServerOnly, exceptionHandler, renderFunctions)); } @@ -142,7 +142,7 @@ public virtual string RenderHtml(bool renderContainerOnly = false, bool renderSe /// A custom exception handler that will be called if a component throws during a render. Args: (Exception ex, string componentName, string containerId) /// Functions to call during component render /// HTML - public virtual void RenderHtml(TextWriter writer, bool renderContainerOnly = false, bool renderServerOnly = false, Action exceptionHandler = null, RenderFunctions renderFunctions = null) + public virtual void RenderHtml(TextWriter writer, bool renderContainerOnly = false, bool renderServerOnly = false, Action exceptionHandler = null, IRenderFunctions renderFunctions = null) { if (!_configuration.UseServerSideRendering) { diff --git a/src/React.Core/StylesheetHelpers/EmotionFunctions.cs b/src/React.Core/RenderFunctions/EmotionFunctions.cs similarity index 85% rename from src/React.Core/StylesheetHelpers/EmotionFunctions.cs rename to src/React.Core/RenderFunctions/EmotionFunctions.cs index e9791e322..596be7c1d 100644 --- a/src/React.Core/StylesheetHelpers/EmotionFunctions.cs +++ b/src/React.Core/RenderFunctions/EmotionFunctions.cs @@ -1,13 +1,13 @@ using System; using System.Text; -namespace React.StylesheetHelpers +namespace React.RenderFunctions { /// /// Render functions for Emotion. https://github.com/emotion-js/emotion /// Requires `emotion-server` to be exposed globally as `EmotionServer` /// - public class EmotionFunctions : RenderFunctions + public class EmotionFunctions : RenderFunctionsBase { /// /// Constructor. Supports chained calls to multiple render functions by passing in a set of functions that should be called next. @@ -15,7 +15,7 @@ public class EmotionFunctions : RenderFunctions /// Supports null as an argument. /// /// The chained render functions to call - public EmotionFunctions(RenderFunctions renderFunctions = null) + public EmotionFunctions(IRenderFunctions renderFunctions = null) : base(renderFunctions) { } diff --git a/src/React.Core/RenderFunctions/ReactHelmetFunctions.cs b/src/React.Core/RenderFunctions/ReactHelmetFunctions.cs new file mode 100644 index 000000000..8ec587b50 --- /dev/null +++ b/src/React.Core/RenderFunctions/ReactHelmetFunctions.cs @@ -0,0 +1,45 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using Newtonsoft.Json; + +namespace React.RenderFunctions +{ + /// + /// Render functions for React-Helmet. https://github.com/nfl/react-helmet + /// Requires `react-helmet` to be exposed globally as `Helmet` + /// + public class ReactHelmetFunctions : RenderFunctionsBase + { + /// + /// Constructor. Supports chained calls to multiple render functions by passing in a set of functions that should be called next. + /// The functions within the provided RenderFunctions will be called *after* this instance's. + /// Supports null as an argument. + /// + /// The chained render functions to call + public ReactHelmetFunctions(IRenderFunctions renderFunctions = null) + : base(renderFunctions) + { + } + + /// + /// Dictionary of Helmet properties, rendered as raw HTML tags + /// Available keys: "base", "bodyAttributes", "htmlAttributes", "link", "meta", "noscript", "script", "style", "title" + /// + public Dictionary RenderedHelmet { get; private set; } + + /// + /// Implementation of PostRender + /// + /// + protected override void PostRenderCore(Func executeJs) + { + var helmetString = executeJs(@" +var helmetResult = Helmet.default.renderStatic(); +JSON.stringify(['base', 'bodyAttributes', 'htmlAttributes', 'link', 'meta', 'noscript', 'script', 'style', 'title'] + .reduce((mappedResults, helmetKey) => Object.assign(mappedResults, { [helmetKey]: helmetResult[helmetKey] && helmetResult[helmetKey].toString() }), {}));"); + + RenderedHelmet = JsonConvert.DeserializeObject>(helmetString); + } + } +} diff --git a/src/React.Core/StylesheetHelpers/ReactJssFunctions.cs b/src/React.Core/RenderFunctions/ReactJssFunctions.cs similarity index 91% rename from src/React.Core/StylesheetHelpers/ReactJssFunctions.cs rename to src/React.Core/RenderFunctions/ReactJssFunctions.cs index 57edfa4ea..8442c3469 100644 --- a/src/React.Core/StylesheetHelpers/ReactJssFunctions.cs +++ b/src/React.Core/RenderFunctions/ReactJssFunctions.cs @@ -1,12 +1,12 @@ using System; -namespace React.StylesheetHelpers +namespace React.RenderFunctions { /// /// Render functions for React-JSS. https://github.com/cssinjs/react-jss /// Requires `react-jss` to be exposed globally as `ReactJss` /// - public class ReactJssFunctions : RenderFunctions + public class ReactJssFunctions : RenderFunctionsBase { /// /// Constructor. Supports chained calls to multiple render functions by passing in a set of functions that should be called next. @@ -14,7 +14,7 @@ public class ReactJssFunctions : RenderFunctions /// Supports null as an argument. /// /// The chained render functions to call - public ReactJssFunctions(RenderFunctions renderFunctions = null) + public ReactJssFunctions(IRenderFunctions renderFunctions = null) : base(renderFunctions) { } diff --git a/src/React.Core/StylesheetHelpers/StyledComponentsFunctions.cs b/src/React.Core/RenderFunctions/StyledComponentsFunctions.cs similarity index 90% rename from src/React.Core/StylesheetHelpers/StyledComponentsFunctions.cs rename to src/React.Core/RenderFunctions/StyledComponentsFunctions.cs index 10b10aeb1..23935069e 100644 --- a/src/React.Core/StylesheetHelpers/StyledComponentsFunctions.cs +++ b/src/React.Core/RenderFunctions/StyledComponentsFunctions.cs @@ -1,12 +1,12 @@ using System; -namespace React.StylesheetHelpers +namespace React.RenderFunctions { /// /// Render functions for styled components. https://github.com/styled-components/styled-components /// Requires `styled-components` to be exposed globally as `Styled` /// - public class StyledComponentsFunctions : RenderFunctions + public class StyledComponentsFunctions : RenderFunctionsBase { /// /// Constructor. Supports chained calls to multiple render functions by passing in a set of functions that should be called next. @@ -14,11 +14,11 @@ public class StyledComponentsFunctions : RenderFunctions /// Supports null as an argument. /// /// The chained render functions to call - public StyledComponentsFunctions(RenderFunctions renderFunctions = null) + public StyledComponentsFunctions(IRenderFunctions renderFunctions = null) : base(renderFunctions) { } - + /// /// HTML style tag containing the rendered styles /// diff --git a/src/React.Core/RenderFunctions.cs b/src/React.Core/RenderFunctionsBase.cs similarity index 84% rename from src/React.Core/RenderFunctions.cs rename to src/React.Core/RenderFunctionsBase.cs index ad80aaeab..6bcb26d63 100644 --- a/src/React.Core/RenderFunctions.cs +++ b/src/React.Core/RenderFunctionsBase.cs @@ -6,9 +6,9 @@ namespace React /// Functions to execute during a render request. /// These functions will share the same Javascript context, so state can be passed around via variables. /// - public abstract class RenderFunctions + public abstract class RenderFunctionsBase : IRenderFunctions { - private readonly RenderFunctions m_renderFunctions; + private readonly IRenderFunctions _renderFunctions; /// /// Constructor. Supports chained calls to multiple render functions by passing in a set of functions that should be called next. @@ -16,9 +16,9 @@ public abstract class RenderFunctions /// Supports null as an argument. /// /// The chained render functions to call - protected RenderFunctions(RenderFunctions renderFunctions) + protected RenderFunctionsBase(IRenderFunctions renderFunctions) { - m_renderFunctions = renderFunctions; + _renderFunctions = renderFunctions; } /// @@ -60,10 +60,10 @@ protected virtual void PostRenderCore(Func executeJs) /// This is useful for setting up variables that will be referenced after the render completes. /// The func to execute /// - public virtual void PreRender(Func executeJs) + public void PreRender(Func executeJs) { PreRenderCore(executeJs); - m_renderFunctions?.PreRender(executeJs); + _renderFunctions?.PreRender(executeJs); } @@ -77,9 +77,9 @@ public virtual void PreRender(Func executeJs) /// A wrapped expression public string WrapComponent(string componentToRender) { - return m_renderFunctions == null + return _renderFunctions == null ? WrapComponentCore(componentToRender) - : m_renderFunctions.WrapComponent(WrapComponentCore(componentToRender)); + : _renderFunctions.WrapComponent(WrapComponentCore(componentToRender)); } @@ -91,9 +91,9 @@ public string WrapComponent(string componentToRender) /// A wrapped expression public string TransformRenderedHtml(string input) { - return m_renderFunctions == null + return _renderFunctions == null ? TransformRenderedHtmlCore(input) - : m_renderFunctions.TransformRenderedHtml(TransformRenderedHtmlCore(input)); + : _renderFunctions.TransformRenderedHtml(TransformRenderedHtmlCore(input)); } @@ -106,7 +106,7 @@ public string TransformRenderedHtml(string input) public void PostRender(Func executeJs) { PostRenderCore(executeJs); - m_renderFunctions?.PostRender(executeJs); + _renderFunctions?.PostRender(executeJs); } } } diff --git a/src/React.Router/HtmlHelperExtensions.cs b/src/React.Router/HtmlHelperExtensions.cs index c7a0f354a..306e85cab 100644 --- a/src/React.Router/HtmlHelperExtensions.cs +++ b/src/React.Router/HtmlHelperExtensions.cs @@ -97,7 +97,7 @@ public static IHtmlString ReactRouter( bool serverOnly = false, string containerClass = null, Action contextHandler = null, - RenderFunctions renderFunctions = null + IRenderFunctions renderFunctions = null ) { try diff --git a/src/React.Router/ReactRouterComponent.cs b/src/React.Router/ReactRouterComponent.cs index bfe51c182..7eecf88df 100644 --- a/src/React.Router/ReactRouterComponent.cs +++ b/src/React.Router/ReactRouterComponent.cs @@ -53,7 +53,7 @@ string path public virtual ExecutionResult RenderRouterWithContext( bool renderContainerOnly = false, bool renderServerOnly = false, - RenderFunctions renderFunctions = null + IRenderFunctions renderFunctions = null ) { var reactRouterFunctions = new ReactRouterFunctions(renderFunctions: renderFunctions); diff --git a/src/React.Router/ReactRouterFunctions.cs b/src/React.Router/ReactRouterFunctions.cs index 2b2dc2110..07985e3b2 100644 --- a/src/React.Router/ReactRouterFunctions.cs +++ b/src/React.Router/ReactRouterFunctions.cs @@ -5,7 +5,7 @@ namespace React.Router /// /// Render functions for React Router /// - public class ReactRouterFunctions : RenderFunctions + public class ReactRouterFunctions : RenderFunctionsBase { /// /// Constructor. Supports chained calls to multiple render functions by passing in a set of functions that should be called next. @@ -13,7 +13,7 @@ public class ReactRouterFunctions : RenderFunctions /// Supports null as an argument. /// /// The chained render functions to call - public ReactRouterFunctions(RenderFunctions renderFunctions = null) + public ReactRouterFunctions(IRenderFunctions renderFunctions = null) : base(renderFunctions) { } @@ -38,7 +38,7 @@ protected override void PreRenderCore(Func executeJs) /// protected override void PostRenderCore(Func executeJs) { - ReactRouterContext = executeJs("JSON.stringify(context);"); + ReactRouterContext = executeJs("JSON.stringify(context);"); } } } diff --git a/src/React.Sample.Webpack.CoreMvc/Content/components/emotion.jsx b/src/React.Sample.Webpack.CoreMvc/Content/components/emotion.jsx index 48eef5e8d..ef0555e1f 100644 --- a/src/React.Sample.Webpack.CoreMvc/Content/components/emotion.jsx +++ b/src/React.Sample.Webpack.CoreMvc/Content/components/emotion.jsx @@ -1,5 +1,6 @@ -import React from 'react'; +import React, { Fragment } from 'react'; import styled from 'react-emotion'; +import { Helmet } from 'react-helmet'; const BlueTitle = styled('h1')` color: #222; @@ -20,9 +21,14 @@ const BlueTitle = styled('h1')` export function EmotionDemo() { return ( - - Hello from{' '} - emotion! - + + + ReactJS.NET Demos | Emotion + + + Hello from{' '} + emotion! + + ); } diff --git a/src/React.Sample.Webpack.CoreMvc/Content/components/expose-components.js b/src/React.Sample.Webpack.CoreMvc/Content/components/expose-components.js index f04919992..997c2198b 100644 --- a/src/React.Sample.Webpack.CoreMvc/Content/components/expose-components.js +++ b/src/React.Sample.Webpack.CoreMvc/Content/components/expose-components.js @@ -6,3 +6,4 @@ require('expose-loader?RootComponent!./home.jsx'); require('expose-loader?Styled!styled-components'); require('expose-loader?ReactJss!react-jss'); require('expose-loader?EmotionServer!emotion-server'); +require('expose-loader?Helmet!react-helmet'); diff --git a/src/React.Sample.Webpack.CoreMvc/Content/components/home.jsx b/src/React.Sample.Webpack.CoreMvc/Content/components/home.jsx index 382fb51a7..a3f33ab8c 100644 --- a/src/React.Sample.Webpack.CoreMvc/Content/components/home.jsx +++ b/src/React.Sample.Webpack.CoreMvc/Content/components/home.jsx @@ -1,4 +1,4 @@ -import { Component } from 'react'; +import { Component, Fragment } from 'react'; import { Link, BrowserRouter, @@ -7,6 +7,7 @@ import { StaticRouter, Redirect, } from 'react-router-dom'; +import { Helmet } from 'react-helmet'; import { StyledComponentsDemo } from './styled-components.jsx'; import { EmotionDemo } from './emotion.jsx'; @@ -36,16 +37,21 @@ class Navbar extends Component { class HomePage extends Component { render() { return ( -

    - ReactJS.NET is 🔥🔥 -

    + + + ReactJS.NET Demos + +

    + ReactJS.NET is 🔥🔥 +

    +
    ); } } @@ -53,7 +59,7 @@ class HomePage extends Component { export default class HomeComponent extends Component { render() { const app = ( -
    + -
    + ); if (typeof window === 'undefined') { diff --git a/src/React.Sample.Webpack.CoreMvc/Content/components/react-jss.jsx b/src/React.Sample.Webpack.CoreMvc/Content/components/react-jss.jsx index f53082769..842133752 100644 --- a/src/React.Sample.Webpack.CoreMvc/Content/components/react-jss.jsx +++ b/src/React.Sample.Webpack.CoreMvc/Content/components/react-jss.jsx @@ -1,5 +1,6 @@ -import React from 'react'; +import React, { Fragment } from 'react'; import injectSheet from 'react-jss'; +import { Helmet } from 'react-helmet'; const styles = { demoTitle: { @@ -36,6 +37,13 @@ export class ReactJssDemo extends React.Component { } render() { - return ; + return ( + + + ReactJS.NET Demos | React-JSS + + ; + + ); } } diff --git a/src/React.Sample.Webpack.CoreMvc/Content/components/styled-components.jsx b/src/React.Sample.Webpack.CoreMvc/Content/components/styled-components.jsx index 9f10d02b6..913f54d99 100644 --- a/src/React.Sample.Webpack.CoreMvc/Content/components/styled-components.jsx +++ b/src/React.Sample.Webpack.CoreMvc/Content/components/styled-components.jsx @@ -1,6 +1,6 @@ -import React from 'react'; +import React, { Fragment } from 'react'; import styled from 'styled-components'; - +import { Helmet } from 'react-helmet'; const BlueTitle = styled.h1` color: #222; font-family: Helvetica, 'sans-serif'; @@ -20,12 +20,17 @@ const BlueTitle = styled.h1` export function StyledComponentsDemo() { return ( - - Hello from{' '} - - styled-components - - ! - + + + ReactJS.NET Demos | Styled Components + + + Hello from{' '} + + styled-components + + ! + + ); } diff --git a/src/React.Sample.Webpack.CoreMvc/Views/Home/Index.cshtml b/src/React.Sample.Webpack.CoreMvc/Views/Home/Index.cshtml index a9ae3cb02..0b867d35a 100644 --- a/src/React.Sample.Webpack.CoreMvc/Views/Home/Index.cshtml +++ b/src/React.Sample.Webpack.CoreMvc/Views/Home/Index.cshtml @@ -1,16 +1,18 @@ @using React.AspNet +@using React.RenderFunctions @using React.Router -@using React.StylesheetHelpers @{ Layout = "_Layout"; var emotionFunctions = new EmotionFunctions(); var styledComponentsFunctions = new StyledComponentsFunctions(emotionFunctions); var reactJssFunctions = new ReactJssFunctions(styledComponentsFunctions); + var helmetFunctions = new ReactHelmetFunctions(reactJssFunctions); } -@Html.ReactRouter("RootComponent", new { }, renderFunctions: reactJssFunctions) +@Html.ReactRouter("RootComponent", new { }, renderFunctions: helmetFunctions) @{ ViewBag.ServerStyles = styledComponentsFunctions.RenderedStyles + reactJssFunctions.RenderedStyles; + ViewBag.HelmetTitle = helmetFunctions.RenderedHelmet.GetValueOrDefault("title"); } @Html.ReactInitJavaScript() diff --git a/src/React.Sample.Webpack.CoreMvc/Views/Shared/_Layout.cshtml b/src/React.Sample.Webpack.CoreMvc/Views/Shared/_Layout.cshtml index 1b79d73ef..f241c9150 100644 --- a/src/React.Sample.Webpack.CoreMvc/Views/Shared/_Layout.cshtml +++ b/src/React.Sample.Webpack.CoreMvc/Views/Shared/_Layout.cshtml @@ -1,7 +1,7 @@ - React Router Sample + @Html.Raw(ViewBag.HelmetTitle) @Html.Raw(ViewBag.ServerStyles) diff --git a/src/React.Sample.Webpack.CoreMvc/package-lock.json b/src/React.Sample.Webpack.CoreMvc/package-lock.json index e9040f83b..df5088d2a 100644 --- a/src/React.Sample.Webpack.CoreMvc/package-lock.json +++ b/src/React.Sample.Webpack.CoreMvc/package-lock.json @@ -241,9 +241,9 @@ } }, "babel-core": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.0.tgz", - "integrity": "sha1-rzL3izGm/O8RnIew/Y2XU/A6C7g=", + "version": "6.26.3", + "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz", + "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==", "requires": { "babel-code-frame": "^6.26.0", "babel-generator": "^6.26.0", @@ -255,21 +255,21 @@ "babel-traverse": "^6.26.0", "babel-types": "^6.26.0", "babylon": "^6.18.0", - "convert-source-map": "^1.5.0", - "debug": "^2.6.8", + "convert-source-map": "^1.5.1", + "debug": "^2.6.9", "json5": "^0.5.1", "lodash": "^4.17.4", "minimatch": "^3.0.4", "path-is-absolute": "^1.0.1", - "private": "^0.1.7", + "private": "^0.1.8", "slash": "^1.0.0", - "source-map": "^0.5.6" + "source-map": "^0.5.7" } }, "babel-generator": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.0.tgz", - "integrity": "sha1-rBriAHC3n248odMmlhMFN3TyDcU=", + "version": "6.26.1", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", + "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", "requires": { "babel-messages": "^6.23.0", "babel-runtime": "^6.26.0", @@ -277,7 +277,7 @@ "detect-indent": "^4.0.0", "jsesc": "^1.3.0", "lodash": "^4.17.4", - "source-map": "^0.5.6", + "source-map": "^0.5.7", "trim-right": "^1.0.1" } }, @@ -487,7 +487,7 @@ }, "babel-plugin-syntax-flow": { "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-flow/-/babel-plugin-syntax-flow-6.18.0.tgz", + "resolved": "http://registry.npmjs.org/babel-plugin-syntax-flow/-/babel-plugin-syntax-flow-6.18.0.tgz", "integrity": "sha1-TDqyCiryaqIM0lmVw5jE63AxDI0=" }, "babel-plugin-syntax-jsx": { @@ -1365,6 +1365,11 @@ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" }, + "deep-equal": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz", + "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=" + }, "des.js": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz", @@ -1622,6 +1627,11 @@ "strip-eof": "^1.0.0" } }, + "exenv": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/exenv/-/exenv-1.2.2.tgz", + "integrity": "sha1-KueOhdmJQVhnCwPUe+wfA72Ru50=" + }, "expand-brackets": { "version": "0.1.5", "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", @@ -2220,8 +2230,8 @@ "bundled": true, "optional": true, "requires": { - "abbrev": "1.1.0", - "osenv": "0.1.4" + "abbrev": "1", + "osenv": "^0.1.4" } }, "npmlog": { @@ -3674,6 +3684,17 @@ "create-emotion-styled": "^9.2.8" } }, + "react-helmet": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/react-helmet/-/react-helmet-5.2.0.tgz", + "integrity": "sha1-qBgR3yExOm1VxfBYxK66XW89l6c=", + "requires": { + "deep-equal": "^1.0.1", + "object-assign": "^4.1.1", + "prop-types": "^15.5.4", + "react-side-effect": "^1.1.0" + } + }, "react-is": { "version": "16.5.2", "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.5.2.tgz", @@ -3725,6 +3746,15 @@ "warning": "^3.0.0" } }, + "react-side-effect": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/react-side-effect/-/react-side-effect-1.1.5.tgz", + "integrity": "sha512-Z2ZJE4p/jIfvUpiUMRydEVpQRf2f8GMHczT6qLcARmX7QRb28JDBTpnM2g/i5y/p7ZDEXYGHWg0RbhikE+hJRw==", + "requires": { + "exenv": "^1.2.1", + "shallowequal": "^1.0.1" + } + }, "read-pkg": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", @@ -3939,6 +3969,11 @@ "safe-buffer": "^5.0.1" } }, + "shallowequal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz", + "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==" + }, "shebang-command": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", diff --git a/src/React.Sample.Webpack.CoreMvc/package.json b/src/React.Sample.Webpack.CoreMvc/package.json index 5006943ae..86546f20b 100644 --- a/src/React.Sample.Webpack.CoreMvc/package.json +++ b/src/React.Sample.Webpack.CoreMvc/package.json @@ -7,7 +7,7 @@ "build": "webpack" }, "dependencies": { - "babel-core": "^6.26.0", + "babel-core": "^6.26.3", "babel-loader": "^7.1.2", "babel-plugin-add-module-exports": "^0.2.1", "babel-preset-env": "^1.6.1", @@ -18,6 +18,7 @@ "react": "^16.5.2", "react-dom": "^16.5.2", "react-emotion": "^9.2.12", + "react-helmet": "^5.2.0", "react-jss": "^8.6.1", "react-router-dom": "^4.2.2", "styled-components": "^3.4.5", diff --git a/tests/React.Tests/Core/ReactComponentTest.cs b/tests/React.Tests/Core/ReactComponentTest.cs index 01592928a..059d20567 100644 --- a/tests/React.Tests/Core/ReactComponentTest.cs +++ b/tests/React.Tests/Core/ReactComponentTest.cs @@ -187,7 +187,7 @@ public void RenderHtmlShouldAddClassToElement() var component = new ReactComponent(environment.Object, config.Object, reactIdGenerator.Object, "Foo", "container") { Props = new { hello = "World" }, - ContainerClass="test-class" + ContainerClass = "test-class" }; var result = component.RenderHtml(); @@ -269,7 +269,7 @@ public void TestEnsureComponentNameValid(string input, bool expected) } catch (ReactInvalidComponentException) { - isValid = false; + isValid = false; } Assert.Equal(expected, isValid); } @@ -387,12 +387,12 @@ public void ChainedRenderFunctionsCalled() Assert.Equal("postrender-result", chainedRenderFunctions.PostRenderResult); } - private sealed class TestRenderFunctions : RenderFunctions - { - public TestRenderFunctions(RenderFunctions renderFunctions = null) + private sealed class TestRenderFunctions : RenderFunctionsBase + { + public TestRenderFunctions(IRenderFunctions renderFunctions = null) : base(renderFunctions) - { - } + { + } public string PreRenderResult { get; private set; } public string PostRenderResult { get; private set; } @@ -416,6 +416,6 @@ protected override void PostRenderCore(Func executeJs) { PostRenderResult = executeJs("postrender();"); } - } - } + } + } } diff --git a/tests/React.Tests/Mvc/HtmlHelperExtensionsTests.cs b/tests/React.Tests/Mvc/HtmlHelperExtensionsTests.cs index 988d5c345..ce051ee85 100644 --- a/tests/React.Tests/Mvc/HtmlHelperExtensionsTests.cs +++ b/tests/React.Tests/Mvc/HtmlHelperExtensionsTests.cs @@ -38,7 +38,7 @@ public void ReactWithInitShouldReturnHtmlAndScript() var component = new Mock(); component.Setup(x => x.RenderHtml(It.IsAny(), false, false, null, null)) - .Callback((TextWriter writer, bool renderContainerOnly, bool renderServerOnly, Action exceptionHandler, RenderFunctions renderFunctions) => writer.Write("HTML")); + .Callback((TextWriter writer, bool renderContainerOnly, bool renderServerOnly, Action exceptionHandler, IRenderFunctions renderFunctions) => writer.Write("HTML")); component.Setup(x => x.RenderJavaScript(It.IsAny())).Callback((TextWriter writer) => writer.Write("JS")); @@ -77,7 +77,7 @@ public void ScriptNonceIsReturned() var component = new Mock(); component.Setup(x => x.RenderHtml(It.IsAny(), false, false, null, null)) - .Callback((TextWriter writer, bool renderContainerOnly, bool renderServerOnly, Action exceptionHandle, RenderFunctions renderFunctionsr) => writer.Write("HTML")).Verifiable(); + .Callback((TextWriter writer, bool renderContainerOnly, bool renderServerOnly, Action exceptionHandle, IRenderFunctions renderFunctions) => writer.Write("HTML")).Verifiable(); component.Setup(x => x.RenderJavaScript(It.IsAny())).Callback((TextWriter writer) => writer.Write("JS")).Verifiable(); @@ -128,7 +128,7 @@ public void EngineIsReturnedToPoolAfterRender() { var component = new Mock(); component.Setup(x => x.RenderHtml(It.IsAny(), false, false, null, null)) - .Callback((TextWriter writer, bool renderContainerOnly, bool renderServerOnly, Action exceptionHandler, RenderFunctions renderFunctions) => writer.Write("HTML")).Verifiable(); + .Callback((TextWriter writer, bool renderContainerOnly, bool renderServerOnly, Action exceptionHandler, IRenderFunctions renderFunctions) => writer.Write("HTML")).Verifiable(); var environment = ConfigureMockEnvironment(); environment.Setup(x => x.CreateComponent( @@ -158,7 +158,7 @@ public void ReactWithClientOnlyTrueShouldCallRenderHtmlWithTrue() { var component = new Mock(); component.Setup(x => x.RenderHtml(It.IsAny(), false, false, null, null)) - .Callback((TextWriter writer, bool renderContainerOnly, bool renderServerOnly, Action exceptionHandler, RenderFunctions renderFunctions) => writer.Write("HTML")).Verifiable(); + .Callback((TextWriter writer, bool renderContainerOnly, bool renderServerOnly, Action exceptionHandler, IRenderFunctions renderFunctions) => writer.Write("HTML")).Verifiable(); var environment = ConfigureMockEnvironment(); environment.Setup(x => x.CreateComponent( @@ -186,7 +186,7 @@ public void ReactWithServerOnlyTrueShouldCallRenderHtmlWithTrue() { var component = new Mock(); component.Setup(x => x.RenderHtml(It.IsAny(), false, false, null, null)) - .Callback((TextWriter writer, bool renderContainerOnly, bool renderServerOnly, Action exceptionHandler, RenderFunctions renderFunctions) => writer.Write("HTML")).Verifiable(); + .Callback((TextWriter writer, bool renderContainerOnly, bool renderServerOnly, Action exceptionHandler, IRenderFunctions renderFunctions) => writer.Write("HTML")).Verifiable(); var environment = ConfigureMockEnvironment(); environment.Setup(x => x.CreateComponent( From ff7c6140552124f6dc32a93dcd13086d3f9e6a2f Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Wed, 31 Oct 2018 23:03:41 -0700 Subject: [PATCH 077/530] Update to React 16.6.0 --- src/React.Core/package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/React.Core/package.json b/src/React.Core/package.json index b94902d22..60f508fc8 100644 --- a/src/React.Core/package.json +++ b/src/React.Core/package.json @@ -12,8 +12,8 @@ "gulp-uglify": "~1.5.3", "json-loader": "~0.5.4", "prop-types": "~15.6.0", - "react": "^16.5.2", - "react-dom": "^16.5.2", + "react": "~16.6.0", + "react-dom": "~16.6.0", "vinyl-named": "~1.1.0", "webpack": "~1.13.1", "webpack-stream": "~3.2.0" From df1af1ec5b5c3435457ddea45510a9148bcdf628 Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Wed, 31 Oct 2018 23:05:20 -0700 Subject: [PATCH 078/530] 4.0.0-beta5 --- build.proj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.proj b/build.proj index 9c367bd07..c47ad27be 100644 --- a/build.proj +++ b/build.proj @@ -11,7 +11,7 @@ of patent rights can be found in the PATENTS file in the same directory. 4 0 - 0-beta4 + 0-beta5 0 http://reactjs.net/packages/ $(MSBuildProjectDirectory)\tools\MSBuildTasks From 50737e740244c2b5c7bdf2c61031271866635cc0 Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Sat, 3 Nov 2018 23:01:56 -0700 Subject: [PATCH 079/530] Remove requirement for service provider to be returned in ConfigureServices None of the .NET core docs reference this, and it is only needed for this one check. See #601 --- .../ReactBuilderExtensions.cs | 19 ++----------------- src/React.Sample.Webpack.CoreMvc/Startup.cs | 4 ++-- 2 files changed, 4 insertions(+), 19 deletions(-) diff --git a/src/React.AspNet.Middleware/ReactBuilderExtensions.cs b/src/React.AspNet.Middleware/ReactBuilderExtensions.cs index d89091b56..55798c24c 100644 --- a/src/React.AspNet.Middleware/ReactBuilderExtensions.cs +++ b/src/React.AspNet.Middleware/ReactBuilderExtensions.cs @@ -3,7 +3,7 @@ * All rights reserved. * * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant + * LICENSE file in the root directory of this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. */ @@ -40,12 +40,10 @@ public static IApplicationBuilder UseReact( BabelFileOptions fileOptions = null ) { - EnsureServicesRegistered(app); - RegisterAspNetServices(React.AssemblyRegistration.Container, app.ApplicationServices); Initializer.Initialize(registerOptions => AsPerRequestSingleton( - app.ApplicationServices.GetService(), + app.ApplicationServices.GetService(), registerOptions )); @@ -79,19 +77,6 @@ TinyIoCContainer.RegisterOptions registerOptions ); } - /// - /// Ensures React services have been registered in the ASP.NET dependency injection container. - /// - /// ASP.NET application builder - private static void EnsureServicesRegistered(IApplicationBuilder app) - { - var registrations = app.ApplicationServices.GetService(); - if (registrations == null) - { - throw new ReactNotInitialisedException("Please call services.AddReact() before app.UseReact()."); - } - } - /// /// Registers required ASP.NET services in ReactJS.NET's TinyIoC container. This is used /// for ASP.NET services that are required by ReactJS.NET. diff --git a/src/React.Sample.Webpack.CoreMvc/Startup.cs b/src/React.Sample.Webpack.CoreMvc/Startup.cs index 659c7a232..fdb440cf4 100644 --- a/src/React.Sample.Webpack.CoreMvc/Startup.cs +++ b/src/React.Sample.Webpack.CoreMvc/Startup.cs @@ -20,7 +20,7 @@ public Startup(IConfiguration configuration) public IConfiguration Configuration { get; } // This method gets called by the runtime. Use this method to add services to the container. - public IServiceProvider ConfigureServices(IServiceCollection services) + public void ConfigureServices(IServiceCollection services) { services.AddMvc(); @@ -31,7 +31,7 @@ public IServiceProvider ConfigureServices(IServiceCollection services) services.AddSingleton(); // Build the intermediate service provider then return it - return services.BuildServiceProvider(); + services.BuildServiceProvider(); } // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. From 15227160a3eb415c12766d5f03bec2790a375dd9 Mon Sep 17 00:00:00 2001 From: Daniel Lo Nigro Date: Sun, 4 Nov 2018 18:32:12 -0800 Subject: [PATCH 080/530] Switch to MIT license (same as React) (#621) Fixes https://github.com/reactjs/React.NET/issues/524 Ref https://github.com/facebook/react/pull/10804 Ref https://github.com/facebook/react/pull/13593 --- LICENSE | 41 ++++++++----------- PATENTS | 33 --------------- src/Cassette.React/AssemblyRegistration.cs | 8 ++-- src/Cassette.React/BabelBundleProcessor.cs | 8 ++-- src/Cassette.React/BabelCompiler.cs | 8 ++-- src/Cassette.React/CassetteMSBuildStartup.cs | 8 ++-- .../InsertIntoPipelineJsxBundleProcessor.cs | 8 ++-- src/Cassette.React/JsxFileSearchModifier.cs | 8 ++-- src/Cassette.React/MSBuildUtils.cs | 8 ++-- src/Cassette.React/Properties/AssemblyInfo.cs | 8 ++-- .../ReactContainerConfiguration.cs | 8 ++-- .../AspNetFileSystem.cs | 8 ++-- .../AssemblyRegistration.cs | 8 ++-- .../BabelFileMiddleware.cs | 8 ++-- .../BabelFileOptions.cs | 9 ++-- .../BabelFileSystem.cs | 9 ++-- .../HttpContextLifetimeProvider.cs | 8 ++-- .../MemoryFileCacheCore.cs | 9 ++-- .../ReactBuilderExtensions.cs | 8 ++-- .../ReactServiceCollectionExtensions.cs | 8 ++-- src/React.AspNet/ActionHtmlString.cs | 8 ++-- src/React.AspNet/HtmlHelperExtensions.cs | 8 ++-- src/React.Core/AssemblyRegistration.cs | 8 ++-- src/React.Core/Babel.cs | 8 ++-- src/React.Core/Exceptions/BabelException.cs | 8 ++-- .../Exceptions/BabelNotLoadedException.cs | 8 ++-- .../Exceptions/ReactConfigurationException.cs | 8 ++-- .../ReactEngineNotFoundException.cs | 8 ++-- src/React.Core/Exceptions/ReactException.cs | 8 ++-- .../ReactInvalidComponentException.cs | 8 ++-- .../ReactNotInitialisedException.cs | 8 ++-- .../Exceptions/ReactScriptLoadException.cs | 8 ++-- .../ReactServerRenderingException.cs | 8 ++-- src/React.Core/FileCacheHash.cs | 8 ++-- src/React.Core/FileSystemBase.cs | 8 ++-- src/React.Core/FileSystemExtensions.cs | 8 ++-- src/React.Core/IAssemblyRegistration.cs | 8 ++-- src/React.Core/IBabel.cs | 8 ++-- src/React.Core/ICache.cs | 8 ++-- src/React.Core/IFileCacheHash.cs | 8 ++-- src/React.Core/IFileSystem.cs | 8 ++-- src/React.Core/IReactComponent.cs | 8 ++-- src/React.Core/IReactEnvironment.cs | 8 ++-- src/React.Core/IReactIdGenerator.cs | 8 ++-- src/React.Core/IReactSiteConfiguration.cs | 8 ++-- src/React.Core/Initializer.cs | 8 ++-- src/React.Core/JavaScriptEngineUtils.cs | 8 ++-- src/React.Core/JavaScriptWithSourceMap.cs | 8 ++-- src/React.Core/MemoryFileCache.cs | 8 ++-- src/React.Core/NullCache.cs | 8 ++-- src/React.Core/ReactComponent.cs | 8 ++-- src/React.Core/ReactEnvironment.cs | 8 ++-- src/React.Core/ReactIdGenerator.cs | 8 ++-- src/React.Core/ReactSiteConfiguration.cs | 8 ++-- src/React.Core/Resources/babel.js | 10 ++--- src/React.Core/Resources/react.js | 10 ++--- src/React.Core/Resources/shims.js | 10 ++--- src/React.Core/SimpleFileSystem.cs | 8 ++-- src/React.Core/SourceMap.cs | 8 ++-- src/React.Core/SystemEnvironmentUtils.cs | 8 ++-- src/React.Core/TinyIoCExtensions.cs | 8 ++-- src/React.Core/gulpfile.js | 10 ++--- src/React.MSBuild/AssemblyBindingRedirect.cs | 9 ++-- src/React.MSBuild/AssemblyRegistration.cs | 8 ++-- src/React.MSBuild/MSBuildHost.cs | 9 ++-- src/React.MSBuild/Properties/AssemblyInfo.cs | 8 ++-- src/React.MSBuild/TransformBabel.cs | 8 ++-- src/React.Owin/AssemblyRegistration.cs | 8 ++-- src/React.Owin/BabelFileExtensions.cs | 8 ++-- src/React.Owin/BabelFileMiddleware.cs | 8 ++-- src/React.Owin/EntryAssemblyFileSystem.cs | 8 ++-- src/React.Router/ExecutionResult.cs | 9 ++-- src/React.Router/HtmlHelperExtensions.cs | 8 ++-- .../ReactEnvironmentExtensions.cs | 8 ++-- src/React.Router/ReactRouterComponent.cs | 8 ++-- src/React.Router/ReactRouterException.cs | 9 ++-- src/React.Router/RoutingContext.cs | 9 ++-- src/React.Router/SetServerResponse.cs | 8 ++-- .../App_Start/ReactConfig.cs | 8 ++-- .../CassetteConfiguration.cs | 8 ++-- src/React.Sample.Cassette/Global.asax.cs | 8 ++-- .../Properties/AssemblyInfo.cs | 8 ++-- src/React.Sample.ConsoleApp/Program.cs | 8 ++-- .../Properties/AssemblyInfo.cs | 8 ++-- .../App_Start/BundleConfig.cs | 8 ++-- .../App_Start/FilterConfig.cs | 8 ++-- .../App_Start/ReactConfig.cs | 8 ++-- .../App_Start/RouteConfig.cs | 8 ++-- .../Controllers/HomeController.cs | 8 ++-- src/React.Sample.Mvc4/Global.asax.cs | 8 ++-- src/React.Sample.Owin/CommentsMiddleware.cs | 8 ++-- src/React.Sample.Owin/Program.cs | 8 ++-- src/React.Sample.Owin/Startup.cs | 8 ++-- src/React.Web/AspNetCache.cs | 8 ++-- src/React.Web/AspNetFileSystem.cs | 8 ++-- src/React.Web/AssemblyRegistration.cs | 8 ++-- src/React.Web/BabelHandler.cs | 8 ++-- src/React.Web/BabelHandlerFactory.cs | 8 ++-- .../Exceptions/ReactAspNetException.cs | 8 ++-- src/React.Web/IBabelHandler.cs | 8 ++-- src/React.Web/TinyIoCAspNetExtensions.cs | 8 ++-- src/React.Web/WebInitializer.cs | 8 ++-- src/SharedAssemblyInfo.cs | 8 ++-- .../BabelBundle.cs | 8 ++-- .../BabelTransform.cs | 8 ++-- .../Properties/AssemblyInfo.cs | 8 ++-- .../React.Tests.Common/MemoryFileCacheCore.cs | 8 ++-- .../React.Tests/Core/BabelTransformerTests.cs | 8 ++-- tests/React.Tests/Core/FileCacheHashTests.cs | 8 ++-- tests/React.Tests/Core/FileSystemBaseTests.cs | 8 ++-- .../Core/FileSystemExtensionsTest.cs | 8 ++-- .../Core/JavaScriptEngineFactoryTest.cs | 8 ++-- .../Core/JavaScriptEngineUtilsTests.cs | 8 ++-- tests/React.Tests/Core/ReactComponentTest.cs | 8 ++-- .../React.Tests/Core/ReactEnvironmentTest.cs | 8 ++-- .../React.Tests/Core/ReactIdGeneratorTests.cs | 8 ++-- .../Mvc/HtmlHelperExtensionsTests.cs | 8 ++-- .../Owin/EntryAssemblyFileSystemTests.cs | 8 ++-- .../Router/HtmlHelperExtensionsTest.cs | 8 ++-- .../Router/ReactEnvironmentExtensionsTest.cs | 8 ++-- .../Router/ReactRouterComponentTest.cs | 8 ++-- 121 files changed, 378 insertions(+), 664 deletions(-) delete mode 100644 PATENTS diff --git a/LICENSE b/LICENSE index 3cac634d4..10d9a688c 100644 --- a/LICENSE +++ b/LICENSE @@ -1,28 +1,21 @@ -BSD License for ReactJS.NET +MIT License for ReactJS.NET -Copyright (c) 2014, Facebook, Inc. All rights reserved. +Copyright (c) Facebook, Inc. and its affiliates. -Redistribution and use in source and binary forms, with or without modification, -are permitted provided that the following conditions are met: +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: - * Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - - * Neither the name Facebook nor the names of its contributors may be used to - endorse or promote products derived from this software without specific - prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR -ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \ No newline at end of file +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/PATENTS b/PATENTS deleted file mode 100644 index 755baf53f..000000000 --- a/PATENTS +++ /dev/null @@ -1,33 +0,0 @@ -Additional Grant of Patent Rights Version 2 - -"Software" means the ReactJS.NET software distributed by Facebook, Inc. - -Facebook, Inc. ("Facebook") hereby grants to each recipient of the Software -("you") a perpetual, worldwide, royalty-free, non-exclusive, irrevocable -(subject to the termination provision below) license under any Necessary -Claims, to make, have made, use, sell, offer to sell, import, and otherwise -transfer the Software. For avoidance of doubt, no license is granted under -Facebook's rights in any patent claims that are infringed by (i) modifications -to the Software made by you or any third party or (ii) the Software in -combination with any software or other technology. - -The license granted hereunder will terminate, automatically and without notice, -if you (or any of your subsidiaries, corporate affiliates or agents) initiate -directly or indirectly, or take a direct financial interest in, any Patent -Assertion: (i) against Facebook or any of its subsidiaries or corporate -affiliates, (ii) against any party if such Patent Assertion arises in whole or -in part from any software, technology, product or service of Facebook or any of -its subsidiaries or corporate affiliates, or (iii) against any party relating -to the Software. Notwithstanding the foregoing, if Facebook or any of its -subsidiaries or corporate affiliates files a lawsuit alleging patent -infringement against you in the first instance, and you respond by filing a -patent infringement counterclaim in that lawsuit against that party that is -unrelated to the Software, the license granted hereunder will not terminate -under section (i) of this paragraph due to such counterclaim. - -A "Necessary Claim" is a claim of a patent owned by Facebook that is -necessarily infringed by the Software standing alone. - -A "Patent Assertion" is any lawsuit or other action alleging direct, indirect, -or contributory infringement or inducement to infringe any patent, including a -cross-claim or counterclaim. diff --git a/src/Cassette.React/AssemblyRegistration.cs b/src/Cassette.React/AssemblyRegistration.cs index 4749d9896..18d3ce015 100644 --- a/src/Cassette.React/AssemblyRegistration.cs +++ b/src/Cassette.React/AssemblyRegistration.cs @@ -1,10 +1,8 @@ /* - * Copyright (c) 2014-Present, Facebook, Inc. - * All rights reserved. + * Copyright (c) Facebook, Inc. and its affiliates. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ using React; diff --git a/src/Cassette.React/BabelBundleProcessor.cs b/src/Cassette.React/BabelBundleProcessor.cs index d00ce77fe..5126ad148 100644 --- a/src/Cassette.React/BabelBundleProcessor.cs +++ b/src/Cassette.React/BabelBundleProcessor.cs @@ -1,10 +1,8 @@ /* - * Copyright (c) 2014-Present, Facebook, Inc. - * All rights reserved. + * Copyright (c) Facebook, Inc. and its affiliates. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ using Cassette.BundleProcessing; diff --git a/src/Cassette.React/BabelCompiler.cs b/src/Cassette.React/BabelCompiler.cs index fd9ee5b8c..d14010daf 100644 --- a/src/Cassette.React/BabelCompiler.cs +++ b/src/Cassette.React/BabelCompiler.cs @@ -1,10 +1,8 @@ /* - * Copyright (c) 2014-Present, Facebook, Inc. - * All rights reserved. + * Copyright (c) Facebook, Inc. and its affiliates. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ using System.IO; diff --git a/src/Cassette.React/CassetteMSBuildStartup.cs b/src/Cassette.React/CassetteMSBuildStartup.cs index 47c57da4e..8c41a27e0 100644 --- a/src/Cassette.React/CassetteMSBuildStartup.cs +++ b/src/Cassette.React/CassetteMSBuildStartup.cs @@ -1,10 +1,8 @@ /* - * Copyright (c) 2014-Present, Facebook, Inc. - * All rights reserved. + * Copyright (c) Facebook, Inc. and its affiliates. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ using JavaScriptEngineSwitcher.Core; diff --git a/src/Cassette.React/InsertIntoPipelineJsxBundleProcessor.cs b/src/Cassette.React/InsertIntoPipelineJsxBundleProcessor.cs index ceffc3056..28a7f59cc 100644 --- a/src/Cassette.React/InsertIntoPipelineJsxBundleProcessor.cs +++ b/src/Cassette.React/InsertIntoPipelineJsxBundleProcessor.cs @@ -1,10 +1,8 @@ /* - * Copyright (c) 2014-Present, Facebook, Inc. - * All rights reserved. + * Copyright (c) Facebook, Inc. and its affiliates. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ using Cassette.BundleProcessing; diff --git a/src/Cassette.React/JsxFileSearchModifier.cs b/src/Cassette.React/JsxFileSearchModifier.cs index 0a7007f18..5a6a378cb 100644 --- a/src/Cassette.React/JsxFileSearchModifier.cs +++ b/src/Cassette.React/JsxFileSearchModifier.cs @@ -1,10 +1,8 @@ /* - * Copyright (c) 2014-Present, Facebook, Inc. - * All rights reserved. + * Copyright (c) Facebook, Inc. and its affiliates. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ using Cassette.Scripts; diff --git a/src/Cassette.React/MSBuildUtils.cs b/src/Cassette.React/MSBuildUtils.cs index 98b8098f5..afd429965 100644 --- a/src/Cassette.React/MSBuildUtils.cs +++ b/src/Cassette.React/MSBuildUtils.cs @@ -1,10 +1,8 @@ /* - * Copyright (c) 2014-Present, Facebook, Inc. - * All rights reserved. + * Copyright (c) Facebook, Inc. and its affiliates. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ using System; diff --git a/src/Cassette.React/Properties/AssemblyInfo.cs b/src/Cassette.React/Properties/AssemblyInfo.cs index 8836da7c5..93fe22fe1 100644 --- a/src/Cassette.React/Properties/AssemblyInfo.cs +++ b/src/Cassette.React/Properties/AssemblyInfo.cs @@ -1,10 +1,8 @@ /* - * Copyright (c) 2014-Present, Facebook, Inc. - * All rights reserved. + * Copyright (c) Facebook, Inc. and its affiliates. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ using System.Reflection; diff --git a/src/Cassette.React/ReactContainerConfiguration.cs b/src/Cassette.React/ReactContainerConfiguration.cs index f31dd5edc..85fcb82d4 100644 --- a/src/Cassette.React/ReactContainerConfiguration.cs +++ b/src/Cassette.React/ReactContainerConfiguration.cs @@ -1,10 +1,8 @@ /* - * Copyright (c) 2014-Present, Facebook, Inc. - * All rights reserved. + * Copyright (c) Facebook, Inc. and its affiliates. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ using CassetteTinyIoCContainer = Cassette.TinyIoC.TinyIoCContainer; diff --git a/src/React.AspNet.Middleware/AspNetFileSystem.cs b/src/React.AspNet.Middleware/AspNetFileSystem.cs index 9f8473771..c994dbf38 100644 --- a/src/React.AspNet.Middleware/AspNetFileSystem.cs +++ b/src/React.AspNet.Middleware/AspNetFileSystem.cs @@ -1,10 +1,8 @@ /* - * Copyright (c) 2015, Facebook, Inc. - * All rights reserved. + * Copyright (c) Facebook, Inc. and its affiliates. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ using System.IO; diff --git a/src/React.AspNet.Middleware/AssemblyRegistration.cs b/src/React.AspNet.Middleware/AssemblyRegistration.cs index cc1f149f5..dd8e3082d 100644 --- a/src/React.AspNet.Middleware/AssemblyRegistration.cs +++ b/src/React.AspNet.Middleware/AssemblyRegistration.cs @@ -1,10 +1,8 @@ /* - * Copyright (c) 2015, Facebook, Inc. - * All rights reserved. + * Copyright (c) Facebook, Inc. and its affiliates. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ using React.TinyIoC; diff --git a/src/React.AspNet.Middleware/BabelFileMiddleware.cs b/src/React.AspNet.Middleware/BabelFileMiddleware.cs index b219ae637..1120c7c8e 100644 --- a/src/React.AspNet.Middleware/BabelFileMiddleware.cs +++ b/src/React.AspNet.Middleware/BabelFileMiddleware.cs @@ -1,10 +1,8 @@ /* - * Copyright (c) 2015, Facebook, Inc. - * All rights reserved. + * Copyright (c) Facebook, Inc. and its affiliates. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ using System; diff --git a/src/React.AspNet.Middleware/BabelFileOptions.cs b/src/React.AspNet.Middleware/BabelFileOptions.cs index 231f1b05b..aa0119491 100644 --- a/src/React.AspNet.Middleware/BabelFileOptions.cs +++ b/src/React.AspNet.Middleware/BabelFileOptions.cs @@ -1,12 +1,9 @@ /* - * Copyright (c) 2014-Present, Facebook, Inc. - * All rights reserved. + * Copyright (c) Facebook, Inc. and its affiliates. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ - using System.Collections.Generic; #if OWIN using Microsoft.Owin.StaticFiles; diff --git a/src/React.AspNet.Middleware/BabelFileSystem.cs b/src/React.AspNet.Middleware/BabelFileSystem.cs index 34a762ff6..1dcd3d11b 100644 --- a/src/React.AspNet.Middleware/BabelFileSystem.cs +++ b/src/React.AspNet.Middleware/BabelFileSystem.cs @@ -1,12 +1,9 @@ /* - * Copyright (c) 2014-Present, Facebook, Inc. - * All rights reserved. + * Copyright (c) Facebook, Inc. and its affiliates. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ - using System; using System.Collections.Generic; using System.IO; diff --git a/src/React.AspNet.Middleware/HttpContextLifetimeProvider.cs b/src/React.AspNet.Middleware/HttpContextLifetimeProvider.cs index 3234cff0b..fc271e91b 100644 --- a/src/React.AspNet.Middleware/HttpContextLifetimeProvider.cs +++ b/src/React.AspNet.Middleware/HttpContextLifetimeProvider.cs @@ -1,10 +1,8 @@ /* - * Copyright (c) 2015, Facebook, Inc. - * All rights reserved. + * Copyright (c) Facebook, Inc. and its affiliates. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ using System; diff --git a/src/React.AspNet.Middleware/MemoryFileCacheCore.cs b/src/React.AspNet.Middleware/MemoryFileCacheCore.cs index afc6e5c8b..97b39f2a4 100644 --- a/src/React.AspNet.Middleware/MemoryFileCacheCore.cs +++ b/src/React.AspNet.Middleware/MemoryFileCacheCore.cs @@ -1,12 +1,9 @@ /* - * Copyright (c) 2016-Present, Facebook, Inc. - * All rights reserved. + * Copyright (c) Facebook, Inc. and its affiliates. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ - using System; using System.Collections.Generic; using Microsoft.Extensions.Caching.Memory; diff --git a/src/React.AspNet.Middleware/ReactBuilderExtensions.cs b/src/React.AspNet.Middleware/ReactBuilderExtensions.cs index 55798c24c..b02079217 100644 --- a/src/React.AspNet.Middleware/ReactBuilderExtensions.cs +++ b/src/React.AspNet.Middleware/ReactBuilderExtensions.cs @@ -1,10 +1,8 @@ /* - * Copyright (c) 2015, Facebook, Inc. - * All rights reserved. + * Copyright (c) Facebook, Inc. and its affiliates. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ using System; diff --git a/src/React.AspNet.Middleware/ReactServiceCollectionExtensions.cs b/src/React.AspNet.Middleware/ReactServiceCollectionExtensions.cs index c5f517b8c..07a4691fb 100644 --- a/src/React.AspNet.Middleware/ReactServiceCollectionExtensions.cs +++ b/src/React.AspNet.Middleware/ReactServiceCollectionExtensions.cs @@ -1,10 +1,8 @@ /* - * Copyright (c) 2015, Facebook, Inc. - * All rights reserved. + * Copyright (c) Facebook, Inc. and its affiliates. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ using Microsoft.Extensions.DependencyInjection; diff --git a/src/React.AspNet/ActionHtmlString.cs b/src/React.AspNet/ActionHtmlString.cs index 99179e9b5..5f970ebd7 100644 --- a/src/React.AspNet/ActionHtmlString.cs +++ b/src/React.AspNet/ActionHtmlString.cs @@ -1,10 +1,8 @@ /* - * Copyright (c) 2014-Present, Facebook, Inc. - * All rights reserved. + * Copyright (c) Facebook, Inc. and its affiliates. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ using System; diff --git a/src/React.AspNet/HtmlHelperExtensions.cs b/src/React.AspNet/HtmlHelperExtensions.cs index 9752e3bd1..86d2aaf77 100644 --- a/src/React.AspNet/HtmlHelperExtensions.cs +++ b/src/React.AspNet/HtmlHelperExtensions.cs @@ -1,10 +1,8 @@ /* - * Copyright (c) 2014-Present, Facebook, Inc. - * All rights reserved. + * Copyright (c) Facebook, Inc. and its affiliates. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ using System; diff --git a/src/React.Core/AssemblyRegistration.cs b/src/React.Core/AssemblyRegistration.cs index 5932c81ca..7d4b0990c 100644 --- a/src/React.Core/AssemblyRegistration.cs +++ b/src/React.Core/AssemblyRegistration.cs @@ -1,10 +1,8 @@ /* - * Copyright (c) 2014-Present, Facebook, Inc. - * All rights reserved. + * Copyright (c) Facebook, Inc. and its affiliates. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ using JavaScriptEngineSwitcher.Core; diff --git a/src/React.Core/Babel.cs b/src/React.Core/Babel.cs index bd93d962b..730d672e6 100644 --- a/src/React.Core/Babel.cs +++ b/src/React.Core/Babel.cs @@ -1,10 +1,8 @@ /* - * Copyright (c) 2014-Present, Facebook, Inc. - * All rights reserved. + * Copyright (c) Facebook, Inc. and its affiliates. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ using System; diff --git a/src/React.Core/Exceptions/BabelException.cs b/src/React.Core/Exceptions/BabelException.cs index 9ba80379b..32e51a26c 100644 --- a/src/React.Core/Exceptions/BabelException.cs +++ b/src/React.Core/Exceptions/BabelException.cs @@ -1,10 +1,8 @@ /* - * Copyright (c) 2014-Present, Facebook, Inc. - * All rights reserved. + * Copyright (c) Facebook, Inc. and its affiliates. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ using System; diff --git a/src/React.Core/Exceptions/BabelNotLoadedException.cs b/src/React.Core/Exceptions/BabelNotLoadedException.cs index a123ed525..ae540e69b 100644 --- a/src/React.Core/Exceptions/BabelNotLoadedException.cs +++ b/src/React.Core/Exceptions/BabelNotLoadedException.cs @@ -1,10 +1,8 @@ /* - * Copyright (c) 2014-Present, Facebook, Inc. - * All rights reserved. + * Copyright (c) Facebook, Inc. and its affiliates. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ using System; diff --git a/src/React.Core/Exceptions/ReactConfigurationException.cs b/src/React.Core/Exceptions/ReactConfigurationException.cs index b3c3d814c..c1e03f964 100644 --- a/src/React.Core/Exceptions/ReactConfigurationException.cs +++ b/src/React.Core/Exceptions/ReactConfigurationException.cs @@ -1,10 +1,8 @@ /* - * Copyright (c) 2014-Present, Facebook, Inc. - * All rights reserved. + * Copyright (c) Facebook, Inc. and its affiliates. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ using System; diff --git a/src/React.Core/Exceptions/ReactEngineNotFoundException.cs b/src/React.Core/Exceptions/ReactEngineNotFoundException.cs index 7073dd730..ef005561b 100644 --- a/src/React.Core/Exceptions/ReactEngineNotFoundException.cs +++ b/src/React.Core/Exceptions/ReactEngineNotFoundException.cs @@ -1,10 +1,8 @@ /* - * Copyright (c) 2015, Facebook, Inc. - * All rights reserved. + * Copyright (c) Facebook, Inc. and its affiliates. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ using System; diff --git a/src/React.Core/Exceptions/ReactException.cs b/src/React.Core/Exceptions/ReactException.cs index 5247b8661..b3a2708b0 100644 --- a/src/React.Core/Exceptions/ReactException.cs +++ b/src/React.Core/Exceptions/ReactException.cs @@ -1,10 +1,8 @@ /* - * Copyright (c) 2014-Present, Facebook, Inc. - * All rights reserved. + * Copyright (c) Facebook, Inc. and its affiliates. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ using System; diff --git a/src/React.Core/Exceptions/ReactInvalidComponentException.cs b/src/React.Core/Exceptions/ReactInvalidComponentException.cs index e4c30c29f..fb58f4744 100644 --- a/src/React.Core/Exceptions/ReactInvalidComponentException.cs +++ b/src/React.Core/Exceptions/ReactInvalidComponentException.cs @@ -1,10 +1,8 @@ /* - * Copyright (c) 2014-Present, Facebook, Inc. - * All rights reserved. + * Copyright (c) Facebook, Inc. and its affiliates. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ using System; diff --git a/src/React.Core/Exceptions/ReactNotInitialisedException.cs b/src/React.Core/Exceptions/ReactNotInitialisedException.cs index 79e0e7704..d346a4a4f 100644 --- a/src/React.Core/Exceptions/ReactNotInitialisedException.cs +++ b/src/React.Core/Exceptions/ReactNotInitialisedException.cs @@ -1,10 +1,8 @@ /* - * Copyright (c) 2015, Facebook, Inc. - * All rights reserved. + * Copyright (c) Facebook, Inc. and its affiliates. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ using System; diff --git a/src/React.Core/Exceptions/ReactScriptLoadException.cs b/src/React.Core/Exceptions/ReactScriptLoadException.cs index f624cf55d..b7b6a2b55 100644 --- a/src/React.Core/Exceptions/ReactScriptLoadException.cs +++ b/src/React.Core/Exceptions/ReactScriptLoadException.cs @@ -1,10 +1,8 @@ /* - * Copyright (c) 2014-Present, Facebook, Inc. - * All rights reserved. + * Copyright (c) Facebook, Inc. and its affiliates. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ using System; diff --git a/src/React.Core/Exceptions/ReactServerRenderingException.cs b/src/React.Core/Exceptions/ReactServerRenderingException.cs index a255f5e2f..70745fadb 100644 --- a/src/React.Core/Exceptions/ReactServerRenderingException.cs +++ b/src/React.Core/Exceptions/ReactServerRenderingException.cs @@ -1,10 +1,8 @@ /* - * Copyright (c) 2014-Present, Facebook, Inc. - * All rights reserved. + * Copyright (c) Facebook, Inc. and its affiliates. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ using System; diff --git a/src/React.Core/FileCacheHash.cs b/src/React.Core/FileCacheHash.cs index 9043344b3..e68fe573f 100644 --- a/src/React.Core/FileCacheHash.cs +++ b/src/React.Core/FileCacheHash.cs @@ -1,10 +1,8 @@ /* - * Copyright (c) 2014-Present, Facebook, Inc. - * All rights reserved. + * Copyright (c) Facebook, Inc. and its affiliates. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ using System; diff --git a/src/React.Core/FileSystemBase.cs b/src/React.Core/FileSystemBase.cs index d49b1aaee..5fd2b297b 100644 --- a/src/React.Core/FileSystemBase.cs +++ b/src/React.Core/FileSystemBase.cs @@ -1,10 +1,8 @@ /* - * Copyright (c) 2014-Present, Facebook, Inc. - * All rights reserved. + * Copyright (c) Facebook, Inc. and its affiliates. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ using System.Collections.Generic; diff --git a/src/React.Core/FileSystemExtensions.cs b/src/React.Core/FileSystemExtensions.cs index eec653f49..fde0f9afb 100644 --- a/src/React.Core/FileSystemExtensions.cs +++ b/src/React.Core/FileSystemExtensions.cs @@ -1,10 +1,8 @@ /* - * Copyright (c) 2014-Present, Facebook, Inc. - * All rights reserved. + * Copyright (c) Facebook, Inc. and its affiliates. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ using System.IO; diff --git a/src/React.Core/IAssemblyRegistration.cs b/src/React.Core/IAssemblyRegistration.cs index 8da97d9e5..d20eb9ec4 100644 --- a/src/React.Core/IAssemblyRegistration.cs +++ b/src/React.Core/IAssemblyRegistration.cs @@ -1,10 +1,8 @@ /* - * Copyright (c) 2014-Present, Facebook, Inc. - * All rights reserved. + * Copyright (c) Facebook, Inc. and its affiliates. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ using React.TinyIoC; diff --git a/src/React.Core/IBabel.cs b/src/React.Core/IBabel.cs index d1f3efc18..1827756df 100644 --- a/src/React.Core/IBabel.cs +++ b/src/React.Core/IBabel.cs @@ -1,10 +1,8 @@ /* - * Copyright (c) 2014-Present, Facebook, Inc. - * All rights reserved. + * Copyright (c) Facebook, Inc. and its affiliates. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ namespace React diff --git a/src/React.Core/ICache.cs b/src/React.Core/ICache.cs index d8b56f9a0..4a7ff52b7 100644 --- a/src/React.Core/ICache.cs +++ b/src/React.Core/ICache.cs @@ -1,10 +1,8 @@ /* - * Copyright (c) 2014-Present, Facebook, Inc. - * All rights reserved. + * Copyright (c) Facebook, Inc. and its affiliates. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ using System; diff --git a/src/React.Core/IFileCacheHash.cs b/src/React.Core/IFileCacheHash.cs index b46b9c37e..cfabfbd28 100644 --- a/src/React.Core/IFileCacheHash.cs +++ b/src/React.Core/IFileCacheHash.cs @@ -1,10 +1,8 @@ /* - * Copyright (c) 2014-Present, Facebook, Inc. - * All rights reserved. + * Copyright (c) Facebook, Inc. and its affiliates. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ namespace React diff --git a/src/React.Core/IFileSystem.cs b/src/React.Core/IFileSystem.cs index 887c343de..c972b49e5 100644 --- a/src/React.Core/IFileSystem.cs +++ b/src/React.Core/IFileSystem.cs @@ -1,10 +1,8 @@ /* - * Copyright (c) 2014-Present, Facebook, Inc. - * All rights reserved. + * Copyright (c) Facebook, Inc. and its affiliates. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ using System.Collections.Generic; diff --git a/src/React.Core/IReactComponent.cs b/src/React.Core/IReactComponent.cs index 0715c4668..3ba68a128 100644 --- a/src/React.Core/IReactComponent.cs +++ b/src/React.Core/IReactComponent.cs @@ -1,10 +1,8 @@ /* - * Copyright (c) 2014-Present, Facebook, Inc. - * All rights reserved. + * Copyright (c) Facebook, Inc. and its affiliates. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ using System; diff --git a/src/React.Core/IReactEnvironment.cs b/src/React.Core/IReactEnvironment.cs index 4ffe32630..648a989ed 100644 --- a/src/React.Core/IReactEnvironment.cs +++ b/src/React.Core/IReactEnvironment.cs @@ -1,10 +1,8 @@ /* - * Copyright (c) 2014-Present, Facebook, Inc. - * All rights reserved. + * Copyright (c) Facebook, Inc. and its affiliates. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ diff --git a/src/React.Core/IReactIdGenerator.cs b/src/React.Core/IReactIdGenerator.cs index 767be7f1f..57aacdaec 100644 --- a/src/React.Core/IReactIdGenerator.cs +++ b/src/React.Core/IReactIdGenerator.cs @@ -1,10 +1,8 @@ /* - * Copyright (c) 2016-Present, Facebook, Inc. - * All rights reserved. + * Copyright (c) Facebook, Inc. and its affiliates. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ namespace React diff --git a/src/React.Core/IReactSiteConfiguration.cs b/src/React.Core/IReactSiteConfiguration.cs index 3d0a06c12..4dc68f850 100644 --- a/src/React.Core/IReactSiteConfiguration.cs +++ b/src/React.Core/IReactSiteConfiguration.cs @@ -1,10 +1,8 @@ /* - * Copyright (c) 2014-Present, Facebook, Inc. - * All rights reserved. + * Copyright (c) Facebook, Inc. and its affiliates. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ using System; diff --git a/src/React.Core/Initializer.cs b/src/React.Core/Initializer.cs index 89b07301b..794556b59 100644 --- a/src/React.Core/Initializer.cs +++ b/src/React.Core/Initializer.cs @@ -1,10 +1,8 @@ /* - * Copyright (c) 2014-Present, Facebook, Inc. - * All rights reserved. + * Copyright (c) Facebook, Inc. and its affiliates. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ using System; diff --git a/src/React.Core/JavaScriptEngineUtils.cs b/src/React.Core/JavaScriptEngineUtils.cs index 68b50dc8f..0f8bf39bc 100644 --- a/src/React.Core/JavaScriptEngineUtils.cs +++ b/src/React.Core/JavaScriptEngineUtils.cs @@ -1,10 +1,8 @@ /* - * Copyright (c) 2015, Facebook, Inc. - * All rights reserved. + * Copyright (c) Facebook, Inc. and its affiliates. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ using System; diff --git a/src/React.Core/JavaScriptWithSourceMap.cs b/src/React.Core/JavaScriptWithSourceMap.cs index ba985ca3a..d4ebf5bac 100644 --- a/src/React.Core/JavaScriptWithSourceMap.cs +++ b/src/React.Core/JavaScriptWithSourceMap.cs @@ -1,10 +1,8 @@ /* - * Copyright (c) 2014-Present, Facebook, Inc. - * All rights reserved. + * Copyright (c) Facebook, Inc. and its affiliates. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ using System; diff --git a/src/React.Core/MemoryFileCache.cs b/src/React.Core/MemoryFileCache.cs index 481688e24..47aefd3d1 100644 --- a/src/React.Core/MemoryFileCache.cs +++ b/src/React.Core/MemoryFileCache.cs @@ -1,10 +1,8 @@ /* - * Copyright (c) 2014-Present, Facebook, Inc. - * All rights reserved. + * Copyright (c) Facebook, Inc. and its affiliates. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ #if NET40 || NET45 diff --git a/src/React.Core/NullCache.cs b/src/React.Core/NullCache.cs index 08a6b0c08..445fd7e75 100644 --- a/src/React.Core/NullCache.cs +++ b/src/React.Core/NullCache.cs @@ -1,10 +1,8 @@ /* - * Copyright (c) 2014-Present, Facebook, Inc. - * All rights reserved. + * Copyright (c) Facebook, Inc. and its affiliates. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ using System; diff --git a/src/React.Core/ReactComponent.cs b/src/React.Core/ReactComponent.cs index ad6fa472e..6764d911f 100644 --- a/src/React.Core/ReactComponent.cs +++ b/src/React.Core/ReactComponent.cs @@ -1,10 +1,8 @@ /* - * Copyright (c) 2014-Present, Facebook, Inc. - * All rights reserved. + * Copyright (c) Facebook, Inc. and its affiliates. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ using System; diff --git a/src/React.Core/ReactEnvironment.cs b/src/React.Core/ReactEnvironment.cs index 4369d5b0b..3af23754b 100644 --- a/src/React.Core/ReactEnvironment.cs +++ b/src/React.Core/ReactEnvironment.cs @@ -1,10 +1,8 @@ /* - * Copyright (c) 2014-Present, Facebook, Inc. - * All rights reserved. + * Copyright (c) Facebook, Inc. and its affiliates. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ using System; diff --git a/src/React.Core/ReactIdGenerator.cs b/src/React.Core/ReactIdGenerator.cs index a61647b7e..c4c62d9d3 100644 --- a/src/React.Core/ReactIdGenerator.cs +++ b/src/React.Core/ReactIdGenerator.cs @@ -1,10 +1,8 @@ /* - * Copyright (c) 2016-Present, Facebook, Inc. - * All rights reserved. + * Copyright (c) Facebook, Inc. and its affiliates. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ using System; diff --git a/src/React.Core/ReactSiteConfiguration.cs b/src/React.Core/ReactSiteConfiguration.cs index 1c81b6222..0bbe18169 100644 --- a/src/React.Core/ReactSiteConfiguration.cs +++ b/src/React.Core/ReactSiteConfiguration.cs @@ -1,10 +1,8 @@ /* - * Copyright (c) 2014-Present, Facebook, Inc. - * All rights reserved. + * Copyright (c) Facebook, Inc. and its affiliates. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ using System; diff --git a/src/React.Core/Resources/babel.js b/src/React.Core/Resources/babel.js index 9d6b245e3..47ac7290b 100644 --- a/src/React.Core/Resources/babel.js +++ b/src/React.Core/Resources/babel.js @@ -1,10 +1,8 @@ -/* - * Copyright (c) 2015, Facebook, Inc. - * All rights reserved. +/** + * Copyright (c) Facebook, Inc. and its affiliates. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ import {transform as babelTransform, version as babelVersion} from 'babel-standalone'; diff --git a/src/React.Core/Resources/react.js b/src/React.Core/Resources/react.js index 0e69b3983..b04ca18f6 100644 --- a/src/React.Core/Resources/react.js +++ b/src/React.Core/Resources/react.js @@ -1,10 +1,8 @@ -/* - * Copyright (c) 2015, Facebook, Inc. - * All rights reserved. +/** + * Copyright (c) Facebook, Inc. and its affiliates. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ // Exports all the parts of React that ReactJS.NET cares about. diff --git a/src/React.Core/Resources/shims.js b/src/React.Core/Resources/shims.js index d95644170..f99e4f264 100644 --- a/src/React.Core/Resources/shims.js +++ b/src/React.Core/Resources/shims.js @@ -1,10 +1,8 @@ -/* - * Copyright (c) 2014-Present, Facebook, Inc. - * All rights reserved. +/** + * Copyright (c) Facebook, Inc. and its affiliates. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ var global = global || {}; diff --git a/src/React.Core/SimpleFileSystem.cs b/src/React.Core/SimpleFileSystem.cs index d5417d338..acfcad830 100644 --- a/src/React.Core/SimpleFileSystem.cs +++ b/src/React.Core/SimpleFileSystem.cs @@ -1,10 +1,8 @@ /* - * Copyright (c) 2014-Present, Facebook, Inc. - * All rights reserved. + * Copyright (c) Facebook, Inc. and its affiliates. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ namespace React diff --git a/src/React.Core/SourceMap.cs b/src/React.Core/SourceMap.cs index a089118f6..e350aebc2 100644 --- a/src/React.Core/SourceMap.cs +++ b/src/React.Core/SourceMap.cs @@ -1,10 +1,8 @@ /* - * Copyright (c) 2014-Present, Facebook, Inc. - * All rights reserved. + * Copyright (c) Facebook, Inc. and its affiliates. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ using System; diff --git a/src/React.Core/SystemEnvironmentUtils.cs b/src/React.Core/SystemEnvironmentUtils.cs index 4deaf4831..8452fe5d7 100644 --- a/src/React.Core/SystemEnvironmentUtils.cs +++ b/src/React.Core/SystemEnvironmentUtils.cs @@ -1,10 +1,8 @@ /* - * Copyright (c) 2014-Present, Facebook, Inc. - * All rights reserved. + * Copyright (c) Facebook, Inc. and its affiliates. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ using System; diff --git a/src/React.Core/TinyIoCExtensions.cs b/src/React.Core/TinyIoCExtensions.cs index bf7812c37..1ea6f8980 100644 --- a/src/React.Core/TinyIoCExtensions.cs +++ b/src/React.Core/TinyIoCExtensions.cs @@ -1,10 +1,8 @@ /* - * Copyright (c) 2014-Present, Facebook, Inc. - * All rights reserved. + * Copyright (c) Facebook, Inc. and its affiliates. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ using System; diff --git a/src/React.Core/gulpfile.js b/src/React.Core/gulpfile.js index 921f7f91d..b60216e36 100644 --- a/src/React.Core/gulpfile.js +++ b/src/React.Core/gulpfile.js @@ -1,10 +1,8 @@ -/* - * Copyright (c) 2015, Facebook, Inc. - * All rights reserved. +/** + * Copyright (c) Facebook, Inc. and its affiliates. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ var gulp = require('gulp'); diff --git a/src/React.MSBuild/AssemblyBindingRedirect.cs b/src/React.MSBuild/AssemblyBindingRedirect.cs index c88a85d6b..dade8e7e9 100644 --- a/src/React.MSBuild/AssemblyBindingRedirect.cs +++ b/src/React.MSBuild/AssemblyBindingRedirect.cs @@ -1,12 +1,9 @@ /* - * Copyright (c) 2017-Present, Facebook, Inc. - * All rights reserved. + * Copyright (c) Facebook, Inc. and its affiliates. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ - using System; using System.Collections.Generic; using System.Diagnostics; diff --git a/src/React.MSBuild/AssemblyRegistration.cs b/src/React.MSBuild/AssemblyRegistration.cs index 938f0d766..e0accd796 100644 --- a/src/React.MSBuild/AssemblyRegistration.cs +++ b/src/React.MSBuild/AssemblyRegistration.cs @@ -1,10 +1,8 @@ /* - * Copyright (c) 2014-Present, Facebook, Inc. - * All rights reserved. + * Copyright (c) Facebook, Inc. and its affiliates. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ using System.Diagnostics; diff --git a/src/React.MSBuild/MSBuildHost.cs b/src/React.MSBuild/MSBuildHost.cs index 291f5191a..3562fcec9 100644 --- a/src/React.MSBuild/MSBuildHost.cs +++ b/src/React.MSBuild/MSBuildHost.cs @@ -1,12 +1,9 @@ /* - * Copyright (c) 2014-Present, Facebook, Inc. - * All rights reserved. + * Copyright (c) Facebook, Inc. and its affiliates. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ - using System; using System.Diagnostics; using System.Reflection; diff --git a/src/React.MSBuild/Properties/AssemblyInfo.cs b/src/React.MSBuild/Properties/AssemblyInfo.cs index 0aedf53d2..01e4bf7ce 100644 --- a/src/React.MSBuild/Properties/AssemblyInfo.cs +++ b/src/React.MSBuild/Properties/AssemblyInfo.cs @@ -1,10 +1,8 @@ /* - * Copyright (c) 2014-Present, Facebook, Inc. - * All rights reserved. + * Copyright (c) Facebook, Inc. and its affiliates. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ using System.Reflection; diff --git a/src/React.MSBuild/TransformBabel.cs b/src/React.MSBuild/TransformBabel.cs index cd560e1a2..8e79c4e15 100644 --- a/src/React.MSBuild/TransformBabel.cs +++ b/src/React.MSBuild/TransformBabel.cs @@ -1,10 +1,8 @@ /* - * Copyright (c) 2014-Present, Facebook, Inc. - * All rights reserved. + * Copyright (c) Facebook, Inc. and its affiliates. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ using System.Diagnostics; diff --git a/src/React.Owin/AssemblyRegistration.cs b/src/React.Owin/AssemblyRegistration.cs index cd6d0dacb..6cb1040be 100644 --- a/src/React.Owin/AssemblyRegistration.cs +++ b/src/React.Owin/AssemblyRegistration.cs @@ -1,10 +1,8 @@ /* - * Copyright (c) 2014-Present, Facebook, Inc. - * All rights reserved. + * Copyright (c) Facebook, Inc. and its affiliates. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ using React.TinyIoC; diff --git a/src/React.Owin/BabelFileExtensions.cs b/src/React.Owin/BabelFileExtensions.cs index 3eb50cc99..675db1df5 100644 --- a/src/React.Owin/BabelFileExtensions.cs +++ b/src/React.Owin/BabelFileExtensions.cs @@ -1,10 +1,8 @@ /* - * Copyright (c) 2014-Present, Facebook, Inc. - * All rights reserved. + * Copyright (c) Facebook, Inc. and its affiliates. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ using Owin; diff --git a/src/React.Owin/BabelFileMiddleware.cs b/src/React.Owin/BabelFileMiddleware.cs index 40c866517..08e29899b 100644 --- a/src/React.Owin/BabelFileMiddleware.cs +++ b/src/React.Owin/BabelFileMiddleware.cs @@ -1,10 +1,8 @@ /* - * Copyright (c) 2014-Present, Facebook, Inc. - * All rights reserved. + * Copyright (c) Facebook, Inc. and its affiliates. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ using System; diff --git a/src/React.Owin/EntryAssemblyFileSystem.cs b/src/React.Owin/EntryAssemblyFileSystem.cs index e6b43d366..7b193359d 100644 --- a/src/React.Owin/EntryAssemblyFileSystem.cs +++ b/src/React.Owin/EntryAssemblyFileSystem.cs @@ -1,10 +1,8 @@ /* - * Copyright (c) 2014-Present, Facebook, Inc. - * All rights reserved. + * Copyright (c) Facebook, Inc. and its affiliates. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ using System.IO; diff --git a/src/React.Router/ExecutionResult.cs b/src/React.Router/ExecutionResult.cs index ade20da8a..4145eac09 100644 --- a/src/React.Router/ExecutionResult.cs +++ b/src/React.Router/ExecutionResult.cs @@ -1,12 +1,9 @@ /* - * Copyright (c) 2014-Present, Facebook, Inc. - * All rights reserved. + * Copyright (c) Facebook, Inc. and its affiliates. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ - namespace React.Router { /// diff --git a/src/React.Router/HtmlHelperExtensions.cs b/src/React.Router/HtmlHelperExtensions.cs index 306e85cab..aa522dfbc 100644 --- a/src/React.Router/HtmlHelperExtensions.cs +++ b/src/React.Router/HtmlHelperExtensions.cs @@ -1,10 +1,8 @@ /* - * Copyright (c) 2014-Present, Facebook, Inc. - * All rights reserved. + * Copyright (c) Facebook, Inc. and its affiliates. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ using System; diff --git a/src/React.Router/ReactEnvironmentExtensions.cs b/src/React.Router/ReactEnvironmentExtensions.cs index fb66b3021..3eec40344 100644 --- a/src/React.Router/ReactEnvironmentExtensions.cs +++ b/src/React.Router/ReactEnvironmentExtensions.cs @@ -1,10 +1,8 @@ /* - * Copyright (c) 2014-Present, Facebook, Inc. - * All rights reserved. + * Copyright (c) Facebook, Inc. and its affiliates. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ namespace React.Router diff --git a/src/React.Router/ReactRouterComponent.cs b/src/React.Router/ReactRouterComponent.cs index 7eecf88df..9894dbbba 100644 --- a/src/React.Router/ReactRouterComponent.cs +++ b/src/React.Router/ReactRouterComponent.cs @@ -1,10 +1,8 @@ /* - * Copyright (c) 2014-Present, Facebook, Inc. - * All rights reserved. + * Copyright (c) Facebook, Inc. and its affiliates. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ using System.IO; diff --git a/src/React.Router/ReactRouterException.cs b/src/React.Router/ReactRouterException.cs index 20d521954..bf79e5fe9 100644 --- a/src/React.Router/ReactRouterException.cs +++ b/src/React.Router/ReactRouterException.cs @@ -1,12 +1,9 @@ /* - * Copyright (c) 2014-Present, Facebook, Inc. - * All rights reserved. + * Copyright (c) Facebook, Inc. and its affiliates. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ - using System; using System.Runtime.Serialization; diff --git a/src/React.Router/RoutingContext.cs b/src/React.Router/RoutingContext.cs index 49e00ca9e..402deae3c 100644 --- a/src/React.Router/RoutingContext.cs +++ b/src/React.Router/RoutingContext.cs @@ -1,12 +1,9 @@ /* - * Copyright (c) 2014-Present, Facebook, Inc. - * All rights reserved. + * Copyright (c) Facebook, Inc. and its affiliates. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ - namespace React.Router { /// diff --git a/src/React.Router/SetServerResponse.cs b/src/React.Router/SetServerResponse.cs index eb2eab0a9..fa8d8e62c 100644 --- a/src/React.Router/SetServerResponse.cs +++ b/src/React.Router/SetServerResponse.cs @@ -1,10 +1,8 @@ /* - * Copyright (c) 2014-Present, Facebook, Inc. - * All rights reserved. + * Copyright (c) Facebook, Inc. and its affiliates. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ #if LEGACYASPNET diff --git a/src/React.Sample.Cassette/App_Start/ReactConfig.cs b/src/React.Sample.Cassette/App_Start/ReactConfig.cs index ab12fae99..9b25c12d0 100644 --- a/src/React.Sample.Cassette/App_Start/ReactConfig.cs +++ b/src/React.Sample.Cassette/App_Start/ReactConfig.cs @@ -1,10 +1,8 @@ /* - * Copyright (c) 2014-Present, Facebook, Inc. - * All rights reserved. + * Copyright (c) Facebook, Inc. and its affiliates. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ using JavaScriptEngineSwitcher.Core; diff --git a/src/React.Sample.Cassette/CassetteConfiguration.cs b/src/React.Sample.Cassette/CassetteConfiguration.cs index fa23b580c..88943fed1 100644 --- a/src/React.Sample.Cassette/CassetteConfiguration.cs +++ b/src/React.Sample.Cassette/CassetteConfiguration.cs @@ -1,10 +1,8 @@ /* - * Copyright (c) 2014-Present, Facebook, Inc. - * All rights reserved. + * Copyright (c) Facebook, Inc. and its affiliates. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ using Cassette; diff --git a/src/React.Sample.Cassette/Global.asax.cs b/src/React.Sample.Cassette/Global.asax.cs index de2b958a7..fa8831cd9 100644 --- a/src/React.Sample.Cassette/Global.asax.cs +++ b/src/React.Sample.Cassette/Global.asax.cs @@ -1,10 +1,8 @@ /* - * Copyright (c) 2014-Present, Facebook, Inc. - * All rights reserved. + * Copyright (c) Facebook, Inc. and its affiliates. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ using System.Web.Hosting; diff --git a/src/React.Sample.Cassette/Properties/AssemblyInfo.cs b/src/React.Sample.Cassette/Properties/AssemblyInfo.cs index 222a3bd5a..6537a92bd 100644 --- a/src/React.Sample.Cassette/Properties/AssemblyInfo.cs +++ b/src/React.Sample.Cassette/Properties/AssemblyInfo.cs @@ -1,10 +1,8 @@ /* - * Copyright (c) 2014-Present, Facebook, Inc. - * All rights reserved. + * Copyright (c) Facebook, Inc. and its affiliates. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ using System.Reflection; diff --git a/src/React.Sample.ConsoleApp/Program.cs b/src/React.Sample.ConsoleApp/Program.cs index 7885a1a5f..493fabe8b 100644 --- a/src/React.Sample.ConsoleApp/Program.cs +++ b/src/React.Sample.ConsoleApp/Program.cs @@ -1,10 +1,8 @@ /* - * Copyright (c) 2015, Facebook, Inc. - * All rights reserved. + * Copyright (c) Facebook, Inc. and its affiliates. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ using System; diff --git a/src/React.Sample.ConsoleApp/Properties/AssemblyInfo.cs b/src/React.Sample.ConsoleApp/Properties/AssemblyInfo.cs index 126e6aaeb..e0628e58b 100644 --- a/src/React.Sample.ConsoleApp/Properties/AssemblyInfo.cs +++ b/src/React.Sample.ConsoleApp/Properties/AssemblyInfo.cs @@ -1,10 +1,8 @@ /* - * Copyright (c) 2015, Facebook, Inc. - * All rights reserved. + * Copyright (c) Facebook, Inc. and its affiliates. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ using System.Reflection; diff --git a/src/React.Sample.Mvc4/App_Start/BundleConfig.cs b/src/React.Sample.Mvc4/App_Start/BundleConfig.cs index 2d62a5b1d..352f7ea82 100644 --- a/src/React.Sample.Mvc4/App_Start/BundleConfig.cs +++ b/src/React.Sample.Mvc4/App_Start/BundleConfig.cs @@ -1,10 +1,8 @@ /* - * Copyright (c) 2014-Present, Facebook, Inc. - * All rights reserved. + * Copyright (c) Facebook, Inc. and its affiliates. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ using System.Web.Optimization; diff --git a/src/React.Sample.Mvc4/App_Start/FilterConfig.cs b/src/React.Sample.Mvc4/App_Start/FilterConfig.cs index fb452f82e..f628efac9 100644 --- a/src/React.Sample.Mvc4/App_Start/FilterConfig.cs +++ b/src/React.Sample.Mvc4/App_Start/FilterConfig.cs @@ -1,10 +1,8 @@ /* - * Copyright (c) 2014-Present, Facebook, Inc. - * All rights reserved. + * Copyright (c) Facebook, Inc. and its affiliates. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ using System.Web.Mvc; diff --git a/src/React.Sample.Mvc4/App_Start/ReactConfig.cs b/src/React.Sample.Mvc4/App_Start/ReactConfig.cs index 0ab1fdb22..5eb806bd9 100644 --- a/src/React.Sample.Mvc4/App_Start/ReactConfig.cs +++ b/src/React.Sample.Mvc4/App_Start/ReactConfig.cs @@ -1,10 +1,8 @@ /* - * Copyright (c) 2014-Present, Facebook, Inc. - * All rights reserved. + * Copyright (c) Facebook, Inc. and its affiliates. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ using JavaScriptEngineSwitcher.Core; diff --git a/src/React.Sample.Mvc4/App_Start/RouteConfig.cs b/src/React.Sample.Mvc4/App_Start/RouteConfig.cs index e5481bf95..8b6102b2c 100644 --- a/src/React.Sample.Mvc4/App_Start/RouteConfig.cs +++ b/src/React.Sample.Mvc4/App_Start/RouteConfig.cs @@ -1,10 +1,8 @@ /* - * Copyright (c) 2014-Present, Facebook, Inc. - * All rights reserved. + * Copyright (c) Facebook, Inc. and its affiliates. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ using System.Web.Mvc; diff --git a/src/React.Sample.Mvc4/Controllers/HomeController.cs b/src/React.Sample.Mvc4/Controllers/HomeController.cs index efd2b1bd3..2845c8325 100644 --- a/src/React.Sample.Mvc4/Controllers/HomeController.cs +++ b/src/React.Sample.Mvc4/Controllers/HomeController.cs @@ -1,10 +1,8 @@ /* - * Copyright (c) 2014-Present, Facebook, Inc. - * All rights reserved. + * Copyright (c) Facebook, Inc. and its affiliates. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ // For clarity, this sample has all code in the one file. In a real project, you'd put every diff --git a/src/React.Sample.Mvc4/Global.asax.cs b/src/React.Sample.Mvc4/Global.asax.cs index 6596f4c44..5f81b3dbc 100644 --- a/src/React.Sample.Mvc4/Global.asax.cs +++ b/src/React.Sample.Mvc4/Global.asax.cs @@ -1,10 +1,8 @@ /* - * Copyright (c) 2014-Present, Facebook, Inc. - * All rights reserved. + * Copyright (c) Facebook, Inc. and its affiliates. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ using System.Web.Mvc; diff --git a/src/React.Sample.Owin/CommentsMiddleware.cs b/src/React.Sample.Owin/CommentsMiddleware.cs index 495bde948..9bc5a705d 100644 --- a/src/React.Sample.Owin/CommentsMiddleware.cs +++ b/src/React.Sample.Owin/CommentsMiddleware.cs @@ -1,10 +1,8 @@ /* - * Copyright (c) 2014-Present, Facebook, Inc. - * All rights reserved. + * Copyright (c) Facebook, Inc. and its affiliates. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ using System; diff --git a/src/React.Sample.Owin/Program.cs b/src/React.Sample.Owin/Program.cs index 1501de7a1..5b7aa1cd1 100644 --- a/src/React.Sample.Owin/Program.cs +++ b/src/React.Sample.Owin/Program.cs @@ -1,10 +1,8 @@ /* - * Copyright (c) 2014-Present, Facebook, Inc. - * All rights reserved. + * Copyright (c) Facebook, Inc. and its affiliates. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ using System; diff --git a/src/React.Sample.Owin/Startup.cs b/src/React.Sample.Owin/Startup.cs index 74317fc92..f726334d5 100644 --- a/src/React.Sample.Owin/Startup.cs +++ b/src/React.Sample.Owin/Startup.cs @@ -1,10 +1,8 @@ /* - * Copyright (c) 2014-Present, Facebook, Inc. - * All rights reserved. + * Copyright (c) Facebook, Inc. and its affiliates. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ using System; diff --git a/src/React.Web/AspNetCache.cs b/src/React.Web/AspNetCache.cs index 4d2f4636f..9afc48b9c 100644 --- a/src/React.Web/AspNetCache.cs +++ b/src/React.Web/AspNetCache.cs @@ -1,10 +1,8 @@ /* - * Copyright (c) 2014-Present, Facebook, Inc. - * All rights reserved. + * Copyright (c) Facebook, Inc. and its affiliates. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ using System; diff --git a/src/React.Web/AspNetFileSystem.cs b/src/React.Web/AspNetFileSystem.cs index 3dfd2c39c..a986e955d 100644 --- a/src/React.Web/AspNetFileSystem.cs +++ b/src/React.Web/AspNetFileSystem.cs @@ -1,10 +1,8 @@ /* - * Copyright (c) 2014-Present, Facebook, Inc. - * All rights reserved. + * Copyright (c) Facebook, Inc. and its affiliates. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ using System.Web.Hosting; diff --git a/src/React.Web/AssemblyRegistration.cs b/src/React.Web/AssemblyRegistration.cs index 000be4a72..aadbc80a2 100644 --- a/src/React.Web/AssemblyRegistration.cs +++ b/src/React.Web/AssemblyRegistration.cs @@ -1,10 +1,8 @@ /* - * Copyright (c) 2014-Present, Facebook, Inc. - * All rights reserved. + * Copyright (c) Facebook, Inc. and its affiliates. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ using System.Diagnostics; diff --git a/src/React.Web/BabelHandler.cs b/src/React.Web/BabelHandler.cs index 16ebddb5b..ba670b008 100644 --- a/src/React.Web/BabelHandler.cs +++ b/src/React.Web/BabelHandler.cs @@ -1,10 +1,8 @@ /* - * Copyright (c) 2014-Present, Facebook, Inc. - * All rights reserved. + * Copyright (c) Facebook, Inc. and its affiliates. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ using System.Web; diff --git a/src/React.Web/BabelHandlerFactory.cs b/src/React.Web/BabelHandlerFactory.cs index e3c308044..b96b6c47f 100644 --- a/src/React.Web/BabelHandlerFactory.cs +++ b/src/React.Web/BabelHandlerFactory.cs @@ -1,10 +1,8 @@ /* - * Copyright (c) 2014-Present, Facebook, Inc. - * All rights reserved. + * Copyright (c) Facebook, Inc. and its affiliates. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ using System.Web; diff --git a/src/React.Web/Exceptions/ReactAspNetException.cs b/src/React.Web/Exceptions/ReactAspNetException.cs index 313d1a7b7..2b33b8c44 100644 --- a/src/React.Web/Exceptions/ReactAspNetException.cs +++ b/src/React.Web/Exceptions/ReactAspNetException.cs @@ -1,10 +1,8 @@ /* - * Copyright (c) 2014-Present, Facebook, Inc. - * All rights reserved. + * Copyright (c) Facebook, Inc. and its affiliates. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ using System; diff --git a/src/React.Web/IBabelHandler.cs b/src/React.Web/IBabelHandler.cs index 9704042e4..bd17f1d96 100644 --- a/src/React.Web/IBabelHandler.cs +++ b/src/React.Web/IBabelHandler.cs @@ -1,10 +1,8 @@ /* - * Copyright (c) 2014-Present, Facebook, Inc. - * All rights reserved. + * Copyright (c) Facebook, Inc. and its affiliates. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ namespace React.Web diff --git a/src/React.Web/TinyIoCAspNetExtensions.cs b/src/React.Web/TinyIoCAspNetExtensions.cs index ba868822f..303749461 100644 --- a/src/React.Web/TinyIoCAspNetExtensions.cs +++ b/src/React.Web/TinyIoCAspNetExtensions.cs @@ -1,10 +1,8 @@ /* - * Copyright (c) 2014-Present, Facebook, Inc. - * All rights reserved. + * Copyright (c) Facebook, Inc. and its affiliates. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ using System; diff --git a/src/React.Web/WebInitializer.cs b/src/React.Web/WebInitializer.cs index e1b074b27..6a919f5f2 100644 --- a/src/React.Web/WebInitializer.cs +++ b/src/React.Web/WebInitializer.cs @@ -1,10 +1,8 @@ /* - * Copyright (c) 2014-Present, Facebook, Inc. - * All rights reserved. + * Copyright (c) Facebook, Inc. and its affiliates. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ using System.Web; diff --git a/src/SharedAssemblyInfo.cs b/src/SharedAssemblyInfo.cs index 5c9c2e69b..0313c2b2e 100644 --- a/src/SharedAssemblyInfo.cs +++ b/src/SharedAssemblyInfo.cs @@ -1,10 +1,8 @@ /* - * Copyright (c) 2014-Present, Facebook, Inc. - * All rights reserved. + * Copyright (c) Facebook, Inc. and its affiliates. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ using System.Reflection; diff --git a/src/System.Web.Optimization.React/BabelBundle.cs b/src/System.Web.Optimization.React/BabelBundle.cs index 3778bf0e4..a9ca0cd9a 100644 --- a/src/System.Web.Optimization.React/BabelBundle.cs +++ b/src/System.Web.Optimization.React/BabelBundle.cs @@ -1,10 +1,8 @@ /* - * Copyright (c) 2014-Present, Facebook, Inc. - * All rights reserved. + * Copyright (c) Facebook, Inc. and its affiliates. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ namespace System.Web.Optimization.React diff --git a/src/System.Web.Optimization.React/BabelTransform.cs b/src/System.Web.Optimization.React/BabelTransform.cs index e71e65208..9d0ff41ee 100644 --- a/src/System.Web.Optimization.React/BabelTransform.cs +++ b/src/System.Web.Optimization.React/BabelTransform.cs @@ -1,10 +1,8 @@ /* - * Copyright (c) 2014-Present, Facebook, Inc. - * All rights reserved. + * Copyright (c) Facebook, Inc. and its affiliates. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ using React; diff --git a/src/System.Web.Optimization.React/Properties/AssemblyInfo.cs b/src/System.Web.Optimization.React/Properties/AssemblyInfo.cs index 0b95b6ac1..f918b17bb 100644 --- a/src/System.Web.Optimization.React/Properties/AssemblyInfo.cs +++ b/src/System.Web.Optimization.React/Properties/AssemblyInfo.cs @@ -1,10 +1,8 @@ /* - * Copyright (c) 2014-Present, Facebook, Inc. - * All rights reserved. + * Copyright (c) Facebook, Inc. and its affiliates. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ using System.Reflection; diff --git a/tests/React.Tests.Common/MemoryFileCacheCore.cs b/tests/React.Tests.Common/MemoryFileCacheCore.cs index c5e132032..c170ca39a 100644 --- a/tests/React.Tests.Common/MemoryFileCacheCore.cs +++ b/tests/React.Tests.Common/MemoryFileCacheCore.cs @@ -1,10 +1,8 @@ /* - * Copyright (c) 2016-Present, Facebook, Inc. - * All rights reserved. + * Copyright (c) Facebook, Inc. and its affiliates. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ #if NETCOREAPP2_0 diff --git a/tests/React.Tests/Core/BabelTransformerTests.cs b/tests/React.Tests/Core/BabelTransformerTests.cs index d4b3b69ce..4a3cb655b 100644 --- a/tests/React.Tests/Core/BabelTransformerTests.cs +++ b/tests/React.Tests/Core/BabelTransformerTests.cs @@ -1,10 +1,8 @@ /* - * Copyright (c) 2014-Present, Facebook, Inc. - * All rights reserved. + * Copyright (c) Facebook, Inc. and its affiliates. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ using System; diff --git a/tests/React.Tests/Core/FileCacheHashTests.cs b/tests/React.Tests/Core/FileCacheHashTests.cs index 7599e17f5..750772cc8 100644 --- a/tests/React.Tests/Core/FileCacheHashTests.cs +++ b/tests/React.Tests/Core/FileCacheHashTests.cs @@ -1,10 +1,8 @@ /* - * Copyright (c) 2014-Present, Facebook, Inc. - * All rights reserved. + * Copyright (c) Facebook, Inc. and its affiliates. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ using Xunit; diff --git a/tests/React.Tests/Core/FileSystemBaseTests.cs b/tests/React.Tests/Core/FileSystemBaseTests.cs index 205999ff2..a4a1fd240 100644 --- a/tests/React.Tests/Core/FileSystemBaseTests.cs +++ b/tests/React.Tests/Core/FileSystemBaseTests.cs @@ -1,10 +1,8 @@ /* - * Copyright (c) 2014-Present, Facebook, Inc. - * All rights reserved. + * Copyright (c) Facebook, Inc. and its affiliates. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ using Xunit; diff --git a/tests/React.Tests/Core/FileSystemExtensionsTest.cs b/tests/React.Tests/Core/FileSystemExtensionsTest.cs index 680de7fd0..499531d10 100644 --- a/tests/React.Tests/Core/FileSystemExtensionsTest.cs +++ b/tests/React.Tests/Core/FileSystemExtensionsTest.cs @@ -1,10 +1,8 @@ /* - * Copyright (c) 2014-Present, Facebook, Inc. - * All rights reserved. + * Copyright (c) Facebook, Inc. and its affiliates. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ using Xunit; diff --git a/tests/React.Tests/Core/JavaScriptEngineFactoryTest.cs b/tests/React.Tests/Core/JavaScriptEngineFactoryTest.cs index d6c7b44f2..6177f2bac 100644 --- a/tests/React.Tests/Core/JavaScriptEngineFactoryTest.cs +++ b/tests/React.Tests/Core/JavaScriptEngineFactoryTest.cs @@ -1,10 +1,8 @@ /* - * Copyright (c) 2014-Present, Facebook, Inc. - * All rights reserved. + * Copyright (c) Facebook, Inc. and its affiliates. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ using System; diff --git a/tests/React.Tests/Core/JavaScriptEngineUtilsTests.cs b/tests/React.Tests/Core/JavaScriptEngineUtilsTests.cs index 90465b6c5..f979cdcca 100644 --- a/tests/React.Tests/Core/JavaScriptEngineUtilsTests.cs +++ b/tests/React.Tests/Core/JavaScriptEngineUtilsTests.cs @@ -1,10 +1,8 @@ /* - * Copyright (c) 2015, Facebook, Inc. - * All rights reserved. + * Copyright (c) Facebook, Inc. and its affiliates. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ using JavaScriptEngineSwitcher.Core; diff --git a/tests/React.Tests/Core/ReactComponentTest.cs b/tests/React.Tests/Core/ReactComponentTest.cs index 059d20567..b906eebb8 100644 --- a/tests/React.Tests/Core/ReactComponentTest.cs +++ b/tests/React.Tests/Core/ReactComponentTest.cs @@ -1,10 +1,8 @@ /* - * Copyright (c) 2014-Present, Facebook, Inc. - * All rights reserved. + * Copyright (c) Facebook, Inc. and its affiliates. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ using System; diff --git a/tests/React.Tests/Core/ReactEnvironmentTest.cs b/tests/React.Tests/Core/ReactEnvironmentTest.cs index 234d09c54..3b625673b 100644 --- a/tests/React.Tests/Core/ReactEnvironmentTest.cs +++ b/tests/React.Tests/Core/ReactEnvironmentTest.cs @@ -1,10 +1,8 @@ /* - * Copyright (c) 2014-Present, Facebook, Inc. - * All rights reserved. + * Copyright (c) Facebook, Inc. and its affiliates. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ using System; diff --git a/tests/React.Tests/Core/ReactIdGeneratorTests.cs b/tests/React.Tests/Core/ReactIdGeneratorTests.cs index c8466b432..ae82d9210 100644 --- a/tests/React.Tests/Core/ReactIdGeneratorTests.cs +++ b/tests/React.Tests/Core/ReactIdGeneratorTests.cs @@ -1,10 +1,8 @@ /* - * Copyright (c) 2016-Present, Facebook, Inc. - * All rights reserved. + * Copyright (c) Facebook, Inc. and its affiliates. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ using System; diff --git a/tests/React.Tests/Mvc/HtmlHelperExtensionsTests.cs b/tests/React.Tests/Mvc/HtmlHelperExtensionsTests.cs index ce051ee85..1026b4ca7 100644 --- a/tests/React.Tests/Mvc/HtmlHelperExtensionsTests.cs +++ b/tests/React.Tests/Mvc/HtmlHelperExtensionsTests.cs @@ -1,10 +1,8 @@ /* - * Copyright (c) 2014-Present, Facebook, Inc. - * All rights reserved. + * Copyright (c) Facebook, Inc. and its affiliates. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ #if NET452 diff --git a/tests/React.Tests/Owin/EntryAssemblyFileSystemTests.cs b/tests/React.Tests/Owin/EntryAssemblyFileSystemTests.cs index 83fd1f90b..7f5e6c3d2 100644 --- a/tests/React.Tests/Owin/EntryAssemblyFileSystemTests.cs +++ b/tests/React.Tests/Owin/EntryAssemblyFileSystemTests.cs @@ -1,10 +1,8 @@ /* - * Copyright (c) 2016-present, Facebook, Inc. - * All rights reserved. + * Copyright (c) Facebook, Inc. and its affiliates. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ #if NET452 diff --git a/tests/React.Tests/Router/HtmlHelperExtensionsTest.cs b/tests/React.Tests/Router/HtmlHelperExtensionsTest.cs index 65aeab927..9600744d4 100644 --- a/tests/React.Tests/Router/HtmlHelperExtensionsTest.cs +++ b/tests/React.Tests/Router/HtmlHelperExtensionsTest.cs @@ -1,10 +1,8 @@ /* - * Copyright (c) 2014-Present, Facebook, Inc. - * All rights reserved. + * Copyright (c) Facebook, Inc. and its affiliates. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ #if NET452 diff --git a/tests/React.Tests/Router/ReactEnvironmentExtensionsTest.cs b/tests/React.Tests/Router/ReactEnvironmentExtensionsTest.cs index a8b44ff23..a1327f2f8 100644 --- a/tests/React.Tests/Router/ReactEnvironmentExtensionsTest.cs +++ b/tests/React.Tests/Router/ReactEnvironmentExtensionsTest.cs @@ -1,10 +1,8 @@ /* - * Copyright (c) 2014-Present, Facebook, Inc. - * All rights reserved. + * Copyright (c) Facebook, Inc. and its affiliates. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ #if NET452 || NETCOREAPP2_0 diff --git a/tests/React.Tests/Router/ReactRouterComponentTest.cs b/tests/React.Tests/Router/ReactRouterComponentTest.cs index 02c6ceb5e..42f43d23d 100644 --- a/tests/React.Tests/Router/ReactRouterComponentTest.cs +++ b/tests/React.Tests/Router/ReactRouterComponentTest.cs @@ -1,10 +1,8 @@ /* - * Copyright (c) 2014-Present, Facebook, Inc. - * All rights reserved. + * Copyright (c) Facebook, Inc. and its affiliates. * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. */ #if NET452 || NETCOREAPP2_0 From 6ee9a2717078ce11d79d307cddd75c03db4d33d1 Mon Sep 17 00:00:00 2001 From: Arief Abu Bakar Date: Thu, 15 Nov 2018 05:52:39 +0800 Subject: [PATCH 081/530] Update README.md (#625) --- README.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index bc0c7086f..6be5a09ab 100644 --- a/README.md +++ b/README.md @@ -12,13 +12,13 @@ ReactJS.NET is a library that makes it easier to use [Babel](http://babeljs.io/) * JSX to JavaScript compilation via popular minification/combination libraries: - - [ASP.NET Bundling and Minification](http://reactjs.net/guides/weboptimizer.html) - - [Cassette](http://reactjs.net/guides/cassette.html) - - [Webpack](http://reactjs.net/guides/webpack.html) - - [MSBuild](http://reactjs.net/guides/msbuild.html) -* [Server-side component rendering](http://reactjs.net/guides/server-side-rendering.html) + - [ASP.NET Bundling and Minification](http://reactjs.net/bundling/weboptimizer.html) + - [Cassette](http://reactjs.net/bundling/cassette.html) + - [Webpack](http://reactjs.net/bundling/webpack.html) + - [MSBuild](http://reactjs.net/bundling/msbuild.html) +* [Server-side component rendering](http://reactjs.net/features/server-side-rendering.html) to make your initial render super-fast (experimental!) -* [Runs on Windows, OS X and Linux](http://reactjs.net/guides/chakracore.html) via .NET Core and ChakraCore +* [Runs on Windows, OS X and Linux](http://reactjs.net/getting-started/chakracore.html) via .NET Core and ChakraCore * Supports both ASP.NET 4.0/4.5 and ASP.NET Core * Server-side style rendering with CSS-in-JS libraries From 6106da6c004ef5f43035d3d6e9a56693524d9ecd Mon Sep 17 00:00:00 2001 From: Daniel Lo Nigro Date: Wed, 14 Nov 2018 13:59:34 -0800 Subject: [PATCH 082/530] Add some missing redirects --- netlify.toml | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/netlify.toml b/netlify.toml index ce94e8535..31296b025 100644 --- a/netlify.toml +++ b/netlify.toml @@ -22,6 +22,38 @@ [[redirects]] from = "/getting-started/tutorial.html" to = "/tutorials/aspnetcore.html" + +[[redirects]] + from = "/guides/weboptimizer.html" + to = "/bundling/weboptimizer.html" + +[[redirects]] + from = "/guides/cassette.html" + to = "/bundling/cassette.html" + +[[redirects]] + from = "/guides/webpack.html" + to = "/bundling/webpack.html" + +[[redirects]] + from = "/guides/msbuild.html" + to = "/bundling/msbuild.html" + +[[redirects]] + from = "/guides/server-side-rendering.html" + to = "/features/server-side-rendering.html" + +[[redirects]] + from = "/guides/es6.html" + to = "/features/es6.html" + +[[redirects]] + from = "/guides/react-router.html" + to = "/features/react-router.html" + +[[redirects]] + from = "/guides/chakracore.html" + to = "/getting-started/chakracore.html" # Old package URLs [[redirects]] From 038ef559219ae03e52f9bf0bac49791f3b434690 Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Sat, 17 Nov 2018 18:00:18 -0800 Subject: [PATCH 083/530] Improve chaining server-render helper functions It was always a bit clunky that the constructor was used for this. Now, there is a first-class ChainedRenderFunctions type that can be used to accomplish the same thing. --- site/jekyll/features/css-in-js.md | 8 +- site/jekyll/features/react-helmet.md | 2 +- .../RenderFunctions/ChainedRenderFunctions.cs | 92 +++++++++++++++++++ .../RenderFunctions/EmotionFunctions.cs | 13 +-- .../RenderFunctions/ReactHelmetFunctions.cs | 13 +-- .../RenderFunctions/ReactJssFunctions.cs | 17 +--- .../StyledComponentsFunctions.cs | 17 +--- src/React.Core/RenderFunctionsBase.cs | 68 +------------- src/React.Router/ReactRouterComponent.cs | 5 +- src/React.Router/ReactRouterFunctions.cs | 15 +-- .../Content/components/react-jss.jsx | 2 +- .../Views/Home/Index.cshtml | 10 +- tests/React.Tests/Core/ReactComponentTest.cs | 29 +++--- 13 files changed, 135 insertions(+), 156 deletions(-) create mode 100644 src/React.Core/RenderFunctions/ChainedRenderFunctions.cs diff --git a/site/jekyll/features/css-in-js.md b/site/jekyll/features/css-in-js.md index 2e4f78bc4..a78ff3088 100644 --- a/site/jekyll/features/css-in-js.md +++ b/site/jekyll/features/css-in-js.md @@ -9,6 +9,8 @@ CSS-in-JS is a technique for declaring styles within components. ReactJS.NET sup Make sure ReactJS.NET is up to date. You will need at least ReactJS.NET 4.0 (which is in public beta at the time of writing). +If you're using more than one CSS-in-JS library in your project, we've got you covered! Just pass mutliple server-render helper functions into `ChainedRenderFunctions`, and they will be called in the order they are passed in. + ### [Styled Components](https://github.com/styled-components/styled-components) Expose styled-components as `global.Styled`: @@ -27,7 +29,7 @@ Add the render helper to the call to `Html.React`: var styledComponentsFunctions = new StyledComponentsFunctions(); } -@Html.React("RootComponent", new { exampleProp = "a" }, renderFunctions: styledComponentsFunctions) +@Html.React("RootComponent", new { exampleProp = "a" }, renderFunctions: new ChainedRenderFunctions(styledComponentsFunctions)) @{ ViewBag.ServerStyles = styledComponentsFunctions.RenderedStyles; @@ -104,7 +106,7 @@ Add the render helper to the call to `Html.React`: var reactJssFunctions = new ReactJssFunctions(); } -@Html.React("RootComponent", new { exampleProp = "a" }, renderFunctions: reactJssFunctions) +@Html.React("RootComponent", new { exampleProp = "a" }, renderFunctions: new ChainedRenderFunctions(reactJssFunctions)) @{ ViewBag.ServerStyles = reactJssFunctions.RenderedStyles; @@ -189,7 +191,7 @@ Add the render helper to the call to `Html.React`: @using React.AspNet @using React.RenderFunctions -@Html.React("RootComponent", new { exampleProp = "a" }, renderFunctions: new EmotionFunctions()) +@Html.React("RootComponent", new { exampleProp = "a" }, renderFunctions: new ChainedRenderFunctions(new EmotionFunctions())) ``` You're now ready to declare styles inside components: diff --git a/site/jekyll/features/react-helmet.md b/site/jekyll/features/react-helmet.md index da639a9cf..66946afc8 100644 --- a/site/jekyll/features/react-helmet.md +++ b/site/jekyll/features/react-helmet.md @@ -25,7 +25,7 @@ Add the render helper to the call to `Html.React`: var helmetFunctions = new ReactHelmetFunctions(); } -@Html.React("RootComponent", new { exampleProp = "a" }, renderFunctions: helmetFunctions) +@Html.React("RootComponent", new { exampleProp = "a" }, renderFunctions: new ChainedRenderFunctions(helmetFunctions)) @{ ViewBag.HelmetTitle = helmetFunctions.RenderedHelmet.GetValueOrDefault("title"); diff --git a/src/React.Core/RenderFunctions/ChainedRenderFunctions.cs b/src/React.Core/RenderFunctions/ChainedRenderFunctions.cs new file mode 100644 index 000000000..a0bc391c6 --- /dev/null +++ b/src/React.Core/RenderFunctions/ChainedRenderFunctions.cs @@ -0,0 +1,92 @@ +using System; +using System.Text; + +namespace React.RenderFunctions +{ + /// + /// Helper to chain functions to be executed during server-side rendering. + /// For instance, React Router and React Helmet can both be used together using this class. + /// + public class ChainedRenderFunctions : IRenderFunctions + { + private readonly IRenderFunctions[] _chainedFunctions; + + /// + /// Constructor. Supports chained calls to multiple render functions by passing in a set of functions that should be called next. + /// + /// The chained render functions to call + public ChainedRenderFunctions(params IRenderFunctions[] chainedFunctions) + { + _chainedFunctions = chainedFunctions; + } + + /// + /// Executes before component render. + /// It takes a func that accepts a Javascript code expression to evaluate, which returns the result of the expression. + /// This is useful for setting up variables that will be referenced after the render completes. + /// The func to execute + /// + public void PreRender(Func executeJs) + { + foreach (var chainedFunction in _chainedFunctions) + { + chainedFunction.PreRender(executeJs); + } + } + + + /// + /// Transforms the React.createElement expression. + /// This is useful for libraries like styled components which require wrapping the root component + /// inside a helper to generate a stylesheet. + /// Example transform: React.createElement(Foo, ...) => wrapComponent(React.createElement(Foo, ...)) + /// + /// The Javascript expression to wrap + /// A wrapped expression + public string WrapComponent(string componentToRender) + { + string wrappedComponent = componentToRender; + + foreach (var chainedFunction in _chainedFunctions) + { + wrappedComponent = chainedFunction.WrapComponent(wrappedComponent); + } + + return wrappedComponent; + } + + + /// + /// Transforms the compiled rendered component HTML + /// This is useful for libraries like emotion which take rendered component HTML and output the transformed HTML plus additional style tags + /// + /// The component HTML + /// A wrapped expression + public string TransformRenderedHtml(string input) + { + string renderedHtml = input; + + foreach (var chainedFunction in _chainedFunctions) + { + renderedHtml = chainedFunction.TransformRenderedHtml(renderedHtml); + } + + return renderedHtml; + } + + + /// + /// Executes after component render. + /// It takes a func that accepts a Javascript code expression to evaluate, which returns the result of the expression. + /// This is useful for reading computed state, such as generated stylesheets or a router redirect result. + /// + /// The func to execute + public void PostRender(Func executeJs) + { + foreach (var chainedFunction in _chainedFunctions) + { + chainedFunction.PostRender(executeJs); + } + } + } +} diff --git a/src/React.Core/RenderFunctions/EmotionFunctions.cs b/src/React.Core/RenderFunctions/EmotionFunctions.cs index 596be7c1d..0707fc3c9 100644 --- a/src/React.Core/RenderFunctions/EmotionFunctions.cs +++ b/src/React.Core/RenderFunctions/EmotionFunctions.cs @@ -9,23 +9,12 @@ namespace React.RenderFunctions /// public class EmotionFunctions : RenderFunctionsBase { - /// - /// Constructor. Supports chained calls to multiple render functions by passing in a set of functions that should be called next. - /// The functions within the provided RenderFunctions will be called *after* this instance's. - /// Supports null as an argument. - /// - /// The chained render functions to call - public EmotionFunctions(IRenderFunctions renderFunctions = null) - : base(renderFunctions) - { - } - /// /// Implementation of TransformRenderedHtml /// /// /// - protected override string TransformRenderedHtmlCore(string input) + public override string TransformRenderedHtml(string input) { return $"EmotionServer.renderStylesToString({input})"; } diff --git a/src/React.Core/RenderFunctions/ReactHelmetFunctions.cs b/src/React.Core/RenderFunctions/ReactHelmetFunctions.cs index 8ec587b50..628ad7f5f 100644 --- a/src/React.Core/RenderFunctions/ReactHelmetFunctions.cs +++ b/src/React.Core/RenderFunctions/ReactHelmetFunctions.cs @@ -11,17 +11,6 @@ namespace React.RenderFunctions /// public class ReactHelmetFunctions : RenderFunctionsBase { - /// - /// Constructor. Supports chained calls to multiple render functions by passing in a set of functions that should be called next. - /// The functions within the provided RenderFunctions will be called *after* this instance's. - /// Supports null as an argument. - /// - /// The chained render functions to call - public ReactHelmetFunctions(IRenderFunctions renderFunctions = null) - : base(renderFunctions) - { - } - /// /// Dictionary of Helmet properties, rendered as raw HTML tags /// Available keys: "base", "bodyAttributes", "htmlAttributes", "link", "meta", "noscript", "script", "style", "title" @@ -32,7 +21,7 @@ public ReactHelmetFunctions(IRenderFunctions renderFunctions = null) /// Implementation of PostRender /// /// - protected override void PostRenderCore(Func executeJs) + public override void PostRender(Func executeJs) { var helmetString = executeJs(@" var helmetResult = Helmet.default.renderStatic(); diff --git a/src/React.Core/RenderFunctions/ReactJssFunctions.cs b/src/React.Core/RenderFunctions/ReactJssFunctions.cs index 8442c3469..155d961b4 100644 --- a/src/React.Core/RenderFunctions/ReactJssFunctions.cs +++ b/src/React.Core/RenderFunctions/ReactJssFunctions.cs @@ -8,17 +8,6 @@ namespace React.RenderFunctions /// public class ReactJssFunctions : RenderFunctionsBase { - /// - /// Constructor. Supports chained calls to multiple render functions by passing in a set of functions that should be called next. - /// The functions within the provided RenderFunctions will be called *after* this instance's. - /// Supports null as an argument. - /// - /// The chained render functions to call - public ReactJssFunctions(IRenderFunctions renderFunctions = null) - : base(renderFunctions) - { - } - /// /// HTML style tag containing the rendered styles /// @@ -28,7 +17,7 @@ public ReactJssFunctions(IRenderFunctions renderFunctions = null) /// Implementation of PreRender ///
    /// - protected override void PreRenderCore(Func executeJs) + public override void PreRender(Func executeJs) { executeJs("var reactJssProps = { registry: new ReactJss.SheetsRegistry() };"); } @@ -38,7 +27,7 @@ protected override void PreRenderCore(Func executeJs) /// /// /// - protected override string WrapComponentCore(string componentToRender) + public override string WrapComponent(string componentToRender) { return ($"React.createElement(ReactJss.JssProvider, reactJssProps, ({componentToRender}))"); } @@ -47,7 +36,7 @@ protected override string WrapComponentCore(string componentToRender) /// Implementation of PostRender /// /// - protected override void PostRenderCore(Func executeJs) + public override void PostRender(Func executeJs) { RenderedStyles = $""; } diff --git a/src/React.Core/RenderFunctions/StyledComponentsFunctions.cs b/src/React.Core/RenderFunctions/StyledComponentsFunctions.cs index 23935069e..2cfbbe25a 100644 --- a/src/React.Core/RenderFunctions/StyledComponentsFunctions.cs +++ b/src/React.Core/RenderFunctions/StyledComponentsFunctions.cs @@ -8,17 +8,6 @@ namespace React.RenderFunctions /// public class StyledComponentsFunctions : RenderFunctionsBase { - /// - /// Constructor. Supports chained calls to multiple render functions by passing in a set of functions that should be called next. - /// The functions within the provided RenderFunctions will be called *after* this instance's. - /// Supports null as an argument. - /// - /// The chained render functions to call - public StyledComponentsFunctions(IRenderFunctions renderFunctions = null) - : base(renderFunctions) - { - } - /// /// HTML style tag containing the rendered styles /// @@ -28,7 +17,7 @@ public StyledComponentsFunctions(IRenderFunctions renderFunctions = null) /// Implementation of PreRender /// /// - protected override void PreRenderCore(Func executeJs) + public override void PreRender(Func executeJs) { executeJs("var serverStyleSheet = new Styled.ServerStyleSheet();"); } @@ -38,7 +27,7 @@ protected override void PreRenderCore(Func executeJs) /// /// /// - protected override string WrapComponentCore(string componentToRender) + public override string WrapComponent(string componentToRender) { return ($"serverStyleSheet.collectStyles({componentToRender})"); } @@ -47,7 +36,7 @@ protected override string WrapComponentCore(string componentToRender) /// Implementation of PostRender /// /// - protected override void PostRenderCore(Func executeJs) + public override void PostRender(Func executeJs) { RenderedStyles = executeJs("serverStyleSheet.getStyleTags()"); } diff --git a/src/React.Core/RenderFunctionsBase.cs b/src/React.Core/RenderFunctionsBase.cs index 6bcb26d63..fdf4f3fcf 100644 --- a/src/React.Core/RenderFunctionsBase.cs +++ b/src/React.Core/RenderFunctionsBase.cs @@ -8,62 +8,14 @@ namespace React /// public abstract class RenderFunctionsBase : IRenderFunctions { - private readonly IRenderFunctions _renderFunctions; - - /// - /// Constructor. Supports chained calls to multiple render functions by passing in a set of functions that should be called next. - /// The functions within the provided RenderFunctions will be called *after* this instance's. - /// Supports null as an argument. - /// - /// The chained render functions to call - protected RenderFunctionsBase(IRenderFunctions renderFunctions) - { - _renderFunctions = renderFunctions; - } - - /// - /// Implementation of PreRender - /// - /// - protected virtual void PreRenderCore(Func executeJs) - { - } - - /// - /// Implementation of WrapComponent - /// - /// - /// - protected virtual string WrapComponentCore(string componentToRender) - { - return componentToRender; - } - - /// - /// Implementation of TransformRenderedHtml - /// - /// - /// - protected virtual string TransformRenderedHtmlCore(string input) => input; - - /// - /// Implementation of PostRender - /// - /// - protected virtual void PostRenderCore(Func executeJs) - { - } - /// /// Executes before component render. /// It takes a func that accepts a Javascript code expression to evaluate, which returns the result of the expression. /// This is useful for setting up variables that will be referenced after the render completes. /// The func to execute /// - public void PreRender(Func executeJs) + public virtual void PreRender(Func executeJs) { - PreRenderCore(executeJs); - _renderFunctions?.PreRender(executeJs); } @@ -75,12 +27,7 @@ public void PreRender(Func executeJs) /// /// The Javascript expression to wrap /// A wrapped expression - public string WrapComponent(string componentToRender) - { - return _renderFunctions == null - ? WrapComponentCore(componentToRender) - : _renderFunctions.WrapComponent(WrapComponentCore(componentToRender)); - } + public virtual string WrapComponent(string componentToRender) => componentToRender; /// @@ -89,12 +36,7 @@ public string WrapComponent(string componentToRender) /// /// The component HTML /// A wrapped expression - public string TransformRenderedHtml(string input) - { - return _renderFunctions == null - ? TransformRenderedHtmlCore(input) - : _renderFunctions.TransformRenderedHtml(TransformRenderedHtmlCore(input)); - } + public virtual string TransformRenderedHtml(string input) => input; /// @@ -103,10 +45,8 @@ public string TransformRenderedHtml(string input) /// This is useful for reading computed state, such as generated stylesheets or a router redirect result. /// /// The func to execute - public void PostRender(Func executeJs) + public virtual void PostRender(Func executeJs) { - PostRenderCore(executeJs); - _renderFunctions?.PostRender(executeJs); } } } diff --git a/src/React.Router/ReactRouterComponent.cs b/src/React.Router/ReactRouterComponent.cs index 9894dbbba..6cfe54858 100644 --- a/src/React.Router/ReactRouterComponent.cs +++ b/src/React.Router/ReactRouterComponent.cs @@ -7,6 +7,7 @@ using System.IO; using Newtonsoft.Json; +using React.RenderFunctions; namespace React.Router { @@ -54,12 +55,12 @@ public virtual ExecutionResult RenderRouterWithContext( IRenderFunctions renderFunctions = null ) { - var reactRouterFunctions = new ReactRouterFunctions(renderFunctions: renderFunctions); + var reactRouterFunctions = new ReactRouterFunctions(); var html = RenderHtml( renderContainerOnly, renderServerOnly, - renderFunctions: reactRouterFunctions + renderFunctions: new ChainedRenderFunctions(renderFunctions, reactRouterFunctions) ); return new ExecutionResult diff --git a/src/React.Router/ReactRouterFunctions.cs b/src/React.Router/ReactRouterFunctions.cs index 07985e3b2..0ccf5bb0a 100644 --- a/src/React.Router/ReactRouterFunctions.cs +++ b/src/React.Router/ReactRouterFunctions.cs @@ -7,17 +7,6 @@ namespace React.Router /// public class ReactRouterFunctions : RenderFunctionsBase { - /// - /// Constructor. Supports chained calls to multiple render functions by passing in a set of functions that should be called next. - /// The functions within the provided RenderFunctions will be called *after* this instance's. - /// Supports null as an argument. - /// - /// The chained render functions to call - public ReactRouterFunctions(IRenderFunctions renderFunctions = null) - : base(renderFunctions) - { - } - /// /// The returned react router context, as a JSON string /// @@ -27,7 +16,7 @@ public ReactRouterFunctions(IRenderFunctions renderFunctions = null) /// Implementation of PreRender /// /// - protected override void PreRenderCore(Func executeJs) + public override void PreRender(Func executeJs) { executeJs("var context = {};"); } @@ -36,7 +25,7 @@ protected override void PreRenderCore(Func executeJs) /// Implementation of PostRender /// /// - protected override void PostRenderCore(Func executeJs) + public override void PostRender(Func executeJs) { ReactRouterContext = executeJs("JSON.stringify(context);"); } diff --git a/src/React.Sample.Webpack.CoreMvc/Content/components/react-jss.jsx b/src/React.Sample.Webpack.CoreMvc/Content/components/react-jss.jsx index 842133752..d999c360c 100644 --- a/src/React.Sample.Webpack.CoreMvc/Content/components/react-jss.jsx +++ b/src/React.Sample.Webpack.CoreMvc/Content/components/react-jss.jsx @@ -42,7 +42,7 @@ export class ReactJssDemo extends React.Component { ReactJS.NET Demos | React-JSS - ; + ); } diff --git a/src/React.Sample.Webpack.CoreMvc/Views/Home/Index.cshtml b/src/React.Sample.Webpack.CoreMvc/Views/Home/Index.cshtml index 0b867d35a..339e30010 100644 --- a/src/React.Sample.Webpack.CoreMvc/Views/Home/Index.cshtml +++ b/src/React.Sample.Webpack.CoreMvc/Views/Home/Index.cshtml @@ -5,11 +5,13 @@ @{ Layout = "_Layout"; var emotionFunctions = new EmotionFunctions(); - var styledComponentsFunctions = new StyledComponentsFunctions(emotionFunctions); - var reactJssFunctions = new ReactJssFunctions(styledComponentsFunctions); - var helmetFunctions = new ReactHelmetFunctions(reactJssFunctions); + var styledComponentsFunctions = new StyledComponentsFunctions(); + var reactJssFunctions = new ReactJssFunctions(); + var helmetFunctions = new ReactHelmetFunctions(); + + var chainedFunctions = new ChainedRenderFunctions(emotionFunctions, styledComponentsFunctions, reactJssFunctions, helmetFunctions); } -@Html.ReactRouter("RootComponent", new { }, renderFunctions: helmetFunctions) +@Html.ReactRouter("RootComponent", new { }, renderFunctions: chainedFunctions) @{ ViewBag.ServerStyles = styledComponentsFunctions.RenderedStyles + reactJssFunctions.RenderedStyles; ViewBag.HelmetTitle = helmetFunctions.RenderedHelmet.GetValueOrDefault("title"); diff --git a/tests/React.Tests/Core/ReactComponentTest.cs b/tests/React.Tests/Core/ReactComponentTest.cs index b906eebb8..fe699ac65 100644 --- a/tests/React.Tests/Core/ReactComponentTest.cs +++ b/tests/React.Tests/Core/ReactComponentTest.cs @@ -9,6 +9,7 @@ using JavaScriptEngineSwitcher.Core; using Moq; using React.Exceptions; +using React.RenderFunctions; using Xunit; namespace React.Tests.Core @@ -365,52 +366,48 @@ public void RenderFunctionsCalled() [Fact] public void ChainedRenderFunctionsCalled() { - var renderFunctions = new TestRenderFunctions(); - var chainedRenderFunctions = new TestRenderFunctions(renderFunctions); + var firstInstance = new TestRenderFunctions(); + var secondInstance = new TestRenderFunctions(); + var chainedRenderFunctions = new ChainedRenderFunctions(firstInstance, secondInstance); chainedRenderFunctions.PreRender(a => "prerender-result"); - Assert.Equal("prerender-result", renderFunctions.PreRenderResult); - Assert.Equal("prerender-result", chainedRenderFunctions.PreRenderResult); + Assert.Equal("prerender-result", firstInstance.PreRenderResult); + Assert.Equal("prerender-result", secondInstance.PreRenderResult); string wrapComponentResult = chainedRenderFunctions.WrapComponent("React.createElement('div', null)"); Assert.Equal("wrap(wrap(React.createElement('div', null)))", wrapComponentResult); - Assert.Equal("outerWrap(input)", renderFunctions.TransformRenderedHtml("input")); + Assert.Equal("outerWrap(input)", firstInstance.TransformRenderedHtml("input")); Assert.Equal("outerWrap(outerWrap(input))", chainedRenderFunctions.TransformRenderedHtml("input")); chainedRenderFunctions.PostRender(a => "postrender-result"); - Assert.Equal("postrender-result", renderFunctions.PostRenderResult); - Assert.Equal("postrender-result", chainedRenderFunctions.PostRenderResult); + Assert.Equal("postrender-result", firstInstance.PostRenderResult); + Assert.Equal("postrender-result", secondInstance.PostRenderResult); } private sealed class TestRenderFunctions : RenderFunctionsBase { - public TestRenderFunctions(IRenderFunctions renderFunctions = null) - : base(renderFunctions) - { - } - public string PreRenderResult { get; private set; } public string PostRenderResult { get; private set; } - protected override void PreRenderCore(Func executeJs) + public override void PreRender(Func executeJs) { PreRenderResult = executeJs("prerender();"); } - protected override string WrapComponentCore(string componentToRender) + public override string WrapComponent(string componentToRender) { return $"wrap({componentToRender})"; } - protected override string TransformRenderedHtmlCore(string input) + public override string TransformRenderedHtml(string input) { return $"outerWrap({input})"; } - protected override void PostRenderCore(Func executeJs) + public override void PostRender(Func executeJs) { PostRenderResult = executeJs("postrender();"); } From 037b0167b993cbe124a72d750ee2e6222623297a Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Sat, 17 Nov 2018 18:56:02 -0800 Subject: [PATCH 084/530] Filter out null arguments in constructor --- src/React.Core/RenderFunctions/ChainedRenderFunctions.cs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/React.Core/RenderFunctions/ChainedRenderFunctions.cs b/src/React.Core/RenderFunctions/ChainedRenderFunctions.cs index a0bc391c6..5e53b8773 100644 --- a/src/React.Core/RenderFunctions/ChainedRenderFunctions.cs +++ b/src/React.Core/RenderFunctions/ChainedRenderFunctions.cs @@ -1,4 +1,6 @@ using System; +using System.Collections.ObjectModel; +using System.Linq; using System.Text; namespace React.RenderFunctions @@ -9,7 +11,7 @@ namespace React.RenderFunctions /// public class ChainedRenderFunctions : IRenderFunctions { - private readonly IRenderFunctions[] _chainedFunctions; + private readonly ReadOnlyCollection _chainedFunctions; /// /// Constructor. Supports chained calls to multiple render functions by passing in a set of functions that should be called next. @@ -17,7 +19,7 @@ public class ChainedRenderFunctions : IRenderFunctions /// The chained render functions to call public ChainedRenderFunctions(params IRenderFunctions[] chainedFunctions) { - _chainedFunctions = chainedFunctions; + _chainedFunctions = chainedFunctions.Where(x => x != null).ToList().AsReadOnly(); } /// From bb39819e25ab9f9e8b2631eb2f2897fd37719c98 Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Sat, 17 Nov 2018 18:56:49 -0800 Subject: [PATCH 085/530] Migrate away from expose-loader to fix ES6 import-related issues --- .../RenderFunctions/ReactHelmetFunctions.cs | 2 +- src/React.Sample.Webpack.CoreMvc/.babelrc | 5 +-- .../Content/components/expose-components.js | 29 ++++++++++----- .../package-lock.json | 36 ++++++++++++++----- src/React.Sample.Webpack.CoreMvc/package.json | 2 -- 5 files changed, 49 insertions(+), 25 deletions(-) diff --git a/src/React.Core/RenderFunctions/ReactHelmetFunctions.cs b/src/React.Core/RenderFunctions/ReactHelmetFunctions.cs index 628ad7f5f..56c12e662 100644 --- a/src/React.Core/RenderFunctions/ReactHelmetFunctions.cs +++ b/src/React.Core/RenderFunctions/ReactHelmetFunctions.cs @@ -24,7 +24,7 @@ public class ReactHelmetFunctions : RenderFunctionsBase public override void PostRender(Func executeJs) { var helmetString = executeJs(@" -var helmetResult = Helmet.default.renderStatic(); +var helmetResult = Helmet.renderStatic(); JSON.stringify(['base', 'bodyAttributes', 'htmlAttributes', 'link', 'meta', 'noscript', 'script', 'style', 'title'] .reduce((mappedResults, helmetKey) => Object.assign(mappedResults, { [helmetKey]: helmetResult[helmetKey] && helmetResult[helmetKey].toString() }), {}));"); diff --git a/src/React.Sample.Webpack.CoreMvc/.babelrc b/src/React.Sample.Webpack.CoreMvc/.babelrc index 3387cf86a..027fa5a75 100644 --- a/src/React.Sample.Webpack.CoreMvc/.babelrc +++ b/src/React.Sample.Webpack.CoreMvc/.babelrc @@ -1,6 +1,3 @@ { - "presets": ["react", "env"], - "plugins": [ - "add-module-exports" - ] + "presets": ["react", "env"] } diff --git a/src/React.Sample.Webpack.CoreMvc/Content/components/expose-components.js b/src/React.Sample.Webpack.CoreMvc/Content/components/expose-components.js index 997c2198b..afb2aa458 100644 --- a/src/React.Sample.Webpack.CoreMvc/Content/components/expose-components.js +++ b/src/React.Sample.Webpack.CoreMvc/Content/components/expose-components.js @@ -1,9 +1,20 @@ -require('expose-loader?React!react'); -require('expose-loader?ReactDOM!react-dom'); -require('expose-loader?ReactDOMServer!react-dom/server'); - -require('expose-loader?RootComponent!./home.jsx'); -require('expose-loader?Styled!styled-components'); -require('expose-loader?ReactJss!react-jss'); -require('expose-loader?EmotionServer!emotion-server'); -require('expose-loader?Helmet!react-helmet'); +import React from 'react'; +import ReactDOM from 'react-dom'; +import ReactDOMServer from 'react-dom/server'; + +import RootComponent from './home.jsx'; +import { ServerStyleSheet } from 'styled-components'; +import { JssProvider, SheetsRegistry } from 'react-jss'; +import { renderStylesToString } from 'emotion-server'; +import Helmet from 'react-helmet'; + +global.React = React; +global.ReactDOM = ReactDOM; +global.ReactDOMServer = ReactDOMServer; + +global.Styled = { ServerStyleSheet }; +global.ReactJss = { JssProvider, SheetsRegistry }; +global.EmotionServer = { renderStylesToString }; +global.Helmet = Helmet; + +global.RootComponent = RootComponent; diff --git a/src/React.Sample.Webpack.CoreMvc/package-lock.json b/src/React.Sample.Webpack.CoreMvc/package-lock.json index df5088d2a..5e53b552e 100644 --- a/src/React.Sample.Webpack.CoreMvc/package-lock.json +++ b/src/React.Sample.Webpack.CoreMvc/package-lock.json @@ -1827,6 +1827,7 @@ "block-stream": { "version": "0.0.9", "bundled": true, + "optional": true, "requires": { "inherits": "~2.0.0" } @@ -1848,7 +1849,8 @@ }, "buffer-shims": { "version": "1.0.0", - "bundled": true + "bundled": true, + "optional": true }, "caseless": { "version": "0.12.0", @@ -1862,7 +1864,8 @@ }, "code-point-at": { "version": "1.1.0", - "bundled": true + "bundled": true, + "optional": true }, "combined-stream": { "version": "1.0.5", @@ -1878,15 +1881,18 @@ }, "console-control-strings": { "version": "1.1.0", - "bundled": true + "bundled": true, + "optional": true }, "core-util-is": { "version": "1.0.2", - "bundled": true + "bundled": true, + "optional": true }, "cryptiles": { "version": "2.0.5", "bundled": true, + "optional": true, "requires": { "boom": "2.x.x" } @@ -1949,7 +1955,8 @@ }, "extsprintf": { "version": "1.0.2", - "bundled": true + "bundled": true, + "optional": true }, "forever-agent": { "version": "0.6.1", @@ -2058,6 +2065,7 @@ "hawk": { "version": "3.1.3", "bundled": true, + "optional": true, "requires": { "boom": "2.x.x", "cryptiles": "2.x.x", @@ -2099,6 +2107,7 @@ "is-fullwidth-code-point": { "version": "1.0.0", "bundled": true, + "optional": true, "requires": { "number-is-nan": "1.0.1" } @@ -2110,7 +2119,8 @@ }, "isarray": { "version": "1.0.0", - "bundled": true + "bundled": true, + "optional": true }, "isstream": { "version": "0.1.2", @@ -2297,7 +2307,8 @@ }, "process-nextick-args": { "version": "1.0.7", - "bundled": true + "bundled": true, + "optional": true }, "punycode": { "version": "1.4.1", @@ -2330,6 +2341,7 @@ "readable-stream": { "version": "2.2.9", "bundled": true, + "optional": true, "requires": { "buffer-shims": "~1.0.0", "core-util-is": "~1.0.0", @@ -2378,7 +2390,8 @@ }, "safe-buffer": { "version": "5.0.1", - "bundled": true + "bundled": true, + "optional": true }, "semver": { "version": "5.3.0", @@ -2398,6 +2411,7 @@ "sntp": { "version": "1.0.9", "bundled": true, + "optional": true, "requires": { "hoek": "2.x.x" } @@ -2428,6 +2442,7 @@ "string-width": { "version": "1.0.2", "bundled": true, + "optional": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", @@ -2437,6 +2452,7 @@ "string_decoder": { "version": "1.0.1", "bundled": true, + "optional": true, "requires": { "safe-buffer": "^5.0.1" } @@ -2461,6 +2477,7 @@ "tar": { "version": "2.2.1", "bundled": true, + "optional": true, "requires": { "block-stream": "*", "fstream": "^1.0.2", @@ -2510,7 +2527,8 @@ }, "util-deprecate": { "version": "1.0.2", - "bundled": true + "bundled": true, + "optional": true }, "uuid": { "version": "3.0.1", diff --git a/src/React.Sample.Webpack.CoreMvc/package.json b/src/React.Sample.Webpack.CoreMvc/package.json index 86546f20b..3e59e5359 100644 --- a/src/React.Sample.Webpack.CoreMvc/package.json +++ b/src/React.Sample.Webpack.CoreMvc/package.json @@ -9,12 +9,10 @@ "dependencies": { "babel-core": "^6.26.3", "babel-loader": "^7.1.2", - "babel-plugin-add-module-exports": "^0.2.1", "babel-preset-env": "^1.6.1", "babel-preset-react": "^6.24.1", "emotion": "^9.2.12", "emotion-server": "^9.2.12", - "expose-loader": "^0.7.3", "react": "^16.5.2", "react-dom": "^16.5.2", "react-emotion": "^9.2.12", From 3556f1920b10f9847ea7929e1f49e36606253fe8 Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Sat, 17 Nov 2018 20:23:04 -0800 Subject: [PATCH 086/530] Update webpack docs --- site/jekyll/bundling/webpack.md | 58 ++++++++++++++++++--------------- 1 file changed, 32 insertions(+), 26 deletions(-) diff --git a/site/jekyll/bundling/webpack.md b/site/jekyll/bundling/webpack.md index 6fe0fd4c6..ff6ea4405 100644 --- a/site/jekyll/bundling/webpack.md +++ b/site/jekyll/bundling/webpack.md @@ -3,21 +3,17 @@ layout: docs title: Webpack --- -This guide is for Webpack 1. To see the latest example for how to use webpack, check out the [sample project](https://github.com/reactjs/React.NET/tree/master/src/React.Sample.Webpack.CoreMvc). - [Webpack](http://webpack.github.io/docs/what-is-webpack.html) is a popular module bundling system built on top of Node.js. It can handle not only combination and minification of JavaScript and CSS files, but also other assets such as image files (spriting) through the use of plugins. Webpack can be used as an alternative to Cassette or ASP.NET Combination and Minification. This guide assumes you have already [installed Webpack](http://webpack.github.io/docs/installation.html). -In order to use Webpack with ReactJS.NET's server-side rendering, it is suggested that you create a separate bundle ("[entry point](http://webpack.github.io/docs/multiple-entry-points.html)") containing _only_ the code required to perform server-side rendering. Any components you would like to render server-side must be exposed globally so that ReactJS.NET can access them. This can be done through the [Webpack expose loader](https://github.com/webpack/expose-loader): +In order to use Webpack with ReactJS.NET's server-side rendering, it is suggested that you create a separate bundle ("[entry point](http://webpack.github.io/docs/multiple-entry-points.html)") containing _only_ the code required to perform server-side rendering. Any components you would like to render server-side must be exposed globally so that ReactJS.NET can access them. This can be done by assigning properties to `global`. Even though `global` is not available in the browser, Webpack will add a shim that makes any assigned properties available in the global Javascript scope. ```javascript // Content/components/index.js -module.exports = { - // All the components you'd like to render server-side - Avatar: require('./Avatar'), - Comment: require('./Comment'), - CommentsBox: require('./CommentsBox'), -}; +// All the components you'd like to render server-side +export Avatar from './Avatar'; +export Comment from './Comment'; +export CommentsBox from './CommentsBox'; ``` ```javascript @@ -25,49 +21,55 @@ module.exports = { // All JavaScript in here will be loaded server-side // Expose components globally so ReactJS.NET can use them -var Components = require('expose-loader?Components!./components'); +import Components from './components'; + +global.Components = Components; ``` The next step is to modify the `webpack.config.js` so that it creates a bundle from `Content/server.js`. A config similar to the following could work as a good starting point: ```javascript +// This example still uses CommonJS syntax because Node hasn't yet shipped support for ES6 module syntax at the time of writing var path = require('path'); module.exports = { - context: path.join(__dirname, 'Content'), entry: { - server: './server', - client: './client', + server: './Content/server.js', + client: './Content/client.js', }, output: { - path: path.join(__dirname, 'build'), - filename: '[name].bundle.js', + filename: './wwwroot/[name].bundle.js', }, module: { - loaders: [ - // Transform JSX in .jsx files - { test: /\.jsx$/, loader: 'jsx-loader?harmony' }, + rules: [ + { + test: /\.jsx?$/, + exclude: /node_modules/, + loader: 'babel-loader', + }, ], }, resolve: { // Allow require('./blah') to require blah.jsx extensions: ['', '.js', '.jsx'], }, - externals: { - // Use external version of React (from CDN for client-side, or - // bundled with ReactJS.NET for server-side) - react: 'React', - }, }; ``` This configuration uses two entry points (`Content/server.js` for the server side and `Content/client.js` for the client side) and will create two bundles (`build/server.bundle.js` and `build/client.bundle.js` respectively). Your configuration may be more complex, but generally you should only have a single bundle with all the code required for server-side rendering. -Our configuration also requires installation of the "expose" and "jsx" loaders: +Our configuration also requires installation of the "babel" loader: ``` -npm install --save-dev expose-loader -npm install --save-dev jsx-loader +npm install --save-dev babel-loader +``` + +You will also need a `.babelrc` in the root of your project: + +``` +{ + "presets": ["react", "env"] +} ``` Once Webpack has been configured, run `webpack` to build the bundles. Once you have verified that the bundle is being created correctly, you can modify your ReactJS.NET configuration (normally `App_Start\ReactConfig.cs`) to load the newly-created bundle: @@ -86,3 +88,7 @@ This will load all your components into the `Components` global, which can be us ``` A full example is available in [the ReactJS.NET repository](https://github.com/reactjs/React.NET/tree/master/src/React.Sample.Webpack.CoreMvc). + +### Migrating from expose-loader + +Mixing ES6 class syntax with CommonJS `require` has been the source of a lot of confusion, so we no longer recommend using `expose-loader`, `module.exports`, or `require`. Instead, use `import` and `export` statements throughout your whole React codebase when using Webpack. It is still fine to use `require` in webpack's config directly. From 80623adbaa78d3c368558baddee521c107caf591 Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Sat, 17 Nov 2018 20:26:46 -0800 Subject: [PATCH 087/530] Remove more references to expose-loader in documentation --- site/jekyll/features/css-in-js.md | 15 +++++++++------ site/jekyll/features/react-helmet.md | 5 +++-- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/site/jekyll/features/css-in-js.md b/site/jekyll/features/css-in-js.md index a78ff3088..2e8d12c4e 100644 --- a/site/jekyll/features/css-in-js.md +++ b/site/jekyll/features/css-in-js.md @@ -13,10 +13,11 @@ If you're using more than one CSS-in-JS library in your project, we've got you c ### [Styled Components](https://github.com/styled-components/styled-components) -Expose styled-components as `global.Styled`: +Expose styled-components in your server bundle: ```js -require('expose-loader?Styled!styled-components'); +import { ServerStyleSheet } from 'styled-components'; +global.Styled = { ServerStyleSheet }; ``` Add the render helper to the call to `Html.React`: @@ -90,10 +91,11 @@ export function StyledComponentsDemo() { ### [React-JSS](https://github.com/cssinjs/react-jss) -Expose react-jss as `global.ReactJss`: +Expose react-jss in your server bundle: ```js -require('expose-loader?ReactJss!react-jss'); +import { JssProvider, SheetsRegistry } from 'react-jss'; +global.ReactJss = { JssProvider, SheetsRegistry }; ``` Add the render helper to the call to `Html.React`: @@ -179,10 +181,11 @@ export class ReactJssDemo extends React.Component { Emotion's integration with ReactJS.NET only supports rendering inline styles (instead of rendering them in the document head). -Expose emotion as `global.EmotionServer`: +Expose emotion in your server bundle: ```js -require('expose-loader?EmotionServer!emotion-server'); +import { renderStylesToString } from 'emotion-server'; +global.EmotionServer = { renderStylesToString }; ``` Add the render helper to the call to `Html.React`: diff --git a/site/jekyll/features/react-helmet.md b/site/jekyll/features/react-helmet.md index 66946afc8..d7aab1a62 100644 --- a/site/jekyll/features/react-helmet.md +++ b/site/jekyll/features/react-helmet.md @@ -9,10 +9,11 @@ React Helmet is a library that allows setting elements inside the `` tag f Make sure ReactJS.NET is up to date. You will need at least ReactJS.NET 4.0 (which is in public beta at the time of writing). -Expose React Helmet as `global.Helmet`: +Expose React Helmet in your server bundle: ```js -require('expose-loader?Helmet!react-helmet'); +import Helmet from 'react-helmet'; +global.Helmet = Helmet; ``` Add the render helper to the call to `Html.React`: From 5fc0b5129e7526a32a2c427b65eb882115cc6d19 Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Sun, 18 Nov 2018 08:18:26 -0800 Subject: [PATCH 088/530] Fix server-render crash with remarkable in tutorials --- site/jekyll/tutorials/aspnet4.md | 11 ++++++++++- site/jekyll/tutorials/aspnetcore.md | 11 ++++++++++- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/site/jekyll/tutorials/aspnet4.md b/site/jekyll/tutorials/aspnet4.md index 165c9fb21..7f3ebf137 100644 --- a/site/jekyll/tutorials/aspnet4.md +++ b/site/jekyll/tutorials/aspnet4.md @@ -1036,9 +1036,18 @@ class CommentBox extends React.Component { We also need to update the `Comment` component to use `Remarkable` from either `global` or `window`, due to a bug in Remarkable: ```javascript{3} +function createRemarkable() { + var remarkable = + 'undefined' != typeof global && global.Remarkable + ? global.Remarkable + : window.Remarkable; + + return new remarkable(); +} + class Comment extends React.Component { rawMarkup() { - const md = new (global.Remarkable || window.Remarkable)(); + const md = createRemarkable(); const rawMarkup = md.render(this.props.children.toString()); return { __html: rawMarkup }; } diff --git a/site/jekyll/tutorials/aspnetcore.md b/site/jekyll/tutorials/aspnetcore.md index e462e781e..be00842ab 100644 --- a/site/jekyll/tutorials/aspnetcore.md +++ b/site/jekyll/tutorials/aspnetcore.md @@ -1020,9 +1020,18 @@ class CommentBox extends React.Component { We also need to update the `Comment` component to use `Remarkable` from either `global` or `window`, due to a bug in Remarkable: ```javascript{3} +function createRemarkable() { + var remarkable = + 'undefined' != typeof global && global.Remarkable + ? global.Remarkable + : window.Remarkable; + + return new remarkable(); +} + class Comment extends React.Component { rawMarkup() { - const md = new (global.Remarkable || window.Remarkable)(); + const md = createRemarkable(); const rawMarkup = md.render(this.props.children.toString()); return { __html: rawMarkup }; } From 929dc5b3f4629efea4ffb0888f0e570e311d7862 Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Mon, 19 Nov 2018 13:29:51 -0800 Subject: [PATCH 089/530] 4.0.0-rc1 --- build.proj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.proj b/build.proj index c47ad27be..7698b9a26 100644 --- a/build.proj +++ b/build.proj @@ -11,7 +11,7 @@ of patent rights can be found in the PATENTS file in the same directory. 4 0 - 0-beta5 + 0-rc1 0 http://reactjs.net/packages/ $(MSBuildProjectDirectory)\tools\MSBuildTasks From 3cd5d13ee75cab4184a7f06efb39b8efc1be0f55 Mon Sep 17 00:00:00 2001 From: saransh kataria Date: Wed, 19 Dec 2018 20:08:39 -0800 Subject: [PATCH 090/530] added documentation Added documentation about setting debug mode in bundling and minification as requested in #633 --- site/jekyll/bundling/weboptimizer.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/site/jekyll/bundling/weboptimizer.md b/site/jekyll/bundling/weboptimizer.md index 86d076c81..3d34575fd 100644 --- a/site/jekyll/bundling/weboptimizer.md +++ b/site/jekyll/bundling/weboptimizer.md @@ -42,3 +42,12 @@ bundles.Add(new Bundle("~/bundles/main", new IBundleTransform[] "~/Content/HelloWorld.react.jsx" )); ``` + +Note that debug mode should be set to `false` in your `Web.config` file for this to work. + +```csharp +// Web.config + + + +``` From 131aca8aaccd08c8921c6595e123b9f158e7c9c9 Mon Sep 17 00:00:00 2001 From: kpkozak <15384586+kpkozak@users.noreply.github.com> Date: Tue, 25 Dec 2018 02:53:28 +0100 Subject: [PATCH 091/530] Fix error calling hydrate instead of render when SSR disabled (#636) This commit fixes #632 --- src/React.Core/ReactComponent.cs | 3 +- tests/React.Tests/Core/ReactComponentTest.cs | 58 +++++++++++++++----- 2 files changed, 45 insertions(+), 16 deletions(-) diff --git a/src/React.Core/ReactComponent.cs b/src/React.Core/ReactComponent.cs index 6764d911f..04e7b63eb 100644 --- a/src/React.Core/ReactComponent.cs +++ b/src/React.Core/ReactComponent.cs @@ -245,7 +245,8 @@ public virtual string RenderJavaScript() /// JavaScript public virtual void RenderJavaScript(TextWriter writer) { - writer.Write(ClientOnly ? "ReactDOM.render(" : "ReactDOM.hydrate("); + writer.Write( + !_configuration.UseServerSideRendering || ClientOnly ? "ReactDOM.render(" : "ReactDOM.hydrate("); WriteComponentInitialiser(writer); writer.Write(", document.getElementById(\""); writer.Write(ContainerId); diff --git a/tests/React.Tests/Core/ReactComponentTest.cs b/tests/React.Tests/Core/ReactComponentTest.cs index fe699ac65..30d4f3f0f 100644 --- a/tests/React.Tests/Core/ReactComponentTest.cs +++ b/tests/React.Tests/Core/ReactComponentTest.cs @@ -21,7 +21,7 @@ public void RenderHtmlShouldThrowExceptionIfComponentDoesNotExist() { var environment = new Mock(); environment.Setup(x => x.Execute("typeof Foo !== 'undefined'")).Returns(false); - var config = new Mock(); + var config = CreateDefaultConfigMock(); config.Setup(x => x.UseServerSideRendering).Returns(true); var reactIdGenerator = new Mock(); @@ -38,7 +38,7 @@ public void RenderHtmlShouldCallRenderComponent() { var environment = new Mock(); environment.Setup(x => x.Execute("typeof Foo !== 'undefined'")).Returns(true); - var config = new Mock(); + var config = CreateDefaultConfigMock(); config.Setup(x => x.UseServerSideRendering).Returns(true); var reactIdGenerator = new Mock(); @@ -58,7 +58,7 @@ public void RenderHtmlShouldWrapComponentInDiv() environment.Setup(x => x.Execute("typeof Foo !== 'undefined'")).Returns(true); environment.Setup(x => x.Execute(@"ReactDOMServer.renderToString(React.createElement(Foo, {""hello"":""World""}))")) .Returns("[HTML]"); - var config = new Mock(); + var config = CreateDefaultConfigMock(); config.Setup(x => x.UseServerSideRendering).Returns(true); var reactIdGenerator = new Mock(); @@ -78,7 +78,7 @@ public void RenderHtmlShouldNotRenderComponentHtml() environment.Setup(x => x.Execute("typeof Foo !== 'undefined'")).Returns(true); environment.Setup(x => x.Execute(@"React.renderToString(React.createElement(Foo, {""hello"":""World""}))")) .Returns("[HTML]"); - var config = new Mock(); + var config = CreateDefaultConfigMock(); var reactIdGenerator = new Mock(); var component = new ReactComponent(environment.Object, config.Object, reactIdGenerator.Object, "Foo", "container") @@ -96,7 +96,7 @@ public void RenderHtmlShouldNotRenderClientSideAttributes() { var environment = new Mock(); environment.Setup(x => x.Execute("typeof Foo !== 'undefined'")).Returns(true); - var config = new Mock(); + var config = CreateDefaultConfigMock(); config.Setup(x => x.UseServerSideRendering).Returns(true); var reactIdGenerator = new Mock(); @@ -112,7 +112,7 @@ public void RenderHtmlShouldNotRenderClientSideAttributes() [Fact] public void RenderHtmlShouldWrapComponentInCustomElement() { - var config = new Mock(); + var config = CreateDefaultConfigMock(); config.Setup(x => x.UseServerSideRendering).Returns(true); var environment = new Mock(); environment.Setup(x => x.Execute("typeof Foo !== 'undefined'")).Returns(true); @@ -133,7 +133,7 @@ public void RenderHtmlShouldWrapComponentInCustomElement() [Fact] public void RenderHtmlShouldNotRenderComponentWhenContainerOnly() { - var config = new Mock(); + var config = CreateDefaultConfigMock(); config.Setup(x => x.UseServerSideRendering).Returns(true); var environment = new Mock(); environment.Setup(x => x.Execute("typeof Foo !== 'undefined'")).Returns(true); @@ -154,7 +154,7 @@ public void RenderHtmlShouldNotRenderComponentWhenContainerOnly() [Fact] public void RenderHtmlShouldNotWrapComponentWhenServerSideOnly() { - var config = new Mock(); + var config = CreateDefaultConfigMock(); config.Setup(x => x.UseServerSideRendering).Returns(true); var environment = new Mock(); environment.Setup(x => x.Execute("typeof Foo !== 'undefined'")).Returns(true); @@ -174,7 +174,7 @@ public void RenderHtmlShouldNotWrapComponentWhenServerSideOnly() [Fact] public void RenderHtmlShouldAddClassToElement() { - var config = new Mock(); + var config = CreateDefaultConfigMock(); config.Setup(x => x.UseServerSideRendering).Returns(true); var environment = new Mock(); environment.Setup(x => x.Execute("typeof Foo !== 'undefined'")).Returns(true); @@ -197,7 +197,7 @@ public void RenderHtmlShouldAddClassToElement() public void RenderJavaScriptShouldCallRenderComponent() { var environment = new Mock(); - var config = new Mock(); + var config = CreateDefaultConfigMock(); var reactIdGenerator = new Mock(); var component = new ReactComponent(environment.Object, config.Object, reactIdGenerator.Object, "Foo", "container") @@ -216,7 +216,7 @@ public void RenderJavaScriptShouldCallRenderComponent() public void RenderJavaScriptShouldCallRenderComponentWithReactDOMRender() { var environment = new Mock(); - var config = new Mock(); + var config = CreateDefaultConfigMock(); var reactIdGenerator = new Mock(); var component = new ReactComponent(environment.Object, config.Object, reactIdGenerator.Object, "Foo", "container") @@ -236,7 +236,7 @@ public void RenderJavaScriptShouldCallRenderComponentWithReactDOMRender() public void RenderJavaScriptShouldCallRenderComponentwithReactDOMHydrate() { var environment = new Mock(); - var config = new Mock(); + var config = CreateDefaultConfigMock(); var reactIdGenerator = new Mock(); var component = new ReactComponent(environment.Object, config.Object, reactIdGenerator.Object, "Foo", "container") @@ -252,6 +252,27 @@ public void RenderJavaScriptShouldCallRenderComponentwithReactDOMHydrate() ); } + [Fact] + public void RenderJavaScriptShouldCallRenderComponentWithReactDomRenderWhenSsrDisabled() + { + var environment = new Mock(); + var config = CreateDefaultConfigMock(); + config.SetupGet(x => x.UseServerSideRendering).Returns(false); + + var reactIdGenerator = new Mock(); + var component = new ReactComponent(environment.Object, config.Object, reactIdGenerator.Object, "Foo", "container") + { + ClientOnly = false, + Props = new {hello = "World"} + }; + var result = component.RenderJavaScript(); + + Assert.Equal( + @"ReactDOM.render(React.createElement(Foo, {""hello"":""World""}), document.getElementById(""container""))", + result + ); + } + [Theory] [InlineData("Foo", true)] [InlineData("Foo.Bar", true)] @@ -278,7 +299,7 @@ public void TestEnsureComponentNameValid(string input, bool expected) public void GeneratesContainerIdIfNotProvided() { var environment = new Mock(); - var config = new Mock(); + var config = CreateDefaultConfigMock(); var reactIdGenerator = new Mock(); reactIdGenerator.Setup(x => x.Generate()).Returns("customReactId"); @@ -294,7 +315,7 @@ public void ExceptionThrownIsHandled() environment.Setup(x => x.Execute(@"ReactDOMServer.renderToString(React.createElement(Foo, {""hello"":""World""}))")) .Throws(new JsRuntimeException("'undefined' is not an object")); - var config = new Mock(); + var config = CreateDefaultConfigMock(); config.Setup(x => x.UseServerSideRendering).Returns(true); config.Setup(x => x.ExceptionHandler).Returns(() => throw new ReactServerRenderingException("test")); @@ -347,7 +368,7 @@ public void RenderFunctionsCalled() environment.Setup(x => x.Execute(@"postrender();")) .Returns("postrender-result"); - var config = new Mock(); + var config = CreateDefaultConfigMock(); config.Setup(x => x.UseServerSideRendering).Returns(true); var reactIdGenerator = new Mock(); @@ -386,6 +407,13 @@ public void ChainedRenderFunctionsCalled() Assert.Equal("postrender-result", firstInstance.PostRenderResult); Assert.Equal("postrender-result", secondInstance.PostRenderResult); } + + private static Mock CreateDefaultConfigMock() + { + var configMock = new Mock(); + configMock.SetupGet(x => x.UseServerSideRendering).Returns(true); + return configMock; + } private sealed class TestRenderFunctions : RenderFunctionsBase { From ce370c6f7ada33f66bb05deee23d3a58ba1f4d67 Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Thu, 27 Dec 2018 16:14:41 -0800 Subject: [PATCH 092/530] Fix deprecation warning (#650) --- src/Cassette.React/Cassette.React.csproj | 2 +- src/React.AspNet.Middleware/React.AspNet.Middleware.csproj | 6 +++--- src/React.AspNet/React.AspNet.csproj | 4 ++-- src/React.Core/React.Core.csproj | 2 +- src/React.MSBuild/React.MSBuild.csproj | 2 +- src/React.Owin/React.Owin.csproj | 2 +- src/React.Router.Mvc4/React.Router.Mvc4.csproj | 4 ++-- src/React.Router/React.Router.csproj | 2 +- src/React.Web.Mvc4/React.Web.Mvc4.csproj | 2 +- src/React.Web/React.Web.csproj | 2 +- .../System.Web.Optimization.React.csproj | 2 +- 11 files changed, 15 insertions(+), 15 deletions(-) diff --git a/src/Cassette.React/Cassette.React.csproj b/src/Cassette.React/Cassette.React.csproj index 94d9eb8cd..9240c5f04 100644 --- a/src/Cassette.React/Cassette.React.csproj +++ b/src/Cassette.React/Cassette.React.csproj @@ -12,7 +12,7 @@ asp.net;mvc;asp;jquery;javascript;js;react;facebook;reactjs;babel;cassette http://reactjs.net/img/logo_64.png http://reactjs.net/ - https://github.com/reactjs/React.NET#licence + https://github.com/reactjs/React.NET#licence false diff --git a/src/React.AspNet.Middleware/React.AspNet.Middleware.csproj b/src/React.AspNet.Middleware/React.AspNet.Middleware.csproj index 06a7e8cf4..72014b160 100644 --- a/src/React.AspNet.Middleware/React.AspNet.Middleware.csproj +++ b/src/React.AspNet.Middleware/React.AspNet.Middleware.csproj @@ -15,7 +15,7 @@ asp.net;mvc;asp;javascript;js;react;facebook;reactjs;vnext;asp.net 5;asp.net core http://reactjs.net/img/logo_64.png http://reactjs.net/ - https://github.com/reactjs/React.NET#licence + https://github.com/reactjs/React.NET#licence false $(DefineConstants);ASPNETCORE React.AspNet @@ -37,11 +37,11 @@ - + true - + 7035 diff --git a/src/React.AspNet/React.AspNet.csproj b/src/React.AspNet/React.AspNet.csproj index 9d1e8dce1..731801770 100644 --- a/src/React.AspNet/React.AspNet.csproj +++ b/src/React.AspNet/React.AspNet.csproj @@ -15,7 +15,7 @@ asp.net;mvc;asp;javascript;js;react;facebook;reactjs;vnext;asp.net 5;asp.net core http://reactjs.net/img/logo_64.png http://reactjs.net/ - https://github.com/reactjs/React.NET#licence + https://github.com/reactjs/React.NET#licence false $(DefineConstants);ASPNETCORE @@ -37,7 +37,7 @@ true - + 7035 diff --git a/src/React.Core/React.Core.csproj b/src/React.Core/React.Core.csproj index ff25ffc73..6370088ac 100644 --- a/src/React.Core/React.Core.csproj +++ b/src/React.Core/React.Core.csproj @@ -15,7 +15,7 @@ asp.net;mvc;asp;jquery;javascript;js;react;facebook;reactjs;babel http://reactjs.net/img/logo_64.png http://reactjs.net/ - https://github.com/reactjs/React.NET#licence + https://github.com/reactjs/React.NET#licence false diff --git a/src/React.MSBuild/React.MSBuild.csproj b/src/React.MSBuild/React.MSBuild.csproj index 8a432522f..16cf2641b 100644 --- a/src/React.MSBuild/React.MSBuild.csproj +++ b/src/React.MSBuild/React.MSBuild.csproj @@ -15,7 +15,7 @@ asp.net;mvc;asp;jquery;javascript;js;react;facebook;reactjs;babel;msbuild http://reactjs.net/img/logo_64.png http://reactjs.net/ - https://github.com/reactjs/React.NET#licence + https://github.com/reactjs/React.NET#licence false diff --git a/src/React.Owin/React.Owin.csproj b/src/React.Owin/React.Owin.csproj index 909ae2ddc..0cfed1b14 100644 --- a/src/React.Owin/React.Owin.csproj +++ b/src/React.Owin/React.Owin.csproj @@ -16,7 +16,7 @@ asp.net;mvc;asp;jquery;javascript;js;react;facebook;reactjs;babel;owin http://reactjs.net/img/logo_64.png http://reactjs.net/ - https://github.com/reactjs/React.NET#licence + https://github.com/reactjs/React.NET#licence false diff --git a/src/React.Router.Mvc4/React.Router.Mvc4.csproj b/src/React.Router.Mvc4/React.Router.Mvc4.csproj index 29723709d..ae8c3e7ac 100644 --- a/src/React.Router.Mvc4/React.Router.Mvc4.csproj +++ b/src/React.Router.Mvc4/React.Router.Mvc4.csproj @@ -16,7 +16,7 @@ asp.net;mvc;asp;javascript;js;react;facebook;reactjs;babel;router;react router http://reactjs.net/img/logo_64.png http://reactjs.net/ - https://github.com/reactjs/React.NET#licence + https://github.com/reactjs/React.NET#licence false @@ -49,4 +49,4 @@ true - \ No newline at end of file + diff --git a/src/React.Router/React.Router.csproj b/src/React.Router/React.Router.csproj index 41b188fbc..94ed4e22c 100644 --- a/src/React.Router/React.Router.csproj +++ b/src/React.Router/React.Router.csproj @@ -15,7 +15,7 @@ asp.net;mvc;asp;javascript;js;react;facebook;reactjs;babel;router;react router http://reactjs.net/img/logo_64.png http://reactjs.net/ - https://github.com/reactjs/React.NET#licence + https://github.com/reactjs/React.NET#licence false diff --git a/src/React.Web.Mvc4/React.Web.Mvc4.csproj b/src/React.Web.Mvc4/React.Web.Mvc4.csproj index c3b02750c..aed47ac98 100644 --- a/src/React.Web.Mvc4/React.Web.Mvc4.csproj +++ b/src/React.Web.Mvc4/React.Web.Mvc4.csproj @@ -16,7 +16,7 @@ asp.net;mvc;asp;jquery;javascript;js;react;facebook;reactjs;babel http://reactjs.net/img/logo_64.png http://reactjs.net/ - https://github.com/reactjs/React.NET/blob/master/LICENSE + https://github.com/reactjs/React.NET/blob/master/LICENSE false diff --git a/src/React.Web/React.Web.csproj b/src/React.Web/React.Web.csproj index a85c3d4de..8477000fe 100644 --- a/src/React.Web/React.Web.csproj +++ b/src/React.Web/React.Web.csproj @@ -15,7 +15,7 @@ asp.net;mvc;asp;jquery;javascript;js;react;facebook;reactjs;babel http://reactjs.net/img/logo_64.png http://reactjs.net/ - https://github.com/reactjs/React.NET#licence + https://github.com/reactjs/React.NET#licence false diff --git a/src/System.Web.Optimization.React/System.Web.Optimization.React.csproj b/src/System.Web.Optimization.React/System.Web.Optimization.React.csproj index e009015e2..2e69361e8 100644 --- a/src/System.Web.Optimization.React/System.Web.Optimization.React.csproj +++ b/src/System.Web.Optimization.React/System.Web.Optimization.React.csproj @@ -15,7 +15,7 @@ asp.net;mvc;asp;jquery;javascript;js;react;facebook;reactjs;babel http://reactjs.net/img/logo_64.png http://reactjs.net/ - https://github.com/reactjs/React.NET#licence + https://github.com/reactjs/React.NET#licence false From bd8f5cf3e08e262b82f446689f3990f538331ef7 Mon Sep 17 00:00:00 2001 From: Andrey Taritsyn Date: Fri, 28 Dec 2018 07:52:51 +0300 Subject: [PATCH 093/530] Ensure availability of the script pre-compilation (#648) --- ...riptPrecompilationNotAvailableException.cs | 35 +++++ .../JavaScriptEnginePrecompilationUtils.cs | 32 ++--- .../Core/JavaScriptEngineFactoryTest.cs | 124 ++++++++++++------ 3 files changed, 135 insertions(+), 56 deletions(-) create mode 100644 src/React.Core/Exceptions/ReactScriptPrecompilationNotAvailableException.cs diff --git a/src/React.Core/Exceptions/ReactScriptPrecompilationNotAvailableException.cs b/src/React.Core/Exceptions/ReactScriptPrecompilationNotAvailableException.cs new file mode 100644 index 000000000..bc15a1f24 --- /dev/null +++ b/src/React.Core/Exceptions/ReactScriptPrecompilationNotAvailableException.cs @@ -0,0 +1,35 @@ +/* + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +using System; +using System.Runtime.Serialization; + +namespace React.Exceptions +{ + /// + /// Thrown when the script pre-compilation is not available. + /// +#if !NETSTANDARD1_6 + [Serializable] +#endif + public class ReactScriptPrecompilationNotAvailableException : ReactException + { + /// + /// Initializes a new instance of the class. + /// + /// The message that describes the error. + public ReactScriptPrecompilationNotAvailableException(string message) : base(message) { } + +#if !NETSTANDARD1_6 + /// + /// Used by deserialization + /// + protected ReactScriptPrecompilationNotAvailableException(SerializationInfo info, StreamingContext context) + : base(info, context) { } +#endif + } +} diff --git a/src/React.Core/JavaScriptEnginePrecompilationUtils.cs b/src/React.Core/JavaScriptEnginePrecompilationUtils.cs index 50d297918..856579fc8 100644 --- a/src/React.Core/JavaScriptEnginePrecompilationUtils.cs +++ b/src/React.Core/JavaScriptEnginePrecompilationUtils.cs @@ -1,7 +1,7 @@ using System; -using System.Diagnostics; using System.Reflection; using JavaScriptEngineSwitcher.Core; +using React.Exceptions; namespace React { @@ -36,10 +36,7 @@ public static class JavaScriptEnginePrecompilationUtils public static bool TryExecuteFileWithPrecompilation(this IJsEngine engine, ICache cache, IFileSystem fileSystem, string path, Func scriptLoader = null) { - if (!CheckPrecompilationAvailability(engine, cache)) - { - return false; - } + EnsurePrecompilationAvailability(engine, cache); var cacheKey = string.Format(PRECOMPILED_JS_FILE_CACHE_KEY, path); var precompiledScript = cache.Get(cacheKey); @@ -73,10 +70,7 @@ public static bool TryExecuteFileWithPrecompilation(this IJsEngine engine, ICach public static bool TryExecuteResourceWithPrecompilation(this IJsEngine engine, ICache cache, string resourceName, Assembly assembly) { - if (!CheckPrecompilationAvailability(engine, cache)) - { - return false; - } + EnsurePrecompilationAvailability(engine, cache); var cacheKey = string.Format(PRECOMPILED_JS_RESOURCE_CACHE_KEY, resourceName); var precompiledScript = cache.Get(cacheKey); @@ -97,27 +91,27 @@ public static bool TryExecuteResourceWithPrecompilation(this IJsEngine engine, I } /// - /// Checks a availability of the script pre-compilation + /// Ensures that the script pre-compilation is available. /// /// Instance of the JavaScript engine /// Cache used for storing the pre-compiled scripts - /// true if the script pre-compilation is available; otherwise, false. - private static bool CheckPrecompilationAvailability(IJsEngine engine, ICache cache) + private static void EnsurePrecompilationAvailability(IJsEngine engine, ICache cache) { if (!engine.SupportsScriptPrecompilation) { - Trace.WriteLine(string.Format("The {0} version {1} does not support the script pre-compilation.", - engine.Name, engine.Version)); - return false; + throw new ReactScriptPrecompilationNotAvailableException(string.Format( + "The {0} version {1} does not support the script pre-compilation.", + engine.Name, + engine.Version + )); } if (cache is NullCache) { - Trace.WriteLine("Usage of script pre-compilation without caching does not make sense."); - return false; + throw new ReactScriptPrecompilationNotAvailableException(string.Format( + "Usage of the script pre-compilation without caching does not make sense." + )); } - - return true; } } } diff --git a/tests/React.Tests/Core/JavaScriptEngineFactoryTest.cs b/tests/React.Tests/Core/JavaScriptEngineFactoryTest.cs index 6177f2bac..e34351fe0 100644 --- a/tests/React.Tests/Core/JavaScriptEngineFactoryTest.cs +++ b/tests/React.Tests/Core/JavaScriptEngineFactoryTest.cs @@ -136,31 +136,6 @@ public void ShouldLoadResourcesWithoutPrecompilation() jsEngine.Verify(x => x.ExecuteResource("React.Core.Resources.react.generated.min.js", reactCoreAssembly)); } - [Fact] - public void ShouldLoadResourcesWithPrecompilationAndWithoutCache() - { - var reactCoreAssembly = typeof(JavaScriptEngineFactory).GetTypeInfo().Assembly; - - var jsEngine = new Mock(); - jsEngine.Setup(x => x.SupportsScriptPrecompilation).Returns(true); - jsEngine.Setup(x => x.Evaluate("1 + 1")).Returns(2); - - var config = new Mock(); - config.Setup(x => x.AllowJavaScriptPrecompilation).Returns(true); - config.Setup(x => x.LoadReact).Returns(true); - - var cache = new NullCache(); - - var fileSystem = new Mock(); - - var factory = CreateFactory(config.Object, cache, fileSystem.Object, () => jsEngine.Object); - - factory.GetEngineForCurrentThread(); - - jsEngine.Verify(x => x.ExecuteResource("React.Core.Resources.shims.js", reactCoreAssembly)); - jsEngine.Verify(x => x.ExecuteResource("React.Core.Resources.react.generated.min.js", reactCoreAssembly)); - } - [Fact] public void ShouldLoadResourcesWithPrecompilationAndEmptyCache() { @@ -227,49 +202,74 @@ public void ShouldLoadResourcesWithPrecompilationAndNotEmptyCache() } [Fact] - public void ShouldLoadFilesThatDoNotRequireTransformWithoutPrecompilation() + public void ShouldThrowIfEngineNotSupportPrecompilationOfResources() { + var reactCoreAssembly = typeof(JavaScriptEngineFactory).GetTypeInfo().Assembly; + var jsEngine = new Mock(); - jsEngine.Setup(x => x.SupportsScriptPrecompilation).Returns(true); + jsEngine.Setup(x => x.Name).Returns("FooJsEngine"); + jsEngine.Setup(x => x.Version).Returns("1.2.3"); + jsEngine.Setup(x => x.SupportsScriptPrecompilation).Returns(false); jsEngine.Setup(x => x.Evaluate("1 + 1")).Returns(2); var config = new Mock(); - config.Setup(x => x.ScriptsWithoutTransform).Returns(new List { "First.js", "Second.js" }); - config.Setup(x => x.AllowJavaScriptPrecompilation).Returns(false); + config.Setup(x => x.AllowJavaScriptPrecompilation).Returns(true); config.Setup(x => x.LoadReact).Returns(true); var cache = new Mock(); var fileSystem = new Mock(); - fileSystem.Setup(x => x.ReadAsString(It.IsAny())).Returns(path => "CONTENTS_" + path); var factory = CreateFactory(config, cache, fileSystem, () => jsEngine.Object); - factory.GetEngineForCurrentThread(); - - jsEngine.Verify(x => x.Execute("CONTENTS_First.js", "First.js")); - jsEngine.Verify(x => x.Execute("CONTENTS_Second.js", "Second.js")); + var ex = Assert.Throws( + () => factory.GetEngineForCurrentThread()); + Assert.Equal("The FooJsEngine version 1.2.3 does not support the script pre-compilation.", ex.Message); } [Fact] - public void ShouldLoadFilesThatDoNotRequireTransformWithPrecompilationAndWithoutCache() + public void ShouldThrowIfPrecompilationOfResourcesIsPerformedWithoutCache() { + var reactCoreAssembly = typeof(JavaScriptEngineFactory).GetTypeInfo().Assembly; + var jsEngine = new Mock(); jsEngine.Setup(x => x.SupportsScriptPrecompilation).Returns(true); jsEngine.Setup(x => x.Evaluate("1 + 1")).Returns(2); var config = new Mock(); - config.Setup(x => x.ScriptsWithoutTransform).Returns(new List { "First.js", "Second.js" }); config.Setup(x => x.AllowJavaScriptPrecompilation).Returns(true); config.Setup(x => x.LoadReact).Returns(true); var cache = new NullCache(); var fileSystem = new Mock(); - fileSystem.Setup(x => x.ReadAsString(It.IsAny())).Returns(path => "CONTENTS_" + path); var factory = CreateFactory(config.Object, cache, fileSystem.Object, () => jsEngine.Object); + var ex = Assert.Throws( + () => factory.GetEngineForCurrentThread()); + Assert.Equal("Usage of the script pre-compilation without caching does not make sense.", ex.Message); + } + + [Fact] + public void ShouldLoadFilesThatDoNotRequireTransformWithoutPrecompilation() + { + var jsEngine = new Mock(); + jsEngine.Setup(x => x.SupportsScriptPrecompilation).Returns(true); + jsEngine.Setup(x => x.Evaluate("1 + 1")).Returns(2); + + var config = new Mock(); + config.Setup(x => x.ScriptsWithoutTransform).Returns(new List { "First.js", "Second.js" }); + config.Setup(x => x.AllowJavaScriptPrecompilation).Returns(false); + config.Setup(x => x.LoadReact).Returns(true); + + var cache = new Mock(); + + var fileSystem = new Mock(); + fileSystem.Setup(x => x.ReadAsString(It.IsAny())).Returns(path => "CONTENTS_" + path); + + var factory = CreateFactory(config, cache, fileSystem, () => jsEngine.Object); + factory.GetEngineForCurrentThread(); jsEngine.Verify(x => x.Execute("CONTENTS_First.js", "First.js")); @@ -340,6 +340,56 @@ public void ShouldLoadFilesThatDoNotRequireTransformWithPrecompilationAndNotEmpt jsEngine.Verify(x => x.Execute(secondPrecompiledScript)); } + [Fact] + public void ShouldThrowIfEngineNotSupportPrecompilationOfFilesThatDoNotRequireTransform() + { + var jsEngine = new Mock(); + jsEngine.Setup(x => x.Name).Returns("FooJsEngine"); + jsEngine.Setup(x => x.Version).Returns("1.2.3"); + jsEngine.Setup(x => x.SupportsScriptPrecompilation).Returns(false); + jsEngine.Setup(x => x.Evaluate("1 + 1")).Returns(2); + + var config = new Mock(); + config.Setup(x => x.ScriptsWithoutTransform).Returns(new List { "First.js", "Second.js" }); + config.Setup(x => x.AllowJavaScriptPrecompilation).Returns(true); + config.Setup(x => x.LoadReact).Returns(true); + + var cache = new Mock(); + + var fileSystem = new Mock(); + fileSystem.Setup(x => x.ReadAsString(It.IsAny())).Returns(path => "CONTENTS_" + path); + + var factory = CreateFactory(config, cache, fileSystem, () => jsEngine.Object); + + var ex = Assert.Throws( + () => factory.GetEngineForCurrentThread()); + Assert.Equal("The FooJsEngine version 1.2.3 does not support the script pre-compilation.", ex.Message); + } + + [Fact] + public void ShouldThrowIfPrecompilationOfFilesThatDoNotRequireTransformIsPerformedWithoutCache() + { + var jsEngine = new Mock(); + jsEngine.Setup(x => x.SupportsScriptPrecompilation).Returns(true); + jsEngine.Setup(x => x.Evaluate("1 + 1")).Returns(2); + + var config = new Mock(); + config.Setup(x => x.ScriptsWithoutTransform).Returns(new List { "First.js", "Second.js" }); + config.Setup(x => x.AllowJavaScriptPrecompilation).Returns(true); + config.Setup(x => x.LoadReact).Returns(true); + + var cache = new NullCache(); + + var fileSystem = new Mock(); + fileSystem.Setup(x => x.ReadAsString(It.IsAny())).Returns(path => "CONTENTS_" + path); + + var factory = CreateFactory(config.Object, cache, fileSystem.Object, () => jsEngine.Object); + + var ex = Assert.Throws( + () => factory.GetEngineForCurrentThread()); + Assert.Equal("Usage of the script pre-compilation without caching does not make sense.", ex.Message); + } + [Fact] public void ShouldHandleLoadingExternalReactVersion() { From a1be190b91f0d952cc7cea1e6d877929f501ed97 Mon Sep 17 00:00:00 2001 From: Andrey Taritsyn Date: Fri, 28 Dec 2018 07:54:15 +0300 Subject: [PATCH 094/530] Remove remaining engine-specific code (#647) --- src/React.Core/JavaScriptEngineUtils.cs | 41 ------------------------- 1 file changed, 41 deletions(-) diff --git a/src/React.Core/JavaScriptEngineUtils.cs b/src/React.Core/JavaScriptEngineUtils.cs index 0f8bf39bc..268d34166 100644 --- a/src/React.Core/JavaScriptEngineUtils.cs +++ b/src/React.Core/JavaScriptEngineUtils.cs @@ -18,47 +18,6 @@ namespace React /// public static class JavaScriptEngineUtils { - /// - /// Determines if the current environment supports the ClearScript V8 engine - /// - /// true if ClearScript is supported - public static bool EnvironmentSupportsClearScript() - { -#if NET40 - return Environment.OSVersion.Platform == PlatformID.Win32NT; -#else - return false; -#endif - } - - /// - /// Attempts to use the specified engine and throws an exception if it doesn't work. - /// - public static void EnsureEngineFunctional( - Func exceptionFactory - ) - where TEngine : IJsEngine, new() - where TException : Exception - { - int result; - try - { - using (var engine = new TEngine()) - { - result = engine.Evaluate("1 + 1"); - } - } - catch (Exception ex) - { - throw exceptionFactory(ex); - } - - if (result != 2) - { - throw new ReactException("Mathematics is broken. 1 + 1 = " + result); - } - } - /// /// Executes a code from JavaScript file. /// From c99ff43ff499b4fd63edc26bc6e5ef7498af0322 Mon Sep 17 00:00:00 2001 From: Andrey Taritsyn Date: Fri, 28 Dec 2018 07:56:54 +0300 Subject: [PATCH 095/530] Catch all the JavaScript Engine Switcher's exceptions (#646) --- src/React.Core/JavaScriptEngineFactory.cs | 8 +++----- src/React.Core/ReactComponent.cs | 2 +- src/React.Core/ReactEnvironment.cs | 2 +- tests/React.Tests/Core/JavaScriptEngineFactoryTest.cs | 4 ++-- 4 files changed, 7 insertions(+), 9 deletions(-) diff --git a/src/React.Core/JavaScriptEngineFactory.cs b/src/React.Core/JavaScriptEngineFactory.cs index 807fe5c61..0e26a3820 100644 --- a/src/React.Core/JavaScriptEngineFactory.cs +++ b/src/React.Core/JavaScriptEngineFactory.cs @@ -185,18 +185,16 @@ private void LoadUserScripts(IJsEngine engine) engine.ExecuteFile(_fileSystem, file); } } - catch (JsScriptException ex) + catch (JsException ex) { // We can't simply rethrow the exception here, as it's possible this is running // on a background thread (ie. as a response to a file changing). If we did // throw the exception here, it would terminate the entire process. Instead, // save the exception, and then just rethrow it later when getting the engine. _scriptLoadException = new ReactScriptLoadException(string.Format( - "Error while loading \"{0}\": {1}\r\nLine: {2}\r\nColumn: {3}", + "Error while loading \"{0}\": {1}", file, - ex.Message, - ex.LineNumber, - ex.ColumnNumber + ex.Message )); } catch (IOException ex) diff --git a/src/React.Core/ReactComponent.cs b/src/React.Core/ReactComponent.cs index 04e7b63eb..6ad394361 100644 --- a/src/React.Core/ReactComponent.cs +++ b/src/React.Core/ReactComponent.cs @@ -195,7 +195,7 @@ public virtual void RenderHtml(TextWriter writer, bool renderContainerOnly = fal return; } } - catch (JsRuntimeException ex) + catch (JsException ex) { if (exceptionHandler == null) { diff --git a/src/React.Core/ReactEnvironment.cs b/src/React.Core/ReactEnvironment.cs index 3af23754b..2494ae93b 100644 --- a/src/React.Core/ReactEnvironment.cs +++ b/src/React.Core/ReactEnvironment.cs @@ -209,7 +209,7 @@ protected virtual void EnsureUserScriptsLoaded() Engine.Execute(contents, file); } } - catch (JsScriptException ex) + catch (JsException ex) { throw new ReactScriptLoadException(string.Format( "Error while loading \"{0}\": {1}", diff --git a/tests/React.Tests/Core/JavaScriptEngineFactoryTest.cs b/tests/React.Tests/Core/JavaScriptEngineFactoryTest.cs index e34351fe0..dddb198fb 100644 --- a/tests/React.Tests/Core/JavaScriptEngineFactoryTest.cs +++ b/tests/React.Tests/Core/JavaScriptEngineFactoryTest.cs @@ -466,7 +466,7 @@ public void ShouldThrowScriptErrorIfReactFails() var factory = CreateFactory(config, cache, fileSystem, () => jsEngine.Object); var ex = Assert.Throws(() => factory.GetEngineForCurrentThread()); - Assert.Equal("Error while loading \"foo.js\": Fail\r\nLine: 42\r\nColumn: 911", ex.Message); + Assert.Equal("Error while loading \"foo.js\": Fail", ex.Message); } [Fact] @@ -489,7 +489,7 @@ public void ShouldCatchErrorsWhileLoadingScripts() var factory = CreateFactory(config, cache, fileSystem, () => jsEngine.Object); var ex = Assert.Throws(() => factory.GetEngineForCurrentThread()); - Assert.Equal("Error while loading \"foo.js\": Fail\r\nLine: 42\r\nColumn: 911", ex.Message); + Assert.Equal("Error while loading \"foo.js\": Fail", ex.Message); } [Fact] From 37bac344f2af8dd0c120e43b8322af0da386f058 Mon Sep 17 00:00:00 2001 From: Andrey Taritsyn Date: Sun, 30 Dec 2018 01:07:26 +0300 Subject: [PATCH 096/530] Update the JavaScript Engine Switcher to version 3.0.0 (#644) --- src/Cassette.React/Cassette.React.csproj | 2 +- src/React.Core/React.Core.csproj | 2 +- src/React.MSBuild/React.MSBuild.csproj | 2 +- .../React.Sample.Cassette.csproj | 12 ++++++++--- src/React.Sample.Cassette/packages.config | 8 +++++--- .../React.Sample.ConsoleApp.csproj | 8 ++++---- .../React.Sample.Mvc4.csproj | 20 +++++++++---------- src/React.Sample.Mvc4/packages.config | 8 ++++---- .../React.Sample.Owin.csproj | 4 ++-- .../React.Sample.Webpack.CoreMvc.csproj | 12 +++++------ .../React.Tests.Benchmarks.csproj | 10 +++++----- .../React.Tests.Integration.csproj | 10 +++++----- 12 files changed, 53 insertions(+), 45 deletions(-) diff --git a/src/Cassette.React/Cassette.React.csproj b/src/Cassette.React/Cassette.React.csproj index 9240c5f04..e73958cb2 100644 --- a/src/Cassette.React/Cassette.React.csproj +++ b/src/Cassette.React/Cassette.React.csproj @@ -27,7 +27,7 @@ - + diff --git a/src/React.Core/React.Core.csproj b/src/React.Core/React.Core.csproj index 6370088ac..2ed25127c 100644 --- a/src/React.Core/React.Core.csproj +++ b/src/React.Core/React.Core.csproj @@ -32,7 +32,7 @@ - + diff --git a/src/React.MSBuild/React.MSBuild.csproj b/src/React.MSBuild/React.MSBuild.csproj index 16cf2641b..74268263a 100644 --- a/src/React.MSBuild/React.MSBuild.csproj +++ b/src/React.MSBuild/React.MSBuild.csproj @@ -33,7 +33,7 @@ - + diff --git a/src/React.Sample.Cassette/React.Sample.Cassette.csproj b/src/React.Sample.Cassette/React.Sample.Cassette.csproj index 6127c00be..31b0382e3 100644 --- a/src/React.Sample.Cassette/React.Sample.Cassette.csproj +++ b/src/React.Sample.Cassette/React.Sample.Cassette.csproj @@ -48,6 +48,9 @@ 1607 + + ..\packages\AdvancedStringBuilder.0.1.0\lib\net40-client\AdvancedStringBuilder.dll + ..\packages\AjaxMin.5.14.5506.26202\lib\net40\AjaxMin.dll True @@ -69,14 +72,17 @@ True - ..\packages\JavaScriptEngineSwitcher.Core.3.0.0-rc1\lib\net40-client\JavaScriptEngineSwitcher.Core.dll + ..\packages\JavaScriptEngineSwitcher.Core.3.0.0\lib\net40-client\JavaScriptEngineSwitcher.Core.dll - ..\packages\JavaScriptEngineSwitcher.Msie.3.0.0-rc1\lib\net40-client\JavaScriptEngineSwitcher.Msie.dll + ..\packages\JavaScriptEngineSwitcher.Msie.3.0.0\lib\net40-client\JavaScriptEngineSwitcher.Msie.dll - ..\packages\MsieJavaScriptEngine.3.0.0-rc1\lib\net40-client\MsieJavaScriptEngine.dll + ..\packages\MsieJavaScriptEngine.3.0.0\lib\net40-client\MsieJavaScriptEngine.dll + + + ..\packages\PolyfillsForOldDotNet.System.Threading.0.1.1\lib\net40-client\PolyfillsForOldDotNet.System.Threading.dll diff --git a/src/React.Sample.Cassette/packages.config b/src/React.Sample.Cassette/packages.config index e65e230f8..631516296 100644 --- a/src/React.Sample.Cassette/packages.config +++ b/src/React.Sample.Cassette/packages.config @@ -1,17 +1,19 @@  + - - + + - + + \ No newline at end of file diff --git a/src/React.Sample.ConsoleApp/React.Sample.ConsoleApp.csproj b/src/React.Sample.ConsoleApp/React.Sample.ConsoleApp.csproj index 63aec393a..696dfca00 100644 --- a/src/React.Sample.ConsoleApp/React.Sample.ConsoleApp.csproj +++ b/src/React.Sample.ConsoleApp/React.Sample.ConsoleApp.csproj @@ -20,10 +20,10 @@ - - - - + + + + diff --git a/src/React.Sample.Mvc4/React.Sample.Mvc4.csproj b/src/React.Sample.Mvc4/React.Sample.Mvc4.csproj index a4cc827cb..933c15eea 100644 --- a/src/React.Sample.Mvc4/React.Sample.Mvc4.csproj +++ b/src/React.Sample.Mvc4/React.Sample.Mvc4.csproj @@ -1,6 +1,6 @@ - + - + Debug @@ -54,18 +54,21 @@ false + + ..\packages\AdvancedStringBuilder.0.1.0\lib\net45\AdvancedStringBuilder.dll + ..\packages\Antlr.3.5.0.2\lib\Antlr3.Runtime.dll True - - ..\packages\JavaScriptEngineSwitcher.V8.3.0.0-rc1\lib\net45\ClearScript.dll + + ..\packages\JavaScriptEngineSwitcher.V8.3.0.0\lib\net45\ClearScript.dll - ..\packages\JavaScriptEngineSwitcher.Core.3.0.0-rc1\lib\net45\JavaScriptEngineSwitcher.Core.dll + ..\packages\JavaScriptEngineSwitcher.Core.3.0.0\lib\net45\JavaScriptEngineSwitcher.Core.dll - ..\packages\JavaScriptEngineSwitcher.V8.3.0.0-rc1\lib\net45\JavaScriptEngineSwitcher.V8.dll + ..\packages\JavaScriptEngineSwitcher.V8.3.0.0\lib\net45\JavaScriptEngineSwitcher.V8.dll @@ -75,9 +78,6 @@ - - ..\packages\System.Runtime.InteropServices.RuntimeInformation.4.0.0\lib\net45\System.Runtime.InteropServices.RuntimeInformation.dll - @@ -225,7 +225,7 @@ This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - + - + \ No newline at end of file diff --git a/src/React.Sample.Mvc4/Web.config b/src/React.Sample.Mvc4/Web.config index fb66e80f6..0f829e6aa 100644 --- a/src/React.Sample.Mvc4/Web.config +++ b/src/React.Sample.Mvc4/Web.config @@ -84,6 +84,10 @@ + + + + diff --git a/src/React.Sample.Mvc4/packages.config b/src/React.Sample.Mvc4/packages.config index a98617438..164832c20 100644 --- a/src/React.Sample.Mvc4/packages.config +++ b/src/React.Sample.Mvc4/packages.config @@ -5,7 +5,8 @@ - + + From c07b41c92b1a0c75361affcc7d74108040e13c98 Mon Sep 17 00:00:00 2001 From: Saransh Kataria Date: Tue, 12 Feb 2019 21:11:38 -0800 Subject: [PATCH 122/530] upgraded packages to fix security vulnerabilities (#723) --- src/React.Core/package-lock.json | 988 +++++++++---------------------- src/React.Core/package.json | 4 +- 2 files changed, 289 insertions(+), 703 deletions(-) diff --git a/src/React.Core/package-lock.json b/src/React.Core/package-lock.json index 5e0b98349..c1b2d7879 100644 --- a/src/React.Core/package-lock.json +++ b/src/React.Core/package-lock.json @@ -277,38 +277,47 @@ } }, "babel-core": { - "version": "6.9.1", - "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.9.1.tgz", - "integrity": "sha1-SNRx7r9N5GngqUL+RW3MlLGL6A0=", - "dev": true, - "requires": { - "babel-code-frame": "^6.8.0", - "babel-generator": "^6.9.0", - "babel-helpers": "^6.8.0", - "babel-messages": "^6.8.0", - "babel-register": "^6.9.0", - "babel-runtime": "^6.9.1", - "babel-template": "^6.9.0", - "babel-traverse": "^6.9.0", - "babel-types": "^6.9.1", - "babylon": "^6.7.0", - "convert-source-map": "^1.1.0", - "debug": "^2.1.1", - "json5": "^0.4.0", - "lodash": "^4.2.0", - "minimatch": "^2.0.3", - "path-exists": "^1.0.0", - "path-is-absolute": "^1.0.0", - "private": "^0.1.6", - "shebang-regex": "^1.0.0", + "version": "6.26.3", + "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz", + "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==", + "dev": true, + "requires": { + "babel-code-frame": "^6.26.0", + "babel-generator": "^6.26.0", + "babel-helpers": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-register": "^6.26.0", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "convert-source-map": "^1.5.1", + "debug": "^2.6.9", + "json5": "^0.5.1", + "lodash": "^4.17.4", + "minimatch": "^3.0.4", + "path-is-absolute": "^1.0.1", + "private": "^0.1.8", "slash": "^1.0.0", - "source-map": "^0.5.0" + "source-map": "^0.5.7" + }, + "dependencies": { + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + } } }, "babel-generator": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.0.tgz", - "integrity": "sha1-rBriAHC3n248odMmlhMFN3TyDcU=", + "version": "6.26.1", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", + "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", "dev": true, "requires": { "babel-messages": "^6.23.0", @@ -317,7 +326,7 @@ "detect-indent": "^4.0.0", "jsesc": "^1.3.0", "lodash": "^4.17.4", - "source-map": "^0.5.6", + "source-map": "^0.5.7", "trim-right": "^1.0.1" } }, @@ -757,10 +766,21 @@ "babel-runtime": "^6.22.0" } }, + "babel-plugin-transform-es2015-modules-amd": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", + "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=", + "dev": true, + "requires": { + "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, "babel-plugin-transform-es2015-modules-commonjs": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.0.tgz", - "integrity": "sha1-DYOUApt9xqvhqX7xgeAHWN0uXYo=", + "version": "6.26.2", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz", + "integrity": "sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q==", "dev": true, "requires": { "babel-plugin-transform-strict-mode": "^6.24.1", @@ -769,6 +789,28 @@ "babel-types": "^6.26.0" } }, + "babel-plugin-transform-es2015-modules-systemjs": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz", + "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=", + "dev": true, + "requires": { + "babel-helper-hoist-variables": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-modules-umd": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz", + "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=", + "dev": true, + "requires": { + "babel-plugin-transform-es2015-modules-amd": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, "babel-plugin-transform-es2015-object-super": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz", @@ -913,32 +955,35 @@ } }, "babel-preset-es2015": { - "version": "6.9.0", - "resolved": "https://registry.npmjs.org/babel-preset-es2015/-/babel-preset-es2015-6.9.0.tgz", - "integrity": "sha1-leRxasRIHfswmZy1wRGBThraD0E=", - "dev": true, - "requires": { - "babel-plugin-check-es2015-constants": "^6.3.13", - "babel-plugin-transform-es2015-arrow-functions": "^6.3.13", - "babel-plugin-transform-es2015-block-scoped-functions": "^6.3.13", - "babel-plugin-transform-es2015-block-scoping": "^6.9.0", - "babel-plugin-transform-es2015-classes": "^6.9.0", - "babel-plugin-transform-es2015-computed-properties": "^6.3.13", - "babel-plugin-transform-es2015-destructuring": "^6.9.0", - "babel-plugin-transform-es2015-duplicate-keys": "^6.6.0", - "babel-plugin-transform-es2015-for-of": "^6.6.0", - "babel-plugin-transform-es2015-function-name": "^6.9.0", - "babel-plugin-transform-es2015-literals": "^6.3.13", - "babel-plugin-transform-es2015-modules-commonjs": "^6.6.0", - "babel-plugin-transform-es2015-object-super": "^6.3.13", - "babel-plugin-transform-es2015-parameters": "^6.9.0", - "babel-plugin-transform-es2015-shorthand-properties": "^6.3.13", - "babel-plugin-transform-es2015-spread": "^6.3.13", - "babel-plugin-transform-es2015-sticky-regex": "^6.3.13", - "babel-plugin-transform-es2015-template-literals": "^6.6.0", - "babel-plugin-transform-es2015-typeof-symbol": "^6.6.0", - "babel-plugin-transform-es2015-unicode-regex": "^6.3.13", - "babel-plugin-transform-regenerator": "^6.9.0" + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz", + "integrity": "sha1-1EBQ1rwsn+6nAqrzjXJ6AhBTiTk=", + "dev": true, + "requires": { + "babel-plugin-check-es2015-constants": "^6.22.0", + "babel-plugin-transform-es2015-arrow-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoping": "^6.24.1", + "babel-plugin-transform-es2015-classes": "^6.24.1", + "babel-plugin-transform-es2015-computed-properties": "^6.24.1", + "babel-plugin-transform-es2015-destructuring": "^6.22.0", + "babel-plugin-transform-es2015-duplicate-keys": "^6.24.1", + "babel-plugin-transform-es2015-for-of": "^6.22.0", + "babel-plugin-transform-es2015-function-name": "^6.24.1", + "babel-plugin-transform-es2015-literals": "^6.22.0", + "babel-plugin-transform-es2015-modules-amd": "^6.24.1", + "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", + "babel-plugin-transform-es2015-modules-systemjs": "^6.24.1", + "babel-plugin-transform-es2015-modules-umd": "^6.24.1", + "babel-plugin-transform-es2015-object-super": "^6.24.1", + "babel-plugin-transform-es2015-parameters": "^6.24.1", + "babel-plugin-transform-es2015-shorthand-properties": "^6.24.1", + "babel-plugin-transform-es2015-spread": "^6.22.0", + "babel-plugin-transform-es2015-sticky-regex": "^6.24.1", + "babel-plugin-transform-es2015-template-literals": "^6.22.0", + "babel-plugin-transform-es2015-typeof-symbol": "^6.22.0", + "babel-plugin-transform-es2015-unicode-regex": "^6.24.1", + "babel-plugin-transform-regenerator": "^6.24.1" } }, "babel-preset-stage-0": { @@ -1001,50 +1046,6 @@ "lodash": "^4.17.4", "mkdirp": "^0.5.1", "source-map-support": "^0.4.15" - }, - "dependencies": { - "babel-core": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.0.tgz", - "integrity": "sha1-rzL3izGm/O8RnIew/Y2XU/A6C7g=", - "dev": true, - "requires": { - "babel-code-frame": "^6.26.0", - "babel-generator": "^6.26.0", - "babel-helpers": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-register": "^6.26.0", - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "convert-source-map": "^1.5.0", - "debug": "^2.6.8", - "json5": "^0.5.1", - "lodash": "^4.17.4", - "minimatch": "^3.0.4", - "path-is-absolute": "^1.0.1", - "private": "^0.1.7", - "slash": "^1.0.0", - "source-map": "^0.5.6" - } - }, - "json5": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", - "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", - "dev": true - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - } } }, "babel-runtime": { @@ -1447,10 +1448,13 @@ "dev": true }, "convert-source-map": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz", - "integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU=", - "dev": true + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz", + "integrity": "sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.1" + } }, "copy-descriptor": { "version": "0.1.1", @@ -1494,9 +1498,9 @@ "dev": true }, "deap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/deap/-/deap-1.0.0.tgz", - "integrity": "sha1-sUi/gkMKJ2mbdIOgPra2dYW/yIg=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/deap/-/deap-1.0.1.tgz", + "integrity": "sha512-k75KYNZMvwAwes2xIPry/QTffXIchjD8QfABvvfTr80P85jv5ZcKqcoDo+vMe71nNnVnXYe8MA28weyqcf/DKw==", "dev": true }, "debug": { @@ -1727,16 +1731,43 @@ }, "dependencies": { "fill-range": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz", - "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=", + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz", + "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", "dev": true, "requires": { "is-number": "^2.1.0", "isobject": "^2.0.0", - "randomatic": "^1.1.3", + "randomatic": "^3.0.0", "repeat-element": "^1.1.2", "repeat-string": "^1.5.2" + }, + "dependencies": { + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + }, + "randomatic": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.1.tgz", + "integrity": "sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw==", + "dev": true, + "requires": { + "is-number": "^4.0.0", + "kind-of": "^6.0.0", + "math-random": "^1.0.1" + }, + "dependencies": { + "is-number": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", + "dev": true + } + } + } } }, "is-number": { @@ -2038,46 +2069,35 @@ } }, "fsevents": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.1.3.tgz", - "integrity": "sha512-WIr7iDkdmdbxu/Gh6eKEZJL6KPE74/5MEsf2whTOFNxbIoIixogroLdKYqB6FDav4Wavh/lZdzzd3b2KxIXC5Q==", + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.7.tgz", + "integrity": "sha512-Pxm6sI2MeBD7RdD12RYsqaP0nMiwx8eZBXCa6z2L+mRHm2DYrOYwihmhjpkdjUHwQhslWQjRpEgNq4XvBmaAuw==", "dev": true, "optional": true, "requires": { - "nan": "^2.3.0", - "node-pre-gyp": "^0.6.39" + "nan": "^2.9.2", + "node-pre-gyp": "^0.10.0" }, "dependencies": { "abbrev": { - "version": "1.1.0", + "version": "1.1.1", "bundled": true, "dev": true, "optional": true }, - "ajv": { - "version": "4.11.8", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "co": "^4.6.0", - "json-stable-stringify": "^1.0.1" - } - }, "ansi-regex": { "version": "2.1.1", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "aproba": { - "version": "1.1.1", + "version": "1.2.0", "bundled": true, "dev": true, "optional": true }, "are-we-there-yet": { - "version": "1.1.4", + "version": "1.1.5", "bundled": true, "dev": true, "optional": true, @@ -2086,93 +2106,22 @@ "readable-stream": "^2.0.6" } }, - "asn1": { - "version": "0.2.3", - "bundled": true, - "dev": true, - "optional": true - }, - "assert-plus": { - "version": "0.2.0", - "bundled": true, - "dev": true, - "optional": true - }, - "asynckit": { - "version": "0.4.0", - "bundled": true, - "dev": true, - "optional": true - }, - "aws-sign2": { - "version": "0.6.0", - "bundled": true, - "dev": true, - "optional": true - }, - "aws4": { - "version": "1.6.0", - "bundled": true, - "dev": true, - "optional": true - }, "balanced-match": { - "version": "0.4.2", - "bundled": true, - "dev": true, - "optional": true - }, - "bcrypt-pbkdf": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "tweetnacl": "^0.14.3" - } - }, - "block-stream": { - "version": "0.0.9", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "inherits": "~2.0.0" - } - }, - "boom": { - "version": "2.10.1", + "version": "1.0.0", "bundled": true, - "dev": true, - "optional": true, - "requires": { - "hoek": "2.x.x" - } + "dev": true }, "brace-expansion": { - "version": "1.1.7", + "version": "1.1.11", "bundled": true, "dev": true, - "optional": true, "requires": { - "balanced-match": "^0.4.1", + "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, - "buffer-shims": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "caseless": { - "version": "0.12.0", - "bundled": true, - "dev": true, - "optional": true - }, - "co": { - "version": "4.6.0", + "chownr": { + "version": "1.1.1", "bundled": true, "dev": true, "optional": true @@ -2180,29 +2129,17 @@ "code-point-at": { "version": "1.1.0", "bundled": true, - "dev": true, - "optional": true - }, - "combined-stream": { - "version": "1.0.5", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "delayed-stream": "~1.0.0" - } + "dev": true }, "concat-map": { "version": "0.0.1", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "console-control-strings": { "version": "1.1.0", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "core-util-is": { "version": "1.0.2", @@ -2210,34 +2147,8 @@ "dev": true, "optional": true }, - "cryptiles": { - "version": "2.0.5", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "boom": "2.x.x" - } - }, - "dashdash": { - "version": "1.14.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "assert-plus": "^1.0.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - } - } - }, "debug": { - "version": "2.6.8", + "version": "2.6.9", "bundled": true, "dev": true, "optional": true, @@ -2246,13 +2157,7 @@ } }, "deep-extend": { - "version": "0.4.2", - "bundled": true, - "dev": true, - "optional": true - }, - "delayed-stream": { - "version": "1.0.0", + "version": "0.6.0", "bundled": true, "dev": true, "optional": true @@ -2264,47 +2169,18 @@ "optional": true }, "detect-libc": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "ecc-jsbn": { - "version": "0.1.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "jsbn": "~0.1.0" - } - }, - "extend": { - "version": "3.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "extsprintf": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "forever-agent": { - "version": "0.6.1", + "version": "1.0.3", "bundled": true, "dev": true, "optional": true }, - "form-data": { - "version": "2.1.4", + "fs-minipass": { + "version": "1.2.5", "bundled": true, "dev": true, "optional": true, "requires": { - "asynckit": "0.4.0", - "combined-stream": "1.0.5", - "mime-types": "2.1.15" + "minipass": "^2.2.1" } }, "fs.realpath": { @@ -2313,29 +2189,6 @@ "dev": true, "optional": true }, - "fstream": { - "version": "1.0.11", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "graceful-fs": "^4.1.2", - "inherits": "~2.0.0", - "mkdirp": ">=0.5 0", - "rimraf": "2" - } - }, - "fstream-ignore": { - "version": "1.0.5", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "fstream": "^1.0.0", - "inherits": "2", - "minimatch": "^3.0.0" - } - }, "gauge": { "version": "2.7.4", "bundled": true, @@ -2352,25 +2205,8 @@ "wide-align": "^1.1.0" } }, - "getpass": { - "version": "0.1.7", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "assert-plus": "^1.0.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - } - } - }, "glob": { - "version": "7.1.2", + "version": "7.1.3", "bundled": true, "dev": true, "optional": true, @@ -2383,61 +2219,28 @@ "path-is-absolute": "^1.0.0" } }, - "graceful-fs": { - "version": "4.1.11", - "bundled": true, - "dev": true, - "optional": true - }, - "har-schema": { - "version": "1.0.5", - "bundled": true, - "dev": true, - "optional": true - }, - "har-validator": { - "version": "4.2.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "ajv": "4.11.8", - "har-schema": "1.0.5" - } - }, "has-unicode": { "version": "2.0.1", "bundled": true, "dev": true, "optional": true }, - "hawk": { - "version": "3.1.3", + "iconv-lite": { + "version": "0.4.24", "bundled": true, "dev": true, "optional": true, "requires": { - "boom": "2.x.x", - "cryptiles": "2.x.x", - "hoek": "2.x.x", - "sntp": "1.x.x" + "safer-buffer": ">= 2.1.2 < 3" } }, - "hoek": { - "version": "2.16.3", - "bundled": true, - "dev": true, - "optional": true - }, - "http-signature": { - "version": "1.1.1", + "ignore-walk": { + "version": "3.0.1", "bundled": true, "dev": true, "optional": true, "requires": { - "assert-plus": "^0.2.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" + "minimatch": "^3.0.4" } }, "inflight": { @@ -2453,11 +2256,10 @@ "inherits": { "version": "2.0.3", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "ini": { - "version": "1.3.4", + "version": "1.3.5", "bundled": true, "dev": true, "optional": true @@ -2466,153 +2268,95 @@ "version": "1.0.0", "bundled": true, "dev": true, - "optional": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, - "is-typedarray": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, "isarray": { "version": "1.0.0", "bundled": true, "dev": true, "optional": true }, - "isstream": { - "version": "0.1.2", - "bundled": true, - "dev": true, - "optional": true - }, - "jodid25519": { - "version": "1.0.2", + "minimatch": { + "version": "3.0.4", "bundled": true, "dev": true, - "optional": true, "requires": { - "jsbn": "~0.1.0" + "brace-expansion": "^1.1.7" } }, - "jsbn": { - "version": "0.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "json-schema": { - "version": "0.2.3", + "minimist": { + "version": "0.0.8", "bundled": true, - "dev": true, - "optional": true + "dev": true }, - "json-stable-stringify": { - "version": "1.0.1", + "minipass": { + "version": "2.3.5", "bundled": true, "dev": true, - "optional": true, "requires": { - "jsonify": "~0.0.0" + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" } }, - "json-stringify-safe": { - "version": "5.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "jsonify": { - "version": "0.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "jsprim": { - "version": "1.4.0", + "minizlib": { + "version": "1.2.1", "bundled": true, "dev": true, "optional": true, "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.0.2", - "json-schema": "0.2.3", - "verror": "1.3.6" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - } + "minipass": "^2.2.1" } }, - "mime-db": { - "version": "1.27.0", - "bundled": true, - "dev": true, - "optional": true - }, - "mime-types": { - "version": "2.1.15", + "mkdirp": { + "version": "0.5.1", "bundled": true, "dev": true, - "optional": true, "requires": { - "mime-db": "1.27.0" + "minimist": "0.0.8" } }, - "minimatch": { - "version": "3.0.4", + "ms": { + "version": "2.0.0", "bundled": true, "dev": true, - "optional": true, - "requires": { - "brace-expansion": "1.1.7" - } + "optional": true }, - "minimist": { - "version": "0.0.8", - "bundled": true, + "nan": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.12.1.tgz", + "integrity": "sha512-JY7V6lRkStKcKTvHO5NVSQRv+RV+FIL5pvDoLiAtSL9pKlC5x9PKQcZDsq7m4FO4d57mkhC6Z+QhAh3Jdk5JFw==", "dev": true, "optional": true }, - "mkdirp": { - "version": "0.5.1", + "needle": { + "version": "2.2.4", "bundled": true, "dev": true, "optional": true, "requires": { - "minimist": "0.0.8" + "debug": "^2.1.2", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" } }, - "ms": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "optional": true - }, "node-pre-gyp": { - "version": "0.6.39", + "version": "0.10.3", "bundled": true, "dev": true, "optional": true, "requires": { "detect-libc": "^1.0.2", - "hawk": "3.1.3", "mkdirp": "^0.5.1", + "needle": "^2.2.1", "nopt": "^4.0.1", + "npm-packlist": "^1.1.6", "npmlog": "^4.0.2", - "rc": "^1.1.7", - "request": "2.81.0", + "rc": "^1.2.7", "rimraf": "^2.6.1", "semver": "^5.3.0", - "tar": "^2.2.1", - "tar-pack": "^3.4.0" + "tar": "^4" } }, "nopt": { @@ -2625,8 +2369,24 @@ "osenv": "^0.1.4" } }, + "npm-bundled": { + "version": "1.0.5", + "bundled": true, + "dev": true, + "optional": true + }, + "npm-packlist": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1" + } + }, "npmlog": { - "version": "4.1.0", + "version": "4.1.2", "bundled": true, "dev": true, "optional": true, @@ -2640,14 +2400,7 @@ "number-is-nan": { "version": "1.0.1", "bundled": true, - "dev": true, - "optional": true - }, - "oauth-sign": { - "version": "0.8.2", - "bundled": true, - "dev": true, - "optional": true + "dev": true }, "object-assign": { "version": "4.1.1", @@ -2659,7 +2412,6 @@ "version": "1.4.0", "bundled": true, "dev": true, - "optional": true, "requires": { "wrappy": "1" } @@ -2677,13 +2429,13 @@ "optional": true }, "osenv": { - "version": "0.1.4", + "version": "0.1.5", "bundled": true, "dev": true, "optional": true, "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" } }, "path-is-absolute": { @@ -2692,37 +2444,19 @@ "dev": true, "optional": true }, - "performance-now": { - "version": "0.2.0", - "bundled": true, - "dev": true, - "optional": true - }, "process-nextick-args": { - "version": "1.0.7", - "bundled": true, - "dev": true, - "optional": true - }, - "punycode": { - "version": "1.4.1", - "bundled": true, - "dev": true, - "optional": true - }, - "qs": { - "version": "6.4.0", + "version": "2.0.0", "bundled": true, "dev": true, "optional": true }, "rc": { - "version": "1.2.1", + "version": "1.2.8", "bundled": true, "dev": true, "optional": true, "requires": { - "deep-extend": "~0.4.0", + "deep-extend": "^0.6.0", "ini": "~1.3.0", "minimist": "^1.2.0", "strip-json-comments": "~2.0.1" @@ -2737,67 +2471,48 @@ } }, "readable-stream": { - "version": "2.2.9", + "version": "2.3.6", "bundled": true, "dev": true, "optional": true, "requires": { - "buffer-shims": "~1.0.0", "core-util-is": "~1.0.0", - "inherits": "~2.0.1", + "inherits": "~2.0.3", "isarray": "~1.0.0", - "process-nextick-args": "~1.0.6", - "string_decoder": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", "util-deprecate": "~1.0.1" } }, - "request": { - "version": "2.81.0", + "rimraf": { + "version": "2.6.3", "bundled": true, "dev": true, "optional": true, "requires": { - "aws-sign2": "~0.6.0", - "aws4": "^1.2.1", - "caseless": "~0.12.0", - "combined-stream": "~1.0.5", - "extend": "~3.0.0", - "forever-agent": "~0.6.1", - "form-data": "~2.1.1", - "har-validator": "~4.2.1", - "hawk": "~3.1.3", - "http-signature": "~1.1.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.7", - "oauth-sign": "~0.8.1", - "performance-now": "^0.2.0", - "qs": "~6.4.0", - "safe-buffer": "^5.0.1", - "stringstream": "~0.0.4", - "tough-cookie": "~2.3.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.0.0" + "glob": "^7.1.3" } }, - "rimraf": { - "version": "2.6.1", + "safe-buffer": { + "version": "5.1.2", + "bundled": true, + "dev": true + }, + "safer-buffer": { + "version": "2.1.2", "bundled": true, "dev": true, - "optional": true, - "requires": { - "glob": "^7.0.5" - } + "optional": true }, - "safe-buffer": { - "version": "5.0.1", + "sax": { + "version": "1.2.4", "bundled": true, "dev": true, "optional": true }, "semver": { - "version": "5.3.0", + "version": "5.6.0", "bundled": true, "dev": true, "optional": true @@ -2814,45 +2529,10 @@ "dev": true, "optional": true }, - "sntp": { - "version": "1.0.9", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "hoek": "2.x.x" - } - }, - "sshpk": { - "version": "1.13.0", - "bundled": true, - "dev": true, - "optional": true, - "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", - "jodid25519": "^1.0.0", - "jsbn": "~0.1.0", - "tweetnacl": "~0.14.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - } - } - }, "string-width": { "version": "1.0.2", "bundled": true, "dev": true, - "optional": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", @@ -2860,25 +2540,18 @@ } }, "string_decoder": { - "version": "1.0.1", + "version": "1.1.1", "bundled": true, "dev": true, "optional": true, "requires": { - "safe-buffer": "^5.0.1" + "safe-buffer": "~5.1.0" } }, - "stringstream": { - "version": "0.0.5", - "bundled": true, - "dev": true, - "optional": true - }, "strip-ansi": { "version": "3.0.1", "bundled": true, "dev": true, - "optional": true, "requires": { "ansi-regex": "^2.0.0" } @@ -2890,97 +2563,44 @@ "optional": true }, "tar": { - "version": "2.2.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "block-stream": "*", - "fstream": "^1.0.2", - "inherits": "2" - } - }, - "tar-pack": { - "version": "3.4.0", + "version": "4.4.8", "bundled": true, "dev": true, "optional": true, "requires": { - "debug": "^2.2.0", - "fstream": "^1.0.10", - "fstream-ignore": "^1.0.5", - "once": "^1.3.3", - "readable-stream": "^2.1.4", - "rimraf": "^2.5.1", - "tar": "^2.2.1", - "uid-number": "^0.0.6" + "chownr": "^1.1.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.3.4", + "minizlib": "^1.1.1", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.2" } }, - "tough-cookie": { - "version": "2.3.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "punycode": "^1.4.1" - } - }, - "tunnel-agent": { - "version": "0.6.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "tweetnacl": { - "version": "0.14.5", - "bundled": true, - "dev": true, - "optional": true - }, - "uid-number": { - "version": "0.0.6", - "bundled": true, - "dev": true, - "optional": true - }, "util-deprecate": { "version": "1.0.2", "bundled": true, "dev": true, "optional": true }, - "uuid": { - "version": "3.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "verror": { - "version": "1.3.6", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "extsprintf": "1.0.2" - } - }, "wide-align": { - "version": "1.1.2", + "version": "1.1.3", "bundled": true, "dev": true, "optional": true, "requires": { - "string-width": "^1.0.2" + "string-width": "^1.0.2 || 2" } }, "wrappy": { "version": "1.0.2", "bundled": true, - "dev": true, - "optional": true + "dev": true + }, + "yallist": { + "version": "3.0.3", + "bundled": true, + "dev": true } } }, @@ -3730,9 +3350,9 @@ "dev": true }, "json5": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/json5/-/json5-0.4.0.tgz", - "integrity": "sha1-BUNS5MTIDIbAkjh31EneF2pzLI0=", + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", + "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", "dev": true }, "kind-of": { @@ -3778,9 +3398,9 @@ } }, "lodash": { - "version": "4.17.4", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", - "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", + "version": "4.17.11", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", + "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==", "dev": true }, "lodash._basecopy": { @@ -3959,6 +3579,12 @@ "object-visit": "^1.0.0" } }, + "math-random": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.4.tgz", + "integrity": "sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A==", + "dev": true + }, "memory-fs": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.3.0.tgz", @@ -4082,13 +3708,6 @@ "duplexer2": "0.0.2" } }, - "nan": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.8.0.tgz", - "integrity": "sha1-7XFfP+neArV6XmJS2QqWZ14fCFo=", - "dev": true, - "optional": true - }, "nanomatch": { "version": "1.2.13", "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", @@ -4386,12 +4005,6 @@ "integrity": "sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo=", "dev": true }, - "path-exists": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-1.0.0.tgz", - "integrity": "sha1-1aiZjrce83p0w06w2eum6HjuoIE=", - "dev": true - }, "path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", @@ -4529,27 +4142,6 @@ "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", "dev": true }, - "randomatic": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz", - "integrity": "sha512-D5JUjPyJbaJDkuAazpVnSfVkLlpeO3wDlPROTMLGKG1zMFNFRgrciKo1ltz/AzNTkqE0HzDx655QOL51N06how==", - "dev": true, - "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "dependencies": { - "kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, "react": { "version": "16.7.0", "resolved": "https://registry.npmjs.org/react/-/react-16.7.0.tgz", @@ -4679,9 +4271,9 @@ } }, "regenerate": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.3.3.tgz", - "integrity": "sha512-jVpo1GadrDAK59t/0jRx5VxYWQEDkkEKi6+HjE3joFVLfDOh9Xrdh0dF1eSq+BI/SwvTQ44gSscJ8N5zYL61sg==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz", + "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==", "dev": true }, "regenerator-runtime": { @@ -4911,12 +4503,6 @@ "integrity": "sha1-F93t3F9yL7ZlAWWIlUYZd4ZzFbo=", "dev": true }, - "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 - }, "sigmund": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", diff --git a/src/React.Core/package.json b/src/React.Core/package.json index 798bf5665..cc93192a9 100644 --- a/src/React.Core/package.json +++ b/src/React.Core/package.json @@ -6,9 +6,9 @@ "build": "gulp" }, "devDependencies": { - "babel-core": "6.9.1", + "babel-core": "^6.26.3", "babel-loader": "6.2.10", - "babel-preset-es2015": "6.9.0", + "babel-preset-es2015": "^6.24.1", "babel-preset-stage-0": "6.5.0", "babel-standalone": "6.7.7", "gulp": "3.9.1", From 7d79aafc18be40ebf61bcae757e8b3d0baf923cc Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Wed, 13 Feb 2019 00:12:11 -0500 Subject: [PATCH 123/530] Add vendor bundle to webpack sample (#722) --- src/React.Sample.Webpack.CoreMvc/Startup.cs | 4 +- .../Views/Home/Index.cshtml | 4 +- .../package-lock.json | 5792 +++++++++++------ src/React.Sample.Webpack.CoreMvc/package.json | 15 +- .../webpack.config.js | 33 +- 5 files changed, 3769 insertions(+), 2079 deletions(-) diff --git a/src/React.Sample.Webpack.CoreMvc/Startup.cs b/src/React.Sample.Webpack.CoreMvc/Startup.cs index fdb440cf4..f12e5a9bc 100644 --- a/src/React.Sample.Webpack.CoreMvc/Startup.cs +++ b/src/React.Sample.Webpack.CoreMvc/Startup.cs @@ -51,7 +51,9 @@ public void Configure(IApplicationBuilder app, IHostingEnvironment env) .SetReuseJavaScriptEngines(true) .SetLoadBabel(false) .SetLoadReact(false) - .AddScriptWithoutTransform("~/components-bundle.generated.js"); + .AddScriptWithoutTransform("~/dist/runtime.js") + .AddScriptWithoutTransform("~/dist/vendor.js") + .AddScriptWithoutTransform("~/dist/components.js"); }); app.UseMvc(routes => diff --git a/src/React.Sample.Webpack.CoreMvc/Views/Home/Index.cshtml b/src/React.Sample.Webpack.CoreMvc/Views/Home/Index.cshtml index 339e30010..f52266a17 100644 --- a/src/React.Sample.Webpack.CoreMvc/Views/Home/Index.cshtml +++ b/src/React.Sample.Webpack.CoreMvc/Views/Home/Index.cshtml @@ -16,5 +16,7 @@ ViewBag.ServerStyles = styledComponentsFunctions.RenderedStyles + reactJssFunctions.RenderedStyles; ViewBag.HelmetTitle = helmetFunctions.RenderedHelmet.GetValueOrDefault("title"); } - + + + @Html.ReactInitJavaScript() diff --git a/src/React.Sample.Webpack.CoreMvc/package-lock.json b/src/React.Sample.Webpack.CoreMvc/package-lock.json index 786c5532a..4793c0d69 100644 --- a/src/React.Sample.Webpack.CoreMvc/package-lock.json +++ b/src/React.Sample.Webpack.CoreMvc/package-lock.json @@ -9,7 +9,7 @@ "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.0.0.tgz", "integrity": "sha512-aP/hlLq01DWNEiDg4Jn23i+CXxW/owM4WpDLFUbpjxe4NS3BhLVZQ5i7E0ZrxuQ/vwekIeciyamgB1UIYxxM6A==", "requires": { - "@babel/types": "7.1.2" + "@babel/types": "^7.0.0" } }, "@babel/types": { @@ -17,9 +17,9 @@ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.1.2.tgz", "integrity": "sha512-pb1I05sZEKiSlMUV9UReaqsCPUpgbHHHu2n1piRm7JkuBkm6QxcaIzKu6FMnMtCbih/cEYTR+RGYYC96Yk9HAg==", "requires": { - "esutils": "2.0.2", - "lodash": "4.17.11", - "to-fast-properties": "2.0.0" + "esutils": "^2.0.2", + "lodash": "^4.17.10", + "to-fast-properties": "^2.0.0" }, "dependencies": { "lodash": { @@ -39,12 +39,12 @@ "resolved": "https://registry.npmjs.org/@emotion/babel-utils/-/babel-utils-0.6.10.tgz", "integrity": "sha512-/fnkM/LTEp3jKe++T0KyTszVGWNKPNOUJfjNKLO17BzQ6QPxgbg3whayom1Qr2oLFH3V92tDymU+dT5q676uow==", "requires": { - "@emotion/hash": "0.6.6", - "@emotion/memoize": "0.6.6", - "@emotion/serialize": "0.9.1", - "convert-source-map": "1.5.1", - "find-root": "1.1.0", - "source-map": "0.7.3" + "@emotion/hash": "^0.6.6", + "@emotion/memoize": "^0.6.6", + "@emotion/serialize": "^0.9.1", + "convert-source-map": "^1.5.1", + "find-root": "^1.1.0", + "source-map": "^0.7.2" }, "dependencies": { "source-map": { @@ -64,7 +64,7 @@ "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-0.6.8.tgz", "integrity": "sha512-IMSL7ekYhmFlILXcouA6ket3vV7u9BqStlXzbKOF9HBtpUPMMlHU+bBxrLOa2NvleVwNIxeq/zL8LafLbeUXcA==", "requires": { - "@emotion/memoize": "0.6.6" + "@emotion/memoize": "^0.6.6" } }, "@emotion/memoize": { @@ -77,10 +77,10 @@ "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-0.9.1.tgz", "integrity": "sha512-zTuAFtyPvCctHBEL8KZ5lJuwBanGSutFEncqLn/m9T1a6a93smBStK+bZzcNPgj4QS8Rkw9VTwJGhRIUVO8zsQ==", "requires": { - "@emotion/hash": "0.6.6", - "@emotion/memoize": "0.6.6", - "@emotion/unitless": "0.6.7", - "@emotion/utils": "0.8.2" + "@emotion/hash": "^0.6.6", + "@emotion/memoize": "^0.6.6", + "@emotion/unitless": "^0.6.7", + "@emotion/utils": "^0.8.2" } }, "@emotion/stylis": { @@ -98,101 +98,301 @@ "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-0.8.2.tgz", "integrity": "sha512-rLu3wcBWH4P5q1CGoSSH/i9hrXs7SlbRLkoq9IGuoPYNGQvDJ3pt/wmOM+XgYjIDRMVIdkUWt0RsfzF50JfnCw==" }, + "@webassemblyjs/ast": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.7.11.tgz", + "integrity": "sha512-ZEzy4vjvTzScC+SH8RBssQUawpaInUdMTYwYYLh54/s8TuT0gBLuyUnppKsVyZEi876VmmStKsUs28UxPgdvrA==", + "dev": true, + "requires": { + "@webassemblyjs/helper-module-context": "1.7.11", + "@webassemblyjs/helper-wasm-bytecode": "1.7.11", + "@webassemblyjs/wast-parser": "1.7.11" + } + }, + "@webassemblyjs/floating-point-hex-parser": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.7.11.tgz", + "integrity": "sha512-zY8dSNyYcgzNRNT666/zOoAyImshm3ycKdoLsyDw/Bwo6+/uktb7p4xyApuef1dwEBo/U/SYQzbGBvV+nru2Xg==", + "dev": true + }, + "@webassemblyjs/helper-api-error": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.7.11.tgz", + "integrity": "sha512-7r1qXLmiglC+wPNkGuXCvkmalyEstKVwcueZRP2GNC2PAvxbLYwLLPr14rcdJaE4UtHxQKfFkuDFuv91ipqvXg==", + "dev": true + }, + "@webassemblyjs/helper-buffer": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.7.11.tgz", + "integrity": "sha512-MynuervdylPPh3ix+mKZloTcL06P8tenNH3sx6s0qE8SLR6DdwnfgA7Hc9NSYeob2jrW5Vql6GVlsQzKQCa13w==", + "dev": true + }, + "@webassemblyjs/helper-code-frame": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.7.11.tgz", + "integrity": "sha512-T8ESC9KMXFTXA5urJcyor5cn6qWeZ4/zLPyWeEXZ03hj/x9weSokGNkVCdnhSabKGYWxElSdgJ+sFa9G/RdHNw==", + "dev": true, + "requires": { + "@webassemblyjs/wast-printer": "1.7.11" + } + }, + "@webassemblyjs/helper-fsm": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.7.11.tgz", + "integrity": "sha512-nsAQWNP1+8Z6tkzdYlXT0kxfa2Z1tRTARd8wYnc/e3Zv3VydVVnaeePgqUzFrpkGUyhUUxOl5ML7f1NuT+gC0A==", + "dev": true + }, + "@webassemblyjs/helper-module-context": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.7.11.tgz", + "integrity": "sha512-JxfD5DX8Ygq4PvXDucq0M+sbUFA7BJAv/GGl9ITovqE+idGX+J3QSzJYz+LwQmL7fC3Rs+utvWoJxDb6pmC0qg==", + "dev": true + }, + "@webassemblyjs/helper-wasm-bytecode": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.7.11.tgz", + "integrity": "sha512-cMXeVS9rhoXsI9LLL4tJxBgVD/KMOKXuFqYb5oCJ/opScWpkCMEz9EJtkonaNcnLv2R3K5jIeS4TRj/drde1JQ==", + "dev": true + }, + "@webassemblyjs/helper-wasm-section": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.7.11.tgz", + "integrity": "sha512-8ZRY5iZbZdtNFE5UFunB8mmBEAbSI3guwbrsCl4fWdfRiAcvqQpeqd5KHhSWLL5wuxo53zcaGZDBU64qgn4I4Q==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.7.11", + "@webassemblyjs/helper-buffer": "1.7.11", + "@webassemblyjs/helper-wasm-bytecode": "1.7.11", + "@webassemblyjs/wasm-gen": "1.7.11" + } + }, + "@webassemblyjs/ieee754": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.7.11.tgz", + "integrity": "sha512-Mmqx/cS68K1tSrvRLtaV/Lp3NZWzXtOHUW2IvDvl2sihAwJh4ACE0eL6A8FvMyDG9abes3saB6dMimLOs+HMoQ==", + "dev": true, + "requires": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "@webassemblyjs/leb128": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.7.11.tgz", + "integrity": "sha512-vuGmgZjjp3zjcerQg+JA+tGOncOnJLWVkt8Aze5eWQLwTQGNgVLcyOTqgSCxWTR4J42ijHbBxnuRaL1Rv7XMdw==", + "dev": true, + "requires": { + "@xtuc/long": "4.2.1" + } + }, + "@webassemblyjs/utf8": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.7.11.tgz", + "integrity": "sha512-C6GFkc7aErQIAH+BMrIdVSmW+6HSe20wg57HEC1uqJP8E/xpMjXqQUxkQw07MhNDSDcGpxI9G5JSNOQCqJk4sA==", + "dev": true + }, + "@webassemblyjs/wasm-edit": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.7.11.tgz", + "integrity": "sha512-FUd97guNGsCZQgeTPKdgxJhBXkUbMTY6hFPf2Y4OedXd48H97J+sOY2Ltaq6WGVpIH8o/TGOVNiVz/SbpEMJGg==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.7.11", + "@webassemblyjs/helper-buffer": "1.7.11", + "@webassemblyjs/helper-wasm-bytecode": "1.7.11", + "@webassemblyjs/helper-wasm-section": "1.7.11", + "@webassemblyjs/wasm-gen": "1.7.11", + "@webassemblyjs/wasm-opt": "1.7.11", + "@webassemblyjs/wasm-parser": "1.7.11", + "@webassemblyjs/wast-printer": "1.7.11" + } + }, + "@webassemblyjs/wasm-gen": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.7.11.tgz", + "integrity": "sha512-U/KDYp7fgAZX5KPfq4NOupK/BmhDc5Kjy2GIqstMhvvdJRcER/kUsMThpWeRP8BMn4LXaKhSTggIJPOeYHwISA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.7.11", + "@webassemblyjs/helper-wasm-bytecode": "1.7.11", + "@webassemblyjs/ieee754": "1.7.11", + "@webassemblyjs/leb128": "1.7.11", + "@webassemblyjs/utf8": "1.7.11" + } + }, + "@webassemblyjs/wasm-opt": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.7.11.tgz", + "integrity": "sha512-XynkOwQyiRidh0GLua7SkeHvAPXQV/RxsUeERILmAInZegApOUAIJfRuPYe2F7RcjOC9tW3Cb9juPvAC/sCqvg==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.7.11", + "@webassemblyjs/helper-buffer": "1.7.11", + "@webassemblyjs/wasm-gen": "1.7.11", + "@webassemblyjs/wasm-parser": "1.7.11" + } + }, + "@webassemblyjs/wasm-parser": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.7.11.tgz", + "integrity": "sha512-6lmXRTrrZjYD8Ng8xRyvyXQJYUQKYSXhJqXOBLw24rdiXsHAOlvw5PhesjdcaMadU/pyPQOJ5dHreMjBxwnQKg==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.7.11", + "@webassemblyjs/helper-api-error": "1.7.11", + "@webassemblyjs/helper-wasm-bytecode": "1.7.11", + "@webassemblyjs/ieee754": "1.7.11", + "@webassemblyjs/leb128": "1.7.11", + "@webassemblyjs/utf8": "1.7.11" + } + }, + "@webassemblyjs/wast-parser": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.7.11.tgz", + "integrity": "sha512-lEyVCg2np15tS+dm7+JJTNhNWq9yTZvi3qEhAIIOaofcYlUp0UR5/tVqOwa/gXYr3gjwSZqw+/lS9dscyLelbQ==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.7.11", + "@webassemblyjs/floating-point-hex-parser": "1.7.11", + "@webassemblyjs/helper-api-error": "1.7.11", + "@webassemblyjs/helper-code-frame": "1.7.11", + "@webassemblyjs/helper-fsm": "1.7.11", + "@xtuc/long": "4.2.1" + } + }, + "@webassemblyjs/wast-printer": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.7.11.tgz", + "integrity": "sha512-m5vkAsuJ32QpkdkDOUPGSltrg8Cuk3KBx4YrmAGQwCZPRdUHXxG4phIOuuycLemHFr74sWL9Wthqss4fzdzSwg==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.7.11", + "@webassemblyjs/wast-parser": "1.7.11", + "@xtuc/long": "4.2.1" + } + }, + "@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true + }, + "@xtuc/long": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.1.tgz", + "integrity": "sha512-FZdkNBDqBRHKQ2MEbSC17xnPFOhZxeJ2YGSfr2BKf3sujG49Qe3bB+rGCwQfIaA7WHnGeGkSijX4FuBCdrzW/g==", + "dev": true + }, "abbrev": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" }, "acorn": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.3.0.tgz", - "integrity": "sha512-Yej+zOJ1Dm/IMZzzj78OntP/r3zHEaKcyNoU2lAaxPtrseM6rF0xwqoz5Q5ysAiED9hTjI2hgtvLXitlCN1/Ug==" + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.1.0.tgz", + "integrity": "sha512-MW/FjM+IvU9CgBzjO3UIPCE2pyEwUsoFl+VGdczOPEdxfGFjuKny/gN54mOuX7Qxmb9Rg9MCn2oKiSUeW+pjrw==", + "dev": true }, "acorn-dynamic-import": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-2.0.2.tgz", - "integrity": "sha1-x1K9IQvvZ5UBtsbLf8hPj0cVjMQ=", - "requires": { - "acorn": "4.0.13" - }, - "dependencies": { - "acorn": { - "version": "4.0.13", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", - "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=" - } - } + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-4.0.0.tgz", + "integrity": "sha512-d3OEjQV4ROpoflsnUA8HozoIR504TFxNivYEUi6uwz0IYhBkTDXGuWlNdMtybRt3nqVx/L6XqMt0FxkXuWKZhw==", + "dev": true }, "ajv": { - "version": "5.5.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", - "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", + "version": "6.9.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.9.1.tgz", + "integrity": "sha512-XDN92U311aINL77ieWHmqCcNlwjoP5cHXDxIxbf2MaPYuCXOHS7gHH8jktxeK5omgd52XbSTX6a4Piwd1pQmzA==", + "dev": true, "requires": { - "co": "4.6.0", - "fast-deep-equal": "1.0.0", - "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.3.1" + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" } }, - "ajv-keywords": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.1.tgz", - "integrity": "sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I=" + "ajv-errors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", + "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==", + "dev": true }, - "align-text": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", - "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", - "requires": { - "kind-of": "3.2.2", - "longest": "1.0.1", - "repeat-string": "1.6.1" - } + "ajv-keywords": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.4.0.tgz", + "integrity": "sha512-aUjdRFISbuFOl0EIZc+9e4FfZp0bDZgAdOOf30bJmw8VM9v84SHyVyxDfbWxpGYbdZD/9XoKxfHVNmxPkhwyGw==", + "dev": true }, "ansi-regex": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true }, "ansi-styles": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true }, "anymatch": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", - "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, "requires": { - "micromatch": "2.3.11", - "normalize-path": "2.1.1" + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } } }, + "aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", + "dev": true + }, "argparse": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "requires": { - "sprintf-js": "1.0.3" + "sprintf-js": "~1.0.2" } }, "arr-diff": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", - "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", - "requires": { - "arr-flatten": "1.1.0" - } + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true }, "arr-flatten": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==" + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "dev": true }, "array-unique": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", - "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=" + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true }, "asap": { "version": "2.0.6", @@ -200,246 +400,289 @@ "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" }, "asn1.js": { - "version": "4.9.2", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.9.2.tgz", - "integrity": "sha512-b/OsSjvWEo8Pi8H0zsDd2P6Uqo2TK2pH8gNLSJtNLM2Db0v2QaAZ0pBQJXVjAn4gBuugeVDr7s63ZogpUIwWDg==", + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", + "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", + "dev": true, "requires": { - "bn.js": "4.11.8", - "inherits": "2.0.3", - "minimalistic-assert": "1.0.0" + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" } }, "assert": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz", "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=", + "dev": true, "requires": { "util": "0.10.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", + "dev": true + }, + "util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", + "dev": true, + "requires": { + "inherits": "2.0.1" + } + } } }, - "async": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.0.tgz", - "integrity": "sha512-xAfGg1/NTLBBKlHFmnd7PlmUW9KhVQIUuSrYem9xzFUZy13ScvtyGGejaae9iAVRiRq9+Cx7DPFaAAhCpyxyPw==", - "requires": { - "lodash": "4.17.4" - } + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "dev": true }, "async-each": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", - "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=" + "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=", + "dev": true + }, + "atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "dev": true }, "babel-code-frame": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "dev": true, "requires": { - "chalk": "1.1.3", - "esutils": "2.0.2", - "js-tokens": "3.0.2" + "chalk": "^1.1.3", + "esutils": "^2.0.2", + "js-tokens": "^3.0.2" } }, "babel-core": { "version": "6.26.3", "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz", "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==", - "requires": { - "babel-code-frame": "6.26.0", - "babel-generator": "6.26.1", - "babel-helpers": "6.24.1", - "babel-messages": "6.23.0", - "babel-register": "6.26.0", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "convert-source-map": "1.5.1", - "debug": "2.6.9", - "json5": "0.5.1", - "lodash": "4.17.4", - "minimatch": "3.0.4", - "path-is-absolute": "1.0.1", - "private": "0.1.8", - "slash": "1.0.0", - "source-map": "0.5.7" + "dev": true, + "requires": { + "babel-code-frame": "^6.26.0", + "babel-generator": "^6.26.0", + "babel-helpers": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-register": "^6.26.0", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "convert-source-map": "^1.5.1", + "debug": "^2.6.9", + "json5": "^0.5.1", + "lodash": "^4.17.4", + "minimatch": "^3.0.4", + "path-is-absolute": "^1.0.1", + "private": "^0.1.8", + "slash": "^1.0.0", + "source-map": "^0.5.7" } }, "babel-generator": { "version": "6.26.1", "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", + "dev": true, "requires": { - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "detect-indent": "4.0.0", - "jsesc": "1.3.0", - "lodash": "4.17.4", - "source-map": "0.5.7", - "trim-right": "1.0.1" + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "detect-indent": "^4.0.0", + "jsesc": "^1.3.0", + "lodash": "^4.17.4", + "source-map": "^0.5.7", + "trim-right": "^1.0.1" } }, "babel-helper-builder-binary-assignment-operator-visitor": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz", "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=", + "dev": true, "requires": { - "babel-helper-explode-assignable-expression": "6.24.1", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-explode-assignable-expression": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-helper-builder-react-jsx": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.26.0.tgz", "integrity": "sha1-Of+DE7dci2Xc7/HzHTg+D/KkCKA=", + "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "esutils": "2.0.2" + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "esutils": "^2.0.2" } }, "babel-helper-call-delegate": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz", "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", + "dev": true, "requires": { - "babel-helper-hoist-variables": "6.24.1", - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-hoist-variables": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helper-define-map": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz", "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=", + "dev": true, "requires": { - "babel-helper-function-name": "6.24.1", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "lodash": "4.17.4" + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" } }, "babel-helper-explode-assignable-expression": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz", "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=", + "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helper-function-name": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", + "dev": true, "requires": { - "babel-helper-get-function-arity": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-get-function-arity": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helper-get-function-arity": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", + "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-helper-hoist-variables": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz", "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", + "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-helper-optimise-call-expression": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz", "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=", + "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-helper-regex": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz", "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", + "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "lodash": "4.17.4" + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" } }, "babel-helper-remap-async-to-generator": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz", "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=", + "dev": true, "requires": { - "babel-helper-function-name": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helper-replace-supers": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz", "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=", + "dev": true, "requires": { - "babel-helper-optimise-call-expression": "6.24.1", - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-optimise-call-expression": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helpers": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", + "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" } }, "babel-loader": { "version": "7.1.2", "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-7.1.2.tgz", "integrity": "sha512-jRwlFbINAeyDStqK6Dd5YuY0k5YuzQUvlz2ZamuXrXmxav3pNqe9vfJ402+2G+OmlJSXxCOpB6Uz0INM7RQe2A==", + "dev": true, "requires": { - "find-cache-dir": "1.0.0", - "loader-utils": "1.1.0", - "mkdirp": "0.5.1" + "find-cache-dir": "^1.0.0", + "loader-utils": "^1.0.2", + "mkdirp": "^0.5.1" } }, "babel-messages": { "version": "6.23.0", "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-check-es2015-constants": { "version": "6.22.0", "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz", "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", + "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-emotion": { @@ -447,18 +690,18 @@ "resolved": "https://registry.npmjs.org/babel-plugin-emotion/-/babel-plugin-emotion-9.2.11.tgz", "integrity": "sha512-dgCImifnOPPSeXod2znAmgc64NhaaOjGEHROR/M+lmStb3841yK1sgaDYAYMnlvWNz8GnpwIPN0VmNpbWYZ+VQ==", "requires": { - "@babel/helper-module-imports": "7.0.0", - "@emotion/babel-utils": "0.6.10", - "@emotion/hash": "0.6.6", - "@emotion/memoize": "0.6.6", - "@emotion/stylis": "0.7.1", - "babel-plugin-macros": "2.4.2", - "babel-plugin-syntax-jsx": "6.18.0", - "convert-source-map": "1.5.1", - "find-root": "1.1.0", - "mkdirp": "0.5.1", - "source-map": "0.5.7", - "touch": "2.0.2" + "@babel/helper-module-imports": "^7.0.0", + "@emotion/babel-utils": "^0.6.4", + "@emotion/hash": "^0.6.2", + "@emotion/memoize": "^0.6.1", + "@emotion/stylis": "^0.7.0", + "babel-plugin-macros": "^2.0.0", + "babel-plugin-syntax-jsx": "^6.18.0", + "convert-source-map": "^1.5.0", + "find-root": "^1.1.0", + "mkdirp": "^0.5.1", + "source-map": "^0.5.7", + "touch": "^2.0.1" } }, "babel-plugin-macros": { @@ -466,24 +709,27 @@ "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-2.4.2.tgz", "integrity": "sha512-NBVpEWN4OQ/bHnu1fyDaAaTPAjnhXCEPqr1RwqxrU7b6tZ2hypp+zX4hlNfmVGfClD5c3Sl6Hfj5TJNF5VG5aA==", "requires": { - "cosmiconfig": "5.0.6", - "resolve": "1.8.1" + "cosmiconfig": "^5.0.5", + "resolve": "^1.8.1" } }, "babel-plugin-syntax-async-functions": { "version": "6.13.0", "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz", - "integrity": "sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU=" + "integrity": "sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU=", + "dev": true }, "babel-plugin-syntax-exponentiation-operator": { "version": "6.13.0", "resolved": "https://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz", - "integrity": "sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4=" + "integrity": "sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4=", + "dev": true }, "babel-plugin-syntax-flow": { "version": "6.18.0", "resolved": "http://registry.npmjs.org/babel-plugin-syntax-flow/-/babel-plugin-syntax-flow-6.18.0.tgz", - "integrity": "sha1-TDqyCiryaqIM0lmVw5jE63AxDI0=" + "integrity": "sha1-TDqyCiryaqIM0lmVw5jE63AxDI0=", + "dev": true }, "babel-plugin-syntax-jsx": { "version": "6.18.0", @@ -493,431 +739,528 @@ "babel-plugin-syntax-trailing-function-commas": { "version": "6.22.0", "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz", - "integrity": "sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM=" + "integrity": "sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM=", + "dev": true }, "babel-plugin-transform-async-to-generator": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz", "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=", + "dev": true, "requires": { - "babel-helper-remap-async-to-generator": "6.24.1", - "babel-plugin-syntax-async-functions": "6.13.0", - "babel-runtime": "6.26.0" + "babel-helper-remap-async-to-generator": "^6.24.1", + "babel-plugin-syntax-async-functions": "^6.8.0", + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-arrow-functions": { "version": "6.22.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=", + "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-block-scoped-functions": { "version": "6.22.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=", + "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-block-scoping": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz", "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=", + "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "lodash": "4.17.4" + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" } }, "babel-plugin-transform-es2015-classes": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz", "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=", + "dev": true, "requires": { - "babel-helper-define-map": "6.26.0", - "babel-helper-function-name": "6.24.1", - "babel-helper-optimise-call-expression": "6.24.1", - "babel-helper-replace-supers": "6.24.1", - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-define-map": "^6.24.1", + "babel-helper-function-name": "^6.24.1", + "babel-helper-optimise-call-expression": "^6.24.1", + "babel-helper-replace-supers": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-computed-properties": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz", "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=", + "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" } }, "babel-plugin-transform-es2015-destructuring": { "version": "6.23.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", + "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-duplicate-keys": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz", "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=", + "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-for-of": { "version": "6.23.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz", "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=", + "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-function-name": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz", "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", + "dev": true, "requires": { - "babel-helper-function-name": "6.24.1", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-literals": { "version": "6.22.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz", "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=", + "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-modules-amd": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=", + "dev": true, "requires": { - "babel-plugin-transform-es2015-modules-commonjs": "6.26.0", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" + "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" } }, "babel-plugin-transform-es2015-modules-commonjs": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.0.tgz", "integrity": "sha1-DYOUApt9xqvhqX7xgeAHWN0uXYo=", + "dev": true, "requires": { - "babel-plugin-transform-strict-mode": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-types": "6.26.0" + "babel-plugin-transform-strict-mode": "^6.24.1", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-types": "^6.26.0" } }, "babel-plugin-transform-es2015-modules-systemjs": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz", "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=", + "dev": true, "requires": { - "babel-helper-hoist-variables": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" + "babel-helper-hoist-variables": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" } }, "babel-plugin-transform-es2015-modules-umd": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz", "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=", + "dev": true, "requires": { - "babel-plugin-transform-es2015-modules-amd": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" + "babel-plugin-transform-es2015-modules-amd": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" } }, "babel-plugin-transform-es2015-object-super": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz", "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=", + "dev": true, "requires": { - "babel-helper-replace-supers": "6.24.1", - "babel-runtime": "6.26.0" + "babel-helper-replace-supers": "^6.24.1", + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-parameters": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz", "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", + "dev": true, "requires": { - "babel-helper-call-delegate": "6.24.1", - "babel-helper-get-function-arity": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-call-delegate": "^6.24.1", + "babel-helper-get-function-arity": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-shorthand-properties": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz", "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=", + "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-spread": { "version": "6.22.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz", "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", + "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-sticky-regex": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", + "dev": true, "requires": { - "babel-helper-regex": "6.26.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-regex": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-template-literals": { "version": "6.22.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz", "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=", + "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-typeof-symbol": { "version": "6.23.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=", + "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-unicode-regex": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", + "dev": true, "requires": { - "babel-helper-regex": "6.26.0", - "babel-runtime": "6.26.0", - "regexpu-core": "2.0.0" + "babel-helper-regex": "^6.24.1", + "babel-runtime": "^6.22.0", + "regexpu-core": "^2.0.0" } }, "babel-plugin-transform-exponentiation-operator": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz", "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=", + "dev": true, "requires": { - "babel-helper-builder-binary-assignment-operator-visitor": "6.24.1", - "babel-plugin-syntax-exponentiation-operator": "6.13.0", - "babel-runtime": "6.26.0" + "babel-helper-builder-binary-assignment-operator-visitor": "^6.24.1", + "babel-plugin-syntax-exponentiation-operator": "^6.8.0", + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-flow-strip-types": { "version": "6.22.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.22.0.tgz", "integrity": "sha1-hMtnKTXUNxT9wyvOhFaNh0Qc988=", + "dev": true, "requires": { - "babel-plugin-syntax-flow": "6.18.0", - "babel-runtime": "6.26.0" + "babel-plugin-syntax-flow": "^6.18.0", + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-react-display-name": { "version": "6.25.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-display-name/-/babel-plugin-transform-react-display-name-6.25.0.tgz", "integrity": "sha1-Z+K/Hx6ck6sI25Z5LgU5K/LMKNE=", + "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-react-jsx": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.24.1.tgz", "integrity": "sha1-hAoCjn30YN/DotKfDA2R9jduZqM=", + "dev": true, "requires": { - "babel-helper-builder-react-jsx": "6.26.0", - "babel-plugin-syntax-jsx": "6.18.0", - "babel-runtime": "6.26.0" + "babel-helper-builder-react-jsx": "^6.24.1", + "babel-plugin-syntax-jsx": "^6.8.0", + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-react-jsx-self": { "version": "6.22.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-self/-/babel-plugin-transform-react-jsx-self-6.22.0.tgz", "integrity": "sha1-322AqdomEqEh5t3XVYvL7PBuY24=", + "dev": true, "requires": { - "babel-plugin-syntax-jsx": "6.18.0", - "babel-runtime": "6.26.0" + "babel-plugin-syntax-jsx": "^6.8.0", + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-react-jsx-source": { "version": "6.22.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-source/-/babel-plugin-transform-react-jsx-source-6.22.0.tgz", "integrity": "sha1-ZqwSFT9c0tF7PBkmj0vwGX9E7NY=", + "dev": true, "requires": { - "babel-plugin-syntax-jsx": "6.18.0", - "babel-runtime": "6.26.0" + "babel-plugin-syntax-jsx": "^6.8.0", + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-regenerator": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz", "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=", + "dev": true, "requires": { - "regenerator-transform": "0.10.1" + "regenerator-transform": "^0.10.0" } }, "babel-plugin-transform-strict-mode": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", + "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-preset-env": { "version": "1.6.1", "resolved": "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.6.1.tgz", "integrity": "sha512-W6VIyA6Ch9ePMI7VptNn2wBM6dbG0eSz25HEiL40nQXCsXGTGZSTZu1Iap+cj3Q0S5a7T9+529l/5Bkvd+afNA==", - "requires": { - "babel-plugin-check-es2015-constants": "6.22.0", - "babel-plugin-syntax-trailing-function-commas": "6.22.0", - "babel-plugin-transform-async-to-generator": "6.24.1", - "babel-plugin-transform-es2015-arrow-functions": "6.22.0", - "babel-plugin-transform-es2015-block-scoped-functions": "6.22.0", - "babel-plugin-transform-es2015-block-scoping": "6.26.0", - "babel-plugin-transform-es2015-classes": "6.24.1", - "babel-plugin-transform-es2015-computed-properties": "6.24.1", - "babel-plugin-transform-es2015-destructuring": "6.23.0", - "babel-plugin-transform-es2015-duplicate-keys": "6.24.1", - "babel-plugin-transform-es2015-for-of": "6.23.0", - "babel-plugin-transform-es2015-function-name": "6.24.1", - "babel-plugin-transform-es2015-literals": "6.22.0", - "babel-plugin-transform-es2015-modules-amd": "6.24.1", - "babel-plugin-transform-es2015-modules-commonjs": "6.26.0", - "babel-plugin-transform-es2015-modules-systemjs": "6.24.1", - "babel-plugin-transform-es2015-modules-umd": "6.24.1", - "babel-plugin-transform-es2015-object-super": "6.24.1", - "babel-plugin-transform-es2015-parameters": "6.24.1", - "babel-plugin-transform-es2015-shorthand-properties": "6.24.1", - "babel-plugin-transform-es2015-spread": "6.22.0", - "babel-plugin-transform-es2015-sticky-regex": "6.24.1", - "babel-plugin-transform-es2015-template-literals": "6.22.0", - "babel-plugin-transform-es2015-typeof-symbol": "6.23.0", - "babel-plugin-transform-es2015-unicode-regex": "6.24.1", - "babel-plugin-transform-exponentiation-operator": "6.24.1", - "babel-plugin-transform-regenerator": "6.26.0", - "browserslist": "2.11.3", - "invariant": "2.2.2", - "semver": "5.5.0" + "dev": true, + "requires": { + "babel-plugin-check-es2015-constants": "^6.22.0", + "babel-plugin-syntax-trailing-function-commas": "^6.22.0", + "babel-plugin-transform-async-to-generator": "^6.22.0", + "babel-plugin-transform-es2015-arrow-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoping": "^6.23.0", + "babel-plugin-transform-es2015-classes": "^6.23.0", + "babel-plugin-transform-es2015-computed-properties": "^6.22.0", + "babel-plugin-transform-es2015-destructuring": "^6.23.0", + "babel-plugin-transform-es2015-duplicate-keys": "^6.22.0", + "babel-plugin-transform-es2015-for-of": "^6.23.0", + "babel-plugin-transform-es2015-function-name": "^6.22.0", + "babel-plugin-transform-es2015-literals": "^6.22.0", + "babel-plugin-transform-es2015-modules-amd": "^6.22.0", + "babel-plugin-transform-es2015-modules-commonjs": "^6.23.0", + "babel-plugin-transform-es2015-modules-systemjs": "^6.23.0", + "babel-plugin-transform-es2015-modules-umd": "^6.23.0", + "babel-plugin-transform-es2015-object-super": "^6.22.0", + "babel-plugin-transform-es2015-parameters": "^6.23.0", + "babel-plugin-transform-es2015-shorthand-properties": "^6.22.0", + "babel-plugin-transform-es2015-spread": "^6.22.0", + "babel-plugin-transform-es2015-sticky-regex": "^6.22.0", + "babel-plugin-transform-es2015-template-literals": "^6.22.0", + "babel-plugin-transform-es2015-typeof-symbol": "^6.23.0", + "babel-plugin-transform-es2015-unicode-regex": "^6.22.0", + "babel-plugin-transform-exponentiation-operator": "^6.22.0", + "babel-plugin-transform-regenerator": "^6.22.0", + "browserslist": "^2.1.2", + "invariant": "^2.2.2", + "semver": "^5.3.0" } }, "babel-preset-flow": { "version": "6.23.0", "resolved": "https://registry.npmjs.org/babel-preset-flow/-/babel-preset-flow-6.23.0.tgz", "integrity": "sha1-5xIYiHCFrpoktb5Baa/7WZgWxJ0=", + "dev": true, "requires": { - "babel-plugin-transform-flow-strip-types": "6.22.0" + "babel-plugin-transform-flow-strip-types": "^6.22.0" } }, "babel-preset-react": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-preset-react/-/babel-preset-react-6.24.1.tgz", "integrity": "sha1-umnfrqRfw+xjm2pOzqbhdwLJE4A=", + "dev": true, "requires": { - "babel-plugin-syntax-jsx": "6.18.0", - "babel-plugin-transform-react-display-name": "6.25.0", - "babel-plugin-transform-react-jsx": "6.24.1", - "babel-plugin-transform-react-jsx-self": "6.22.0", - "babel-plugin-transform-react-jsx-source": "6.22.0", - "babel-preset-flow": "6.23.0" + "babel-plugin-syntax-jsx": "^6.3.13", + "babel-plugin-transform-react-display-name": "^6.23.0", + "babel-plugin-transform-react-jsx": "^6.24.1", + "babel-plugin-transform-react-jsx-self": "^6.22.0", + "babel-plugin-transform-react-jsx-source": "^6.22.0", + "babel-preset-flow": "^6.23.0" } }, "babel-register": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", + "dev": true, "requires": { - "babel-core": "6.26.3", - "babel-runtime": "6.26.0", - "core-js": "2.5.3", - "home-or-tmp": "2.0.0", - "lodash": "4.17.4", - "mkdirp": "0.5.1", - "source-map-support": "0.4.18" + "babel-core": "^6.26.0", + "babel-runtime": "^6.26.0", + "core-js": "^2.5.0", + "home-or-tmp": "^2.0.0", + "lodash": "^4.17.4", + "mkdirp": "^0.5.1", + "source-map-support": "^0.4.15" } }, "babel-runtime": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, "requires": { - "core-js": "2.5.3", - "regenerator-runtime": "0.11.1" + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" } }, "babel-template": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", + "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "lodash": "4.17.4" + "babel-runtime": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "lodash": "^4.17.4" } }, "babel-traverse": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", + "dev": true, "requires": { - "babel-code-frame": "6.26.0", - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "debug": "2.6.9", - "globals": "9.18.0", - "invariant": "2.2.2", - "lodash": "4.17.4" + "babel-code-frame": "^6.26.0", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "debug": "^2.6.8", + "globals": "^9.18.0", + "invariant": "^2.2.2", + "lodash": "^4.17.4" } }, "babel-types": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "dev": true, "requires": { - "babel-runtime": "6.26.0", - "esutils": "2.0.2", - "lodash": "4.17.4", - "to-fast-properties": "1.0.3" + "babel-runtime": "^6.26.0", + "esutils": "^2.0.2", + "lodash": "^4.17.4", + "to-fast-properties": "^1.0.3" } }, "babylon": { "version": "6.18.0", "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", - "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==" + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", + "dev": true }, "balanced-match": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "dev": true, + "requires": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } }, "base64-js": { "version": "1.2.1", @@ -927,35 +1270,64 @@ "big.js": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz", - "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==" + "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==", + "dev": true }, "binary-extensions": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.11.0.tgz", - "integrity": "sha1-RqoXUftqL5PuXmibsQh9SxTGwgU=" + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.0.tgz", + "integrity": "sha512-EgmjVLMn22z7eGGv3kcnHwSnJXmFHjISTY9E/S5lIcTD3Oxw05QTcBLNkJFzcb3cNueUdF/IN4U+d78V0zO8Hw==", + "dev": true + }, + "bluebird": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.3.tgz", + "integrity": "sha512-/qKPUQlaW1OyR51WeCPBvRnAlnZFUJkCSG5HzGnuIqhgyJtF+T94lFnn33eiazjRm2LAHVy2guNnaq48X9SJuw==", + "dev": true }, "bn.js": { "version": "4.11.8", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", - "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==" + "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", + "dev": true }, "brace-expansion": { "version": "1.1.8", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", + "dev": true, "requires": { - "balanced-match": "1.0.0", + "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "braces": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", - "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", - "requires": { - "expand-range": "1.8.2", - "preserve": "0.2.0", - "repeat-element": "1.1.2" + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } } }, "brcast": { @@ -966,95 +1338,114 @@ "brorand": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", + "dev": true }, "browserify-aes": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.1.1.tgz", - "integrity": "sha512-UGnTYAnB2a3YuYKIRy1/4FB2HdM866E0qC46JXvVTYKlBlZlnvfpSfY6OKfXZAkv70eJ2a1SqzpAo5CRhZGDFg==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "dev": true, "requires": { - "buffer-xor": "1.0.3", - "cipher-base": "1.0.4", - "create-hash": "1.1.3", - "evp_bytestokey": "1.0.3", - "inherits": "2.0.3", - "safe-buffer": "5.1.1" + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, "browserify-cipher": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.0.tgz", - "integrity": "sha1-mYgkSHS/XtTijalWZtzWasj8Njo=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", + "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", + "dev": true, "requires": { - "browserify-aes": "1.1.1", - "browserify-des": "1.0.0", - "evp_bytestokey": "1.0.3" + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" } }, "browserify-des": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.0.tgz", - "integrity": "sha1-2qJ3cXRwki7S/hhZQRihdUOXId0=", - "requires": { - "cipher-base": "1.0.4", - "des.js": "1.0.0", - "inherits": "2.0.3" + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", + "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", + "dev": true, + "requires": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + }, + "dependencies": { + "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==", + "dev": true + } } }, "browserify-rsa": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", + "dev": true, "requires": { - "bn.js": "4.11.8", - "randombytes": "2.0.6" + "bn.js": "^4.1.0", + "randombytes": "^2.0.1" } }, "browserify-sign": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz", "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=", + "dev": true, "requires": { - "bn.js": "4.11.8", - "browserify-rsa": "4.0.1", - "create-hash": "1.1.3", - "create-hmac": "1.1.6", - "elliptic": "6.4.0", - "inherits": "2.0.3", - "parse-asn1": "5.1.0" + "bn.js": "^4.1.1", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.2", + "elliptic": "^6.0.0", + "inherits": "^2.0.1", + "parse-asn1": "^5.0.0" } }, "browserify-zlib": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "dev": true, "requires": { - "pako": "1.0.6" + "pako": "~1.0.5" } }, "browserslist": { "version": "2.11.3", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-2.11.3.tgz", "integrity": "sha512-yWu5cXT7Av6mVwzWc8lMsJMHWn4xyjSuGYi4IozbVTLUOEYPSagUB8kiMDUHA1fS3zjr8nkxkn9jdvug4BBRmA==", + "dev": true, "requires": { - "caniuse-lite": "1.0.30000792", - "electron-to-chromium": "1.3.31" + "caniuse-lite": "^1.0.30000792", + "electron-to-chromium": "^1.3.30" } }, "buffer": { "version": "4.9.1", "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=", + "dev": true, "requires": { - "base64-js": "1.2.1", - "ieee754": "1.1.8", - "isarray": "1.0.0" + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" }, "dependencies": { "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true } } }, @@ -1066,126 +1457,295 @@ "buffer-xor": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=" - }, - "builtin-modules": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=" + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", + "dev": true }, "builtin-status-codes": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", - "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=" + "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", + "dev": true + }, + "cacache": { + "version": "11.3.2", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-11.3.2.tgz", + "integrity": "sha512-E0zP4EPGDOaT2chM08Als91eYnf8Z+eH1awwwVsngUmgppfM5jjJ8l3z5vO5p5w/I3LsiXawb1sW0VY65pQABg==", + "dev": true, + "requires": { + "bluebird": "^3.5.3", + "chownr": "^1.1.1", + "figgy-pudding": "^3.5.1", + "glob": "^7.1.3", + "graceful-fs": "^4.1.15", + "lru-cache": "^5.1.1", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.2", + "ssri": "^6.0.1", + "unique-filename": "^1.1.1", + "y18n": "^4.0.0" + } + }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "dev": true, + "requires": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + } }, "camelcase": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", - "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=" + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.0.0.tgz", + "integrity": "sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA==", + "dev": true }, "caniuse-lite": { "version": "1.0.30000792", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000792.tgz", - "integrity": "sha1-0M6pgfgRjzlhRxr7tDyaHlu/AzI=" - }, - "center-align": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", - "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", - "requires": { - "align-text": "0.1.4", - "lazy-cache": "1.0.4" - } + "integrity": "sha1-0M6pgfgRjzlhRxr7tDyaHlu/AzI=", + "dev": true }, "chalk": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "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" } }, "chokidar": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", - "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.0.tgz", + "integrity": "sha512-5t6G2SH8eO6lCvYOoUpaRnF5Qfd//gd7qJAkwRUw9qlGVkiQ13uwQngqbWWaurOsaAm9+kUGbITADxt6H0XFNQ==", + "dev": true, + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.0" + } + }, + "chownr": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.1.tgz", + "integrity": "sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g==", + "dev": true + }, + "chrome-trace-event": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.0.tgz", + "integrity": "sha512-xDbVgyfDTT2piup/h8dK/y4QZfJRSa73bw1WZ8b4XM1o7fsFubUVGYcE+1ANtOzJJELGpYoG2961z0Z6OAld9A==", + "dev": true, "requires": { - "anymatch": "1.3.2", - "async-each": "1.0.1", - "fsevents": "1.1.3", - "glob-parent": "2.0.0", - "inherits": "2.0.3", - "is-binary-path": "1.0.1", - "is-glob": "2.0.1", - "path-is-absolute": "1.0.1", - "readdirp": "2.1.0" + "tslib": "^1.9.0" } }, "cipher-base": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "dev": true, "requires": { - "inherits": "2.0.3", - "safe-buffer": "5.1.1" + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, - "cliui": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", - "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dev": true, "requires": { - "center-align": "0.1.3", - "right-align": "0.1.3", - "wordwrap": "0.0.2" + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + } } }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" + "cliui": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", + "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", + "dev": true, + "requires": { + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0", + "wrap-ansi": "^2.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } + } }, "code-point-at": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "dev": true + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "dev": true, + "requires": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "commander": { + "version": "2.17.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz", + "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==", + "dev": true }, "commondir": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "dev": true + }, + "component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", + "dev": true }, "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "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" + }, + "dependencies": { + "buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", + "dev": true + } + } }, "console-browserify": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", + "dev": true, "requires": { - "date-now": "0.1.4" + "date-now": "^0.1.4" } }, "constants-browserify": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", - "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=" + "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", + "dev": true }, "convert-source-map": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz", "integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU=" }, + "copy-concurrently": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", + "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", + "dev": true, + "requires": { + "aproba": "^1.1.1", + "fs-write-stream-atomic": "^1.0.8", + "iferr": "^0.1.5", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.0" + } + }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "dev": true + }, "core-js": { "version": "2.5.3", "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.3.tgz", - "integrity": "sha1-isw4NFgk8W2DZbfJtCWRaOjtYD4=" + "integrity": "sha1-isw4NFgk8W2DZbfJtCWRaOjtYD4=", + "dev": true }, "core-util-is": { "version": "1.0.2", @@ -1197,9 +1757,9 @@ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.0.6.tgz", "integrity": "sha512-6DWfizHriCrFWURP1/qyhsiFvYdlJzbCzmtFWh744+KyWsJo5+kPzUZZaMRSSItoYc0pxFX7gEO7ZC1/gN/7AQ==", "requires": { - "is-directory": "0.3.1", - "js-yaml": "3.12.0", - "parse-json": "4.0.0" + "is-directory": "^0.3.1", + "js-yaml": "^3.9.0", + "parse-json": "^4.0.0" }, "dependencies": { "parse-json": { @@ -1207,19 +1767,20 @@ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", "requires": { - "error-ex": "1.3.1", - "json-parse-better-errors": "1.0.2" + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" } } } }, "create-ecdh": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.0.tgz", - "integrity": "sha1-iIxyNZbN92EvZJgjPuvXo1MBc30=", + "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.11.8", - "elliptic": "6.4.0" + "bn.js": "^4.1.0", + "elliptic": "^6.0.0" } }, "create-emotion": { @@ -1227,13 +1788,13 @@ "resolved": "https://registry.npmjs.org/create-emotion/-/create-emotion-9.2.12.tgz", "integrity": "sha512-P57uOF9NL2y98Xrbl2OuiDQUZ30GVmASsv5fbsjF4Hlraip2kyAvMm+2PoYUvFFw03Fhgtxk3RqZSm2/qHL9hA==", "requires": { - "@emotion/hash": "0.6.6", - "@emotion/memoize": "0.6.6", - "@emotion/stylis": "0.7.1", - "@emotion/unitless": "0.6.7", - "csstype": "2.5.7", - "stylis": "3.5.3", - "stylis-rule-sheet": "0.0.10" + "@emotion/hash": "^0.6.2", + "@emotion/memoize": "^0.6.1", + "@emotion/stylis": "^0.7.0", + "@emotion/unitless": "^0.6.2", + "csstype": "^2.5.2", + "stylis": "^3.5.0", + "stylis-rule-sheet": "^0.0.10" } }, "create-emotion-server": { @@ -1241,9 +1802,9 @@ "resolved": "https://registry.npmjs.org/create-emotion-server/-/create-emotion-server-9.2.12.tgz", "integrity": "sha512-ET+E6A5MkQTEBNDYAnjh6+0cB33qStFXhtflkZNPEaOmvzYlB/xcPnpUk4J7ul3MVa8PCQx2Ei5g2MGY/y1n+g==", "requires": { - "html-tokenize": "2.0.0", - "multipipe": "1.0.2", - "through": "2.3.8" + "html-tokenize": "^2.0.0", + "multipipe": "^1.0.2", + "through": "^2.3.8" } }, "create-emotion-styled": { @@ -1251,59 +1812,66 @@ "resolved": "https://registry.npmjs.org/create-emotion-styled/-/create-emotion-styled-9.2.8.tgz", "integrity": "sha512-2LrNM5MREWzI5hZK+LyiBHglwE18WE3AEbBQgpHQ1+zmyLSm/dJsUZBeFAwuIMb+TjNZP0KsMZlV776ufOtFdg==", "requires": { - "@emotion/is-prop-valid": "0.6.8" + "@emotion/is-prop-valid": "^0.6.1" } }, "create-hash": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.1.3.tgz", - "integrity": "sha1-YGBCrIuSYnUPSDyt2rD1gZFy2P0=", + "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.4", - "inherits": "2.0.3", - "ripemd160": "2.0.1", - "sha.js": "2.4.9" + "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.6", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.6.tgz", - "integrity": "sha1-rLniIaThe9sHbpBlfEK5PjcmzwY=", + "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.4", - "create-hash": "1.1.3", - "inherits": "2.0.3", - "ripemd160": "2.0.1", - "safe-buffer": "5.1.1", - "sha.js": "2.4.9" + "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": "5.1.0", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, "requires": { - "lru-cache": "4.1.1", - "shebang-command": "1.2.0", - "which": "1.3.0" + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" } }, "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.4", - "create-ecdh": "4.0.0", - "create-hash": "1.1.3", - "create-hmac": "1.1.6", - "diffie-hellman": "5.0.2", - "inherits": "2.0.3", - "pbkdf2": "3.0.14", - "public-encrypt": "4.0.0", - "randombytes": "2.0.6", - "randomfill": "1.0.3" + "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" } }, "css-color-keywords": { @@ -1316,9 +1884,9 @@ "resolved": "https://registry.npmjs.org/css-to-react-native/-/css-to-react-native-2.2.2.tgz", "integrity": "sha512-w99Fzop1FO8XKm0VpbQp3y5mnTnaS+rtCvS+ylSEOK76YXO5zoHQx/QMB1N54Cp+Ya9jB9922EHrh14ld4xmmw==", "requires": { - "css-color-keywords": "1.0.0", - "fbjs": "0.8.16", - "postcss-value-parser": "3.3.0" + "css-color-keywords": "^1.0.0", + "fbjs": "^0.8.5", + "postcss-value-parser": "^3.3.0" } }, "css-vendor": { @@ -1326,7 +1894,7 @@ "resolved": "https://registry.npmjs.org/css-vendor/-/css-vendor-0.3.8.tgz", "integrity": "sha1-ZCHP0wNM5mT+dnOXL9ARn8KJQfo=", "requires": { - "is-in-browser": "1.1.3" + "is-in-browser": "^1.0.2" } }, "csstype": { @@ -1334,23 +1902,23 @@ "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.5.7.tgz", "integrity": "sha512-Nt5VDyOTIIV4/nRFswoCKps1R5CD1hkiyjBE9/thNaNZILLEviVw9yWQw15+O+CpNjQKB/uvdcxFFOrSflY3Yw==" }, - "d": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz", - "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=", - "requires": { - "es5-ext": "0.10.38" - } + "cyclist": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-0.2.2.tgz", + "integrity": "sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA=", + "dev": true }, "date-now": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", - "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=" + "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=", + "dev": true }, "debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, "requires": { "ms": "2.0.0" } @@ -1358,84 +1926,157 @@ "decamelize": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true + }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "dev": true }, "deep-equal": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz", "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=" }, + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, "des.js": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz", "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=", + "dev": true, "requires": { - "inherits": "2.0.3", - "minimalistic-assert": "1.0.0" + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" } }, + "detect-file": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", + "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=", + "dev": true + }, "detect-indent": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", + "dev": true, "requires": { - "repeating": "2.0.1" + "repeating": "^2.0.0" } }, "diffie-hellman": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.2.tgz", - "integrity": "sha1-tYNXOScM/ias9jIJn97SoH8gnl4=", + "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.11.8", - "miller-rabin": "4.0.1", - "randombytes": "2.0.6" + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" } }, "domain-browser": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.1.7.tgz", - "integrity": "sha1-hnqksJP6oF8d4IwG9NeyH9+GmLw=" + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", + "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", + "dev": true }, "duplexer2": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=", "requires": { - "readable-stream": "2.3.3" + "readable-stream": "^2.0.2" + } + }, + "duplexify": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", + "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", + "dev": true, + "requires": { + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" } }, "electron-to-chromium": { "version": "1.3.31", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.31.tgz", - "integrity": "sha512-XE4CLbswkZgZFn34cKFy1xaX+F5LHxeDLjY1+rsK9asDzknhbrd9g/n/01/acbU25KTsUSiLKwvlLyA+6XLUOA==" + "integrity": "sha512-XE4CLbswkZgZFn34cKFy1xaX+F5LHxeDLjY1+rsK9asDzknhbrd9g/n/01/acbU25KTsUSiLKwvlLyA+6XLUOA==", + "dev": true }, "elliptic": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.0.tgz", - "integrity": "sha1-ysmvh2LIWDYYcAPI3+GT5eLq5d8=", + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.1.tgz", + "integrity": "sha512-BsXLz5sqX8OHcsh7CqBMztyXARmGQ3LWPtGjJi6DiJHq5C/qvi9P3OqgswKSDftbu8+IoI/QDTAm2fFnQ9SZSQ==", + "dev": true, "requires": { - "bn.js": "4.11.8", - "brorand": "1.1.0", - "hash.js": "1.1.3", - "hmac-drbg": "1.0.1", - "inherits": "2.0.3", - "minimalistic-assert": "1.0.0", - "minimalistic-crypto-utils": "1.0.1" + "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" } }, "emojis-list": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", - "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=" + "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", + "dev": true }, "emotion": { "version": "9.2.12", "resolved": "https://registry.npmjs.org/emotion/-/emotion-9.2.12.tgz", "integrity": "sha512-hcx7jppaI8VoXxIWEhxpDW7I+B4kq9RNzQLmsrF6LY8BGKqe2N+gFAQr0EfuFucFlPs2A9HM4+xNj4NeqEWIOQ==", "requires": { - "babel-plugin-emotion": "9.2.11", - "create-emotion": "9.2.12" + "babel-plugin-emotion": "^9.2.11", + "create-emotion": "^9.2.12" } }, "emotion-server": { @@ -1443,7 +2084,7 @@ "resolved": "https://registry.npmjs.org/emotion-server/-/emotion-server-9.2.12.tgz", "integrity": "sha512-Bhjdl7eNoIeiAVa2QPP5d+1nP/31SiO/K1P/qI9cdXCydg91NwGYmteqhhge8u7PF8fLGTEVQfcPwj21815eBw==", "requires": { - "create-emotion-server": "9.2.12" + "create-emotion-server": "^9.2.12" } }, "encoding": { @@ -1451,26 +2092,36 @@ "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", "requires": { - "iconv-lite": "0.4.19" + "iconv-lite": "~0.4.13" + } + }, + "end-of-stream": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", + "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", + "dev": true, + "requires": { + "once": "^1.4.0" } }, "enhanced-resolve": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz", - "integrity": "sha1-BCHjOf1xQZs9oT0Smzl5BAIwR24=", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz", + "integrity": "sha512-F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng==", + "dev": true, "requires": { - "graceful-fs": "4.1.11", - "memory-fs": "0.4.1", - "object-assign": "4.1.1", - "tapable": "0.2.8" + "graceful-fs": "^4.1.2", + "memory-fs": "^0.4.0", + "tapable": "^1.0.0" } }, "errno": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.6.tgz", - "integrity": "sha512-IsORQDpaaSwcDP4ZZnHxgE85werpo34VYn1Ud3mq+eUsF593faR8oCZNXrROVkpFu2TsbrNhHin0aUrTsQ9vNw==", + "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" + "prr": "~1.0.1" } }, "error-ex": { @@ -1478,87 +2129,23 @@ "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", "requires": { - "is-arrayish": "0.2.1" - } - }, - "es5-ext": { - "version": "0.10.38", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.38.tgz", - "integrity": "sha512-jCMyePo7AXbUESwbl8Qi01VSH2piY9s/a3rSU/5w/MlTIx8HPL1xn2InGN8ejt/xulcJgnTO7vqNtOAxzYd2Kg==", - "requires": { - "es6-iterator": "2.0.3", - "es6-symbol": "3.1.1" - } - }, - "es6-iterator": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", - "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", - "requires": { - "d": "1.0.0", - "es5-ext": "0.10.38", - "es6-symbol": "3.1.1" - } - }, - "es6-map": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz", - "integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=", - "requires": { - "d": "1.0.0", - "es5-ext": "0.10.38", - "es6-iterator": "2.0.3", - "es6-set": "0.1.5", - "es6-symbol": "3.1.1", - "event-emitter": "0.3.5" - } - }, - "es6-set": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz", - "integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=", - "requires": { - "d": "1.0.0", - "es5-ext": "0.10.38", - "es6-iterator": "2.0.3", - "es6-symbol": "3.1.1", - "event-emitter": "0.3.5" - } - }, - "es6-symbol": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz", - "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=", - "requires": { - "d": "1.0.0", - "es5-ext": "0.10.38" - } - }, - "es6-weak-map": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.2.tgz", - "integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=", - "requires": { - "d": "1.0.0", - "es5-ext": "0.10.38", - "es6-iterator": "2.0.3", - "es6-symbol": "3.1.1" + "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=" + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true }, - "escope": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/escope/-/escope-3.6.0.tgz", - "integrity": "sha1-4Bl16BJ4GhY6ba392AOY3GTIicM=", + "eslint-scope": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.0.tgz", + "integrity": "sha512-1G6UTDi7Jc1ELFwnR58HV4fK9OQK4S6N985f166xqXxpjU6plxFISJa2Ba9KCQuFa8RCnj/lSFJbHo7UFDBnUA==", + "dev": true, "requires": { - "es6-map": "0.1.5", - "es6-weak-map": "2.0.2", - "esrecurse": "4.2.0", - "estraverse": "4.2.0" + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" } }, "esprima": { @@ -1567,59 +2154,54 @@ "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" }, "esrecurse": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.0.tgz", - "integrity": "sha1-+pVo2Y04I/mkHZHpAtyrnqblsWM=", + "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.2.0", - "object-assign": "4.1.1" + "estraverse": "^4.1.0" } }, "estraverse": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", - "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=" + "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", + "dev": true }, "esutils": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=" }, - "event-emitter": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", - "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", - "requires": { - "d": "1.0.0", - "es5-ext": "0.10.38" - } - }, "events": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", - "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=" + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.0.0.tgz", + "integrity": "sha512-Dc381HFWJzEOhQ+d8pkNon++bk9h6cdAoAj4iE6Q4y6xgTzySWXlKn05/TVNpjnfRqi/X0EpJEJohPjNI3zpVA==", + "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" + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" } }, "execa": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", - "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "dev": true, "requires": { - "cross-spawn": "5.1.0", - "get-stream": "3.0.0", - "is-stream": "1.1.0", - "npm-run-path": "2.0.2", - "p-finally": "1.0.0", - "signal-exit": "3.0.2", - "strip-eof": "1.0.0" + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" } }, "exenv": { @@ -1628,51 +2210,159 @@ "integrity": "sha1-KueOhdmJQVhnCwPUe+wfA72Ru50=" }, "expand-brackets": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", - "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", - "requires": { - "is-posix-bracket": "0.1.1" + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } } }, - "expand-range": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", - "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", + "expand-tilde": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", + "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", + "dev": true, "requires": { - "fill-range": "2.2.3" + "homedir-polyfill": "^1.0.1" } }, - "extglob": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", - "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, "requires": { - "is-extglob": "1.0.0" + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } } }, - "fast-deep-equal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz", - "integrity": "sha1-liVqO8l1WV6zbYLpkp0GDYk0Of8=" - }, - "fast-json-stable-stringify": { - "version": "2.0.0", + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "requires": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "fast-deep-equal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", + "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", + "dev": true + }, + "fast-json-stable-stringify": { + "version": "2.0.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", - "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=" + "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", + "dev": true }, "fbjs": { "version": "0.8.16", "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.16.tgz", "integrity": "sha1-XmdDL1UNxBtXK/VYR7ispk5TN9s=", "requires": { - "core-js": "1.2.7", - "isomorphic-fetch": "2.2.1", - "loose-envify": "1.3.1", - "object-assign": "4.1.1", - "promise": "7.3.1", - "setimmediate": "1.0.5", - "ua-parser-js": "0.7.17" + "core-js": "^1.0.0", + "isomorphic-fetch": "^2.1.1", + "loose-envify": "^1.0.0", + "object-assign": "^4.1.0", + "promise": "^7.1.1", + "setimmediate": "^1.0.5", + "ua-parser-js": "^0.7.9" }, "dependencies": { "core-js": { @@ -1682,31 +2372,44 @@ } } }, - "filename-regex": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", - "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=" + "figgy-pudding": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.1.tgz", + "integrity": "sha512-vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w==", + "dev": true }, "fill-range": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz", - "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=", - "requires": { - "is-number": "2.1.0", - "isobject": "2.1.0", - "randomatic": "1.1.7", - "repeat-element": "1.1.2", - "repeat-string": "1.6.1" + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } } }, "find-cache-dir": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-1.0.0.tgz", "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=", + "dev": true, "requires": { - "commondir": "1.0.1", - "make-dir": "1.1.0", - "pkg-dir": "2.0.0" + "commondir": "^1.0.1", + "make-dir": "^1.0.0", + "pkg-dir": "^2.0.0" } }, "find-root": { @@ -1718,475 +2421,382 @@ "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" + } + }, + "findup-sync": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz", + "integrity": "sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw=", + "dev": true, + "requires": { + "detect-file": "^1.0.0", + "is-glob": "^3.1.0", + "micromatch": "^3.0.4", + "resolve-dir": "^1.0.1" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "flush-write-stream": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", + "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", + "dev": true, "requires": { - "locate-path": "2.0.0" + "inherits": "^2.0.3", + "readable-stream": "^2.3.6" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "process-nextick-args": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", + "dev": true + }, + "readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "dev": true, + "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" + } + }, + "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==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } } }, "for-in": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true }, - "for-own": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", - "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "dev": true, + "requires": { + "map-cache": "^0.2.2" + } + }, + "from2": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", + "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", + "dev": true, "requires": { - "for-in": "1.0.2" + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" } }, + "fs-write-stream-atomic": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", + "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "iferr": "^0.1.5", + "imurmurhash": "^0.1.4", + "readable-stream": "1 || 2" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, "fsevents": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.1.3.tgz", - "integrity": "sha512-WIr7iDkdmdbxu/Gh6eKEZJL6KPE74/5MEsf2whTOFNxbIoIixogroLdKYqB6FDav4Wavh/lZdzzd3b2KxIXC5Q==", + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.7.tgz", + "integrity": "sha512-Pxm6sI2MeBD7RdD12RYsqaP0nMiwx8eZBXCa6z2L+mRHm2DYrOYwihmhjpkdjUHwQhslWQjRpEgNq4XvBmaAuw==", + "dev": true, "optional": true, "requires": { - "nan": "2.8.0", - "node-pre-gyp": "0.6.39" + "nan": "^2.9.2", + "node-pre-gyp": "^0.10.0" }, "dependencies": { "abbrev": { - "version": "1.1.0", + "version": "1.1.1", "bundled": true, + "dev": true, "optional": true }, - "ajv": { - "version": "4.11.8", - "bundled": true, - "optional": true, - "requires": { - "co": "4.6.0", - "json-stable-stringify": "1.0.1" - } - }, "ansi-regex": { "version": "2.1.1", - "bundled": true + "bundled": true, + "dev": true, + "optional": true }, "aproba": { - "version": "1.1.1", + "version": "1.2.0", "bundled": true, + "dev": true, "optional": true }, "are-we-there-yet": { - "version": "1.1.4", + "version": "1.1.5", "bundled": true, + "dev": true, "optional": true, "requires": { - "delegates": "1.0.0", - "readable-stream": "2.2.9" + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" } }, - "asn1": { - "version": "0.2.3", - "bundled": true, - "optional": true - }, - "assert-plus": { - "version": "0.2.0", - "bundled": true, - "optional": true - }, - "asynckit": { - "version": "0.4.0", - "bundled": true, - "optional": true - }, - "aws-sign2": { - "version": "0.6.0", - "bundled": true, - "optional": true - }, - "aws4": { - "version": "1.6.0", - "bundled": true, - "optional": true - }, "balanced-match": { - "version": "0.4.2", - "bundled": true - }, - "bcrypt-pbkdf": { - "version": "1.0.1", - "bundled": true, - "optional": true, - "requires": { - "tweetnacl": "0.14.5" - } - }, - "block-stream": { - "version": "0.0.9", - "bundled": true, - "requires": { - "inherits": "2.0.3" - } - }, - "boom": { - "version": "2.10.1", + "version": "1.0.0", "bundled": true, - "requires": { - "hoek": "2.16.3" - } + "dev": true, + "optional": true }, "brace-expansion": { - "version": "1.1.7", + "version": "1.1.11", "bundled": true, + "dev": true, + "optional": true, "requires": { - "balanced-match": "0.4.2", + "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, - "buffer-shims": { - "version": "1.0.0", - "bundled": true - }, - "caseless": { - "version": "0.12.0", - "bundled": true, - "optional": true - }, - "co": { - "version": "4.6.0", + "chownr": { + "version": "1.1.1", "bundled": true, + "dev": true, "optional": true }, "code-point-at": { "version": "1.1.0", - "bundled": true - }, - "combined-stream": { - "version": "1.0.5", "bundled": true, - "requires": { - "delayed-stream": "1.0.0" - } + "dev": true, + "optional": true }, "concat-map": { "version": "0.0.1", - "bundled": true + "bundled": true, + "dev": true, + "optional": true }, "console-control-strings": { "version": "1.1.0", - "bundled": true + "bundled": true, + "dev": true, + "optional": true }, "core-util-is": { "version": "1.0.2", - "bundled": true - }, - "cryptiles": { - "version": "2.0.5", - "bundled": true, - "requires": { - "boom": "2.10.1" - } - }, - "dashdash": { - "version": "1.14.1", "bundled": true, - "optional": true, - "requires": { - "assert-plus": "1.0.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "bundled": true, - "optional": true - } - } + "dev": true, + "optional": true }, "debug": { - "version": "2.6.8", + "version": "2.6.9", "bundled": true, + "dev": true, "optional": true, "requires": { "ms": "2.0.0" } }, "deep-extend": { - "version": "0.4.2", + "version": "0.6.0", "bundled": true, + "dev": true, "optional": true }, - "delayed-stream": { - "version": "1.0.0", - "bundled": true - }, "delegates": { "version": "1.0.0", "bundled": true, + "dev": true, "optional": true }, "detect-libc": { - "version": "1.0.2", - "bundled": true, - "optional": true - }, - "ecc-jsbn": { - "version": "0.1.1", - "bundled": true, - "optional": true, - "requires": { - "jsbn": "0.1.1" - } - }, - "extend": { - "version": "3.0.1", - "bundled": true, - "optional": true - }, - "extsprintf": { - "version": "1.0.2", - "bundled": true - }, - "forever-agent": { - "version": "0.6.1", + "version": "1.0.3", "bundled": true, + "dev": true, "optional": true }, - "form-data": { - "version": "2.1.4", + "fs-minipass": { + "version": "1.2.5", "bundled": true, + "dev": true, "optional": true, "requires": { - "asynckit": "0.4.0", - "combined-stream": "1.0.5", - "mime-types": "2.1.15" + "minipass": "^2.2.1" } }, "fs.realpath": { "version": "1.0.0", - "bundled": true - }, - "fstream": { - "version": "1.0.11", "bundled": true, - "requires": { - "graceful-fs": "4.1.11", - "inherits": "2.0.3", - "mkdirp": "0.5.1", - "rimraf": "2.6.1" - } - }, - "fstream-ignore": { - "version": "1.0.5", - "bundled": true, - "optional": true, - "requires": { - "fstream": "1.0.11", - "inherits": "2.0.3", - "minimatch": "3.0.4" - } + "dev": true, + "optional": true }, "gauge": { "version": "2.7.4", "bundled": true, + "dev": true, "optional": true, "requires": { - "aproba": "1.1.1", - "console-control-strings": "1.1.0", - "has-unicode": "2.0.1", - "object-assign": "4.1.1", - "signal-exit": "3.0.2", - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "wide-align": "1.1.2" - } - }, - "getpass": { - "version": "0.1.7", - "bundled": true, - "optional": true, - "requires": { - "assert-plus": "1.0.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "bundled": true, - "optional": true - } + "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" } }, "glob": { - "version": "7.1.2", - "bundled": true, - "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" - } - }, - "graceful-fs": { - "version": "4.1.11", - "bundled": true - }, - "har-schema": { - "version": "1.0.5", - "bundled": true, - "optional": true - }, - "har-validator": { - "version": "4.2.1", + "version": "7.1.3", "bundled": true, + "dev": true, "optional": true, "requires": { - "ajv": "4.11.8", - "har-schema": "1.0.5" + "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" } }, "has-unicode": { "version": "2.0.1", "bundled": true, + "dev": true, "optional": true }, - "hawk": { - "version": "3.1.3", + "iconv-lite": { + "version": "0.4.24", "bundled": true, + "dev": true, + "optional": true, "requires": { - "boom": "2.10.1", - "cryptiles": "2.0.5", - "hoek": "2.16.3", - "sntp": "1.0.9" + "safer-buffer": ">= 2.1.2 < 3" } }, - "hoek": { - "version": "2.16.3", - "bundled": true - }, - "http-signature": { - "version": "1.1.1", + "ignore-walk": { + "version": "3.0.1", "bundled": true, + "dev": true, "optional": true, "requires": { - "assert-plus": "0.2.0", - "jsprim": "1.4.0", - "sshpk": "1.13.0" + "minimatch": "^3.0.4" } }, "inflight": { "version": "1.0.6", "bundled": true, + "dev": true, + "optional": true, "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "once": "^1.3.0", + "wrappy": "1" } }, "inherits": { "version": "2.0.3", - "bundled": true + "bundled": true, + "dev": true, + "optional": true }, "ini": { - "version": "1.3.4", + "version": "1.3.5", "bundled": true, + "dev": true, "optional": true }, "is-fullwidth-code-point": { "version": "1.0.0", "bundled": true, + "dev": true, "optional": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, - "is-typedarray": { - "version": "1.0.0", - "bundled": true, - "optional": true - }, "isarray": { "version": "1.0.0", - "bundled": true - }, - "isstream": { - "version": "0.1.2", "bundled": true, + "dev": true, "optional": true }, - "jodid25519": { - "version": "1.0.2", + "minimatch": { + "version": "3.0.4", "bundled": true, + "dev": true, "optional": true, "requires": { - "jsbn": "0.1.1" + "brace-expansion": "^1.1.7" } }, - "jsbn": { - "version": "0.1.1", - "bundled": true, - "optional": true - }, - "json-schema": { - "version": "0.2.3", + "minimist": { + "version": "0.0.8", "bundled": true, + "dev": true, "optional": true }, - "json-stable-stringify": { - "version": "1.0.1", + "minipass": { + "version": "2.3.5", "bundled": true, + "dev": true, "optional": true, "requires": { - "jsonify": "0.0.0" + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" } }, - "json-stringify-safe": { - "version": "5.0.1", - "bundled": true, - "optional": true - }, - "jsonify": { - "version": "0.0.0", - "bundled": true, - "optional": true - }, - "jsprim": { - "version": "1.4.0", - "bundled": true, - "optional": true, - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.0.2", - "json-schema": "0.2.3", - "verror": "1.3.6" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "bundled": true, - "optional": true - } - } - }, - "mime-db": { - "version": "1.27.0", - "bundled": true, - "optional": true - }, - "mime-types": { - "version": "2.1.15", + "minizlib": { + "version": "1.2.1", "bundled": true, + "dev": true, "optional": true, "requires": { - "mime-db": "1.27.0" + "minipass": "^2.2.1" } }, - "minimatch": { - "version": "3.0.4", - "bundled": true, - "requires": { - "brace-expansion": "1.1.7" - } - }, - "minimist": { - "version": "0.0.8", - "bundled": true - }, "mkdirp": { "version": "0.5.1", "bundled": true, + "dev": true, + "optional": true, "requires": { "minimist": "0.0.8" } @@ -2194,405 +2804,447 @@ "ms": { "version": "2.0.0", "bundled": true, + "dev": true, "optional": true }, + "needle": { + "version": "2.2.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "debug": "^2.1.2", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + } + }, "node-pre-gyp": { - "version": "0.6.39", + "version": "0.10.3", "bundled": true, + "dev": true, "optional": true, "requires": { - "detect-libc": "1.0.2", - "hawk": "3.1.3", - "mkdirp": "0.5.1", - "nopt": "4.0.1", - "npmlog": "4.1.0", - "rc": "1.2.1", - "request": "2.81.0", - "rimraf": "2.6.1", - "semver": "5.3.0", - "tar": "2.2.1", - "tar-pack": "3.4.0" + "detect-libc": "^1.0.2", + "mkdirp": "^0.5.1", + "needle": "^2.2.1", + "nopt": "^4.0.1", + "npm-packlist": "^1.1.6", + "npmlog": "^4.0.2", + "rc": "^1.2.7", + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^4" } }, "nopt": { "version": "4.0.1", "bundled": true, + "dev": true, "optional": true, "requires": { "abbrev": "1", "osenv": "^0.1.4" } }, + "npm-bundled": { + "version": "1.0.5", + "bundled": true, + "dev": true, + "optional": true + }, + "npm-packlist": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1" + } + }, "npmlog": { - "version": "4.1.0", + "version": "4.1.2", "bundled": true, + "dev": true, "optional": true, "requires": { - "are-we-there-yet": "1.1.4", - "console-control-strings": "1.1.0", - "gauge": "2.7.4", - "set-blocking": "2.0.0" + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" } }, "number-is-nan": { "version": "1.0.1", "bundled": true, - "optional": true - }, - "oauth-sign": { - "version": "0.8.2", - "bundled": true, + "dev": true, "optional": true }, "object-assign": { "version": "4.1.1", "bundled": true, + "dev": true, "optional": true }, "once": { "version": "1.4.0", "bundled": true, + "dev": true, + "optional": true, "requires": { - "wrappy": "1.0.2" + "wrappy": "1" } }, "os-homedir": { "version": "1.0.2", "bundled": true, + "dev": true, "optional": true }, "os-tmpdir": { "version": "1.0.2", "bundled": true, + "dev": true, "optional": true }, "osenv": { - "version": "0.1.4", + "version": "0.1.5", "bundled": true, + "dev": true, "optional": true, "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" } }, "path-is-absolute": { "version": "1.0.1", - "bundled": true - }, - "performance-now": { - "version": "0.2.0", "bundled": true, + "dev": true, "optional": true }, "process-nextick-args": { - "version": "1.0.7", - "bundled": true - }, - "punycode": { - "version": "1.4.1", - "bundled": true, - "optional": true - }, - "qs": { - "version": "6.4.0", + "version": "2.0.0", "bundled": true, + "dev": true, "optional": true }, "rc": { - "version": "1.2.1", + "version": "1.2.8", "bundled": true, + "dev": true, "optional": true, "requires": { - "deep-extend": "0.4.2", - "ini": "1.3.4", - "minimist": "1.2.0", - "strip-json-comments": "2.0.1" + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" }, "dependencies": { "minimist": { "version": "1.2.0", "bundled": true, + "dev": true, "optional": true } } }, "readable-stream": { - "version": "2.2.9", - "bundled": true, - "requires": { - "buffer-shims": "1.0.0", - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "1.0.7", - "string_decoder": "1.0.1", - "util-deprecate": "1.0.2" - } - }, - "request": { - "version": "2.81.0", + "version": "2.3.6", "bundled": true, + "dev": true, "optional": true, "requires": { - "aws-sign2": "0.6.0", - "aws4": "1.6.0", - "caseless": "0.12.0", - "combined-stream": "1.0.5", - "extend": "3.0.1", - "forever-agent": "0.6.1", - "form-data": "2.1.4", - "har-validator": "4.2.1", - "hawk": "3.1.3", - "http-signature": "1.1.1", - "is-typedarray": "1.0.0", - "isstream": "0.1.2", - "json-stringify-safe": "5.0.1", - "mime-types": "2.1.15", - "oauth-sign": "0.8.2", - "performance-now": "0.2.0", - "qs": "6.4.0", - "safe-buffer": "5.0.1", - "stringstream": "0.0.5", - "tough-cookie": "2.3.2", - "tunnel-agent": "0.6.0", - "uuid": "3.0.1" + "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" } }, "rimraf": { - "version": "2.6.1", + "version": "2.6.3", "bundled": true, + "dev": true, + "optional": true, "requires": { - "glob": "7.1.2" + "glob": "^7.1.3" } }, "safe-buffer": { - "version": "5.0.1", - "bundled": true - }, - "semver": { - "version": "5.3.0", + "version": "5.1.2", "bundled": true, + "dev": true, "optional": true }, - "set-blocking": { - "version": "2.0.0", + "safer-buffer": { + "version": "2.1.2", "bundled": true, + "dev": true, "optional": true }, - "signal-exit": { - "version": "3.0.2", + "sax": { + "version": "1.2.4", "bundled": true, + "dev": true, "optional": true }, - "sntp": { - "version": "1.0.9", - "bundled": true, - "requires": { - "hoek": "2.16.3" - } - }, - "sshpk": { - "version": "1.13.0", - "bundled": true, - "optional": true, - "requires": { - "asn1": "0.2.3", - "assert-plus": "1.0.0", - "bcrypt-pbkdf": "1.0.1", - "dashdash": "1.14.1", - "ecc-jsbn": "0.1.1", - "getpass": "0.1.7", - "jodid25519": "1.0.2", - "jsbn": "0.1.1", - "tweetnacl": "0.14.5" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "bundled": true, - "optional": true - } - } - }, - "string-width": { - "version": "1.0.2", - "bundled": true, - "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" - } - }, - "string_decoder": { - "version": "1.0.1", - "bundled": true, - "requires": { - "safe-buffer": "5.0.1" - } - }, - "stringstream": { - "version": "0.0.5", + "semver": { + "version": "5.6.0", "bundled": true, + "dev": true, "optional": true }, - "strip-ansi": { - "version": "3.0.1", - "bundled": true, - "requires": { - "ansi-regex": "2.1.1" - } - }, - "strip-json-comments": { - "version": "2.0.1", + "set-blocking": { + "version": "2.0.0", "bundled": true, + "dev": true, "optional": true }, - "tar": { - "version": "2.2.1", + "signal-exit": { + "version": "3.0.2", "bundled": true, - "requires": { - "block-stream": "0.0.9", - "fstream": "1.0.11", - "inherits": "2.0.3" - } + "dev": true, + "optional": true }, - "tar-pack": { - "version": "3.4.0", + "string-width": { + "version": "1.0.2", "bundled": true, + "dev": true, "optional": true, "requires": { - "debug": "2.6.8", - "fstream": "1.0.11", - "fstream-ignore": "1.0.5", - "once": "1.4.0", - "readable-stream": "2.2.9", - "rimraf": "2.6.1", - "tar": "2.2.1", - "uid-number": "0.0.6" + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" } }, - "tough-cookie": { - "version": "2.3.2", + "string_decoder": { + "version": "1.1.1", "bundled": true, + "dev": true, "optional": true, "requires": { - "punycode": "1.4.1" + "safe-buffer": "~5.1.0" } }, - "tunnel-agent": { - "version": "0.6.0", + "strip-ansi": { + "version": "3.0.1", "bundled": true, + "dev": true, "optional": true, "requires": { - "safe-buffer": "5.0.1" + "ansi-regex": "^2.0.0" } }, - "tweetnacl": { - "version": "0.14.5", + "strip-json-comments": { + "version": "2.0.1", "bundled": true, + "dev": true, "optional": true }, - "uid-number": { - "version": "0.0.6", + "tar": { + "version": "4.4.8", "bundled": true, - "optional": true + "dev": true, + "optional": true, + "requires": { + "chownr": "^1.1.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.3.4", + "minizlib": "^1.1.1", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.2" + } }, "util-deprecate": { "version": "1.0.2", - "bundled": true - }, - "uuid": { - "version": "3.0.1", "bundled": true, + "dev": true, "optional": true }, - "verror": { - "version": "1.3.6", - "bundled": true, - "optional": true, - "requires": { - "extsprintf": "1.0.2" - } - }, "wide-align": { - "version": "1.1.2", + "version": "1.1.3", "bundled": true, + "dev": true, "optional": true, "requires": { - "string-width": "1.0.2" + "string-width": "^1.0.2 || 2" } }, "wrappy": { "version": "1.0.2", - "bundled": true + "bundled": true, + "dev": true, + "optional": true + }, + "yallist": { + "version": "3.0.3", + "bundled": true, + "dev": true, + "optional": true } } }, "get-caller-file": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz", - "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=" + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", + "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", + "dev": true }, "get-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } }, - "glob-base": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", - "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "dev": true + }, + "glob": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "dev": true, "requires": { - "glob-parent": "2.0.0", - "is-glob": "2.0.1" + "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": "2.0.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", - "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "global-modules": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", + "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", + "dev": true, + "requires": { + "global-prefix": "^1.0.1", + "is-windows": "^1.0.1", + "resolve-dir": "^1.0.0" + } + }, + "global-prefix": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", + "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", + "dev": true, "requires": { - "is-glob": "2.0.1" + "expand-tilde": "^2.0.2", + "homedir-polyfill": "^1.0.1", + "ini": "^1.3.4", + "is-windows": "^1.0.1", + "which": "^1.2.14" } }, "globals": { "version": "9.18.0", "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", - "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==" + "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", + "dev": true }, "graceful-fs": { - "version": "4.1.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" + "version": "4.1.15", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz", + "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==", + "dev": true }, "has-ansi": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "has-flag": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", - "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=" + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "dev": true, + "requires": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "dependencies": { + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } }, "hash-base": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-2.0.2.tgz", - "integrity": "sha1-ZuodhW206KVHDK32/OI65SRO8uE=", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", + "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", + "dev": true, "requires": { - "inherits": "2.0.3" + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, "hash.js": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", - "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", + "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.0" + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" } }, "history": { @@ -2600,21 +3252,22 @@ "resolved": "https://registry.npmjs.org/history/-/history-4.7.2.tgz", "integrity": "sha512-1zkBRWW6XweO0NBcjiphtVJVsIQ+SXF29z9DVkceeaSLVMFXHool+fdCZD4spDCfZJCILPILc3bm7Bc+HRi0nA==", "requires": { - "invariant": "2.2.2", - "loose-envify": "1.3.1", - "resolve-pathname": "2.2.0", - "value-equal": "0.4.0", - "warning": "3.0.0" + "invariant": "^2.2.1", + "loose-envify": "^1.2.0", + "resolve-pathname": "^2.2.0", + "value-equal": "^0.4.0", + "warning": "^3.0.0" } }, "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.1.3", - "minimalistic-assert": "1.0.0", - "minimalistic-crypto-utils": "1.0.1" + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" } }, "hoist-non-react-statics": { @@ -2626,26 +3279,31 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", + "dev": true, "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.1" } }, - "hosted-git-info": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.5.0.tgz", - "integrity": "sha512-pNgbURSuab90KbTqvRPsseaTxOJCZBD0a7t+haSN33piP9cCM4l0CqdzAif2hUqm716UovKB2ROmiabGAKVXyg==" + "homedir-polyfill": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz", + "integrity": "sha1-TCu8inWJmP7r9e1oWA921GdotLw=", + "dev": true, + "requires": { + "parse-passwd": "^1.0.0" + } }, "html-tokenize": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/html-tokenize/-/html-tokenize-2.0.0.tgz", "integrity": "sha1-izqaXetHXK5qb5ZxYA0sIKspglE=", "requires": { - "buffer-from": "0.1.2", - "inherits": "2.0.3", - "minimist": "0.0.8", - "readable-stream": "1.0.34", - "through2": "0.4.2" + "buffer-from": "~0.1.1", + "inherits": "~2.0.1", + "minimist": "~0.0.8", + "readable-stream": "~1.0.27-1", + "through2": "~0.4.1" }, "dependencies": { "readable-stream": { @@ -2653,10 +3311,10 @@ "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", "isarray": "0.0.1", - "string_decoder": "0.10.31" + "string_decoder": "~0.10.x" } }, "string_decoder": { @@ -2669,7 +3327,8 @@ "https-browserify": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", - "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=" + "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", + "dev": true }, "hyphenate-style-name": { "version": "1.0.2", @@ -2686,33 +3345,148 @@ "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.8.tgz", "integrity": "sha1-vjPUCsEO8ZJnAfbwii2G+/0a0+Q=" }, + "iferr": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", + "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", + "dev": true + }, + "import-local": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz", + "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==", + "dev": true, + "requires": { + "pkg-dir": "^3.0.0", + "resolve-cwd": "^2.0.0" + }, + "dependencies": { + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.1.0.tgz", + "integrity": "sha512-NhURkNcrVB+8hNfLuysU8enY5xn2KXphsHBaC2YmRNTZRc7RWusw6apSpdEj3jo4CMb6W9nrF6tTnsJsJeyu6g==", + "dev": true, + "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==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-try": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.0.0.tgz", + "integrity": "sha512-hMp0onDKIajHfIkdRk3P4CdCmErkYAxxDtP3Wx/4nZ3aGlau2VKh3mZpcuFkH27WQkL/3WBCPOktzA9ZOAnMQQ==", + "dev": true + }, + "pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "dev": true, + "requires": { + "find-up": "^3.0.0" + } + } + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true + }, "indexof": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", - "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=" + "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } }, "inherits": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" }, + "ini": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", + "dev": true + }, "interpret": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz", - "integrity": "sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ=" + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.2.0.tgz", + "integrity": "sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw==", + "dev": true }, "invariant": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz", "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=", "requires": { - "loose-envify": "1.3.1" + "loose-envify": "^1.0.0" } }, "invert-kv": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", - "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", + "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==", + "dev": true + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } }, "is-arrayish": { "version": "0.2.1", @@ -2723,21 +3497,54 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "dev": true, "requires": { - "binary-extensions": "1.11.0" + "binary-extensions": "^1.0.0" } }, "is-buffer": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true }, - "is-builtin-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", - "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, "requires": { - "builtin-modules": "1.1.1" + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } } }, "is-directory": { @@ -2745,44 +3552,32 @@ "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=" }, - "is-dotfile": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", - "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=" - }, - "is-equal-shallow": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", - "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", - "requires": { - "is-primitive": "2.0.0" - } - }, "is-extendable": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true }, "is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=" + "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.0.2", "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "dev": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "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.1" - } + "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 }, "is-function": { "version": "1.0.1", @@ -2790,11 +3585,12 @@ "integrity": "sha1-Es+5i2W1fdPRk6MSH19uL0N2ArU=" }, "is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz", + "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", + "dev": true, "requires": { - "is-extglob": "1.0.0" + "is-extglob": "^2.1.1" } }, "is-in-browser": { @@ -2803,11 +3599,23 @@ "integrity": "sha1-Vv9NtoOgeMYILrldrX3GLh0E+DU=" }, "is-number": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", - "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } } }, "is-plain-object": { @@ -2815,7 +3623,7 @@ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.1" }, "dependencies": { "isobject": { @@ -2825,21 +3633,17 @@ } } }, - "is-posix-bracket": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", - "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=" - }, - "is-primitive": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", - "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=" - }, "is-stream": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true + }, "isarray": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", @@ -2848,30 +3652,22 @@ "isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true }, "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "requires": { - "isarray": "1.0.0" - }, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - } - } + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true }, "isomorphic-fetch": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", "integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=", "requires": { - "node-fetch": "1.7.3", - "whatwg-fetch": "2.0.3" + "node-fetch": "^1.0.1", + "whatwg-fetch": ">=0.10.0" } }, "js-tokens": { @@ -2884,19 +3680,15 @@ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.0.tgz", "integrity": "sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==", "requires": { - "argparse": "1.0.10", - "esprima": "4.0.1" + "argparse": "^1.0.7", + "esprima": "^4.0.0" } }, "jsesc": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", - "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=" - }, - "json-loader": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/json-loader/-/json-loader-0.5.7.tgz", - "integrity": "sha512-QLPs8Dj7lnf3e3QYS1zkCo+4ZwqOiF9d/nZnYozTISxXWCfNs9yuky5rJw4/W34s7POaNlbZmQGaB5NiXCbP4w==" + "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", + "dev": true }, "json-parse-better-errors": { "version": "1.0.2", @@ -2904,23 +3696,25 @@ "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==" }, "json-schema-traverse": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", - "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=" + "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==", + "dev": true }, "json5": { "version": "0.5.1", "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", - "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=" + "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", + "dev": true }, "jss": { "version": "9.8.7", "resolved": "https://registry.npmjs.org/jss/-/jss-9.8.7.tgz", "integrity": "sha512-awj3XRZYxbrmmrx9LUSj5pXSUfm12m8xzi/VKeqI1ZwWBtQ0kVPTs3vYs32t4rFw83CgFDukA8wKzOE9sMQnoQ==", "requires": { - "is-in-browser": "1.1.3", - "symbol-observable": "1.2.0", - "warning": "3.0.0" + "is-in-browser": "^1.1.3", + "symbol-observable": "^1.1.0", + "warning": "^3.0.0" } }, "jss-camel-case": { @@ -2928,7 +3722,7 @@ "resolved": "https://registry.npmjs.org/jss-camel-case/-/jss-camel-case-6.1.0.tgz", "integrity": "sha512-HPF2Q7wmNW1t79mCqSeU2vdd/vFFGpkazwvfHMOhPlMgXrJDzdj9viA2SaHk9ZbD5pfL63a8ylp4++irYbbzMQ==", "requires": { - "hyphenate-style-name": "1.0.2" + "hyphenate-style-name": "^1.0.2" } }, "jss-compose": { @@ -2936,7 +3730,7 @@ "resolved": "https://registry.npmjs.org/jss-compose/-/jss-compose-5.0.0.tgz", "integrity": "sha512-YofRYuiA0+VbeOw0VjgkyO380sA4+TWDrW52nSluD9n+1FWOlDzNbgpZ/Sb3Y46+DcAbOS21W5jo6SAqUEiuwA==", "requires": { - "warning": "3.0.0" + "warning": "^3.0.0" } }, "jss-default-unit": { @@ -2954,7 +3748,7 @@ "resolved": "https://registry.npmjs.org/jss-extend/-/jss-extend-6.2.0.tgz", "integrity": "sha512-YszrmcB6o9HOsKPszK7NeDBNNjVyiW864jfoiHoMlgMIg2qlxKw70axZHqgczXHDcoyi/0/ikP1XaHDPRvYtEA==", "requires": { - "warning": "3.0.0" + "warning": "^3.0.0" } }, "jss-global": { @@ -2967,7 +3761,7 @@ "resolved": "https://registry.npmjs.org/jss-nested/-/jss-nested-6.0.1.tgz", "integrity": "sha512-rn964TralHOZxoyEgeq3hXY8hyuCElnvQoVrQwKHVmu55VRDd6IqExAx9be5HgK0yN/+hQdgAXQl/GUrBbbSTA==", "requires": { - "warning": "3.0.0" + "warning": "^3.0.0" } }, "jss-preset-default": { @@ -2975,16 +3769,16 @@ "resolved": "https://registry.npmjs.org/jss-preset-default/-/jss-preset-default-4.5.0.tgz", "integrity": "sha512-qZbpRVtHT7hBPpZEBPFfafZKWmq3tA/An5RNqywDsZQGrlinIF/mGD9lmj6jGqu8GrED2SMHZ3pPKLmjCZoiaQ==", "requires": { - "jss-camel-case": "6.1.0", - "jss-compose": "5.0.0", - "jss-default-unit": "8.0.2", - "jss-expand": "5.3.0", - "jss-extend": "6.2.0", - "jss-global": "3.0.0", - "jss-nested": "6.0.1", - "jss-props-sort": "6.0.0", - "jss-template": "1.0.1", - "jss-vendor-prefixer": "7.0.0" + "jss-camel-case": "^6.1.0", + "jss-compose": "^5.0.0", + "jss-default-unit": "^8.0.2", + "jss-expand": "^5.3.0", + "jss-extend": "^6.2.0", + "jss-global": "^3.0.0", + "jss-nested": "^6.0.1", + "jss-props-sort": "^6.0.0", + "jss-template": "^1.0.1", + "jss-vendor-prefixer": "^7.0.0" } }, "jss-props-sort": { @@ -2997,7 +3791,7 @@ "resolved": "https://registry.npmjs.org/jss-template/-/jss-template-1.0.1.tgz", "integrity": "sha512-m5BqEWha17fmIVXm1z8xbJhY6GFJxNB9H68GVnCWPyGYfxiAgY9WTQyvDAVj+pYRgrXSOfN5V1T4+SzN1sJTeg==", "requires": { - "warning": "3.0.0" + "warning": "^3.0.0" } }, "jss-vendor-prefixer": { @@ -3005,201 +3799,297 @@ "resolved": "https://registry.npmjs.org/jss-vendor-prefixer/-/jss-vendor-prefixer-7.0.0.tgz", "integrity": "sha512-Agd+FKmvsI0HLcYXkvy8GYOw3AAASBUpsmIRvVQheps+JWaN892uFOInTr0DRydwaD91vSSUCU4NssschvF7MA==", "requires": { - "css-vendor": "0.3.8" + "css-vendor": "^0.3.8" } }, "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "1.1.6" - } - }, - "lazy-cache": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", - "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=" + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true }, "lcid": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", - "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", - "requires": { - "invert-kv": "1.0.0" - } - }, - "load-json-file": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", - "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", + "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", + "dev": true, "requires": { - "graceful-fs": "4.1.11", - "parse-json": "2.2.0", - "pify": "2.3.0", - "strip-bom": "3.0.0" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" - } + "invert-kv": "^2.0.0" } }, "loader-runner": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.3.0.tgz", - "integrity": "sha1-9IKuqC1UPgeSFwDVpG7yb9rGuKI=" + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", + "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==", + "dev": true }, "loader-utils": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz", "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=", + "dev": true, "requires": { - "big.js": "3.2.0", - "emojis-list": "2.1.0", - "json5": "0.5.1" + "big.js": "^3.1.3", + "emojis-list": "^2.0.0", + "json5": "^0.5.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-locate": "^2.0.0", + "path-exists": "^3.0.0" } }, "lodash": { "version": "4.17.4", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", - "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=" - }, - "longest": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", - "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=" + "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", + "dev": true }, "loose-envify": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", "requires": { - "js-tokens": "3.0.2" + "js-tokens": "^3.0.0" } }, "lru-cache": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.1.tgz", - "integrity": "sha512-q4spe4KTfsAS1SUHLO0wz8Qiyf1+vMIAgpRYioFYDMNqKfHQbg+AVDH3i4fvpl71/P1L0dBl+fQi+P37UYf0ew==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, "requires": { - "pseudomap": "1.0.2", - "yallist": "2.1.2" + "yallist": "^3.0.2" } }, "make-dir": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.1.0.tgz", "integrity": "sha512-0Pkui4wLJ7rxvmfUvs87skoEaxmu0hCUApF8nonzpl7q//FWp9zu8W61Scz4sd/kUiqDxvUhtoam2efDyiBzcA==", + "dev": true, "requires": { - "pify": "3.0.0" + "pify": "^3.0.0" } }, - "md5.js": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.4.tgz", - "integrity": "sha1-6b296UogpawYsENA/Fdk1bCdkB0=", + "map-age-cleaner": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", + "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", + "dev": true, "requires": { - "hash-base": "3.0.4", - "inherits": "2.0.3" + "p-defer": "^1.0.0" + } + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "dev": true + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "dev": true, + "requires": { + "object-visit": "^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" }, "dependencies": { - "hash-base": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", - "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", - "requires": { - "inherits": "2.0.3", - "safe-buffer": "5.1.1" - } + "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==", + "dev": true } } }, "mem": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", - "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/mem/-/mem-4.1.0.tgz", + "integrity": "sha512-I5u6Q1x7wxO0kdOpYBB28xueHADYps5uty/zg936CiG8NTe5sJL8EjrCuLneuDW3PlMdZBGDIn8BirEVdovZvg==", + "dev": true, "requires": { - "mimic-fn": "1.1.0" + "map-age-cleaner": "^0.1.1", + "mimic-fn": "^1.0.0", + "p-is-promise": "^2.0.0" } }, "memory-fs": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", + "dev": true, "requires": { - "errno": "0.1.6", - "readable-stream": "2.3.3" + "errno": "^0.1.3", + "readable-stream": "^2.0.1" } }, "micromatch": { - "version": "2.3.11", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", - "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", - "requires": { - "arr-diff": "2.0.0", - "array-unique": "0.2.1", - "braces": "1.8.5", - "expand-brackets": "0.1.5", - "extglob": "0.3.2", - "filename-regex": "2.0.1", - "is-extglob": "1.0.0", - "is-glob": "2.0.1", - "kind-of": "3.2.2", - "normalize-path": "2.1.1", - "object.omit": "2.0.1", - "parse-glob": "3.0.4", - "regex-cache": "0.4.4" + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" } }, "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" + } + }, + "mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", + "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==", + "dev": true, "requires": { - "bn.js": "4.11.8", - "brorand": "1.1.0" + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" + }, + "mississippi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", + "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", + "dev": true, + "requires": { + "concat-stream": "^1.5.0", + "duplexify": "^3.4.2", + "end-of-stream": "^1.1.0", + "flush-write-stream": "^1.0.0", + "from2": "^2.1.0", + "parallel-transform": "^1.1.0", + "pump": "^3.0.0", + "pumpify": "^1.3.3", + "stream-each": "^1.1.0", + "through2": "^2.0.0" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "process-nextick-args": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", + "dev": true + }, + "readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "dev": true, + "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" + } + }, + "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==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + } } }, - "mimic-fn": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.1.0.tgz", - "integrity": "sha1-5md4PZLonb00KBi1IwudYqZyrRg=" - }, - "minimalistic-assert": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz", - "integrity": "sha1-cCvi3aazf0g2vLP121ZkG2Sh09M=" - }, - "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=" - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "mixin-deep": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", + "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", + "dev": true, "requires": { - "brace-expansion": "1.1.8" + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } } }, - "minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" - }, "mkdirp": { "version": "0.5.1", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", @@ -3208,63 +4098,119 @@ "minimist": "0.0.8" } }, + "move-concurrently": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", + "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", + "dev": true, + "requires": { + "aproba": "^1.1.1", + "copy-concurrently": "^1.0.0", + "fs-write-stream-atomic": "^1.0.8", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.3" + } + }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true }, "multipipe": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/multipipe/-/multipipe-1.0.2.tgz", "integrity": "sha1-zBPv2DPJzamfIk+GhGG44aP9k50=", "requires": { - "duplexer2": "0.1.4", - "object-assign": "4.1.1" + "duplexer2": "^0.1.2", + "object-assign": "^4.1.0" } }, "nan": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.8.0.tgz", - "integrity": "sha1-7XFfP+neArV6XmJS2QqWZ14fCFo=", + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.12.1.tgz", + "integrity": "sha512-JY7V6lRkStKcKTvHO5NVSQRv+RV+FIL5pvDoLiAtSL9pKlC5x9PKQcZDsq7m4FO4d57mkhC6Z+QhAh3Jdk5JFw==", + "dev": true, "optional": true }, + "nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + } + }, + "neo-async": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.0.tgz", + "integrity": "sha512-MFh0d/Wa7vkKO3Y3LlacqAEeHK0mckVqzDieUKTT+KGxi+zIpeVsFxymkIiRpbpDziHc290Xr9A1O4Om7otoRA==", + "dev": true + }, + "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-fetch": { "version": "1.7.3", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", "requires": { - "encoding": "0.1.12", - "is-stream": "1.1.0" + "encoding": "^0.1.11", + "is-stream": "^1.0.1" } }, "node-libs-browser": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.1.0.tgz", - "integrity": "sha512-5AzFzdoIMb89hBGMZglEegffzgRg+ZFoUmisQ8HI4j1KDdpx13J0taNp2y9xPbur6W61gepGDDotGBVQ7mfUCg==", - "requires": { - "assert": "1.4.1", - "browserify-zlib": "0.2.0", - "buffer": "4.9.1", - "console-browserify": "1.1.0", - "constants-browserify": "1.0.0", - "crypto-browserify": "3.12.0", - "domain-browser": "1.1.7", - "events": "1.1.1", - "https-browserify": "1.0.0", - "os-browserify": "0.3.0", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.0.tgz", + "integrity": "sha512-5MQunG/oyOaBdttrL40dA7bUfPORLRWMUJLQtMg7nluxUvk5XwnLdL9twQHFAjRx/y7mIMkLKT9++qPbbk6BZA==", + "dev": true, + "requires": { + "assert": "^1.1.1", + "browserify-zlib": "^0.2.0", + "buffer": "^4.3.0", + "console-browserify": "^1.1.0", + "constants-browserify": "^1.0.0", + "crypto-browserify": "^3.11.0", + "domain-browser": "^1.1.1", + "events": "^3.0.0", + "https-browserify": "^1.0.0", + "os-browserify": "^0.3.0", "path-browserify": "0.0.0", - "process": "0.11.10", - "punycode": "1.4.1", - "querystring-es3": "0.2.1", - "readable-stream": "2.3.3", - "stream-browserify": "2.0.1", - "stream-http": "2.8.0", - "string_decoder": "1.0.3", - "timers-browserify": "2.0.4", + "process": "^0.11.10", + "punycode": "^1.2.4", + "querystring-es3": "^0.2.0", + "readable-stream": "^2.3.3", + "stream-browserify": "^2.0.1", + "stream-http": "^2.7.2", + "string_decoder": "^1.0.0", + "timers-browserify": "^2.0.4", "tty-browserify": "0.0.0", - "url": "0.11.0", - "util": "0.10.3", + "url": "^0.11.0", + "util": "^0.11.0", "vm-browserify": "0.0.4" + }, + "dependencies": { + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true + } } }, "nopt": { @@ -3272,166 +4218,241 @@ "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", "requires": { - "abbrev": "1.1.1" - } - }, - "normalize-package-data": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", - "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", - "requires": { - "hosted-git-info": "2.5.0", - "is-builtin-module": "1.0.0", - "semver": "5.5.0", - "validate-npm-package-license": "3.0.1" + "abbrev": "1" } }, "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "requires": { - "remove-trailing-separator": "1.1.0" - } + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true }, "npm-run-path": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "dev": true, "requires": { - "path-key": "2.0.1" + "path-key": "^2.0.0" } }, "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=" + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true }, "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "dev": true, + "requires": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, "object-keys": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz", "integrity": "sha1-KKaq50KN0sOpLz2V8hM13SBOAzY=" }, - "object.omit": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", - "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "dev": true, + "requires": { + "isobject": "^3.0.0" + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, "requires": { - "for-own": "0.1.5", - "is-extendable": "0.1.1" + "wrappy": "1" } }, "os-browserify": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", - "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=" + "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", + "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=" + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "dev": true }, "os-locale": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", - "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz", + "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==", + "dev": true, "requires": { - "execa": "0.7.0", - "lcid": "1.0.0", - "mem": "1.1.0" + "execa": "^1.0.0", + "lcid": "^2.0.0", + "mem": "^4.0.0" } }, "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=" + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "dev": true + }, + "p-defer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", + "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=", + "dev": true }, "p-finally": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "dev": true + }, + "p-is-promise": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.0.0.tgz", + "integrity": "sha512-pzQPhYMCAgLAKPWD2jC3Se9fEfrD9npNos0y150EeqZll7akhEgGhTW/slB6lHku8AvYGiJ+YJ5hfHKePPgFWg==", + "dev": true }, "p-limit": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.2.0.tgz", "integrity": "sha512-Y/OtIaXtUPr4/YpMv1pCL5L5ed0rumAaAeBSj12F+bSlMdys7i8oQF/GUJmfpTS/QoaRrS/k6pma29haJpsMng==", + "dev": true, "requires": { - "p-try": "1.0.0" + "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.2.0" + "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=" + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true }, "pako": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.6.tgz", - "integrity": "sha512-lQe48YPsMJAig+yngZ87Lus+NF+3mtu7DVOBu6b/gHO1YpKwIj5AWjZ/TOS7i46HD/UixzWb1zeWDZfGZ3iYcg==" + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.8.tgz", + "integrity": "sha512-6i0HVbUfcKaTv+EG8ZTr75az7GFXcLYk9UyLEg7Notv/Ma+z/UG3TCoz6GiNeOrn1E/e63I0X/Hpw18jHOTUnA==", + "dev": true }, - "parse-asn1": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.0.tgz", - "integrity": "sha1-N8T5t+06tlx0gXtfJICTf7+XxxI=", + "parallel-transform": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.1.0.tgz", + "integrity": "sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY=", + "dev": true, "requires": { - "asn1.js": "4.9.2", - "browserify-aes": "1.1.1", - "create-hash": "1.1.3", - "evp_bytestokey": "1.0.3", - "pbkdf2": "3.0.14" + "cyclist": "~0.2.2", + "inherits": "^2.0.3", + "readable-stream": "^2.1.5" } }, - "parse-glob": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", - "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", + "parse-asn1": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.3.tgz", + "integrity": "sha512-VrPoetlz7B/FqjBLD2f5wBVZvsZVLnRUrxVLfRYhGXCODa/NWE4p3Wp+6+aV3ZPL3KM7/OZmxDIwwijD7yuucg==", + "dev": true, "requires": { - "glob-base": "0.3.0", - "is-dotfile": "1.0.3", - "is-extglob": "1.0.0", - "is-glob": "2.0.1" + "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.3.1" - } + "parse-passwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", + "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", + "dev": true + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "dev": true }, "path-browserify": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz", - "integrity": "sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo=" + "integrity": "sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo=", + "dev": true + }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", + "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=" + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true }, "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=" + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true }, "path-key": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true }, "path-parse": { "version": "1.0.6", @@ -3446,65 +4467,56 @@ "isarray": "0.0.1" } }, - "path-type": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", - "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", - "requires": { - "pify": "2.3.0" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" - } - } - }, "pbkdf2": { - "version": "3.0.14", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.14.tgz", - "integrity": "sha512-gjsZW9O34fm0R7PaLHRJmLLVfSoesxztjPjE9o6R+qtVJij90ltg1joIovN9GKrRW3t1PzhDDG3UMEMFfZ+1wA==", + "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.3", - "create-hmac": "1.1.6", - "ripemd160": "2.0.1", - "safe-buffer": "5.1.1", - "sha.js": "2.4.9" + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" } }, "pify": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true }, "pkg-dir": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", + "dev": true, "requires": { - "find-up": "2.1.0" + "find-up": "^2.1.0" } }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "dev": true + }, "postcss-value-parser": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz", "integrity": "sha1-h/OPnxj3dKSrTIojL1xc6IcqnRU=" }, - "preserve": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", - "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=" - }, "private": { "version": "0.1.8", "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", - "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==" + "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", + "dev": true }, "process": { "version": "0.11.10", "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=" + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", + "dev": true }, "process-nextick-args": { "version": "1.0.7", @@ -3516,108 +4528,121 @@ "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", "requires": { - "asap": "2.0.6" + "asap": "~2.0.3" } }, + "promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", + "dev": true + }, "prop-types": { "version": "15.6.0", "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.0.tgz", "integrity": "sha1-zq8IMCL8RrSjX2nhPvda7Q1jmFY=", "requires": { - "fbjs": "0.8.16", - "loose-envify": "1.3.1", - "object-assign": "4.1.1" + "fbjs": "^0.8.16", + "loose-envify": "^1.3.1", + "object-assign": "^4.1.1" } }, "prr": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=" - }, - "pseudomap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" + "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", + "dev": true }, "public-encrypt": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.0.tgz", - "integrity": "sha1-OfaZ86RlYN1eusvKaTyvfGXBjMY=", + "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": { + "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==", + "dev": true + } + } + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "pumpify": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", + "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", + "dev": true, "requires": { - "bn.js": "4.11.8", - "browserify-rsa": "4.0.1", - "create-hash": "1.1.3", - "parse-asn1": "5.1.0", - "randombytes": "2.0.6" + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" + }, + "dependencies": { + "pump": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + } } }, "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true }, "querystring": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=" + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", + "dev": true }, "querystring-es3": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", - "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=" - }, - "randomatic": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz", - "integrity": "sha512-D5JUjPyJbaJDkuAazpVnSfVkLlpeO3wDlPROTMLGKG1zMFNFRgrciKo1ltz/AzNTkqE0HzDx655QOL51N06how==", - "requires": { - "is-number": "3.0.0", - "kind-of": "4.0.0" - }, - "dependencies": { - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "requires": { - "is-buffer": "1.1.6" - } - } - } + "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", + "dev": true }, "randombytes": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.6.tgz", "integrity": "sha512-CIQ5OFxf4Jou6uOKe9t1AOgqpeU5fd70A8NPdHSGeYXqXsPe6peOwI0cUl88RWZ6sP1vPMV3avd/R6cZ5/sP1A==", + "dev": true, "requires": { - "safe-buffer": "5.1.1" + "safe-buffer": "^5.1.0" } }, "randomfill": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.3.tgz", - "integrity": "sha512-YL6GrhrWoic0Eq8rXVbMptH7dAxCs0J+mh5Y0euNekPPYaxEmdVGim6GdoxoRzKW2yJoU8tueifS7mYxvcFDEQ==", + "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.6", - "safe-buffer": "5.1.1" + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" } }, "react": { @@ -3625,10 +4650,10 @@ "resolved": "https://registry.npmjs.org/react/-/react-16.7.0.tgz", "integrity": "sha512-StCz3QY8lxTb5cl2HJxjwLFOXPIFQp+p+hxQfc8WE0QiLfCtIlKj8/+5tjjKm8uSTlAW+fCPaavGFS06V9Ar3A==", "requires": { - "loose-envify": "1.3.1", - "object-assign": "4.1.1", - "prop-types": "15.6.2", - "scheduler": "0.12.0" + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "prop-types": "^15.6.2", + "scheduler": "^0.12.0" }, "dependencies": { "prop-types": { @@ -3636,8 +4661,8 @@ "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.2.tgz", "integrity": "sha512-3pboPvLiWD7dkI3qf3KbUe6hKFKa52w+AE0VCqECtf+QHAKgOL37tTaNCnuX1nAAQ4ZhyP+kYVKf8rLmJ/feDQ==", "requires": { - "loose-envify": "1.3.1", - "object-assign": "4.1.1" + "loose-envify": "^1.3.1", + "object-assign": "^4.1.1" } } } @@ -3647,10 +4672,10 @@ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.7.0.tgz", "integrity": "sha512-D0Ufv1ExCAmF38P2Uh1lwpminZFRXEINJe53zRAbm4KPwSyd6DY/uDoS0Blj9jvPpn1+wivKpZYc8aAAN/nAkg==", "requires": { - "loose-envify": "1.3.1", - "object-assign": "4.1.1", - "prop-types": "15.6.2", - "scheduler": "0.12.0" + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "prop-types": "^15.6.2", + "scheduler": "^0.12.0" }, "dependencies": { "prop-types": { @@ -3658,8 +4683,8 @@ "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.2.tgz", "integrity": "sha512-3pboPvLiWD7dkI3qf3KbUe6hKFKa52w+AE0VCqECtf+QHAKgOL37tTaNCnuX1nAAQ4ZhyP+kYVKf8rLmJ/feDQ==", "requires": { - "loose-envify": "1.3.1", - "object-assign": "4.1.1" + "loose-envify": "^1.3.1", + "object-assign": "^4.1.1" } } } @@ -3669,8 +4694,8 @@ "resolved": "https://registry.npmjs.org/react-emotion/-/react-emotion-9.2.12.tgz", "integrity": "sha512-qt7XbxnEKX5sZ73rERJ92JMbEOoyOwG3BuCRFRkXrsJhEe+rFBRTljRw7yOLHZUCQC4GBObZhjXIduQ8S0ZpYw==", "requires": { - "babel-plugin-emotion": "9.2.11", - "create-emotion-styled": "9.2.8" + "babel-plugin-emotion": "^9.2.11", + "create-emotion-styled": "^9.2.8" } }, "react-helmet": { @@ -3678,10 +4703,10 @@ "resolved": "https://registry.npmjs.org/react-helmet/-/react-helmet-5.2.0.tgz", "integrity": "sha1-qBgR3yExOm1VxfBYxK66XW89l6c=", "requires": { - "deep-equal": "1.0.1", - "object-assign": "4.1.1", - "prop-types": "15.6.0", - "react-side-effect": "1.1.5" + "deep-equal": "^1.0.1", + "object-assign": "^4.1.1", + "prop-types": "^15.5.4", + "react-side-effect": "^1.1.0" } }, "react-is": { @@ -3694,11 +4719,11 @@ "resolved": "https://registry.npmjs.org/react-jss/-/react-jss-8.6.1.tgz", "integrity": "sha512-SH6XrJDJkAphp602J14JTy3puB2Zxz1FkM3bKVE8wON+va99jnUTKWnzGECb3NfIn9JPR5vHykge7K3/A747xQ==", "requires": { - "hoist-non-react-statics": "2.5.5", - "jss": "9.8.7", - "jss-preset-default": "4.5.0", - "prop-types": "15.6.0", - "theming": "1.3.0" + "hoist-non-react-statics": "^2.5.0", + "jss": "^9.7.0", + "jss-preset-default": "^4.3.0", + "prop-types": "^15.6.0", + "theming": "^1.3.0" }, "dependencies": { "hoist-non-react-statics": { @@ -3713,13 +4738,13 @@ "resolved": "https://registry.npmjs.org/react-router/-/react-router-4.2.0.tgz", "integrity": "sha512-DY6pjwRhdARE4TDw7XjxjZsbx9lKmIcyZoZ+SDO7SBJ1KUeWNxT22Kara2AC7u6/c2SYEHlEDLnzBCcNhLE8Vg==", "requires": { - "history": "4.7.2", - "hoist-non-react-statics": "2.3.1", - "invariant": "2.2.2", - "loose-envify": "1.3.1", - "path-to-regexp": "1.7.0", - "prop-types": "15.6.0", - "warning": "3.0.0" + "history": "^4.7.2", + "hoist-non-react-statics": "^2.3.0", + "invariant": "^2.2.2", + "loose-envify": "^1.3.1", + "path-to-regexp": "^1.7.0", + "prop-types": "^15.5.4", + "warning": "^3.0.0" } }, "react-router-dom": { @@ -3727,12 +4752,12 @@ "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-4.2.2.tgz", "integrity": "sha512-cHMFC1ZoLDfEaMFoKTjN7fry/oczMgRt5BKfMAkTu5zEuJvUiPp1J8d0eXSVTnBh6pxlbdqDhozunOOLtmKfPA==", "requires": { - "history": "4.7.2", - "invariant": "2.2.2", - "loose-envify": "1.3.1", - "prop-types": "15.6.0", - "react-router": "4.2.0", - "warning": "3.0.0" + "history": "^4.7.2", + "invariant": "^2.2.2", + "loose-envify": "^1.3.1", + "prop-types": "^15.5.4", + "react-router": "^4.2.0", + "warning": "^3.0.0" } }, "react-side-effect": { @@ -3740,27 +4765,8 @@ "resolved": "https://registry.npmjs.org/react-side-effect/-/react-side-effect-1.1.5.tgz", "integrity": "sha512-Z2ZJE4p/jIfvUpiUMRydEVpQRf2f8GMHczT6qLcARmX7QRb28JDBTpnM2g/i5y/p7ZDEXYGHWg0RbhikE+hJRw==", "requires": { - "exenv": "1.2.2", - "shallowequal": "1.1.0" - } - }, - "read-pkg": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", - "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", - "requires": { - "load-json-file": "2.0.0", - "normalize-package-data": "2.4.0", - "path-type": "2.0.0" - } - }, - "read-pkg-up": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", - "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", - "requires": { - "find-up": "2.1.0", - "read-pkg": "2.0.0" + "exenv": "^1.2.1", + "shallowequal": "^1.0.1" } }, "readable-stream": { @@ -3768,13 +4774,13 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "1.0.7", - "safe-buffer": "5.1.1", - "string_decoder": "1.0.3", - "util-deprecate": "1.0.2" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~1.0.6", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.0.3", + "util-deprecate": "~1.0.1" }, "dependencies": { "isarray": { @@ -3785,135 +4791,198 @@ } }, "readdirp": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz", - "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dev": true, "requires": { - "graceful-fs": "4.1.11", - "minimatch": "3.0.4", - "readable-stream": "2.3.3", - "set-immediate-shim": "1.0.1" + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" } }, "regenerate": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.3.3.tgz", - "integrity": "sha512-jVpo1GadrDAK59t/0jRx5VxYWQEDkkEKi6+HjE3joFVLfDOh9Xrdh0dF1eSq+BI/SwvTQ44gSscJ8N5zYL61sg==" + "integrity": "sha512-jVpo1GadrDAK59t/0jRx5VxYWQEDkkEKi6+HjE3joFVLfDOh9Xrdh0dF1eSq+BI/SwvTQ44gSscJ8N5zYL61sg==", + "dev": true }, "regenerator-runtime": { "version": "0.11.1", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", - "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==" + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", + "dev": true }, "regenerator-transform": { "version": "0.10.1", "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz", "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==", + "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "private": "0.1.8" + "babel-runtime": "^6.18.0", + "babel-types": "^6.19.0", + "private": "^0.1.6" } }, - "regex-cache": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", - "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dev": true, "requires": { - "is-equal-shallow": "0.1.3" + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" } }, "regexpu-core": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", + "dev": true, "requires": { - "regenerate": "1.3.3", - "regjsgen": "0.2.0", - "regjsparser": "0.1.5" + "regenerate": "^1.2.1", + "regjsgen": "^0.2.0", + "regjsparser": "^0.1.4" } }, "regjsgen": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", - "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=" + "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=", + "dev": true }, "regjsparser": { "version": "0.1.5", "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", + "dev": true, "requires": { - "jsesc": "0.5.0" + "jsesc": "~0.5.0" }, "dependencies": { "jsesc": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=" + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "dev": true } } }, "remove-trailing-separator": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=" + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", + "dev": true }, "repeat-element": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", - "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=" + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", + "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", + "dev": true }, "repeat-string": { "version": "1.6.1", "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "dev": true }, "repeating": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "dev": true, "requires": { - "is-finite": "1.0.2" + "is-finite": "^1.0.0" } }, "require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true }, "require-main-filename": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=" + "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", + "dev": true }, "resolve": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.8.1.tgz", "integrity": "sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==", "requires": { - "path-parse": "1.0.6" + "path-parse": "^1.0.5" + } + }, + "resolve-cwd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", + "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", + "dev": true, + "requires": { + "resolve-from": "^3.0.0" + } + }, + "resolve-dir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", + "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", + "dev": true, + "requires": { + "expand-tilde": "^2.0.0", + "global-modules": "^1.0.0" } }, + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", + "dev": true + }, "resolve-pathname": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/resolve-pathname/-/resolve-pathname-2.2.0.tgz", "integrity": "sha512-bAFz9ld18RzJfddgrO2e/0S2O81710++chRMUxHjXOYKF6jTAMrUNZrEZ1PvV0zlhfjidm08iRPdTLPno1FuRg==" }, - "right-align": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", - "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "dev": true + }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true + }, + "rimraf": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "dev": true, "requires": { - "align-text": "0.1.4" + "glob": "^7.1.3" } }, "ripemd160": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.1.tgz", - "integrity": "sha1-D0WEKVxTo2KK9+bXmsohzlfRxuc=", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "dev": true, "requires": { - "hash-base": "2.0.2", - "inherits": "2.0.3" + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "run-queue": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", + "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", + "dev": true, + "requires": { + "aproba": "^1.1.1" } }, "safe-buffer": { @@ -3921,29 +4990,75 @@ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "dev": true, + "requires": { + "ret": "~0.1.10" + } + }, "scheduler": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.12.0.tgz", "integrity": "sha512-t7MBR28Akcp4Jm+QoR63XgAi9YgCUmgvDHqf5otgAj4QvdoBE4ImCX0ffehefePPG+aitiYHp0g/mW6s4Tp+dw==", "requires": { - "loose-envify": "1.3.1", - "object-assign": "4.1.1" + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + } + }, + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" } }, "semver": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", - "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==" + "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", + "dev": true + }, + "serialize-javascript": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.6.1.tgz", + "integrity": "sha512-A5MOagrPFga4YaKQSWHryl7AXvbQkEqpw4NNYMTNYUNV51bA8ABHgYFpqKx+YFFrw59xMV1qGH1R4AgoNIVgCw==", + "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=" + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true }, - "set-immediate-shim": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", - "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=" + "set-value": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", + "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } }, "setimmediate": { "version": "1.0.5", @@ -3951,129 +5066,337 @@ "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" }, "sha.js": { - "version": "2.4.9", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.9.tgz", - "integrity": "sha512-G8zektVqbiPHrylgew9Zg1VRB1L/DtXNUVAM6q4QLy8NE3qtHlFXTf8VLL4k1Yl6c7NMjtZUTdXV+X44nFaT6A==", + "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" + } + }, + "shallowequal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz", + "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==" + }, + "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.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "dev": true + }, + "slash": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", + "dev": true + }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "dev": true, + "requires": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dev": true, "requires": { - "inherits": "2.0.3", - "safe-buffer": "5.1.1" + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } } }, - "shallowequal": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz", - "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==" - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, "requires": { - "shebang-regex": "1.0.0" + "kind-of": "^3.2.0" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } } }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" - }, - "signal-exit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" - }, - "slash": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", - "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=" - }, "source-list-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.0.tgz", - "integrity": "sha512-I2UmuJSRr/T8jisiROLU3A3ltr+swpniSmNPI4Ml3ZCX6tVnDsuZzK7F2hl5jTqbZBWCEKlj5HRQiPExXLgE8A==" + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", + "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", + "dev": true }, "source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" }, + "source-map-resolve": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", + "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", + "dev": true, + "requires": { + "atob": "^2.1.1", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, "source-map-support": { "version": "0.4.18", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", + "dev": true, "requires": { - "source-map": "0.5.7" + "source-map": "^0.5.6" } }, - "spdx-correct": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", - "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=", + "source-map-url": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", + "dev": true + }, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dev": true, "requires": { - "spdx-license-ids": "1.2.2" + "extend-shallow": "^3.0.0" } }, - "spdx-expression-parse": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz", - "integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw=" - }, - "spdx-license-ids": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz", - "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=" - }, "sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" }, + "ssri": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", + "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", + "dev": true, + "requires": { + "figgy-pudding": "^3.5.1" + } + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "dev": true, + "requires": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, "stream-browserify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz", - "integrity": "sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", + "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", + "dev": true, "requires": { - "inherits": "2.0.3", - "readable-stream": "2.3.3" + "inherits": "~2.0.1", + "readable-stream": "^2.0.2" } }, - "stream-http": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.0.tgz", - "integrity": "sha512-sZOFxI/5xw058XIRHl4dU3dZ+TTOIGJR78Dvo0oEAejIt4ou27k+3ne1zYmCV+v7UucbxIFQuOgnkTVHh8YPnw==", + "stream-each": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", + "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", + "dev": true, "requires": { - "builtin-status-codes": "3.0.0", - "inherits": "2.0.3", - "readable-stream": "2.3.3", - "to-arraybuffer": "1.0.1", - "xtend": "4.0.1" + "end-of-stream": "^1.1.0", + "stream-shift": "^1.0.0" + } + }, + "stream-http": { + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", + "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", + "dev": true, + "requires": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.3.6", + "to-arraybuffer": "^1.0.0", + "xtend": "^4.0.0" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "process-nextick-args": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", + "dev": true + }, + "readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "dev": true, + "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" + } + }, + "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==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } } }, + "stream-shift": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", + "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=", + "dev": true + }, "string-width": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" }, "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=" + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true }, "strip-ansi": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } } } @@ -4083,41 +5406,38 @@ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", "requires": { - "safe-buffer": "5.1.1" + "safe-buffer": "~5.1.0" } }, "strip-ansi": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=" - }, "strip-eof": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", + "dev": true }, "styled-components": { "version": "3.4.9", "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-3.4.9.tgz", "integrity": "sha512-3z3IEkAeDOUa0RBxJUQDK5V5gqL56sqGxyK2Ycaryz2jn3PMgmEMkisSR9RdbFP/RDTDu9n761rNhLC89vofBA==", "requires": { - "buffer": "5.2.1", - "css-to-react-native": "2.2.2", - "fbjs": "0.8.16", - "hoist-non-react-statics": "2.5.5", - "prop-types": "15.6.0", - "react-is": "16.5.2", - "stylis": "3.5.3", - "stylis-rule-sheet": "0.0.10", - "supports-color": "3.2.3" + "buffer": "^5.0.3", + "css-to-react-native": "^2.0.3", + "fbjs": "^0.8.16", + "hoist-non-react-statics": "^2.5.0", + "prop-types": "^15.5.4", + "react-is": "^16.3.1", + "stylis": "^3.5.0", + "stylis-rule-sheet": "^0.0.10", + "supports-color": "^3.2.3" }, "dependencies": { "buffer": { @@ -4125,8 +5445,8 @@ "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.2.1.tgz", "integrity": "sha512-c+Ko0loDaFfuPWiL02ls9Xd3GO3cPVmUobQ6t3rXNUk304u6hGq+8N/kFi+QEIKhzK3uwolVhLzszmfLmMLnqg==", "requires": { - "base64-js": "1.2.1", - "ieee754": "1.1.8" + "base64-js": "^1.0.2", + "ieee754": "^1.1.4" } }, "has-flag": { @@ -4144,7 +5464,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -4162,7 +5482,8 @@ "supports-color": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true }, "symbol-observable": { "version": "1.2.0", @@ -4170,19 +5491,142 @@ "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==" }, "tapable": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.2.8.tgz", - "integrity": "sha1-mTcqXJmb8t8WCvwNdL7U9HlIzSI=" + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.1.tgz", + "integrity": "sha512-9I2ydhj8Z9veORCw5PRm4u9uebCn0mcCa6scWoNcbZ6dAtoo2618u9UUzxgmsCOreJpqDDuv61LvwofW7hLcBA==", + "dev": true + }, + "terser": { + "version": "3.16.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-3.16.1.tgz", + "integrity": "sha512-JDJjgleBROeek2iBcSNzOHLKsB/MdDf+E/BOAJ0Tk9r7p9/fVobfv7LMJ/g/k3v9SXdmjZnIlFd5nfn/Rt0Xow==", + "dev": true, + "requires": { + "commander": "~2.17.1", + "source-map": "~0.6.1", + "source-map-support": "~0.5.9" + }, + "dependencies": { + "buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", + "dev": true + }, + "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.10", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.10.tgz", + "integrity": "sha512-YfQ3tQFTK/yzlGJuX8pTwa4tifQj4QS2Mj7UegOu8jAz59MqIiMGPXxQhVQiIMNzayuUSF/jEuVnfFF5JqybmQ==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + } + } + }, + "terser-webpack-plugin": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.2.2.tgz", + "integrity": "sha512-1DMkTk286BzmfylAvLXwpJrI7dWa5BnFmscV/2dCr8+c56egFcbaeFAl7+sujAjdmpLam21XRdhA4oifLyiWWg==", + "dev": true, + "requires": { + "cacache": "^11.0.2", + "find-cache-dir": "^2.0.0", + "schema-utils": "^1.0.0", + "serialize-javascript": "^1.4.0", + "source-map": "^0.6.1", + "terser": "^3.16.1", + "webpack-sources": "^1.1.0", + "worker-farm": "^1.5.2" + }, + "dependencies": { + "find-cache-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.0.0.tgz", + "integrity": "sha512-LDUY6V1Xs5eFskUVYtIwatojt6+9xC9Chnlk/jYOOvn3FAFfSaWddxahDGyNHh0b2dMXa6YW2m0tk8TdVaXHlA==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^1.0.0", + "pkg-dir": "^3.0.0" + } + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.1.0.tgz", + "integrity": "sha512-NhURkNcrVB+8hNfLuysU8enY5xn2KXphsHBaC2YmRNTZRc7RWusw6apSpdEj3jo4CMb6W9nrF6tTnsJsJeyu6g==", + "dev": true, + "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==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-try": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.0.0.tgz", + "integrity": "sha512-hMp0onDKIajHfIkdRk3P4CdCmErkYAxxDtP3Wx/4nZ3aGlau2VKh3mZpcuFkH27WQkL/3WBCPOktzA9ZOAnMQQ==", + "dev": true + }, + "pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "dev": true, + "requires": { + "find-up": "^3.0.0" + } + }, + "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 + } + } }, "theming": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/theming/-/theming-1.3.0.tgz", "integrity": "sha512-ya5Ef7XDGbTPBv5ENTwrwkPUexrlPeiAg/EI9kdlUAZhNlRbCdhMKRgjNX1IcmsmiPcqDQZE6BpSaH+cr31FKw==", "requires": { - "brcast": "3.0.1", - "is-function": "1.0.1", - "is-plain-object": "2.0.4", - "prop-types": "15.6.0" + "brcast": "^3.0.1", + "is-function": "^1.0.1", + "is-plain-object": "^2.0.1", + "prop-types": "^15.5.8" } }, "through": { @@ -4195,8 +5639,8 @@ "resolved": "https://registry.npmjs.org/through2/-/through2-0.4.2.tgz", "integrity": "sha1-2/WGYDEVHsg1K7bE22SiKSqEC5s=", "requires": { - "readable-stream": "1.0.34", - "xtend": "2.1.2" + "readable-stream": "~1.0.17", + "xtend": "~2.1.1" }, "dependencies": { "readable-stream": { @@ -4204,10 +5648,10 @@ "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", "isarray": "0.0.1", - "string_decoder": "0.10.31" + "string_decoder": "~0.10.x" } }, "string_decoder": { @@ -4220,95 +5664,236 @@ "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz", "integrity": "sha1-bv7MKk2tjmlixJAbM3znuoe10os=", "requires": { - "object-keys": "0.4.0" + "object-keys": "~0.4.0" } } } }, "timers-browserify": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.4.tgz", - "integrity": "sha512-uZYhyU3EX8O7HQP+J9fTVYwsq90Vr68xPEFo7yrVImIxYvHgukBEgOB/SgGoorWVTzGM/3Z+wUNnboA4M8jWrg==", + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.10.tgz", + "integrity": "sha512-YvC1SV1XdOUaL6gx5CoGroT3Gu49pK9+TZ38ErPldOWW4j49GI1HKs9DV+KGq/w6y+LZ72W1c8cKz2vzY+qpzg==", + "dev": true, "requires": { - "setimmediate": "1.0.5" + "setimmediate": "^1.0.4" } }, "to-arraybuffer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", - "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=" + "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", + "dev": true }, "to-fast-properties": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", - "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=" + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "dev": true + }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "dev": true, + "requires": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } }, "touch": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/touch/-/touch-2.0.2.tgz", "integrity": "sha512-qjNtvsFXTRq7IuMLweVgFxmEuQ6gLbRs2jQxL80TtZ31dEKWYIxRXquij6w6VimyDek5hD3PytljHmEtAs2u0A==", "requires": { - "nopt": "1.0.10" + "nopt": "~1.0.10" } }, "trim-right": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", - "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=" + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", + "dev": true + }, + "tslib": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz", + "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==", + "dev": true }, "tty-browserify": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", - "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=" + "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", + "dev": true + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", + "dev": true }, "ua-parser-js": { "version": "0.7.17", "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.17.tgz", "integrity": "sha512-uRdSdu1oA1rncCQL7sCj8vSyZkgtL7faaw9Tc9rZ3mGgraQ7+Pdx7w5mnOSF3gw9ZNG6oc+KXfkon3bKuROm0g==" }, - "uglify-js": { - "version": "2.8.29", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", - "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", + "union-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", + "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^0.4.3" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "set-value": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", + "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.1", + "to-object-path": "^0.3.0" + } + } + } + }, + "unique-filename": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", + "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "dev": true, + "requires": { + "unique-slug": "^2.0.0" + } + }, + "unique-slug": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.1.tgz", + "integrity": "sha512-n9cU6+gITaVu7VGj1Z8feKMmfAjEAQGhwD9fE3zvpRRa0wEIx8ODYkVGfSc94M2OX00tUFV8wH3zYbm1I8mxFg==", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4" + } + }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "dev": true, "requires": { - "source-map": "0.5.7", - "uglify-to-browserify": "1.0.2", - "yargs": "3.10.0" + "has-value": "^0.3.1", + "isobject": "^3.0.0" }, "dependencies": { - "yargs": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", - "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "dev": true, "requires": { - "camelcase": "1.2.1", - "cliui": "2.1.0", - "decamelize": "1.2.0", - "window-size": "0.1.0" + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + } } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true } } }, - "uglify-to-browserify": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", - "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", - "optional": true + "upath": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.1.0.tgz", + "integrity": "sha512-bzpH/oBhoS/QI/YtbkqCg6VEiPYjSZtrHQM6/QnJS6OL9pKUFLqb3aFh4Scvwm45+7iAgiMkLhSbaZxUqmrprw==", + "dev": true }, - "uglifyjs-webpack-plugin": { - "version": "0.4.6", - "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-0.4.6.tgz", - "integrity": "sha1-uVH0q7a9YX5m9j64kUmOORdj4wk=", + "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==", + "dev": true, "requires": { - "source-map": "0.5.7", - "uglify-js": "2.8.29", - "webpack-sources": "1.1.0" + "punycode": "^2.1.0" } }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "dev": true + }, "url": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "dev": true, "requires": { "punycode": "1.3.2", "querystring": "0.2.0" @@ -4317,23 +5902,24 @@ "punycode": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=" + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", + "dev": true } } }, + "use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", + "dev": true + }, "util": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", - "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", + "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", + "dev": true, "requires": { - "inherits": "2.0.1" - }, - "dependencies": { - "inherits": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=" - } + "inherits": "2.0.3" } }, "util-deprecate": { @@ -4341,14 +5927,11 @@ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" }, - "validate-npm-package-license": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz", - "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=", - "requires": { - "spdx-correct": "1.0.2", - "spdx-expression-parse": "1.0.4" - } + "v8-compile-cache": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.0.2.tgz", + "integrity": "sha512-1wFuMUIM16MDJRCrpbpuEPTUGmM5QMUg0cr3KFwra2XgOgFcPGDQHDh3CszSCD2Zewc/dh/pamNEW8CbfDebUw==", + "dev": true }, "value-equal": { "version": "0.4.0", @@ -4359,6 +5942,7 @@ "version": "0.0.4", "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", "integrity": "sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=", + "dev": true, "requires": { "indexof": "0.0.1" } @@ -4368,71 +5952,117 @@ "resolved": "https://registry.npmjs.org/warning/-/warning-3.0.0.tgz", "integrity": "sha1-MuU3fLVy3kqwR1O9+IIcAe1gW3w=", "requires": { - "loose-envify": "1.3.1" + "loose-envify": "^1.0.0" } }, "watchpack": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.4.0.tgz", - "integrity": "sha1-ShRyvLuVK9Cpu0A2gB+VTfs5+qw=", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.6.0.tgz", + "integrity": "sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA==", + "dev": true, "requires": { - "async": "2.6.0", - "chokidar": "1.7.0", - "graceful-fs": "4.1.11" + "chokidar": "^2.0.2", + "graceful-fs": "^4.1.2", + "neo-async": "^2.5.0" } }, "webpack": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-3.10.0.tgz", - "integrity": "sha512-fxxKXoicjdXNUMY7LIdY89tkJJJ0m1Oo8PQutZ5rLgWbV5QVKI15Cn7+/IHnRTd3vfKfiwBx6SBqlorAuNA8LA==", - "requires": { - "acorn": "5.3.0", - "acorn-dynamic-import": "2.0.2", - "ajv": "5.5.2", - "ajv-keywords": "2.1.1", - "async": "2.6.0", - "enhanced-resolve": "3.4.1", - "escope": "3.6.0", - "interpret": "1.1.0", - "json-loader": "0.5.7", - "json5": "0.5.1", - "loader-runner": "2.3.0", - "loader-utils": "1.1.0", - "memory-fs": "0.4.1", - "mkdirp": "0.5.1", - "node-libs-browser": "2.1.0", - "source-map": "0.5.7", - "supports-color": "4.5.0", - "tapable": "0.2.8", - "uglifyjs-webpack-plugin": "0.4.6", - "watchpack": "1.4.0", - "webpack-sources": "1.1.0", - "yargs": "8.0.2" + "version": "4.29.3", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.29.3.tgz", + "integrity": "sha512-xPJvFeB+8tUflXFq+OgdpiSnsCD5EANyv56co5q8q8+YtEasn5Sj3kzY44mta+csCIEB0vneSxnuaHkOL2h94A==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.7.11", + "@webassemblyjs/helper-module-context": "1.7.11", + "@webassemblyjs/wasm-edit": "1.7.11", + "@webassemblyjs/wasm-parser": "1.7.11", + "acorn": "^6.0.5", + "acorn-dynamic-import": "^4.0.0", + "ajv": "^6.1.0", + "ajv-keywords": "^3.1.0", + "chrome-trace-event": "^1.0.0", + "enhanced-resolve": "^4.1.0", + "eslint-scope": "^4.0.0", + "json-parse-better-errors": "^1.0.2", + "loader-runner": "^2.3.0", + "loader-utils": "^1.1.0", + "memory-fs": "~0.4.1", + "micromatch": "^3.1.8", + "mkdirp": "~0.5.0", + "neo-async": "^2.5.0", + "node-libs-browser": "^2.0.0", + "schema-utils": "^1.0.0", + "tapable": "^1.1.0", + "terser-webpack-plugin": "^1.1.0", + "watchpack": "^1.5.0", + "webpack-sources": "^1.3.0" + } + }, + "webpack-cli": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.2.3.tgz", + "integrity": "sha512-Ik3SjV6uJtWIAN5jp5ZuBMWEAaP5E4V78XJ2nI+paFPh8v4HPSwo/myN0r29Xc/6ZKnd2IdrAlpSgNOu2CDQ6Q==", + "dev": true, + "requires": { + "chalk": "^2.4.1", + "cross-spawn": "^6.0.5", + "enhanced-resolve": "^4.1.0", + "findup-sync": "^2.0.0", + "global-modules": "^1.0.0", + "import-local": "^2.0.0", + "interpret": "^1.1.0", + "loader-utils": "^1.1.0", + "supports-color": "^5.5.0", + "v8-compile-cache": "^2.0.2", + "yargs": "^12.0.4" }, "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, "supports-color": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", - "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "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": "2.0.0" + "has-flag": "^3.0.0" } } } }, "webpack-sources": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.1.0.tgz", - "integrity": "sha512-aqYp18kPphgoO5c/+NaUvEeACtZjMESmDChuD3NBciVpah3XpMEU9VAAtIaB1BsfJWWTSdv8Vv1m3T0aRk2dUw==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.3.0.tgz", + "integrity": "sha512-OiVgSrbGu7NEnEvQJJgdSFPl2qWKkWq5lHMhgiToIiN9w34EBnjYzSYs+VbL5KoYiLNtFFa7BZIKxRED3I32pA==", + "dev": true, "requires": { - "source-list-map": "2.0.0", - "source-map": "0.6.1" + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" }, "dependencies": { "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true } } }, @@ -4442,126 +6072,158 @@ "integrity": "sha1-nITsLc9oGH/wC8ZOEnS0QhduHIQ=" }, "which": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz", - "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, "requires": { - "isexe": "2.0.0" + "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=" + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "dev": true }, - "window-size": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", - "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=" - }, - "wordwrap": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", - "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=" + "worker-farm": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.6.0.tgz", + "integrity": "sha512-6w+3tHbM87WnSWnENBUvA2pxJPLhQUg5LKwUQHq3r+XPhIM+Gh2R5ycbwPCyuGbNg+lPgdcnQUhuC02kJCvffQ==", + "dev": true, + "requires": { + "errno": "~0.1.7" + } }, "wrap-ansi": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "dev": true, "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1" + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" }, "dependencies": { + "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=", + "dev": true, + "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=", + "dev": true, "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" } } } }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, "xtend": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", - "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=" + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", + "dev": true }, "y18n": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", - "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=" + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", + "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", + "dev": true }, "yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz", + "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==", + "dev": true }, "yargs": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-8.0.2.tgz", - "integrity": "sha1-YpmpBVsc78lp/355wdkY3Osiw2A=", - "requires": { - "camelcase": "4.1.0", - "cliui": "3.2.0", - "decamelize": "1.2.0", - "get-caller-file": "1.0.2", - "os-locale": "2.1.0", - "read-pkg-up": "2.0.0", - "require-directory": "2.1.1", - "require-main-filename": "1.0.1", - "set-blocking": "2.0.0", - "string-width": "2.1.1", - "which-module": "2.0.0", - "y18n": "3.2.1", - "yargs-parser": "7.0.0" + "version": "12.0.5", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz", + "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==", + "dev": true, + "requires": { + "cliui": "^4.0.0", + "decamelize": "^1.2.0", + "find-up": "^3.0.0", + "get-caller-file": "^1.0.1", + "os-locale": "^3.0.0", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^2.0.0", + "which-module": "^2.0.0", + "y18n": "^3.2.1 || ^4.0.0", + "yargs-parser": "^11.1.1" }, "dependencies": { - "camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } }, - "cliui": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", - "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "wrap-ansi": "2.1.0" - }, - "dependencies": { - "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.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" - } - } + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.1.0.tgz", + "integrity": "sha512-NhURkNcrVB+8hNfLuysU8enY5xn2KXphsHBaC2YmRNTZRc7RWusw6apSpdEj3jo4CMb6W9nrF6tTnsJsJeyu6g==", + "dev": true, + "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==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" } + }, + "p-try": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.0.0.tgz", + "integrity": "sha512-hMp0onDKIajHfIkdRk3P4CdCmErkYAxxDtP3Wx/4nZ3aGlau2VKh3mZpcuFkH27WQkL/3WBCPOktzA9ZOAnMQQ==", + "dev": true } } }, "yargs-parser": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz", - "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=", + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz", + "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==", + "dev": true, "requires": { - "camelcase": "4.1.0" - }, - "dependencies": { - "camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" - } + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" } } } diff --git a/src/React.Sample.Webpack.CoreMvc/package.json b/src/React.Sample.Webpack.CoreMvc/package.json index 609d128ba..c6ccd202d 100644 --- a/src/React.Sample.Webpack.CoreMvc/package.json +++ b/src/React.Sample.Webpack.CoreMvc/package.json @@ -7,10 +7,6 @@ "build": "webpack" }, "dependencies": { - "babel-core": "^6.26.3", - "babel-loader": "^7.1.2", - "babel-preset-env": "^1.6.1", - "babel-preset-react": "^6.24.1", "emotion": "^9.2.12", "emotion-server": "^9.2.12", "react": "^16.7.0", @@ -19,7 +15,14 @@ "react-helmet": "^5.2.0", "react-jss": "^8.6.1", "react-router-dom": "^4.2.2", - "styled-components": "^3.4.5", - "webpack": "^3.8.1" + "styled-components": "^3.4.5" + }, + "devDependencies": { + "babel-core": "^6.26.3", + "babel-loader": "^7.1.2", + "babel-preset-env": "^1.6.1", + "babel-preset-react": "^6.24.1", + "webpack": "^4.29.3", + "webpack-cli": "^3.2.3" } } diff --git a/src/React.Sample.Webpack.CoreMvc/webpack.config.js b/src/React.Sample.Webpack.CoreMvc/webpack.config.js index 12ed65217..96954185d 100644 --- a/src/React.Sample.Webpack.CoreMvc/webpack.config.js +++ b/src/React.Sample.Webpack.CoreMvc/webpack.config.js @@ -1,15 +1,36 @@ +const path = require('path'); + module.exports = { - entry: './Content/components/expose-components.js', + entry: { + components: './Content/components/expose-components.js', + }, output: { - filename: './wwwroot/components-bundle.generated.js' + filename: '[name].js', + globalObject: 'this', + path: path.resolve(__dirname, 'wwwroot/dist'), + }, + mode: process.env.NODE_ENV === 'production' ? 'production' : 'development', + optimization: { + runtimeChunk: { + name: 'runtime', // necessary when using multiple entrypoints on the same page + }, + splitChunks: { + cacheGroups: { + commons: { + test: /[\\/]node_modules[\\/]/, + name: 'vendor', + chunks: 'all', + }, + }, + }, }, module: { rules: [ { test: /\.jsx?$/, exclude: /node_modules/, - loader: 'babel-loader' - } - ] - } + loader: 'babel-loader', + }, + ], + }, }; From a0e74249d493bf2ce51f6cca70bacb93800c4741 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Wed, 13 Feb 2019 05:14:32 +0000 Subject: [PATCH 124/530] Update dependency babel-standalone to v6.26.0 --- src/React.Core/package-lock.json | 47 ++++++++++++++++++++++---------- src/React.Core/package.json | 2 +- 2 files changed, 34 insertions(+), 15 deletions(-) diff --git a/src/React.Core/package-lock.json b/src/React.Core/package-lock.json index c1b2d7879..1d9855a53 100644 --- a/src/React.Core/package-lock.json +++ b/src/React.Core/package-lock.json @@ -1059,9 +1059,9 @@ } }, "babel-standalone": { - "version": "6.7.7", - "resolved": "https://registry.npmjs.org/babel-standalone/-/babel-standalone-6.7.7.tgz", - "integrity": "sha1-JnxxcocZp66FHtjsQKbZvznCJiM=", + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-standalone/-/babel-standalone-6.26.0.tgz", + "integrity": "sha1-Ffs9NfLEVmlYFevx7Zb+fwFbaIY=", "dev": true }, "babel-template": { @@ -2088,7 +2088,8 @@ "ansi-regex": { "version": "2.1.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "aproba": { "version": "1.2.0", @@ -2109,12 +2110,14 @@ "balanced-match": { "version": "1.0.0", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "brace-expansion": { "version": "1.1.11", "bundled": true, "dev": true, + "optional": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -2129,17 +2132,20 @@ "code-point-at": { "version": "1.1.0", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "concat-map": { "version": "0.0.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "console-control-strings": { "version": "1.1.0", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "core-util-is": { "version": "1.0.2", @@ -2256,7 +2262,8 @@ "inherits": { "version": "2.0.3", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "ini": { "version": "1.3.5", @@ -2268,6 +2275,7 @@ "version": "1.0.0", "bundled": true, "dev": true, + "optional": true, "requires": { "number-is-nan": "^1.0.0" } @@ -2282,6 +2290,7 @@ "version": "3.0.4", "bundled": true, "dev": true, + "optional": true, "requires": { "brace-expansion": "^1.1.7" } @@ -2289,12 +2298,14 @@ "minimist": { "version": "0.0.8", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "minipass": { "version": "2.3.5", "bundled": true, "dev": true, + "optional": true, "requires": { "safe-buffer": "^5.1.2", "yallist": "^3.0.0" @@ -2313,6 +2324,7 @@ "version": "0.5.1", "bundled": true, "dev": true, + "optional": true, "requires": { "minimist": "0.0.8" } @@ -2400,7 +2412,8 @@ "number-is-nan": { "version": "1.0.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "object-assign": { "version": "4.1.1", @@ -2412,6 +2425,7 @@ "version": "1.4.0", "bundled": true, "dev": true, + "optional": true, "requires": { "wrappy": "1" } @@ -2497,7 +2511,8 @@ "safe-buffer": { "version": "5.1.2", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "safer-buffer": { "version": "2.1.2", @@ -2533,6 +2548,7 @@ "version": "1.0.2", "bundled": true, "dev": true, + "optional": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", @@ -2552,6 +2568,7 @@ "version": "3.0.1", "bundled": true, "dev": true, + "optional": true, "requires": { "ansi-regex": "^2.0.0" } @@ -2595,12 +2612,14 @@ "wrappy": { "version": "1.0.2", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "yallist": { "version": "3.0.3", "bundled": true, - "dev": true + "dev": true, + "optional": true } } }, diff --git a/src/React.Core/package.json b/src/React.Core/package.json index cc93192a9..4cac8bb60 100644 --- a/src/React.Core/package.json +++ b/src/React.Core/package.json @@ -10,7 +10,7 @@ "babel-loader": "6.2.10", "babel-preset-es2015": "^6.24.1", "babel-preset-stage-0": "6.5.0", - "babel-standalone": "6.7.7", + "babel-standalone": "6.26.0", "gulp": "3.9.1", "gulp-uglify": "1.5.4", "json-loader": "0.5.7", From 09a537c4392f153211a3580c2b125b4f54152712 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" Date: Tue, 12 Feb 2019 21:16:56 -0800 Subject: [PATCH 125/530] Update dependency Octokit to v0.32.0 (#697) --- webhooks/React.Site.Hooks.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/webhooks/React.Site.Hooks.csproj b/webhooks/React.Site.Hooks.csproj index f270ea361..d6ec041fe 100644 --- a/webhooks/React.Site.Hooks.csproj +++ b/webhooks/React.Site.Hooks.csproj @@ -4,7 +4,7 @@ - + From 798ded88ab4e93c207fbfea7b836872849828d0d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" Date: Tue, 12 Feb 2019 21:19:08 -0800 Subject: [PATCH 126/530] Update dependency prop-types to v15.7.1 (#704) --- src/React.Core/package-lock.json | 114 +++---------------------------- src/React.Core/package.json | 2 +- 2 files changed, 12 insertions(+), 104 deletions(-) diff --git a/src/React.Core/package-lock.json b/src/React.Core/package-lock.json index c1b2d7879..4318bf2a9 100644 --- a/src/React.Core/package-lock.json +++ b/src/React.Core/package-lock.json @@ -226,12 +226,6 @@ "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", "dev": true }, - "asap": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=", - "dev": true - }, "assert": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz", @@ -1616,15 +1610,6 @@ "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", "dev": true }, - "encoding": { - "version": "0.1.12", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", - "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", - "dev": true, - "requires": { - "iconv-lite": "~0.4.13" - } - }, "end-of-stream": { "version": "0.1.5", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-0.1.5.tgz", @@ -1917,29 +1902,6 @@ "time-stamp": "^1.0.0" } }, - "fbjs": { - "version": "0.8.16", - "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.16.tgz", - "integrity": "sha1-XmdDL1UNxBtXK/VYR7ispk5TN9s=", - "dev": true, - "requires": { - "core-js": "^1.0.0", - "isomorphic-fetch": "^2.1.1", - "loose-envify": "^1.0.0", - "object-assign": "^4.1.0", - "promise": "^7.1.1", - "setimmediate": "^1.0.5", - "ua-parser-js": "^0.7.9" - }, - "dependencies": { - "core-js": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz", - "integrity": "sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY=", - "dev": true - } - } - }, "filename-regex": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", @@ -3042,12 +3004,6 @@ "integrity": "sha1-s//f5zSyo9Sp79WOhlTJH86G6v0=", "dev": true }, - "iconv-lite": { - "version": "0.4.19", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz", - "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==", - "dev": true - }, "ieee754": { "version": "1.1.8", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.8.tgz", @@ -3276,12 +3232,6 @@ "is-unc-path": "^1.0.0" } }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "dev": true - }, "is-unc-path": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", @@ -3321,16 +3271,6 @@ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true }, - "isomorphic-fetch": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", - "integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=", - "dev": true, - "requires": { - "node-fetch": "^1.0.1", - "whatwg-fetch": ">=0.10.0" - } - }, "js-tokens": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", @@ -3733,16 +3673,6 @@ "integrity": "sha512-6+TDFewD4yxY14ptjKaS63GVdtKiES1pTPyxn9Jb0rBqPMZ7VcCiooEhPNsr+mqHtMGxa/5c/HhcC4uPEUw/nA==", "dev": true }, - "node-fetch": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", - "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", - "dev": true, - "requires": { - "encoding": "^0.1.11", - "is-stream": "^1.0.1" - } - }, "node-libs-browser": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-0.6.0.tgz", @@ -4098,24 +4028,14 @@ "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=", "dev": true }, - "promise": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", - "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", - "dev": true, - "requires": { - "asap": "~2.0.3" - } - }, "prop-types": { - "version": "15.6.0", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.0.tgz", - "integrity": "sha1-zq8IMCL8RrSjX2nhPvda7Q1jmFY=", + "version": "15.7.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.1.tgz", + "integrity": "sha512-f8Lku2z9kERjOCcnDOPm68EBJAO2K00Q5mSgPAUE/gJuBgsYLbVy6owSrtcHj90zt8PvW+z0qaIIgsIhHOa1Qw==", "dev": true, "requires": { - "fbjs": "^0.8.16", - "loose-envify": "^1.3.1", - "object-assign": "^4.1.1" + "object-assign": "^4.1.1", + "react-is": "^16.8.1" } }, "prr": { @@ -4190,6 +4110,12 @@ } } }, + "react-is": { + "version": "16.8.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.8.1.tgz", + "integrity": "sha512-ioMCzVDWvCvKD8eeT+iukyWrBGrA3DiFYkXfBsVYIRdaREZuBjENG+KjrikavCLasozqRWTwFUagU/O4vPpRMA==", + "dev": true + }, "readable-stream": { "version": "1.1.14", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", @@ -4491,12 +4417,6 @@ } } }, - "setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", - "dev": true - }, "sha.js": { "version": "2.2.6", "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.2.6.tgz", @@ -4883,12 +4803,6 @@ "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", "dev": true }, - "ua-parser-js": { - "version": "0.7.17", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.17.tgz", - "integrity": "sha512-uRdSdu1oA1rncCQL7sCj8vSyZkgtL7faaw9Tc9rZ3mGgraQ7+Pdx7w5mnOSF3gw9ZNG6oc+KXfkon3bKuROm0g==", - "dev": true - }, "uglify-js": { "version": "2.6.4", "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.6.4.tgz", @@ -5308,12 +5222,6 @@ } } }, - "whatwg-fetch": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz", - "integrity": "sha1-nITsLc9oGH/wC8ZOEnS0QhduHIQ=", - "dev": true - }, "which": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", diff --git a/src/React.Core/package.json b/src/React.Core/package.json index cc93192a9..1df172fe4 100644 --- a/src/React.Core/package.json +++ b/src/React.Core/package.json @@ -15,7 +15,7 @@ "gulp-uglify": "1.5.4", "json-loader": "0.5.7", "natives": "^1.1.6", - "prop-types": "15.6.0", + "prop-types": "15.7.1", "react": "16.7.0", "react-dom": "16.7.0", "vinyl-named": "1.1.0", From a35984847f1d7e7838b7c6db5ace034be0a89cf2 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" Date: Tue, 12 Feb 2019 21:19:48 -0800 Subject: [PATCH 127/530] Update JavaScriptEngineSwitcher packages (#706) --- tutorial-code/tutorial-code.csproj | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/tutorial-code/tutorial-code.csproj b/tutorial-code/tutorial-code.csproj index d80ef6063..6a8e1cbf2 100644 --- a/tutorial-code/tutorial-code.csproj +++ b/tutorial-code/tutorial-code.csproj @@ -13,11 +13,11 @@ - - - - - + + + + + From 679764e31df0f14dfad94206af4c8839007f76fd Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Wed, 13 Feb 2019 06:49:12 +0000 Subject: [PATCH 128/530] Update dependency Microsoft.NET.Sdk.Functions to v1.0.24 --- webhooks/React.Site.Hooks.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/webhooks/React.Site.Hooks.csproj b/webhooks/React.Site.Hooks.csproj index d6ec041fe..f1650f9bc 100644 --- a/webhooks/React.Site.Hooks.csproj +++ b/webhooks/React.Site.Hooks.csproj @@ -3,7 +3,7 @@ net461 - + From a29dd6d1d9d0b009b49616eaba03c05206faa071 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" Date: Wed, 13 Feb 2019 07:33:40 -0800 Subject: [PATCH 129/530] Update react monorepo to v16.8.1 (#728) --- src/React.Core/package-lock.json | 87 +++++++++++++++----------------- src/React.Core/package.json | 4 +- 2 files changed, 43 insertions(+), 48 deletions(-) diff --git a/src/React.Core/package-lock.json b/src/React.Core/package-lock.json index 4318bf2a9..449ab0196 100644 --- a/src/React.Core/package-lock.json +++ b/src/React.Core/package-lock.json @@ -2050,7 +2050,8 @@ "ansi-regex": { "version": "2.1.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "aproba": { "version": "1.2.0", @@ -2071,12 +2072,14 @@ "balanced-match": { "version": "1.0.0", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "brace-expansion": { "version": "1.1.11", "bundled": true, "dev": true, + "optional": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -2091,17 +2094,20 @@ "code-point-at": { "version": "1.1.0", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "concat-map": { "version": "0.0.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "console-control-strings": { "version": "1.1.0", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "core-util-is": { "version": "1.0.2", @@ -2218,7 +2224,8 @@ "inherits": { "version": "2.0.3", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "ini": { "version": "1.3.5", @@ -2230,6 +2237,7 @@ "version": "1.0.0", "bundled": true, "dev": true, + "optional": true, "requires": { "number-is-nan": "^1.0.0" } @@ -2244,6 +2252,7 @@ "version": "3.0.4", "bundled": true, "dev": true, + "optional": true, "requires": { "brace-expansion": "^1.1.7" } @@ -2251,12 +2260,14 @@ "minimist": { "version": "0.0.8", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "minipass": { "version": "2.3.5", "bundled": true, "dev": true, + "optional": true, "requires": { "safe-buffer": "^5.1.2", "yallist": "^3.0.0" @@ -2275,6 +2286,7 @@ "version": "0.5.1", "bundled": true, "dev": true, + "optional": true, "requires": { "minimist": "0.0.8" } @@ -2362,7 +2374,8 @@ "number-is-nan": { "version": "1.0.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "object-assign": { "version": "4.1.1", @@ -2374,6 +2387,7 @@ "version": "1.4.0", "bundled": true, "dev": true, + "optional": true, "requires": { "wrappy": "1" } @@ -2459,7 +2473,8 @@ "safe-buffer": { "version": "5.1.2", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "safer-buffer": { "version": "2.1.2", @@ -2495,6 +2510,7 @@ "version": "1.0.2", "bundled": true, "dev": true, + "optional": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", @@ -2514,6 +2530,7 @@ "version": "3.0.1", "bundled": true, "dev": true, + "optional": true, "requires": { "ansi-regex": "^2.0.0" } @@ -2557,12 +2574,14 @@ "wrappy": { "version": "1.0.2", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "yallist": { "version": "3.0.3", "bundled": true, - "dev": true + "dev": true, + "optional": true } } }, @@ -4063,51 +4082,27 @@ "dev": true }, "react": { - "version": "16.7.0", - "resolved": "https://registry.npmjs.org/react/-/react-16.7.0.tgz", - "integrity": "sha512-StCz3QY8lxTb5cl2HJxjwLFOXPIFQp+p+hxQfc8WE0QiLfCtIlKj8/+5tjjKm8uSTlAW+fCPaavGFS06V9Ar3A==", + "version": "16.8.1", + "resolved": "https://registry.npmjs.org/react/-/react-16.8.1.tgz", + "integrity": "sha512-wLw5CFGPdo7p/AgteFz7GblI2JPOos0+biSoxf1FPsGxWQZdN/pj6oToJs1crn61DL3Ln7mN86uZ4j74p31ELQ==", "dev": true, "requires": { "loose-envify": "^1.1.0", "object-assign": "^4.1.1", "prop-types": "^15.6.2", - "scheduler": "^0.12.0" - }, - "dependencies": { - "prop-types": { - "version": "15.6.2", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.2.tgz", - "integrity": "sha512-3pboPvLiWD7dkI3qf3KbUe6hKFKa52w+AE0VCqECtf+QHAKgOL37tTaNCnuX1nAAQ4ZhyP+kYVKf8rLmJ/feDQ==", - "dev": true, - "requires": { - "loose-envify": "^1.3.1", - "object-assign": "^4.1.1" - } - } + "scheduler": "^0.13.1" } }, "react-dom": { - "version": "16.7.0", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.7.0.tgz", - "integrity": "sha512-D0Ufv1ExCAmF38P2Uh1lwpminZFRXEINJe53zRAbm4KPwSyd6DY/uDoS0Blj9jvPpn1+wivKpZYc8aAAN/nAkg==", + "version": "16.8.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.8.1.tgz", + "integrity": "sha512-N74IZUrPt6UiDjXaO7UbDDFXeUXnVhZzeRLy/6iqqN1ipfjrhR60Bp5NuBK+rv3GMdqdIuwIl22u1SYwf330bg==", "dev": true, "requires": { "loose-envify": "^1.1.0", "object-assign": "^4.1.1", "prop-types": "^15.6.2", - "scheduler": "^0.12.0" - }, - "dependencies": { - "prop-types": { - "version": "15.6.2", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.2.tgz", - "integrity": "sha512-3pboPvLiWD7dkI3qf3KbUe6hKFKa52w+AE0VCqECtf+QHAKgOL37tTaNCnuX1nAAQ4ZhyP+kYVKf8rLmJ/feDQ==", - "dev": true, - "requires": { - "loose-envify": "^1.3.1", - "object-assign": "^4.1.1" - } - } + "scheduler": "^0.13.1" } }, "react-is": { @@ -4367,9 +4362,9 @@ } }, "scheduler": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.12.0.tgz", - "integrity": "sha512-t7MBR28Akcp4Jm+QoR63XgAi9YgCUmgvDHqf5otgAj4QvdoBE4ImCX0ffehefePPG+aitiYHp0g/mW6s4Tp+dw==", + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.13.1.tgz", + "integrity": "sha512-VJKOkiKIN2/6NOoexuypwSrybx13MY7NSy9RNt8wPvZDMRT1CW6qlpF5jXRToXNHz3uWzbm2elNpZfXfGPqP9A==", "dev": true, "requires": { "loose-envify": "^1.1.0", diff --git a/src/React.Core/package.json b/src/React.Core/package.json index 1df172fe4..c6e3b0950 100644 --- a/src/React.Core/package.json +++ b/src/React.Core/package.json @@ -16,8 +16,8 @@ "json-loader": "0.5.7", "natives": "^1.1.6", "prop-types": "15.7.1", - "react": "16.7.0", - "react-dom": "16.7.0", + "react": "16.8.1", + "react-dom": "16.8.1", "vinyl-named": "1.1.0", "webpack": "1.13.3", "webpack-stream": "3.2.0" From e944a814d5ea16b9ab66d865942aed84b2f859e9 Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Fri, 15 Feb 2019 21:30:47 -0800 Subject: [PATCH 130/530] Bump react dependencies --- src/React.Core/package-lock.json | 22 +++--- src/React.Core/package.json | 4 +- .../package-lock.json | 74 +++++++++++++------ src/React.Sample.Webpack.CoreMvc/package.json | 4 +- 4 files changed, 68 insertions(+), 36 deletions(-) diff --git a/src/React.Core/package-lock.json b/src/React.Core/package-lock.json index 449ab0196..8e4e69700 100644 --- a/src/React.Core/package-lock.json +++ b/src/React.Core/package-lock.json @@ -4082,27 +4082,27 @@ "dev": true }, "react": { - "version": "16.8.1", - "resolved": "https://registry.npmjs.org/react/-/react-16.8.1.tgz", - "integrity": "sha512-wLw5CFGPdo7p/AgteFz7GblI2JPOos0+biSoxf1FPsGxWQZdN/pj6oToJs1crn61DL3Ln7mN86uZ4j74p31ELQ==", + "version": "16.8.2", + "resolved": "https://registry.npmjs.org/react/-/react-16.8.2.tgz", + "integrity": "sha512-aB2ctx9uQ9vo09HVknqv3DGRpI7OIGJhCx3Bt0QqoRluEjHSaObJl+nG12GDdYH6sTgE7YiPJ6ZUyMx9kICdXw==", "dev": true, "requires": { "loose-envify": "^1.1.0", "object-assign": "^4.1.1", "prop-types": "^15.6.2", - "scheduler": "^0.13.1" + "scheduler": "^0.13.2" } }, "react-dom": { - "version": "16.8.1", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.8.1.tgz", - "integrity": "sha512-N74IZUrPt6UiDjXaO7UbDDFXeUXnVhZzeRLy/6iqqN1ipfjrhR60Bp5NuBK+rv3GMdqdIuwIl22u1SYwf330bg==", + "version": "16.8.2", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.8.2.tgz", + "integrity": "sha512-cPGfgFfwi+VCZjk73buu14pYkYBR1b/SRMSYqkLDdhSEHnSwcuYTPu6/Bh6ZphJFIk80XLvbSe2azfcRzNF+Xg==", "dev": true, "requires": { "loose-envify": "^1.1.0", "object-assign": "^4.1.1", "prop-types": "^15.6.2", - "scheduler": "^0.13.1" + "scheduler": "^0.13.2" } }, "react-is": { @@ -4362,9 +4362,9 @@ } }, "scheduler": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.13.1.tgz", - "integrity": "sha512-VJKOkiKIN2/6NOoexuypwSrybx13MY7NSy9RNt8wPvZDMRT1CW6qlpF5jXRToXNHz3uWzbm2elNpZfXfGPqP9A==", + "version": "0.13.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.13.2.tgz", + "integrity": "sha512-qK5P8tHS7vdEMCW5IPyt8v9MJOHqTrOUgPXib7tqm9vh834ibBX5BNhwkplX/0iOzHW5sXyluehYfS9yrkz9+w==", "dev": true, "requires": { "loose-envify": "^1.1.0", diff --git a/src/React.Core/package.json b/src/React.Core/package.json index c6e3b0950..f47bad953 100644 --- a/src/React.Core/package.json +++ b/src/React.Core/package.json @@ -16,8 +16,8 @@ "json-loader": "0.5.7", "natives": "^1.1.6", "prop-types": "15.7.1", - "react": "16.8.1", - "react-dom": "16.8.1", + "react": "^16.8.2", + "react-dom": "^16.8.2", "vinyl-named": "1.1.0", "webpack": "1.13.3", "webpack-stream": "3.2.0" diff --git a/src/React.Sample.Webpack.CoreMvc/package-lock.json b/src/React.Sample.Webpack.CoreMvc/package-lock.json index 4793c0d69..2ef7c8723 100644 --- a/src/React.Sample.Webpack.CoreMvc/package-lock.json +++ b/src/React.Sample.Webpack.CoreMvc/package-lock.json @@ -4646,46 +4646,78 @@ } }, "react": { - "version": "16.7.0", - "resolved": "https://registry.npmjs.org/react/-/react-16.7.0.tgz", - "integrity": "sha512-StCz3QY8lxTb5cl2HJxjwLFOXPIFQp+p+hxQfc8WE0QiLfCtIlKj8/+5tjjKm8uSTlAW+fCPaavGFS06V9Ar3A==", + "version": "16.8.2", + "resolved": "https://registry.npmjs.org/react/-/react-16.8.2.tgz", + "integrity": "sha512-aB2ctx9uQ9vo09HVknqv3DGRpI7OIGJhCx3Bt0QqoRluEjHSaObJl+nG12GDdYH6sTgE7YiPJ6ZUyMx9kICdXw==", "requires": { "loose-envify": "^1.1.0", "object-assign": "^4.1.1", "prop-types": "^15.6.2", - "scheduler": "^0.12.0" + "scheduler": "^0.13.2" }, "dependencies": { "prop-types": { - "version": "15.6.2", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.2.tgz", - "integrity": "sha512-3pboPvLiWD7dkI3qf3KbUe6hKFKa52w+AE0VCqECtf+QHAKgOL37tTaNCnuX1nAAQ4ZhyP+kYVKf8rLmJ/feDQ==", + "version": "15.7.2", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", + "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", "requires": { - "loose-envify": "^1.3.1", - "object-assign": "^4.1.1" + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.8.1" + }, + "dependencies": { + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + } } + }, + "react-is": { + "version": "16.8.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.8.2.tgz", + "integrity": "sha512-D+NxhSR2HUCjYky1q1DwpNUD44cDpUXzSmmFyC3ug1bClcU/iDNy0YNn1iwme28fn+NFhpA13IndOd42CrFb+Q==" } } }, "react-dom": { - "version": "16.7.0", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.7.0.tgz", - "integrity": "sha512-D0Ufv1ExCAmF38P2Uh1lwpminZFRXEINJe53zRAbm4KPwSyd6DY/uDoS0Blj9jvPpn1+wivKpZYc8aAAN/nAkg==", + "version": "16.8.2", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.8.2.tgz", + "integrity": "sha512-cPGfgFfwi+VCZjk73buu14pYkYBR1b/SRMSYqkLDdhSEHnSwcuYTPu6/Bh6ZphJFIk80XLvbSe2azfcRzNF+Xg==", "requires": { "loose-envify": "^1.1.0", "object-assign": "^4.1.1", "prop-types": "^15.6.2", - "scheduler": "^0.12.0" + "scheduler": "^0.13.2" }, "dependencies": { "prop-types": { - "version": "15.6.2", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.2.tgz", - "integrity": "sha512-3pboPvLiWD7dkI3qf3KbUe6hKFKa52w+AE0VCqECtf+QHAKgOL37tTaNCnuX1nAAQ4ZhyP+kYVKf8rLmJ/feDQ==", + "version": "15.7.2", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", + "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", "requires": { - "loose-envify": "^1.3.1", - "object-assign": "^4.1.1" + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.8.1" + }, + "dependencies": { + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + } } + }, + "react-is": { + "version": "16.8.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.8.2.tgz", + "integrity": "sha512-D+NxhSR2HUCjYky1q1DwpNUD44cDpUXzSmmFyC3ug1bClcU/iDNy0YNn1iwme28fn+NFhpA13IndOd42CrFb+Q==" } } }, @@ -5000,9 +5032,9 @@ } }, "scheduler": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.12.0.tgz", - "integrity": "sha512-t7MBR28Akcp4Jm+QoR63XgAi9YgCUmgvDHqf5otgAj4QvdoBE4ImCX0ffehefePPG+aitiYHp0g/mW6s4Tp+dw==", + "version": "0.13.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.13.2.tgz", + "integrity": "sha512-qK5P8tHS7vdEMCW5IPyt8v9MJOHqTrOUgPXib7tqm9vh834ibBX5BNhwkplX/0iOzHW5sXyluehYfS9yrkz9+w==", "requires": { "loose-envify": "^1.1.0", "object-assign": "^4.1.1" diff --git a/src/React.Sample.Webpack.CoreMvc/package.json b/src/React.Sample.Webpack.CoreMvc/package.json index c6ccd202d..011151b76 100644 --- a/src/React.Sample.Webpack.CoreMvc/package.json +++ b/src/React.Sample.Webpack.CoreMvc/package.json @@ -9,8 +9,8 @@ "dependencies": { "emotion": "^9.2.12", "emotion-server": "^9.2.12", - "react": "^16.7.0", - "react-dom": "^16.7.0", + "react": "^16.8.2", + "react-dom": "^16.8.2", "react-emotion": "^9.2.12", "react-helmet": "^5.2.0", "react-jss": "^8.6.1", From 0e371304d13f3f0479896b941e9096d649736257 Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Fri, 15 Feb 2019 21:31:58 -0800 Subject: [PATCH 131/530] 4.1.0 --- build.proj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.proj b/build.proj index 431f67deb..e3cb399c6 100644 --- a/build.proj +++ b/build.proj @@ -10,7 +10,7 @@ of patent rights can be found in the PATENTS file in the same directory. 4 - 0 + 1 0 0 http://reactjs.net/packages/ From 6a643d812dc34e6e3da306e689ef20d86cff79da Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Sat, 16 Feb 2019 06:44:06 +0000 Subject: [PATCH 132/530] Pin dependencies --- src/React.Core/package.json | 10 +++++----- src/React.Sample.Webpack.CoreMvc/package.json | 12 ++++++------ 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/React.Core/package.json b/src/React.Core/package.json index f47bad953..a374383c5 100644 --- a/src/React.Core/package.json +++ b/src/React.Core/package.json @@ -6,18 +6,18 @@ "build": "gulp" }, "devDependencies": { - "babel-core": "^6.26.3", + "babel-core": "6.26.3", "babel-loader": "6.2.10", - "babel-preset-es2015": "^6.24.1", + "babel-preset-es2015": "6.24.1", "babel-preset-stage-0": "6.5.0", "babel-standalone": "6.7.7", "gulp": "3.9.1", "gulp-uglify": "1.5.4", "json-loader": "0.5.7", - "natives": "^1.1.6", + "natives": "1.1.6", "prop-types": "15.7.1", - "react": "^16.8.2", - "react-dom": "^16.8.2", + "react": "16.8.2", + "react-dom": "16.8.2", "vinyl-named": "1.1.0", "webpack": "1.13.3", "webpack-stream": "3.2.0" diff --git a/src/React.Sample.Webpack.CoreMvc/package.json b/src/React.Sample.Webpack.CoreMvc/package.json index 011151b76..2d5c4ab80 100644 --- a/src/React.Sample.Webpack.CoreMvc/package.json +++ b/src/React.Sample.Webpack.CoreMvc/package.json @@ -18,11 +18,11 @@ "styled-components": "^3.4.5" }, "devDependencies": { - "babel-core": "^6.26.3", - "babel-loader": "^7.1.2", - "babel-preset-env": "^1.6.1", - "babel-preset-react": "^6.24.1", - "webpack": "^4.29.3", - "webpack-cli": "^3.2.3" + "babel-core": "6.26.3", + "babel-loader": "7.1.2", + "babel-preset-env": "1.6.1", + "babel-preset-react": "6.24.1", + "webpack": "4.29.3", + "webpack-cli": "3.2.3" } } From d5ec2d809d13be99abc8580d0ab40288b9e65bdf Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Sun, 17 Feb 2019 05:15:16 +0000 Subject: [PATCH 133/530] Update dependency System.Threading.Thread to v4.3.0 --- src/React.Core/React.Core.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/React.Core/React.Core.csproj b/src/React.Core/React.Core.csproj index e7f083fa3..ade0537a9 100644 --- a/src/React.Core/React.Core.csproj +++ b/src/React.Core/React.Core.csproj @@ -45,7 +45,7 @@ - + From 3491b6533c3af7197777708c5eec03f2a9c34cc0 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Sun, 17 Feb 2019 06:31:06 +0000 Subject: [PATCH 134/530] Update dependency prop-types to v15.7.2 --- src/React.Core/package-lock.json | 24 ++++++++++++++++++------ src/React.Core/package.json | 2 +- 2 files changed, 19 insertions(+), 7 deletions(-) diff --git a/src/React.Core/package-lock.json b/src/React.Core/package-lock.json index 2324c795a..a2d4ce83f 100644 --- a/src/React.Core/package-lock.json +++ b/src/React.Core/package-lock.json @@ -4048,13 +4048,25 @@ "dev": true }, "prop-types": { - "version": "15.7.1", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.1.tgz", - "integrity": "sha512-f8Lku2z9kERjOCcnDOPm68EBJAO2K00Q5mSgPAUE/gJuBgsYLbVy6owSrtcHj90zt8PvW+z0qaIIgsIhHOa1Qw==", + "version": "15.7.2", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", + "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", "dev": true, "requires": { + "loose-envify": "^1.4.0", "object-assign": "^4.1.1", "react-is": "^16.8.1" + }, + "dependencies": { + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dev": true, + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + } } }, "prr": { @@ -4106,9 +4118,9 @@ } }, "react-is": { - "version": "16.8.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.8.1.tgz", - "integrity": "sha512-ioMCzVDWvCvKD8eeT+iukyWrBGrA3DiFYkXfBsVYIRdaREZuBjENG+KjrikavCLasozqRWTwFUagU/O4vPpRMA==", + "version": "16.8.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.8.2.tgz", + "integrity": "sha512-D+NxhSR2HUCjYky1q1DwpNUD44cDpUXzSmmFyC3ug1bClcU/iDNy0YNn1iwme28fn+NFhpA13IndOd42CrFb+Q==", "dev": true }, "readable-stream": { diff --git a/src/React.Core/package.json b/src/React.Core/package.json index 91e39e3ab..b168e3006 100644 --- a/src/React.Core/package.json +++ b/src/React.Core/package.json @@ -15,7 +15,7 @@ "gulp-uglify": "1.5.4", "json-loader": "0.5.7", "natives": "1.1.6", - "prop-types": "15.7.1", + "prop-types": "15.7.2", "react": "16.8.2", "react-dom": "16.8.2", "vinyl-named": "1.1.0", From fd8c90155be12f3507b9d9e45cf64794dd4ed8d6 Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Fri, 22 Feb 2019 20:58:15 -0800 Subject: [PATCH 135/530] Fix build on Node 10 by using webpack directly This simplifies the build configuraiton a bit. --- build.proj | 2 +- src/React.Core/gulpfile.js | 67 - src/React.Core/package-lock.json | 4135 ++++++++++++++++++------------ src/React.Core/package.json | 13 +- src/React.Core/webpack.config.js | 57 + 5 files changed, 2516 insertions(+), 1758 deletions(-) delete mode 100644 src/React.Core/gulpfile.js create mode 100644 src/React.Core/webpack.config.js diff --git a/build.proj b/build.proj index e3cb399c6..15011dd00 100644 --- a/build.proj +++ b/build.proj @@ -92,7 +92,7 @@ of patent rights can be found in the PATENTS file in the same directory. - + diff --git a/src/React.Core/gulpfile.js b/src/React.Core/gulpfile.js deleted file mode 100644 index b60216e36..000000000 --- a/src/React.Core/gulpfile.js +++ /dev/null @@ -1,67 +0,0 @@ -/** - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -var gulp = require('gulp'); -var named = require('vinyl-named'); -var webpack = require('webpack'); -var webpackStream = require('webpack-stream'); -var uglify = require('gulp-uglify'); - -var OUTPUT_DIR = 'Resources/'; - -gulp.task('default', ['build']); -gulp.task('build', ['build-react-dev', 'build-deps-prod']); - -gulp.task('build-react-dev', function() { - return gulp.src('Resources/react.js') - .pipe(webpackStream({ - output: { - filename: 'react.generated.js', - libraryTarget: 'this' - }, - plugins: [ - new webpack.DefinePlugin({ - 'process.env.NODE_ENV': '"development"' - }), - new webpack.optimize.OccurenceOrderPlugin(), - new webpack.optimize.DedupePlugin() - ] - })) - .pipe(gulp.dest(OUTPUT_DIR)); -}); - -gulp.task('build-deps-prod', function () { - return gulp.src(['Resources/react.js', 'Resources/babel.js']) - .pipe(named()) - .pipe(webpackStream({ - module: { - loaders: [ - { - exclude: /node_modules/, - test: /\.js$/, - loader: 'babel', - query: { - presets: ['es2015', 'stage-0'] - } - }, - ] - }, - output: { - filename: '[name].generated.min.js', - libraryTarget: 'this' - }, - plugins: [ - new webpack.DefinePlugin({ - 'process.env.NODE_ENV': '"production"' - }), - new webpack.optimize.OccurenceOrderPlugin(), - new webpack.optimize.DedupePlugin() - ] - })) - .pipe(uglify()) - .pipe(gulp.dest(OUTPUT_DIR)); -}); diff --git a/src/React.Core/package-lock.json b/src/React.Core/package-lock.json index a2d4ce83f..bc3d16dc0 100644 --- a/src/React.Core/package-lock.json +++ b/src/React.Core/package-lock.json @@ -4,55 +4,230 @@ "lockfileVersion": 1, "requires": true, "dependencies": { - "Base64": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/Base64/-/Base64-0.2.1.tgz", - "integrity": "sha1-ujpCMHCOGGcFBl5mur3Uw1z2ACg=", + "@webassemblyjs/ast": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.8.3.tgz", + "integrity": "sha512-xy3m06+Iu4D32+6soz6zLnwznigXJRuFNTovBX2M4GqVqLb0dnyWLbPnpcXvUSdEN+9DVyDeaq2jyH1eIL2LZQ==", + "dev": true, + "requires": { + "@webassemblyjs/helper-module-context": "1.8.3", + "@webassemblyjs/helper-wasm-bytecode": "1.8.3", + "@webassemblyjs/wast-parser": "1.8.3" + } + }, + "@webassemblyjs/floating-point-hex-parser": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.8.3.tgz", + "integrity": "sha512-vq1TISG4sts4f0lDwMUM0f3kpe0on+G3YyV5P0IySHFeaLKRYZ++n2fCFfG4TcCMYkqFeTUYFxm75L3ddlk2xA==", "dev": true }, - "acorn": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", - "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=", + "@webassemblyjs/helper-api-error": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.8.3.tgz", + "integrity": "sha512-BmWEynI4FnZbjk8CaYZXwcv9a6gIiu+rllRRouQUo73hglanXD3AGFJE7Q4JZCoVE0p5/jeX6kf5eKa3D4JxwQ==", "dev": true }, - "align-text": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", - "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", + "@webassemblyjs/helper-buffer": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.8.3.tgz", + "integrity": "sha512-iVIMhWnNHoFB94+/2l7LpswfCsXeMRnWfExKtqsZ/E2NxZyUx9nTeKK/MEMKTQNEpyfznIUX06OchBHQ+VKi/Q==", + "dev": true + }, + "@webassemblyjs/helper-code-frame": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.8.3.tgz", + "integrity": "sha512-K1UxoJML7GKr1QXR+BG7eXqQkvu+eEeTjlSl5wUFQ6W6vaOc5OwSxTcb3oE9x/3+w4NHhrIKD4JXXCZmLdL2cg==", "dev": true, "requires": { - "kind-of": "^3.0.2", - "longest": "^1.0.1", - "repeat-string": "^1.5.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } + "@webassemblyjs/wast-printer": "1.8.3" } }, - "amdefine": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", - "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", + "@webassemblyjs/helper-fsm": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.8.3.tgz", + "integrity": "sha512-387zipfrGyO77/qm7/SDUiZBjQ5KGk4qkrVIyuoubmRNIiqn3g+6ijY8BhnlGqsCCQX5bYKOnttJobT5xoyviA==", "dev": true }, - "ansi-gray": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/ansi-gray/-/ansi-gray-0.1.1.tgz", - "integrity": "sha1-KWLPVOyXksSFEKPetSRDaGHvclE=", + "@webassemblyjs/helper-module-context": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.8.3.tgz", + "integrity": "sha512-lPLFdQfaRssfnGEJit5Sk785kbBPPPK4ZS6rR5W/8hlUO/5v3F+rN8XuUcMj/Ny9iZiyKhhuinWGTUuYL4VKeQ==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.8.3", + "mamacro": "^0.0.3" + } + }, + "@webassemblyjs/helper-wasm-bytecode": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.8.3.tgz", + "integrity": "sha512-R1nJW7bjyJLjsJQR5t3K/9LJ0QWuZezl8fGa49DZq4IVaejgvkbNlKEQxLYTC579zgT4IIIVHb5JA59uBPHXyw==", + "dev": true + }, + "@webassemblyjs/helper-wasm-section": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.8.3.tgz", + "integrity": "sha512-P6F7D61SJY73Yz+fs49Q3+OzlYAZP86OfSpaSY448KzUy65NdfzDmo2NPVte+Rw4562MxEAacvq/mnDuvRWOcg==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.8.3", + "@webassemblyjs/helper-buffer": "1.8.3", + "@webassemblyjs/helper-wasm-bytecode": "1.8.3", + "@webassemblyjs/wasm-gen": "1.8.3" + } + }, + "@webassemblyjs/ieee754": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.8.3.tgz", + "integrity": "sha512-UD4HuLU99hjIvWz1pD68b52qsepWQlYCxDYVFJQfHh3BHyeAyAlBJ+QzLR1nnS5J6hAzjki3I3AoJeobNNSZlg==", + "dev": true, + "requires": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "@webassemblyjs/leb128": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.8.3.tgz", + "integrity": "sha512-XXd3s1BmkC1gpGABuCRLqCGOD6D2L+Ma2BpwpjrQEHeQATKWAQtxAyU9Z14/z8Ryx6IG+L4/NDkIGHrccEhRUg==", + "dev": true, + "requires": { + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/utf8": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.8.3.tgz", + "integrity": "sha512-Wv/WH9Zo5h5ZMyfCNpUrjFsLZ3X1amdfEuwdb7MLdG3cPAjRS6yc6ElULlpjLiiBTuzvmLhr3ENsuGyJ3wyCgg==", + "dev": true + }, + "@webassemblyjs/wasm-edit": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.8.3.tgz", + "integrity": "sha512-nB19eUx3Yhi1Vvv3yev5r+bqQixZprMtaoCs1brg9Efyl8Hto3tGaUoZ0Yb4Umn/gQCyoEGFfUxPLp1/8+Jvnw==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.8.3", + "@webassemblyjs/helper-buffer": "1.8.3", + "@webassemblyjs/helper-wasm-bytecode": "1.8.3", + "@webassemblyjs/helper-wasm-section": "1.8.3", + "@webassemblyjs/wasm-gen": "1.8.3", + "@webassemblyjs/wasm-opt": "1.8.3", + "@webassemblyjs/wasm-parser": "1.8.3", + "@webassemblyjs/wast-printer": "1.8.3" + } + }, + "@webassemblyjs/wasm-gen": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.8.3.tgz", + "integrity": "sha512-sDNmu2nLBJZ/huSzlJvd9IK8B1EjCsOl7VeMV9VJPmxKYgTJ47lbkSP+KAXMgZWGcArxmcrznqm7FrAPQ7vVGg==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.8.3", + "@webassemblyjs/helper-wasm-bytecode": "1.8.3", + "@webassemblyjs/ieee754": "1.8.3", + "@webassemblyjs/leb128": "1.8.3", + "@webassemblyjs/utf8": "1.8.3" + } + }, + "@webassemblyjs/wasm-opt": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.8.3.tgz", + "integrity": "sha512-j8lmQVFR+FR4/645VNgV4R/Jz8i50eaPAj93GZyd3EIJondVshE/D9pivpSDIXyaZt+IkCodlzOoZUE4LnQbeA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.8.3", + "@webassemblyjs/helper-buffer": "1.8.3", + "@webassemblyjs/wasm-gen": "1.8.3", + "@webassemblyjs/wasm-parser": "1.8.3" + } + }, + "@webassemblyjs/wasm-parser": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.8.3.tgz", + "integrity": "sha512-NBI3SNNtRoy4T/KBsRZCAWUzE9lI94RH2nneLwa1KKIrt/2zzcTavWg6oY05ArCbb/PZDk3OUi63CD1RYtN65w==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.8.3", + "@webassemblyjs/helper-api-error": "1.8.3", + "@webassemblyjs/helper-wasm-bytecode": "1.8.3", + "@webassemblyjs/ieee754": "1.8.3", + "@webassemblyjs/leb128": "1.8.3", + "@webassemblyjs/utf8": "1.8.3" + } + }, + "@webassemblyjs/wast-parser": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.8.3.tgz", + "integrity": "sha512-gZPst4CNcmGtKC1eYQmgCx6gwQvxk4h/nPjfPBbRoD+Raw3Hs+BS3yhrfgyRKtlYP+BJ8LcY9iFODEQofl2qbg==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.8.3", + "@webassemblyjs/floating-point-hex-parser": "1.8.3", + "@webassemblyjs/helper-api-error": "1.8.3", + "@webassemblyjs/helper-code-frame": "1.8.3", + "@webassemblyjs/helper-fsm": "1.8.3", + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/wast-printer": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.8.3.tgz", + "integrity": "sha512-DTA6kpXuHK4PHu16yAD9QVuT1WZQRT7079oIFFmFSjqjLWGXS909I/7kiLTn931mcj7wGsaUNungjwNQ2lGQ3Q==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.8.3", + "@webassemblyjs/wast-parser": "1.8.3", + "@xtuc/long": "4.2.2" + } + }, + "@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true + }, + "@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true + }, + "acorn": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.1.0.tgz", + "integrity": "sha512-MW/FjM+IvU9CgBzjO3UIPCE2pyEwUsoFl+VGdczOPEdxfGFjuKny/gN54mOuX7Qxmb9Rg9MCn2oKiSUeW+pjrw==", + "dev": true + }, + "acorn-dynamic-import": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-4.0.0.tgz", + "integrity": "sha512-d3OEjQV4ROpoflsnUA8HozoIR504TFxNivYEUi6uwz0IYhBkTDXGuWlNdMtybRt3nqVx/L6XqMt0FxkXuWKZhw==", + "dev": true + }, + "ajv": { + "version": "6.9.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.9.2.tgz", + "integrity": "sha512-4UFy0/LgDo7Oa/+wOAlj44tp9K78u38E5/359eSrqEp1Z5PdVfimCcs7SluXMP755RUQu6d2b4AvF0R1C9RZjg==", "dev": true, "requires": { - "ansi-wrap": "0.1.0" + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" } }, + "ajv-errors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", + "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==", + "dev": true + }, + "ajv-keywords": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.4.0.tgz", + "integrity": "sha512-aUjdRFISbuFOl0EIZc+9e4FfZp0bDZgAdOOf30bJmw8VM9v84SHyVyxDfbWxpGYbdZD/9XoKxfHVNmxPkhwyGw==", + "dev": true + }, "ansi-regex": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", @@ -65,117 +240,31 @@ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", "dev": true }, - "ansi-wrap": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz", - "integrity": "sha1-qCJQ3bABXponyoLoLqYDu/pF768=", - "dev": true - }, "anymatch": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", - "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", "dev": true, "requires": { - "micromatch": "^2.1.5", - "normalize-path": "^2.0.0" + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" }, "dependencies": { - "arr-diff": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", - "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", - "dev": true, - "requires": { - "arr-flatten": "^1.0.1" - } - }, - "array-unique": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", - "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", - "dev": true - }, - "braces": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", - "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", - "dev": true, - "requires": { - "expand-range": "^1.8.1", - "preserve": "^0.2.0", - "repeat-element": "^1.1.2" - } - }, - "expand-brackets": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", - "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", - "dev": true, - "requires": { - "is-posix-bracket": "^0.1.0" - } - }, - "extglob": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", - "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", - "dev": true, - "requires": { - "is-extglob": "^1.0.0" - } - }, - "is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", - "dev": true - }, - "is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", - "dev": true, - "requires": { - "is-extglob": "^1.0.0" - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - }, - "micromatch": { - "version": "2.3.11", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", - "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", "dev": true, "requires": { - "arr-diff": "^2.0.0", - "array-unique": "^0.2.1", - "braces": "^1.8.2", - "expand-brackets": "^0.1.4", - "extglob": "^0.3.1", - "filename-regex": "^2.0.0", - "is-extglob": "^1.0.0", - "is-glob": "^2.0.1", - "kind-of": "^3.0.2", - "normalize-path": "^2.0.1", - "object.omit": "^2.0.0", - "parse-glob": "^3.0.4", - "regex-cache": "^0.4.2" + "remove-trailing-separator": "^1.0.1" } } } }, - "archy": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", - "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", + "aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", "dev": true }, "arr-diff": { @@ -196,36 +285,23 @@ "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", "dev": true }, - "array-differ": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz", - "integrity": "sha1-7/UuN1gknTO+QCuLuOVkuytdQDE=", - "dev": true - }, - "array-each": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz", - "integrity": "sha1-p5SvDAWrF1KEbudTofIRoFugxE8=", - "dev": true - }, - "array-slice": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz", - "integrity": "sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==", - "dev": true - }, - "array-uniq": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", - "dev": true - }, "array-unique": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", "dev": true }, + "asn1.js": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", + "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", + "dev": true, + "requires": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, "assert": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz", @@ -233,6 +309,23 @@ "dev": true, "requires": { "util": "0.10.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", + "dev": true + }, + "util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", + "dev": true, + "requires": { + "inherits": "2.0.1" + } + } } }, "assign-symbols": { @@ -241,12 +334,6 @@ "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", "dev": true }, - "async": { - "version": "0.2.10", - "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz", - "integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E=", - "dev": true - }, "async-each": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", @@ -485,15 +572,14 @@ } }, "babel-loader": { - "version": "6.2.10", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-6.2.10.tgz", - "integrity": "sha1-re/CskIyDNXRXmWzHOoOixsC1LA=", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-7.1.2.tgz", + "integrity": "sha512-jRwlFbINAeyDStqK6Dd5YuY0k5YuzQUvlz2ZamuXrXmxav3pNqe9vfJ402+2G+OmlJSXxCOpB6Uz0INM7RQe2A==", "dev": true, "requires": { - "find-cache-dir": "^0.1.1", - "loader-utils": "^0.2.11", - "mkdirp": "^0.5.1", - "object-assign": "^4.0.1" + "find-cache-dir": "^1.0.0", + "loader-utils": "^1.0.2", + "mkdirp": "^0.5.1" } }, "babel-messages": { @@ -1168,27 +1254,33 @@ } }, "base64-js": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.2.1.tgz", - "integrity": "sha512-dwVUVIXsBZXwTuwnXI9RK8sBmgq09NDHzyR9SAph9eqk76gKK2JSQmZARC2zRC81JC2QTtxD0ARU5qTS25gIGw==", - "dev": true - }, - "beeper": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/beeper/-/beeper-1.1.1.tgz", - "integrity": "sha1-5tXqjF2tABMEpwsiY4RH9pyy+Ak=", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz", + "integrity": "sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw==", "dev": true }, "big.js": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz", - "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==", + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", "dev": true }, "binary-extensions": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.11.0.tgz", - "integrity": "sha1-RqoXUftqL5PuXmibsQh9SxTGwgU=", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.0.tgz", + "integrity": "sha512-EgmjVLMn22z7eGGv3kcnHwSnJXmFHjISTY9E/S5lIcTD3Oxw05QTcBLNkJFzcb3cNueUdF/IN4U+d78V0zO8Hw==", + "dev": true + }, + "bluebird": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.3.tgz", + "integrity": "sha512-/qKPUQlaW1OyR51WeCPBvRnAlnZFUJkCSG5HzGnuIqhgyJtF+T94lFnn33eiazjRm2LAHVy2guNnaq48X9SJuw==", + "dev": true + }, + "bn.js": { + "version": "4.11.8", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", + "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", "dev": true }, "brace-expansion": { @@ -1230,13 +1322,89 @@ } } }, + "brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", + "dev": true + }, + "browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "dev": true, + "requires": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "browserify-cipher": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", + "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", + "dev": true, + "requires": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" + } + }, + "browserify-des": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", + "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", + "dev": true, + "requires": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + }, + "dependencies": { + "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==", + "dev": true + } + } + }, + "browserify-rsa": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", + "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "randombytes": "^2.0.1" + } + }, + "browserify-sign": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz", + "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=", + "dev": true, + "requires": { + "bn.js": "^4.1.1", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.2", + "elliptic": "^6.0.0", + "inherits": "^2.0.1", + "parse-asn1": "^5.0.0" + } + }, "browserify-zlib": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz", - "integrity": "sha1-uzX4pRn2AOD6a4SFJByXnQFB+y0=", + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", + "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", "dev": true, "requires": { - "pako": "~0.2.0" + "pako": "~1.0.5" } }, "buffer": { @@ -1258,6 +1426,86 @@ } } }, + "buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", + "dev": true + }, + "buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", + "dev": true + }, + "builtin-status-codes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", + "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", + "dev": true + }, + "cacache": { + "version": "11.3.2", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-11.3.2.tgz", + "integrity": "sha512-E0zP4EPGDOaT2chM08Als91eYnf8Z+eH1awwwVsngUmgppfM5jjJ8l3z5vO5p5w/I3LsiXawb1sW0VY65pQABg==", + "dev": true, + "requires": { + "bluebird": "^3.5.3", + "chownr": "^1.1.1", + "figgy-pudding": "^3.5.1", + "glob": "^7.1.3", + "graceful-fs": "^4.1.15", + "lru-cache": "^5.1.1", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.2", + "ssri": "^6.0.1", + "unique-filename": "^1.1.1", + "y18n": "^4.0.0" + }, + "dependencies": { + "glob": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "dev": true, + "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" + } + }, + "graceful-fs": { + "version": "4.1.15", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz", + "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==", + "dev": true + }, + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "requires": { + "yallist": "^3.0.2" + } + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + } + } + }, "cache-base": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", @@ -1275,30 +1523,6 @@ "unset-value": "^1.0.0" } }, - "camelcase": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", - "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", - "dev": true - }, - "center-align": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", - "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", - "dev": true, - "requires": { - "align-text": "^0.1.3", - "lazy-cache": "^1.0.3" - }, - "dependencies": { - "lazy-cache": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", - "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", - "dev": true - } - } - }, "chalk": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", @@ -1313,39 +1537,61 @@ } }, "chokidar": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", - "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.2.tgz", + "integrity": "sha512-IwXUx0FXc5ibYmPC2XeEj5mpXoV66sR+t3jqu2NS2GYwCktt3KF1/Qqjws/NkegajBA4RbZ5+DDwlOiJsxDHEg==", "dev": true, "requires": { - "anymatch": "^1.3.0", - "async-each": "^1.0.0", - "fsevents": "^1.0.0", - "glob-parent": "^2.0.0", - "inherits": "^2.0.1", + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", "is-binary-path": "^1.0.0", - "is-glob": "^2.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", "path-is-absolute": "^1.0.0", - "readdirp": "^2.0.0" + "readdirp": "^2.2.1", + "upath": "^1.1.0" }, "dependencies": { - "is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", - "dev": true - }, "is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz", + "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", "dev": true, "requires": { - "is-extglob": "^1.0.0" + "is-extglob": "^2.1.1" } } } }, + "chownr": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.1.tgz", + "integrity": "sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g==", + "dev": true + }, + "chrome-trace-event": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.0.tgz", + "integrity": "sha512-xDbVgyfDTT2piup/h8dK/y4QZfJRSa73bw1WZ8b4XM1o7fsFubUVGYcE+1ANtOzJJELGpYoG2961z0Z6OAld9A==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, + "cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, "class-utils": { "version": "0.3.6", "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", @@ -1369,27 +1615,10 @@ } } }, - "cliui": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", - "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", - "dev": true, - "requires": { - "center-align": "^0.1.1", - "right-align": "^0.1.1", - "wordwrap": "0.0.2" - } - }, - "clone": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.3.tgz", - "integrity": "sha1-KY1+IjFmD0DAA8LtMUDezz9TCF8=", - "dev": true - }, - "clone-stats": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz", - "integrity": "sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE=", + "code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", "dev": true }, "collection-visit": { @@ -1402,10 +1631,25 @@ "object-visit": "^1.0.0" } }, - "color-support": { + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", - "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "commander": { + "version": "2.17.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz", + "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==", "dev": true }, "commondir": { @@ -1426,6 +1670,56 @@ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", "dev": true }, + "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" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "process-nextick-args": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", + "dev": true + }, + "readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "dev": true, + "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" + } + }, + "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==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, "console-browserify": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", @@ -1436,9 +1730,9 @@ } }, "constants-browserify": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-0.0.1.tgz", - "integrity": "sha1-kld9tSe6bEzwpFaNhLwDH0QeIfI=", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", + "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", "dev": true }, "convert-source-map": { @@ -1450,6 +1744,20 @@ "safe-buffer": "~5.1.1" } }, + "copy-concurrently": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", + "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", + "dev": true, + "requires": { + "aproba": "^1.1.1", + "fs-write-stream-atomic": "^1.0.8", + "iferr": "^0.1.5", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.0" + } + }, "copy-descriptor": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", @@ -1468,35 +1776,87 @@ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", "dev": true }, + "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" + } + }, + "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" + } + }, "crypto-browserify": { - "version": "3.2.8", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.2.8.tgz", - "integrity": "sha1-ubEdvm2WUd2IKgHmzEZ99xjs8Yk=", + "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": { - "pbkdf2-compat": "2.0.1", - "ripemd160": "0.2.0", - "sha.js": "2.2.6" + "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" } }, + "cyclist": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-0.2.2.tgz", + "integrity": "sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA=", + "dev": true + }, "date-now": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=", "dev": true }, - "dateformat": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-2.2.0.tgz", - "integrity": "sha1-QGXiATz5+5Ft39gu+1Bq1MZ2kGI=", - "dev": true - }, - "deap": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/deap/-/deap-1.0.1.tgz", - "integrity": "sha512-k75KYNZMvwAwes2xIPry/QTffXIchjD8QfABvvfTr80P85jv5ZcKqcoDo+vMe71nNnVnXYe8MA28weyqcf/DKw==", - "dev": true - }, "debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", @@ -1518,15 +1878,6 @@ "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", "dev": true }, - "defaults": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", - "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", - "dev": true, - "requires": { - "clone": "^1.0.2" - } - }, "define-property": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", @@ -1568,11 +1919,15 @@ } } }, - "deprecated": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/deprecated/-/deprecated-0.0.1.tgz", - "integrity": "sha1-+cmvVGSvoeepcUWKi97yqpTVuxk=", - "dev": true + "des.js": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz", + "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } }, "detect-file": { "version": "1.0.0", @@ -1589,19 +1944,104 @@ "repeating": "^2.0.0" } }, + "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" + } + }, "domain-browser": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.1.7.tgz", - "integrity": "sha1-hnqksJP6oF8d4IwG9NeyH9+GmLw=", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", + "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", "dev": true }, - "duplexer2": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.0.2.tgz", - "integrity": "sha1-xhTc9n4vsUmVqRcR5aYX6KYKMds=", + "duplexify": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", + "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", + "dev": true, + "requires": { + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" + }, + "dependencies": { + "end-of-stream": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", + "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", + "dev": true, + "requires": { + "once": "^1.4.0" + } + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "process-nextick-args": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", + "dev": true + }, + "readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "dev": true, + "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" + } + }, + "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==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "elliptic": { + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.1.tgz", + "integrity": "sha512-BsXLz5sqX8OHcsh7CqBMztyXARmGQ3LWPtGjJi6DiJHq5C/qvi9P3OqgswKSDftbu8+IoI/QDTAm2fFnQ9SZSQ==", "dev": true, "requires": { - "readable-stream": "~1.1.9" + "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" } }, "emojis-list": { @@ -1610,37 +2050,68 @@ "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", "dev": true }, - "end-of-stream": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-0.1.5.tgz", - "integrity": "sha1-jhdyBsPICDfYVjLouTWd/osvbq8=", - "dev": true, - "requires": { - "once": "~1.3.0" - } - }, "enhanced-resolve": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-0.9.1.tgz", - "integrity": "sha1-TW5omzcl+GCQknzMhs2fFjW4ni4=", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz", + "integrity": "sha512-F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng==", "dev": true, "requires": { "graceful-fs": "^4.1.2", - "memory-fs": "^0.2.0", - "tapable": "^0.1.8" + "memory-fs": "^0.4.0", + "tapable": "^1.0.0" }, "dependencies": { "graceful-fs": { - "version": "4.1.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "version": "4.1.15", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz", + "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", "dev": true }, "memory-fs": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.2.0.tgz", - "integrity": "sha1-8rslNovBIeORwlIN6Slpyu4KApA=", + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", + "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", + "dev": true, + "requires": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + }, + "process-nextick-args": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", "dev": true + }, + "readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "dev": true, + "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" + } + }, + "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==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } } } }, @@ -1659,6 +2130,31 @@ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", "dev": true }, + "eslint-scope": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.0.tgz", + "integrity": "sha512-1G6UTDi7Jc1ELFwnR58HV4fK9OQK4S6N985f166xqXxpjU6plxFISJa2Ba9KCQuFa8RCnj/lSFJbHo7UFDBnUA==", + "dev": true, + "requires": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + }, + "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.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", + "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", + "dev": true + }, "esutils": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", @@ -1666,11 +2162,36 @@ "dev": true }, "events": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", - "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.0.0.tgz", + "integrity": "sha512-Dc381HFWJzEOhQ+d8pkNon++bk9h6cdAoAj4iE6Q4y6xgTzySWXlKn05/TVNpjnfRqi/X0EpJEJohPjNI3zpVA==", "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" + } + }, + "execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "dev": true, + "requires": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, "expand-brackets": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", @@ -1706,105 +2227,15 @@ } } }, - "expand-range": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", - "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", - "dev": true, - "requires": { - "fill-range": "^2.1.0" - }, - "dependencies": { - "fill-range": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz", - "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", - "dev": true, - "requires": { - "is-number": "^2.1.0", - "isobject": "^2.0.0", - "randomatic": "^3.0.0", - "repeat-element": "^1.1.2", - "repeat-string": "^1.5.2" - }, - "dependencies": { - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true - }, - "randomatic": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.1.tgz", - "integrity": "sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw==", - "dev": true, - "requires": { - "is-number": "^4.0.0", - "kind-of": "^6.0.0", - "math-random": "^1.0.1" - }, - "dependencies": { - "is-number": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", - "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", - "dev": true - } - } - } - } - }, - "is-number": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", - "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - } - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dev": true, - "requires": { - "isarray": "1.0.0" - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "expand-tilde": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", - "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", + "expand-tilde": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", + "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", "dev": true, "requires": { "homedir-polyfill": "^1.0.1" } }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true - }, "extend-shallow": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", @@ -1891,21 +2322,22 @@ } } }, - "fancy-log": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.2.tgz", - "integrity": "sha1-9BEl49hPLn2JpD0G2VjI94vha+E=", - "dev": true, - "requires": { - "ansi-gray": "^0.1.1", - "color-support": "^1.1.3", - "time-stamp": "^1.0.0" - } - }, - "filename-regex": { + "fast-deep-equal": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", - "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", + "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", + "dev": true + }, + "fast-json-stable-stringify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", + "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", + "dev": true + }, + "figgy-pudding": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.1.tgz", + "integrity": "sha512-vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w==", "dev": true }, "fill-range": { @@ -1932,40 +2364,58 @@ } }, "find-cache-dir": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-0.1.1.tgz", - "integrity": "sha1-yN765XyKUqinhPnjHFfHQumToLk=", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-1.0.0.tgz", + "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=", "dev": true, "requires": { "commondir": "^1.0.1", - "mkdirp": "^0.5.1", - "pkg-dir": "^1.0.0" + "make-dir": "^1.0.0", + "pkg-dir": "^2.0.0" } }, - "find-index": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/find-index/-/find-index-0.1.1.tgz", - "integrity": "sha1-Z101iyyjiS15Whq0cjL4tuLg3eQ=", - "dev": true - }, "find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "dev": true, "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" + "locate-path": "^2.0.0" }, "dependencies": { - "path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "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": { - "pinkie-promise": "^2.0.0" + "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 } } }, @@ -1981,46 +2431,60 @@ "resolve-dir": "^1.0.1" } }, - "fined": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fined/-/fined-1.1.0.tgz", - "integrity": "sha1-s33IRLdqL15wgeiE98CuNE8VNHY=", + "flush-write-stream": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", + "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", "dev": true, "requires": { - "expand-tilde": "^2.0.2", - "is-plain-object": "^2.0.3", - "object.defaults": "^1.1.0", - "object.pick": "^1.2.0", - "parse-filepath": "^1.0.1" + "inherits": "^2.0.3", + "readable-stream": "^2.3.6" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "process-nextick-args": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", + "dev": true + }, + "readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "dev": true, + "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" + } + }, + "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==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } } }, - "first-chunk-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/first-chunk-stream/-/first-chunk-stream-1.0.0.tgz", - "integrity": "sha1-Wb+1DNkF9g18OUzT2ayqtOatk04=", - "dev": true - }, - "flagged-respawn": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.0.tgz", - "integrity": "sha1-Tnmumy6zi/hrO7Vr8+ClaqX8q9c=", - "dev": true - }, "for-in": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", "dev": true }, - "for-own": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", - "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", - "dev": true, - "requires": { - "for-in": "^1.0.1" - } - }, "fragment-cache": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", @@ -2030,6 +2494,80 @@ "map-cache": "^0.2.2" } }, + "from2": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", + "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "process-nextick-args": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", + "dev": true + }, + "readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "dev": true, + "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" + } + }, + "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==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "fs-write-stream-atomic": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", + "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "iferr": "^0.1.5", + "imurmurhash": "^0.1.4", + "readable-stream": "1 || 2" + }, + "dependencies": { + "graceful-fs": { + "version": "4.1.15", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz", + "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==", + "dev": true + } + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, "fsevents": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.7.tgz", @@ -2297,13 +2835,6 @@ "dev": true, "optional": true }, - "nan": { - "version": "2.12.1", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.12.1.tgz", - "integrity": "sha512-JY7V6lRkStKcKTvHO5NVSQRv+RV+FIL5pvDoLiAtSL9pKlC5x9PKQcZDsq7m4FO4d57mkhC6Z+QhAh3Jdk5JFw==", - "dev": true, - "optional": true - }, "needle": { "version": "2.2.4", "bundled": true, @@ -2585,13 +3116,19 @@ } } }, - "gaze": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/gaze/-/gaze-0.5.2.tgz", - "integrity": "sha1-QLcJU30k0dRXZ9takIaJ3+aaxE8=", + "get-caller-file": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", + "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", + "dev": true + }, + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", "dev": true, "requires": { - "globule": "~0.1.0" + "pump": "^3.0.0" } }, "get-value": { @@ -2600,125 +3137,14 @@ "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", "dev": true }, - "glob": { - "version": "4.5.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-4.5.3.tgz", - "integrity": "sha1-xstz0yJsHv7wTePFbQEvAzd+4V8=", - "dev": true, - "requires": { - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^2.0.1", - "once": "^1.3.0" - } - }, - "glob-base": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", - "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", - "dev": true, - "requires": { - "glob-parent": "^2.0.0", - "is-glob": "^2.0.0" - }, - "dependencies": { - "is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", - "dev": true - }, - "is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", - "dev": true, - "requires": { - "is-extglob": "^1.0.0" - } - } - } - }, "glob-parent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", - "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", - "dev": true, - "requires": { - "is-glob": "^2.0.0" - }, - "dependencies": { - "is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", - "dev": true - }, - "is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", - "dev": true, - "requires": { - "is-extglob": "^1.0.0" - } - } - } - }, - "glob-stream": { - "version": "3.1.18", - "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-3.1.18.tgz", - "integrity": "sha1-kXCl8St5Awb9/lmPMT+PeVT9FDs=", - "dev": true, - "requires": { - "glob": "^4.3.1", - "glob2base": "^0.0.12", - "minimatch": "^2.0.1", - "ordered-read-streams": "^0.1.0", - "through2": "^0.6.1", - "unique-stream": "^1.0.0" - }, - "dependencies": { - "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" - } - }, - "through2": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", - "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", - "dev": true, - "requires": { - "readable-stream": ">=1.0.33-1 <1.1.0-0", - "xtend": ">=4.0.0 <4.1.0-0" - } - } - } - }, - "glob-watcher": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-0.0.6.tgz", - "integrity": "sha1-uVtKjfdLOcgymLDAXJeLTZo7cQs=", - "dev": true, - "requires": { - "gaze": "^0.5.1" - } - }, - "glob2base": { - "version": "0.0.12", - "resolved": "https://registry.npmjs.org/glob2base/-/glob2base-0.0.12.tgz", - "integrity": "sha1-nUGbPijxLoOjYhZKJ3BVkiycDVY=", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", "dev": true, "requires": { - "find-index": "^0.1.1" + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" } }, "global-modules": { @@ -2751,211 +3177,15 @@ "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", "dev": true }, - "globule": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/globule/-/globule-0.1.0.tgz", - "integrity": "sha1-2cjt3h2nnRJaFRt5UzuXhnY0auU=", - "dev": true, - "requires": { - "glob": "~3.1.21", - "lodash": "~1.0.1", - "minimatch": "~0.2.11" - }, - "dependencies": { - "glob": { - "version": "3.1.21", - "resolved": "https://registry.npmjs.org/glob/-/glob-3.1.21.tgz", - "integrity": "sha1-0p4KBV3qUTj00H7UDomC6DwgZs0=", - "dev": true, - "requires": { - "graceful-fs": "~1.2.0", - "inherits": "1", - "minimatch": "~0.2.11" - } - }, - "graceful-fs": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz", - "integrity": "sha1-FaSAaldUfLLS2/J/QuiajDRRs2Q=", - "dev": true - }, - "inherits": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-1.0.2.tgz", - "integrity": "sha1-ykMJ2t7mtUzAuNJH6NfHoJdb3Js=", - "dev": true - }, - "lodash": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-1.0.2.tgz", - "integrity": "sha1-j1dWDIO1n8JwvT1WG2kAQ0MOJVE=", - "dev": true - }, - "minimatch": { - "version": "0.2.14", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz", - "integrity": "sha1-x054BXT2PG+aCQ6Q775u9TpqdWo=", - "dev": true, - "requires": { - "lru-cache": "2", - "sigmund": "~1.0.0" - } - } - } - }, - "glogg": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.0.tgz", - "integrity": "sha1-f+DxmfV6yQbPUS/urY+Q7kooT8U=", - "dev": true, - "requires": { - "sparkles": "^1.0.0" - } - }, - "graceful-fs": { - "version": "3.0.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.11.tgz", - "integrity": "sha1-dhPHeKGv6mLyXGMKCG1/Osu92Bg=", - "dev": true, - "requires": { - "natives": "^1.1.0" - } - }, - "gulp": { - "version": "3.9.1", - "resolved": "https://registry.npmjs.org/gulp/-/gulp-3.9.1.tgz", - "integrity": "sha1-VxzkWSjdQK9lFPxAEYZgFsE4RbQ=", - "dev": true, - "requires": { - "archy": "^1.0.0", - "chalk": "^1.0.0", - "deprecated": "^0.0.1", - "gulp-util": "^3.0.0", - "interpret": "^1.0.0", - "liftoff": "^2.1.0", - "minimist": "^1.1.0", - "orchestrator": "^0.3.0", - "pretty-hrtime": "^1.0.0", - "semver": "^4.1.0", - "tildify": "^1.0.0", - "v8flags": "^2.0.2", - "vinyl-fs": "^0.3.0" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - } - } - }, - "gulp-uglify": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/gulp-uglify/-/gulp-uglify-1.5.4.tgz", - "integrity": "sha1-UkeI2HZm0J+dDCH7IXf5ADmmWMk=", - "dev": true, - "requires": { - "deap": "^1.0.0", - "fancy-log": "^1.0.0", - "gulp-util": "^3.0.0", - "isobject": "^2.0.0", - "through2": "^2.0.0", - "uglify-js": "2.6.4", - "uglify-save-license": "^0.4.1", - "vinyl-sourcemaps-apply": "^0.2.0" - }, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dev": true, - "requires": { - "isarray": "1.0.0" - } - } - } - }, - "gulp-util": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/gulp-util/-/gulp-util-3.0.8.tgz", - "integrity": "sha1-AFTh50RQLifATBh8PsxQXdVLu08=", - "dev": true, - "requires": { - "array-differ": "^1.0.0", - "array-uniq": "^1.0.2", - "beeper": "^1.0.0", - "chalk": "^1.0.0", - "dateformat": "^2.0.0", - "fancy-log": "^1.1.0", - "gulplog": "^1.0.0", - "has-gulplog": "^0.1.0", - "lodash._reescape": "^3.0.0", - "lodash._reevaluate": "^3.0.0", - "lodash._reinterpolate": "^3.0.0", - "lodash.template": "^3.0.0", - "minimist": "^1.1.0", - "multipipe": "^0.1.2", - "object-assign": "^3.0.0", - "replace-ext": "0.0.1", - "through2": "^2.0.0", - "vinyl": "^0.5.0" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - }, - "object-assign": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz", - "integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I=", - "dev": true - } - } - }, - "gulplog": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz", - "integrity": "sha1-4oxNRdBey77YGDY86PnFkmIp/+U=", - "dev": true, - "requires": { - "glogg": "^1.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=", + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", "dev": true, "requires": { "ansi-regex": "^2.0.0" } }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "has-gulplog": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/has-gulplog/-/has-gulplog-0.1.0.tgz", - "integrity": "sha1-ZBTIKRNpfaUVkDl9r7EvIpZ4Ec4=", - "dev": true, - "requires": { - "sparkles": "^1.0.0" - } - }, "has-value": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", @@ -2988,6 +3218,37 @@ } } }, + "hash-base": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", + "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "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" + } + }, "home-or-tmp": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", @@ -2999,34 +3260,66 @@ } }, "homedir-polyfill": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz", - "integrity": "sha1-TCu8inWJmP7r9e1oWA921GdotLw=", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", + "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", "dev": true, "requires": { "parse-passwd": "^1.0.0" } }, - "http-browserify": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/http-browserify/-/http-browserify-1.7.0.tgz", - "integrity": "sha1-M3la3nLfiKz7/TZ3PO/tp2RzWyA=", - "dev": true, - "requires": { - "Base64": "~0.2.0", - "inherits": "~2.0.1" - } - }, "https-browserify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-0.0.0.tgz", - "integrity": "sha1-s//f5zSyo9Sp79WOhlTJH86G6v0=", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", + "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", "dev": true }, "ieee754": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.8.tgz", - "integrity": "sha1-vjPUCsEO8ZJnAfbwii2G+/0a0+Q=", + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.12.tgz", + "integrity": "sha512-GguP+DRY+pJ3soyIiGPTvdiVXjZ+DbXOxGpXn3eMvNW4x4irjqXm4wHKscC+TfxSJ0yw/S1F24tqdMNsMZTiLA==", + "dev": true + }, + "iferr": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", + "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", + "dev": true + }, + "import-local": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz", + "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==", + "dev": true, + "requires": { + "pkg-dir": "^3.0.0", + "resolve-cwd": "^2.0.0" + }, + "dependencies": { + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "dev": true, + "requires": { + "find-up": "^3.0.0" + } + } + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", "dev": true }, "indexof": { @@ -3058,9 +3351,9 @@ "dev": true }, "interpret": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz", - "integrity": "sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ=", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.2.0.tgz", + "integrity": "sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw==", "dev": true }, "invariant": { @@ -3072,15 +3365,11 @@ "loose-envify": "^1.0.0" } }, - "is-absolute": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", - "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", - "dev": true, - "requires": { - "is-relative": "^1.0.0", - "is-windows": "^1.0.1" - } + "invert-kv": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", + "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==", + "dev": true }, "is-accessor-descriptor": { "version": "0.1.6", @@ -3156,21 +3445,6 @@ } } }, - "is-dotfile": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", - "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=", - "dev": true - }, - "is-equal-shallow": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", - "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", - "dev": true, - "requires": { - "is-primitive": "^2.0.0" - } - }, "is-extendable": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", @@ -3192,6 +3466,12 @@ "number-is-nan": "^1.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=", + "dev": true + }, "is-glob": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", @@ -3230,40 +3510,10 @@ "isobject": "^3.0.1" } }, - "is-posix-bracket": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", - "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=", - "dev": true - }, - "is-primitive": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", - "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", - "dev": true - }, - "is-relative": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", - "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", - "dev": true, - "requires": { - "is-unc-path": "^1.0.0" - } - }, - "is-unc-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", - "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", - "dev": true, - "requires": { - "unc-path-regex": "^0.1.2" - } - }, - "is-utf8": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", "dev": true }, "is-windows": { @@ -3302,10 +3552,16 @@ "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", "dev": true }, - "json-loader": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/json-loader/-/json-loader-0.5.7.tgz", - "integrity": "sha512-QLPs8Dj7lnf3e3QYS1zkCo+4ZwqOiF9d/nZnYozTISxXWCfNs9yuky5rJw4/W34s7POaNlbZmQGaB5NiXCbP4w==", + "json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true + }, + "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==", "dev": true }, "json5": { @@ -3320,183 +3576,63 @@ "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", "dev": true }, - "liftoff": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-2.5.0.tgz", - "integrity": "sha1-IAkpG7Mc6oYbvxCnwVooyvdcMew=", + "lcid": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", + "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", "dev": true, "requires": { - "extend": "^3.0.0", - "findup-sync": "^2.0.0", - "fined": "^1.0.1", - "flagged-respawn": "^1.0.0", - "is-plain-object": "^2.0.4", - "object.map": "^1.0.0", - "rechoir": "^0.6.2", - "resolve": "^1.1.7" + "invert-kv": "^2.0.0" } }, + "loader-runner": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", + "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==", + "dev": true + }, "loader-utils": { - "version": "0.2.17", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz", - "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz", + "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==", "dev": true, "requires": { - "big.js": "^3.1.3", + "big.js": "^5.2.2", "emojis-list": "^2.0.0", - "json5": "^0.5.0", - "object-assign": "^4.0.1" + "json5": "^1.0.1" }, "dependencies": { "json5": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", - "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", "dev": true } } }, - "lodash": { - "version": "4.17.11", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", - "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==", - "dev": true - }, - "lodash._basecopy": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz", - "integrity": "sha1-jaDmqHbPNEwK2KVIghEd08XHyjY=", - "dev": true - }, - "lodash._basetostring": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz", - "integrity": "sha1-0YYdh3+CSlL2aYMtyvPuFVZqB9U=", - "dev": true - }, - "lodash._basevalues": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._basevalues/-/lodash._basevalues-3.0.0.tgz", - "integrity": "sha1-W3dXYoAr3j0yl1A+JjAIIP32Ybc=", - "dev": true - }, - "lodash._getnative": { - "version": "3.9.1", - "resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz", - "integrity": "sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=", - "dev": true - }, - "lodash._isiterateecall": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz", - "integrity": "sha1-UgOte6Ql+uhCRg5pbbnPPmqsBXw=", - "dev": true - }, - "lodash._reescape": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._reescape/-/lodash._reescape-3.0.0.tgz", - "integrity": "sha1-Kx1vXf4HyKNVdT5fJ/rH8c3hYWo=", - "dev": true - }, - "lodash._reevaluate": { + "locate-path": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._reevaluate/-/lodash._reevaluate-3.0.0.tgz", - "integrity": "sha1-WLx0xAZklTrgsSTYBpltrKQx4u0=", - "dev": true - }, - "lodash._reinterpolate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", - "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=", - "dev": true - }, - "lodash._root": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/lodash._root/-/lodash._root-3.0.1.tgz", - "integrity": "sha1-+6HEUkwZ7ppfgTa0YJ8BfPTe1pI=", - "dev": true - }, - "lodash.clone": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.clone/-/lodash.clone-4.5.0.tgz", - "integrity": "sha1-GVhwRQ9aExkkeN9Lw9I9LeoZB7Y=", - "dev": true - }, - "lodash.escape": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/lodash.escape/-/lodash.escape-3.2.0.tgz", - "integrity": "sha1-mV7g3BjBtIzJLv+ucaEKq1tIdpg=", - "dev": true, - "requires": { - "lodash._root": "^3.0.0" - } - }, - "lodash.isarguments": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", - "integrity": "sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=", - "dev": true - }, - "lodash.isarray": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz", - "integrity": "sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U=", - "dev": true - }, - "lodash.keys": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz", - "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", "dev": true, "requires": { - "lodash._getnative": "^3.0.0", - "lodash.isarguments": "^3.0.0", - "lodash.isarray": "^3.0.0" + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" } }, - "lodash.restparam": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/lodash.restparam/-/lodash.restparam-3.6.1.tgz", - "integrity": "sha1-k2pOMJ7zMKdkXtQUWYbIWuWyCAU=", - "dev": true - }, - "lodash.some": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.some/-/lodash.some-4.6.0.tgz", - "integrity": "sha1-G7nzFO9ri63tE7VJFpsqlF62jk0=", - "dev": true - }, - "lodash.template": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-3.6.2.tgz", - "integrity": "sha1-+M3sxhaaJVvpCYrosMU9N4kx0U8=", - "dev": true, - "requires": { - "lodash._basecopy": "^3.0.0", - "lodash._basetostring": "^3.0.0", - "lodash._basevalues": "^3.0.0", - "lodash._isiterateecall": "^3.0.0", - "lodash._reinterpolate": "^3.0.0", - "lodash.escape": "^3.0.0", - "lodash.keys": "^3.0.0", - "lodash.restparam": "^3.0.0", - "lodash.templatesettings": "^3.0.0" - } - }, - "lodash.templatesettings": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-3.1.1.tgz", - "integrity": "sha1-+zB4RHU7Zrnxr6VOJix0UwfbqOU=", - "dev": true, - "requires": { - "lodash._reinterpolate": "^3.0.0", - "lodash.escape": "^3.0.0" - } - }, - "longest": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", - "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", + "lodash": { + "version": "4.17.11", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", + "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==", "dev": true }, "loose-envify": { @@ -3508,19 +3644,28 @@ "js-tokens": "^3.0.0" } }, - "lru-cache": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz", - "integrity": "sha1-bUUk6LlV+V1PW1iFHOId1y+06VI=", + "make-dir": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", + "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", + "dev": true, + "requires": { + "pify": "^3.0.0" + } + }, + "mamacro": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/mamacro/-/mamacro-0.0.3.tgz", + "integrity": "sha512-qMEwh+UujcQ+kbz3T6V+wAmO2U8veoq2w+3wY8MquqwVA3jChfwY+Tk52GZKDfACEPjuZ7r2oJLejwpt8jtwTA==", "dev": true }, - "make-iterator": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz", - "integrity": "sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==", + "map-age-cleaner": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", + "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", "dev": true, "requires": { - "kind-of": "^6.0.2" + "p-defer": "^1.0.0" } }, "map-cache": { @@ -3538,54 +3683,36 @@ "object-visit": "^1.0.0" } }, - "math-random": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.4.tgz", - "integrity": "sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A==", - "dev": true - }, - "memory-fs": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.3.0.tgz", - "integrity": "sha1-e8xrYp46Q+hx1+Kaymrop/FcuyA=", + "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": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" }, "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "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==", "dev": true - }, - "readable-stream": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", - "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~1.0.6", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.0.3", - "util-deprecate": "~1.0.1" - } - }, - "string_decoder": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", - "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } } } }, + "mem": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/mem/-/mem-4.1.0.tgz", + "integrity": "sha512-I5u6Q1x7wxO0kdOpYBB28xueHADYps5uty/zg936CiG8NTe5sJL8EjrCuLneuDW3PlMdZBGDIn8BirEVdovZvg==", + "dev": true, + "requires": { + "map-age-cleaner": "^0.1.1", + "mimic-fn": "^1.0.0", + "p-is-promise": "^2.0.0" + } + }, "micromatch": { "version": "3.1.10", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", @@ -3607,21 +3734,78 @@ "to-regex": "^3.0.2" } }, - "minimatch": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.10.tgz", - "integrity": "sha1-jQh8OcazjAAbl/ynzm0OHoCvusc=", + "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": { - "brace-expansion": "^1.0.0" + "bn.js": "^4.0.0", + "brorand": "^1.0.1" } }, + "mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", + "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 + }, "minimist": { "version": "0.0.8", "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", "dev": true }, + "mississippi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", + "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", + "dev": true, + "requires": { + "concat-stream": "^1.5.0", + "duplexify": "^3.4.2", + "end-of-stream": "^1.1.0", + "flush-write-stream": "^1.0.0", + "from2": "^2.1.0", + "parallel-transform": "^1.1.0", + "pump": "^3.0.0", + "pumpify": "^1.3.3", + "stream-each": "^1.1.0", + "through2": "^2.0.0" + }, + "dependencies": { + "end-of-stream": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", + "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", + "dev": true, + "requires": { + "once": "^1.4.0" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1" + } + } + } + }, "mixin-deep": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", @@ -3652,20 +3836,32 @@ "minimist": "0.0.8" } }, + "move-concurrently": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", + "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", + "dev": true, + "requires": { + "aproba": "^1.1.1", + "copy-concurrently": "^1.0.0", + "fs-write-stream-atomic": "^1.0.8", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.3" + } + }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true }, - "multipipe": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/multipipe/-/multipipe-0.1.2.tgz", - "integrity": "sha1-Ko8t33Du1WTf8tV/HhoTfZ8FB4s=", + "nan": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.12.1.tgz", + "integrity": "sha512-JY7V6lRkStKcKTvHO5NVSQRv+RV+FIL5pvDoLiAtSL9pKlC5x9PKQcZDsq7m4FO4d57mkhC6Z+QhAh3Jdk5JFw==", "dev": true, - "requires": { - "duplexer2": "0.0.2" - } + "optional": true }, "nanomatch": { "version": "1.2.13", @@ -3686,50 +3882,117 @@ "to-regex": "^3.0.1" } }, - "natives": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/natives/-/natives-1.1.6.tgz", - "integrity": "sha512-6+TDFewD4yxY14ptjKaS63GVdtKiES1pTPyxn9Jb0rBqPMZ7VcCiooEhPNsr+mqHtMGxa/5c/HhcC4uPEUw/nA==", + "neo-async": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.0.tgz", + "integrity": "sha512-MFh0d/Wa7vkKO3Y3LlacqAEeHK0mckVqzDieUKTT+KGxi+zIpeVsFxymkIiRpbpDziHc290Xr9A1O4Om7otoRA==", + "dev": true + }, + "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-libs-browser": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-0.6.0.tgz", - "integrity": "sha1-JEgG1E0xngSLyGB7XMTq+aKdLjw=", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.0.tgz", + "integrity": "sha512-5MQunG/oyOaBdttrL40dA7bUfPORLRWMUJLQtMg7nluxUvk5XwnLdL9twQHFAjRx/y7mIMkLKT9++qPbbk6BZA==", "dev": true, "requires": { "assert": "^1.1.1", - "browserify-zlib": "~0.1.4", - "buffer": "^4.9.0", + "browserify-zlib": "^0.2.0", + "buffer": "^4.3.0", "console-browserify": "^1.1.0", - "constants-browserify": "0.0.1", - "crypto-browserify": "~3.2.6", + "constants-browserify": "^1.0.0", + "crypto-browserify": "^3.11.0", "domain-browser": "^1.1.1", - "events": "^1.0.0", - "http-browserify": "^1.3.2", - "https-browserify": "0.0.0", - "os-browserify": "~0.1.2", + "events": "^3.0.0", + "https-browserify": "^1.0.0", + "os-browserify": "^0.3.0", "path-browserify": "0.0.0", - "process": "^0.11.0", + "process": "^0.11.10", "punycode": "^1.2.4", - "querystring-es3": "~0.2.0", - "readable-stream": "^1.1.13", - "stream-browserify": "^1.0.0", - "string_decoder": "~0.10.25", - "timers-browserify": "^1.0.1", + "querystring-es3": "^0.2.0", + "readable-stream": "^2.3.3", + "stream-browserify": "^2.0.1", + "stream-http": "^2.7.2", + "string_decoder": "^1.0.0", + "timers-browserify": "^2.0.4", "tty-browserify": "0.0.0", - "url": "~0.10.1", - "util": "~0.10.3", + "url": "^0.11.0", + "util": "^0.11.0", "vm-browserify": "0.0.4" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "process-nextick-args": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", + "dev": true + }, + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true + }, + "readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "dev": true, + "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" + }, + "dependencies": { + "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==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "string_decoder": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.2.0.tgz", + "integrity": "sha512-6YqyX6ZWEYguAxgZzHGL7SsCeGx3V2TtOTqZz1xSTSWnqsbWwbptafNyvf/ACquZUXV3DANr5BDIwNYe1mN42w==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } } }, "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", "dev": true, "requires": { - "remove-trailing-separator": "^1.0.1" + "path-key": "^2.0.0" } }, "number-is-nan": { @@ -3784,49 +4047,6 @@ "isobject": "^3.0.0" } }, - "object.defaults": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz", - "integrity": "sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8=", - "dev": true, - "requires": { - "array-each": "^1.0.1", - "array-slice": "^1.0.0", - "for-own": "^1.0.0", - "isobject": "^3.0.0" - } - }, - "object.map": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz", - "integrity": "sha1-z4Plncj8wK1fQlDh94s7gb2AHTc=", - "dev": true, - "requires": { - "for-own": "^1.0.0", - "make-iterator": "^1.0.0" - } - }, - "object.omit": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", - "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", - "dev": true, - "requires": { - "for-own": "^0.1.4", - "is-extendable": "^0.1.1" - }, - "dependencies": { - "for-own": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", - "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", - "dev": true, - "requires": { - "for-in": "^1.0.1" - } - } - } - }, "object.pick": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", @@ -3845,37 +4065,10 @@ "wrappy": "1" } }, - "optimist": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", - "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", - "dev": true, - "requires": { - "minimist": "~0.0.1", - "wordwrap": "~0.0.2" - } - }, - "orchestrator": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/orchestrator/-/orchestrator-0.3.8.tgz", - "integrity": "sha1-FOfp4nZPcxX7rBhOUGx6pt+UrX4=", - "dev": true, - "requires": { - "end-of-stream": "~0.1.5", - "sequencify": "~0.0.7", - "stream-consume": "~0.1.0" - } - }, - "ordered-read-streams": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-0.1.0.tgz", - "integrity": "sha1-/VZamvjrRHO6abbtijQ1LLVS8SY=", - "dev": true - }, "os-browserify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.1.2.tgz", - "integrity": "sha1-ScoCk+CxlZCl9d4Qx/JlphfY/lQ=", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", + "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", "dev": true }, "os-homedir": { @@ -3884,58 +4077,134 @@ "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", "dev": true }, + "os-locale": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz", + "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==", + "dev": true, + "requires": { + "execa": "^1.0.0", + "lcid": "^2.0.0", + "mem": "^4.0.0" + } + }, "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=", "dev": true }, - "pako": { - "version": "0.2.9", - "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", - "integrity": "sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU=", + "p-defer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", + "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=", "dev": true }, - "parse-filepath": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz", - "integrity": "sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE=", + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "dev": true + }, + "p-is-promise": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.0.0.tgz", + "integrity": "sha512-pzQPhYMCAgLAKPWD2jC3Se9fEfrD9npNos0y150EeqZll7akhEgGhTW/slB6lHku8AvYGiJ+YJ5hfHKePPgFWg==", + "dev": true + }, + "p-limit": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.1.0.tgz", + "integrity": "sha512-NhURkNcrVB+8hNfLuysU8enY5xn2KXphsHBaC2YmRNTZRc7RWusw6apSpdEj3jo4CMb6W9nrF6tTnsJsJeyu6g==", "dev": true, "requires": { - "is-absolute": "^1.0.0", - "map-cache": "^0.2.0", - "path-root": "^0.1.1" + "p-try": "^2.0.0" } }, - "parse-glob": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", - "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", + "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==", "dev": true, "requires": { - "glob-base": "^0.3.0", - "is-dotfile": "^1.0.0", - "is-extglob": "^1.0.0", - "is-glob": "^2.0.0" + "p-limit": "^2.0.0" + } + }, + "p-try": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.0.0.tgz", + "integrity": "sha512-hMp0onDKIajHfIkdRk3P4CdCmErkYAxxDtP3Wx/4nZ3aGlau2VKh3mZpcuFkH27WQkL/3WBCPOktzA9ZOAnMQQ==", + "dev": true + }, + "pako": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.8.tgz", + "integrity": "sha512-6i0HVbUfcKaTv+EG8ZTr75az7GFXcLYk9UyLEg7Notv/Ma+z/UG3TCoz6GiNeOrn1E/e63I0X/Hpw18jHOTUnA==", + "dev": true + }, + "parallel-transform": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.1.0.tgz", + "integrity": "sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY=", + "dev": true, + "requires": { + "cyclist": "~0.2.2", + "inherits": "^2.0.3", + "readable-stream": "^2.1.5" }, "dependencies": { - "is-extglob": { + "isarray": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", "dev": true }, - "is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "process-nextick-args": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", + "dev": true + }, + "readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "dev": true, + "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" + } + }, + "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==", "dev": true, "requires": { - "is-extglob": "^1.0.0" + "safe-buffer": "~5.1.0" } } } }, + "parse-asn1": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.4.tgz", + "integrity": "sha512-Qs5duJcuvNExRfFZ99HDD3z4mAi3r9Wl/FOjEOijlxwCZs7E7mW2vjTpgQ4J8LpTF8x5v+1Vn5UQFejmWT11aw==", + "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-passwd": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", @@ -3954,61 +4223,56 @@ "integrity": "sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo=", "dev": true }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", + "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 + }, "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=", "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-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", "dev": true }, - "path-root": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz", - "integrity": "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=", + "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": { - "path-root-regex": "^0.1.0" + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" } }, - "path-root-regex": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz", - "integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0=", - "dev": true - }, - "pbkdf2-compat": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pbkdf2-compat/-/pbkdf2-compat-2.0.1.tgz", - "integrity": "sha1-tuDI+plJTZTgURV1gCpZpcFC8og=", - "dev": true - }, - "pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", "dev": true }, - "pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "dev": true, - "requires": { - "pinkie": "^2.0.0" - } - }, "pkg-dir": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", - "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", + "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", "dev": true, "requires": { - "find-up": "^1.0.0" + "find-up": "^2.1.0" } }, "posix-character-classes": { @@ -4017,18 +4281,6 @@ "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", "dev": true }, - "preserve": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", - "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", - "dev": true - }, - "pretty-hrtime": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", - "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=", - "dev": true - }, "private": { "version": "0.1.8", "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", @@ -4047,6 +4299,12 @@ "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=", "dev": true }, + "promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", + "dev": true + }, "prop-types": { "version": "15.7.2", "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", @@ -4075,10 +4333,107 @@ "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", "dev": true }, + "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": { + "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==", + "dev": true + } + } + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + }, + "dependencies": { + "end-of-stream": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", + "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", + "dev": true, + "requires": { + "once": "^1.4.0" + }, + "dependencies": { + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1" + } + } + } + } + } + }, + "pumpify": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", + "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", + "dev": true, + "requires": { + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" + }, + "dependencies": { + "end-of-stream": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", + "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", + "dev": true, + "requires": { + "once": "^1.4.0" + }, + "dependencies": { + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1" + } + } + } + }, + "pump": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + } + } + }, "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", "dev": true }, "querystring": { @@ -4093,6 +4448,25 @@ "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", "dev": true }, + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "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" + } + }, "react": { "version": "16.8.2", "resolved": "https://registry.npmjs.org/react/-/react-16.8.2.tgz", @@ -4136,21 +4510,20 @@ } }, "readdirp": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz", - "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "minimatch": "^3.0.2", - "readable-stream": "^2.0.2", - "set-immediate-shim": "^1.0.1" + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" }, "dependencies": { "graceful-fs": { - "version": "4.1.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "version": "4.1.15", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz", + "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==", "dev": true }, "isarray": { @@ -4159,34 +4532,31 @@ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", "dev": true }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } + "process-nextick-args": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", + "dev": true }, "readable-stream": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", - "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "dev": true, "requires": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", "isarray": "~1.0.0", - "process-nextick-args": "~1.0.6", + "process-nextick-args": "~2.0.0", "safe-buffer": "~5.1.1", - "string_decoder": "~1.0.3", + "string_decoder": "~1.1.1", "util-deprecate": "~1.0.1" } }, "string_decoder": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", - "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "requires": { "safe-buffer": "~5.1.0" @@ -4194,15 +4564,6 @@ } } }, - "rechoir": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", - "dev": true, - "requires": { - "resolve": "^1.1.6" - } - }, "regenerate": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz", @@ -4226,15 +4587,6 @@ "private": "^0.1.6" } }, - "regex-cache": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", - "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", - "dev": true, - "requires": { - "is-equal-shallow": "^0.1.3" - } - }, "regex-not": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", @@ -4306,19 +4658,25 @@ "is-finite": "^1.0.0" } }, - "replace-ext": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz", - "integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=", + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", "dev": true }, - "resolve": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.8.1.tgz", - "integrity": "sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==", + "require-main-filename": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", + "dev": true + }, + "resolve-cwd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", + "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", "dev": true, "requires": { - "path-parse": "^1.0.5" + "resolve-from": "^3.0.0" } }, "resolve-dir": { @@ -4331,6 +4689,12 @@ "global-modules": "^1.0.0" } }, + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", + "dev": true + }, "resolve-url": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", @@ -4343,20 +4707,58 @@ "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", "dev": true }, - "right-align": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", - "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", + "rimraf": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", "dev": true, "requires": { - "align-text": "^0.1.1" + "glob": "^7.1.3" + }, + "dependencies": { + "glob": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "dev": true, + "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" + } + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + } } }, "ripemd160": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-0.2.0.tgz", - "integrity": "sha1-K/GYveFnys+lHAqSjoS2i74XH84=", - "dev": true + "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" + } + }, + "run-queue": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", + "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", + "dev": true, + "requires": { + "aproba": "^1.1.1" + } }, "safe-buffer": { "version": "5.1.1", @@ -4383,22 +4785,33 @@ "object-assign": "^4.1.1" } }, + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + }, "semver": { - "version": "4.3.6", - "resolved": "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz", - "integrity": "sha1-MAvG4OhjdPe6YQaLWx7NV/xlMto=", + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz", + "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==", "dev": true }, - "sequencify": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/sequencify/-/sequencify-0.0.7.tgz", - "integrity": "sha1-kM/xnQLgcCf9dn9erT57ldHnOAw=", + "serialize-javascript": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.6.1.tgz", + "integrity": "sha512-A5MOagrPFga4YaKQSWHryl7AXvbQkEqpw4NNYMTNYUNV51bA8ABHgYFpqKx+YFFrw59xMV1qGH1R4AgoNIVgCw==", "dev": true }, - "set-immediate-shim": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", - "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", "dev": true }, "set-value": { @@ -4424,16 +4837,41 @@ } } }, + "setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", + "dev": true + }, "sha.js": { - "version": "2.2.6", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.2.6.tgz", - "integrity": "sha1-F93t3F9yL7ZlAWWIlUYZd4ZzFbo=", + "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 }, - "sigmund": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", - "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=", + "signal-exit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", "dev": true }, "slash": { @@ -4550,9 +4988,9 @@ } }, "source-list-map": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-0.1.8.tgz", - "integrity": "sha1-xVCyq1Qn9rPyH1r+rYjE9Vh7IQY=", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", + "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", "dev": true }, "source-map": { @@ -4589,12 +5027,6 @@ "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", "dev": true }, - "sparkles": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.0.tgz", - "integrity": "sha1-Gsu/tZJDbRC76PeFt8xvgoFQEsM=", - "dev": true - }, "split-string": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", @@ -4604,6 +5036,15 @@ "extend-shallow": "^3.0.0" } }, + "ssri": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", + "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", + "dev": true, + "requires": { + "figgy-pudding": "^3.5.1" + } + }, "static-extend": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", @@ -4626,21 +5067,167 @@ } }, "stream-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-1.0.0.tgz", - "integrity": "sha1-v5tKv7QrJ011FHnkTg/yZWtvEZM=", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", + "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", "dev": true, "requires": { "inherits": "~2.0.1", - "readable-stream": "^1.0.27-1" + "readable-stream": "^2.0.2" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "process-nextick-args": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", + "dev": true + }, + "readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "dev": true, + "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" + } + }, + "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==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } } }, - "stream-consume": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/stream-consume/-/stream-consume-0.1.1.tgz", - "integrity": "sha512-tNa3hzgkjEP7XbCkbRXe1jpg+ievoa0O4SCFlMOYEscGSS4JJsckGL8swUyAa/ApGU3Ae4t6Honor4HhL+tRyg==", + "stream-each": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", + "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "stream-shift": "^1.0.0" + }, + "dependencies": { + "end-of-stream": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", + "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", + "dev": true, + "requires": { + "once": "^1.4.0" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1" + } + } + } + }, + "stream-http": { + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", + "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", + "dev": true, + "requires": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.3.6", + "to-arraybuffer": "^1.0.0", + "xtend": "^4.0.0" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "process-nextick-args": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", + "dev": true + }, + "readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "dev": true, + "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" + } + }, + "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==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "stream-shift": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", + "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=", "dev": true }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, "string_decoder": { "version": "0.10.31", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", @@ -4656,15 +5243,11 @@ "ansi-regex": "^2.0.0" } }, - "strip-bom": { + "strip-eof": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-1.0.0.tgz", - "integrity": "sha1-hbiGLzhEtabV7IRnqTWYFzo295Q=", - "dev": true, - "requires": { - "first-chunk-stream": "^1.0.0", - "is-utf8": "^0.2.0" - } + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", + "dev": true }, "supports-color": { "version": "2.0.0", @@ -4673,16 +5256,92 @@ "dev": true }, "tapable": { - "version": "0.1.10", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.1.10.tgz", - "integrity": "sha1-KcNXB8K3DlDQdIK10gLo7URtr9Q=", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.1.tgz", + "integrity": "sha512-9I2ydhj8Z9veORCw5PRm4u9uebCn0mcCa6scWoNcbZ6dAtoo2618u9UUzxgmsCOreJpqDDuv61LvwofW7hLcBA==", "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 + "terser": { + "version": "3.16.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-3.16.1.tgz", + "integrity": "sha512-JDJjgleBROeek2iBcSNzOHLKsB/MdDf+E/BOAJ0Tk9r7p9/fVobfv7LMJ/g/k3v9SXdmjZnIlFd5nfn/Rt0Xow==", + "dev": true, + "requires": { + "commander": "~2.17.1", + "source-map": "~0.6.1", + "source-map-support": "~0.5.9" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "source-map-support": { + "version": "0.5.10", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.10.tgz", + "integrity": "sha512-YfQ3tQFTK/yzlGJuX8pTwa4tifQj4QS2Mj7UegOu8jAz59MqIiMGPXxQhVQiIMNzayuUSF/jEuVnfFF5JqybmQ==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + } + } + }, + "terser-webpack-plugin": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.2.2.tgz", + "integrity": "sha512-1DMkTk286BzmfylAvLXwpJrI7dWa5BnFmscV/2dCr8+c56egFcbaeFAl7+sujAjdmpLam21XRdhA4oifLyiWWg==", + "dev": true, + "requires": { + "cacache": "^11.0.2", + "find-cache-dir": "^2.0.0", + "schema-utils": "^1.0.0", + "serialize-javascript": "^1.4.0", + "source-map": "^0.6.1", + "terser": "^3.16.1", + "webpack-sources": "^1.1.0", + "worker-farm": "^1.5.2" + }, + "dependencies": { + "find-cache-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.0.0.tgz", + "integrity": "sha512-LDUY6V1Xs5eFskUVYtIwatojt6+9xC9Chnlk/jYOOvn3FAFfSaWddxahDGyNHh0b2dMXa6YW2m0tk8TdVaXHlA==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^1.0.0", + "pkg-dir": "^3.0.0" + } + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "dev": true, + "requires": { + "find-up": "^3.0.0" + } + }, + "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 + } + } }, "through2": { "version": "2.0.3", @@ -4726,30 +5385,21 @@ } } }, - "tildify": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/tildify/-/tildify-1.2.0.tgz", - "integrity": "sha1-3OwD9V3Km3qj5bBPIYF+tW5jWIo=", + "timers-browserify": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.10.tgz", + "integrity": "sha512-YvC1SV1XdOUaL6gx5CoGroT3Gu49pK9+TZ38ErPldOWW4j49GI1HKs9DV+KGq/w6y+LZ72W1c8cKz2vzY+qpzg==", "dev": true, "requires": { - "os-homedir": "^1.0.0" + "setimmediate": "^1.0.4" } }, - "time-stamp": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz", - "integrity": "sha1-dkpaEa9QVhkhsTPztE5hhofg9cM=", + "to-arraybuffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", + "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", "dev": true }, - "timers-browserify": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-1.4.2.tgz", - "integrity": "sha1-ycWLV1voQHN1y14kYtrO50NZ9B0=", - "dev": true, - "requires": { - "process": "~0.11.0" - } - }, "to-fast-properties": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", @@ -4804,40 +5454,22 @@ "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", "dev": true }, + "tslib": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz", + "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==", + "dev": true + }, "tty-browserify": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", "dev": true }, - "uglify-js": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.6.4.tgz", - "integrity": "sha1-ZeovswWck5RpLxX+2HwrNsFrmt8=", - "dev": true, - "requires": { - "async": "~0.2.6", - "source-map": "~0.5.1", - "uglify-to-browserify": "~1.0.0", - "yargs": "~3.10.0" - } - }, - "uglify-save-license": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/uglify-save-license/-/uglify-save-license-0.4.1.tgz", - "integrity": "sha1-lXJsF8xv0XHDYX479NjYKqjEzOE=", - "dev": true - }, - "uglify-to-browserify": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", - "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", - "dev": true - }, - "unc-path-regex": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", - "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=", + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", "dev": true }, "union-value": { @@ -4875,11 +5507,23 @@ } } }, - "unique-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-1.0.0.tgz", - "integrity": "sha1-1ZpKdUJ0R9mqbJHnAmP40mpLEEs=", - "dev": true + "unique-filename": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", + "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "dev": true, + "requires": { + "unique-slug": "^2.0.0" + } + }, + "unique-slug": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.1.tgz", + "integrity": "sha512-n9cU6+gITaVu7VGj1Z8feKMmfAjEAQGhwD9fE3zvpRRa0wEIx8ODYkVGfSc94M2OX00tUFV8wH3zYbm1I8mxFg==", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4" + } }, "unset-value": { "version": "1.0.0", @@ -4927,6 +5571,21 @@ } } }, + "upath": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.1.0.tgz", + "integrity": "sha512-bzpH/oBhoS/QI/YtbkqCg6VEiPYjSZtrHQM6/QnJS6OL9pKUFLqb3aFh4Scvwm45+7iAgiMkLhSbaZxUqmrprw==", + "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==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, "urix": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", @@ -4934,9 +5593,9 @@ "dev": true }, "url": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/url/-/url-0.10.3.tgz", - "integrity": "sha1-Ah5NnHcF8hu/N9A861h2dAJ3TGQ=", + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", + "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", "dev": true, "requires": { "punycode": "1.3.2", @@ -4957,27 +5616,13 @@ "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", "dev": true }, - "user-home": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz", - "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA=", - "dev": true - }, "util": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", - "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", + "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", "dev": true, "requires": { - "inherits": "2.0.1" - }, - "dependencies": { - "inherits": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", - "dev": true - } + "inherits": "2.0.3" } }, "util-deprecate": { @@ -4986,270 +5631,380 @@ "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", "dev": true }, - "v8flags": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz", - "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=", + "v8-compile-cache": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.0.2.tgz", + "integrity": "sha512-1wFuMUIM16MDJRCrpbpuEPTUGmM5QMUg0cr3KFwra2XgOgFcPGDQHDh3CszSCD2Zewc/dh/pamNEW8CbfDebUw==", + "dev": true + }, + "vm-browserify": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", + "integrity": "sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=", "dev": true, "requires": { - "user-home": "^1.1.1" + "indexof": "0.0.1" } }, - "vinyl": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.5.3.tgz", - "integrity": "sha1-sEVbOPxeDPMNQyUTLkYZcMIJHN4=", + "watchpack": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.6.0.tgz", + "integrity": "sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA==", "dev": true, "requires": { - "clone": "^1.0.0", - "clone-stats": "^0.0.1", - "replace-ext": "0.0.1" + "chokidar": "^2.0.2", + "graceful-fs": "^4.1.2", + "neo-async": "^2.5.0" + }, + "dependencies": { + "graceful-fs": { + "version": "4.1.15", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz", + "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==", + "dev": true + } } }, - "vinyl-fs": { - "version": "0.3.14", - "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-0.3.14.tgz", - "integrity": "sha1-mmhRzhysHBzqX+hsCTHWIMLPqeY=", - "dev": true, - "requires": { - "defaults": "^1.0.0", - "glob-stream": "^3.1.5", - "glob-watcher": "^0.0.6", - "graceful-fs": "^3.0.0", - "mkdirp": "^0.5.0", - "strip-bom": "^1.0.0", - "through2": "^0.6.1", - "vinyl": "^0.4.0" + "webpack": { + "version": "4.29.5", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.29.5.tgz", + "integrity": "sha512-DuWlYUT982c7XVHodrLO9quFbNpVq5FNxLrMUfYUTlgKW0+yPimynYf1kttSQpEneAL1FH3P3OLNgkyImx8qIQ==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.8.3", + "@webassemblyjs/helper-module-context": "1.8.3", + "@webassemblyjs/wasm-edit": "1.8.3", + "@webassemblyjs/wasm-parser": "1.8.3", + "acorn": "^6.0.5", + "acorn-dynamic-import": "^4.0.0", + "ajv": "^6.1.0", + "ajv-keywords": "^3.1.0", + "chrome-trace-event": "^1.0.0", + "enhanced-resolve": "^4.1.0", + "eslint-scope": "^4.0.0", + "json-parse-better-errors": "^1.0.2", + "loader-runner": "^2.3.0", + "loader-utils": "^1.1.0", + "memory-fs": "~0.4.1", + "micromatch": "^3.1.8", + "mkdirp": "~0.5.0", + "neo-async": "^2.5.0", + "node-libs-browser": "^2.0.0", + "schema-utils": "^1.0.0", + "tapable": "^1.1.0", + "terser-webpack-plugin": "^1.1.0", + "watchpack": "^1.5.0", + "webpack-sources": "^1.3.0" }, "dependencies": { - "clone": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/clone/-/clone-0.2.0.tgz", - "integrity": "sha1-xhJqkK1Pctv1rNskPMN3JP6T/B8=", + "big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", "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=", + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", "dev": true, "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" + "minimist": "^1.2.0" + } + }, + "loader-utils": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz", + "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^2.0.0", + "json5": "^1.0.1" + } + }, + "memory-fs": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", + "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", + "dev": true, + "requires": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" } }, - "through2": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", - "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + }, + "process-nextick-args": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", + "dev": true + }, + "readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "dev": true, "requires": { - "readable-stream": ">=1.0.33-1 <1.1.0-0", - "xtend": ">=4.0.0 <4.1.0-0" + "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" } }, - "vinyl": { - "version": "0.4.6", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.4.6.tgz", - "integrity": "sha1-LzVsh6VQolVGHza76ypbqL94SEc=", + "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==", "dev": true, "requires": { - "clone": "^0.2.0", - "clone-stats": "^0.0.1" + "safe-buffer": "~5.1.0" } } } }, - "vinyl-named": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/vinyl-named/-/vinyl-named-1.1.0.tgz", - "integrity": "sha1-lOT+dB442w7DA+Wz2Giyl6Leq2Y=", - "dev": true, - "requires": { - "through": "^2.3.6" - } - }, - "vinyl-sourcemaps-apply": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/vinyl-sourcemaps-apply/-/vinyl-sourcemaps-apply-0.2.1.tgz", - "integrity": "sha1-q2VJ1h0XLCsbh75cUI0jnI74dwU=", - "dev": true, - "requires": { - "source-map": "^0.5.1" - } - }, - "vm-browserify": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", - "integrity": "sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=", - "dev": true, - "requires": { - "indexof": "0.0.1" - } - }, - "watchpack": { - "version": "0.2.9", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-0.2.9.tgz", - "integrity": "sha1-Yuqkq15bo1/fwBgnVibjwPXj+ws=", + "webpack-cli": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.2.3.tgz", + "integrity": "sha512-Ik3SjV6uJtWIAN5jp5ZuBMWEAaP5E4V78XJ2nI+paFPh8v4HPSwo/myN0r29Xc/6ZKnd2IdrAlpSgNOu2CDQ6Q==", "dev": true, "requires": { - "async": "^0.9.0", - "chokidar": "^1.0.0", - "graceful-fs": "^4.1.2" + "chalk": "^2.4.1", + "cross-spawn": "^6.0.5", + "enhanced-resolve": "^4.1.0", + "findup-sync": "^2.0.0", + "global-modules": "^1.0.0", + "import-local": "^2.0.0", + "interpret": "^1.1.0", + "loader-utils": "^1.1.0", + "supports-color": "^5.5.0", + "v8-compile-cache": "^2.0.2", + "yargs": "^12.0.4" }, "dependencies": { - "async": { - "version": "0.9.2", - "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz", - "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=", + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", "dev": true }, - "graceful-fs": { - "version": "4.1.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", "dev": true - } - } - }, - "webpack": { - "version": "1.13.3", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-1.13.3.tgz", - "integrity": "sha1-55xG/lo3xcpwCEugiUxZXNy0KBU=", - "dev": true, - "requires": { - "acorn": "^3.0.0", - "async": "^1.3.0", - "clone": "^1.0.2", - "enhanced-resolve": "~0.9.0", - "interpret": "^0.6.4", - "loader-utils": "^0.2.11", - "memory-fs": "~0.3.0", - "mkdirp": "~0.5.0", - "node-libs-browser": "^0.6.0", - "optimist": "~0.6.0", - "supports-color": "^3.1.0", - "tapable": "~0.1.8", - "uglify-js": "~2.7.3", - "watchpack": "^0.2.1", - "webpack-core": "~0.6.0" - }, - "dependencies": { - "async": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "cliui": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", + "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", + "dev": true, + "requires": { + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0", + "wrap-ansi": "^2.0.0" + } + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", "dev": true }, - "interpret": { - "version": "0.6.6", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-0.6.6.tgz", - "integrity": "sha1-/s16GOfOXKar+5U+H4YhOknxYls=", + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "loader-utils": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz", + "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^2.0.0", + "json5": "^1.0.1" + } + }, + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", "dev": true }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + }, "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "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": "^1.0.0" + "has-flag": "^3.0.0" } }, - "uglify-js": { - "version": "2.7.5", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.7.5.tgz", - "integrity": "sha1-RhLAx7qu4rp8SH3kkErhIgefLKg=", + "yargs": { + "version": "12.0.5", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz", + "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==", "dev": true, "requires": { - "async": "~0.2.6", - "source-map": "~0.5.1", - "uglify-to-browserify": "~1.0.0", - "yargs": "~3.10.0" - }, - "dependencies": { - "async": { - "version": "0.2.10", - "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz", - "integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E=", - "dev": true - } + "cliui": "^4.0.0", + "decamelize": "^1.2.0", + "find-up": "^3.0.0", + "get-caller-file": "^1.0.1", + "os-locale": "^3.0.0", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^2.0.0", + "which-module": "^2.0.0", + "y18n": "^3.2.1 || ^4.0.0", + "yargs-parser": "^11.1.1" } } } }, - "webpack-core": { - "version": "0.6.9", - "resolved": "https://registry.npmjs.org/webpack-core/-/webpack-core-0.6.9.tgz", - "integrity": "sha1-/FcViMhVjad76e+23r3Fo7FyvcI=", + "webpack-sources": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.3.0.tgz", + "integrity": "sha512-OiVgSrbGu7NEnEvQJJgdSFPl2qWKkWq5lHMhgiToIiN9w34EBnjYzSYs+VbL5KoYiLNtFFa7BZIKxRED3I32pA==", "dev": true, "requires": { - "source-list-map": "~0.1.7", - "source-map": "~0.4.1" + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" }, "dependencies": { "source-map": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", - "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", - "dev": true, - "requires": { - "amdefine": ">=0.0.4" - } + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true } } }, - "webpack-stream": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/webpack-stream/-/webpack-stream-3.2.0.tgz", - "integrity": "sha1-Oh0WD7EdQXJ7fObzL3IkZPmLIYY=", + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "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=", + "dev": true + }, + "worker-farm": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.6.0.tgz", + "integrity": "sha512-6w+3tHbM87WnSWnENBUvA2pxJPLhQUg5LKwUQHq3r+XPhIM+Gh2R5ycbwPCyuGbNg+lPgdcnQUhuC02kJCvffQ==", "dev": true, "requires": { - "gulp-util": "^3.0.7", - "lodash.clone": "^4.3.2", - "lodash.some": "^4.2.2", - "memory-fs": "^0.3.0", - "through": "^2.3.8", - "vinyl": "^1.1.0", - "webpack": "^1.12.9" + "errno": "~0.1.7" }, "dependencies": { - "vinyl": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-1.2.0.tgz", - "integrity": "sha1-XIgDbPVl5d8FVYv8kR+GVt8hiIQ=", + "errno": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", + "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", "dev": true, "requires": { - "clone": "^1.0.0", - "clone-stats": "^0.0.1", - "replace-ext": "0.0.1" + "prr": "~1.0.1" } } } }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "wrap-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", "dev": true, "requires": { - "isexe": "^2.0.0" + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" + }, + "dependencies": { + "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=", + "dev": true, + "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=", + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + } } }, - "window-size": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", - "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", - "dev": true - }, - "wordwrap": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", - "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", - "dev": true - }, "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", @@ -5262,16 +6017,34 @@ "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", "dev": true }, - "yargs": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", - "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", + "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==", + "dev": true + }, + "yallist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz", + "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==", + "dev": true + }, + "yargs-parser": { + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz", + "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==", "dev": true, "requires": { - "camelcase": "^1.0.2", - "cliui": "^2.1.0", - "decamelize": "^1.0.0", - "window-size": "0.1.0" + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "dependencies": { + "camelcase": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.0.0.tgz", + "integrity": "sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA==", + "dev": true + } } } } diff --git a/src/React.Core/package.json b/src/React.Core/package.json index b168e3006..70510adbd 100644 --- a/src/React.Core/package.json +++ b/src/React.Core/package.json @@ -3,23 +3,18 @@ "name": "React.Core", "private": true, "scripts": { - "build": "gulp" + "build": "webpack" }, "devDependencies": { "babel-core": "6.26.3", - "babel-loader": "6.2.10", + "babel-loader": "7.1.2", "babel-preset-es2015": "6.24.1", "babel-preset-stage-0": "6.5.0", "babel-standalone": "6.26.0", - "gulp": "3.9.1", - "gulp-uglify": "1.5.4", - "json-loader": "0.5.7", - "natives": "1.1.6", "prop-types": "15.7.2", "react": "16.8.2", "react-dom": "16.8.2", - "vinyl-named": "1.1.0", - "webpack": "1.13.3", - "webpack-stream": "3.2.0" + "webpack": "^4.29.5", + "webpack-cli": "^3.2.3" } } diff --git a/src/React.Core/webpack.config.js b/src/React.Core/webpack.config.js new file mode 100644 index 000000000..7eea434aa --- /dev/null +++ b/src/React.Core/webpack.config.js @@ -0,0 +1,57 @@ +const path = require('path'); + +module.exports = [ + { + entry: './Resources/react.js', + output: { + filename: 'react.generated.js', + globalObject: 'this', + path: path.resolve(__dirname, 'Resources/'), + libraryTarget: 'this', + }, + mode: 'development', + module: { + rules: [ + { + test: /\.jsx?$/, + exclude: /node_modules/, + loader: 'babel-loader', + query: { + presets: ['es2015', 'stage-0'], + }, + }, + ], + }, + performance: { + hints: false, + }, + }, + { + entry: { + react: './Resources/react.js', + babel: './Resources/babel.js', + }, + output: { + filename: '[name].generated.min.js', + globalObject: 'this', + path: path.resolve(__dirname, 'Resources/'), + libraryTarget: 'this', + }, + mode: 'production', + module: { + rules: [ + { + test: /\.jsx?$/, + exclude: /node_modules/, + loader: 'babel-loader', + query: { + presets: ['es2015', 'stage-0'], + }, + }, + ], + }, + performance: { + hints: false, + }, + }, +]; From 6ccb9f519b3702f8e0595c2d84a92d6e325ba467 Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Fri, 22 Feb 2019 21:01:47 -0800 Subject: [PATCH 136/530] Update to Node 10 --- appveyor.yml | 14 +++++++------- azure-pipelines.yml | 40 ++++++++++++++++++++-------------------- 2 files changed, 27 insertions(+), 27 deletions(-) diff --git a/appveyor.yml b/appveyor.yml index 59e2cdbc4..e331cbe19 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -1,13 +1,13 @@ version: '{build}' os: Visual Studio 2017 install: -- set PATH=%ProgramFiles(x86)%\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\;%PATH% -- ps: Install-Product node 6 -- npm install --global npm + - set PATH=%ProgramFiles(x86)%\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\;%PATH% + - ps: Install-Product node 10 + - npm install --global npm build: - project: build.proj - verbosity: normal + project: build.proj + verbosity: normal test_script: -- dotnet test --configuration Release --no-build tests/React.Tests/React.Tests.csproj + - dotnet test --configuration Release --no-build tests/React.Tests/React.Tests.csproj artifacts: -- path: output\*.nupkg + - path: output\*.nupkg diff --git a/azure-pipelines.yml b/azure-pipelines.yml index b07bde6ed..f53288ced 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -1,31 +1,31 @@ trigger: -- master + - master pool: - vmImage: 'VS2017-Win2016' + vmImage: 'VS2017-Win2016' variables: - buildPlatform: 'Any CPU' - buildConfiguration: 'Release' + buildPlatform: 'Any CPU' + buildConfiguration: 'Release' steps: -- task: NodeTool@0 - inputs: - versionSpec: '6.x' + - task: NodeTool@0 + inputs: + versionSpec: '10.x' -- script: npm install --global npm + - script: npm install --global npm -- task: VSBuild@1 - inputs: - solution: 'build.proj' - msbuildArgs: '/p:PackageOutputDir="$(build.artifactStagingDirectory)"' - platform: '$(buildPlatform)' - configuration: '$(buildConfiguration)' + - task: VSBuild@1 + inputs: + solution: 'build.proj' + msbuildArgs: '/p:PackageOutputDir="$(build.artifactStagingDirectory)"' + platform: '$(buildPlatform)' + configuration: '$(buildConfiguration)' -- task: DotNetCoreCLI@2 - inputs: - command: 'test' - projects: 'tests/React.Tests/React.Tests.csproj' - arguments: '--no-build --configuration $(buildConfiguration)' + - task: DotNetCoreCLI@2 + inputs: + command: 'test' + projects: 'tests/React.Tests/React.Tests.csproj' + arguments: '--no-build --configuration $(buildConfiguration)' -- task: PublishBuildArtifacts@1 \ No newline at end of file + - task: PublishBuildArtifacts@1 From a9699acc7229b0b2347f8855bdd5274a5e17fddf Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Fri, 22 Feb 2019 21:21:38 -0800 Subject: [PATCH 137/530] Update samples: Reference React 16.8 UMD build --- site/jekyll/bundling/cassette.md | 4 +- site/jekyll/features/server-side-rendering.md | 8 ++-- site/jekyll/index.md | 4 +- site/jekyll/tutorials/aspnet4.md | 12 ++--- site/jekyll/tutorials/aspnetcore.md | 8 ++-- .../Views/Home/Index.cshtml | 4 +- src/React.Sample.Mvc4/Views/Home/Index.cshtml | 6 +-- src/React.Sample.Owin/Content/Index.html | 45 +++++++++++-------- tutorial-code/Views/Home/Index.cshtml | 4 +- 9 files changed, 52 insertions(+), 43 deletions(-) diff --git a/site/jekyll/bundling/cassette.md b/site/jekyll/bundling/cassette.md index 4f2570393..3a1ab7e67 100644 --- a/site/jekyll/bundling/cassette.md +++ b/site/jekyll/bundling/cassette.md @@ -42,8 +42,8 @@ render from your view using Cassette: ... - - + + @Bundles.RenderScripts() ``` diff --git a/site/jekyll/features/server-side-rendering.md b/site/jekyll/features/server-side-rendering.md index 5c7bbfc1f..abeac924a 100644 --- a/site/jekyll/features/server-side-rendering.md +++ b/site/jekyll/features/server-side-rendering.md @@ -49,8 +49,8 @@ code. ```html - - + + @Scripts.Render("~/bundles/main") @Html.ReactInitJavaScript() ``` @@ -65,8 +65,8 @@ code.

    !qc{WwrioZ(*avXhIustffhVR9r2$ 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%0A7Z{hTpEGPZ(XlgCLgdy=lEAcCBpL5!kR%q) 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

    - - + + ``` diff --git a/site/jekyll/index.md b/site/jekyll/index.md index d7e56da1c..10fc7730b 100644 --- a/site/jekyll/index.md +++ b/site/jekyll/index.md @@ -117,8 +117,8 @@ bundles.Add(new JsxBundle("~/bundles/main").Include( }) - - + + @Scripts.Render("~/bundles/main") @Html.ReactInitJavaScript() diff --git a/site/jekyll/tutorials/aspnet4.md b/site/jekyll/tutorials/aspnet4.md index d4192bb78..1ec64369c 100644 --- a/site/jekyll/tutorials/aspnet4.md +++ b/site/jekyll/tutorials/aspnet4.md @@ -101,8 +101,8 @@ Replace the contents of the new view file with the following:
    - - + + @@ -991,8 +991,8 @@ Now that the bundle has been registered, we need to reference it from the view:
    - - + + @Scripts.Render("~/bundles/main") @Html.ReactInitJavaScript() @@ -1111,8 +1111,8 @@ In the view, we will accept the list of comments as the model, and use `Html.Rea submitUrl = Url.Action("AddComment"), pollInterval = 2000 }) - - + + @Html.ReactInitJavaScript() diff --git a/site/jekyll/tutorials/aspnetcore.md b/site/jekyll/tutorials/aspnetcore.md index d0ca1cb35..24271f69c 100644 --- a/site/jekyll/tutorials/aspnetcore.md +++ b/site/jekyll/tutorials/aspnetcore.md @@ -152,8 +152,8 @@ Replace the contents of the new view file with the following:
    - - + + @@ -1071,8 +1071,8 @@ In the view, we will accept the list of comments as the model, and use `Html.Rea submitUrl = Url.Action("AddComment"), pollInterval = 2000, }) - - + + @Html.ReactInitJavaScript() diff --git a/src/React.Sample.Cassette/Views/Home/Index.cshtml b/src/React.Sample.Cassette/Views/Home/Index.cshtml index ff0ee7000..aff7baf8a 100644 --- a/src/React.Sample.Cassette/Views/Home/Index.cshtml +++ b/src/React.Sample.Cassette/Views/Home/Index.cshtml @@ -20,8 +20,8 @@ @Html.React("CommentsBox", new { initialComments = Model.Comments }) - - + + @Bundles.RenderScripts() diff --git a/src/React.Sample.Mvc4/Views/Home/Index.cshtml b/src/React.Sample.Mvc4/Views/Home/Index.cshtml index 09c18f986..3c2a8d4a4 100644 --- a/src/React.Sample.Mvc4/Views/Home/Index.cshtml +++ b/src/React.Sample.Mvc4/Views/Home/Index.cshtml @@ -1,4 +1,4 @@ -@using System.Web.Optimization +@using System.Web.Optimization @model React.Sample.Mvc4.ViewModels.IndexViewModel @@ -17,8 +17,8 @@ @Html.React("CommentsBox", new { initialComments = Model.Comments, page = Model.Page }) - - + + @Scripts.Render("~/bundles/main") diff --git a/src/React.Sample.Owin/Content/Index.html b/src/React.Sample.Owin/Content/Index.html index 64909c092..86969c695 100644 --- a/src/React.Sample.Owin/Content/Index.html +++ b/src/React.Sample.Owin/Content/Index.html @@ -1,22 +1,31 @@ - - - React OWIN Sample - - - -
    - - - - - - + + + React OWIN Sample + + + +
    + + + + + + diff --git a/tutorial-code/Views/Home/Index.cshtml b/tutorial-code/Views/Home/Index.cshtml index 0d14a5fcf..8615baa7c 100644 --- a/tutorial-code/Views/Home/Index.cshtml +++ b/tutorial-code/Views/Home/Index.cshtml @@ -14,8 +14,8 @@ submitUrl = Url.Action("AddComment"), pollInterval = 2000, }) - - + + From 8936dbff97a3bfa7289f749e30a3400c2bb0cf80 Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Fri, 22 Feb 2019 21:22:00 -0800 Subject: [PATCH 138/530] Fix tutorial dependencies --- tutorial-code/tutorial-code.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tutorial-code/tutorial-code.csproj b/tutorial-code/tutorial-code.csproj index 6a8e1cbf2..1a5621685 100644 --- a/tutorial-code/tutorial-code.csproj +++ b/tutorial-code/tutorial-code.csproj @@ -24,6 +24,6 @@ - + \ No newline at end of file From 0e8e7c20d1e88692a49dc5d01d013cc9176afd9a Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Sat, 23 Feb 2019 05:14:47 +0000 Subject: [PATCH 139/530] Pin dependencies --- src/React.Core/package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/React.Core/package.json b/src/React.Core/package.json index 70510adbd..a84337d7f 100644 --- a/src/React.Core/package.json +++ b/src/React.Core/package.json @@ -14,7 +14,7 @@ "prop-types": "15.7.2", "react": "16.8.2", "react-dom": "16.8.2", - "webpack": "^4.29.5", - "webpack-cli": "^3.2.3" + "webpack": "4.29.5", + "webpack-cli": "3.2.3" } } From dd88b7d8714af65f6d5c913be6ff34848efebe7a Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Sun, 17 Feb 2019 05:15:52 +0000 Subject: [PATCH 140/530] Update dependency babel-preset-stage-0 to v6.24.1 --- src/React.Core/package-lock.json | 12 ++++++------ src/React.Core/package.json | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/React.Core/package-lock.json b/src/React.Core/package-lock.json index bc3d16dc0..6f8434927 100644 --- a/src/React.Core/package-lock.json +++ b/src/React.Core/package-lock.json @@ -1067,14 +1067,14 @@ } }, "babel-preset-stage-0": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/babel-preset-stage-0/-/babel-preset-stage-0-6.5.0.tgz", - "integrity": "sha1-i4R5sgd0grjz3I+PXwyceXiM3iI=", + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-preset-stage-0/-/babel-preset-stage-0-6.24.1.tgz", + "integrity": "sha1-VkLRUEL5E4TX5a+LyIsduVsDnmo=", "dev": true, "requires": { - "babel-plugin-transform-do-expressions": "^6.3.13", - "babel-plugin-transform-function-bind": "^6.3.13", - "babel-preset-stage-1": "^6.3.13" + "babel-plugin-transform-do-expressions": "^6.22.0", + "babel-plugin-transform-function-bind": "^6.22.0", + "babel-preset-stage-1": "^6.24.1" } }, "babel-preset-stage-1": { diff --git a/src/React.Core/package.json b/src/React.Core/package.json index a84337d7f..def66b53d 100644 --- a/src/React.Core/package.json +++ b/src/React.Core/package.json @@ -9,7 +9,7 @@ "babel-core": "6.26.3", "babel-loader": "7.1.2", "babel-preset-es2015": "6.24.1", - "babel-preset-stage-0": "6.5.0", + "babel-preset-stage-0": "6.24.1", "babel-standalone": "6.26.0", "prop-types": "15.7.2", "react": "16.8.2", From b4a10afc120f3a556012fbffc38b315bab5b7938 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Sun, 17 Feb 2019 05:11:21 +0000 Subject: [PATCH 141/530] Update dependency babel-preset-env to v1.7.0 --- .../package-lock.json | 42 +++++++++---------- src/React.Sample.Webpack.CoreMvc/package.json | 2 +- 2 files changed, 22 insertions(+), 22 deletions(-) diff --git a/src/React.Sample.Webpack.CoreMvc/package-lock.json b/src/React.Sample.Webpack.CoreMvc/package-lock.json index 2ef7c8723..1f3cd1797 100644 --- a/src/React.Sample.Webpack.CoreMvc/package-lock.json +++ b/src/React.Sample.Webpack.CoreMvc/package-lock.json @@ -871,9 +871,9 @@ } }, "babel-plugin-transform-es2015-modules-commonjs": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.0.tgz", - "integrity": "sha1-DYOUApt9xqvhqX7xgeAHWN0uXYo=", + "version": "6.26.2", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz", + "integrity": "sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q==", "dev": true, "requires": { "babel-plugin-transform-strict-mode": "^6.24.1", @@ -1068,9 +1068,9 @@ } }, "babel-preset-env": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.6.1.tgz", - "integrity": "sha512-W6VIyA6Ch9ePMI7VptNn2wBM6dbG0eSz25HEiL40nQXCsXGTGZSTZu1Iap+cj3Q0S5a7T9+529l/5Bkvd+afNA==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.7.0.tgz", + "integrity": "sha512-9OR2afuKDneX2/q2EurSftUYM0xGu4O2D9adAhVfADDhrYDaxXV0rBbevVYoY9n6nyX1PmQW/0jtpJvUNr9CHg==", "dev": true, "requires": { "babel-plugin-check-es2015-constants": "^6.22.0", @@ -1100,7 +1100,7 @@ "babel-plugin-transform-es2015-unicode-regex": "^6.22.0", "babel-plugin-transform-exponentiation-operator": "^6.22.0", "babel-plugin-transform-regenerator": "^6.22.0", - "browserslist": "^2.1.2", + "browserslist": "^3.2.6", "invariant": "^2.2.2", "semver": "^5.3.0" } @@ -1421,13 +1421,13 @@ } }, "browserslist": { - "version": "2.11.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-2.11.3.tgz", - "integrity": "sha512-yWu5cXT7Av6mVwzWc8lMsJMHWn4xyjSuGYi4IozbVTLUOEYPSagUB8kiMDUHA1fS3zjr8nkxkn9jdvug4BBRmA==", + "version": "3.2.8", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-3.2.8.tgz", + "integrity": "sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30000792", - "electron-to-chromium": "^1.3.30" + "caniuse-lite": "^1.0.30000844", + "electron-to-chromium": "^1.3.47" } }, "buffer": { @@ -1512,9 +1512,9 @@ "dev": true }, "caniuse-lite": { - "version": "1.0.30000792", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000792.tgz", - "integrity": "sha1-0M6pgfgRjzlhRxr7tDyaHlu/AzI=", + "version": "1.0.30000938", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000938.tgz", + "integrity": "sha512-ekW8NQ3/FvokviDxhdKLZZAx7PptXNwxKgXtnR5y+PR3hckwuP3yJ1Ir+4/c97dsHNqtAyfKUGdw8P4EYzBNgw==", "dev": true }, "chalk": { @@ -2044,9 +2044,9 @@ } }, "electron-to-chromium": { - "version": "1.3.31", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.31.tgz", - "integrity": "sha512-XE4CLbswkZgZFn34cKFy1xaX+F5LHxeDLjY1+rsK9asDzknhbrd9g/n/01/acbU25KTsUSiLKwvlLyA+6XLUOA==", + "version": "1.3.113", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.113.tgz", + "integrity": "sha512-De+lPAxEcpxvqPTyZAXELNpRZXABRxf+uL/rSykstQhzj/B0l1150G/ExIIxKc16lI89Hgz81J0BHAcbTqK49g==", "dev": true }, "elliptic": { @@ -4834,9 +4834,9 @@ } }, "regenerate": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.3.3.tgz", - "integrity": "sha512-jVpo1GadrDAK59t/0jRx5VxYWQEDkkEKi6+HjE3joFVLfDOh9Xrdh0dF1eSq+BI/SwvTQ44gSscJ8N5zYL61sg==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz", + "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==", "dev": true }, "regenerator-runtime": { diff --git a/src/React.Sample.Webpack.CoreMvc/package.json b/src/React.Sample.Webpack.CoreMvc/package.json index 2d5c4ab80..594914d6f 100644 --- a/src/React.Sample.Webpack.CoreMvc/package.json +++ b/src/React.Sample.Webpack.CoreMvc/package.json @@ -20,7 +20,7 @@ "devDependencies": { "babel-core": "6.26.3", "babel-loader": "7.1.2", - "babel-preset-env": "1.6.1", + "babel-preset-env": "1.7.0", "babel-preset-react": "6.24.1", "webpack": "4.29.3", "webpack-cli": "3.2.3" From dd55c44df48482bb240a0fc3dc1ebcde6010b72e Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Fri, 22 Feb 2019 21:29:08 -0800 Subject: [PATCH 142/530] Update samples: Add hooks demo --- src/React.Sample.Mvc4/Content/Sample.jsx | 56 ++++++++++++------- .../Content/components/home.jsx | 12 +++- 2 files changed, 47 insertions(+), 21 deletions(-) diff --git a/src/React.Sample.Mvc4/Content/Sample.jsx b/src/React.Sample.Mvc4/Content/Sample.jsx index 97d078f09..5b4946619 100644 --- a/src/React.Sample.Mvc4/Content/Sample.jsx +++ b/src/React.Sample.Mvc4/Content/Sample.jsx @@ -7,24 +7,33 @@ * of patent rights can be found in the PATENTS file in the same directory. */ +function HooksDemo() { + let [count, updateCount] = React.useState(0); + return ( + + ); +} + class CommentsBox extends React.Component { static propTypes = { initialComments: PropTypes.array.isRequired, - page: PropTypes.number + page: PropTypes.number, }; - state = { - comments: this.props.initialComments, - page: this.props.page, - hasMore: true, - loadingMore: false + state = { + comments: this.props.initialComments, + page: this.props.page, + hasMore: true, + loadingMore: false, }; - loadMoreClicked = (evt) => { + loadMoreClicked = evt => { var nextPage = this.state.page + 1; this.setState({ page: nextPage, - loadingMore: true + loadingMore: true, }); var url = evt.target.href; @@ -36,7 +45,7 @@ class CommentsBox extends React.Component { this.setState({ comments: this.state.comments.concat(data.comments), hasMore: data.hasMore, - loadingMore: false + loadingMore: false, }); }; xhr.send(); @@ -44,16 +53,15 @@ class CommentsBox extends React.Component { }; render() { - var commentNodes = this.state.comments.map(comment => + var commentNodes = this.state.comments.map(comment => ( {comment.Text} - ); + )); return (
    +

    Comments

    -
      - {commentNodes} -
    +
      {commentNodes}
    {this.renderMoreLink()}
    ); @@ -64,7 +72,10 @@ class CommentsBox extends React.Component { return Loading...; } else if (this.state.hasMore) { return ( - + Load More ); @@ -76,14 +87,15 @@ class CommentsBox extends React.Component { class Comment extends React.Component { static propTypes = { - author: PropTypes.object.isRequired + author: PropTypes.object.isRequired, }; render() { return (
  • - {this.props.author.Name}{': '} + {this.props.author.Name} + {': '} {this.props.children}
  • ); @@ -92,7 +104,7 @@ class Comment extends React.Component { class Avatar extends React.Component { static propTypes = { - author: PropTypes.object.isRequired + author: PropTypes.object.isRequired, }; render() { @@ -107,7 +119,11 @@ class Avatar extends React.Component { ); } - getPhotoUrl = (author) => { - return 'https://avatars.githubusercontent.com/' + author.GithubUsername + '?s=50'; + getPhotoUrl = author => { + return ( + 'https://avatars.githubusercontent.com/' + + author.GithubUsername + + '?s=50' + ); }; } diff --git a/src/React.Sample.Webpack.CoreMvc/Content/components/home.jsx b/src/React.Sample.Webpack.CoreMvc/Content/components/home.jsx index a3f33ab8c..902bf98a5 100644 --- a/src/React.Sample.Webpack.CoreMvc/Content/components/home.jsx +++ b/src/React.Sample.Webpack.CoreMvc/Content/components/home.jsx @@ -1,4 +1,4 @@ -import { Component, Fragment } from 'react'; +import { Component, Fragment, useState } from 'react'; import { Link, BrowserRouter, @@ -34,6 +34,15 @@ class Navbar extends Component { } } +function HooksDemo() { + let [count, updateCount] = React.useState(0); + return ( + + ); +} + class HomePage extends Component { render() { return ( @@ -51,6 +60,7 @@ class HomePage extends Component { > ReactJS.NET is 🔥🔥 + ); } From 19055c849c25b9152f21c8de035a1f9902c8c3aa Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Sat, 23 Feb 2019 06:52:31 +0000 Subject: [PATCH 143/530] Update react monorepo to v16.8.3 --- src/React.Core/package-lock.json | 22 +++++++++++----------- src/React.Core/package.json | 4 ++-- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/src/React.Core/package-lock.json b/src/React.Core/package-lock.json index 6f8434927..6a719b633 100644 --- a/src/React.Core/package-lock.json +++ b/src/React.Core/package-lock.json @@ -4468,27 +4468,27 @@ } }, "react": { - "version": "16.8.2", - "resolved": "https://registry.npmjs.org/react/-/react-16.8.2.tgz", - "integrity": "sha512-aB2ctx9uQ9vo09HVknqv3DGRpI7OIGJhCx3Bt0QqoRluEjHSaObJl+nG12GDdYH6sTgE7YiPJ6ZUyMx9kICdXw==", + "version": "16.8.3", + "resolved": "https://registry.npmjs.org/react/-/react-16.8.3.tgz", + "integrity": "sha512-3UoSIsEq8yTJuSu0luO1QQWYbgGEILm+eJl2QN/VLDi7hL+EN18M3q3oVZwmVzzBJ3DkM7RMdRwBmZZ+b4IzSA==", "dev": true, "requires": { "loose-envify": "^1.1.0", "object-assign": "^4.1.1", "prop-types": "^15.6.2", - "scheduler": "^0.13.2" + "scheduler": "^0.13.3" } }, "react-dom": { - "version": "16.8.2", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.8.2.tgz", - "integrity": "sha512-cPGfgFfwi+VCZjk73buu14pYkYBR1b/SRMSYqkLDdhSEHnSwcuYTPu6/Bh6ZphJFIk80XLvbSe2azfcRzNF+Xg==", + "version": "16.8.3", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.8.3.tgz", + "integrity": "sha512-ttMem9yJL4/lpItZAQ2NTFAbV7frotHk5DZEHXUOws2rMmrsvh1Na7ThGT0dTzUIl6pqTOi5tYREfL8AEna3lA==", "dev": true, "requires": { "loose-envify": "^1.1.0", "object-assign": "^4.1.1", "prop-types": "^15.6.2", - "scheduler": "^0.13.2" + "scheduler": "^0.13.3" } }, "react-is": { @@ -4776,9 +4776,9 @@ } }, "scheduler": { - "version": "0.13.2", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.13.2.tgz", - "integrity": "sha512-qK5P8tHS7vdEMCW5IPyt8v9MJOHqTrOUgPXib7tqm9vh834ibBX5BNhwkplX/0iOzHW5sXyluehYfS9yrkz9+w==", + "version": "0.13.3", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.13.3.tgz", + "integrity": "sha512-UxN5QRYWtpR1egNWzJcVLk8jlegxAugswQc984lD3kU7NuobsO37/sRfbpTdBjtnD5TBNFA2Q2oLV5+UmPSmEQ==", "dev": true, "requires": { "loose-envify": "^1.1.0", diff --git a/src/React.Core/package.json b/src/React.Core/package.json index def66b53d..cf1e3fa12 100644 --- a/src/React.Core/package.json +++ b/src/React.Core/package.json @@ -12,8 +12,8 @@ "babel-preset-stage-0": "6.24.1", "babel-standalone": "6.26.0", "prop-types": "15.7.2", - "react": "16.8.2", - "react-dom": "16.8.2", + "react": "16.8.3", + "react-dom": "16.8.3", "webpack": "4.29.5", "webpack-cli": "3.2.3" } From 8b9410913675724066b2bcf1ca5fd03202d4fa5a Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Thu, 28 Feb 2019 21:28:02 -0800 Subject: [PATCH 144/530] Add Reactstrap to Mvc4 sample --- .../App_Start/ReactConfig.cs | 1 + src/React.Sample.Mvc4/Content/Sample.jsx | 23 +++++------ .../Content/lib/reactstrap.min.js | 2 + .../React.Sample.Mvc4.csproj | 1 + src/React.Sample.Mvc4/Views/Home/Index.cshtml | 38 +++++++++++-------- 5 files changed, 36 insertions(+), 29 deletions(-) create mode 100644 src/React.Sample.Mvc4/Content/lib/reactstrap.min.js diff --git a/src/React.Sample.Mvc4/App_Start/ReactConfig.cs b/src/React.Sample.Mvc4/App_Start/ReactConfig.cs index 5eb806bd9..5e3c6a1fa 100644 --- a/src/React.Sample.Mvc4/App_Start/ReactConfig.cs +++ b/src/React.Sample.Mvc4/App_Start/ReactConfig.cs @@ -19,6 +19,7 @@ public static void Configure() ReactSiteConfiguration.Configuration .SetReuseJavaScriptEngines(true) .SetAllowJavaScriptPrecompilation(true) + .AddScriptWithoutTransform("~/Content/lib/reactstrap.min.js") .AddScript("~/Content/Sample.jsx"); JsEngineSwitcher.Current.DefaultEngineName = V8JsEngine.EngineName; diff --git a/src/React.Sample.Mvc4/Content/Sample.jsx b/src/React.Sample.Mvc4/Content/Sample.jsx index 5b4946619..61c1fc91d 100644 --- a/src/React.Sample.Mvc4/Content/Sample.jsx +++ b/src/React.Sample.Mvc4/Content/Sample.jsx @@ -19,24 +19,24 @@ function HooksDemo() { class CommentsBox extends React.Component { static propTypes = { initialComments: PropTypes.array.isRequired, - page: PropTypes.number, + page: PropTypes.number }; state = { comments: this.props.initialComments, page: this.props.page, hasMore: true, - loadingMore: false, + loadingMore: false }; loadMoreClicked = evt => { var nextPage = this.state.page + 1; this.setState({ page: nextPage, - loadingMore: true, + loadingMore: true }); - var url = evt.target.href; + var url = '/comments/page-' + (this.state.page + 1); var xhr = new XMLHttpRequest(); xhr.open('GET', url, true); xhr.setRequestHeader('Content-Type', 'application/json'); @@ -45,7 +45,7 @@ class CommentsBox extends React.Component { this.setState({ comments: this.state.comments.concat(data.comments), hasMore: data.hasMore, - loadingMore: false, + loadingMore: false }); }; xhr.send(); @@ -72,12 +72,9 @@ class CommentsBox extends React.Component { return Loading...; } else if (this.state.hasMore) { return ( - + Load More - + ); } else { return No more comments; @@ -87,7 +84,7 @@ class CommentsBox extends React.Component { class Comment extends React.Component { static propTypes = { - author: PropTypes.object.isRequired, + author: PropTypes.object.isRequired }; render() { @@ -104,7 +101,7 @@ class Comment extends React.Component { class Avatar extends React.Component { static propTypes = { - author: PropTypes.object.isRequired, + author: PropTypes.object.isRequired }; render() { @@ -114,7 +111,7 @@ class Avatar extends React.Component { alt={'Photo of ' + this.props.author.Name} width={50} height={50} - className="commentPhoto" + className="commentPhoto mr-1" /> ); } diff --git a/src/React.Sample.Mvc4/Content/lib/reactstrap.min.js b/src/React.Sample.Mvc4/Content/lib/reactstrap.min.js new file mode 100644 index 000000000..13d6e3221 --- /dev/null +++ b/src/React.Sample.Mvc4/Content/lib/reactstrap.min.js @@ -0,0 +1,2 @@ +(function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("react"),require("react-dom"),require("react-popper")):"function"==typeof define&&define.amd?define(["exports","react","react-dom","react-popper"],t):(e=e||self,t(e.Reactstrap={},e.React,e.ReactDOM,e.ReactPopper || undefined))})(this,function(e,t,o,n){"use strict";var V=String.fromCharCode;function a(){return a=Object.assign||function(e){for(var t,o=1;oo;o++)t["_"+V(o)]=o;var n=Object.getOwnPropertyNames(t).map(function(e){return t[e]});if("0123456789"!==n.join(""))return!1;var a={};return["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t"].forEach(function(e){a[e]=e}),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},a)).join("")}catch(e){return!1}}()?Object.assign:function(e){for(var t,o,n=p(e),a=1;a=t.which)for(var r,l=this.getMenuItems(),d=V(t.which).toLowerCase(),p=0;pe.activeIndex?this.setState({direction:this.state.indicatorClicked?"left":"right"}):this.props.activeIndex!==e.activeIndex&&this.setState({direction:this.state.indicatorClicked?"right":"left"}),this.setState({indicatorClicked:!1})},o.componentWillUnmount=function(){this.clearInterval(),document.removeEventListener("keyup",this.handleKeyPress)},o.setInterval=function(e){function t(){return e.apply(this,arguments)}return t.toString=function(){return e.toString()},t}(function(e){void 0===e&&(e=this.props),this.clearInterval(),e.interval&&(this.cycleInterval=setInterval(function(){e.next()},parseInt(e.interval,10)))}),o.clearInterval=function(e){function t(){return e.apply(this,arguments)}return t.toString=function(){return e.toString()},t}(function(){clearInterval(this.cycleInterval)}),o.hoverStart=function(){if("hover"===this.props.pause&&this.clearInterval(),this.props.mouseEnter){var e;(e=this.props).mouseEnter.apply(e,arguments)}},o.hoverEnd=function(){if("hover"===this.props.pause&&this.setInterval(),this.props.mouseLeave){var e;(e=this.props).mouseLeave.apply(e,arguments)}},o.handleKeyPress=function(e){this.props.keyboard&&(37===e.keyCode?this.props.previous():39===e.keyCode&&this.props.next())},o.renderItems=function(e,t){var o=this,n=this.props.slide;return J.createElement("div",{role:"listbox",className:t},e.map(function(e,t){var a=t===o.props.activeIndex;return J.cloneElement(e,{in:a,slide:n})}))},o.render=function(){var t=this,o=this.props,n=o.cssModule,a=o.slide,s=o.className,r=v(se(s,"carousel",a&&"slide"),n),l=v(se("carousel-inner"),n),i=this.props.children.filter(function(e){return null!==e&&void 0!==e&&"boolean"!=typeof e}),d=i.every(function(e){return e.type===Co});if(d)return J.createElement("div",{className:r,onMouseEnter:this.hoverStart,onMouseLeave:this.hoverEnd},this.renderItems(i,l));if(i[0]instanceof Array){var p=i[0],c=i[1],u=i[2];return J.createElement("div",{className:r,onMouseEnter:this.hoverStart,onMouseLeave:this.hoverEnd},this.renderItems(p,l),c,u)}var g=i[0],m=J.cloneElement(g,{onClickHandler:function(o){"function"==typeof g.props.onClickHandler&&t.setState({indicatorClicked:!0},function(){return g.props.onClickHandler(o)})}}),f=i[1],b=i[2],h=i[3];return J.createElement("div",{className:r,onMouseEnter:this.hoverStart,onMouseLeave:this.hoverEnd},m,this.renderItems(f,l),b,h)},t}(J.Component);Mo.propTypes={activeIndex:ae.number,next:ae.func.isRequired,previous:ae.func.isRequired,keyboard:ae.bool,pause:ae.oneOf(["hover",!1]),ride:ae.oneOf(["carousel"]),interval:ae.oneOfType([ae.number,ae.string,ae.bool]),children:ae.array,mouseEnter:ae.func,mouseLeave:ae.func,slide:ae.bool,cssModule:ae.object,className:ae.string},Mo.defaultProps={interval:5e3,pause:"hover",keyboard:!0,slide:!0},Mo.childContextTypes={direction:ae.string};var ko=function(e){var t=e.direction,o=e.onClickHandler,n=e.cssModule,a=e.directionText,s=e.className,r=v(se(s,"carousel-control-"+t),n),l=v(se("carousel-control-"+t+"-icon"),n),i=v(se("sr-only"),n);return J.createElement("a",{className:r,role:"button",tabIndex:"0",onClick:function(t){t.preventDefault(),o()}},J.createElement("span",{className:l,"aria-hidden":"true"}),J.createElement("span",{className:i},a||t))};ko.propTypes={direction:ae.oneOf(["prev","next"]).isRequired,onClickHandler:ae.func.isRequired,cssModule:ae.object,directionText:ae.string,className:ae.string};var Oo=function(e){var t=e.items,o=e.activeIndex,n=e.cssModule,a=e.onClickHandler,s=e.className,r=v(se(s,"carousel-indicators"),n),l=t.map(function(e,t){var s=v(se({active:o===t}),n);return J.createElement("li",{key:""+(e.key||Object.values(e).join("")),onClick:function(o){o.preventDefault(),a(t)},className:s})});return J.createElement("ol",{className:r},l)};Oo.propTypes={items:ae.array.isRequired,activeIndex:ae.number.isRequired,cssModule:ae.object,onClickHandler:ae.func.isRequired,className:ae.string};var Po=function(e){var t=e.captionHeader,o=e.captionText,n=e.cssModule,a=e.className,s=v(se(a,"carousel-caption","d-none","d-md-block"),n);return J.createElement("div",{className:s},J.createElement("h3",null,t),J.createElement("p",null,o))};Po.propTypes={captionHeader:ae.string,captionText:ae.string.isRequired,cssModule:ae.object,className:ae.string};var wo={items:ae.array.isRequired,indicators:ae.bool,controls:ae.bool,autoPlay:ae.bool,defaultActiveIndex:ae.number,activeIndex:ae.number,next:ae.func,previous:ae.func,goToIndex:ae.func},_o=function(e){function t(t){var o;return o=e.call(this,t)||this,o.animating=!1,o.state={activeIndex:t.defaultActiveIndex||0},o.next=o.next.bind(l(l(o))),o.previous=o.previous.bind(l(l(o))),o.goToIndex=o.goToIndex.bind(l(l(o))),o.onExiting=o.onExiting.bind(l(l(o))),o.onExited=o.onExited.bind(l(l(o))),o}s(t,e);var o=t.prototype;return o.onExiting=function(){this.animating=!0},o.onExited=function(){this.animating=!1},o.next=function(){if(!this.animating){var e=this.state.activeIndex===this.props.items.length-1?0:this.state.activeIndex+1;this.setState({activeIndex:e})}},o.previous=function(){if(!this.animating){var e=0===this.state.activeIndex?this.props.items.length-1:this.state.activeIndex-1;this.setState({activeIndex:e})}},o.goToIndex=function(e){this.animating||this.setState({activeIndex:e})},o.render=function(){var e=this,t=this.props,o=t.defaultActiveIndex,n=t.autoPlay,s=t.indicators,l=t.controls,i=t.items,d=t.goToIndex,p=r(t,["defaultActiveIndex","autoPlay","indicators","controls","items","goToIndex"]),c=this.state.activeIndex,u=i.map(function(t){return J.createElement(Co,{onExiting:e.onExiting,onExited:e.onExited,key:t.src},J.createElement("img",{className:"d-block w-100",src:t.src,alt:t.altText}),J.createElement(Po,{captionText:t.caption,captionHeader:t.header||t.caption}))});return J.createElement(Mo,a({activeIndex:c,next:this.next,previous:this.previous,ride:n?"carousel":void 0},p),s&&J.createElement(Oo,{items:i,activeIndex:p.activeIndex||c,onClickHandler:d||this.goToIndex}),u,l&&J.createElement(ko,{direction:"prev",directionText:"Previous",onClickHandler:p.previous||this.previous}),l&&J.createElement(ko,{direction:"next",directionText:"Next",onClickHandler:p.next||this.next}))},t}(t.Component);_o.propTypes=wo,_o.defaultProps={controls:!0,indicators:!0,autoPlay:!0};var Do={tag:he,className:ae.string,cssModule:ae.object},Io=function(e){var t=e.className,o=e.cssModule,n=e.tag,s=r(e,["className","cssModule","tag"]),l=v(se(t,"card-subtitle"),o);return J.createElement(n,a({},s,{className:l}))};Io.propTypes=Do,Io.defaultProps={tag:"div"};var Ro={tag:he,className:ae.string,cssModule:ae.object},jo=function(e){var t=e.className,o=e.cssModule,n=e.tag,s=r(e,["className","cssModule","tag"]),l=v(se(t,"card-text"),o);return J.createElement(n,a({},s,{className:l}))};jo.propTypes=Ro,jo.defaultProps={tag:"p"};var So={tag:he,className:ae.string,cssModule:ae.object},Ao=function(e){var t=e.className,o=e.cssModule,n=e.tag,s=r(e,["className","cssModule","tag"]),l=v(se(t,"card-title"),o);return J.createElement(n,a({},s,{className:l}))};Ao.propTypes=So,Ao.defaultProps={tag:"div"};var Lo={className:ae.string,id:ae.oneOfType([ae.string,ae.number]).isRequired,type:ae.string.isRequired,label:ae.node,inline:ae.bool,valid:ae.bool,invalid:ae.bool,bsSize:ae.string,cssModule:ae.object,children:ae.oneOfType([ae.node,ae.array,ae.func]),innerRef:ae.oneOfType([ae.object,ae.string,ae.func])};U.propTypes=Lo;var zo={children:ae.node.isRequired,className:ae.string,placement:ae.string,placementPrefix:ae.string,arrowClassName:ae.string,hideArrow:ae.bool,tag:he,isOpen:ae.bool.isRequired,cssModule:ae.object,offset:ae.oneOfType([ae.string,ae.number]),fallbackPlacement:ae.oneOfType([ae.string,ae.array]),flip:ae.bool,container:be,target:be.isRequired,modifiers:ae.object,boundariesElement:ae.oneOfType([ae.string,k])},Uo={popperManager:ae.object.isRequired},Fo=function(e){function t(t){var o;return o=e.call(this,t)||this,o.handlePlacementChange=o.handlePlacementChange.bind(l(l(o))),o.setTargetNode=o.setTargetNode.bind(l(l(o))),o.getTargetNode=o.getTargetNode.bind(l(l(o))),o.getRef=o.getRef.bind(l(l(o))),o.state={},o}s(t,e);var i=t.prototype;return i.getChildContext=function(){return{popperManager:{setTargetNode:this.setTargetNode,getTargetNode:this.getTargetNode}}},i.componentDidUpdate=function(){this._element&&this._element.childNodes&&this._element.childNodes[0]&&this._element.childNodes[0].focus&&this._element.childNodes[0].focus()},i.setTargetNode=function(e){this.targetNode=e},i.getTargetNode=function(){return this.targetNode},i.getContainerNode=function(){return _(this.props.container)},i.getRef=function(e){this._element=e},i.handlePlacementChange=function(e){return this.state.placement!==e.placement&&this.setState({placement:e.placement}),e},i.renderChildren=function(){var e=this.props,t=e.cssModule,o=e.children,s=e.isOpen,l=e.flip,i=e.target,d=e.offset,p=e.fallbackPlacement,c=e.placementPrefix,u=e.arrowClassName,g=e.hideArrow,m=e.className,f=e.tag,b=e.container,h=e.modifiers,y=e.boundariesElement,E=r(e,["cssModule","children","isOpen","flip","target","offset","fallbackPlacement","placementPrefix","arrowClassName","hideArrow","className","tag","container","modifiers","boundariesElement"]),N=v(se("arrow",u),t),x=(this.state.placement||E.placement).split("-")[0],T=v(se(m,c?c+"-"+x:x),this.props.cssModule),C=a({offset:{offset:d},flip:{enabled:l,behavior:p},preventOverflow:{boundariesElement:y},update:{enabled:!0,order:950,fn:this.handlePlacementChange}},h);return J.createElement(n.Popper,a({modifiers:C},E,{component:f,className:T,"x-placement":this.state.placement||E.placement}),o,!g&&J.createElement(n.Arrow,{className:N}))},i.render=function(){return this.setTargetNode(_(this.props.target)),this.props.isOpen?"inline"===this.props.container?this.renderChildren():o.createPortal(J.createElement("div",{ref:this.getRef},this.renderChildren()),this.getContainerNode()):null},t}(J.Component);Fo.propTypes=zo,Fo.defaultProps={boundariesElement:"scrollParent",placement:"auto",hideArrow:!1,isOpen:!1,offset:0,fallbackPlacement:"flip",flip:!0,container:"body",modifiers:{}},Fo.childContextTypes=Uo;var Wo=function(e,t){return t.popperManager.setTargetNode(_(e.target)),null};Wo.contextTypes={popperManager:ae.object.isRequired},Wo.propTypes={target:be.isRequired};var Go={placement:ae.oneOf(xe),target:be.isRequired,container:be,isOpen:ae.bool,disabled:ae.bool,hideArrow:ae.bool,boundariesElement:ae.oneOfType([ae.string,k]),className:ae.string,innerClassName:ae.string,arrowClassName:ae.string,cssModule:ae.object,toggle:ae.func,autohide:ae.bool,placementPrefix:ae.string,delay:ae.oneOfType([ae.shape({show:ae.number,hide:ae.number}),ae.number]),modifiers:ae.object,offset:ae.oneOfType([ae.string,ae.number]),innerRef:ae.oneOfType([ae.func,ae.string,ae.object]),trigger:ae.string},qo={show:0,hide:250},Bo=function(e){function t(t){var o;return o=e.call(this,t)||this,o._target=null,o.addTargetEvents=o.addTargetEvents.bind(l(l(o))),o.handleDocumentClick=o.handleDocumentClick.bind(l(l(o))),o.removeTargetEvents=o.removeTargetEvents.bind(l(l(o))),o.toggle=o.toggle.bind(l(l(o))),o.showWithDelay=o.showWithDelay.bind(l(l(o))),o.hideWithDelay=o.hideWithDelay.bind(l(l(o))),o.onMouseOverTooltipContent=o.onMouseOverTooltipContent.bind(l(l(o))),o.onMouseLeaveTooltipContent=o.onMouseLeaveTooltipContent.bind(l(l(o))),o.show=o.show.bind(l(l(o))),o.hide=o.hide.bind(l(l(o))),o.onEscKeyDown=o.onEscKeyDown.bind(l(l(o))),o.getRef=o.getRef.bind(l(l(o))),o}s(t,e);var o=t.prototype;return o.componentDidMount=function(){this.updateTarget()},o.componentWillUnmount=function(){this.removeTargetEvents()},o.onMouseOverTooltipContent=function(){-1=t.openCount){var e=v("modal-open",this.props.cssModule),o=new RegExp("(^| )"+e+"( |$)");document.body.className=document.body.className.replace(o," ").trim()}t.openCount-=1,h(this._originalBodyPadding)},o.renderModalDialog=function(){var e,t=this,o=x(this.props,mn),n="modal-dialog";return J.createElement("div",a({},o,{className:v(se(n,this.props.className,(e={},e["modal-"+this.props.size]=this.props.size,e[n+"-centered"]=this.props.centered,e)),this.props.cssModule),role:"document",ref:function(e){t._dialog=e}}),J.createElement("div",{className:v(se("modal-content",this.props.contentClassName),this.props.cssModule)},this.props.children))},o.render=function(){if(this.state.isOpen){var e=this.props,t=e.wrapClassName,o=e.modalClassName,n=e.backdropClassName,s=e.cssModule,r=e.isOpen,l=e.backdrop,i=e.role,d=e.labelledBy,p=e.external,c=e.innerRef,u={onClick:this.handleBackdropClick,onMouseDown:this.handleBackdropMouseDown,onKeyUp:this.handleEscape,onKeyDown:this.handleTab,style:{display:"block"},"aria-labelledby":d,role:i,tabIndex:"-1"},g=this.props.fade,m=a({},z.defaultProps,this.props.modalTransition,{baseClass:g?this.props.modalTransition.baseClass:"",timeout:g?this.props.modalTransition.timeout:0}),f=a({},z.defaultProps,this.props.backdropTransition,{baseClass:g?this.props.backdropTransition.baseClass:"",timeout:g?this.props.backdropTransition.timeout:0}),b=l&&(g?J.createElement(z,a({},f,{in:r&&!!l,cssModule:s,className:v(se("modal-backdrop",n),s)})):J.createElement("div",{className:v(se("modal-backdrop","show",n),s)}));return J.createElement(cn,{node:this._element},J.createElement("div",{className:v(t)},J.createElement(z,a({},u,m,{in:r,onEntered:this.onOpened,onExited:this.onClosed,cssModule:s,className:v(se("modal",o),s),innerRef:c}),p,this.renderModalDialog()),b))}return null},t}(J.Component);bn.propTypes=gn,bn.defaultProps=fn,bn.openCount=0;var hn={tag:he,wrapTag:he,toggle:ae.func,className:ae.string,cssModule:ae.object,children:ae.node,closeAriaLabel:ae.string,charCode:ae.oneOfType([ae.string,ae.number]),close:ae.object},yn=function(e){var t,o=e.className,n=e.cssModule,s=e.children,l=e.toggle,i=e.tag,d=e.wrapTag,p=e.closeAriaLabel,c=e.charCode,u=e.close,g=r(e,["className","cssModule","children","toggle","tag","wrapTag","closeAriaLabel","charCode","close"]),m=v(se(o,"modal-header"),n);if(!u&&l){var f="number"==typeof c?V(c):c;t=J.createElement("button",{type:"button",onClick:l,className:v("close",n),"aria-label":p},J.createElement("span",{"aria-hidden":"true"},f))}return J.createElement(d,a({},g,{className:m}),J.createElement(i,{className:v("modal-title",n)},s),u||t)};yn.propTypes=hn,yn.defaultProps={tag:"h5",wrapTag:"div",closeAriaLabel:"Close",charCode:215};var En={tag:he,className:ae.string,cssModule:ae.object},Nn=function(e){var t=e.className,o=e.cssModule,n=e.tag,s=r(e,["className","cssModule","tag"]),l=v(se(t,"modal-body"),o);return J.createElement(n,a({},s,{className:l}))};Nn.propTypes=En,Nn.defaultProps={tag:"div"};var vn={tag:he,className:ae.string,cssModule:ae.object},xn=function(e){var t=e.className,o=e.cssModule,n=e.tag,s=r(e,["className","cssModule","tag"]),l=v(se(t,"modal-footer"),o);return J.createElement(n,a({},s,{className:l}))};xn.propTypes=vn,xn.defaultProps={tag:"div"};var Tn=function(e){var t=se("tooltip","show",e.className),o=se("tooltip-inner",e.innerClassName);return J.createElement(Bo,a({},e,{className:t,innerClassName:o}))};Tn.propTypes=Go,Tn.defaultProps={placement:"top",autohide:!0,placementPrefix:"bs-tooltip",trigger:"click hover focus"};var Cn={className:ae.string,cssModule:ae.object,size:ae.string,bordered:ae.bool,borderless:ae.bool,striped:ae.bool,inverse:M(ae.bool,"Please use the prop \"dark\""),dark:ae.bool,hover:ae.bool,responsive:ae.oneOfType([ae.bool,ae.string]),tag:he,responsiveTag:he,innerRef:ae.oneOfType([ae.func,ae.string,ae.object])},Mn=function(e){var t=e.className,o=e.cssModule,n=e.size,s=e.bordered,l=e.borderless,i=e.striped,d=e.inverse,p=e.dark,c=e.hover,u=e.responsive,g=e.tag,m=e.responsiveTag,f=e.innerRef,b=r(e,["className","cssModule","size","bordered","borderless","striped","inverse","dark","hover","responsive","tag","responsiveTag","innerRef"]),h=v(se(t,"table",!!n&&"table-"+n,!!s&&"table-bordered",!!l&&"table-borderless",!!i&&"table-striped",!!(p||d)&&"table-dark",!!c&&"table-hover"),o),y=J.createElement(g,a({},b,{ref:f,className:h}));if(u){var E=!0===u?"table-responsive":"table-responsive-"+u;return J.createElement(m,{className:E},y)}return y};Mn.propTypes=Cn,Mn.defaultProps={tag:"table",responsiveTag:"div"};var kn={tag:he,flush:ae.bool,className:ae.string,cssModule:ae.object},On=function(e){var t=e.className,o=e.cssModule,n=e.tag,s=e.flush,l=r(e,["className","cssModule","tag","flush"]),i=v(se(t,"list-group",!!s&&"list-group-flush"),o);return J.createElement(n,a({},l,{className:i}))};On.propTypes=kn,On.defaultProps={tag:"ul"};var Pn={children:ae.node,inline:ae.bool,tag:he,innerRef:ae.oneOfType([ae.object,ae.func,ae.string]),className:ae.string,cssModule:ae.object},wn=function(e){function t(t){var o;return o=e.call(this,t)||this,o.getRef=o.getRef.bind(l(l(o))),o.submit=o.submit.bind(l(l(o))),o}s(t,e);var o=t.prototype;return o.getRef=function(e){this.props.innerRef&&this.props.innerRef(e),this.ref=e},o.submit=function(){this.ref&&this.ref.submit()},o.render=function(){var e=this.props,t=e.className,o=e.cssModule,n=e.inline,s=e.tag,l=e.innerRef,i=r(e,["className","cssModule","inline","tag","innerRef"]),d=v(se(t,!!n&&"form-inline"),o);return J.createElement(s,a({},i,{ref:l,className:d}))},t}(t.Component);wn.propTypes=Pn,wn.defaultProps={tag:"form"};var _n={children:ae.node,tag:he,className:ae.string,cssModule:ae.object,valid:ae.bool,tooltip:ae.bool},Dn=function(e){var t=e.className,o=e.cssModule,n=e.valid,s=e.tooltip,l=e.tag,i=r(e,["className","cssModule","valid","tooltip","tag"]),d=s?"tooltip":"feedback",p=v(se(t,n?"valid-"+d:"invalid-"+d),o);return J.createElement(l,a({},i,{className:p}))};Dn.propTypes=_n,Dn.defaultProps={tag:"div",valid:void 0};var In={children:ae.node,row:ae.bool,check:ae.bool,inline:ae.bool,disabled:ae.bool,tag:he,className:ae.string,cssModule:ae.object},Rn=function(e){var t=e.className,o=e.cssModule,n=e.row,s=e.disabled,l=e.check,i=e.inline,d=e.tag,p=r(e,["className","cssModule","row","disabled","check","inline","tag"]),c=v(se(t,!!n&&"row",l?"form-check":"form-group",!!(l&&i)&&"form-check-inline",!!(l&&s)&&"disabled"),o);return J.createElement(d,a({},p,{className:c}))};Rn.propTypes=In,Rn.defaultProps={tag:"div"};var jn={children:ae.node,inline:ae.bool,tag:he,color:ae.string,className:ae.string,cssModule:ae.object},Sn=function(e){var t=e.className,o=e.cssModule,n=e.inline,s=e.color,l=e.tag,i=r(e,["className","cssModule","inline","color","tag"]),d=v(se(t,!n&&"form-text",!!s&&"text-"+s),o);return J.createElement(l,a({},i,{className:d}))};Sn.propTypes=jn,Sn.defaultProps={tag:"small",color:"muted"};var An={children:ae.node,type:ae.string,size:ae.string,bsSize:ae.string,state:M(ae.string,"Please use the props \"valid\" and \"invalid\" to indicate the state."),valid:ae.bool,invalid:ae.bool,tag:he,innerRef:ae.oneOfType([ae.object,ae.func,ae.string]),static:M(ae.bool,"Please use the prop \"plaintext\""),plaintext:ae.bool,addon:ae.bool,className:ae.string,cssModule:ae.object},Ln=function(e){function t(t){var o;return o=e.call(this,t)||this,o.getRef=o.getRef.bind(l(l(o))),o.focus=o.focus.bind(l(l(o))),o}s(t,e);var o=t.prototype;return o.getRef=function(e){this.props.innerRef&&this.props.innerRef(e),this.ref=e},o.focus=function(){this.ref&&this.ref.focus()},o.render=function(){var e=this.props,t=e.className,o=e.cssModule,n=e.type,s=e.bsSize,l=e.state,i=e.valid,d=e.invalid,p=e.tag,c=e.addon,u=e.static,g=e.plaintext,m=e.innerRef,f=r(e,["className","cssModule","type","bsSize","state","valid","invalid","tag","addon","static","plaintext","innerRef"]),b=-1<["radio","checkbox"].indexOf(n),h=/\D/g,y=p||("select"===n||"textarea"===n?n:"input"),E="form-control";g||u?(E+="-plaintext",y=p||"input"):"file"===n?E+="-file":b&&(c?E=null:E="form-check-input"),l&&"undefined"==typeof i&&"undefined"==typeof d&&("danger"===l?d=!0:"success"===l&&(i=!0)),f.size&&h.test(f.size)&&(C("Please use the prop \"bsSize\" instead of the \"size\" to bootstrap's input sizing."),s=f.size,delete f.size);var N=v(se(t,d&&"is-invalid",i&&"is-valid",!!s&&"form-control-"+s,E),o);return("input"===y||p&&"function"==typeof p)&&(f.type=n),f.children&&!(g||u||"select"===n||"string"!=typeof y||"select"===y)&&(C("Input with a type of \""+n+"\" cannot have children. Please use \"value\"/\"defaultValue\" instead."),delete f.children),J.createElement(y,a({},f,{ref:m,className:N}))},t}(J.Component);Ln.propTypes=An,Ln.defaultProps={type:"text"};var zn={tag:he,size:ae.string,className:ae.string,cssModule:ae.object},Un=function(e){var t=e.className,o=e.cssModule,n=e.tag,s=e.size,l=r(e,["className","cssModule","tag","size"]),i=v(se(t,"input-group",s?"input-group-"+s:null),o);return J.createElement(n,a({},l,{className:i}))};Un.propTypes=zn,Un.defaultProps={tag:"div"};var Fn={tag:he,className:ae.string,cssModule:ae.object},Wn=function(e){var t=e.className,o=e.cssModule,n=e.tag,s=r(e,["className","cssModule","tag"]),l=v(se(t,"input-group-text"),o);return J.createElement(n,a({},s,{className:l}))};Wn.propTypes=Fn,Wn.defaultProps={tag:"span"};var Gn={tag:he,addonType:ae.oneOf(["prepend","append"]).isRequired,children:ae.node,className:ae.string,cssModule:ae.object},qn=function(e){var t=e.className,o=e.cssModule,n=e.tag,s=e.addonType,l=e.children,i=r(e,["className","cssModule","tag","addonType","children"]),d=v(se(t,"input-group-"+s),o);return"string"==typeof l?J.createElement(n,a({},i,{className:d}),J.createElement(Wn,{children:l})):J.createElement(n,a({},i,{className:d,children:l}))};qn.propTypes=Gn,qn.defaultProps={tag:"div"};var Bn={tag:he,addonType:ae.oneOf(["prepend","append"]).isRequired,children:ae.node,groupClassName:ae.string,groupAttributes:ae.object,className:ae.string,cssModule:ae.object},Kn=function(e){C("The \"InputGroupButton\" component has been deprecated.\nPlease use component \"InputGroupAddon\".");var t=e.children,o=e.groupClassName,n=e.groupAttributes,s=r(e,["children","groupClassName","groupAttributes"]);if("string"==typeof t){var l=s.cssModule,i=s.tag,d=s.addonType,p=r(s,["cssModule","tag","addonType"]),c=a({},n,{cssModule:l,tag:i,addonType:d});return J.createElement(qn,a({},c,{className:o}),J.createElement(lt,a({},p,{children:t})))}return J.createElement(qn,a({},e,{children:t}))};Kn.propTypes=Bn;var Hn={addonType:ae.oneOf(["prepend","append"]).isRequired,children:ae.node},Xn=function(e){return J.createElement(Qe,e)};Xn.propTypes=Hn;var $n=ae.oneOfType([ae.number,ae.string]),Vn=ae.oneOfType([ae.string,ae.number,ae.shape({size:$n,push:M($n,"Please use the prop \"order\""),pull:M($n,"Please use the prop \"order\""),order:$n,offset:$n})]),Jn={children:ae.node,hidden:ae.bool,check:ae.bool,size:ae.string,for:ae.string,tag:he,className:ae.string,cssModule:ae.object,xs:Vn,sm:Vn,md:Vn,lg:Vn,xl:Vn,widths:ae.array},Yn=function(e,t,o){if(!0===o||""===o)return e?"col":"col-"+t;return"auto"===o?e?"col-auto":"col-"+t+"-auto":e?"col-"+o:"col-"+t+"-"+o},Zn=function(e){var t=e.className,o=e.cssModule,n=e.hidden,s=e.widths,l=e.tag,i=e.check,d=e.size,p=e.for,c=r(e,["className","cssModule","hidden","widths","tag","check","size","for"]),u=[];s.forEach(function(t,n){var a=e[t];if(delete c[t],a||""===a){var s,r=!n;if(De(a)){var l,i=r?"-":"-"+t+"-";s=Yn(r,t,a.size),u.push(v(se((l={},l[s]=a.size||""===a.size,l["order"+i+a.order]=a.order||0===a.order,l["offset"+i+a.offset]=a.offset||0===a.offset,l))),o)}else s=Yn(r,t,a),u.push(s)}});var g=v(se(t,!!n&&"sr-only",!!i&&"form-check-label",!!d&&"col-form-label-"+d,u,!!u.length&&"col-form-label"),o);return J.createElement(l,a({htmlFor:p},c,{className:g}))};Zn.propTypes=Jn,Zn.defaultProps={tag:"label",widths:["xs","sm","md","lg","xl"]};var Qn={body:ae.bool,bottom:ae.bool,children:ae.node,className:ae.string,cssModule:ae.object,heading:ae.bool,left:ae.bool,list:ae.bool,middle:ae.bool,object:ae.bool,right:ae.bool,tag:he,top:ae.bool},ea=function(e){var t,o=e.body,n=e.bottom,s=e.className,l=e.cssModule,i=e.heading,d=e.left,p=e.list,c=e.middle,u=e.object,g=e.right,m=e.tag,f=e.top,b=r(e,["body","bottom","className","cssModule","heading","left","list","middle","object","right","tag","top"]);t=i?"h4":b.href?"a":b.src||u?"img":p?"ul":"div";var h=m||t,y=v(se(s,{"media-body":o,"media-heading":i,"media-left":d,"media-right":g,"media-top":f,"media-bottom":n,"media-middle":c,"media-object":u,"media-list":p,media:!o&&!i&&!d&&!g&&!f&&!n&&!c&&!u&&!p}),l);return J.createElement(h,a({},b,{className:y}))};ea.propTypes=Qn;var ta={children:ae.node,className:ae.string,listClassName:ae.string,cssModule:ae.object,size:ae.string,tag:he,listTag:he,"aria-label":ae.string},oa=function(e){var t,o=e.className,n=e.listClassName,s=e.cssModule,l=e.size,i=e.tag,d=e.listTag,p=e["aria-label"],c=r(e,["className","listClassName","cssModule","size","tag","listTag","aria-label"]),u=v(se(o),s),g=v(se(n,"pagination",(t={},t["pagination-"+l]=!!l,t)),s);return J.createElement(i,{className:u,"aria-label":p},J.createElement(d,a({},c,{className:g})))};oa.propTypes=ta,oa.defaultProps={tag:"nav",listTag:"ul","aria-label":"pagination"};var na={active:ae.bool,children:ae.node,className:ae.string,cssModule:ae.object,disabled:ae.bool,tag:he},aa=function(e){var t=e.active,o=e.className,n=e.cssModule,s=e.disabled,l=e.tag,i=r(e,["active","className","cssModule","disabled","tag"]),d=v(se(o,"page-item",{active:t,disabled:s}),n);return J.createElement(l,a({},i,{className:d}))};aa.propTypes=na,aa.defaultProps={tag:"li"};var sa={"aria-label":ae.string,children:ae.node,className:ae.string,cssModule:ae.object,next:ae.bool,previous:ae.bool,tag:he},ra=function(e){var t,o=e.className,n=e.cssModule,s=e.next,l=e.previous,i=e.tag,d=r(e,["className","cssModule","next","previous","tag"]),p=v(se(o,"page-link"),n);l?t="Previous":s&&(t="Next");var c,u=e["aria-label"]||t;l?c="\xAB":s&&(c="\xBB");var g=e.children;return g&&Array.isArray(g)&&0===g.length&&(g=null),d.href||"a"!==i||(i="button"),(l||s)&&(g=[J.createElement("span",{"aria-hidden":"true",key:"caret"},g||c),J.createElement("span",{className:"sr-only",key:"sr"},u)]),J.createElement(i,a({},d,{className:p,"aria-label":u}),g)};ra.propTypes=sa,ra.defaultProps={tag:"a"};var la={tag:he,activeTab:ae.any,className:ae.string,cssModule:ae.object},ia={activeTabId:ae.any},da=function(e){function t(t){var o;return o=e.call(this,t)||this,o.state={activeTab:o.props.activeTab},o}s(t,e),t.getDerivedStateFromProps=function(e,t){return t.activeTab===e.activeTab?null:{activeTab:e.activeTab}};var o=t.prototype;return o.getChildContext=function(){return{activeTabId:this.state.activeTab}},o.render=function(){var e=this.props,t=e.className,o=e.cssModule,n=e.tag,s=x(this.props,Object.keys(la)),r=v(se("tab-content",t),o);return J.createElement(n,a({},s,{className:r}))},t}(t.Component);L(da),da.propTypes=la,da.defaultProps={tag:"div"},da.childContextTypes=ia;var pa={tag:he,className:ae.string,cssModule:ae.object,tabId:ae.any},ca={activeTabId:ae.any};K.propTypes=pa,K.defaultProps={tag:"div"},K.contextTypes=ca;var ua={tag:he,fluid:ae.bool,className:ae.string,cssModule:ae.object},ga=function(e){var t=e.className,o=e.cssModule,n=e.tag,s=e.fluid,l=r(e,["className","cssModule","tag","fluid"]),i=v(se(t,"jumbotron",!!s&&"jumbotron-fluid"),o);return J.createElement(n,a({},l,{className:i}))};ga.propTypes=ua,ga.defaultProps={tag:"div"};var ma={children:ae.node,className:ae.string,closeClassName:ae.string,closeAriaLabel:ae.string,cssModule:ae.object,color:ae.string,fade:ae.bool,isOpen:ae.bool,toggle:ae.func,tag:he,transition:ae.shape(z.propTypes),innerRef:ae.oneOfType([ae.object,ae.string,ae.func])},fa={color:"success",isOpen:!0,tag:"div",closeAriaLabel:"Close",fade:!0,transition:a({},z.defaultProps,{unmountOnExit:!0})};H.propTypes=ma,H.defaultProps=fa;var ba,ha=a({},Vt.propTypes,{isOpen:ae.bool,children:ae.oneOfType([ae.arrayOf(ae.node),ae.node]),tag:he,className:ae.node,navbar:ae.bool,cssModule:ae.object,innerRef:ae.oneOfType([ae.func,ae.string,ae.object])}),ya=a({},Vt.defaultProps,{isOpen:!1,appear:!1,enter:!0,exit:!0,tag:"div",timeout:ye.Collapse}),Ea=(ba={},ba[Ne.ENTERING]="collapsing",ba[Ne.ENTERED]="collapse show",ba[Ne.EXITING]="collapsing",ba[Ne.EXITED]="collapse",ba),Na=function(e){function t(t){var o;return o=e.call(this,t)||this,o.state={height:null},["onEntering","onEntered","onExit","onExiting","onExited"].forEach(function(e){o[e]=o[e].bind(l(l(o)))}),o}s(t,e);var o=t.prototype;return o.onEntering=function(e,t){this.setState({height:$(e)}),this.props.onEntering(e,t)},o.onEntered=function(e,t){this.setState({height:null}),this.props.onEntered(e,t)},o.onExit=function(e){this.setState({height:$(e)}),this.props.onExit(e)},o.onExiting=function(e){e.offsetHeight;this.setState({height:0}),this.props.onExiting(e)},o.onExited=function(e){this.setState({height:null}),this.props.onExited(e)},o.render=function(){var e=this,t=this.props,o=t.tag,n=t.isOpen,s=t.className,l=t.navbar,i=t.cssModule,d=t.children,p=t.innerRef,c=r(t,["tag","isOpen","className","navbar","cssModule","children","innerRef"]),u=this.state.height,g=T(c,Ee),m=x(c,Ee);return J.createElement(Vt,a({},g,{in:n,onEntering:this.onEntering,onEntered:this.onEntered,onExit:this.onExit,onExiting:this.onExiting,onExited:this.onExited}),function(t){var n=X(t),r=v(se(s,n,l&&"navbar-collapse"),i),p=null===u?null:{height:u};return J.createElement(o,a({},m,{style:a({},m.style,p),className:r,ref:e.props.innerRef}),d)})},t}(t.Component);Na.propTypes=ha,Na.defaultProps=ya;var va={tag:he,active:ae.bool,disabled:ae.bool,color:ae.string,action:ae.bool,className:ae.any,cssModule:ae.object},xa=function(t){t.preventDefault()},Ta=function(e){var t=e.className,o=e.cssModule,n=e.tag,s=e.active,l=e.disabled,i=e.action,d=e.color,p=r(e,["className","cssModule","tag","active","disabled","action","color"]),c=v(se(t,!!s&&"active",!!l&&"disabled",!!i&&"list-group-item-action",!!d&&"list-group-item-"+d,"list-group-item"),o);return l&&(p.onClick=xa),J.createElement(n,a({},p,{className:c}))};Ta.propTypes=va,Ta.defaultProps={tag:"li"};var Ca={tag:he,className:ae.any,cssModule:ae.object},Ma=function(e){var t=e.className,o=e.cssModule,n=e.tag,s=r(e,["className","cssModule","tag"]),l=v(se(t,"list-group-item-heading"),o);return J.createElement(n,a({},s,{className:l}))};Ma.propTypes=Ca,Ma.defaultProps={tag:"h5"};var ka={tag:he,className:ae.any,cssModule:ae.object},Oa=function(e){var t=e.className,o=e.cssModule,n=e.tag,s=r(e,["className","cssModule","tag"]),l=v(se(t,"list-group-item-text"),o);return J.createElement(n,a({},s,{className:l}))};Oa.propTypes=ka,Oa.defaultProps={tag:"p"};var Pa=function(e){function t(t){var o;return o=e.call(this,t)||this,o.state={isOpen:!0},o.toggle=o.toggle.bind(l(l(o))),o}s(t,e);var o=t.prototype;return o.toggle=function(){this.setState({isOpen:!this.state.isOpen})},o.render=function(){return J.createElement(H,a({isOpen:this.state.isOpen,toggle:this.toggle},this.props))},t}(t.Component),wa=["defaultOpen"],_a=function(e){function t(t){var o;return o=e.call(this,t)||this,o.state={isOpen:t.defaultOpen||!1},o.toggle=o.toggle.bind(l(l(o))),o}s(t,e);var o=t.prototype;return o.toggle=function(){this.setState({isOpen:!this.state.isOpen})},o.render=function(){return J.createElement(dt,a({isOpen:this.state.isOpen,toggle:this.toggle},x(this.props,wa)))},t}(t.Component);_a.propTypes=a({defaultOpen:ae.bool},dt.propTypes);var Da=["toggleEvents","defaultOpen"],Ia={defaultOpen:ae.bool,toggler:ae.string.isRequired,toggleEvents:ae.arrayOf(ae.string)},Ra=function(e){function t(t){var o;return o=e.call(this,t)||this,o.togglers=null,o.removeEventListeners=null,o.toggle=o.toggle.bind(l(l(o))),o.state={isOpen:t.defaultOpen||!1},o}s(t,e);var o=t.prototype;return o.componentDidMount=function(){this.togglers=P(this.props.toggler),this.togglers.length&&(this.removeEventListeners=D(this.togglers,this.toggle,this.props.toggleEvents))},o.componentWillUnmount=function(){this.togglers.length&&this.removeEventListeners&&this.removeEventListeners()},o.toggle=function(t){this.setState(function(e){var t=e.isOpen;return{isOpen:!t}}),t.preventDefault()},o.render=function(){return J.createElement(Na,a({isOpen:this.state.isOpen},x(this.props,Da)))},t}(t.Component);Ra.propTypes=Ia,Ra.defaultProps={toggleEvents:Ce};var ja=["defaultOpen"],Sa=function(e){function t(t){var o;return o=e.call(this,t)||this,o.state={isOpen:t.defaultOpen||!1},o.toggle=o.toggle.bind(l(l(o))),o}s(t,e);var o=t.prototype;return o.toggle=function(){this.setState({isOpen:!this.state.isOpen})},o.render=function(){return J.createElement(Qe,a({isOpen:this.state.isOpen,toggle:this.toggle},x(this.props,ja)))},t}(t.Component);Sa.propTypes=a({defaultOpen:ae.bool},Qe.propTypes);var Aa=function(e){return C("The \"UncontrolledNavDropdown\" component has been deprecated.\nPlease use component \"UncontrolledDropdown\" with nav prop."),J.createElement(Sa,a({nav:!0},e))},La=["defaultOpen"],za=function(e){function t(t){var o;return o=e.call(this,t)||this,o.state={isOpen:t.defaultOpen||!1},o.toggle=o.toggle.bind(l(l(o))),o}s(t,e);var o=t.prototype;return o.toggle=function(){this.setState({isOpen:!this.state.isOpen})},o.render=function(){return J.createElement(Tn,a({isOpen:this.state.isOpen,toggle:this.toggle},x(this.props,La)))},t}(t.Component);za.propTypes=a({defaultOpen:ae.bool},Tn.propTypes);var Ua={tag:he,type:ae.string,size:ae.string,color:ae.string,className:ae.string,cssModule:ae.object,children:ae.string},Fa=function(e){var t=e.className,o=e.cssModule,n=e.type,s=e.size,l=e.color,i=e.children,d=e.tag,p=r(e,["className","cssModule","type","size","color","children","tag"]),c=v(se(t,!!s&&"spinner-"+n+"-"+s,"spinner-"+n,!!l&&"text-"+l),o);return J.createElement(d,a({role:"status"},p,{className:c}),i&&J.createElement("span",{className:v("sr-only",o)},i))};Fa.propTypes=Ua,Fa.defaultProps={tag:"div",type:"border",children:"Loading..."},e.Container=Pe,e.Row=_e,e.Col=Ae,e.Navbar=We,e.NavbarBrand=qe,e.NavbarToggler=Ke,e.Nav=$e,e.NavItem=Je,e.NavDropdown=I,e.NavLink=tt,e.Breadcrumb=nt,e.BreadcrumbItem=st,e.Button=lt,e.ButtonDropdown=dt,e.ButtonGroup=ct,e.ButtonToolbar=gt,e.Dropdown=Qe,e.DropdownItem=bt,e.DropdownMenu=vt,e.DropdownToggle=Ct,e.Fade=z,e.Badge=oo,e.Card=ao,e.CardGroup=ro,e.CardDeck=io,e.CardColumns=co,e.CardBody=go,e.CardBlock=function(e){return C("The \"CardBlock\" component has been deprecated.\nPlease use component \"CardBody\"."),J.createElement(go,e)},e.CardLink=fo,e.CardFooter=ho,e.CardHeader=Eo,e.CardImg=vo,e.CardImgOverlay=To,e.Carousel=Mo,e.UncontrolledCarousel=_o,e.CarouselControl=ko,e.CarouselItem=Co,e.CarouselIndicators=Oo,e.CarouselCaption=Po,e.CardSubtitle=Io,e.CardText=jo,e.CardTitle=Ao,e.CustomInput=U,e.PopperContent=Fo,e.PopperTargetHelper=Wo,e.Popover=Ko,e.UncontrolledPopover=Xo,e.PopoverHeader=Vo,e.PopoverTitle=function(e){return C("The \"PopoverTitle\" component has been deprecated.\nPlease use component \"PopoverHeader\"."),J.createElement(Vo,e)},e.PopoverBody=Yo,e.PopoverContent=function(e){return C("The \"PopoverContent\" component has been deprecated.\nPlease use component \"PopoverBody\"."),J.createElement(Yo,e)},e.Progress=dn,e.Modal=bn,e.ModalHeader=yn,e.ModalBody=Nn,e.ModalFooter=xn,e.Tooltip=Tn,e.Table=Mn,e.ListGroup=On,e.Form=wn,e.FormFeedback=Dn,e.FormGroup=Rn,e.FormText=Sn,e.Input=Ln,e.InputGroup=Un,e.InputGroupAddon=qn,e.InputGroupButton=Kn,e.InputGroupButtonDropdown=Xn,e.InputGroupText=Wn,e.Label=Zn,e.Media=ea,e.Pagination=oa,e.PaginationItem=aa,e.PaginationLink=ra,e.TabContent=da,e.TabPane=K,e.Jumbotron=ga,e.Alert=H,e.Collapse=Na,e.ListGroupItem=Ta,e.ListGroupItemHeading=Ma,e.ListGroupItemText=Oa,e.UncontrolledAlert=Pa,e.UncontrolledButtonDropdown=_a,e.UncontrolledCollapse=Ra,e.UncontrolledDropdown=Sa,e.UncontrolledNavDropdown=Aa,e.UncontrolledTooltip=za,e.Spinner=Fa,e.Util=ke,Object.defineProperty(e,"__esModule",{value:!0})}); +//# sourceMappingURL=reactstrap.min.js.map diff --git a/src/React.Sample.Mvc4/React.Sample.Mvc4.csproj b/src/React.Sample.Mvc4/React.Sample.Mvc4.csproj index 271400e5f..4c40a6756 100644 --- a/src/React.Sample.Mvc4/React.Sample.Mvc4.csproj +++ b/src/React.Sample.Mvc4/React.Sample.Mvc4.csproj @@ -152,6 +152,7 @@ + diff --git a/src/React.Sample.Mvc4/Views/Home/Index.cshtml b/src/React.Sample.Mvc4/Views/Home/Index.cshtml index 3c2a8d4a4..3b9d0b367 100644 --- a/src/React.Sample.Mvc4/Views/Home/Index.cshtml +++ b/src/React.Sample.Mvc4/Views/Home/Index.cshtml @@ -5,23 +5,29 @@ ReactJS.NET Sample + -

    - This is an example of ReactJS.NET's server-side rendering. The initial state of this - comments box is rendered server-side, and additional data is loaded via AJAX and rendered - client-side. -

    - - - @Html.React("CommentsBox", new { initialComments = Model.Comments, page = Model.Page }) - - - - - - @Scripts.Render("~/bundles/main") - - @Html.ReactInitJavaScript() +
    +
    +

    Hello, ReactJS.NET!

    +

    + This is an example of ReactJS.NET's server-side rendering. The initial state of this + comments box is rendered server-side, and additional data is loaded via AJAX and rendered + client-side. +

    +
    + + @Html.React("CommentsBox", new { initialComments = Model.Comments, page = Model.Page }) + + + + + + @Scripts.Render("~/bundles/main") + + @Html.ReactInitJavaScript() +
    +
    From c3cfee89ac0c081aaa474203e04a3c4285c2a287 Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Thu, 28 Feb 2019 21:29:02 -0800 Subject: [PATCH 145/530] Update hooks demo in Mvc4 sample --- src/React.Sample.Mvc4/Content/Sample.jsx | 86 ++++++++++-------------- 1 file changed, 37 insertions(+), 49 deletions(-) diff --git a/src/React.Sample.Mvc4/Content/Sample.jsx b/src/React.Sample.Mvc4/Content/Sample.jsx index 61c1fc91d..b48cdd3b0 100644 --- a/src/React.Sample.Mvc4/Content/Sample.jsx +++ b/src/React.Sample.Mvc4/Content/Sample.jsx @@ -7,79 +7,67 @@ * of patent rights can be found in the PATENTS file in the same directory. */ -function HooksDemo() { - let [count, updateCount] = React.useState(0); - return ( - - ); -} - -class CommentsBox extends React.Component { - static propTypes = { - initialComments: PropTypes.array.isRequired, - page: PropTypes.number - }; - - state = { - comments: this.props.initialComments, - page: this.props.page, +function CommentsBox(props) { + let [state, updateState] = React.useState({ + comments: props.initialComments, + page: props.page, hasMore: true, loadingMore: false - }; + }); - loadMoreClicked = evt => { - var nextPage = this.state.page + 1; - this.setState({ + function loadMoreClicked(evt) { + let nextPage = state.page + 1; + let comments = state.comments; + updateState(prevState => ({ + ...prevState, page: nextPage, loadingMore: true - }); + })); - var url = '/comments/page-' + (this.state.page + 1); - var xhr = new XMLHttpRequest(); + let url = '/comments/page-' + (state.page + 1); + let xhr = new XMLHttpRequest(); xhr.open('GET', url, true); xhr.setRequestHeader('Content-Type', 'application/json'); + xhr.onload = () => { - var data = JSON.parse(xhr.responseText); - this.setState({ - comments: this.state.comments.concat(data.comments), + let data = JSON.parse(xhr.responseText); + updateState(prevState => ({ + ...prevState, + comments: comments.concat(data.comments), hasMore: data.hasMore, loadingMore: false - }); + })); }; xhr.send(); evt.preventDefault(); - }; - - render() { - var commentNodes = this.state.comments.map(comment => ( - {comment.Text} - )); - - return ( -
    - -

    Comments

    -
      {commentNodes}
    - {this.renderMoreLink()} -
    - ); } - renderMoreLink = () => { - if (this.state.loadingMore) { + let commentNodes = state.comments.map(comment => ( + {comment.Text} + )); + + function renderMoreLink() { + if (state.loadingMore) { return Loading...; - } else if (this.state.hasMore) { + } else if (state.hasMore) { return ( - + Load More ); } else { return No more comments; } - }; + } + + return ( +
    +

    Comments

    +
      {commentNodes}
    + {renderMoreLink()} +
    +
    + ); } class Comment extends React.Component { From cb362b537fc4f9876440997eda61cdcd1a72b7ed Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Mon, 4 Mar 2019 23:51:34 +0000 Subject: [PATCH 146/530] Update dependency Microsoft.NET.Sdk.Functions to v1.0.26 --- webhooks/React.Site.Hooks.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/webhooks/React.Site.Hooks.csproj b/webhooks/React.Site.Hooks.csproj index f1650f9bc..637cc5a4e 100644 --- a/webhooks/React.Site.Hooks.csproj +++ b/webhooks/React.Site.Hooks.csproj @@ -3,7 +3,7 @@ net461 - + From 6b55adef5d07516a7849daebbba4e965c9c37e20 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Tue, 5 Mar 2019 23:23:11 +0000 Subject: [PATCH 147/530] Update react monorepo to v16.8.4 --- src/React.Core/package-lock.json | 22 +++++++++++----------- src/React.Core/package.json | 4 ++-- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/src/React.Core/package-lock.json b/src/React.Core/package-lock.json index 6a719b633..f53fb9ac9 100644 --- a/src/React.Core/package-lock.json +++ b/src/React.Core/package-lock.json @@ -4468,27 +4468,27 @@ } }, "react": { - "version": "16.8.3", - "resolved": "https://registry.npmjs.org/react/-/react-16.8.3.tgz", - "integrity": "sha512-3UoSIsEq8yTJuSu0luO1QQWYbgGEILm+eJl2QN/VLDi7hL+EN18M3q3oVZwmVzzBJ3DkM7RMdRwBmZZ+b4IzSA==", + "version": "16.8.4", + "resolved": "https://registry.npmjs.org/react/-/react-16.8.4.tgz", + "integrity": "sha512-0GQ6gFXfUH7aZcjGVymlPOASTuSjlQL4ZtVC5YKH+3JL6bBLCVO21DknzmaPlI90LN253ojj02nsapy+j7wIjg==", "dev": true, "requires": { "loose-envify": "^1.1.0", "object-assign": "^4.1.1", "prop-types": "^15.6.2", - "scheduler": "^0.13.3" + "scheduler": "^0.13.4" } }, "react-dom": { - "version": "16.8.3", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.8.3.tgz", - "integrity": "sha512-ttMem9yJL4/lpItZAQ2NTFAbV7frotHk5DZEHXUOws2rMmrsvh1Na7ThGT0dTzUIl6pqTOi5tYREfL8AEna3lA==", + "version": "16.8.4", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.8.4.tgz", + "integrity": "sha512-Ob2wK7XG2tUDt7ps7LtLzGYYB6DXMCLj0G5fO6WeEICtT4/HdpOi7W/xLzZnR6RCG1tYza60nMdqtxzA8FaPJQ==", "dev": true, "requires": { "loose-envify": "^1.1.0", "object-assign": "^4.1.1", "prop-types": "^15.6.2", - "scheduler": "^0.13.3" + "scheduler": "^0.13.4" } }, "react-is": { @@ -4776,9 +4776,9 @@ } }, "scheduler": { - "version": "0.13.3", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.13.3.tgz", - "integrity": "sha512-UxN5QRYWtpR1egNWzJcVLk8jlegxAugswQc984lD3kU7NuobsO37/sRfbpTdBjtnD5TBNFA2Q2oLV5+UmPSmEQ==", + "version": "0.13.4", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.13.4.tgz", + "integrity": "sha512-cvSOlRPxOHs5dAhP9yiS/6IDmVAVxmk33f0CtTJRkmUWcb1Us+t7b1wqdzoC0REw2muC9V5f1L/w5R5uKGaepA==", "dev": true, "requires": { "loose-envify": "^1.1.0", diff --git a/src/React.Core/package.json b/src/React.Core/package.json index cf1e3fa12..34a272033 100644 --- a/src/React.Core/package.json +++ b/src/React.Core/package.json @@ -12,8 +12,8 @@ "babel-preset-stage-0": "6.24.1", "babel-standalone": "6.26.0", "prop-types": "15.7.2", - "react": "16.8.3", - "react-dom": "16.8.3", + "react": "16.8.4", + "react-dom": "16.8.4", "webpack": "4.29.5", "webpack-cli": "3.2.3" } From 2947e1f2ddfaf89545e9769cf06353493a6c1324 Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Sun, 10 Mar 2019 16:43:32 -0700 Subject: [PATCH 148/530] Modernize .NET Core sample --- src/React.Sample.Webpack.CoreMvc/.babelrc | 6 +- .../Content/Sample.css | 23 + .../Content/components/comments/Sample.jsx | 125 + .../Content/components/home.jsx | 88 +- .../Controllers/HomeController.cs | 83 +- src/React.Sample.Webpack.CoreMvc/Startup.cs | 1 + .../Views/Home/Index.cshtml | 3 +- .../Views/Shared/_Layout.cshtml | 2 + .../package-lock.json | 2905 +++++++----- src/React.Sample.Webpack.CoreMvc/package.json | 12 +- .../wwwroot/dist/components.js | 86 + .../wwwroot/dist/runtime.js | 153 + .../wwwroot/dist/vendor.js | 4057 +++++++++++++++++ 13 files changed, 6404 insertions(+), 1140 deletions(-) create mode 100644 src/React.Sample.Webpack.CoreMvc/Content/Sample.css create mode 100644 src/React.Sample.Webpack.CoreMvc/Content/components/comments/Sample.jsx create mode 100644 src/React.Sample.Webpack.CoreMvc/wwwroot/dist/components.js create mode 100644 src/React.Sample.Webpack.CoreMvc/wwwroot/dist/runtime.js create mode 100644 src/React.Sample.Webpack.CoreMvc/wwwroot/dist/vendor.js diff --git a/src/React.Sample.Webpack.CoreMvc/.babelrc b/src/React.Sample.Webpack.CoreMvc/.babelrc index 027fa5a75..228daa09c 100644 --- a/src/React.Sample.Webpack.CoreMvc/.babelrc +++ b/src/React.Sample.Webpack.CoreMvc/.babelrc @@ -1,3 +1,7 @@ { - "presets": ["react", "env"] + "presets": ["@babel/preset-react", "@babel/preset-env"], + "plugins": [ + "@babel/proposal-object-rest-spread", + "@babel/proposal-class-properties" + ] } diff --git a/src/React.Sample.Webpack.CoreMvc/Content/Sample.css b/src/React.Sample.Webpack.CoreMvc/Content/Sample.css new file mode 100644 index 000000000..b02c980ca --- /dev/null +++ b/src/React.Sample.Webpack.CoreMvc/Content/Sample.css @@ -0,0 +1,23 @@ +/* + * Copyright (c) 2014-Present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + */ + +body { + font-family: Calibri, Verdana, sans-serif; +} + +.commentList { + list-style-type: none; + margin: 0; + padding: 0; +} + +.commentList li { + border-bottom: 1px solid #999; + padding: 0.5em 0; +} diff --git a/src/React.Sample.Webpack.CoreMvc/Content/components/comments/Sample.jsx b/src/React.Sample.Webpack.CoreMvc/Content/components/comments/Sample.jsx new file mode 100644 index 000000000..6ce6b6405 --- /dev/null +++ b/src/React.Sample.Webpack.CoreMvc/Content/components/comments/Sample.jsx @@ -0,0 +1,125 @@ +/** + * Copyright (c) 2014-Present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + */ + +import React from 'react'; +import PropTypes from 'prop-types'; +import * as Reactstrap from 'reactstrap'; + +export function CommentsBox(props) { + let [state, updateState] = React.useState({ + comments: props.initialComments, + page: props.page, + hasMore: true, + loadingMore: false, + }); + + function loadMoreClicked(evt) { + let nextPage = state.page + 1; + let comments = state.comments; + updateState(prevState => ({ + ...prevState, + page: nextPage, + loadingMore: true, + })); + + let url = '/comments/page-' + (state.page + 1); + let xhr = new XMLHttpRequest(); + xhr.open('GET', url, true); + xhr.setRequestHeader('Content-Type', 'application/json'); + + xhr.onload = () => { + let data = JSON.parse(xhr.responseText); + updateState(prevState => ({ + ...prevState, + comments: comments.concat(data.comments), + hasMore: data.hasMore, + loadingMore: false, + })); + }; + xhr.send(); + evt.preventDefault(); + } + + let commentNodes = state.comments.map(comment => ( + {comment.text} + )); + + function renderMoreLink() { + if (state.loadingMore) { + return Loading...; + } else if (state.hasMore) { + return ( + + Load More + + ); + } else { + return No more comments; + } + } + + return ( +
    +

    + This is an example of ReactJS.NET's server-side rendering. The + initial state of this comments box is rendered server-side, and + additional data is loaded via AJAX and rendered client-side. +

    +
    +

    Comments

    +
      {commentNodes}
    + {renderMoreLink()} +
    +
    +
    + ); +} + +class Comment extends React.Component { + static propTypes = { + author: PropTypes.object.isRequired, + }; + + render() { + return ( +
  • + + {this.props.author.name} + {': '} + {this.props.children} +
  • + ); + } +} + +class Avatar extends React.Component { + static propTypes = { + author: PropTypes.object.isRequired, + }; + + render() { + return ( + {'Photo + ); + } + + getPhotoUrl = author => { + return ( + 'https://avatars.githubusercontent.com/' + + author.githubUsername + + '?s=50' + ); + }; +} diff --git a/src/React.Sample.Webpack.CoreMvc/Content/components/home.jsx b/src/React.Sample.Webpack.CoreMvc/Content/components/home.jsx index 902bf98a5..b0141b226 100644 --- a/src/React.Sample.Webpack.CoreMvc/Content/components/home.jsx +++ b/src/React.Sample.Webpack.CoreMvc/Content/components/home.jsx @@ -1,4 +1,4 @@ -import { Component, Fragment, useState } from 'react'; +import { Component, Fragment } from 'react'; import { Link, BrowserRouter, @@ -9,6 +9,7 @@ import { } from 'react-router-dom'; import { Helmet } from 'react-helmet'; +import { CommentsBox } from './comments/Sample.jsx'; import { StyledComponentsDemo } from './styled-components.jsx'; import { EmotionDemo } from './emotion.jsx'; import { ReactJssDemo } from './react-jss.jsx'; @@ -20,6 +21,9 @@ class Navbar extends Component {
  • Home
  • +
  • + Comments Demo +
  • Styled Components Demo
  • @@ -34,15 +38,6 @@ class Navbar extends Component { } } -function HooksDemo() { - let [count, updateCount] = React.useState(0); - return ( - - ); -} - class HomePage extends Component { render() { return ( @@ -50,17 +45,7 @@ class HomePage extends Component { ReactJS.NET Demos -

    - ReactJS.NET is 🔥🔥 -

    - + ReactJS.NET is 🔥🔥 ); } @@ -69,31 +54,44 @@ class HomePage extends Component { export default class HomeComponent extends Component { render() { const app = ( - - - - } - /> - - - - - { - if (staticContext) staticContext.status = 404; +
    +
    +

    .NET Core Sample

    + +
    + + } + /> + + ( + + )} + /> + + + + { + if (staticContext) staticContext.status = 404; - return

    Not Found :(

    ; - }} - /> -
    - + return

    Not Found :(

    ; + }} + /> + +
    +
    ); if (typeof window === 'undefined') { diff --git a/src/React.Sample.Webpack.CoreMvc/Controllers/HomeController.cs b/src/React.Sample.Webpack.CoreMvc/Controllers/HomeController.cs index 85e206443..f73de1d61 100644 --- a/src/React.Sample.Webpack.CoreMvc/Controllers/HomeController.cs +++ b/src/React.Sample.Webpack.CoreMvc/Controllers/HomeController.cs @@ -1,12 +1,91 @@ +using System.Collections.Generic; +using System.Linq; using Microsoft.AspNetCore.Mvc; namespace React.Sample.Webpack.CoreMvc.Controllers { public class HomeController : Controller { - public IActionResult Index() + private const int COMMENTS_PER_PAGE = 3; + + private readonly IDictionary _authors; + private readonly IList _comments; + + public HomeController() + { + // In reality, you would use a repository or something for fetching data + // For clarity, we'll just use a hard-coded list. + _authors = new Dictionary + { + {"daniel", new AuthorModel { Name = "Daniel Lo Nigro", GithubUsername = "Daniel15" }}, + {"vjeux", new AuthorModel { Name = "Christopher Chedeau", GithubUsername = "vjeux" }}, + {"cpojer", new AuthorModel { Name = "Christoph Pojer", GithubUsername = "cpojer" }}, + {"jordwalke", new AuthorModel { Name = "Jordan Walke", GithubUsername = "jordwalke" }}, + {"zpao", new AuthorModel { Name = "Paul O'Shannessy", GithubUsername = "zpao" }}, + }; + _comments = new List + { + new CommentModel { Author = _authors["daniel"], Text = "First!!!!111!" }, + new CommentModel { Author = _authors["zpao"], Text = "React is awesome!" }, + new CommentModel { Author = _authors["cpojer"], Text = "Awesome!" }, + new CommentModel { Author = _authors["vjeux"], Text = "Hello World" }, + new CommentModel { Author = _authors["daniel"], Text = "Foo" }, + new CommentModel { Author = _authors["daniel"], Text = "Bar" }, + new CommentModel { Author = _authors["daniel"], Text = "FooBarBaz" }, + }; + } + + public ActionResult Index() + { + return View(new IndexViewModel + { + Comments = _comments.Take(COMMENTS_PER_PAGE).ToList().AsReadOnly(), + CommentsPerPage = COMMENTS_PER_PAGE, + Page = 1 + }); + } + + public ActionResult Comments(int page) + { + var comments = _comments.Skip((page - 1) * COMMENTS_PER_PAGE).Take(COMMENTS_PER_PAGE); + var hasMore = page * COMMENTS_PER_PAGE < _comments.Count; + + if (ControllerContext.HttpContext.Request.ContentType == "application/json") + { + return new JsonResult(new + { + comments = comments, + hasMore = hasMore + }); + } + else + { + return View("~/Views/Home/Index.cshtml", new IndexViewModel + { + Comments = _comments.Take(COMMENTS_PER_PAGE * page).ToList().AsReadOnly(), + CommentsPerPage = COMMENTS_PER_PAGE, + Page = page + }); + } + } + + public class AuthorModel + { + public string Name { get; set; } + public string GithubUsername { get; set; } + } + + public class CommentModel + { + public AuthorModel Author { get; set; } + public string Text { get; set; } + } + + public class IndexViewModel { - return View(); + public IReadOnlyList Comments { get; set; } + public int CommentsPerPage { get; set; } + public int Page { get; set; } } } } diff --git a/src/React.Sample.Webpack.CoreMvc/Startup.cs b/src/React.Sample.Webpack.CoreMvc/Startup.cs index f12e5a9bc..17ea5ff26 100644 --- a/src/React.Sample.Webpack.CoreMvc/Startup.cs +++ b/src/React.Sample.Webpack.CoreMvc/Startup.cs @@ -59,6 +59,7 @@ public void Configure(IApplicationBuilder app, IHostingEnvironment env) app.UseMvc(routes => { routes.MapRoute("default", "{path?}", new { controller = "Home", action = "Index" }); + routes.MapRoute("comments", "comments/page-{page}", new { controller = "Home", action = "Comments" }); }); } } diff --git a/src/React.Sample.Webpack.CoreMvc/Views/Home/Index.cshtml b/src/React.Sample.Webpack.CoreMvc/Views/Home/Index.cshtml index f52266a17..44a3b16ce 100644 --- a/src/React.Sample.Webpack.CoreMvc/Views/Home/Index.cshtml +++ b/src/React.Sample.Webpack.CoreMvc/Views/Home/Index.cshtml @@ -1,6 +1,7 @@ @using React.AspNet @using React.RenderFunctions @using React.Router +@model React.Sample.Webpack.CoreMvc.Controllers.HomeController.IndexViewModel @{ Layout = "_Layout"; @@ -11,7 +12,7 @@ var chainedFunctions = new ChainedRenderFunctions(emotionFunctions, styledComponentsFunctions, reactJssFunctions, helmetFunctions); } -@Html.ReactRouter("RootComponent", new { }, renderFunctions: chainedFunctions) +@Html.ReactRouter("RootComponent", new { initialComments = Model.Comments, page = Model.Page }, renderFunctions: chainedFunctions) @{ ViewBag.ServerStyles = styledComponentsFunctions.RenderedStyles + reactJssFunctions.RenderedStyles; ViewBag.HelmetTitle = helmetFunctions.RenderedHelmet.GetValueOrDefault("title"); diff --git a/src/React.Sample.Webpack.CoreMvc/Views/Shared/_Layout.cshtml b/src/React.Sample.Webpack.CoreMvc/Views/Shared/_Layout.cshtml index f241c9150..93ce5cabf 100644 --- a/src/React.Sample.Webpack.CoreMvc/Views/Shared/_Layout.cshtml +++ b/src/React.Sample.Webpack.CoreMvc/Views/Shared/_Layout.cshtml @@ -3,6 +3,8 @@ @Html.Raw(ViewBag.HelmetTitle) + + @Html.Raw(ViewBag.ServerStyles) diff --git a/src/React.Sample.Webpack.CoreMvc/package-lock.json b/src/React.Sample.Webpack.CoreMvc/package-lock.json index 1f3cd1797..22dd21293 100644 --- a/src/React.Sample.Webpack.CoreMvc/package-lock.json +++ b/src/React.Sample.Webpack.CoreMvc/package-lock.json @@ -4,1203 +4,1808 @@ "lockfileVersion": 1, "requires": true, "dependencies": { - "@babel/helper-module-imports": { + "@babel/code-frame": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.0.0.tgz", - "integrity": "sha512-aP/hlLq01DWNEiDg4Jn23i+CXxW/owM4WpDLFUbpjxe4NS3BhLVZQ5i7E0ZrxuQ/vwekIeciyamgB1UIYxxM6A==", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz", + "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==", + "dev": true, "requires": { - "@babel/types": "^7.0.0" + "@babel/highlight": "^7.0.0" } }, - "@babel/types": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.1.2.tgz", - "integrity": "sha512-pb1I05sZEKiSlMUV9UReaqsCPUpgbHHHu2n1piRm7JkuBkm6QxcaIzKu6FMnMtCbih/cEYTR+RGYYC96Yk9HAg==", + "@babel/core": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.3.4.tgz", + "integrity": "sha512-jRsuseXBo9pN197KnDwhhaaBzyZr2oIcLHHTt2oDdQrej5Qp57dCCJafWx5ivU8/alEYDpssYqv1MUqcxwQlrA==", + "dev": true, "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.10", - "to-fast-properties": "^2.0.0" + "@babel/code-frame": "^7.0.0", + "@babel/generator": "^7.3.4", + "@babel/helpers": "^7.2.0", + "@babel/parser": "^7.3.4", + "@babel/template": "^7.2.2", + "@babel/traverse": "^7.3.4", + "@babel/types": "^7.3.4", + "convert-source-map": "^1.1.0", + "debug": "^4.1.0", + "json5": "^2.1.0", + "lodash": "^4.17.11", + "resolve": "^1.3.2", + "semver": "^5.4.1", + "source-map": "^0.5.0" }, "dependencies": { + "@babel/types": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.3.4.tgz", + "integrity": "sha512-WEkp8MsLftM7O/ty580wAmZzN1nDmCACc5+jFzUt+GUFNNIi3LdRlueYz0YIlmJhlZx1QYDMZL5vdWCL0fNjFQ==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.11", + "to-fast-properties": "^2.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" + } + }, + "json5": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.0.tgz", + "integrity": "sha512-8Mh9h6xViijj36g7Dxi+Y4S6hNGV96vcJZr/SrlHh1LR/pEn/8j/+qIBbs44YKl69Lrfctp4QD+AdWLTMqEZAQ==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, "lodash": { "version": "4.17.11", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", - "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==" + "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==", + "dev": true + }, + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true }, "to-fast-properties": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true } } }, - "@emotion/babel-utils": { - "version": "0.6.10", - "resolved": "https://registry.npmjs.org/@emotion/babel-utils/-/babel-utils-0.6.10.tgz", - "integrity": "sha512-/fnkM/LTEp3jKe++T0KyTszVGWNKPNOUJfjNKLO17BzQ6QPxgbg3whayom1Qr2oLFH3V92tDymU+dT5q676uow==", + "@babel/generator": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.3.4.tgz", + "integrity": "sha512-8EXhHRFqlVVWXPezBW5keTiQi/rJMQTg/Y9uVCEZ0CAF3PKtCCaVRnp64Ii1ujhkoDhhF1fVsImoN4yJ2uz4Wg==", + "dev": true, "requires": { - "@emotion/hash": "^0.6.6", - "@emotion/memoize": "^0.6.6", - "@emotion/serialize": "^0.9.1", - "convert-source-map": "^1.5.1", - "find-root": "^1.1.0", - "source-map": "^0.7.2" + "@babel/types": "^7.3.4", + "jsesc": "^2.5.1", + "lodash": "^4.17.11", + "source-map": "^0.5.0", + "trim-right": "^1.0.1" }, "dependencies": { - "source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==" + "@babel/types": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.3.4.tgz", + "integrity": "sha512-WEkp8MsLftM7O/ty580wAmZzN1nDmCACc5+jFzUt+GUFNNIi3LdRlueYz0YIlmJhlZx1QYDMZL5vdWCL0fNjFQ==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.11", + "to-fast-properties": "^2.0.0" + } + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true + }, + "lodash": { + "version": "4.17.11", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", + "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==", + "dev": true + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true } } }, - "@emotion/hash": { - "version": "0.6.6", - "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.6.6.tgz", - "integrity": "sha512-ojhgxzUHZ7am3D2jHkMzPpsBAiB005GF5YU4ea+8DNPybMk01JJUM9V9YRlF/GE95tcOm8DxQvWA2jq19bGalQ==" - }, - "@emotion/is-prop-valid": { - "version": "0.6.8", - "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-0.6.8.tgz", - "integrity": "sha512-IMSL7ekYhmFlILXcouA6ket3vV7u9BqStlXzbKOF9HBtpUPMMlHU+bBxrLOa2NvleVwNIxeq/zL8LafLbeUXcA==", + "@babel/helper-annotate-as-pure": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.0.0.tgz", + "integrity": "sha512-3UYcJUj9kvSLbLbUIfQTqzcy5VX7GRZ/CCDrnOaZorFFM01aXp1+GJwuFGV4NDDoAS+mOUyHcO6UD/RfqOks3Q==", + "dev": true, "requires": { - "@emotion/memoize": "^0.6.6" + "@babel/types": "^7.0.0" } }, - "@emotion/memoize": { - "version": "0.6.6", - "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.6.6.tgz", - "integrity": "sha512-h4t4jFjtm1YV7UirAFuSuFGyLa+NNxjdkq6DpFLANNQY5rHueFZHVY+8Cu1HYVP6DrheB0kv4m5xPjo7eKT7yQ==" - }, - "@emotion/serialize": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-0.9.1.tgz", - "integrity": "sha512-zTuAFtyPvCctHBEL8KZ5lJuwBanGSutFEncqLn/m9T1a6a93smBStK+bZzcNPgj4QS8Rkw9VTwJGhRIUVO8zsQ==", + "@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.1.0.tgz", + "integrity": "sha512-qNSR4jrmJ8M1VMM9tibvyRAHXQs2PmaksQF7c1CGJNipfe3D8p+wgNwgso/P2A2r2mdgBWAXljNWR0QRZAMW8w==", + "dev": true, "requires": { - "@emotion/hash": "^0.6.6", - "@emotion/memoize": "^0.6.6", - "@emotion/unitless": "^0.6.7", - "@emotion/utils": "^0.8.2" + "@babel/helper-explode-assignable-expression": "^7.1.0", + "@babel/types": "^7.0.0" } }, - "@emotion/stylis": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/@emotion/stylis/-/stylis-0.7.1.tgz", - "integrity": "sha512-/SLmSIkN13M//53TtNxgxo57mcJk/UJIDFRKwOiLIBEyBHEcipgR6hNMQ/59Sl4VjCJ0Z/3zeAZyvnSLPG/1HQ==" - }, - "@emotion/unitless": { - "version": "0.6.7", - "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.6.7.tgz", - "integrity": "sha512-Arj1hncvEVqQ2p7Ega08uHLr1JuRYBuO5cIvcA+WWEQ5+VmkOE3ZXzl04NbQxeQpWX78G7u6MqxKuNX3wvYZxg==" - }, - "@emotion/utils": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-0.8.2.tgz", - "integrity": "sha512-rLu3wcBWH4P5q1CGoSSH/i9hrXs7SlbRLkoq9IGuoPYNGQvDJ3pt/wmOM+XgYjIDRMVIdkUWt0RsfzF50JfnCw==" - }, - "@webassemblyjs/ast": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.7.11.tgz", - "integrity": "sha512-ZEzy4vjvTzScC+SH8RBssQUawpaInUdMTYwYYLh54/s8TuT0gBLuyUnppKsVyZEi876VmmStKsUs28UxPgdvrA==", + "@babel/helper-builder-react-jsx": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.3.0.tgz", + "integrity": "sha512-MjA9KgwCuPEkQd9ncSXvSyJ5y+j2sICHyrI0M3L+6fnS4wMSNDc1ARXsbTfbb2cXHn17VisSnU/sHFTCxVxSMw==", "dev": true, "requires": { - "@webassemblyjs/helper-module-context": "1.7.11", - "@webassemblyjs/helper-wasm-bytecode": "1.7.11", - "@webassemblyjs/wast-parser": "1.7.11" + "@babel/types": "^7.3.0", + "esutils": "^2.0.0" + }, + "dependencies": { + "@babel/types": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.3.4.tgz", + "integrity": "sha512-WEkp8MsLftM7O/ty580wAmZzN1nDmCACc5+jFzUt+GUFNNIi3LdRlueYz0YIlmJhlZx1QYDMZL5vdWCL0fNjFQ==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.11", + "to-fast-properties": "^2.0.0" + } + }, + "lodash": { + "version": "4.17.11", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", + "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==", + "dev": true + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true + } } }, - "@webassemblyjs/floating-point-hex-parser": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.7.11.tgz", - "integrity": "sha512-zY8dSNyYcgzNRNT666/zOoAyImshm3ycKdoLsyDw/Bwo6+/uktb7p4xyApuef1dwEBo/U/SYQzbGBvV+nru2Xg==", - "dev": true - }, - "@webassemblyjs/helper-api-error": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.7.11.tgz", - "integrity": "sha512-7r1qXLmiglC+wPNkGuXCvkmalyEstKVwcueZRP2GNC2PAvxbLYwLLPr14rcdJaE4UtHxQKfFkuDFuv91ipqvXg==", - "dev": true - }, - "@webassemblyjs/helper-buffer": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.7.11.tgz", - "integrity": "sha512-MynuervdylPPh3ix+mKZloTcL06P8tenNH3sx6s0qE8SLR6DdwnfgA7Hc9NSYeob2jrW5Vql6GVlsQzKQCa13w==", - "dev": true - }, - "@webassemblyjs/helper-code-frame": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.7.11.tgz", - "integrity": "sha512-T8ESC9KMXFTXA5urJcyor5cn6qWeZ4/zLPyWeEXZ03hj/x9weSokGNkVCdnhSabKGYWxElSdgJ+sFa9G/RdHNw==", + "@babel/helper-call-delegate": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helper-call-delegate/-/helper-call-delegate-7.1.0.tgz", + "integrity": "sha512-YEtYZrw3GUK6emQHKthltKNZwszBcHK58Ygcis+gVUrF4/FmTVr5CCqQNSfmvg2y+YDEANyYoaLz/SHsnusCwQ==", "dev": true, "requires": { - "@webassemblyjs/wast-printer": "1.7.11" + "@babel/helper-hoist-variables": "^7.0.0", + "@babel/traverse": "^7.1.0", + "@babel/types": "^7.0.0" } }, - "@webassemblyjs/helper-fsm": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.7.11.tgz", - "integrity": "sha512-nsAQWNP1+8Z6tkzdYlXT0kxfa2Z1tRTARd8wYnc/e3Zv3VydVVnaeePgqUzFrpkGUyhUUxOl5ML7f1NuT+gC0A==", - "dev": true - }, - "@webassemblyjs/helper-module-context": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.7.11.tgz", - "integrity": "sha512-JxfD5DX8Ygq4PvXDucq0M+sbUFA7BJAv/GGl9ITovqE+idGX+J3QSzJYz+LwQmL7fC3Rs+utvWoJxDb6pmC0qg==", - "dev": true - }, - "@webassemblyjs/helper-wasm-bytecode": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.7.11.tgz", - "integrity": "sha512-cMXeVS9rhoXsI9LLL4tJxBgVD/KMOKXuFqYb5oCJ/opScWpkCMEz9EJtkonaNcnLv2R3K5jIeS4TRj/drde1JQ==", - "dev": true - }, - "@webassemblyjs/helper-wasm-section": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.7.11.tgz", - "integrity": "sha512-8ZRY5iZbZdtNFE5UFunB8mmBEAbSI3guwbrsCl4fWdfRiAcvqQpeqd5KHhSWLL5wuxo53zcaGZDBU64qgn4I4Q==", + "@babel/helper-create-class-features-plugin": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.3.4.tgz", + "integrity": "sha512-uFpzw6L2omjibjxa8VGZsJUPL5wJH0zzGKpoz0ccBkzIa6C8kWNUbiBmQ0rgOKWlHJ6qzmfa6lTiGchiV8SC+g==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.7.11", - "@webassemblyjs/helper-buffer": "1.7.11", - "@webassemblyjs/helper-wasm-bytecode": "1.7.11", - "@webassemblyjs/wasm-gen": "1.7.11" + "@babel/helper-function-name": "^7.1.0", + "@babel/helper-member-expression-to-functions": "^7.0.0", + "@babel/helper-optimise-call-expression": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-replace-supers": "^7.3.4", + "@babel/helper-split-export-declaration": "^7.0.0" } }, - "@webassemblyjs/ieee754": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.7.11.tgz", - "integrity": "sha512-Mmqx/cS68K1tSrvRLtaV/Lp3NZWzXtOHUW2IvDvl2sihAwJh4ACE0eL6A8FvMyDG9abes3saB6dMimLOs+HMoQ==", + "@babel/helper-define-map": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.1.0.tgz", + "integrity": "sha512-yPPcW8dc3gZLN+U1mhYV91QU3n5uTbx7DUdf8NnPbjS0RMwBuHi9Xt2MUgppmNz7CJxTBWsGczTiEp1CSOTPRg==", "dev": true, "requires": { - "@xtuc/ieee754": "^1.2.0" + "@babel/helper-function-name": "^7.1.0", + "@babel/types": "^7.0.0", + "lodash": "^4.17.10" + }, + "dependencies": { + "lodash": { + "version": "4.17.11", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", + "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==", + "dev": true + } } }, - "@webassemblyjs/leb128": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.7.11.tgz", - "integrity": "sha512-vuGmgZjjp3zjcerQg+JA+tGOncOnJLWVkt8Aze5eWQLwTQGNgVLcyOTqgSCxWTR4J42ijHbBxnuRaL1Rv7XMdw==", + "@babel/helper-explode-assignable-expression": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.1.0.tgz", + "integrity": "sha512-NRQpfHrJ1msCHtKjbzs9YcMmJZOg6mQMmGRB+hbamEdG5PNpaSm95275VD92DvJKuyl0s2sFiDmMZ+EnnvufqA==", "dev": true, "requires": { - "@xtuc/long": "4.2.1" + "@babel/traverse": "^7.1.0", + "@babel/types": "^7.0.0" } }, - "@webassemblyjs/utf8": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.7.11.tgz", - "integrity": "sha512-C6GFkc7aErQIAH+BMrIdVSmW+6HSe20wg57HEC1uqJP8E/xpMjXqQUxkQw07MhNDSDcGpxI9G5JSNOQCqJk4sA==", - "dev": true - }, - "@webassemblyjs/wasm-edit": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.7.11.tgz", - "integrity": "sha512-FUd97guNGsCZQgeTPKdgxJhBXkUbMTY6hFPf2Y4OedXd48H97J+sOY2Ltaq6WGVpIH8o/TGOVNiVz/SbpEMJGg==", + "@babel/helper-function-name": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz", + "integrity": "sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.7.11", - "@webassemblyjs/helper-buffer": "1.7.11", - "@webassemblyjs/helper-wasm-bytecode": "1.7.11", - "@webassemblyjs/helper-wasm-section": "1.7.11", - "@webassemblyjs/wasm-gen": "1.7.11", - "@webassemblyjs/wasm-opt": "1.7.11", - "@webassemblyjs/wasm-parser": "1.7.11", - "@webassemblyjs/wast-printer": "1.7.11" + "@babel/helper-get-function-arity": "^7.0.0", + "@babel/template": "^7.1.0", + "@babel/types": "^7.0.0" } }, - "@webassemblyjs/wasm-gen": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.7.11.tgz", - "integrity": "sha512-U/KDYp7fgAZX5KPfq4NOupK/BmhDc5Kjy2GIqstMhvvdJRcER/kUsMThpWeRP8BMn4LXaKhSTggIJPOeYHwISA==", + "@babel/helper-get-function-arity": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz", + "integrity": "sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.7.11", - "@webassemblyjs/helper-wasm-bytecode": "1.7.11", - "@webassemblyjs/ieee754": "1.7.11", - "@webassemblyjs/leb128": "1.7.11", - "@webassemblyjs/utf8": "1.7.11" + "@babel/types": "^7.0.0" } }, - "@webassemblyjs/wasm-opt": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.7.11.tgz", - "integrity": "sha512-XynkOwQyiRidh0GLua7SkeHvAPXQV/RxsUeERILmAInZegApOUAIJfRuPYe2F7RcjOC9tW3Cb9juPvAC/sCqvg==", + "@babel/helper-hoist-variables": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.0.0.tgz", + "integrity": "sha512-Ggv5sldXUeSKsuzLkddtyhyHe2YantsxWKNi7A+7LeD12ExRDWTRk29JCXpaHPAbMaIPZSil7n+lq78WY2VY7w==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.7.11", - "@webassemblyjs/helper-buffer": "1.7.11", - "@webassemblyjs/wasm-gen": "1.7.11", - "@webassemblyjs/wasm-parser": "1.7.11" + "@babel/types": "^7.0.0" } }, - "@webassemblyjs/wasm-parser": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.7.11.tgz", - "integrity": "sha512-6lmXRTrrZjYD8Ng8xRyvyXQJYUQKYSXhJqXOBLw24rdiXsHAOlvw5PhesjdcaMadU/pyPQOJ5dHreMjBxwnQKg==", + "@babel/helper-member-expression-to-functions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.0.0.tgz", + "integrity": "sha512-avo+lm/QmZlv27Zsi0xEor2fKcqWG56D5ae9dzklpIaY7cQMK5N8VSpaNVPPagiqmy7LrEjK1IWdGMOqPu5csg==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.7.11", - "@webassemblyjs/helper-api-error": "1.7.11", - "@webassemblyjs/helper-wasm-bytecode": "1.7.11", - "@webassemblyjs/ieee754": "1.7.11", - "@webassemblyjs/leb128": "1.7.11", - "@webassemblyjs/utf8": "1.7.11" + "@babel/types": "^7.0.0" } }, - "@webassemblyjs/wast-parser": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.7.11.tgz", - "integrity": "sha512-lEyVCg2np15tS+dm7+JJTNhNWq9yTZvi3qEhAIIOaofcYlUp0UR5/tVqOwa/gXYr3gjwSZqw+/lS9dscyLelbQ==", + "@babel/helper-module-imports": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.0.0.tgz", + "integrity": "sha512-aP/hlLq01DWNEiDg4Jn23i+CXxW/owM4WpDLFUbpjxe4NS3BhLVZQ5i7E0ZrxuQ/vwekIeciyamgB1UIYxxM6A==", + "requires": { + "@babel/types": "^7.0.0" + } + }, + "@babel/helper-module-transforms": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.2.2.tgz", + "integrity": "sha512-YRD7I6Wsv+IHuTPkAmAS4HhY0dkPobgLftHp0cRGZSdrRvmZY8rFvae/GVu3bD00qscuvK3WPHB3YdNpBXUqrA==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.7.11", - "@webassemblyjs/floating-point-hex-parser": "1.7.11", - "@webassemblyjs/helper-api-error": "1.7.11", - "@webassemblyjs/helper-code-frame": "1.7.11", - "@webassemblyjs/helper-fsm": "1.7.11", - "@xtuc/long": "4.2.1" + "@babel/helper-module-imports": "^7.0.0", + "@babel/helper-simple-access": "^7.1.0", + "@babel/helper-split-export-declaration": "^7.0.0", + "@babel/template": "^7.2.2", + "@babel/types": "^7.2.2", + "lodash": "^4.17.10" + }, + "dependencies": { + "@babel/types": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.3.4.tgz", + "integrity": "sha512-WEkp8MsLftM7O/ty580wAmZzN1nDmCACc5+jFzUt+GUFNNIi3LdRlueYz0YIlmJhlZx1QYDMZL5vdWCL0fNjFQ==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.11", + "to-fast-properties": "^2.0.0" + } + }, + "lodash": { + "version": "4.17.11", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", + "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==", + "dev": true + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true + } } }, - "@webassemblyjs/wast-printer": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.7.11.tgz", - "integrity": "sha512-m5vkAsuJ32QpkdkDOUPGSltrg8Cuk3KBx4YrmAGQwCZPRdUHXxG4phIOuuycLemHFr74sWL9Wthqss4fzdzSwg==", + "@babel/helper-optimise-call-expression": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.0.0.tgz", + "integrity": "sha512-u8nd9NQePYNQV8iPWu/pLLYBqZBa4ZaY1YWRFMuxrid94wKI1QNt67NEZ7GAe5Kc/0LLScbim05xZFWkAdrj9g==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.7.11", - "@webassemblyjs/wast-parser": "1.7.11", - "@xtuc/long": "4.2.1" + "@babel/types": "^7.0.0" } }, - "@xtuc/ieee754": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "@babel/helper-plugin-utils": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz", + "integrity": "sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA==", "dev": true }, - "@xtuc/long": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.1.tgz", - "integrity": "sha512-FZdkNBDqBRHKQ2MEbSC17xnPFOhZxeJ2YGSfr2BKf3sujG49Qe3bB+rGCwQfIaA7WHnGeGkSijX4FuBCdrzW/g==", - "dev": true + "@babel/helper-regex": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.0.0.tgz", + "integrity": "sha512-TR0/N0NDCcUIUEbqV6dCO+LptmmSQFQ7q70lfcEB4URsjD0E1HzicrwUH+ap6BAQ2jhCX9Q4UqZy4wilujWlkg==", + "dev": true, + "requires": { + "lodash": "^4.17.10" + }, + "dependencies": { + "lodash": { + "version": "4.17.11", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", + "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==", + "dev": true + } + } }, - "abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" + "@babel/helper-remap-async-to-generator": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.1.0.tgz", + "integrity": "sha512-3fOK0L+Fdlg8S5al8u/hWE6vhufGSn0bN09xm2LXMy//REAF8kDCrYoOBKYmA8m5Nom+sV9LyLCwrFynA8/slg==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.0.0", + "@babel/helper-wrap-function": "^7.1.0", + "@babel/template": "^7.1.0", + "@babel/traverse": "^7.1.0", + "@babel/types": "^7.0.0" + } }, - "acorn": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.1.0.tgz", - "integrity": "sha512-MW/FjM+IvU9CgBzjO3UIPCE2pyEwUsoFl+VGdczOPEdxfGFjuKny/gN54mOuX7Qxmb9Rg9MCn2oKiSUeW+pjrw==", - "dev": true + "@babel/helper-replace-supers": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.3.4.tgz", + "integrity": "sha512-pvObL9WVf2ADs+ePg0jrqlhHoxRXlOa+SHRHzAXIz2xkYuOHfGl+fKxPMaS4Fq+uje8JQPobnertBBvyrWnQ1A==", + "dev": true, + "requires": { + "@babel/helper-member-expression-to-functions": "^7.0.0", + "@babel/helper-optimise-call-expression": "^7.0.0", + "@babel/traverse": "^7.3.4", + "@babel/types": "^7.3.4" + }, + "dependencies": { + "@babel/types": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.3.4.tgz", + "integrity": "sha512-WEkp8MsLftM7O/ty580wAmZzN1nDmCACc5+jFzUt+GUFNNIi3LdRlueYz0YIlmJhlZx1QYDMZL5vdWCL0fNjFQ==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.11", + "to-fast-properties": "^2.0.0" + } + }, + "lodash": { + "version": "4.17.11", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", + "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==", + "dev": true + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true + } + } }, - "acorn-dynamic-import": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-4.0.0.tgz", - "integrity": "sha512-d3OEjQV4ROpoflsnUA8HozoIR504TFxNivYEUi6uwz0IYhBkTDXGuWlNdMtybRt3nqVx/L6XqMt0FxkXuWKZhw==", - "dev": true + "@babel/helper-simple-access": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.1.0.tgz", + "integrity": "sha512-Vk+78hNjRbsiu49zAPALxTb+JUQCz1aolpd8osOF16BGnLtseD21nbHgLPGUwrXEurZgiCOUmvs3ExTu4F5x6w==", + "dev": true, + "requires": { + "@babel/template": "^7.1.0", + "@babel/types": "^7.0.0" + } }, - "ajv": { - "version": "6.9.1", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.9.1.tgz", - "integrity": "sha512-XDN92U311aINL77ieWHmqCcNlwjoP5cHXDxIxbf2MaPYuCXOHS7gHH8jktxeK5omgd52XbSTX6a4Piwd1pQmzA==", + "@babel/helper-split-export-declaration": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0.tgz", + "integrity": "sha512-MXkOJqva62dfC0w85mEf/LucPPS/1+04nmmRMPEBUB++hiiThQ2zPtX/mEWQ3mtzCEjIJvPY8nuwxXtQeQwUag==", "dev": true, "requires": { - "fast-deep-equal": "^2.0.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" + "@babel/types": "^7.0.0" } }, - "ajv-errors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", - "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==", - "dev": true + "@babel/helper-wrap-function": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.2.0.tgz", + "integrity": "sha512-o9fP1BZLLSrYlxYEYyl2aS+Flun5gtjTIG8iln+XuEzQTs0PLagAGSXUcqruJwD5fM48jzIEggCKpIfWTcR7pQ==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.1.0", + "@babel/template": "^7.1.0", + "@babel/traverse": "^7.1.0", + "@babel/types": "^7.2.0" + }, + "dependencies": { + "@babel/types": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.3.4.tgz", + "integrity": "sha512-WEkp8MsLftM7O/ty580wAmZzN1nDmCACc5+jFzUt+GUFNNIi3LdRlueYz0YIlmJhlZx1QYDMZL5vdWCL0fNjFQ==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.11", + "to-fast-properties": "^2.0.0" + } + }, + "lodash": { + "version": "4.17.11", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", + "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==", + "dev": true + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true + } + } }, - "ajv-keywords": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.4.0.tgz", - "integrity": "sha512-aUjdRFISbuFOl0EIZc+9e4FfZp0bDZgAdOOf30bJmw8VM9v84SHyVyxDfbWxpGYbdZD/9XoKxfHVNmxPkhwyGw==", - "dev": true + "@babel/helpers": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.3.1.tgz", + "integrity": "sha512-Q82R3jKsVpUV99mgX50gOPCWwco9Ec5Iln/8Vyu4osNIOQgSrd9RFrQeUvmvddFNoLwMyOUWU+5ckioEKpDoGA==", + "dev": true, + "requires": { + "@babel/template": "^7.1.2", + "@babel/traverse": "^7.1.5", + "@babel/types": "^7.3.0" + }, + "dependencies": { + "@babel/types": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.3.4.tgz", + "integrity": "sha512-WEkp8MsLftM7O/ty580wAmZzN1nDmCACc5+jFzUt+GUFNNIi3LdRlueYz0YIlmJhlZx1QYDMZL5vdWCL0fNjFQ==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.11", + "to-fast-properties": "^2.0.0" + } + }, + "lodash": { + "version": "4.17.11", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", + "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==", + "dev": true + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true + } + } }, - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true + "@babel/highlight": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0.tgz", + "integrity": "sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==", + "dev": true, + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "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 + }, + "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" + } + } + } }, - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "@babel/parser": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.3.4.tgz", + "integrity": "sha512-tXZCqWtlOOP4wgCp6RjRvLmfuhnqTLy9VHwRochJBCP2nDm27JnnuFEnXFASVyQNHk36jD1tAammsCEEqgscIQ==", "dev": true }, - "anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "@babel/plugin-proposal-async-generator-functions": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.2.0.tgz", + "integrity": "sha512-+Dfo/SCQqrwx48ptLVGLdE39YtWRuKc/Y9I5Fy0P1DDBB9lsAHpjcEJQt+4IifuSOSTLBKJObJqMvaO1pIE8LQ==", "dev": true, "requires": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-remap-async-to-generator": "^7.1.0", + "@babel/plugin-syntax-async-generators": "^7.2.0" + } + }, + "@babel/plugin-proposal-class-properties": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.3.4.tgz", + "integrity": "sha512-lUf8D3HLs4yYlAo8zjuneLvfxN7qfKv1Yzbj5vjqaqMJxgJA3Ipwp4VUJ+OrOdz53Wbww6ahwB8UhB2HQyLotA==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.3.4", + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-proposal-json-strings": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.2.0.tgz", + "integrity": "sha512-MAFV1CA/YVmYwZG0fBQyXhmj0BHCB5egZHCKWIFVv/XCxAeVGIHfos3SwDck4LvCllENIAg7xMKOG5kH0dzyUg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-syntax-json-strings": "^7.2.0" + } + }, + "@babel/plugin-proposal-object-rest-spread": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.3.4.tgz", + "integrity": "sha512-j7VQmbbkA+qrzNqbKHrBsW3ddFnOeva6wzSe/zB7T+xaxGc+RCpwo44wCmRixAIGRoIpmVgvzFzNJqQcO3/9RA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-syntax-object-rest-spread": "^7.2.0" + } + }, + "@babel/plugin-proposal-optional-catch-binding": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.2.0.tgz", + "integrity": "sha512-mgYj3jCcxug6KUcX4OBoOJz3CMrwRfQELPQ5560F70YQUBZB7uac9fqaWamKR1iWUzGiK2t0ygzjTScZnVz75g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.2.0" + } + }, + "@babel/plugin-proposal-unicode-property-regex": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.2.0.tgz", + "integrity": "sha512-LvRVYb7kikuOtIoUeWTkOxQEV1kYvL5B6U3iWEGCzPNRus1MzJweFqORTj+0jkxozkTSYNJozPOddxmqdqsRpw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-regex": "^7.0.0", + "regexpu-core": "^4.2.0" }, "dependencies": { - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "dev": true + }, + "regexpu-core": { + "version": "4.5.3", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.5.3.tgz", + "integrity": "sha512-LON8666bTAlViVEPXMv65ZqiaR3rMNLz36PIaQ7D+er5snu93k0peR7FSvO0QteYbZ3GOkvfHKbGr/B1xDu9FA==", "dev": true, "requires": { - "remove-trailing-separator": "^1.0.1" + "regenerate": "^1.4.0", + "regenerate-unicode-properties": "^8.0.1", + "regjsgen": "^0.5.0", + "regjsparser": "^0.6.0", + "unicode-match-property-ecmascript": "^1.0.4", + "unicode-match-property-value-ecmascript": "^1.1.0" + } + }, + "regjsgen": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.0.tgz", + "integrity": "sha512-RnIrLhrXCX5ow/E5/Mh2O4e/oa1/jW0eaBKTSy3LaCj+M3Bqvm97GWDp2yUtzIs4LEn65zR2yiYGFqb2ApnzDA==", + "dev": true + }, + "regjsparser": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.0.tgz", + "integrity": "sha512-RQ7YyokLiQBomUJuUG8iGVvkgOLxwyZM8k6d3q5SAXpg4r5TZJZigKFvC6PpD+qQ98bCDC5YelPeA3EucDoNeQ==", + "dev": true, + "requires": { + "jsesc": "~0.5.0" } } } }, - "aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", - "dev": true + "@babel/plugin-syntax-async-generators": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.2.0.tgz", + "integrity": "sha512-1ZrIRBv2t0GSlcwVoQ6VgSLpLgiN/FVQUzt9znxo7v2Ov4jJrs8RY8tv0wvDmFN3qIdMKWrmMMW6yZ0G19MfGg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "@babel/plugin-syntax-json-strings": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.2.0.tgz", + "integrity": "sha512-5UGYnMSLRE1dqqZwug+1LISpA403HzlSfsg6P9VXU6TBjcSHeNlw4DxDx7LgpF+iKZoOG/+uzqoRHTdcUpiZNg==", + "dev": true, "requires": { - "sprintf-js": "~1.0.2" + "@babel/helper-plugin-utils": "^7.0.0" } }, - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true + "@babel/plugin-syntax-jsx": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.2.0.tgz", + "integrity": "sha512-VyN4QANJkRW6lDBmENzRszvZf3/4AXaj9YR7GwrWeeN9tEBPuXbmDYVU9bYBN0D70zCWVwUy0HWq2553VCb6Hw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } }, - "arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", - "dev": true + "@babel/plugin-syntax-object-rest-spread": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.2.0.tgz", + "integrity": "sha512-t0JKGgqk2We+9may3t0xDdmneaXmyxq0xieYcKHxIsrJO64n1OiMWNUtc5gQK1PA0NpdCRrtZp4z+IUaKugrSA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } }, - "arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", - "dev": true + "@babel/plugin-syntax-optional-catch-binding": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.2.0.tgz", + "integrity": "sha512-bDe4xKNhb0LI7IvZHiA13kff0KEfaGX/Hv4lMA9+7TEc63hMNvfKo6ZFpXhKuEp+II/q35Gc4NoMeDZyaUbj9w==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true + "@babel/plugin-transform-arrow-functions": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.2.0.tgz", + "integrity": "sha512-ER77Cax1+8/8jCB9fo4Ud161OZzWN5qawi4GusDuRLcDbDG+bIGYY20zb2dfAFdTRGzrfq2xZPvF0R64EHnimg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } }, - "asap": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" + "@babel/plugin-transform-async-to-generator": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.3.4.tgz", + "integrity": "sha512-Y7nCzv2fw/jEZ9f678MuKdMo99MFDJMT/PvD9LisrR5JDFcJH6vYeH6RnjVt3p5tceyGRvTtEN0VOlU+rgHZjA==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-remap-async-to-generator": "^7.1.0" + } }, - "asn1.js": { - "version": "4.10.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", - "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", + "@babel/plugin-transform-block-scoped-functions": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.2.0.tgz", + "integrity": "sha512-ntQPR6q1/NKuphly49+QiQiTN0O63uOwjdD6dhIjSWBI5xlrbUFh720TIpzBhpnrLfv2tNH/BXvLIab1+BAI0w==", "dev": true, "requires": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" + "@babel/helper-plugin-utils": "^7.0.0" } }, - "assert": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz", - "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=", + "@babel/plugin-transform-block-scoping": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.3.4.tgz", + "integrity": "sha512-blRr2O8IOZLAOJklXLV4WhcEzpYafYQKSGT3+R26lWG41u/FODJuBggehtOwilVAcFu393v3OFj+HmaE6tVjhA==", "dev": true, "requires": { - "util": "0.10.3" + "@babel/helper-plugin-utils": "^7.0.0", + "lodash": "^4.17.11" }, "dependencies": { - "inherits": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", + "lodash": { + "version": "4.17.11", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", + "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==", + "dev": true + } + } + }, + "@babel/plugin-transform-classes": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.3.4.tgz", + "integrity": "sha512-J9fAvCFBkXEvBimgYxCjvaVDzL6thk0j0dBvCeZmIUDBwyt+nv6HfbImsSrWsYXfDNDivyANgJlFXDUWRTZBuA==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.0.0", + "@babel/helper-define-map": "^7.1.0", + "@babel/helper-function-name": "^7.1.0", + "@babel/helper-optimise-call-expression": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-replace-supers": "^7.3.4", + "@babel/helper-split-export-declaration": "^7.0.0", + "globals": "^11.1.0" + }, + "dependencies": { + "globals": { + "version": "11.11.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.11.0.tgz", + "integrity": "sha512-WHq43gS+6ufNOEqlrDBxVEbb8ntfXrfAUU2ZOpCxrBdGKW3gyv8mCxAfIBD0DroPKGrJ2eSsXsLtY9MPntsyTw==", + "dev": true + } + } + }, + "@babel/plugin-transform-computed-properties": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.2.0.tgz", + "integrity": "sha512-kP/drqTxY6Xt3NNpKiMomfgkNn4o7+vKxK2DDKcBG9sHj51vHqMBGy8wbDS/J4lMxnqs153/T3+DmCEAkC5cpA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-destructuring": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.3.2.tgz", + "integrity": "sha512-Lrj/u53Ufqxl/sGxyjsJ2XNtNuEjDyjpqdhMNh5aZ+XFOdThL46KBj27Uem4ggoezSYBxKWAil6Hu8HtwqesYw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-dotall-regex": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.2.0.tgz", + "integrity": "sha512-sKxnyHfizweTgKZf7XsXu/CNupKhzijptfTM+bozonIuyVrLWVUvYjE2bhuSBML8VQeMxq4Mm63Q9qvcvUcciQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-regex": "^7.0.0", + "regexpu-core": "^4.1.3" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", "dev": true }, - "util": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", - "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", + "regexpu-core": { + "version": "4.5.3", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.5.3.tgz", + "integrity": "sha512-LON8666bTAlViVEPXMv65ZqiaR3rMNLz36PIaQ7D+er5snu93k0peR7FSvO0QteYbZ3GOkvfHKbGr/B1xDu9FA==", "dev": true, "requires": { - "inherits": "2.0.1" + "regenerate": "^1.4.0", + "regenerate-unicode-properties": "^8.0.1", + "regjsgen": "^0.5.0", + "regjsparser": "^0.6.0", + "unicode-match-property-ecmascript": "^1.0.4", + "unicode-match-property-value-ecmascript": "^1.1.0" + } + }, + "regjsgen": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.0.tgz", + "integrity": "sha512-RnIrLhrXCX5ow/E5/Mh2O4e/oa1/jW0eaBKTSy3LaCj+M3Bqvm97GWDp2yUtzIs4LEn65zR2yiYGFqb2ApnzDA==", + "dev": true + }, + "regjsparser": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.0.tgz", + "integrity": "sha512-RQ7YyokLiQBomUJuUG8iGVvkgOLxwyZM8k6d3q5SAXpg4r5TZJZigKFvC6PpD+qQ98bCDC5YelPeA3EucDoNeQ==", + "dev": true, + "requires": { + "jsesc": "~0.5.0" } } } }, - "assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", - "dev": true + "@babel/plugin-transform-duplicate-keys": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.2.0.tgz", + "integrity": "sha512-q+yuxW4DsTjNceUiTzK0L+AfQ0zD9rWaTLiUqHA8p0gxx7lu1EylenfzjeIWNkPy6e/0VG/Wjw9uf9LueQwLOw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } }, - "async-each": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", - "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=", - "dev": true + "@babel/plugin-transform-exponentiation-operator": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.2.0.tgz", + "integrity": "sha512-umh4hR6N7mu4Elq9GG8TOu9M0bakvlsREEC+ialrQN6ABS4oDQ69qJv1VtR3uxlKMCQMCvzk7vr17RHKcjx68A==", + "dev": true, + "requires": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.1.0", + "@babel/helper-plugin-utils": "^7.0.0" + } }, - "atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", - "dev": true + "@babel/plugin-transform-for-of": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.2.0.tgz", + "integrity": "sha512-Kz7Mt0SsV2tQk6jG5bBv5phVbkd0gd27SgYD4hH1aLMJRchM0dzHaXvrWhVZ+WxAlDoAKZ7Uy3jVTW2mKXQ1WQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } }, - "babel-code-frame": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", - "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "@babel/plugin-transform-function-name": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.2.0.tgz", + "integrity": "sha512-kWgksow9lHdvBC2Z4mxTsvc7YdY7w/V6B2vy9cTIPtLEE9NhwoWivaxdNM/S37elu5bqlLP/qOY906LukO9lkQ==", "dev": true, "requires": { - "chalk": "^1.1.3", - "esutils": "^2.0.2", - "js-tokens": "^3.0.2" + "@babel/helper-function-name": "^7.1.0", + "@babel/helper-plugin-utils": "^7.0.0" } }, - "babel-core": { - "version": "6.26.3", - "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz", - "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==", + "@babel/plugin-transform-literals": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.2.0.tgz", + "integrity": "sha512-2ThDhm4lI4oV7fVQ6pNNK+sx+c/GM5/SaML0w/r4ZB7sAneD/piDJtwdKlNckXeyGK7wlwg2E2w33C/Hh+VFCg==", "dev": true, "requires": { - "babel-code-frame": "^6.26.0", - "babel-generator": "^6.26.0", - "babel-helpers": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-register": "^6.26.0", - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "convert-source-map": "^1.5.1", - "debug": "^2.6.9", - "json5": "^0.5.1", - "lodash": "^4.17.4", - "minimatch": "^3.0.4", - "path-is-absolute": "^1.0.1", - "private": "^0.1.8", - "slash": "^1.0.0", - "source-map": "^0.5.7" + "@babel/helper-plugin-utils": "^7.0.0" } }, - "babel-generator": { - "version": "6.26.1", - "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", - "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", + "@babel/plugin-transform-modules-amd": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.2.0.tgz", + "integrity": "sha512-mK2A8ucqz1qhrdqjS9VMIDfIvvT2thrEsIQzbaTdc5QFzhDjQv2CkJJ5f6BXIkgbmaoax3zBr2RyvV/8zeoUZw==", "dev": true, "requires": { - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "detect-indent": "^4.0.0", - "jsesc": "^1.3.0", - "lodash": "^4.17.4", - "source-map": "^0.5.7", - "trim-right": "^1.0.1" + "@babel/helper-module-transforms": "^7.1.0", + "@babel/helper-plugin-utils": "^7.0.0" } }, - "babel-helper-builder-binary-assignment-operator-visitor": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz", - "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=", + "@babel/plugin-transform-modules-commonjs": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.2.0.tgz", + "integrity": "sha512-V6y0uaUQrQPXUrmj+hgnks8va2L0zcZymeU7TtWEgdRLNkceafKXEduv7QzgQAE4lT+suwooG9dC7LFhdRAbVQ==", "dev": true, "requires": { - "babel-helper-explode-assignable-expression": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "@babel/helper-module-transforms": "^7.1.0", + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-simple-access": "^7.1.0" } }, - "babel-helper-builder-react-jsx": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.26.0.tgz", - "integrity": "sha1-Of+DE7dci2Xc7/HzHTg+D/KkCKA=", + "@babel/plugin-transform-modules-systemjs": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.3.4.tgz", + "integrity": "sha512-VZ4+jlGOF36S7TjKs8g4ojp4MEI+ebCQZdswWb/T9I4X84j8OtFAyjXjt/M16iIm5RIZn0UMQgg/VgIwo/87vw==", "dev": true, "requires": { - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "esutils": "^2.0.2" + "@babel/helper-hoist-variables": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0" } }, - "babel-helper-call-delegate": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz", - "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", + "@babel/plugin-transform-modules-umd": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.2.0.tgz", + "integrity": "sha512-BV3bw6MyUH1iIsGhXlOK6sXhmSarZjtJ/vMiD9dNmpY8QXFFQTj+6v92pcfy1iqa8DeAfJFwoxcrS/TUZda6sw==", "dev": true, "requires": { - "babel-helper-hoist-variables": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" + "@babel/helper-module-transforms": "^7.1.0", + "@babel/helper-plugin-utils": "^7.0.0" } }, - "babel-helper-define-map": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz", - "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=", + "@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.3.0.tgz", + "integrity": "sha512-NxIoNVhk9ZxS+9lSoAQ/LM0V2UEvARLttEHUrRDGKFaAxOYQcrkN/nLRE+BbbicCAvZPl7wMP0X60HsHE5DtQw==", + "dev": true, + "requires": { + "regexp-tree": "^0.1.0" + } + }, + "@babel/plugin-transform-new-target": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.0.0.tgz", + "integrity": "sha512-yin069FYjah+LbqfGeTfzIBODex/e++Yfa0rH0fpfam9uTbuEeEOx5GLGr210ggOV77mVRNoeqSYqeuaqSzVSw==", "dev": true, "requires": { - "babel-helper-function-name": "^6.24.1", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "lodash": "^4.17.4" + "@babel/helper-plugin-utils": "^7.0.0" } }, - "babel-helper-explode-assignable-expression": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz", - "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=", + "@babel/plugin-transform-object-super": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.2.0.tgz", + "integrity": "sha512-VMyhPYZISFZAqAPVkiYb7dUe2AsVi2/wCT5+wZdsNO31FojQJa9ns40hzZ6U9f50Jlq4w6qwzdBB2uwqZ00ebg==", "dev": true, "requires": { - "babel-runtime": "^6.22.0", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-replace-supers": "^7.1.0" } }, - "babel-helper-function-name": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", - "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", + "@babel/plugin-transform-parameters": { + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.3.3.tgz", + "integrity": "sha512-IrIP25VvXWu/VlBWTpsjGptpomtIkYrN/3aDp4UKm7xK6UxZY88kcJ1UwETbzHAlwN21MnNfwlar0u8y3KpiXw==", "dev": true, "requires": { - "babel-helper-get-function-arity": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" + "@babel/helper-call-delegate": "^7.1.0", + "@babel/helper-get-function-arity": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0" } }, - "babel-helper-get-function-arity": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", - "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", + "@babel/plugin-transform-react-display-name": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.2.0.tgz", + "integrity": "sha512-Htf/tPa5haZvRMiNSQSFifK12gtr/8vwfr+A9y69uF0QcU77AVu4K7MiHEkTxF7lQoHOL0F9ErqgfNEAKgXj7A==", "dev": true, "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "@babel/helper-plugin-utils": "^7.0.0" } }, - "babel-helper-hoist-variables": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz", - "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", + "@babel/plugin-transform-react-jsx": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.3.0.tgz", + "integrity": "sha512-a/+aRb7R06WcKvQLOu4/TpjKOdvVEKRLWFpKcNuHhiREPgGRB4TQJxq07+EZLS8LFVYpfq1a5lDUnuMdcCpBKg==", "dev": true, "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "@babel/helper-builder-react-jsx": "^7.3.0", + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-syntax-jsx": "^7.2.0" } }, - "babel-helper-optimise-call-expression": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz", - "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=", + "@babel/plugin-transform-react-jsx-self": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.2.0.tgz", + "integrity": "sha512-v6S5L/myicZEy+jr6ielB0OR8h+EH/1QFx/YJ7c7Ua+7lqsjj/vW6fD5FR9hB/6y7mGbfT4vAURn3xqBxsUcdg==", "dev": true, "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-syntax-jsx": "^7.2.0" } }, - "babel-helper-regex": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz", - "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", + "@babel/plugin-transform-react-jsx-source": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.2.0.tgz", + "integrity": "sha512-A32OkKTp4i5U6aE88GwwcuV4HAprUgHcTq0sSafLxjr6AW0QahrCRCjxogkbbcdtpbXkuTOlgpjophCxb6sh5g==", "dev": true, "requires": { - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "lodash": "^4.17.4" + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-syntax-jsx": "^7.2.0" } }, - "babel-helper-remap-async-to-generator": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz", - "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=", + "@babel/plugin-transform-regenerator": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.3.4.tgz", + "integrity": "sha512-hvJg8EReQvXT6G9H2MvNPXkv9zK36Vxa1+csAVTpE1J3j0zlHplw76uudEbJxgvqZzAq9Yh45FLD4pk5mKRFQA==", "dev": true, "requires": { - "babel-helper-function-name": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" + "regenerator-transform": "^0.13.4" + }, + "dependencies": { + "regenerator-transform": { + "version": "0.13.4", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.13.4.tgz", + "integrity": "sha512-T0QMBjK3J0MtxjPmdIMXm72Wvj2Abb0Bd4HADdfijwMdoIsyQZ6fWC7kDFhk2YinBBEMZDL7Y7wh0J1sGx3S4A==", + "dev": true, + "requires": { + "private": "^0.1.6" + } + } } }, - "babel-helper-replace-supers": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz", - "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=", + "@babel/plugin-transform-shorthand-properties": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.2.0.tgz", + "integrity": "sha512-QP4eUM83ha9zmYtpbnyjTLAGKQritA5XW/iG9cjtuOI8s1RuL/3V6a3DeSHfKutJQ+ayUfeZJPcnCYEQzaPQqg==", "dev": true, "requires": { - "babel-helper-optimise-call-expression": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" + "@babel/helper-plugin-utils": "^7.0.0" } }, - "babel-helpers": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", - "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", + "@babel/plugin-transform-spread": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.2.2.tgz", + "integrity": "sha512-KWfky/58vubwtS0hLqEnrWJjsMGaOeSBn90Ezn5Jeg9Z8KKHmELbP1yGylMlm5N6TPKeY9A2+UaSYLdxahg01w==", "dev": true, "requires": { - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" + "@babel/helper-plugin-utils": "^7.0.0" } }, - "babel-loader": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-7.1.2.tgz", - "integrity": "sha512-jRwlFbINAeyDStqK6Dd5YuY0k5YuzQUvlz2ZamuXrXmxav3pNqe9vfJ402+2G+OmlJSXxCOpB6Uz0INM7RQe2A==", + "@babel/plugin-transform-sticky-regex": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.2.0.tgz", + "integrity": "sha512-KKYCoGaRAf+ckH8gEL3JHUaFVyNHKe3ASNsZ+AlktgHevvxGigoIttrEJb8iKN03Q7Eazlv1s6cx2B2cQ3Jabw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-regex": "^7.0.0" + } + }, + "@babel/plugin-transform-template-literals": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.2.0.tgz", + "integrity": "sha512-FkPix00J9A/XWXv4VoKJBMeSkyY9x/TqIh76wzcdfl57RJJcf8CehQ08uwfhCDNtRQYtHQKBTwKZDEyjE13Lwg==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-typeof-symbol": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.2.0.tgz", + "integrity": "sha512-2LNhETWYxiYysBtrBTqL8+La0jIoQQnIScUJc74OYvUGRmkskNY4EzLCnjHBzdmb38wqtTaixpo1NctEcvMDZw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-unicode-regex": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.2.0.tgz", + "integrity": "sha512-m48Y0lMhrbXEJnVUaYly29jRXbQ3ksxPrS1Tg8t+MHqzXhtBYAvI51euOBaoAlZLPHsieY9XPVMf80a5x0cPcA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-regex": "^7.0.0", + "regexpu-core": "^4.1.3" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "dev": true + }, + "regexpu-core": { + "version": "4.5.3", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.5.3.tgz", + "integrity": "sha512-LON8666bTAlViVEPXMv65ZqiaR3rMNLz36PIaQ7D+er5snu93k0peR7FSvO0QteYbZ3GOkvfHKbGr/B1xDu9FA==", + "dev": true, + "requires": { + "regenerate": "^1.4.0", + "regenerate-unicode-properties": "^8.0.1", + "regjsgen": "^0.5.0", + "regjsparser": "^0.6.0", + "unicode-match-property-ecmascript": "^1.0.4", + "unicode-match-property-value-ecmascript": "^1.1.0" + } + }, + "regjsgen": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.0.tgz", + "integrity": "sha512-RnIrLhrXCX5ow/E5/Mh2O4e/oa1/jW0eaBKTSy3LaCj+M3Bqvm97GWDp2yUtzIs4LEn65zR2yiYGFqb2ApnzDA==", + "dev": true + }, + "regjsparser": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.0.tgz", + "integrity": "sha512-RQ7YyokLiQBomUJuUG8iGVvkgOLxwyZM8k6d3q5SAXpg4r5TZJZigKFvC6PpD+qQ98bCDC5YelPeA3EucDoNeQ==", + "dev": true, + "requires": { + "jsesc": "~0.5.0" + } + } + } + }, + "@babel/preset-env": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.3.4.tgz", + "integrity": "sha512-2mwqfYMK8weA0g0uBKOt4FE3iEodiHy9/CW0b+nWXcbL+pGzLx8ESYc+j9IIxr6LTDHWKgPm71i9smo02bw+gA==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-async-generator-functions": "^7.2.0", + "@babel/plugin-proposal-json-strings": "^7.2.0", + "@babel/plugin-proposal-object-rest-spread": "^7.3.4", + "@babel/plugin-proposal-optional-catch-binding": "^7.2.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.2.0", + "@babel/plugin-syntax-async-generators": "^7.2.0", + "@babel/plugin-syntax-json-strings": "^7.2.0", + "@babel/plugin-syntax-object-rest-spread": "^7.2.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.2.0", + "@babel/plugin-transform-arrow-functions": "^7.2.0", + "@babel/plugin-transform-async-to-generator": "^7.3.4", + "@babel/plugin-transform-block-scoped-functions": "^7.2.0", + "@babel/plugin-transform-block-scoping": "^7.3.4", + "@babel/plugin-transform-classes": "^7.3.4", + "@babel/plugin-transform-computed-properties": "^7.2.0", + "@babel/plugin-transform-destructuring": "^7.2.0", + "@babel/plugin-transform-dotall-regex": "^7.2.0", + "@babel/plugin-transform-duplicate-keys": "^7.2.0", + "@babel/plugin-transform-exponentiation-operator": "^7.2.0", + "@babel/plugin-transform-for-of": "^7.2.0", + "@babel/plugin-transform-function-name": "^7.2.0", + "@babel/plugin-transform-literals": "^7.2.0", + "@babel/plugin-transform-modules-amd": "^7.2.0", + "@babel/plugin-transform-modules-commonjs": "^7.2.0", + "@babel/plugin-transform-modules-systemjs": "^7.3.4", + "@babel/plugin-transform-modules-umd": "^7.2.0", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.3.0", + "@babel/plugin-transform-new-target": "^7.0.0", + "@babel/plugin-transform-object-super": "^7.2.0", + "@babel/plugin-transform-parameters": "^7.2.0", + "@babel/plugin-transform-regenerator": "^7.3.4", + "@babel/plugin-transform-shorthand-properties": "^7.2.0", + "@babel/plugin-transform-spread": "^7.2.0", + "@babel/plugin-transform-sticky-regex": "^7.2.0", + "@babel/plugin-transform-template-literals": "^7.2.0", + "@babel/plugin-transform-typeof-symbol": "^7.2.0", + "@babel/plugin-transform-unicode-regex": "^7.2.0", + "browserslist": "^4.3.4", + "invariant": "^2.2.2", + "js-levenshtein": "^1.1.3", + "semver": "^5.3.0" + }, + "dependencies": { + "browserslist": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.4.2.tgz", + "integrity": "sha512-ISS/AIAiHERJ3d45Fz0AVYKkgcy+F/eJHzKEvv1j0wwKGKD9T3BrwKr/5g45L+Y4XIK5PlTqefHciRFcfE1Jxg==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30000939", + "electron-to-chromium": "^1.3.113", + "node-releases": "^1.1.8" + } + }, + "caniuse-lite": { + "version": "1.0.30000943", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000943.tgz", + "integrity": "sha512-nJMjU4UaesbOHTcmz6VS+qaog++Fdepg4KAya5DL/AZrL/aaAZDGOOQ0AECtsJa09r4cJBdHZMive5mw8lnQ5A==", + "dev": true + } + } + }, + "@babel/preset-react": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.0.0.tgz", + "integrity": "sha512-oayxyPS4Zj+hF6Et11BwuBkmpgT/zMxyuZgFrMeZID6Hdh3dGlk4sHCAhdBCpuCKW2ppBfl2uCCetlrUIJRY3w==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-transform-react-display-name": "^7.0.0", + "@babel/plugin-transform-react-jsx": "^7.0.0", + "@babel/plugin-transform-react-jsx-self": "^7.0.0", + "@babel/plugin-transform-react-jsx-source": "^7.0.0" + } + }, + "@babel/runtime": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.3.4.tgz", + "integrity": "sha512-IvfvnMdSaLBateu0jfsYIpZTxAc2cKEXEMiezGGN75QcBcecDUKd3PgLAncT0oOgxKy8dd8hrJKj9MfzgfZd6g==", + "requires": { + "regenerator-runtime": "^0.12.0" + }, + "dependencies": { + "regenerator-runtime": { + "version": "0.12.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.12.1.tgz", + "integrity": "sha512-odxIc1/vDlo4iZcfXqRYFj0vpXFNoGdKMAUieAlFYO6m/nl5e9KR/beGf41z4a1FI+aQgtjhuaSlDxQ0hmkrHg==" + } + } + }, + "@babel/template": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.2.2.tgz", + "integrity": "sha512-zRL0IMM02AUDwghf5LMSSDEz7sBCO2YnNmpg3uWTZj/v1rcG2BmQUvaGU8GhU8BvfMh1k2KIAYZ7Ji9KXPUg7g==", "dev": true, "requires": { - "find-cache-dir": "^1.0.0", - "loader-utils": "^1.0.2", - "mkdirp": "^0.5.1" + "@babel/code-frame": "^7.0.0", + "@babel/parser": "^7.2.2", + "@babel/types": "^7.2.2" + }, + "dependencies": { + "@babel/types": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.3.4.tgz", + "integrity": "sha512-WEkp8MsLftM7O/ty580wAmZzN1nDmCACc5+jFzUt+GUFNNIi3LdRlueYz0YIlmJhlZx1QYDMZL5vdWCL0fNjFQ==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.11", + "to-fast-properties": "^2.0.0" + } + }, + "lodash": { + "version": "4.17.11", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", + "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==", + "dev": true + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true + } } }, - "babel-messages": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", - "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "@babel/traverse": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.3.4.tgz", + "integrity": "sha512-TvTHKp6471OYEcE/91uWmhR6PrrYywQntCHSaZ8CM8Vmp+pjAusal4nGB2WCCQd0rvI7nOMKn9GnbcvTUz3/ZQ==", "dev": true, "requires": { - "babel-runtime": "^6.22.0" + "@babel/code-frame": "^7.0.0", + "@babel/generator": "^7.3.4", + "@babel/helper-function-name": "^7.1.0", + "@babel/helper-split-export-declaration": "^7.0.0", + "@babel/parser": "^7.3.4", + "@babel/types": "^7.3.4", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.11" + }, + "dependencies": { + "@babel/types": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.3.4.tgz", + "integrity": "sha512-WEkp8MsLftM7O/ty580wAmZzN1nDmCACc5+jFzUt+GUFNNIi3LdRlueYz0YIlmJhlZx1QYDMZL5vdWCL0fNjFQ==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.11", + "to-fast-properties": "^2.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" + } + }, + "globals": { + "version": "11.11.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.11.0.tgz", + "integrity": "sha512-WHq43gS+6ufNOEqlrDBxVEbb8ntfXrfAUU2ZOpCxrBdGKW3gyv8mCxAfIBD0DroPKGrJ2eSsXsLtY9MPntsyTw==", + "dev": true + }, + "lodash": { + "version": "4.17.11", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", + "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==", + "dev": true + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true + } } }, - "babel-plugin-check-es2015-constants": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz", - "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", - "dev": true, + "@babel/types": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.1.2.tgz", + "integrity": "sha512-pb1I05sZEKiSlMUV9UReaqsCPUpgbHHHu2n1piRm7JkuBkm6QxcaIzKu6FMnMtCbih/cEYTR+RGYYC96Yk9HAg==", "requires": { - "babel-runtime": "^6.22.0" + "esutils": "^2.0.2", + "lodash": "^4.17.10", + "to-fast-properties": "^2.0.0" + }, + "dependencies": { + "lodash": { + "version": "4.17.11", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", + "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==" + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" + } } }, - "babel-plugin-emotion": { - "version": "9.2.11", - "resolved": "https://registry.npmjs.org/babel-plugin-emotion/-/babel-plugin-emotion-9.2.11.tgz", - "integrity": "sha512-dgCImifnOPPSeXod2znAmgc64NhaaOjGEHROR/M+lmStb3841yK1sgaDYAYMnlvWNz8GnpwIPN0VmNpbWYZ+VQ==", + "@emotion/babel-utils": { + "version": "0.6.10", + "resolved": "https://registry.npmjs.org/@emotion/babel-utils/-/babel-utils-0.6.10.tgz", + "integrity": "sha512-/fnkM/LTEp3jKe++T0KyTszVGWNKPNOUJfjNKLO17BzQ6QPxgbg3whayom1Qr2oLFH3V92tDymU+dT5q676uow==", "requires": { - "@babel/helper-module-imports": "^7.0.0", - "@emotion/babel-utils": "^0.6.4", - "@emotion/hash": "^0.6.2", - "@emotion/memoize": "^0.6.1", - "@emotion/stylis": "^0.7.0", - "babel-plugin-macros": "^2.0.0", - "babel-plugin-syntax-jsx": "^6.18.0", - "convert-source-map": "^1.5.0", + "@emotion/hash": "^0.6.6", + "@emotion/memoize": "^0.6.6", + "@emotion/serialize": "^0.9.1", + "convert-source-map": "^1.5.1", "find-root": "^1.1.0", - "mkdirp": "^0.5.1", - "source-map": "^0.5.7", - "touch": "^2.0.1" + "source-map": "^0.7.2" + }, + "dependencies": { + "source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==" + } } }, - "babel-plugin-macros": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-2.4.2.tgz", - "integrity": "sha512-NBVpEWN4OQ/bHnu1fyDaAaTPAjnhXCEPqr1RwqxrU7b6tZ2hypp+zX4hlNfmVGfClD5c3Sl6Hfj5TJNF5VG5aA==", + "@emotion/hash": { + "version": "0.6.6", + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.6.6.tgz", + "integrity": "sha512-ojhgxzUHZ7am3D2jHkMzPpsBAiB005GF5YU4ea+8DNPybMk01JJUM9V9YRlF/GE95tcOm8DxQvWA2jq19bGalQ==" + }, + "@emotion/is-prop-valid": { + "version": "0.6.8", + "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-0.6.8.tgz", + "integrity": "sha512-IMSL7ekYhmFlILXcouA6ket3vV7u9BqStlXzbKOF9HBtpUPMMlHU+bBxrLOa2NvleVwNIxeq/zL8LafLbeUXcA==", "requires": { - "cosmiconfig": "^5.0.5", - "resolve": "^1.8.1" + "@emotion/memoize": "^0.6.6" } }, - "babel-plugin-syntax-async-functions": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz", - "integrity": "sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU=", - "dev": true + "@emotion/memoize": { + "version": "0.6.6", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.6.6.tgz", + "integrity": "sha512-h4t4jFjtm1YV7UirAFuSuFGyLa+NNxjdkq6DpFLANNQY5rHueFZHVY+8Cu1HYVP6DrheB0kv4m5xPjo7eKT7yQ==" }, - "babel-plugin-syntax-exponentiation-operator": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz", - "integrity": "sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4=", - "dev": true + "@emotion/serialize": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-0.9.1.tgz", + "integrity": "sha512-zTuAFtyPvCctHBEL8KZ5lJuwBanGSutFEncqLn/m9T1a6a93smBStK+bZzcNPgj4QS8Rkw9VTwJGhRIUVO8zsQ==", + "requires": { + "@emotion/hash": "^0.6.6", + "@emotion/memoize": "^0.6.6", + "@emotion/unitless": "^0.6.7", + "@emotion/utils": "^0.8.2" + } }, - "babel-plugin-syntax-flow": { - "version": "6.18.0", - "resolved": "http://registry.npmjs.org/babel-plugin-syntax-flow/-/babel-plugin-syntax-flow-6.18.0.tgz", - "integrity": "sha1-TDqyCiryaqIM0lmVw5jE63AxDI0=", - "dev": true + "@emotion/stylis": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/@emotion/stylis/-/stylis-0.7.1.tgz", + "integrity": "sha512-/SLmSIkN13M//53TtNxgxo57mcJk/UJIDFRKwOiLIBEyBHEcipgR6hNMQ/59Sl4VjCJ0Z/3zeAZyvnSLPG/1HQ==" }, - "babel-plugin-syntax-jsx": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz", - "integrity": "sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY=" + "@emotion/unitless": { + "version": "0.6.7", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.6.7.tgz", + "integrity": "sha512-Arj1hncvEVqQ2p7Ega08uHLr1JuRYBuO5cIvcA+WWEQ5+VmkOE3ZXzl04NbQxeQpWX78G7u6MqxKuNX3wvYZxg==" }, - "babel-plugin-syntax-trailing-function-commas": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz", - "integrity": "sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM=", - "dev": true + "@emotion/utils": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-0.8.2.tgz", + "integrity": "sha512-rLu3wcBWH4P5q1CGoSSH/i9hrXs7SlbRLkoq9IGuoPYNGQvDJ3pt/wmOM+XgYjIDRMVIdkUWt0RsfzF50JfnCw==" }, - "babel-plugin-transform-async-to-generator": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz", - "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=", + "@webassemblyjs/ast": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.7.11.tgz", + "integrity": "sha512-ZEzy4vjvTzScC+SH8RBssQUawpaInUdMTYwYYLh54/s8TuT0gBLuyUnppKsVyZEi876VmmStKsUs28UxPgdvrA==", "dev": true, "requires": { - "babel-helper-remap-async-to-generator": "^6.24.1", - "babel-plugin-syntax-async-functions": "^6.8.0", - "babel-runtime": "^6.22.0" + "@webassemblyjs/helper-module-context": "1.7.11", + "@webassemblyjs/helper-wasm-bytecode": "1.7.11", + "@webassemblyjs/wast-parser": "1.7.11" } }, - "babel-plugin-transform-es2015-arrow-functions": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", - "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0" - } + "@webassemblyjs/floating-point-hex-parser": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.7.11.tgz", + "integrity": "sha512-zY8dSNyYcgzNRNT666/zOoAyImshm3ycKdoLsyDw/Bwo6+/uktb7p4xyApuef1dwEBo/U/SYQzbGBvV+nru2Xg==", + "dev": true }, - "babel-plugin-transform-es2015-block-scoped-functions": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", - "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0" - } + "@webassemblyjs/helper-api-error": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.7.11.tgz", + "integrity": "sha512-7r1qXLmiglC+wPNkGuXCvkmalyEstKVwcueZRP2GNC2PAvxbLYwLLPr14rcdJaE4UtHxQKfFkuDFuv91ipqvXg==", + "dev": true }, - "babel-plugin-transform-es2015-block-scoping": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz", - "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=", - "dev": true, - "requires": { - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "lodash": "^4.17.4" - } + "@webassemblyjs/helper-buffer": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.7.11.tgz", + "integrity": "sha512-MynuervdylPPh3ix+mKZloTcL06P8tenNH3sx6s0qE8SLR6DdwnfgA7Hc9NSYeob2jrW5Vql6GVlsQzKQCa13w==", + "dev": true }, - "babel-plugin-transform-es2015-classes": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz", - "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=", + "@webassemblyjs/helper-code-frame": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.7.11.tgz", + "integrity": "sha512-T8ESC9KMXFTXA5urJcyor5cn6qWeZ4/zLPyWeEXZ03hj/x9weSokGNkVCdnhSabKGYWxElSdgJ+sFa9G/RdHNw==", "dev": true, "requires": { - "babel-helper-define-map": "^6.24.1", - "babel-helper-function-name": "^6.24.1", - "babel-helper-optimise-call-expression": "^6.24.1", - "babel-helper-replace-supers": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" + "@webassemblyjs/wast-printer": "1.7.11" } }, - "babel-plugin-transform-es2015-computed-properties": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz", - "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" - } + "@webassemblyjs/helper-fsm": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.7.11.tgz", + "integrity": "sha512-nsAQWNP1+8Z6tkzdYlXT0kxfa2Z1tRTARd8wYnc/e3Zv3VydVVnaeePgqUzFrpkGUyhUUxOl5ML7f1NuT+gC0A==", + "dev": true }, - "babel-plugin-transform-es2015-destructuring": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", - "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0" - } + "@webassemblyjs/helper-module-context": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.7.11.tgz", + "integrity": "sha512-JxfD5DX8Ygq4PvXDucq0M+sbUFA7BJAv/GGl9ITovqE+idGX+J3QSzJYz+LwQmL7fC3Rs+utvWoJxDb6pmC0qg==", + "dev": true }, - "babel-plugin-transform-es2015-duplicate-keys": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz", - "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } + "@webassemblyjs/helper-wasm-bytecode": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.7.11.tgz", + "integrity": "sha512-cMXeVS9rhoXsI9LLL4tJxBgVD/KMOKXuFqYb5oCJ/opScWpkCMEz9EJtkonaNcnLv2R3K5jIeS4TRj/drde1JQ==", + "dev": true }, - "babel-plugin-transform-es2015-for-of": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz", - "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=", + "@webassemblyjs/helper-wasm-section": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.7.11.tgz", + "integrity": "sha512-8ZRY5iZbZdtNFE5UFunB8mmBEAbSI3guwbrsCl4fWdfRiAcvqQpeqd5KHhSWLL5wuxo53zcaGZDBU64qgn4I4Q==", "dev": true, "requires": { - "babel-runtime": "^6.22.0" + "@webassemblyjs/ast": "1.7.11", + "@webassemblyjs/helper-buffer": "1.7.11", + "@webassemblyjs/helper-wasm-bytecode": "1.7.11", + "@webassemblyjs/wasm-gen": "1.7.11" } }, - "babel-plugin-transform-es2015-function-name": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz", - "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", + "@webassemblyjs/ieee754": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.7.11.tgz", + "integrity": "sha512-Mmqx/cS68K1tSrvRLtaV/Lp3NZWzXtOHUW2IvDvl2sihAwJh4ACE0eL6A8FvMyDG9abes3saB6dMimLOs+HMoQ==", "dev": true, "requires": { - "babel-helper-function-name": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "@xtuc/ieee754": "^1.2.0" } }, - "babel-plugin-transform-es2015-literals": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz", - "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=", + "@webassemblyjs/leb128": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.7.11.tgz", + "integrity": "sha512-vuGmgZjjp3zjcerQg+JA+tGOncOnJLWVkt8Aze5eWQLwTQGNgVLcyOTqgSCxWTR4J42ijHbBxnuRaL1Rv7XMdw==", "dev": true, "requires": { - "babel-runtime": "^6.22.0" + "@xtuc/long": "4.2.1" } }, - "babel-plugin-transform-es2015-modules-amd": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", - "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=", - "dev": true, - "requires": { - "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" - } + "@webassemblyjs/utf8": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.7.11.tgz", + "integrity": "sha512-C6GFkc7aErQIAH+BMrIdVSmW+6HSe20wg57HEC1uqJP8E/xpMjXqQUxkQw07MhNDSDcGpxI9G5JSNOQCqJk4sA==", + "dev": true }, - "babel-plugin-transform-es2015-modules-commonjs": { - "version": "6.26.2", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz", - "integrity": "sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q==", + "@webassemblyjs/wasm-edit": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.7.11.tgz", + "integrity": "sha512-FUd97guNGsCZQgeTPKdgxJhBXkUbMTY6hFPf2Y4OedXd48H97J+sOY2Ltaq6WGVpIH8o/TGOVNiVz/SbpEMJGg==", "dev": true, "requires": { - "babel-plugin-transform-strict-mode": "^6.24.1", - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-types": "^6.26.0" + "@webassemblyjs/ast": "1.7.11", + "@webassemblyjs/helper-buffer": "1.7.11", + "@webassemblyjs/helper-wasm-bytecode": "1.7.11", + "@webassemblyjs/helper-wasm-section": "1.7.11", + "@webassemblyjs/wasm-gen": "1.7.11", + "@webassemblyjs/wasm-opt": "1.7.11", + "@webassemblyjs/wasm-parser": "1.7.11", + "@webassemblyjs/wast-printer": "1.7.11" } }, - "babel-plugin-transform-es2015-modules-systemjs": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz", - "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=", + "@webassemblyjs/wasm-gen": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.7.11.tgz", + "integrity": "sha512-U/KDYp7fgAZX5KPfq4NOupK/BmhDc5Kjy2GIqstMhvvdJRcER/kUsMThpWeRP8BMn4LXaKhSTggIJPOeYHwISA==", "dev": true, "requires": { - "babel-helper-hoist-variables": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" + "@webassemblyjs/ast": "1.7.11", + "@webassemblyjs/helper-wasm-bytecode": "1.7.11", + "@webassemblyjs/ieee754": "1.7.11", + "@webassemblyjs/leb128": "1.7.11", + "@webassemblyjs/utf8": "1.7.11" } }, - "babel-plugin-transform-es2015-modules-umd": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz", - "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=", + "@webassemblyjs/wasm-opt": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.7.11.tgz", + "integrity": "sha512-XynkOwQyiRidh0GLua7SkeHvAPXQV/RxsUeERILmAInZegApOUAIJfRuPYe2F7RcjOC9tW3Cb9juPvAC/sCqvg==", "dev": true, "requires": { - "babel-plugin-transform-es2015-modules-amd": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" + "@webassemblyjs/ast": "1.7.11", + "@webassemblyjs/helper-buffer": "1.7.11", + "@webassemblyjs/wasm-gen": "1.7.11", + "@webassemblyjs/wasm-parser": "1.7.11" } }, - "babel-plugin-transform-es2015-object-super": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz", - "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=", + "@webassemblyjs/wasm-parser": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.7.11.tgz", + "integrity": "sha512-6lmXRTrrZjYD8Ng8xRyvyXQJYUQKYSXhJqXOBLw24rdiXsHAOlvw5PhesjdcaMadU/pyPQOJ5dHreMjBxwnQKg==", "dev": true, "requires": { - "babel-helper-replace-supers": "^6.24.1", - "babel-runtime": "^6.22.0" + "@webassemblyjs/ast": "1.7.11", + "@webassemblyjs/helper-api-error": "1.7.11", + "@webassemblyjs/helper-wasm-bytecode": "1.7.11", + "@webassemblyjs/ieee754": "1.7.11", + "@webassemblyjs/leb128": "1.7.11", + "@webassemblyjs/utf8": "1.7.11" } }, - "babel-plugin-transform-es2015-parameters": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz", - "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", + "@webassemblyjs/wast-parser": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.7.11.tgz", + "integrity": "sha512-lEyVCg2np15tS+dm7+JJTNhNWq9yTZvi3qEhAIIOaofcYlUp0UR5/tVqOwa/gXYr3gjwSZqw+/lS9dscyLelbQ==", "dev": true, "requires": { - "babel-helper-call-delegate": "^6.24.1", - "babel-helper-get-function-arity": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" + "@webassemblyjs/ast": "1.7.11", + "@webassemblyjs/floating-point-hex-parser": "1.7.11", + "@webassemblyjs/helper-api-error": "1.7.11", + "@webassemblyjs/helper-code-frame": "1.7.11", + "@webassemblyjs/helper-fsm": "1.7.11", + "@xtuc/long": "4.2.1" } }, - "babel-plugin-transform-es2015-shorthand-properties": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz", - "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=", + "@webassemblyjs/wast-printer": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.7.11.tgz", + "integrity": "sha512-m5vkAsuJ32QpkdkDOUPGSltrg8Cuk3KBx4YrmAGQwCZPRdUHXxG4phIOuuycLemHFr74sWL9Wthqss4fzdzSwg==", "dev": true, "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "@webassemblyjs/ast": "1.7.11", + "@webassemblyjs/wast-parser": "1.7.11", + "@xtuc/long": "4.2.1" } }, - "babel-plugin-transform-es2015-spread": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz", - "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0" - } + "@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true }, - "babel-plugin-transform-es2015-sticky-regex": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", - "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", - "dev": true, - "requires": { - "babel-helper-regex": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } + "@xtuc/long": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.1.tgz", + "integrity": "sha512-FZdkNBDqBRHKQ2MEbSC17xnPFOhZxeJ2YGSfr2BKf3sujG49Qe3bB+rGCwQfIaA7WHnGeGkSijX4FuBCdrzW/g==", + "dev": true }, - "babel-plugin-transform-es2015-template-literals": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz", - "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0" - } + "abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" }, - "babel-plugin-transform-es2015-typeof-symbol": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", - "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0" - } + "acorn": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.1.0.tgz", + "integrity": "sha512-MW/FjM+IvU9CgBzjO3UIPCE2pyEwUsoFl+VGdczOPEdxfGFjuKny/gN54mOuX7Qxmb9Rg9MCn2oKiSUeW+pjrw==", + "dev": true }, - "babel-plugin-transform-es2015-unicode-regex": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", - "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", - "dev": true, - "requires": { - "babel-helper-regex": "^6.24.1", - "babel-runtime": "^6.22.0", - "regexpu-core": "^2.0.0" - } + "acorn-dynamic-import": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-4.0.0.tgz", + "integrity": "sha512-d3OEjQV4ROpoflsnUA8HozoIR504TFxNivYEUi6uwz0IYhBkTDXGuWlNdMtybRt3nqVx/L6XqMt0FxkXuWKZhw==", + "dev": true }, - "babel-plugin-transform-exponentiation-operator": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz", - "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=", + "ajv": { + "version": "6.9.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.9.1.tgz", + "integrity": "sha512-XDN92U311aINL77ieWHmqCcNlwjoP5cHXDxIxbf2MaPYuCXOHS7gHH8jktxeK5omgd52XbSTX6a4Piwd1pQmzA==", "dev": true, "requires": { - "babel-helper-builder-binary-assignment-operator-visitor": "^6.24.1", - "babel-plugin-syntax-exponentiation-operator": "^6.8.0", - "babel-runtime": "^6.22.0" + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" } }, - "babel-plugin-transform-flow-strip-types": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.22.0.tgz", - "integrity": "sha1-hMtnKTXUNxT9wyvOhFaNh0Qc988=", - "dev": true, - "requires": { - "babel-plugin-syntax-flow": "^6.18.0", - "babel-runtime": "^6.22.0" - } + "ajv-errors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", + "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==", + "dev": true }, - "babel-plugin-transform-react-display-name": { - "version": "6.25.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-display-name/-/babel-plugin-transform-react-display-name-6.25.0.tgz", - "integrity": "sha1-Z+K/Hx6ck6sI25Z5LgU5K/LMKNE=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0" - } + "ajv-keywords": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.4.0.tgz", + "integrity": "sha512-aUjdRFISbuFOl0EIZc+9e4FfZp0bDZgAdOOf30bJmw8VM9v84SHyVyxDfbWxpGYbdZD/9XoKxfHVNmxPkhwyGw==", + "dev": true }, - "babel-plugin-transform-react-jsx": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.24.1.tgz", - "integrity": "sha1-hAoCjn30YN/DotKfDA2R9jduZqM=", - "dev": true, - "requires": { - "babel-helper-builder-react-jsx": "^6.24.1", - "babel-plugin-syntax-jsx": "^6.8.0", - "babel-runtime": "^6.22.0" - } + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true }, - "babel-plugin-transform-react-jsx-self": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-self/-/babel-plugin-transform-react-jsx-self-6.22.0.tgz", - "integrity": "sha1-322AqdomEqEh5t3XVYvL7PBuY24=", + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", "dev": true, "requires": { - "babel-plugin-syntax-jsx": "^6.8.0", - "babel-runtime": "^6.22.0" + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } } }, - "babel-plugin-transform-react-jsx-source": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-source/-/babel-plugin-transform-react-jsx-source-6.22.0.tgz", - "integrity": "sha1-ZqwSFT9c0tF7PBkmj0vwGX9E7NY=", - "dev": true, - "requires": { - "babel-plugin-syntax-jsx": "^6.8.0", - "babel-runtime": "^6.22.0" - } + "aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", + "dev": true }, - "babel-plugin-transform-regenerator": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz", - "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=", - "dev": true, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "requires": { - "regenerator-transform": "^0.10.0" + "sprintf-js": "~1.0.2" } }, - "babel-plugin-transform-strict-mode": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", - "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true }, - "babel-preset-env": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.7.0.tgz", - "integrity": "sha512-9OR2afuKDneX2/q2EurSftUYM0xGu4O2D9adAhVfADDhrYDaxXV0rBbevVYoY9n6nyX1PmQW/0jtpJvUNr9CHg==", - "dev": true, - "requires": { - "babel-plugin-check-es2015-constants": "^6.22.0", - "babel-plugin-syntax-trailing-function-commas": "^6.22.0", - "babel-plugin-transform-async-to-generator": "^6.22.0", - "babel-plugin-transform-es2015-arrow-functions": "^6.22.0", - "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0", - "babel-plugin-transform-es2015-block-scoping": "^6.23.0", - "babel-plugin-transform-es2015-classes": "^6.23.0", - "babel-plugin-transform-es2015-computed-properties": "^6.22.0", - "babel-plugin-transform-es2015-destructuring": "^6.23.0", - "babel-plugin-transform-es2015-duplicate-keys": "^6.22.0", - "babel-plugin-transform-es2015-for-of": "^6.23.0", - "babel-plugin-transform-es2015-function-name": "^6.22.0", - "babel-plugin-transform-es2015-literals": "^6.22.0", - "babel-plugin-transform-es2015-modules-amd": "^6.22.0", - "babel-plugin-transform-es2015-modules-commonjs": "^6.23.0", - "babel-plugin-transform-es2015-modules-systemjs": "^6.23.0", - "babel-plugin-transform-es2015-modules-umd": "^6.23.0", - "babel-plugin-transform-es2015-object-super": "^6.22.0", - "babel-plugin-transform-es2015-parameters": "^6.23.0", - "babel-plugin-transform-es2015-shorthand-properties": "^6.22.0", - "babel-plugin-transform-es2015-spread": "^6.22.0", - "babel-plugin-transform-es2015-sticky-regex": "^6.22.0", - "babel-plugin-transform-es2015-template-literals": "^6.22.0", - "babel-plugin-transform-es2015-typeof-symbol": "^6.23.0", - "babel-plugin-transform-es2015-unicode-regex": "^6.22.0", - "babel-plugin-transform-exponentiation-operator": "^6.22.0", - "babel-plugin-transform-regenerator": "^6.22.0", - "browserslist": "^3.2.6", - "invariant": "^2.2.2", - "semver": "^5.3.0" - } + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true }, - "babel-preset-flow": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-preset-flow/-/babel-preset-flow-6.23.0.tgz", - "integrity": "sha1-5xIYiHCFrpoktb5Baa/7WZgWxJ0=", - "dev": true, - "requires": { - "babel-plugin-transform-flow-strip-types": "^6.22.0" - } + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "dev": true + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" }, - "babel-preset-react": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-preset-react/-/babel-preset-react-6.24.1.tgz", - "integrity": "sha1-umnfrqRfw+xjm2pOzqbhdwLJE4A=", + "asn1.js": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", + "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", "dev": true, "requires": { - "babel-plugin-syntax-jsx": "^6.3.13", - "babel-plugin-transform-react-display-name": "^6.23.0", - "babel-plugin-transform-react-jsx": "^6.24.1", - "babel-plugin-transform-react-jsx-self": "^6.22.0", - "babel-plugin-transform-react-jsx-source": "^6.22.0", - "babel-preset-flow": "^6.23.0" + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" } }, - "babel-register": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", - "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", + "assert": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz", + "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=", "dev": true, "requires": { - "babel-core": "^6.26.0", - "babel-runtime": "^6.26.0", - "core-js": "^2.5.0", - "home-or-tmp": "^2.0.0", - "lodash": "^4.17.4", - "mkdirp": "^0.5.1", - "source-map-support": "^0.4.15" + "util": "0.10.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", + "dev": true + }, + "util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", + "dev": true, + "requires": { + "inherits": "2.0.1" + } + } } }, - "babel-runtime": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", - "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "dev": true + }, + "async-each": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", + "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=", + "dev": true + }, + "atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "dev": true + }, + "babel-loader": { + "version": "8.0.5", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.0.5.tgz", + "integrity": "sha512-NTnHnVRd2JnRqPC0vW+iOQWU5pchDbYXsG2E6DMXEpMfUcQKclF9gmf3G3ZMhzG7IG9ji4coL0cm+FxeWxDpnw==", "dev": true, "requires": { - "core-js": "^2.4.0", - "regenerator-runtime": "^0.11.0" + "find-cache-dir": "^2.0.0", + "loader-utils": "^1.0.2", + "mkdirp": "^0.5.1", + "util.promisify": "^1.0.0" } }, - "babel-template": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", - "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", - "dev": true, + "babel-plugin-emotion": { + "version": "9.2.11", + "resolved": "https://registry.npmjs.org/babel-plugin-emotion/-/babel-plugin-emotion-9.2.11.tgz", + "integrity": "sha512-dgCImifnOPPSeXod2znAmgc64NhaaOjGEHROR/M+lmStb3841yK1sgaDYAYMnlvWNz8GnpwIPN0VmNpbWYZ+VQ==", "requires": { - "babel-runtime": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "lodash": "^4.17.4" + "@babel/helper-module-imports": "^7.0.0", + "@emotion/babel-utils": "^0.6.4", + "@emotion/hash": "^0.6.2", + "@emotion/memoize": "^0.6.1", + "@emotion/stylis": "^0.7.0", + "babel-plugin-macros": "^2.0.0", + "babel-plugin-syntax-jsx": "^6.18.0", + "convert-source-map": "^1.5.0", + "find-root": "^1.1.0", + "mkdirp": "^0.5.1", + "source-map": "^0.5.7", + "touch": "^2.0.1" } }, - "babel-traverse": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", - "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", - "dev": true, + "babel-plugin-macros": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-2.4.2.tgz", + "integrity": "sha512-NBVpEWN4OQ/bHnu1fyDaAaTPAjnhXCEPqr1RwqxrU7b6tZ2hypp+zX4hlNfmVGfClD5c3Sl6Hfj5TJNF5VG5aA==", "requires": { - "babel-code-frame": "^6.26.0", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "debug": "^2.6.8", - "globals": "^9.18.0", - "invariant": "^2.2.2", - "lodash": "^4.17.4" + "cosmiconfig": "^5.0.5", + "resolve": "^1.8.1" } }, - "babel-types": { + "babel-plugin-syntax-jsx": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz", + "integrity": "sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY=" + }, + "babel-runtime": { "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", - "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "dev": true, "requires": { - "babel-runtime": "^6.26.0", - "esutils": "^2.0.2", - "lodash": "^4.17.4", - "to-fast-properties": "^1.0.3" + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" } }, - "babylon": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", - "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", - "dev": true - }, "balanced-match": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", @@ -1420,16 +2025,6 @@ "pako": "~1.0.5" } }, - "browserslist": { - "version": "3.2.8", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-3.2.8.tgz", - "integrity": "sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30000844", - "electron-to-chromium": "^1.3.47" - } - }, "buffer": { "version": "4.9.1", "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", @@ -1511,25 +2106,6 @@ "integrity": "sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA==", "dev": true }, - "caniuse-lite": { - "version": "1.0.30000938", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000938.tgz", - "integrity": "sha512-ekW8NQ3/FvokviDxhdKLZZAx7PptXNwxKgXtnR5y+PR3hckwuP3yJ1Ir+4/c97dsHNqtAyfKUGdw8P4EYzBNgw==", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "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" - } - }, "chokidar": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.0.tgz", @@ -1598,6 +2174,11 @@ } } }, + "classnames": { + "version": "2.2.6", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.6.tgz", + "integrity": "sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q==" + }, "cliui": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", @@ -1742,9 +2323,9 @@ "dev": true }, "core-js": { - "version": "2.5.3", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.3.tgz", - "integrity": "sha1-isw4NFgk8W2DZbfJtCWRaOjtYD4=", + "version": "2.6.5", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.5.tgz", + "integrity": "sha512-klh/kDpwX8hryYL14M9w/xei6vrv6sE8gTHDG7/T/+SEovB/G4ejwcfE/CBzO6Edsu+OETZMZ3wcX/EjUkrl5A==", "dev": true }, "core-util-is": { @@ -1940,6 +2521,23 @@ "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz", "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=" }, + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "dev": true, + "requires": { + "object-keys": "^1.0.12" + }, + "dependencies": { + "object-keys": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.0.tgz", + "integrity": "sha512-6OO5X1+2tYkNyNEx6TsCxEqFfRWaqx6EtMiSbGrw8Ob8v9Ne+Hl8rBAgLBZn5wjEz3s/s6U1WXFUFOcxxAwUpg==", + "dev": true + } + } + }, "define-property": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", @@ -1997,15 +2595,6 @@ "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=", "dev": true }, - "detect-indent": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", - "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", - "dev": true, - "requires": { - "repeating": "^2.0.0" - } - }, "diffie-hellman": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", @@ -2017,6 +2606,14 @@ "randombytes": "^2.0.0" } }, + "dom-helpers": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-3.4.0.tgz", + "integrity": "sha512-LnuPJ+dwqKDIyotW1VzmOZ5TONUN7CwkCR5hrgawTUbkBGYdeoNLZo6nNfGkCrjtE1nXXaj7iMMpDa8/d9WoIA==", + "requires": { + "@babel/runtime": "^7.1.2" + } + }, "domain-browser": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", @@ -2132,6 +2729,39 @@ "is-arrayish": "^0.2.1" } }, + "es-abstract": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.13.0.tgz", + "integrity": "sha512-vDZfg/ykNxQVwup/8E1BZhVzFfBxs9NqMzGcvIJrqg5k2/5Za2bWo40dK2J1pgLngZ7c+Shh8lwYtLGyrwPutg==", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.0", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "is-callable": "^1.1.4", + "is-regex": "^1.0.4", + "object-keys": "^1.0.12" + }, + "dependencies": { + "object-keys": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.0.tgz", + "integrity": "sha512-6OO5X1+2tYkNyNEx6TsCxEqFfRWaqx6EtMiSbGrw8Ob8v9Ne+Hl8rBAgLBZn5wjEz3s/s6U1WXFUFOcxxAwUpg==", + "dev": true + } + } + }, + "es-to-primitive": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz", + "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", @@ -2402,14 +3032,14 @@ } }, "find-cache-dir": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-1.0.0.tgz", - "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.0.0.tgz", + "integrity": "sha512-LDUY6V1Xs5eFskUVYtIwatojt6+9xC9Chnlk/jYOOvn3FAFfSaWddxahDGyNHh0b2dMXa6YW2m0tk8TdVaXHlA==", "dev": true, "requires": { "commondir": "^1.0.1", "make-dir": "^1.0.0", - "pkg-dir": "^2.0.0" + "pkg-dir": "^3.0.0" } }, "find-root": { @@ -2418,12 +3048,12 @@ "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==" }, "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", "dev": true, "requires": { - "locate-path": "^2.0.0" + "locate-path": "^3.0.0" } }, "findup-sync": { @@ -3088,6 +3718,12 @@ } } }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, "get-caller-file": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", @@ -3168,25 +3804,19 @@ "which": "^1.2.14" } }, - "globals": { - "version": "9.18.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", - "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", - "dev": true - }, "graceful-fs": { "version": "4.1.15", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz", "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==", "dev": true }, - "has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", "dev": true, "requires": { - "ansi-regex": "^2.0.0" + "function-bind": "^1.1.1" } }, "has-flag": { @@ -3195,6 +3825,12 @@ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", "dev": true }, + "has-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz", + "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=", + "dev": true + }, "has-value": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", @@ -3275,16 +3911,6 @@ "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-2.3.1.tgz", "integrity": "sha1-ND24TGAYxlB3iJgkATWhQg7iLOA=" }, - "home-or-tmp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", - "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", - "dev": true, - "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.1" - } - }, "homedir-polyfill": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz", @@ -3508,6 +4134,12 @@ "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", "dev": true }, + "is-callable": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", + "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==", + "dev": true + }, "is-data-descriptor": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", @@ -3528,6 +4160,12 @@ } } }, + "is-date-object": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", + "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=", + "dev": true + }, "is-descriptor": { "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", @@ -3564,15 +4202,6 @@ "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", "dev": true }, - "is-finite": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", - "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", - "dev": true, - "requires": { - "number-is-nan": "^1.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", @@ -3633,11 +4262,29 @@ } } }, + "is-regex": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", + "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", + "dev": true, + "requires": { + "has": "^1.0.1" + } + }, "is-stream": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" }, + "is-symbol": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz", + "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==", + "dev": true, + "requires": { + "has-symbols": "^1.0.0" + } + }, "is-windows": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", @@ -3670,6 +4317,12 @@ "whatwg-fetch": ">=0.10.0" } }, + "js-levenshtein": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/js-levenshtein/-/js-levenshtein-1.1.6.tgz", + "integrity": "sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g==", + "dev": true + }, "js-tokens": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", @@ -3684,12 +4337,6 @@ "esprima": "^4.0.0" } }, - "jsesc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", - "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", - "dev": true - }, "json-parse-better-errors": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", @@ -3835,20 +4482,29 @@ } }, "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", "dev": true, "requires": { - "p-locate": "^2.0.0", + "p-locate": "^3.0.0", "path-exists": "^3.0.0" } }, - "lodash": { - "version": "4.17.4", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", - "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", - "dev": true + "lodash.isfunction": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/lodash.isfunction/-/lodash.isfunction-3.0.9.tgz", + "integrity": "sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw==" + }, + "lodash.isobject": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/lodash.isobject/-/lodash.isobject-3.0.2.tgz", + "integrity": "sha1-PI+41bW/S/kK4G4U8qUwpO2TXh0=" + }, + "lodash.tonumber": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/lodash.tonumber/-/lodash.tonumber-4.0.3.tgz", + "integrity": "sha1-C5azGzVnJ5Prf1pj7nkfG56QJdk=" }, "loose-envify": { "version": "1.3.1", @@ -4213,6 +4869,15 @@ } } }, + "node-releases": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.10.tgz", + "integrity": "sha512-KbUPCpfoBvb3oBkej9+nrU0/7xPlVhmhhUJ1PZqwIP5/1dJkRWKWD3OONjo6M2J7tSCBtDCumLwwqeI+DWWaLQ==", + "dev": true, + "requires": { + "semver": "^5.3.0" + } + }, "nopt": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", @@ -4292,6 +4957,16 @@ "isobject": "^3.0.0" } }, + "object.getownpropertydescriptors": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz", + "integrity": "sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=", + "dev": true, + "requires": { + "define-properties": "^1.1.2", + "es-abstract": "^1.5.1" + } + }, "object.pick": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", @@ -4316,12 +4991,6 @@ "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", "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=", - "dev": true - }, "os-locale": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz", @@ -4333,12 +5002,6 @@ "mem": "^4.0.0" } }, - "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=", - "dev": true - }, "p-defer": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", @@ -4358,27 +5021,27 @@ "dev": true }, "p-limit": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.2.0.tgz", - "integrity": "sha512-Y/OtIaXtUPr4/YpMv1pCL5L5ed0rumAaAeBSj12F+bSlMdys7i8oQF/GUJmfpTS/QoaRrS/k6pma29haJpsMng==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.0.tgz", + "integrity": "sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ==", "dev": true, "requires": { - "p-try": "^1.0.0" + "p-try": "^2.0.0" } }, "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "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==", "dev": true, "requires": { - "p-limit": "^1.1.0" + "p-limit": "^2.0.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=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.0.0.tgz", + "integrity": "sha512-hMp0onDKIajHfIkdRk3P4CdCmErkYAxxDtP3Wx/4nZ3aGlau2VKh3mZpcuFkH27WQkL/3WBCPOktzA9ZOAnMQQ==", "dev": true }, "pako": { @@ -4487,14 +5150,19 @@ "dev": true }, "pkg-dir": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", - "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", "dev": true, "requires": { - "find-up": "^2.1.0" + "find-up": "^3.0.0" } }, + "popper.js": { + "version": "1.14.7", + "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.14.7.tgz", + "integrity": "sha512-4q1hNvoUre/8srWsH7hnoSJ5xVmIL4qgz+s4qf2TnJIMyZFUFMGH+9vE7mXynAlHSZ/NdTmmow86muD0myUkVQ==" + }, "posix-character-classes": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", @@ -4765,6 +5433,45 @@ } } }, + "react-lifecycles-compat": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz", + "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==" + }, + "react-popper": { + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/react-popper/-/react-popper-0.10.4.tgz", + "integrity": "sha1-rypBXqIike3VBGeNev2opu4ylao=", + "requires": { + "popper.js": "^1.14.1", + "prop-types": "^15.6.1" + }, + "dependencies": { + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + }, + "prop-types": { + "version": "15.7.2", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", + "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", + "requires": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.8.1" + } + }, + "react-is": { + "version": "16.8.4", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.8.4.tgz", + "integrity": "sha512-PVadd+WaUDOAciICm/J1waJaSvgq+4rHE/K70j0PFqKhkTBsPv/82UGQJNXAngz1fOQLLxI6z1sEDmJDQhCTAA==" + } + } + }, "react-router": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/react-router/-/react-router-4.2.0.tgz", @@ -4801,6 +5508,58 @@ "shallowequal": "^1.0.1" } }, + "react-transition-group": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-2.6.0.tgz", + "integrity": "sha512-VzZ+6k/adL3pJHo4PU/MHEPjW59/TGQtRsXC+wnxsx2mxjQKNHnDdJL/GpYuPJIsyHGjYbBQfIJ2JNOAdPc8GQ==", + "requires": { + "dom-helpers": "^3.3.1", + "loose-envify": "^1.4.0", + "prop-types": "^15.6.2", + "react-lifecycles-compat": "^3.0.4" + }, + "dependencies": { + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + }, + "prop-types": { + "version": "15.7.2", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", + "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", + "requires": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.8.1" + } + }, + "react-is": { + "version": "16.8.4", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.8.4.tgz", + "integrity": "sha512-PVadd+WaUDOAciICm/J1waJaSvgq+4rHE/K70j0PFqKhkTBsPv/82UGQJNXAngz1fOQLLxI6z1sEDmJDQhCTAA==" + } + } + }, + "reactstrap": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/reactstrap/-/reactstrap-7.1.0.tgz", + "integrity": "sha512-wtc4RkgnGn1TsZ0AxOZ2OqT+b8YmCWZj/tErPujWLepxzlEEhveZGC+uDerdaHVSAzJUP2DTk605iper7hutQQ==", + "requires": { + "@babel/runtime": "^7.2.0", + "classnames": "^2.2.3", + "lodash.isfunction": "^3.0.9", + "lodash.isobject": "^3.0.2", + "lodash.tonumber": "^4.0.3", + "prop-types": "^15.5.8", + "react-lifecycles-compat": "^3.0.4", + "react-popper": "^0.10.4", + "react-transition-group": "^2.3.1" + } + }, "readable-stream": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", @@ -4839,23 +5598,21 @@ "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==", "dev": true }, + "regenerate-unicode-properties": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.0.1.tgz", + "integrity": "sha512-HTjMafphaH5d5QDHuwW8Me6Hbc/GhXg8luNqTkPVwZ/oCZhnoifjWhGYsu2BzepMELTlbnoVcXvV0f+2uDDvoQ==", + "dev": true, + "requires": { + "regenerate": "^1.4.0" + } + }, "regenerator-runtime": { "version": "0.11.1", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", "dev": true }, - "regenerator-transform": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz", - "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==", - "dev": true, - "requires": { - "babel-runtime": "^6.18.0", - "babel-types": "^6.19.0", - "private": "^0.1.6" - } - }, "regex-not": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", @@ -4866,39 +5623,11 @@ "safe-regex": "^1.1.0" } }, - "regexpu-core": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", - "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", - "dev": true, - "requires": { - "regenerate": "^1.2.1", - "regjsgen": "^0.2.0", - "regjsparser": "^0.1.4" - } - }, - "regjsgen": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", - "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=", - "dev": true - }, - "regjsparser": { + "regexp-tree": { "version": "0.1.5", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", - "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", - "dev": true, - "requires": { - "jsesc": "~0.5.0" - }, - "dependencies": { - "jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", - "dev": true - } - } + "resolved": "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.5.tgz", + "integrity": "sha512-nUmxvfJyAODw+0B13hj8CFVAxhe7fDEAgJgaotBu3nnR+IgGgZq59YedJP5VYTlkEfqjuK6TuRpnymKdatLZfQ==", + "dev": true }, "remove-trailing-separator": { "version": "1.1.0", @@ -4918,15 +5647,6 @@ "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", "dev": true }, - "repeating": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", - "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", - "dev": true, - "requires": { - "is-finite": "^1.0.0" - } - }, "require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -5133,12 +5853,6 @@ "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", "dev": true }, - "slash": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", - "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", - "dev": true - }, "snapdragon": { "version": "0.8.2", "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", @@ -5270,15 +5984,6 @@ "urix": "^0.1.0" } }, - "source-map-support": { - "version": "0.4.18", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", - "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", - "dev": true, - "requires": { - "source-map": "^0.5.6" - } - }, "source-map-url": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", @@ -5511,12 +6216,6 @@ "resolved": "https://registry.npmjs.org/stylis-rule-sheet/-/stylis-rule-sheet-0.0.10.tgz", "integrity": "sha512-nTbZoaqoBnmK+ptANthb10ZRZOGC+EmTLLUxeYIuHNkEKcmKgXX1XWKkUBT2Ac4es3NybooPe0SmvKdhKJZAuw==" }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - }, "symbol-observable": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", @@ -5716,12 +6415,6 @@ "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", "dev": true }, - "to-fast-properties": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", - "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", - "dev": true - }, "to-object-path": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", @@ -5801,6 +6494,34 @@ "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.17.tgz", "integrity": "sha512-uRdSdu1oA1rncCQL7sCj8vSyZkgtL7faaw9Tc9rZ3mGgraQ7+Pdx7w5mnOSF3gw9ZNG6oc+KXfkon3bKuROm0g==" }, + "unicode-canonical-property-names-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", + "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==", + "dev": true + }, + "unicode-match-property-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz", + "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==", + "dev": true, + "requires": { + "unicode-canonical-property-names-ecmascript": "^1.0.4", + "unicode-property-aliases-ecmascript": "^1.0.4" + } + }, + "unicode-match-property-value-ecmascript": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.1.0.tgz", + "integrity": "sha512-hDTHvaBk3RmFzvSl0UVrUmC3PuW9wKVnpoUDYH0JDkSIovzw+J5viQmeYHxVSBptubnr7PbH2e0fnpDRQnQl5g==", + "dev": true + }, + "unicode-property-aliases-ecmascript": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.5.tgz", + "integrity": "sha512-L5RAqCfXqAwR3RriF8pM0lU0w4Ryf/GgzONwi6KnL1taJQa7x1TCxdJnILX59WIGOwR57IVxn7Nej0fz1Ny6fw==", + "dev": true + }, "union-value": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", @@ -5959,6 +6680,16 @@ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" }, + "util.promisify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz", + "integrity": "sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==", + "dev": true, + "requires": { + "define-properties": "^1.1.2", + "object.getownpropertydescriptors": "^2.0.3" + } + }, "v8-compile-cache": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.0.2.tgz", diff --git a/src/React.Sample.Webpack.CoreMvc/package.json b/src/React.Sample.Webpack.CoreMvc/package.json index 594914d6f..7763a044f 100644 --- a/src/React.Sample.Webpack.CoreMvc/package.json +++ b/src/React.Sample.Webpack.CoreMvc/package.json @@ -15,13 +15,17 @@ "react-helmet": "^5.2.0", "react-jss": "^8.6.1", "react-router-dom": "^4.2.2", + "reactstrap": "^7.1.0", "styled-components": "^3.4.5" }, "devDependencies": { - "babel-core": "6.26.3", - "babel-loader": "7.1.2", - "babel-preset-env": "1.7.0", - "babel-preset-react": "6.24.1", + "@babel/core": "^7.0.0", + "@babel/plugin-proposal-class-properties": "^7.3.4", + "@babel/plugin-proposal-object-rest-spread": "^7.3.4", + "@babel/preset-env": "^7.0.0", + "@babel/preset-react": "^7.0.0", + "babel-loader": "^8.0.0", + "babel-runtime": "^6.26.0", "webpack": "4.29.3", "webpack-cli": "3.2.3" } diff --git a/src/React.Sample.Webpack.CoreMvc/wwwroot/dist/components.js b/src/React.Sample.Webpack.CoreMvc/wwwroot/dist/components.js new file mode 100644 index 000000000..e32092a44 --- /dev/null +++ b/src/React.Sample.Webpack.CoreMvc/wwwroot/dist/components.js @@ -0,0 +1,86 @@ +(this["webpackJsonp"] = this["webpackJsonp"] || []).push([["components"],{ + +/***/ "./Content/components/comments/Sample.jsx": +/*!************************************************!*\ + !*** ./Content/components/comments/Sample.jsx ***! + \************************************************/ +/*! exports provided: CommentsBox */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CommentsBox\", function() { return CommentsBox; });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var reactstrap__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! reactstrap */ \"./node_modules/reactstrap/es/index.js\");\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\n/**\n * Copyright (c) 2014-Present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n\n\nfunction CommentsBox(props) {\n var _React$useState = react__WEBPACK_IMPORTED_MODULE_0___default.a.useState({\n comments: props.initialComments,\n page: props.page,\n hasMore: true,\n loadingMore: false\n }),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n state = _React$useState2[0],\n updateState = _React$useState2[1];\n\n function loadMoreClicked(evt) {\n var nextPage = state.page + 1;\n var comments = state.comments;\n updateState(function (prevState) {\n return _objectSpread({}, prevState, {\n page: nextPage,\n loadingMore: true\n });\n });\n var url = '/comments/page-' + (state.page + 1);\n var xhr = new XMLHttpRequest();\n xhr.open('GET', url, true);\n xhr.setRequestHeader('Content-Type', 'application/json');\n\n xhr.onload = function () {\n var data = JSON.parse(xhr.responseText);\n updateState(function (prevState) {\n return _objectSpread({}, prevState, {\n comments: comments.concat(data.comments),\n hasMore: data.hasMore,\n loadingMore: false\n });\n });\n };\n\n xhr.send();\n evt.preventDefault();\n }\n\n var commentNodes = state.comments.map(function (comment) {\n return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(Comment, {\n author: comment.author\n }, comment.text);\n });\n\n function renderMoreLink() {\n if (state.loadingMore) {\n return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"em\", null, \"Loading...\");\n } else if (state.hasMore) {\n return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(reactstrap__WEBPACK_IMPORTED_MODULE_2__[\"Button\"], {\n onClick: loadMoreClicked\n }, \"Load More\");\n } else {\n return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"em\", null, \"No more comments\");\n }\n }\n\n return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", null, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"p\", {\n className: \"lead\"\n }, \"This is an example of ReactJS.NET's server-side rendering. The initial state of this comments box is rendered server-side, and additional data is loaded via AJAX and rendered client-side.\"), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"comments\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"h1\", null, \"Comments\"), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"ol\", {\n className: \"commentList\"\n }, commentNodes), renderMoreLink(), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"hr\", null)));\n}\n\nvar Comment =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inherits(Comment, _React$Component);\n\n function Comment() {\n _classCallCheck(this, Comment);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(Comment).apply(this, arguments));\n }\n\n _createClass(Comment, [{\n key: \"render\",\n value: function render() {\n return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"li\", null, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(Avatar, {\n author: this.props.author\n }), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"strong\", null, this.props.author.name), ': ', this.props.children);\n }\n }]);\n\n return Comment;\n}(react__WEBPACK_IMPORTED_MODULE_0___default.a.Component);\n\n_defineProperty(Comment, \"propTypes\", {\n author: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object.isRequired\n});\n\nvar Avatar =\n/*#__PURE__*/\nfunction (_React$Component2) {\n _inherits(Avatar, _React$Component2);\n\n function Avatar() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, Avatar);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(Avatar)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n _defineProperty(_assertThisInitialized(_this), \"getPhotoUrl\", function (author) {\n return 'https://avatars.githubusercontent.com/' + author.githubUsername + '?s=50';\n });\n\n return _this;\n }\n\n _createClass(Avatar, [{\n key: \"render\",\n value: function render() {\n return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"img\", {\n src: this.getPhotoUrl(this.props.author),\n alt: 'Photo of ' + this.props.author.name,\n width: 50,\n height: 50,\n className: \"commentPhoto mr-1\"\n });\n }\n }]);\n\n return Avatar;\n}(react__WEBPACK_IMPORTED_MODULE_0___default.a.Component);\n\n_defineProperty(Avatar, \"propTypes\", {\n author: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object.isRequired\n});\n\n//# sourceURL=webpack:///./Content/components/comments/Sample.jsx?"); + +/***/ }), + +/***/ "./Content/components/emotion.jsx": +/*!****************************************!*\ + !*** ./Content/components/emotion.jsx ***! + \****************************************/ +/*! exports provided: EmotionDemo */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"EmotionDemo\", function() { return EmotionDemo; });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react_emotion__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-emotion */ \"./node_modules/react-emotion/dist/index.esm.js\");\n/* harmony import */ var react_helmet__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react-helmet */ \"./node_modules/react-helmet/lib/Helmet.js\");\n/* harmony import */ var react_helmet__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_helmet__WEBPACK_IMPORTED_MODULE_2__);\nfunction _templateObject() {\n var data = _taggedTemplateLiteral([\"\\n\\tcolor: #222;\\n\\tfont-family: Helvetica, 'sans-serif';\\n\\ttext-shadow: 0 0 5px lightgray;\\n\\tline-height: 2;\\n\\n\\ta {\\n\\t\\ttransition: color 0.2s ease;\\n\\t\\tcolor: palevioletred;\\n\\t\\ttext-decoration: none;\\n\\n\\t\\t&:hover {\\n\\t\\t\\tcolor: #888;\\n\\t\\t}\\n\\t}\\n\"]);\n\n _templateObject = function _templateObject() {\n return data;\n };\n\n return data;\n}\n\nfunction _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\n\n\n\nvar BlueTitle = Object(react_emotion__WEBPACK_IMPORTED_MODULE_1__[\"default\"])('h1')(_templateObject());\nfunction EmotionDemo() {\n return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_0__[\"Fragment\"], null, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react_helmet__WEBPACK_IMPORTED_MODULE_2__[\"Helmet\"], null, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"title\", null, \"ReactJS.NET Demos | Emotion\")), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(BlueTitle, null, \"Hello from\", ' ', react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"a\", {\n href: \"https://github.com/emotion-js/emotion/\"\n }, \"emotion\"), \"!\"));\n}\n\n//# sourceURL=webpack:///./Content/components/emotion.jsx?"); + +/***/ }), + +/***/ "./Content/components/expose-components.js": +/*!*************************************************!*\ + !*** ./Content/components/expose-components.js ***! + \*************************************************/ +/*! no exports provided */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* WEBPACK VAR INJECTION */(function(global) {/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-dom */ \"./node_modules/react-dom/index.js\");\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_dom__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var react_dom_server__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react-dom/server */ \"./node_modules/react-dom/server.browser.js\");\n/* harmony import */ var react_dom_server__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_dom_server__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _home_jsx__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./home.jsx */ \"./Content/components/home.jsx\");\n/* harmony import */ var styled_components__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.browser.esm.js\");\n/* harmony import */ var react_jss__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react-jss */ \"./node_modules/react-jss/lib/index.js\");\n/* harmony import */ var react_jss__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(react_jss__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var emotion_server__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! emotion-server */ \"./node_modules/emotion-server/dist/index.js\");\n/* harmony import */ var emotion_server__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(emotion_server__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var react_helmet__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! react-helmet */ \"./node_modules/react-helmet/lib/Helmet.js\");\n/* harmony import */ var react_helmet__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(react_helmet__WEBPACK_IMPORTED_MODULE_7__);\n\n\n\n\n\n\n\n\nglobal.React = react__WEBPACK_IMPORTED_MODULE_0___default.a;\nglobal.ReactDOM = react_dom__WEBPACK_IMPORTED_MODULE_1___default.a;\nglobal.ReactDOMServer = react_dom_server__WEBPACK_IMPORTED_MODULE_2___default.a;\nglobal.Styled = {\n ServerStyleSheet: styled_components__WEBPACK_IMPORTED_MODULE_4__[\"ServerStyleSheet\"]\n};\nglobal.ReactJss = {\n JssProvider: react_jss__WEBPACK_IMPORTED_MODULE_5__[\"JssProvider\"],\n SheetsRegistry: react_jss__WEBPACK_IMPORTED_MODULE_5__[\"SheetsRegistry\"]\n};\nglobal.EmotionServer = {\n renderStylesToString: emotion_server__WEBPACK_IMPORTED_MODULE_6__[\"renderStylesToString\"]\n};\nglobal.Helmet = react_helmet__WEBPACK_IMPORTED_MODULE_7___default.a;\nglobal.RootComponent = _home_jsx__WEBPACK_IMPORTED_MODULE_3__[\"default\"];\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/global.js */ \"./node_modules/webpack/buildin/global.js\")))\n\n//# sourceURL=webpack:///./Content/components/expose-components.js?"); + +/***/ }), + +/***/ "./Content/components/home.jsx": +/*!*************************************!*\ + !*** ./Content/components/home.jsx ***! + \*************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return HomeComponent; });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-router-dom */ \"./node_modules/react-router-dom/es/index.js\");\n/* harmony import */ var react_helmet__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react-helmet */ \"./node_modules/react-helmet/lib/Helmet.js\");\n/* harmony import */ var react_helmet__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_helmet__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _comments_Sample_jsx__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./comments/Sample.jsx */ \"./Content/components/comments/Sample.jsx\");\n/* harmony import */ var _styled_components_jsx__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./styled-components.jsx */ \"./Content/components/styled-components.jsx\");\n/* harmony import */ var _emotion_jsx__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./emotion.jsx */ \"./Content/components/emotion.jsx\");\n/* harmony import */ var _react_jss_jsx__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./react-jss.jsx */ \"./Content/components/react-jss.jsx\");\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n\n\n\n\n\n\n\n\nvar Navbar =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(Navbar, _Component);\n\n function Navbar() {\n _classCallCheck(this, Navbar);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(Navbar).apply(this, arguments));\n }\n\n _createClass(Navbar, [{\n key: \"render\",\n value: function render() {\n return React.createElement(\"ul\", null, React.createElement(\"li\", null, React.createElement(react_router_dom__WEBPACK_IMPORTED_MODULE_1__[\"Link\"], {\n to: \"/\"\n }, \"Home\")), React.createElement(\"li\", null, React.createElement(react_router_dom__WEBPACK_IMPORTED_MODULE_1__[\"Link\"], {\n to: \"/comments\"\n }, \"Comments Demo\")), React.createElement(\"li\", null, React.createElement(react_router_dom__WEBPACK_IMPORTED_MODULE_1__[\"Link\"], {\n to: \"/styled-components\"\n }, \"Styled Components Demo\")), React.createElement(\"li\", null, React.createElement(react_router_dom__WEBPACK_IMPORTED_MODULE_1__[\"Link\"], {\n to: \"/react-jss\"\n }, \"React-JSS Demo\")), React.createElement(\"li\", null, React.createElement(react_router_dom__WEBPACK_IMPORTED_MODULE_1__[\"Link\"], {\n to: \"/emotion\"\n }, \"Emotion Demo\")));\n }\n }]);\n\n return Navbar;\n}(react__WEBPACK_IMPORTED_MODULE_0__[\"Component\"]);\n\nvar HomePage =\n/*#__PURE__*/\nfunction (_Component2) {\n _inherits(HomePage, _Component2);\n\n function HomePage() {\n _classCallCheck(this, HomePage);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(HomePage).apply(this, arguments));\n }\n\n _createClass(HomePage, [{\n key: \"render\",\n value: function render() {\n return React.createElement(react__WEBPACK_IMPORTED_MODULE_0__[\"Fragment\"], null, React.createElement(react_helmet__WEBPACK_IMPORTED_MODULE_2__[\"Helmet\"], null, React.createElement(\"title\", null, \"ReactJS.NET Demos\")), \"ReactJS.NET is \\uD83D\\uDD25\\uD83D\\uDD25\");\n }\n }]);\n\n return HomePage;\n}(react__WEBPACK_IMPORTED_MODULE_0__[\"Component\"]);\n\nvar HomeComponent =\n/*#__PURE__*/\nfunction (_Component3) {\n _inherits(HomeComponent, _Component3);\n\n function HomeComponent() {\n _classCallCheck(this, HomeComponent);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(HomeComponent).apply(this, arguments));\n }\n\n _createClass(HomeComponent, [{\n key: \"render\",\n value: function render() {\n var _this = this;\n\n var app = React.createElement(\"div\", {\n className: \"container\"\n }, React.createElement(\"div\", {\n className: \"jumbotron\"\n }, React.createElement(\"h1\", {\n className: \"display-4\"\n }, \".NET Core Sample\"), React.createElement(Navbar, null), React.createElement(\"hr\", {\n className: \"my-4\"\n }), React.createElement(react_router_dom__WEBPACK_IMPORTED_MODULE_1__[\"Switch\"], null, React.createElement(react_router_dom__WEBPACK_IMPORTED_MODULE_1__[\"Route\"], {\n exact: true,\n path: \"/\",\n render: function render() {\n return React.createElement(react_router_dom__WEBPACK_IMPORTED_MODULE_1__[\"Redirect\"], {\n to: \"/home\"\n });\n }\n }), React.createElement(react_router_dom__WEBPACK_IMPORTED_MODULE_1__[\"Route\"], {\n path: \"/home\",\n component: HomePage\n }), React.createElement(react_router_dom__WEBPACK_IMPORTED_MODULE_1__[\"Route\"], {\n path: \"/comments\",\n component: function component() {\n return React.createElement(_comments_Sample_jsx__WEBPACK_IMPORTED_MODULE_3__[\"CommentsBox\"], {\n initialComments: _this.props.initialComments,\n page: _this.props.page\n });\n }\n }), React.createElement(react_router_dom__WEBPACK_IMPORTED_MODULE_1__[\"Route\"], {\n path: \"/styled-components\",\n component: _styled_components_jsx__WEBPACK_IMPORTED_MODULE_4__[\"StyledComponentsDemo\"]\n }), React.createElement(react_router_dom__WEBPACK_IMPORTED_MODULE_1__[\"Route\"], {\n path: \"/react-jss\",\n component: _react_jss_jsx__WEBPACK_IMPORTED_MODULE_6__[\"ReactJssDemo\"]\n }), React.createElement(react_router_dom__WEBPACK_IMPORTED_MODULE_1__[\"Route\"], {\n path: \"/emotion\",\n component: _emotion_jsx__WEBPACK_IMPORTED_MODULE_5__[\"EmotionDemo\"]\n }), React.createElement(react_router_dom__WEBPACK_IMPORTED_MODULE_1__[\"Route\"], {\n path: \"*\",\n component: function component(_ref) {\n var staticContext = _ref.staticContext;\n if (staticContext) staticContext.status = 404;\n return React.createElement(\"h1\", null, \"Not Found :(\");\n }\n }))));\n\n if (typeof window === 'undefined') {\n return React.createElement(react_router_dom__WEBPACK_IMPORTED_MODULE_1__[\"StaticRouter\"], {\n context: this.props.context,\n location: this.props.location\n }, app);\n }\n\n return React.createElement(react_router_dom__WEBPACK_IMPORTED_MODULE_1__[\"BrowserRouter\"], null, app);\n }\n }]);\n\n return HomeComponent;\n}(react__WEBPACK_IMPORTED_MODULE_0__[\"Component\"]);\n\n\n\n//# sourceURL=webpack:///./Content/components/home.jsx?"); + +/***/ }), + +/***/ "./Content/components/react-jss.jsx": +/*!******************************************!*\ + !*** ./Content/components/react-jss.jsx ***! + \******************************************/ +/*! exports provided: ReactJssDemo */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ReactJssDemo\", function() { return ReactJssDemo; });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react_jss__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-jss */ \"./node_modules/react-jss/lib/index.js\");\n/* harmony import */ var react_jss__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_jss__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var react_helmet__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react-helmet */ \"./node_modules/react-helmet/lib/Helmet.js\");\n/* harmony import */ var react_helmet__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_helmet__WEBPACK_IMPORTED_MODULE_2__);\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n\n\n\nvar styles = {\n demoTitle: {\n color: '#222',\n fontFamily: 'Helvetica, sans-serif',\n textShadow: '0 0 5px lightgray',\n lineHeight: '2',\n '& a': {\n transition: 'color 0.2s ease',\n color: 'palevioletred',\n 'text-decoration': 'none',\n '&:hover': {\n color: '#888'\n }\n }\n }\n};\n\nvar DemoTitle = function DemoTitle(_ref) {\n var classes = _ref.classes,\n children = _ref.children;\n return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"h1\", {\n className: classes.demoTitle\n }, \"Hello from \", react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"a\", {\n href: \"https://github.com/cssinjs/react-jss\"\n }, \"React-JSS\"), \"!\");\n};\n\nvar WithInjectedSheet = react_jss__WEBPACK_IMPORTED_MODULE_1___default()(styles)(DemoTitle);\nvar ReactJssDemo =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inherits(ReactJssDemo, _React$Component);\n\n function ReactJssDemo() {\n _classCallCheck(this, ReactJssDemo);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(ReactJssDemo).apply(this, arguments));\n }\n\n _createClass(ReactJssDemo, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var serverStyles = document.getElementById('server-side-styles');\n\n if (serverStyles) {\n serverStyles.parentNode.removeChild(serverStyles);\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_0__[\"Fragment\"], null, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react_helmet__WEBPACK_IMPORTED_MODULE_2__[\"Helmet\"], null, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"title\", null, \"ReactJS.NET Demos | React-JSS\")), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(WithInjectedSheet, null));\n }\n }]);\n\n return ReactJssDemo;\n}(react__WEBPACK_IMPORTED_MODULE_0___default.a.Component);\n\n//# sourceURL=webpack:///./Content/components/react-jss.jsx?"); + +/***/ }), + +/***/ "./Content/components/styled-components.jsx": +/*!**************************************************!*\ + !*** ./Content/components/styled-components.jsx ***! + \**************************************************/ +/*! exports provided: StyledComponentsDemo */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"StyledComponentsDemo\", function() { return StyledComponentsDemo; });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var styled_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.browser.esm.js\");\n/* harmony import */ var react_helmet__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react-helmet */ \"./node_modules/react-helmet/lib/Helmet.js\");\n/* harmony import */ var react_helmet__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_helmet__WEBPACK_IMPORTED_MODULE_2__);\nfunction _templateObject() {\n var data = _taggedTemplateLiteral([\"\\n\\tcolor: #222;\\n\\tfont-family: Helvetica, 'sans-serif';\\n\\ttext-shadow: 0 0 5px lightgray;\\n\\tline-height: 2;\\n\\n\\ta {\\n\\t\\ttransition: color 0.2s ease;\\n\\t\\tcolor: palevioletred;\\n\\t\\ttext-decoration: none;\\n\\n\\t\\t&:hover {\\n\\t\\t\\tcolor: #888;\\n\\t\\t}\\n\\t}\\n\"]);\n\n _templateObject = function _templateObject() {\n return data;\n };\n\n return data;\n}\n\nfunction _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\n\n\n\nvar BlueTitle = styled_components__WEBPACK_IMPORTED_MODULE_1__[\"default\"].h1(_templateObject());\nfunction StyledComponentsDemo() {\n return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_0__[\"Fragment\"], null, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react_helmet__WEBPACK_IMPORTED_MODULE_2__[\"Helmet\"], null, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"title\", null, \"ReactJS.NET Demos | Styled Components\")), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(BlueTitle, null, \"Hello from\", ' ', react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"a\", {\n href: \"https://github.com/styled-components/styled-components\"\n }, \"styled-components\"), \"!\"));\n}\n\n//# sourceURL=webpack:///./Content/components/styled-components.jsx?"); + +/***/ }), + +/***/ 0: +/*!**********************!*\ + !*** util (ignored) ***! + \**********************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +eval("/* (ignored) */\n\n//# sourceURL=webpack:///util_(ignored)?"); + +/***/ }) + +},[["./Content/components/expose-components.js","runtime","vendor"]]]); \ No newline at end of file diff --git a/src/React.Sample.Webpack.CoreMvc/wwwroot/dist/runtime.js b/src/React.Sample.Webpack.CoreMvc/wwwroot/dist/runtime.js new file mode 100644 index 000000000..cf48973ef --- /dev/null +++ b/src/React.Sample.Webpack.CoreMvc/wwwroot/dist/runtime.js @@ -0,0 +1,153 @@ +/******/ (function(modules) { // webpackBootstrap +/******/ // install a JSONP callback for chunk loading +/******/ function webpackJsonpCallback(data) { +/******/ var chunkIds = data[0]; +/******/ var moreModules = data[1]; +/******/ var executeModules = data[2]; +/******/ +/******/ // add "moreModules" to the modules object, +/******/ // then flag all "chunkIds" as loaded and fire callback +/******/ var moduleId, chunkId, i = 0, resolves = []; +/******/ for(;i < chunkIds.length; i++) { +/******/ chunkId = chunkIds[i]; +/******/ if(installedChunks[chunkId]) { +/******/ resolves.push(installedChunks[chunkId][0]); +/******/ } +/******/ installedChunks[chunkId] = 0; +/******/ } +/******/ for(moduleId in moreModules) { +/******/ if(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) { +/******/ modules[moduleId] = moreModules[moduleId]; +/******/ } +/******/ } +/******/ if(parentJsonpFunction) parentJsonpFunction(data); +/******/ +/******/ while(resolves.length) { +/******/ resolves.shift()(); +/******/ } +/******/ +/******/ // add entry modules from loaded chunk to deferred list +/******/ deferredModules.push.apply(deferredModules, executeModules || []); +/******/ +/******/ // run deferred modules when all chunks ready +/******/ return checkDeferredModules(); +/******/ }; +/******/ function checkDeferredModules() { +/******/ var result; +/******/ for(var i = 0; i < deferredModules.length; i++) { +/******/ var deferredModule = deferredModules[i]; +/******/ var fulfilled = true; +/******/ for(var j = 1; j < deferredModule.length; j++) { +/******/ var depId = deferredModule[j]; +/******/ if(installedChunks[depId] !== 0) fulfilled = false; +/******/ } +/******/ if(fulfilled) { +/******/ deferredModules.splice(i--, 1); +/******/ result = __webpack_require__(__webpack_require__.s = deferredModule[0]); +/******/ } +/******/ } +/******/ return result; +/******/ } +/******/ +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // object to store loaded and loading chunks +/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched +/******/ // Promise = chunk loading, 0 = chunk loaded +/******/ var installedChunks = { +/******/ "runtime": 0 +/******/ }; +/******/ +/******/ var deferredModules = []; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) { +/******/ return installedModules[moduleId].exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); +/******/ } +/******/ }; +/******/ +/******/ // define __esModule on exports +/******/ __webpack_require__.r = function(exports) { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ +/******/ // create a fake namespace object +/******/ // mode & 1: value is a module id, require it +/******/ // mode & 2: merge all properties of value into the ns +/******/ // mode & 4: return value when already ns object +/******/ // mode & 8|1: behave like require +/******/ __webpack_require__.t = function(value, mode) { +/******/ if(mode & 1) value = __webpack_require__(value); +/******/ if(mode & 8) return value; +/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; +/******/ var ns = Object.create(null); +/******/ __webpack_require__.r(ns); +/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); +/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); +/******/ return ns; +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; +/******/ +/******/ var jsonpArray = this["webpackJsonp"] = this["webpackJsonp"] || []; +/******/ var oldJsonpFunction = jsonpArray.push.bind(jsonpArray); +/******/ jsonpArray.push = webpackJsonpCallback; +/******/ jsonpArray = jsonpArray.slice(); +/******/ for(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]); +/******/ var parentJsonpFunction = oldJsonpFunction; +/******/ +/******/ +/******/ // run deferred modules from other chunks +/******/ checkDeferredModules(); +/******/ }) +/************************************************************************/ +/******/ ([]); \ No newline at end of file diff --git a/src/React.Sample.Webpack.CoreMvc/wwwroot/dist/vendor.js b/src/React.Sample.Webpack.CoreMvc/wwwroot/dist/vendor.js new file mode 100644 index 000000000..845d78639 --- /dev/null +++ b/src/React.Sample.Webpack.CoreMvc/wwwroot/dist/vendor.js @@ -0,0 +1,4057 @@ +(this["webpackJsonp"] = this["webpackJsonp"] || []).push([["vendor"],{ + +/***/ "./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js": +/*!**************************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js ***! + \**************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _assertThisInitialized; });\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\n//# sourceURL=webpack:///./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js?"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/esm/defineProperty.js": +/*!*******************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/esm/defineProperty.js ***! + \*******************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _defineProperty; });\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\n//# sourceURL=webpack:///./node_modules/@babel/runtime/helpers/esm/defineProperty.js?"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/esm/extends.js": +/*!************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/esm/extends.js ***! + \************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _extends; });\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\n//# sourceURL=webpack:///./node_modules/@babel/runtime/helpers/esm/extends.js?"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js": +/*!******************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js ***! + \******************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _inheritsLoose; });\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\n//# sourceURL=webpack:///./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js?"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/esm/objectSpread.js": +/*!*****************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/esm/objectSpread.js ***! + \*****************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _objectSpread; });\n/* harmony import */ var _defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./defineProperty */ \"./node_modules/@babel/runtime/helpers/esm/defineProperty.js\");\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n Object(_defineProperty__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(target, key, source[key]);\n });\n }\n\n return target;\n}\n\n//# sourceURL=webpack:///./node_modules/@babel/runtime/helpers/esm/objectSpread.js?"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js": +/*!*********************************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js ***! + \*********************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _objectWithoutPropertiesLoose; });\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\n//# sourceURL=webpack:///./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js?"); + +/***/ }), + +/***/ "./node_modules/@babel/runtime/helpers/interopRequireDefault.js": +/*!**********************************************************************!*\ + !*** ./node_modules/@babel/runtime/helpers/interopRequireDefault.js ***! + \**********************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +eval("function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nmodule.exports = _interopRequireDefault;\n\n//# sourceURL=webpack:///./node_modules/@babel/runtime/helpers/interopRequireDefault.js?"); + +/***/ }), + +/***/ "./node_modules/@emotion/hash/dist/hash.esm.js": +/*!*****************************************************!*\ + !*** ./node_modules/@emotion/hash/dist/hash.esm.js ***! + \*****************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* eslint-disable */\n// murmurhash2 via https://github.com/garycourt/murmurhash-js/blob/master/murmurhash2_gc.js\nfunction murmurhash2_32_gc(str) {\n var l = str.length,\n h = l ^ l,\n i = 0,\n k;\n\n while (l >= 4) {\n k = str.charCodeAt(i) & 0xff | (str.charCodeAt(++i) & 0xff) << 8 | (str.charCodeAt(++i) & 0xff) << 16 | (str.charCodeAt(++i) & 0xff) << 24;\n k = (k & 0xffff) * 0x5bd1e995 + (((k >>> 16) * 0x5bd1e995 & 0xffff) << 16);\n k ^= k >>> 24;\n k = (k & 0xffff) * 0x5bd1e995 + (((k >>> 16) * 0x5bd1e995 & 0xffff) << 16);\n h = (h & 0xffff) * 0x5bd1e995 + (((h >>> 16) * 0x5bd1e995 & 0xffff) << 16) ^ k;\n l -= 4;\n ++i;\n }\n\n switch (l) {\n case 3:\n h ^= (str.charCodeAt(i + 2) & 0xff) << 16;\n\n case 2:\n h ^= (str.charCodeAt(i + 1) & 0xff) << 8;\n\n case 1:\n h ^= str.charCodeAt(i) & 0xff;\n h = (h & 0xffff) * 0x5bd1e995 + (((h >>> 16) * 0x5bd1e995 & 0xffff) << 16);\n }\n\n h ^= h >>> 13;\n h = (h & 0xffff) * 0x5bd1e995 + (((h >>> 16) * 0x5bd1e995 & 0xffff) << 16);\n h ^= h >>> 15;\n return (h >>> 0).toString(36);\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (murmurhash2_32_gc);\n\n\n//# sourceURL=webpack:///./node_modules/@emotion/hash/dist/hash.esm.js?"); + +/***/ }), + +/***/ "./node_modules/@emotion/is-prop-valid/dist/is-prop-valid.esm.js": +/*!***********************************************************************!*\ + !*** ./node_modules/@emotion/is-prop-valid/dist/is-prop-valid.esm.js ***! + \***********************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _emotion_memoize__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @emotion/memoize */ \"./node_modules/@emotion/memoize/dist/memoize.esm.js\");\n\n\nvar reactPropsRegex = /^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|valueLink|accept|acceptCharset|accessKey|action|allow|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|default|defer|dir|disabled|download|draggable|encType|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|itemProp|itemScope|itemType|itemID|itemRef|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class)|(on[A-Z].*)|((data|aria|x)-.*))$/i;\nvar index = Object(_emotion_memoize__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(reactPropsRegex.test.bind(reactPropsRegex));\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (index);\n\n\n//# sourceURL=webpack:///./node_modules/@emotion/is-prop-valid/dist/is-prop-valid.esm.js?"); + +/***/ }), + +/***/ "./node_modules/@emotion/memoize/dist/memoize.esm.js": +/*!***********************************************************!*\ + !*** ./node_modules/@emotion/memoize/dist/memoize.esm.js ***! + \***********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\nfunction memoize(fn) {\n var cache = {};\n return function (arg) {\n if (cache[arg] === undefined) cache[arg] = fn(arg);\n return cache[arg];\n };\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (memoize);\n\n\n//# sourceURL=webpack:///./node_modules/@emotion/memoize/dist/memoize.esm.js?"); + +/***/ }), + +/***/ "./node_modules/@emotion/stylis/dist/stylis.esm.js": +/*!*********************************************************!*\ + !*** ./node_modules/@emotion/stylis/dist/stylis.esm.js ***! + \*********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\nfunction stylis_min (W) {\n function M(d, c, e, h, a) {\n for (var m = 0, b = 0, v = 0, n = 0, q, g, x = 0, K = 0, k, u = k = q = 0, l = 0, r = 0, I = 0, t = 0, B = e.length, J = B - 1, y, f = '', p = '', F = '', G = '', C; l < B;) {\n g = e.charCodeAt(l);\n l === J && 0 !== b + n + v + m && (0 !== b && (g = 47 === b ? 10 : 47), n = v = m = 0, B++, J++);\n\n if (0 === b + n + v + m) {\n if (l === J && (0 < r && (f = f.replace(N, '')), 0 < f.trim().length)) {\n switch (g) {\n case 32:\n case 9:\n case 59:\n case 13:\n case 10:\n break;\n\n default:\n f += e.charAt(l);\n }\n\n g = 59;\n }\n\n switch (g) {\n case 123:\n f = f.trim();\n q = f.charCodeAt(0);\n k = 1;\n\n for (t = ++l; l < B;) {\n switch (g = e.charCodeAt(l)) {\n case 123:\n k++;\n break;\n\n case 125:\n k--;\n break;\n\n case 47:\n switch (g = e.charCodeAt(l + 1)) {\n case 42:\n case 47:\n a: {\n for (u = l + 1; u < J; ++u) {\n switch (e.charCodeAt(u)) {\n case 47:\n if (42 === g && 42 === e.charCodeAt(u - 1) && l + 2 !== u) {\n l = u + 1;\n break a;\n }\n\n break;\n\n case 10:\n if (47 === g) {\n l = u + 1;\n break a;\n }\n\n }\n }\n\n l = u;\n }\n\n }\n\n break;\n\n case 91:\n g++;\n\n case 40:\n g++;\n\n case 34:\n case 39:\n for (; l++ < J && e.charCodeAt(l) !== g;) {\n }\n\n }\n\n if (0 === k) break;\n l++;\n }\n\n k = e.substring(t, l);\n 0 === q && (q = (f = f.replace(ca, '').trim()).charCodeAt(0));\n\n switch (q) {\n case 64:\n 0 < r && (f = f.replace(N, ''));\n g = f.charCodeAt(1);\n\n switch (g) {\n case 100:\n case 109:\n case 115:\n case 45:\n r = c;\n break;\n\n default:\n r = O;\n }\n\n k = M(c, r, k, g, a + 1);\n t = k.length;\n 0 < A && (r = X(O, f, I), C = H(3, k, r, c, D, z, t, g, a, h), f = r.join(''), void 0 !== C && 0 === (t = (k = C.trim()).length) && (g = 0, k = ''));\n if (0 < t) switch (g) {\n case 115:\n f = f.replace(da, ea);\n\n case 100:\n case 109:\n case 45:\n k = f + '{' + k + '}';\n break;\n\n case 107:\n f = f.replace(fa, '$1 $2');\n k = f + '{' + k + '}';\n k = 1 === w || 2 === w && L('@' + k, 3) ? '@-webkit-' + k + '@' + k : '@' + k;\n break;\n\n default:\n k = f + k, 112 === h && (k = (p += k, ''));\n } else k = '';\n break;\n\n default:\n k = M(c, X(c, f, I), k, h, a + 1);\n }\n\n F += k;\n k = I = r = u = q = 0;\n f = '';\n g = e.charCodeAt(++l);\n break;\n\n case 125:\n case 59:\n f = (0 < r ? f.replace(N, '') : f).trim();\n if (1 < (t = f.length)) switch (0 === u && (q = f.charCodeAt(0), 45 === q || 96 < q && 123 > q) && (t = (f = f.replace(' ', ':')).length), 0 < A && void 0 !== (C = H(1, f, c, d, D, z, p.length, h, a, h)) && 0 === (t = (f = C.trim()).length) && (f = '\\x00\\x00'), q = f.charCodeAt(0), g = f.charCodeAt(1), q) {\n case 0:\n break;\n\n case 64:\n if (105 === g || 99 === g) {\n G += f + e.charAt(l);\n break;\n }\n\n default:\n 58 !== f.charCodeAt(t - 1) && (p += P(f, q, g, f.charCodeAt(2)));\n }\n I = r = u = q = 0;\n f = '';\n g = e.charCodeAt(++l);\n }\n }\n\n switch (g) {\n case 13:\n case 10:\n 47 === b ? b = 0 : 0 === 1 + q && 107 !== h && 0 < f.length && (r = 1, f += '\\x00');\n 0 < A * Y && H(0, f, c, d, D, z, p.length, h, a, h);\n z = 1;\n D++;\n break;\n\n case 59:\n case 125:\n if (0 === b + n + v + m) {\n z++;\n break;\n }\n\n default:\n z++;\n y = e.charAt(l);\n\n switch (g) {\n case 9:\n case 32:\n if (0 === n + m + b) switch (x) {\n case 44:\n case 58:\n case 9:\n case 32:\n y = '';\n break;\n\n default:\n 32 !== g && (y = ' ');\n }\n break;\n\n case 0:\n y = '\\\\0';\n break;\n\n case 12:\n y = '\\\\f';\n break;\n\n case 11:\n y = '\\\\v';\n break;\n\n case 38:\n 0 === n + b + m && (r = I = 1, y = '\\f' + y);\n break;\n\n case 108:\n if (0 === n + b + m + E && 0 < u) switch (l - u) {\n case 2:\n 112 === x && 58 === e.charCodeAt(l - 3) && (E = x);\n\n case 8:\n 111 === K && (E = K);\n }\n break;\n\n case 58:\n 0 === n + b + m && (u = l);\n break;\n\n case 44:\n 0 === b + v + n + m && (r = 1, y += '\\r');\n break;\n\n case 34:\n case 39:\n 0 === b && (n = n === g ? 0 : 0 === n ? g : n);\n break;\n\n case 91:\n 0 === n + b + v && m++;\n break;\n\n case 93:\n 0 === n + b + v && m--;\n break;\n\n case 41:\n 0 === n + b + m && v--;\n break;\n\n case 40:\n if (0 === n + b + m) {\n if (0 === q) switch (2 * x + 3 * K) {\n case 533:\n break;\n\n default:\n q = 1;\n }\n v++;\n }\n\n break;\n\n case 64:\n 0 === b + v + n + m + u + k && (k = 1);\n break;\n\n case 42:\n case 47:\n if (!(0 < n + m + v)) switch (b) {\n case 0:\n switch (2 * g + 3 * e.charCodeAt(l + 1)) {\n case 235:\n b = 47;\n break;\n\n case 220:\n t = l, b = 42;\n }\n\n break;\n\n case 42:\n 47 === g && 42 === x && t + 2 !== l && (33 === e.charCodeAt(t + 2) && (p += e.substring(t, l + 1)), y = '', b = 0);\n }\n }\n\n 0 === b && (f += y);\n }\n\n K = x;\n x = g;\n l++;\n }\n\n t = p.length;\n\n if (0 < t) {\n r = c;\n if (0 < A && (C = H(2, p, r, d, D, z, t, h, a, h), void 0 !== C && 0 === (p = C).length)) return G + p + F;\n p = r.join(',') + '{' + p + '}';\n\n if (0 !== w * E) {\n 2 !== w || L(p, 2) || (E = 0);\n\n switch (E) {\n case 111:\n p = p.replace(ha, ':-moz-$1') + p;\n break;\n\n case 112:\n p = p.replace(Q, '::-webkit-input-$1') + p.replace(Q, '::-moz-$1') + p.replace(Q, ':-ms-input-$1') + p;\n }\n\n E = 0;\n }\n }\n\n return G + p + F;\n }\n\n function X(d, c, e) {\n var h = c.trim().split(ia);\n c = h;\n var a = h.length,\n m = d.length;\n\n switch (m) {\n case 0:\n case 1:\n var b = 0;\n\n for (d = 0 === m ? '' : d[0] + ' '; b < a; ++b) {\n c[b] = Z(d, c[b], e, m).trim();\n }\n\n break;\n\n default:\n var v = b = 0;\n\n for (c = []; b < a; ++b) {\n for (var n = 0; n < m; ++n) {\n c[v++] = Z(d[n] + ' ', h[b], e, m).trim();\n }\n }\n\n }\n\n return c;\n }\n\n function Z(d, c, e) {\n var h = c.charCodeAt(0);\n 33 > h && (h = (c = c.trim()).charCodeAt(0));\n\n switch (h) {\n case 38:\n return c.replace(F, '$1' + d.trim());\n\n case 58:\n return d.trim() + c.replace(F, '$1' + d.trim());\n\n default:\n if (0 < 1 * e && 0 < c.indexOf('\\f')) return c.replace(F, (58 === d.charCodeAt(0) ? '' : '$1') + d.trim());\n }\n\n return d + c;\n }\n\n function P(d, c, e, h) {\n var a = d + ';',\n m = 2 * c + 3 * e + 4 * h;\n\n if (944 === m) {\n d = a.indexOf(':', 9) + 1;\n var b = a.substring(d, a.length - 1).trim();\n b = a.substring(0, d).trim() + b + ';';\n return 1 === w || 2 === w && L(b, 1) ? '-webkit-' + b + b : b;\n }\n\n if (0 === w || 2 === w && !L(a, 1)) return a;\n\n switch (m) {\n case 1015:\n return 97 === a.charCodeAt(10) ? '-webkit-' + a + a : a;\n\n case 951:\n return 116 === a.charCodeAt(3) ? '-webkit-' + a + a : a;\n\n case 963:\n return 110 === a.charCodeAt(5) ? '-webkit-' + a + a : a;\n\n case 1009:\n if (100 !== a.charCodeAt(4)) break;\n\n case 969:\n case 942:\n return '-webkit-' + a + a;\n\n case 978:\n return '-webkit-' + a + '-moz-' + a + a;\n\n case 1019:\n case 983:\n return '-webkit-' + a + '-moz-' + a + '-ms-' + a + a;\n\n case 883:\n if (45 === a.charCodeAt(8)) return '-webkit-' + a + a;\n if (0 < a.indexOf('image-set(', 11)) return a.replace(ja, '$1-webkit-$2') + a;\n break;\n\n case 932:\n if (45 === a.charCodeAt(4)) switch (a.charCodeAt(5)) {\n case 103:\n return '-webkit-box-' + a.replace('-grow', '') + '-webkit-' + a + '-ms-' + a.replace('grow', 'positive') + a;\n\n case 115:\n return '-webkit-' + a + '-ms-' + a.replace('shrink', 'negative') + a;\n\n case 98:\n return '-webkit-' + a + '-ms-' + a.replace('basis', 'preferred-size') + a;\n }\n return '-webkit-' + a + '-ms-' + a + a;\n\n case 964:\n return '-webkit-' + a + '-ms-flex-' + a + a;\n\n case 1023:\n if (99 !== a.charCodeAt(8)) break;\n b = a.substring(a.indexOf(':', 15)).replace('flex-', '').replace('space-between', 'justify');\n return '-webkit-box-pack' + b + '-webkit-' + a + '-ms-flex-pack' + b + a;\n\n case 1005:\n return ka.test(a) ? a.replace(aa, ':-webkit-') + a.replace(aa, ':-moz-') + a : a;\n\n case 1e3:\n b = a.substring(13).trim();\n c = b.indexOf('-') + 1;\n\n switch (b.charCodeAt(0) + b.charCodeAt(c)) {\n case 226:\n b = a.replace(G, 'tb');\n break;\n\n case 232:\n b = a.replace(G, 'tb-rl');\n break;\n\n case 220:\n b = a.replace(G, 'lr');\n break;\n\n default:\n return a;\n }\n\n return '-webkit-' + a + '-ms-' + b + a;\n\n case 1017:\n if (-1 === a.indexOf('sticky', 9)) break;\n\n case 975:\n c = (a = d).length - 10;\n b = (33 === a.charCodeAt(c) ? a.substring(0, c) : a).substring(d.indexOf(':', 7) + 1).trim();\n\n switch (m = b.charCodeAt(0) + (b.charCodeAt(7) | 0)) {\n case 203:\n if (111 > b.charCodeAt(8)) break;\n\n case 115:\n a = a.replace(b, '-webkit-' + b) + ';' + a;\n break;\n\n case 207:\n case 102:\n a = a.replace(b, '-webkit-' + (102 < m ? 'inline-' : '') + 'box') + ';' + a.replace(b, '-webkit-' + b) + ';' + a.replace(b, '-ms-' + b + 'box') + ';' + a;\n }\n\n return a + ';';\n\n case 938:\n if (45 === a.charCodeAt(5)) switch (a.charCodeAt(6)) {\n case 105:\n return b = a.replace('-items', ''), '-webkit-' + a + '-webkit-box-' + b + '-ms-flex-' + b + a;\n\n case 115:\n return '-webkit-' + a + '-ms-flex-item-' + a.replace(ba, '') + a;\n\n default:\n return '-webkit-' + a + '-ms-flex-line-pack' + a.replace('align-content', '').replace(ba, '') + a;\n }\n break;\n\n case 973:\n case 989:\n if (45 !== a.charCodeAt(3) || 122 === a.charCodeAt(4)) break;\n\n case 931:\n case 953:\n if (!0 === la.test(d)) return 115 === (b = d.substring(d.indexOf(':') + 1)).charCodeAt(0) ? P(d.replace('stretch', 'fill-available'), c, e, h).replace(':fill-available', ':stretch') : a.replace(b, '-webkit-' + b) + a.replace(b, '-moz-' + b.replace('fill-', '')) + a;\n break;\n\n case 962:\n if (a = '-webkit-' + a + (102 === a.charCodeAt(5) ? '-ms-' + a : '') + a, 211 === e + h && 105 === a.charCodeAt(13) && 0 < a.indexOf('transform', 10)) return a.substring(0, a.indexOf(';', 27) + 1).replace(ma, '$1-webkit-$2') + a;\n }\n\n return a;\n }\n\n function L(d, c) {\n var e = d.indexOf(1 === c ? ':' : '{'),\n h = d.substring(0, 3 !== c ? e : 10);\n e = d.substring(e + 1, d.length - 1);\n return R(2 !== c ? h : h.replace(na, '$1'), e, c);\n }\n\n function ea(d, c) {\n var e = P(c, c.charCodeAt(0), c.charCodeAt(1), c.charCodeAt(2));\n return e !== c + ';' ? e.replace(oa, ' or ($1)').substring(4) : '(' + c + ')';\n }\n\n function H(d, c, e, h, a, m, b, v, n, q) {\n for (var g = 0, x = c, w; g < A; ++g) {\n switch (w = S[g].call(B, d, x, e, h, a, m, b, v, n, q)) {\n case void 0:\n case !1:\n case !0:\n case null:\n break;\n\n default:\n x = w;\n }\n }\n\n if (x !== c) return x;\n }\n\n function T(d) {\n switch (d) {\n case void 0:\n case null:\n A = S.length = 0;\n break;\n\n default:\n switch (d.constructor) {\n case Array:\n for (var c = 0, e = d.length; c < e; ++c) {\n T(d[c]);\n }\n\n break;\n\n case Function:\n S[A++] = d;\n break;\n\n case Boolean:\n Y = !!d | 0;\n }\n\n }\n\n return T;\n }\n\n function U(d) {\n d = d.prefix;\n void 0 !== d && (R = null, d ? 'function' !== typeof d ? w = 1 : (w = 2, R = d) : w = 0);\n return U;\n }\n\n function B(d, c) {\n var e = d;\n 33 > e.charCodeAt(0) && (e = e.trim());\n V = e;\n e = [V];\n\n if (0 < A) {\n var h = H(-1, c, e, e, D, z, 0, 0, 0, 0);\n void 0 !== h && 'string' === typeof h && (c = h);\n }\n\n var a = M(O, e, c, 0, 0);\n 0 < A && (h = H(-2, a, e, e, D, z, a.length, 0, 0, 0), void 0 !== h && (a = h));\n V = '';\n E = 0;\n z = D = 1;\n return a;\n }\n\n var ca = /^\\0+/g,\n N = /[\\0\\r\\f]/g,\n aa = /: */g,\n ka = /zoo|gra/,\n ma = /([,: ])(transform)/g,\n ia = /,\\r+?/g,\n F = /([\\t\\r\\n ])*\\f?&/g,\n fa = /@(k\\w+)\\s*(\\S*)\\s*/,\n Q = /::(place)/g,\n ha = /:(read-only)/g,\n G = /[svh]\\w+-[tblr]{2}/,\n da = /\\(\\s*(.*)\\s*\\)/g,\n oa = /([\\s\\S]*?);/g,\n ba = /-self|flex-/g,\n na = /[^]*?(:[rp][el]a[\\w-]+)[^]*/,\n la = /stretch|:\\s*\\w+\\-(?:conte|avail)/,\n ja = /([^-])(image-set\\()/,\n z = 1,\n D = 1,\n E = 0,\n w = 1,\n O = [],\n S = [],\n A = 0,\n R = null,\n Y = 0,\n V = '';\n B.use = T;\n B.set = U;\n void 0 !== W && U(W);\n return B;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (stylis_min);\n\n\n//# sourceURL=webpack:///./node_modules/@emotion/stylis/dist/stylis.esm.js?"); + +/***/ }), + +/***/ "./node_modules/@emotion/unitless/dist/unitless.esm.js": +/*!*************************************************************!*\ + !*** ./node_modules/@emotion/unitless/dist/unitless.esm.js ***! + \*************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\nvar unitlessKeys = {\n animationIterationCount: 1,\n borderImageOutset: 1,\n borderImageSlice: 1,\n borderImageWidth: 1,\n boxFlex: 1,\n boxFlexGroup: 1,\n boxOrdinalGroup: 1,\n columnCount: 1,\n columns: 1,\n flex: 1,\n flexGrow: 1,\n flexPositive: 1,\n flexShrink: 1,\n flexNegative: 1,\n flexOrder: 1,\n gridRow: 1,\n gridRowEnd: 1,\n gridRowSpan: 1,\n gridRowStart: 1,\n gridColumn: 1,\n gridColumnEnd: 1,\n gridColumnSpan: 1,\n gridColumnStart: 1,\n fontWeight: 1,\n lineHeight: 1,\n opacity: 1,\n order: 1,\n orphans: 1,\n tabSize: 1,\n widows: 1,\n zIndex: 1,\n zoom: 1,\n WebkitLineClamp: 1,\n // SVG-related properties\n fillOpacity: 1,\n floodOpacity: 1,\n stopOpacity: 1,\n strokeDasharray: 1,\n strokeDashoffset: 1,\n strokeMiterlimit: 1,\n strokeOpacity: 1,\n strokeWidth: 1\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (unitlessKeys);\n\n\n//# sourceURL=webpack:///./node_modules/@emotion/unitless/dist/unitless.esm.js?"); + +/***/ }), + +/***/ "./node_modules/base64-js/index.js": +/*!*****************************************!*\ + !*** ./node_modules/base64-js/index.js ***! + \*****************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction placeHoldersCount (b64) {\n var len = b64.length\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // the number of equal signs (place holders)\n // if there are two placeholders, than the two characters before it\n // represent one byte\n // if there is only one, then the three characters before it represent 2 bytes\n // this is just a cheap hack to not do indexOf twice\n return b64[len - 2] === '=' ? 2 : b64[len - 1] === '=' ? 1 : 0\n}\n\nfunction byteLength (b64) {\n // base64 is 4/3 + up to two characters of the original data\n return (b64.length * 3 / 4) - placeHoldersCount(b64)\n}\n\nfunction toByteArray (b64) {\n var i, l, tmp, placeHolders, arr\n var len = b64.length\n placeHolders = placeHoldersCount(b64)\n\n arr = new Arr((len * 3 / 4) - placeHolders)\n\n // if there are placeholders, only get up to the last complete 4 chars\n l = placeHolders > 0 ? len - 4 : len\n\n var L = 0\n\n for (i = 0; i < l; i += 4) {\n tmp = (revLookup[b64.charCodeAt(i)] << 18) | (revLookup[b64.charCodeAt(i + 1)] << 12) | (revLookup[b64.charCodeAt(i + 2)] << 6) | revLookup[b64.charCodeAt(i + 3)]\n arr[L++] = (tmp >> 16) & 0xFF\n arr[L++] = (tmp >> 8) & 0xFF\n arr[L++] = tmp & 0xFF\n }\n\n if (placeHolders === 2) {\n tmp = (revLookup[b64.charCodeAt(i)] << 2) | (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[L++] = tmp & 0xFF\n } else if (placeHolders === 1) {\n tmp = (revLookup[b64.charCodeAt(i)] << 10) | (revLookup[b64.charCodeAt(i + 1)] << 4) | (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[L++] = (tmp >> 8) & 0xFF\n arr[L++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] + lookup[num >> 12 & 0x3F] + lookup[num >> 6 & 0x3F] + lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp = (uint8[i] << 16) + (uint8[i + 1] << 8) + (uint8[i + 2])\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var output = ''\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n output += lookup[tmp >> 2]\n output += lookup[(tmp << 4) & 0x3F]\n output += '=='\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + (uint8[len - 1])\n output += lookup[tmp >> 10]\n output += lookup[(tmp >> 4) & 0x3F]\n output += lookup[(tmp << 2) & 0x3F]\n output += '='\n }\n\n parts.push(output)\n\n return parts.join('')\n}\n\n\n//# sourceURL=webpack:///./node_modules/base64-js/index.js?"); + +/***/ }), + +/***/ "./node_modules/brcast/dist/brcast.es.js": +/*!***********************************************!*\ + !*** ./node_modules/brcast/dist/brcast.es.js ***! + \***********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\nfunction createBroadcast (initialState) {\n var listeners = {};\n var id = 1;\n var _state = initialState;\n\n function getState () {\n return _state\n }\n\n function setState (state) {\n _state = state;\n var keys = Object.keys(listeners);\n var i = 0;\n var len = keys.length;\n for (; i < len; i++) {\n // if a listener gets unsubscribed during setState we just skip it\n if (listeners[keys[i]]) { listeners[keys[i]](state); }\n }\n }\n\n // subscribe to changes and return the subscriptionId\n function subscribe (listener) {\n if (typeof listener !== 'function') {\n throw new Error('listener must be a function.')\n }\n var currentId = id;\n listeners[currentId] = listener;\n id += 1;\n return currentId\n }\n\n // remove subscription by removing the listener function\n function unsubscribe (id) {\n listeners[id] = undefined;\n }\n\n return { getState: getState, setState: setState, subscribe: subscribe, unsubscribe: unsubscribe }\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (createBroadcast);\n\n\n//# sourceURL=webpack:///./node_modules/brcast/dist/brcast.es.js?"); + +/***/ }), + +/***/ "./node_modules/buffer-from/index.js": +/*!*******************************************!*\ + !*** ./node_modules/buffer-from/index.js ***! + \*******************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +eval("/* WEBPACK VAR INJECTION */(function(Buffer) {var toString = Object.prototype.toString\n\nvar isModern = (\n typeof Buffer.alloc === 'function' &&\n typeof Buffer.allocUnsafe === 'function' &&\n typeof Buffer.from === 'function'\n)\n\nfunction isArrayBuffer (input) {\n return toString.call(input).slice(8, -1) === 'ArrayBuffer'\n}\n\nfunction fromArrayBuffer (obj, byteOffset, length) {\n byteOffset >>>= 0\n\n var maxLength = obj.byteLength - byteOffset\n\n if (maxLength < 0) {\n throw new RangeError(\"'offset' is out of bounds\")\n }\n\n if (length === undefined) {\n length = maxLength\n } else {\n length >>>= 0\n\n if (length > maxLength) {\n throw new RangeError(\"'length' is out of bounds\")\n }\n }\n\n return isModern\n ? Buffer.from(obj.slice(byteOffset, byteOffset + length))\n : new Buffer(new Uint8Array(obj.slice(byteOffset, byteOffset + length)))\n}\n\nfunction fromString (string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n return isModern\n ? Buffer.from(string, encoding)\n : new Buffer(string, encoding)\n}\n\nfunction bufferFrom (value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (isArrayBuffer(value)) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(value, encodingOrOffset)\n }\n\n return isModern\n ? Buffer.from(value)\n : new Buffer(value)\n}\n\nmodule.exports = bufferFrom\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../buffer/index.js */ \"./node_modules/buffer/index.js\").Buffer))\n\n//# sourceURL=webpack:///./node_modules/buffer-from/index.js?"); + +/***/ }), + +/***/ "./node_modules/buffer/index.js": +/*!**************************************!*\ + !*** ./node_modules/buffer/index.js ***! + \**************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* WEBPACK VAR INJECTION */(function(global) {/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n\n\nvar base64 = __webpack_require__(/*! base64-js */ \"./node_modules/base64-js/index.js\")\nvar ieee754 = __webpack_require__(/*! ieee754 */ \"./node_modules/ieee754/index.js\")\nvar isArray = __webpack_require__(/*! isarray */ \"./node_modules/buffer/node_modules/isarray/index.js\")\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n ? global.TYPED_ARRAY_SUPPORT\n : typedArraySupport()\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nexports.kMaxLength = kMaxLength()\n\nfunction typedArraySupport () {\n try {\n var arr = new Uint8Array(1)\n arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}\n return arr.foo() === 42 && // typed array instances can be augmented\n typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`\n } catch (e) {\n return false\n }\n}\n\nfunction kMaxLength () {\n return Buffer.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length')\n }\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length)\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length)\n }\n that.length = length\n }\n\n return that\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length)\n }\n\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error(\n 'If encoding is specified then the first argument must be a string'\n )\n }\n return allocUnsafe(this, arg)\n }\n return from(this, arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype\n return arr\n}\n\nfunction from (that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset)\n }\n\n return fromObject(that, value)\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length)\n}\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype\n Buffer.__proto__ = Uint8Array\n if (typeof Symbol !== 'undefined' && Symbol.species &&\n Buffer[Symbol.species] === Buffer) {\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true\n })\n }\n}\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n}\n\nfunction alloc (that, size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(that, size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(that, size).fill(fill, encoding)\n : createBuffer(that, size).fill(fill)\n }\n return createBuffer(that, size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding)\n}\n\nfunction allocUnsafe (that, size) {\n assertSize(size)\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0\n }\n }\n return that\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(null, size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size)\n}\n\nfunction fromString (that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n var length = byteLength(string, encoding) | 0\n that = createBuffer(that, length)\n\n var actual = that.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n that = that.slice(0, actual)\n }\n\n return that\n}\n\nfunction fromArrayLike (that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n that = createBuffer(that, length)\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255\n }\n return that\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n array.byteLength // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds')\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array)\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset)\n } else {\n array = new Uint8Array(array, byteOffset, length)\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array)\n }\n return that\n}\n\nfunction fromObject (that, obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n that = createBuffer(that, len)\n\n if (that.length === 0) {\n return that\n }\n\n obj.copy(that, 0, 0, len)\n return that\n }\n\n if (obj) {\n if ((typeof ArrayBuffer !== 'undefined' &&\n obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0)\n }\n return fromArrayLike(that, obj)\n }\n\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data)\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction checked (length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + kMaxLength().toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return !!(b != null && b._isBuffer)\n}\n\nBuffer.compare = function compare (a, b) {\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError('Arguments must be Buffers')\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos)\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string\n }\n\n var len = string.length\n if (len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) return utf8ToBytes(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length | 0\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')\n if (this.length > max) str += ' ... '\n }\n return ''\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (!Buffer.isBuffer(target)) {\n throw new TypeError('Argument must be a Buffer')\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (Buffer.TYPED_ARRAY_SUPPORT &&\n typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n // must be an even number of digits\n var strLen = string.length\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (isNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0\n if (isFinite(length)) {\n length = length | 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i])\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end)\n newBuf.__proto__ = Buffer.prototype\n } else {\n var sliceLen = end - start\n newBuf = new Buffer(sliceLen, undefined)\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start]\n }\n }\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n (littleEndian ? i : 1 - i) * 8\n }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff\n }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n var i\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start]\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start]\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if (code < 256) {\n val = code\n }\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n } else if (typeof val === 'number') {\n val = val & 255\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : utf8ToBytes(new Buffer(val, encoding).toString())\n var len = bytes.length\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction stringtrim (str) {\n if (str.trim) return str.trim()\n return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\nfunction isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\n}\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../webpack/buildin/global.js */ \"./node_modules/webpack/buildin/global.js\")))\n\n//# sourceURL=webpack:///./node_modules/buffer/index.js?"); + +/***/ }), + +/***/ "./node_modules/buffer/node_modules/isarray/index.js": +/*!***********************************************************!*\ + !*** ./node_modules/buffer/node_modules/isarray/index.js ***! + \***********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +eval("var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n\n\n//# sourceURL=webpack:///./node_modules/buffer/node_modules/isarray/index.js?"); + +/***/ }), + +/***/ "./node_modules/classnames/index.js": +/*!******************************************!*\ + !*** ./node_modules/classnames/index.js ***! + \******************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +eval("var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!\n Copyright (c) 2017 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg) && arg.length) {\n\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\tif (inner) {\n\t\t\t\t\tclasses.push(inner);\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif ( true && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (true) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\t!(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = (function () {\n\t\t\treturn classNames;\n\t\t}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t} else {}\n}());\n\n\n//# sourceURL=webpack:///./node_modules/classnames/index.js?"); + +/***/ }), + +/***/ "./node_modules/core-util-is/lib/util.js": +/*!***********************************************!*\ + !*** ./node_modules/core-util-is/lib/util.js ***! + \***********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +eval("/* WEBPACK VAR INJECTION */(function(Buffer) {// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\n\nfunction isArray(arg) {\n if (Array.isArray) {\n return Array.isArray(arg);\n }\n return objectToString(arg) === '[object Array]';\n}\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n return typeof arg === 'boolean';\n}\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n return arg === null;\n}\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n return typeof arg === 'string';\n}\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n return typeof arg === 'symbol';\n}\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n return objectToString(re) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\nexports.isObject = isObject;\n\nfunction isDate(d) {\n return objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\n\nfunction isError(e) {\n return (objectToString(e) === '[object Error]' || e instanceof Error);\n}\nexports.isError = isError;\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n return arg === null ||\n typeof arg === 'boolean' ||\n typeof arg === 'number' ||\n typeof arg === 'string' ||\n typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\nexports.isPrimitive = isPrimitive;\n\nexports.isBuffer = Buffer.isBuffer;\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../buffer/index.js */ \"./node_modules/buffer/index.js\").Buffer))\n\n//# sourceURL=webpack:///./node_modules/core-util-is/lib/util.js?"); + +/***/ }), + +/***/ "./node_modules/create-emotion-server/dist/index.js": +/*!**********************************************************!*\ + !*** ./node_modules/create-emotion-server/dist/index.js ***! + \**********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar through = _interopDefault(__webpack_require__(/*! through */ \"./node_modules/through/index.js\"));\nvar tokenize = _interopDefault(__webpack_require__(/*! html-tokenize */ \"./node_modules/html-tokenize/index.js\"));\nvar pipe = _interopDefault(__webpack_require__(/*! multipipe */ \"./node_modules/multipipe/index.js\"));\n\nvar createExtractCritical = function createExtractCritical(emotion) {\n return function (html) {\n // parse out ids from html\n // reconstruct css/rules/cache to pass\n var RGX = new RegExp(emotion.caches.key + \"-([a-zA-Z0-9-_]+)\", 'gm');\n var o = {\n html: html,\n ids: [],\n css: ''\n };\n var match;\n var ids = {};\n\n while ((match = RGX.exec(html)) !== null) {\n // $FlowFixMe\n if (ids[match[1]] === undefined) {\n // $FlowFixMe\n ids[match[1]] = true;\n }\n }\n\n o.ids = Object.keys(emotion.caches.inserted).filter(function (id) {\n if ((ids[id] === true || emotion.caches.registered[emotion.caches.key + \"-\" + id] === undefined) && emotion.caches.inserted[id] !== true) {\n o.css += emotion.caches.inserted[id];\n return true;\n }\n });\n return o;\n };\n};\n\nfunction generateStyleTag(cssKey, ids, styles, nonceString) {\n return \"\";\n}\n\nvar createRenderStylesToString = function createRenderStylesToString(emotion, nonceString) {\n return function (html) {\n var _emotion$caches = emotion.caches,\n inserted = _emotion$caches.inserted,\n cssKey = _emotion$caches.key,\n registered = _emotion$caches.registered;\n var regex = new RegExp(\"<|\" + cssKey + \"-([a-zA-Z0-9-_]+)\", 'gm');\n var seen = {};\n var result = '';\n var globalIds = '';\n var globalStyles = '';\n\n for (var id in inserted) {\n if (inserted.hasOwnProperty(id)) {\n var style = inserted[id];\n var key = cssKey + \"-\" + id;\n\n if (style !== true && registered[key] === undefined) {\n globalStyles += style;\n globalIds += \" \" + id;\n }\n }\n }\n\n if (globalStyles !== '') {\n result = generateStyleTag(cssKey, globalIds, globalStyles, nonceString);\n }\n\n var ids = '';\n var styles = '';\n var lastInsertionPoint = 0;\n var match;\n\n while ((match = regex.exec(html)) !== null) {\n // $FlowFixMe\n if (match[0] === '<') {\n if (ids !== '') {\n result += generateStyleTag(cssKey, ids, styles, nonceString);\n ids = '';\n styles = '';\n } // $FlowFixMe\n\n\n result += html.substring(lastInsertionPoint, match.index); // $FlowFixMe\n\n lastInsertionPoint = match.index;\n continue;\n } // $FlowFixMe\n\n\n var _id = match[1];\n var _style = inserted[_id];\n\n if (_style === true || seen[_id]) {\n continue;\n }\n\n seen[_id] = true;\n styles += _style;\n ids += \" \" + _id;\n }\n\n result += html.substring(lastInsertionPoint);\n return result;\n };\n};\n\nvar createRenderStylesToNodeStream = function createRenderStylesToNodeStream(emotion, nonceString) {\n return function () {\n var insed = {};\n var tokenStream = tokenize();\n var inlineStream = through(function write(thing) {\n var type = thing[0],\n data = thing[1];\n\n if (type === 'open') {\n var css = '';\n var ids = {};\n var match;\n var fragment = data.toString();\n var regex = new RegExp(emotion.caches.key + \"-([a-zA-Z0-9-_]+)\", 'gm');\n\n while ((match = regex.exec(fragment)) !== null) {\n if (match !== null && insed[match[1]] === undefined) {\n ids[match[1]] = true;\n }\n }\n\n Object.keys(emotion.caches.inserted).forEach(function (id) {\n if (emotion.caches.inserted[id] !== true && insed[id] === undefined && (ids[id] === true || emotion.caches.registered[emotion.caches.key + \"-\" + id] === undefined && (ids[id] = true))) {\n insed[id] = true; // $FlowFixMe flow thinks emotion.caches.inserted[id] can be true even though it's checked earlier\n\n css += emotion.caches.inserted[id];\n }\n });\n\n if (css !== '') {\n this.queue(\"\");\n }\n }\n\n this.queue(data);\n }, function end() {\n this.queue(null);\n });\n return pipe(tokenStream, inlineStream);\n };\n};\n\nfunction index (emotion) {\n var nonceString = emotion.caches.nonce !== undefined ? \" nonce=\\\"\" + emotion.caches.nonce + \"\\\"\" : '';\n return {\n extractCritical: createExtractCritical(emotion),\n renderStylesToString: createRenderStylesToString(emotion, nonceString),\n renderStylesToNodeStream: createRenderStylesToNodeStream(emotion, nonceString)\n };\n}\n\nmodule.exports = index;\n\n\n//# sourceURL=webpack:///./node_modules/create-emotion-server/dist/index.js?"); + +/***/ }), + +/***/ "./node_modules/create-emotion-styled/dist/index.esm.js": +/*!**************************************************************!*\ + !*** ./node_modules/create-emotion-styled/dist/index.esm.js ***! + \**************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _emotion_is_prop_valid__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @emotion/is-prop-valid */ \"./node_modules/@emotion/is-prop-valid/dist/is-prop-valid.esm.js\");\n\n\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nvar channel = '__EMOTION_THEMING__';\n\n// https://github.com/styled-components/styled-components/blob/e05b3fe247e9d956bcde786cec376e32afb85bca/src/utils/create-broadcast.js\n\nvar _contextTypes;\nvar contextTypes = (_contextTypes = {}, _contextTypes[channel] = prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.object, _contextTypes);\n\nfunction setTheme(theme) {\n this.setState({\n theme: theme\n });\n}\nvar testPickPropsOnStringTag = _emotion_is_prop_valid__WEBPACK_IMPORTED_MODULE_1__[\"default\"];\nvar testPickPropsOnComponent = function testPickPropsOnComponent(key) {\n return key !== 'theme' && key !== 'innerRef';\n};\nvar testAlwaysTrue = function testAlwaysTrue() {\n return true;\n};\nvar pickAssign = function pickAssign(testFn, target) {\n var i = 2;\n var length = arguments.length;\n\n for (; i < length; i++) {\n var source = arguments[i];\n\n var _key = void 0;\n\n for (_key in source) {\n if (testFn(_key)) {\n target[_key] = source[_key];\n }\n }\n }\n\n return target;\n};\n\nvar warnedAboutExtractStatic = false;\n\nfunction createEmotionStyled(emotion, view) {\n var _createStyled = function createStyled(tag, options) {\n if (true) {\n if (tag === undefined) {\n throw new Error('You are trying to create a styled element with an undefined component.\\nYou may have forgotten to import it.');\n }\n }\n\n var staticClassName;\n var identifierName;\n var stableClassName;\n var shouldForwardProp;\n\n if (options !== undefined) {\n staticClassName = options.e;\n identifierName = options.label;\n stableClassName = options.target;\n shouldForwardProp = tag.__emotion_forwardProp && options.shouldForwardProp ? function (propName) {\n return tag.__emotion_forwardProp(propName) && // $FlowFixMe\n options.shouldForwardProp(propName);\n } : options.shouldForwardProp;\n }\n\n var isReal = tag.__emotion_real === tag;\n var baseTag = staticClassName === undefined ? isReal && tag.__emotion_base || tag : tag;\n\n if (typeof shouldForwardProp !== 'function') {\n shouldForwardProp = typeof baseTag === 'string' && baseTag.charAt(0) === baseTag.charAt(0).toLowerCase() ? testPickPropsOnStringTag : testPickPropsOnComponent;\n }\n\n return function () {\n var args = arguments;\n var styles = isReal && tag.__emotion_styles !== undefined ? tag.__emotion_styles.slice(0) : [];\n\n if (identifierName !== undefined) {\n styles.push(\"label:\" + identifierName + \";\");\n }\n\n if (staticClassName === undefined) {\n if (args[0] == null || args[0].raw === undefined) {\n styles.push.apply(styles, args);\n } else {\n styles.push(args[0][0]);\n var len = args.length;\n var i = 1;\n\n for (; i < len; i++) {\n styles.push(args[i], args[0][i]);\n }\n }\n } else if ( true && !warnedAboutExtractStatic) {\n console.warn('extractStatic is deprecated and will be removed in emotion@10. We recommend disabling extractStatic or using other libraries like linaria or css-literal-loader');\n warnedAboutExtractStatic = true;\n }\n\n var Styled =\n /*#__PURE__*/\n function (_view$Component) {\n _inheritsLoose(Styled, _view$Component);\n\n function Styled() {\n return _view$Component.apply(this, arguments) || this;\n }\n\n var _proto = Styled.prototype;\n\n _proto.componentWillMount = function componentWillMount() {\n if (this.context[channel] !== undefined) {\n this.unsubscribe = this.context[channel].subscribe(setTheme.bind(this));\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (this.unsubscribe !== undefined) {\n this.context[channel].unsubscribe(this.unsubscribe);\n }\n };\n\n _proto.render = function render() {\n var props = this.props,\n state = this.state;\n this.mergedProps = pickAssign(testAlwaysTrue, {}, props, {\n theme: state !== null && state.theme || props.theme || {}\n });\n var className = '';\n var classInterpolations = [];\n\n if (props.className) {\n if (staticClassName === undefined) {\n className += emotion.getRegisteredStyles(classInterpolations, props.className);\n } else {\n className += props.className + \" \";\n }\n }\n\n if (staticClassName === undefined) {\n className += emotion.css.apply(this, styles.concat(classInterpolations));\n } else {\n className += staticClassName;\n }\n\n if (stableClassName !== undefined) {\n className += \" \" + stableClassName;\n }\n\n return view.createElement(baseTag, // $FlowFixMe\n pickAssign(shouldForwardProp, {}, props, {\n className: className,\n ref: props.innerRef\n }));\n };\n\n return Styled;\n }(view.Component);\n\n Styled.displayName = identifierName !== undefined ? identifierName : \"Styled(\" + (typeof baseTag === 'string' ? baseTag : baseTag.displayName || baseTag.name || 'Component') + \")\";\n\n if (tag.defaultProps !== undefined) {\n // $FlowFixMe\n Styled.defaultProps = tag.defaultProps;\n }\n\n Styled.contextTypes = contextTypes;\n Styled.__emotion_styles = styles;\n Styled.__emotion_base = baseTag;\n Styled.__emotion_real = Styled;\n Styled.__emotion_forwardProp = shouldForwardProp;\n Object.defineProperty(Styled, 'toString', {\n value: function value() {\n if ( true && stableClassName === undefined) {\n return 'NO_COMPONENT_SELECTOR';\n } // $FlowFixMe\n\n\n return \".\" + stableClassName;\n }\n });\n\n Styled.withComponent = function (nextTag, nextOptions) {\n return _createStyled(nextTag, nextOptions !== undefined ? // $FlowFixMe\n pickAssign(testAlwaysTrue, {}, options, nextOptions) : options).apply(void 0, styles);\n };\n\n return Styled;\n };\n };\n\n if ( true && typeof Proxy !== 'undefined') {\n _createStyled = new Proxy(_createStyled, {\n get: function get(target, property) {\n switch (property) {\n // react-hot-loader tries to access this stuff\n case '__proto__':\n case 'name':\n case 'prototype':\n case 'displayName':\n {\n return target[property];\n }\n\n default:\n {\n throw new Error(\"You're trying to use the styled shorthand without babel-plugin-emotion.\" + (\"\\nPlease install and setup babel-plugin-emotion or use the function call syntax(`styled('\" + property + \"')` instead of `styled.\" + property + \"`)\"));\n }\n }\n }\n });\n }\n\n return _createStyled;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (createEmotionStyled);\n\n\n//# sourceURL=webpack:///./node_modules/create-emotion-styled/dist/index.esm.js?"); + +/***/ }), + +/***/ "./node_modules/create-emotion/dist/index.esm.js": +/*!*******************************************************!*\ + !*** ./node_modules/create-emotion/dist/index.esm.js ***! + \*******************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _emotion_memoize__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @emotion/memoize */ \"./node_modules/@emotion/memoize/dist/memoize.esm.js\");\n/* harmony import */ var _emotion_unitless__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @emotion/unitless */ \"./node_modules/@emotion/unitless/dist/unitless.esm.js\");\n/* harmony import */ var _emotion_hash__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @emotion/hash */ \"./node_modules/@emotion/hash/dist/hash.esm.js\");\n/* harmony import */ var _emotion_stylis__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @emotion/stylis */ \"./node_modules/@emotion/stylis/dist/stylis.esm.js\");\n/* harmony import */ var stylis_rule_sheet__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! stylis-rule-sheet */ \"./node_modules/stylis-rule-sheet/index.js\");\n/* harmony import */ var stylis_rule_sheet__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(stylis_rule_sheet__WEBPACK_IMPORTED_MODULE_4__);\n\n\n\n\n\n\nvar hyphenateRegex = /[A-Z]|^ms/g;\nvar processStyleName = Object(_emotion_memoize__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function (styleName) {\n return styleName.replace(hyphenateRegex, '-$&').toLowerCase();\n});\nvar processStyleValue = function processStyleValue(key, value) {\n if (value == null || typeof value === 'boolean') {\n return '';\n }\n\n if (_emotion_unitless__WEBPACK_IMPORTED_MODULE_1__[\"default\"][key] !== 1 && key.charCodeAt(1) !== 45 && // custom properties\n !isNaN(value) && value !== 0) {\n return value + 'px';\n }\n\n return value;\n};\n\nif (true) {\n var contentValuePattern = /(attr|calc|counters?|url)\\(/;\n var contentValues = ['normal', 'none', 'counter', 'open-quote', 'close-quote', 'no-open-quote', 'no-close-quote', 'initial', 'inherit', 'unset'];\n var oldProcessStyleValue = processStyleValue;\n\n processStyleValue = function processStyleValue(key, value) {\n if (key === 'content') {\n if (typeof value !== 'string' || contentValues.indexOf(value) === -1 && !contentValuePattern.test(value) && (value.charAt(0) !== value.charAt(value.length - 1) || value.charAt(0) !== '\"' && value.charAt(0) !== \"'\")) {\n console.error(\"You seem to be using a value for 'content' without quotes, try replacing it with `content: '\\\"\" + value + \"\\\"'`\");\n }\n }\n\n return oldProcessStyleValue(key, value);\n };\n}\n\nvar classnames = function classnames(args) {\n var len = args.length;\n var i = 0;\n var cls = '';\n\n for (; i < len; i++) {\n var arg = args[i];\n if (arg == null) continue;\n var toAdd = void 0;\n\n switch (typeof arg) {\n case 'boolean':\n break;\n\n case 'function':\n if (true) {\n console.error('Passing functions to cx is deprecated and will be removed in the next major version of Emotion.\\n' + 'Please call the function before passing it to cx.');\n }\n\n toAdd = classnames([arg()]);\n break;\n\n case 'object':\n {\n if (Array.isArray(arg)) {\n toAdd = classnames(arg);\n } else {\n toAdd = '';\n\n for (var k in arg) {\n if (arg[k] && k) {\n toAdd && (toAdd += ' ');\n toAdd += k;\n }\n }\n }\n\n break;\n }\n\n default:\n {\n toAdd = arg;\n }\n }\n\n if (toAdd) {\n cls && (cls += ' ');\n cls += toAdd;\n }\n }\n\n return cls;\n};\nvar isBrowser = typeof document !== 'undefined';\n\n/*\n\nhigh performance StyleSheet for css-in-js systems\n\n- uses multiple style tags behind the scenes for millions of rules\n- uses `insertRule` for appending in production for *much* faster performance\n- 'polyfills' on server side\n\n// usage\n\nimport StyleSheet from 'glamor/lib/sheet'\nlet styleSheet = new StyleSheet()\n\nstyleSheet.inject()\n- 'injects' the stylesheet into the page (or into memory if on server)\n\nstyleSheet.insert('#box { border: 1px solid red; }')\n- appends a css rule into the stylesheet\n\nstyleSheet.flush()\n- empties the stylesheet of all its contents\n\n*/\n// $FlowFixMe\nfunction sheetForTag(tag) {\n if (tag.sheet) {\n // $FlowFixMe\n return tag.sheet;\n } // this weirdness brought to you by firefox\n\n\n for (var i = 0; i < document.styleSheets.length; i++) {\n if (document.styleSheets[i].ownerNode === tag) {\n // $FlowFixMe\n return document.styleSheets[i];\n }\n }\n}\n\nfunction makeStyleTag(opts) {\n var tag = document.createElement('style');\n tag.setAttribute('data-emotion', opts.key || '');\n\n if (opts.nonce !== undefined) {\n tag.setAttribute('nonce', opts.nonce);\n }\n\n tag.appendChild(document.createTextNode('')) // $FlowFixMe\n ;\n (opts.container !== undefined ? opts.container : document.head).appendChild(tag);\n return tag;\n}\n\nvar StyleSheet =\n/*#__PURE__*/\nfunction () {\n function StyleSheet(options) {\n this.isSpeedy = \"development\" === 'production'; // the big drawback here is that the css won't be editable in devtools\n\n this.tags = [];\n this.ctr = 0;\n this.opts = options;\n }\n\n var _proto = StyleSheet.prototype;\n\n _proto.inject = function inject() {\n if (this.injected) {\n throw new Error('already injected!');\n }\n\n this.tags[0] = makeStyleTag(this.opts);\n this.injected = true;\n };\n\n _proto.speedy = function speedy(bool) {\n if (this.ctr !== 0) {\n // cannot change speedy mode after inserting any rule to sheet. Either call speedy(${bool}) earlier in your app, or call flush() before speedy(${bool})\n throw new Error(\"cannot change speedy now\");\n }\n\n this.isSpeedy = !!bool;\n };\n\n _proto.insert = function insert(rule, sourceMap) {\n // this is the ultrafast version, works across browsers\n if (this.isSpeedy) {\n var tag = this.tags[this.tags.length - 1];\n var sheet = sheetForTag(tag);\n\n try {\n sheet.insertRule(rule, sheet.cssRules.length);\n } catch (e) {\n if (true) {\n console.warn('illegal rule', rule); // eslint-disable-line no-console\n }\n }\n } else {\n var _tag = makeStyleTag(this.opts);\n\n this.tags.push(_tag);\n\n _tag.appendChild(document.createTextNode(rule + (sourceMap || '')));\n }\n\n this.ctr++;\n\n if (this.ctr % 65000 === 0) {\n this.tags.push(makeStyleTag(this.opts));\n }\n };\n\n _proto.flush = function flush() {\n // $FlowFixMe\n this.tags.forEach(function (tag) {\n return tag.parentNode.removeChild(tag);\n });\n this.tags = [];\n this.ctr = 0; // todo - look for remnants in document.styleSheets\n\n this.injected = false;\n };\n\n return StyleSheet;\n}();\n\nfunction createEmotion(context, options) {\n if (context.__SECRET_EMOTION__ !== undefined) {\n return context.__SECRET_EMOTION__;\n }\n\n if (options === undefined) options = {};\n var key = options.key || 'css';\n\n if (true) {\n if (/[^a-z-]/.test(key)) {\n throw new Error(\"Emotion key must only contain lower case alphabetical characters and - but \\\"\" + key + \"\\\" was passed\");\n }\n }\n\n var current;\n\n function insertRule(rule) {\n current += rule;\n\n if (isBrowser) {\n sheet.insert(rule, currentSourceMap);\n }\n }\n\n var insertionPlugin = stylis_rule_sheet__WEBPACK_IMPORTED_MODULE_4___default()(insertRule);\n var stylisOptions;\n\n if (options.prefix !== undefined) {\n stylisOptions = {\n prefix: options.prefix\n };\n }\n\n var caches = {\n registered: {},\n inserted: {},\n nonce: options.nonce,\n key: key\n };\n var sheet = new StyleSheet(options);\n\n if (isBrowser) {\n // 🚀\n sheet.inject();\n }\n\n var stylis = new _emotion_stylis__WEBPACK_IMPORTED_MODULE_3__[\"default\"](stylisOptions);\n stylis.use(options.stylisPlugins)(insertionPlugin);\n var currentSourceMap = '';\n\n function handleInterpolation(interpolation, couldBeSelectorInterpolation) {\n if (interpolation == null) {\n return '';\n }\n\n switch (typeof interpolation) {\n case 'boolean':\n return '';\n\n case 'function':\n if (interpolation.__emotion_styles !== undefined) {\n var selector = interpolation.toString();\n\n if (selector === 'NO_COMPONENT_SELECTOR' && \"development\" !== 'production') {\n throw new Error('Component selectors can only be used in conjunction with babel-plugin-emotion.');\n }\n\n return selector;\n }\n\n if (this === undefined && \"development\" !== 'production') {\n console.error('Interpolating functions in css calls is deprecated and will be removed in the next major version of Emotion.\\n' + 'If you want to have a css call based on props, create a function that returns a css call like this\\n' + 'let dynamicStyle = (props) => css`color: ${props.color}`\\n' + 'It can be called directly with props or interpolated in a styled call like this\\n' + \"let SomeComponent = styled('div')`${dynamicStyle}`\");\n }\n\n return handleInterpolation.call(this, this === undefined ? interpolation() : // $FlowFixMe\n interpolation(this.mergedProps, this.context), couldBeSelectorInterpolation);\n\n case 'object':\n return createStringFromObject.call(this, interpolation);\n\n default:\n var cached = caches.registered[interpolation];\n return couldBeSelectorInterpolation === false && cached !== undefined ? cached : interpolation;\n }\n }\n\n var objectToStringCache = new WeakMap();\n\n function createStringFromObject(obj) {\n if (objectToStringCache.has(obj)) {\n // $FlowFixMe\n return objectToStringCache.get(obj);\n }\n\n var string = '';\n\n if (Array.isArray(obj)) {\n obj.forEach(function (interpolation) {\n string += handleInterpolation.call(this, interpolation, false);\n }, this);\n } else {\n Object.keys(obj).forEach(function (key) {\n if (typeof obj[key] !== 'object') {\n if (caches.registered[obj[key]] !== undefined) {\n string += key + \"{\" + caches.registered[obj[key]] + \"}\";\n } else {\n string += processStyleName(key) + \":\" + processStyleValue(key, obj[key]) + \";\";\n }\n } else {\n if (key === 'NO_COMPONENT_SELECTOR' && \"development\" !== 'production') {\n throw new Error('Component selectors can only be used in conjunction with babel-plugin-emotion.');\n }\n\n if (Array.isArray(obj[key]) && typeof obj[key][0] === 'string' && caches.registered[obj[key][0]] === undefined) {\n obj[key].forEach(function (value) {\n string += processStyleName(key) + \":\" + processStyleValue(key, value) + \";\";\n });\n } else {\n string += key + \"{\" + handleInterpolation.call(this, obj[key], false) + \"}\";\n }\n }\n }, this);\n }\n\n objectToStringCache.set(obj, string);\n return string;\n }\n\n var name;\n var stylesWithLabel;\n var labelPattern = /label:\\s*([^\\s;\\n{]+)\\s*;/g;\n\n var createClassName = function createClassName(styles, identifierName) {\n return Object(_emotion_hash__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(styles + identifierName) + identifierName;\n };\n\n if (true) {\n var oldCreateClassName = createClassName;\n var sourceMappingUrlPattern = /\\/\\*#\\ssourceMappingURL=data:application\\/json;\\S+\\s+\\*\\//g;\n\n createClassName = function createClassName(styles, identifierName) {\n return oldCreateClassName(styles.replace(sourceMappingUrlPattern, function (sourceMap) {\n currentSourceMap = sourceMap;\n return '';\n }), identifierName);\n };\n }\n\n var createStyles = function createStyles(strings) {\n var stringMode = true;\n var styles = '';\n var identifierName = '';\n\n if (strings == null || strings.raw === undefined) {\n stringMode = false;\n styles += handleInterpolation.call(this, strings, false);\n } else {\n styles += strings[0];\n }\n\n for (var _len = arguments.length, interpolations = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n interpolations[_key - 1] = arguments[_key];\n }\n\n interpolations.forEach(function (interpolation, i) {\n styles += handleInterpolation.call(this, interpolation, styles.charCodeAt(styles.length - 1) === 46 // .\n );\n\n if (stringMode === true && strings[i + 1] !== undefined) {\n styles += strings[i + 1];\n }\n }, this);\n stylesWithLabel = styles;\n styles = styles.replace(labelPattern, function (match, p1) {\n identifierName += \"-\" + p1;\n return '';\n });\n name = createClassName(styles, identifierName);\n return styles;\n };\n\n if (true) {\n var oldStylis = stylis;\n\n stylis = function stylis(selector, styles) {\n oldStylis(selector, styles);\n currentSourceMap = '';\n };\n }\n\n function insert(scope, styles) {\n if (caches.inserted[name] === undefined) {\n current = '';\n stylis(scope, styles);\n caches.inserted[name] = current;\n }\n }\n\n var css = function css() {\n var styles = createStyles.apply(this, arguments);\n var selector = key + \"-\" + name;\n\n if (caches.registered[selector] === undefined) {\n caches.registered[selector] = stylesWithLabel;\n }\n\n insert(\".\" + selector, styles);\n return selector;\n };\n\n var keyframes = function keyframes() {\n var styles = createStyles.apply(this, arguments);\n var animation = \"animation-\" + name;\n insert('', \"@keyframes \" + animation + \"{\" + styles + \"}\");\n return animation;\n };\n\n var injectGlobal = function injectGlobal() {\n var styles = createStyles.apply(this, arguments);\n insert('', styles);\n };\n\n function getRegisteredStyles(registeredStyles, classNames) {\n var rawClassName = '';\n classNames.split(' ').forEach(function (className) {\n if (caches.registered[className] !== undefined) {\n registeredStyles.push(className);\n } else {\n rawClassName += className + \" \";\n }\n });\n return rawClassName;\n }\n\n function merge(className, sourceMap) {\n var registeredStyles = [];\n var rawClassName = getRegisteredStyles(registeredStyles, className);\n\n if (registeredStyles.length < 2) {\n return className;\n }\n\n return rawClassName + css(registeredStyles, sourceMap);\n }\n\n function cx() {\n for (var _len2 = arguments.length, classNames = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n classNames[_key2] = arguments[_key2];\n }\n\n return merge(classnames(classNames));\n }\n\n function hydrateSingleId(id) {\n caches.inserted[id] = true;\n }\n\n function hydrate(ids) {\n ids.forEach(hydrateSingleId);\n }\n\n function flush() {\n if (isBrowser) {\n sheet.flush();\n sheet.inject();\n }\n\n caches.inserted = {};\n caches.registered = {};\n }\n\n if (isBrowser) {\n var chunks = document.querySelectorAll(\"[data-emotion-\" + key + \"]\");\n Array.prototype.forEach.call(chunks, function (node) {\n // $FlowFixMe\n sheet.tags[0].parentNode.insertBefore(node, sheet.tags[0]); // $FlowFixMe\n\n node.getAttribute(\"data-emotion-\" + key).split(' ').forEach(hydrateSingleId);\n });\n }\n\n var emotion = {\n flush: flush,\n hydrate: hydrate,\n cx: cx,\n merge: merge,\n getRegisteredStyles: getRegisteredStyles,\n injectGlobal: injectGlobal,\n keyframes: keyframes,\n css: css,\n sheet: sheet,\n caches: caches\n };\n context.__SECRET_EMOTION__ = emotion;\n return emotion;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (createEmotion);\n\n\n//# sourceURL=webpack:///./node_modules/create-emotion/dist/index.esm.js?"); + +/***/ }), + +/***/ "./node_modules/css-vendor/lib/camelize.js": +/*!*************************************************!*\ + !*** ./node_modules/css-vendor/lib/camelize.js ***! + \*************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports['default'] = camelize;\nvar regExp = /[-\\s]+(.)?/g;\n\n/**\n * Convert dash separated strings to camel cased.\n *\n * @param {String} str\n * @return {String}\n */\nfunction camelize(str) {\n return str.replace(regExp, toUpper);\n}\n\nfunction toUpper(match, c) {\n return c ? c.toUpperCase() : '';\n}\n\n//# sourceURL=webpack:///./node_modules/css-vendor/lib/camelize.js?"); + +/***/ }), + +/***/ "./node_modules/css-vendor/lib/index.js": +/*!**********************************************!*\ + !*** ./node_modules/css-vendor/lib/index.js ***! + \**********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.supportedValue = exports.supportedProperty = exports.prefix = undefined;\n\nvar _prefix = __webpack_require__(/*! ./prefix */ \"./node_modules/css-vendor/lib/prefix.js\");\n\nvar _prefix2 = _interopRequireDefault(_prefix);\n\nvar _supportedProperty = __webpack_require__(/*! ./supported-property */ \"./node_modules/css-vendor/lib/supported-property.js\");\n\nvar _supportedProperty2 = _interopRequireDefault(_supportedProperty);\n\nvar _supportedValue = __webpack_require__(/*! ./supported-value */ \"./node_modules/css-vendor/lib/supported-value.js\");\n\nvar _supportedValue2 = _interopRequireDefault(_supportedValue);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nexports['default'] = {\n prefix: _prefix2['default'],\n supportedProperty: _supportedProperty2['default'],\n supportedValue: _supportedValue2['default']\n}; /**\n * CSS Vendor prefix detection and property feature testing.\n *\n * @copyright Oleg Slobodskoi 2015\n * @website https://github.com/jsstyles/css-vendor\n * @license MIT\n */\n\nexports.prefix = _prefix2['default'];\nexports.supportedProperty = _supportedProperty2['default'];\nexports.supportedValue = _supportedValue2['default'];\n\n//# sourceURL=webpack:///./node_modules/css-vendor/lib/index.js?"); + +/***/ }), + +/***/ "./node_modules/css-vendor/lib/prefix.js": +/*!***********************************************!*\ + !*** ./node_modules/css-vendor/lib/prefix.js ***! + \***********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _isInBrowser = __webpack_require__(/*! is-in-browser */ \"./node_modules/is-in-browser/dist/module.js\");\n\nvar _isInBrowser2 = _interopRequireDefault(_isInBrowser);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar js = ''; /**\n * Export javascript style and css style vendor prefixes.\n * Based on \"transform\" support test.\n */\n\nvar css = '';\n\n// We should not do anything if required serverside.\nif (_isInBrowser2['default']) {\n // Order matters. We need to check Webkit the last one because\n // other vendors use to add Webkit prefixes to some properties\n var jsCssMap = {\n Moz: '-moz-',\n // IE did it wrong again ...\n ms: '-ms-',\n O: '-o-',\n Webkit: '-webkit-'\n };\n var style = document.createElement('p').style;\n var testProp = 'Transform';\n\n for (var key in jsCssMap) {\n if (key + testProp in style) {\n js = key;\n css = jsCssMap[key];\n break;\n }\n }\n}\n\n/**\n * Vendor prefix string for the current browser.\n *\n * @type {{js: String, css: String}}\n * @api public\n */\nexports['default'] = { js: js, css: css };\n\n//# sourceURL=webpack:///./node_modules/css-vendor/lib/prefix.js?"); + +/***/ }), + +/***/ "./node_modules/css-vendor/lib/supported-property.js": +/*!***********************************************************!*\ + !*** ./node_modules/css-vendor/lib/supported-property.js ***! + \***********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports['default'] = supportedProperty;\n\nvar _isInBrowser = __webpack_require__(/*! is-in-browser */ \"./node_modules/is-in-browser/dist/module.js\");\n\nvar _isInBrowser2 = _interopRequireDefault(_isInBrowser);\n\nvar _prefix = __webpack_require__(/*! ./prefix */ \"./node_modules/css-vendor/lib/prefix.js\");\n\nvar _prefix2 = _interopRequireDefault(_prefix);\n\nvar _camelize = __webpack_require__(/*! ./camelize */ \"./node_modules/css-vendor/lib/camelize.js\");\n\nvar _camelize2 = _interopRequireDefault(_camelize);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar el = void 0;\nvar cache = {};\n\nif (_isInBrowser2['default']) {\n el = document.createElement('p');\n\n /**\n * We test every property on vendor prefix requirement.\n * Once tested, result is cached. It gives us up to 70% perf boost.\n * http://jsperf.com/element-style-object-access-vs-plain-object\n *\n * Prefill cache with known css properties to reduce amount of\n * properties we need to feature test at runtime.\n * http://davidwalsh.name/vendor-prefix\n */\n var computed = window.getComputedStyle(document.documentElement, '');\n for (var key in computed) {\n if (!isNaN(key)) cache[computed[key]] = computed[key];\n }\n}\n\n/**\n * Test if a property is supported, returns supported property with vendor\n * prefix if required. Returns `false` if not supported.\n *\n * @param {String} prop dash separated\n * @return {String|Boolean}\n * @api public\n */\nfunction supportedProperty(prop) {\n // For server-side rendering.\n if (!el) return prop;\n\n // We have not tested this prop yet, lets do the test.\n if (cache[prop] != null) return cache[prop];\n\n // Camelization is required because we can't test using\n // css syntax for e.g. in FF.\n // Test if property is supported as it is.\n if ((0, _camelize2['default'])(prop) in el.style) {\n cache[prop] = prop;\n }\n // Test if property is supported with vendor prefix.\n else if (_prefix2['default'].js + (0, _camelize2['default'])('-' + prop) in el.style) {\n cache[prop] = _prefix2['default'].css + prop;\n } else {\n cache[prop] = false;\n }\n\n return cache[prop];\n}\n\n//# sourceURL=webpack:///./node_modules/css-vendor/lib/supported-property.js?"); + +/***/ }), + +/***/ "./node_modules/css-vendor/lib/supported-value.js": +/*!********************************************************!*\ + !*** ./node_modules/css-vendor/lib/supported-value.js ***! + \********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports['default'] = supportedValue;\n\nvar _isInBrowser = __webpack_require__(/*! is-in-browser */ \"./node_modules/is-in-browser/dist/module.js\");\n\nvar _isInBrowser2 = _interopRequireDefault(_isInBrowser);\n\nvar _prefix = __webpack_require__(/*! ./prefix */ \"./node_modules/css-vendor/lib/prefix.js\");\n\nvar _prefix2 = _interopRequireDefault(_prefix);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar cache = {};\nvar el = void 0;\n\nif (_isInBrowser2['default']) el = document.createElement('p');\n\n/**\n * Returns prefixed value if needed. Returns `false` if value is not supported.\n *\n * @param {String} property\n * @param {String} value\n * @return {String|Boolean}\n * @api public\n */\nfunction supportedValue(property, value) {\n // For server-side rendering.\n if (!el) return value;\n\n // It is a string or a number as a string like '1'.\n // We want only prefixable values here.\n if (typeof value !== 'string' || !isNaN(parseInt(value, 10))) return value;\n\n var cacheKey = property + value;\n\n if (cache[cacheKey] != null) return cache[cacheKey];\n\n // IE can even throw an error in some cases, for e.g. style.content = 'bar'\n try {\n // Test value as it is.\n el.style[property] = value;\n } catch (err) {\n cache[cacheKey] = false;\n return false;\n }\n\n // Value is supported as it is.\n if (el.style[property] !== '') {\n cache[cacheKey] = value;\n } else {\n // Test value with vendor prefix.\n value = _prefix2['default'].css + value;\n\n // Hardcode test to convert \"flex\" to \"-ms-flexbox\" for IE10.\n if (value === '-ms-flex') value = '-ms-flexbox';\n\n el.style[property] = value;\n\n // Value is supported with vendor prefix.\n if (el.style[property] !== '') cache[cacheKey] = value;\n }\n\n if (!cache[cacheKey]) cache[cacheKey] = false;\n\n // Reset style value.\n el.style[property] = '';\n\n return cache[cacheKey];\n}\n\n//# sourceURL=webpack:///./node_modules/css-vendor/lib/supported-value.js?"); + +/***/ }), + +/***/ "./node_modules/deep-equal/index.js": +/*!******************************************!*\ + !*** ./node_modules/deep-equal/index.js ***! + \******************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +eval("var pSlice = Array.prototype.slice;\nvar objectKeys = __webpack_require__(/*! ./lib/keys.js */ \"./node_modules/deep-equal/lib/keys.js\");\nvar isArguments = __webpack_require__(/*! ./lib/is_arguments.js */ \"./node_modules/deep-equal/lib/is_arguments.js\");\n\nvar deepEqual = module.exports = function (actual, expected, opts) {\n if (!opts) opts = {};\n // 7.1. All identical values are equivalent, as determined by ===.\n if (actual === expected) {\n return true;\n\n } else if (actual instanceof Date && expected instanceof Date) {\n return actual.getTime() === expected.getTime();\n\n // 7.3. Other pairs that do not both pass typeof value == 'object',\n // equivalence is determined by ==.\n } else if (!actual || !expected || typeof actual != 'object' && typeof expected != 'object') {\n return opts.strict ? actual === expected : actual == expected;\n\n // 7.4. For all other Object pairs, including Array objects, equivalence is\n // determined by having the same number of owned properties (as verified\n // with Object.prototype.hasOwnProperty.call), the same set of keys\n // (although not necessarily the same order), equivalent values for every\n // corresponding key, and an identical 'prototype' property. Note: this\n // accounts for both named and indexed properties on Arrays.\n } else {\n return objEquiv(actual, expected, opts);\n }\n}\n\nfunction isUndefinedOrNull(value) {\n return value === null || value === undefined;\n}\n\nfunction isBuffer (x) {\n if (!x || typeof x !== 'object' || typeof x.length !== 'number') return false;\n if (typeof x.copy !== 'function' || typeof x.slice !== 'function') {\n return false;\n }\n if (x.length > 0 && typeof x[0] !== 'number') return false;\n return true;\n}\n\nfunction objEquiv(a, b, opts) {\n var i, key;\n if (isUndefinedOrNull(a) || isUndefinedOrNull(b))\n return false;\n // an identical 'prototype' property.\n if (a.prototype !== b.prototype) return false;\n //~~~I've managed to break Object.keys through screwy arguments passing.\n // Converting to array solves the problem.\n if (isArguments(a)) {\n if (!isArguments(b)) {\n return false;\n }\n a = pSlice.call(a);\n b = pSlice.call(b);\n return deepEqual(a, b, opts);\n }\n if (isBuffer(a)) {\n if (!isBuffer(b)) {\n return false;\n }\n if (a.length !== b.length) return false;\n for (i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) return false;\n }\n return true;\n }\n try {\n var ka = objectKeys(a),\n kb = objectKeys(b);\n } catch (e) {//happens when one is a string literal and the other isn't\n return false;\n }\n // having the same number of owned properties (keys incorporates\n // hasOwnProperty)\n if (ka.length != kb.length)\n return false;\n //the same set of keys (although not necessarily the same order),\n ka.sort();\n kb.sort();\n //~~~cheap key test\n for (i = ka.length - 1; i >= 0; i--) {\n if (ka[i] != kb[i])\n return false;\n }\n //equivalent values for every corresponding key, and\n //~~~possibly expensive deep test\n for (i = ka.length - 1; i >= 0; i--) {\n key = ka[i];\n if (!deepEqual(a[key], b[key], opts)) return false;\n }\n return typeof a === typeof b;\n}\n\n\n//# sourceURL=webpack:///./node_modules/deep-equal/index.js?"); + +/***/ }), + +/***/ "./node_modules/deep-equal/lib/is_arguments.js": +/*!*****************************************************!*\ + !*** ./node_modules/deep-equal/lib/is_arguments.js ***! + \*****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +eval("var supportsArgumentsClass = (function(){\n return Object.prototype.toString.call(arguments)\n})() == '[object Arguments]';\n\nexports = module.exports = supportsArgumentsClass ? supported : unsupported;\n\nexports.supported = supported;\nfunction supported(object) {\n return Object.prototype.toString.call(object) == '[object Arguments]';\n};\n\nexports.unsupported = unsupported;\nfunction unsupported(object){\n return object &&\n typeof object == 'object' &&\n typeof object.length == 'number' &&\n Object.prototype.hasOwnProperty.call(object, 'callee') &&\n !Object.prototype.propertyIsEnumerable.call(object, 'callee') ||\n false;\n};\n\n\n//# sourceURL=webpack:///./node_modules/deep-equal/lib/is_arguments.js?"); + +/***/ }), + +/***/ "./node_modules/deep-equal/lib/keys.js": +/*!*********************************************!*\ + !*** ./node_modules/deep-equal/lib/keys.js ***! + \*********************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +eval("exports = module.exports = typeof Object.keys === 'function'\n ? Object.keys : shim;\n\nexports.shim = shim;\nfunction shim (obj) {\n var keys = [];\n for (var key in obj) keys.push(key);\n return keys;\n}\n\n\n//# sourceURL=webpack:///./node_modules/deep-equal/lib/keys.js?"); + +/***/ }), + +/***/ "./node_modules/dom-helpers/class/addClass.js": +/*!****************************************************!*\ + !*** ./node_modules/dom-helpers/class/addClass.js ***! + \****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\n\nexports.__esModule = true;\nexports.default = addClass;\n\nvar _hasClass = _interopRequireDefault(__webpack_require__(/*! ./hasClass */ \"./node_modules/dom-helpers/class/hasClass.js\"));\n\nfunction addClass(element, className) {\n if (element.classList) element.classList.add(className);else if (!(0, _hasClass.default)(element, className)) if (typeof element.className === 'string') element.className = element.className + ' ' + className;else element.setAttribute('class', (element.className && element.className.baseVal || '') + ' ' + className);\n}\n\nmodule.exports = exports[\"default\"];\n\n//# sourceURL=webpack:///./node_modules/dom-helpers/class/addClass.js?"); + +/***/ }), + +/***/ "./node_modules/dom-helpers/class/hasClass.js": +/*!****************************************************!*\ + !*** ./node_modules/dom-helpers/class/hasClass.js ***! + \****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nexports.__esModule = true;\nexports.default = hasClass;\n\nfunction hasClass(element, className) {\n if (element.classList) return !!className && element.classList.contains(className);else return (\" \" + (element.className.baseVal || element.className) + \" \").indexOf(\" \" + className + \" \") !== -1;\n}\n\nmodule.exports = exports[\"default\"];\n\n//# sourceURL=webpack:///./node_modules/dom-helpers/class/hasClass.js?"); + +/***/ }), + +/***/ "./node_modules/dom-helpers/class/removeClass.js": +/*!*******************************************************!*\ + !*** ./node_modules/dom-helpers/class/removeClass.js ***! + \*******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nfunction replaceClassName(origClass, classToRemove) {\n return origClass.replace(new RegExp('(^|\\\\s)' + classToRemove + '(?:\\\\s|$)', 'g'), '$1').replace(/\\s+/g, ' ').replace(/^\\s*|\\s*$/g, '');\n}\n\nmodule.exports = function removeClass(element, className) {\n if (element.classList) element.classList.remove(className);else if (typeof element.className === 'string') element.className = replaceClassName(element.className, className);else element.setAttribute('class', replaceClassName(element.className && element.className.baseVal || '', className));\n};\n\n//# sourceURL=webpack:///./node_modules/dom-helpers/class/removeClass.js?"); + +/***/ }), + +/***/ "./node_modules/duplexer2/index.js": +/*!*****************************************!*\ + !*** ./node_modules/duplexer2/index.js ***! + \*****************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nvar stream = __webpack_require__(/*! readable-stream */ \"./node_modules/readable-stream/readable-browser.js\");\n\nfunction DuplexWrapper(options, writable, readable) {\n if (typeof readable === \"undefined\") {\n readable = writable;\n writable = options;\n options = null;\n }\n\n stream.Duplex.call(this, options);\n\n if (typeof readable.read !== \"function\") {\n readable = (new stream.Readable(options)).wrap(readable);\n }\n\n this._writable = writable;\n this._readable = readable;\n this._waiting = false;\n\n var self = this;\n\n writable.once(\"finish\", function() {\n self.end();\n });\n\n this.once(\"finish\", function() {\n writable.end();\n });\n\n readable.on(\"readable\", function() {\n if (self._waiting) {\n self._waiting = false;\n self._read();\n }\n });\n\n readable.once(\"end\", function() {\n self.push(null);\n });\n\n if (!options || typeof options.bubbleErrors === \"undefined\" || options.bubbleErrors) {\n writable.on(\"error\", function(err) {\n self.emit(\"error\", err);\n });\n\n readable.on(\"error\", function(err) {\n self.emit(\"error\", err);\n });\n }\n}\n\nDuplexWrapper.prototype = Object.create(stream.Duplex.prototype, {constructor: {value: DuplexWrapper}});\n\nDuplexWrapper.prototype._write = function _write(input, encoding, done) {\n this._writable.write(input, encoding, done);\n};\n\nDuplexWrapper.prototype._read = function _read() {\n var buf;\n var reads = 0;\n while ((buf = this._readable.read()) !== null) {\n this.push(buf);\n reads++;\n }\n if (reads === 0) {\n this._waiting = true;\n }\n};\n\nmodule.exports = function duplex2(options, writable, readable) {\n return new DuplexWrapper(options, writable, readable);\n};\n\nmodule.exports.DuplexWrapper = DuplexWrapper;\n\n\n//# sourceURL=webpack:///./node_modules/duplexer2/index.js?"); + +/***/ }), + +/***/ "./node_modules/emotion-server/dist/index.js": +/*!***************************************************!*\ + !*** ./node_modules/emotion-server/dist/index.js ***! + \***************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar createEmotionServer = _interopDefault(__webpack_require__(/*! create-emotion-server */ \"./node_modules/create-emotion-server/dist/index.js\"));\nvar emotion = __webpack_require__(/*! emotion */ \"./node_modules/emotion/dist/index.esm.js\");\n\nvar _createEmotionServer = createEmotionServer(emotion),\n extractCritical = _createEmotionServer.extractCritical,\n renderStylesToString = _createEmotionServer.renderStylesToString,\n renderStylesToNodeStream = _createEmotionServer.renderStylesToNodeStream;\n\nexports.extractCritical = extractCritical;\nexports.renderStylesToString = renderStylesToString;\nexports.renderStylesToNodeStream = renderStylesToNodeStream;\n\n\n//# sourceURL=webpack:///./node_modules/emotion-server/dist/index.js?"); + +/***/ }), + +/***/ "./node_modules/emotion/dist/index.esm.js": +/*!************************************************!*\ + !*** ./node_modules/emotion/dist/index.esm.js ***! + \************************************************/ +/*! exports provided: flush, hydrate, cx, merge, getRegisteredStyles, injectGlobal, keyframes, css, sheet, caches */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* WEBPACK VAR INJECTION */(function(global) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"flush\", function() { return flush; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"hydrate\", function() { return hydrate; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"cx\", function() { return cx; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"merge\", function() { return merge; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getRegisteredStyles\", function() { return getRegisteredStyles; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"injectGlobal\", function() { return injectGlobal; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"keyframes\", function() { return keyframes; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"css\", function() { return css; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"sheet\", function() { return sheet; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"caches\", function() { return caches; });\n/* harmony import */ var create_emotion__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! create-emotion */ \"./node_modules/create-emotion/dist/index.esm.js\");\n\n\nvar context = typeof global !== 'undefined' ? global : {};\n\nvar _createEmotion = Object(create_emotion__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(context),\n flush = _createEmotion.flush,\n hydrate = _createEmotion.hydrate,\n cx = _createEmotion.cx,\n merge = _createEmotion.merge,\n getRegisteredStyles = _createEmotion.getRegisteredStyles,\n injectGlobal = _createEmotion.injectGlobal,\n keyframes = _createEmotion.keyframes,\n css = _createEmotion.css,\n sheet = _createEmotion.sheet,\n caches = _createEmotion.caches;\n\n\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../webpack/buildin/global.js */ \"./node_modules/webpack/buildin/global.js\")))\n\n//# sourceURL=webpack:///./node_modules/emotion/dist/index.esm.js?"); + +/***/ }), + +/***/ "./node_modules/events/events.js": +/*!***************************************!*\ + !*** ./node_modules/events/events.js ***! + \***************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction $getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return $getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = $getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n var args = [];\n for (var i = 0; i < arguments.length; i++) args.push(arguments[i]);\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n ReflectApply(this.listener, this.target, args);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n\n\n//# sourceURL=webpack:///./node_modules/events/events.js?"); + +/***/ }), + +/***/ "./node_modules/exenv/index.js": +/*!*************************************!*\ + !*** ./node_modules/exenv/index.js ***! + \*************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +eval("var __WEBPACK_AMD_DEFINE_RESULT__;/*!\n Copyright (c) 2015 Jed Watson.\n Based on code that is Copyright 2013-2015, Facebook, Inc.\n All rights reserved.\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar canUseDOM = !!(\n\t\ttypeof window !== 'undefined' &&\n\t\twindow.document &&\n\t\twindow.document.createElement\n\t);\n\n\tvar ExecutionEnvironment = {\n\n\t\tcanUseDOM: canUseDOM,\n\n\t\tcanUseWorkers: typeof Worker !== 'undefined',\n\n\t\tcanUseEventListeners:\n\t\t\tcanUseDOM && !!(window.addEventListener || window.attachEvent),\n\n\t\tcanUseViewport: canUseDOM && !!window.screen\n\n\t};\n\n\tif (true) {\n\t\t!(__WEBPACK_AMD_DEFINE_RESULT__ = (function () {\n\t\t\treturn ExecutionEnvironment;\n\t\t}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t} else {}\n\n}());\n\n\n//# sourceURL=webpack:///./node_modules/exenv/index.js?"); + +/***/ }), + +/***/ "./node_modules/fbjs/lib/emptyFunction.js": +/*!************************************************!*\ + !*** ./node_modules/fbjs/lib/emptyFunction.js ***! + \************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nfunction makeEmptyFunction(arg) {\n return function () {\n return arg;\n };\n}\n\n/**\n * This function accepts and discards inputs; it has no side effects. This is\n * primarily useful idiomatically for overridable function endpoints which\n * always need to be callable, since JS lacks a null-call idiom ala Cocoa.\n */\nvar emptyFunction = function emptyFunction() {};\n\nemptyFunction.thatReturns = makeEmptyFunction;\nemptyFunction.thatReturnsFalse = makeEmptyFunction(false);\nemptyFunction.thatReturnsTrue = makeEmptyFunction(true);\nemptyFunction.thatReturnsNull = makeEmptyFunction(null);\nemptyFunction.thatReturnsThis = function () {\n return this;\n};\nemptyFunction.thatReturnsArgument = function (arg) {\n return arg;\n};\n\nmodule.exports = emptyFunction;\n\n//# sourceURL=webpack:///./node_modules/fbjs/lib/emptyFunction.js?"); + +/***/ }), + +/***/ "./node_modules/fbjs/lib/hyphenate.js": +/*!********************************************!*\ + !*** ./node_modules/fbjs/lib/hyphenate.js ***! + \********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n */\n\nvar _uppercasePattern = /([A-Z])/g;\n\n/**\n * Hyphenates a camelcased string, for example:\n *\n * > hyphenate('backgroundColor')\n * < \"background-color\"\n *\n * For CSS style names, use `hyphenateStyleName` instead which works properly\n * with all vendor prefixes, including `ms`.\n *\n * @param {string} string\n * @return {string}\n */\nfunction hyphenate(string) {\n return string.replace(_uppercasePattern, '-$1').toLowerCase();\n}\n\nmodule.exports = hyphenate;\n\n//# sourceURL=webpack:///./node_modules/fbjs/lib/hyphenate.js?"); + +/***/ }), + +/***/ "./node_modules/fbjs/lib/hyphenateStyleName.js": +/*!*****************************************************!*\ + !*** ./node_modules/fbjs/lib/hyphenateStyleName.js ***! + \*****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n */\n\n\n\nvar hyphenate = __webpack_require__(/*! ./hyphenate */ \"./node_modules/fbjs/lib/hyphenate.js\");\n\nvar msPattern = /^ms-/;\n\n/**\n * Hyphenates a camelcased CSS property name, for example:\n *\n * > hyphenateStyleName('backgroundColor')\n * < \"background-color\"\n * > hyphenateStyleName('MozTransition')\n * < \"-moz-transition\"\n * > hyphenateStyleName('msTransition')\n * < \"-ms-transition\"\n *\n * As Modernizr suggests (http://modernizr.com/docs/#prefixed), an `ms` prefix\n * is converted to `-ms-`.\n *\n * @param {string} string\n * @return {string}\n */\nfunction hyphenateStyleName(string) {\n return hyphenate(string).replace(msPattern, '-ms-');\n}\n\nmodule.exports = hyphenateStyleName;\n\n//# sourceURL=webpack:///./node_modules/fbjs/lib/hyphenateStyleName.js?"); + +/***/ }), + +/***/ "./node_modules/fbjs/lib/invariant.js": +/*!********************************************!*\ + !*** ./node_modules/fbjs/lib/invariant.js ***! + \********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar validateFormat = function validateFormat(format) {};\n\nif (true) {\n validateFormat = function validateFormat(format) {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n };\n}\n\nfunction invariant(condition, format, a, b, c, d, e, f) {\n validateFormat(format);\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n}\n\nmodule.exports = invariant;\n\n//# sourceURL=webpack:///./node_modules/fbjs/lib/invariant.js?"); + +/***/ }), + +/***/ "./node_modules/fbjs/lib/warning.js": +/*!******************************************!*\ + !*** ./node_modules/fbjs/lib/warning.js ***! + \******************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n\n\nvar emptyFunction = __webpack_require__(/*! ./emptyFunction */ \"./node_modules/fbjs/lib/emptyFunction.js\");\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar warning = emptyFunction;\n\nif (true) {\n var printWarning = function printWarning(format) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n\n warning = function warning(condition, format) {\n if (format === undefined) {\n throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n\n if (format.indexOf('Failed Composite propType: ') === 0) {\n return; // Ignore CompositeComponent proptype check.\n }\n\n if (!condition) {\n for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n printWarning.apply(undefined, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;\n\n//# sourceURL=webpack:///./node_modules/fbjs/lib/warning.js?"); + +/***/ }), + +/***/ "./node_modules/history/DOMUtils.js": +/*!******************************************!*\ + !*** ./node_modules/history/DOMUtils.js ***! + \******************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nexports.__esModule = true;\nvar canUseDOM = exports.canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n\nvar addEventListener = exports.addEventListener = function addEventListener(node, event, listener) {\n return node.addEventListener ? node.addEventListener(event, listener, false) : node.attachEvent('on' + event, listener);\n};\n\nvar removeEventListener = exports.removeEventListener = function removeEventListener(node, event, listener) {\n return node.removeEventListener ? node.removeEventListener(event, listener, false) : node.detachEvent('on' + event, listener);\n};\n\nvar getConfirmation = exports.getConfirmation = function getConfirmation(message, callback) {\n return callback(window.confirm(message));\n}; // eslint-disable-line no-alert\n\n/**\n * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n *\n * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586\n */\nvar supportsHistory = exports.supportsHistory = function supportsHistory() {\n var ua = window.navigator.userAgent;\n\n if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;\n\n return window.history && 'pushState' in window.history;\n};\n\n/**\n * Returns true if browser fires popstate on hash change.\n * IE10 and IE11 do not.\n */\nvar supportsPopStateOnHashChange = exports.supportsPopStateOnHashChange = function supportsPopStateOnHashChange() {\n return window.navigator.userAgent.indexOf('Trident') === -1;\n};\n\n/**\n * Returns false if using go(n) with hash history causes a full page reload.\n */\nvar supportsGoWithoutReloadUsingHash = exports.supportsGoWithoutReloadUsingHash = function supportsGoWithoutReloadUsingHash() {\n return window.navigator.userAgent.indexOf('Firefox') === -1;\n};\n\n/**\n * Returns true if a given popstate event is an extraneous WebKit event.\n * Accounts for the fact that Chrome on iOS fires real popstate events\n * containing undefined state when pressing the back button.\n */\nvar isExtraneousPopstateEvent = exports.isExtraneousPopstateEvent = function isExtraneousPopstateEvent(event) {\n return event.state === undefined && navigator.userAgent.indexOf('CriOS') === -1;\n};\n\n//# sourceURL=webpack:///./node_modules/history/DOMUtils.js?"); + +/***/ }), + +/***/ "./node_modules/history/LocationUtils.js": +/*!***********************************************!*\ + !*** ./node_modules/history/LocationUtils.js ***! + \***********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nexports.__esModule = true;\nexports.locationsAreEqual = exports.createLocation = undefined;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _resolvePathname = __webpack_require__(/*! resolve-pathname */ \"./node_modules/resolve-pathname/index.js\");\n\nvar _resolvePathname2 = _interopRequireDefault(_resolvePathname);\n\nvar _valueEqual = __webpack_require__(/*! value-equal */ \"./node_modules/value-equal/index.js\");\n\nvar _valueEqual2 = _interopRequireDefault(_valueEqual);\n\nvar _PathUtils = __webpack_require__(/*! ./PathUtils */ \"./node_modules/history/PathUtils.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar createLocation = exports.createLocation = function createLocation(path, state, key, currentLocation) {\n var location = void 0;\n if (typeof path === 'string') {\n // Two-arg form: push(path, state)\n location = (0, _PathUtils.parsePath)(path);\n location.state = state;\n } else {\n // One-arg form: push(location)\n location = _extends({}, path);\n\n if (location.pathname === undefined) location.pathname = '';\n\n if (location.search) {\n if (location.search.charAt(0) !== '?') location.search = '?' + location.search;\n } else {\n location.search = '';\n }\n\n if (location.hash) {\n if (location.hash.charAt(0) !== '#') location.hash = '#' + location.hash;\n } else {\n location.hash = '';\n }\n\n if (state !== undefined && location.state === undefined) location.state = state;\n }\n\n try {\n location.pathname = decodeURI(location.pathname);\n } catch (e) {\n if (e instanceof URIError) {\n throw new URIError('Pathname \"' + location.pathname + '\" could not be decoded. ' + 'This is likely caused by an invalid percent-encoding.');\n } else {\n throw e;\n }\n }\n\n if (key) location.key = key;\n\n if (currentLocation) {\n // Resolve incomplete/relative pathname relative to current location.\n if (!location.pathname) {\n location.pathname = currentLocation.pathname;\n } else if (location.pathname.charAt(0) !== '/') {\n location.pathname = (0, _resolvePathname2.default)(location.pathname, currentLocation.pathname);\n }\n } else {\n // When there is no prior location and pathname is empty, set it to /\n if (!location.pathname) {\n location.pathname = '/';\n }\n }\n\n return location;\n};\n\nvar locationsAreEqual = exports.locationsAreEqual = function locationsAreEqual(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && a.key === b.key && (0, _valueEqual2.default)(a.state, b.state);\n};\n\n//# sourceURL=webpack:///./node_modules/history/LocationUtils.js?"); + +/***/ }), + +/***/ "./node_modules/history/PathUtils.js": +/*!*******************************************!*\ + !*** ./node_modules/history/PathUtils.js ***! + \*******************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nexports.__esModule = true;\nvar addLeadingSlash = exports.addLeadingSlash = function addLeadingSlash(path) {\n return path.charAt(0) === '/' ? path : '/' + path;\n};\n\nvar stripLeadingSlash = exports.stripLeadingSlash = function stripLeadingSlash(path) {\n return path.charAt(0) === '/' ? path.substr(1) : path;\n};\n\nvar hasBasename = exports.hasBasename = function hasBasename(path, prefix) {\n return new RegExp('^' + prefix + '(\\\\/|\\\\?|#|$)', 'i').test(path);\n};\n\nvar stripBasename = exports.stripBasename = function stripBasename(path, prefix) {\n return hasBasename(path, prefix) ? path.substr(prefix.length) : path;\n};\n\nvar stripTrailingSlash = exports.stripTrailingSlash = function stripTrailingSlash(path) {\n return path.charAt(path.length - 1) === '/' ? path.slice(0, -1) : path;\n};\n\nvar parsePath = exports.parsePath = function parsePath(path) {\n var pathname = path || '/';\n var search = '';\n var hash = '';\n\n var hashIndex = pathname.indexOf('#');\n if (hashIndex !== -1) {\n hash = pathname.substr(hashIndex);\n pathname = pathname.substr(0, hashIndex);\n }\n\n var searchIndex = pathname.indexOf('?');\n if (searchIndex !== -1) {\n search = pathname.substr(searchIndex);\n pathname = pathname.substr(0, searchIndex);\n }\n\n return {\n pathname: pathname,\n search: search === '?' ? '' : search,\n hash: hash === '#' ? '' : hash\n };\n};\n\nvar createPath = exports.createPath = function createPath(location) {\n var pathname = location.pathname,\n search = location.search,\n hash = location.hash;\n\n\n var path = pathname || '/';\n\n if (search && search !== '?') path += search.charAt(0) === '?' ? search : '?' + search;\n\n if (hash && hash !== '#') path += hash.charAt(0) === '#' ? hash : '#' + hash;\n\n return path;\n};\n\n//# sourceURL=webpack:///./node_modules/history/PathUtils.js?"); + +/***/ }), + +/***/ "./node_modules/history/createBrowserHistory.js": +/*!******************************************************!*\ + !*** ./node_modules/history/createBrowserHistory.js ***! + \******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nexports.__esModule = true;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _warning = __webpack_require__(/*! warning */ \"./node_modules/warning/browser.js\");\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nvar _invariant = __webpack_require__(/*! invariant */ \"./node_modules/invariant/browser.js\");\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nvar _LocationUtils = __webpack_require__(/*! ./LocationUtils */ \"./node_modules/history/LocationUtils.js\");\n\nvar _PathUtils = __webpack_require__(/*! ./PathUtils */ \"./node_modules/history/PathUtils.js\");\n\nvar _createTransitionManager = __webpack_require__(/*! ./createTransitionManager */ \"./node_modules/history/createTransitionManager.js\");\n\nvar _createTransitionManager2 = _interopRequireDefault(_createTransitionManager);\n\nvar _DOMUtils = __webpack_require__(/*! ./DOMUtils */ \"./node_modules/history/DOMUtils.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar PopStateEvent = 'popstate';\nvar HashChangeEvent = 'hashchange';\n\nvar getHistoryState = function getHistoryState() {\n try {\n return window.history.state || {};\n } catch (e) {\n // IE 11 sometimes throws when accessing window.history.state\n // See https://github.com/ReactTraining/history/pull/289\n return {};\n }\n};\n\n/**\n * Creates a history object that uses the HTML5 history API including\n * pushState, replaceState, and the popstate event.\n */\nvar createBrowserHistory = function createBrowserHistory() {\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n (0, _invariant2.default)(_DOMUtils.canUseDOM, 'Browser history needs a DOM');\n\n var globalHistory = window.history;\n var canUseHistory = (0, _DOMUtils.supportsHistory)();\n var needsHashChangeListener = !(0, _DOMUtils.supportsPopStateOnHashChange)();\n\n var _props$forceRefresh = props.forceRefresh,\n forceRefresh = _props$forceRefresh === undefined ? false : _props$forceRefresh,\n _props$getUserConfirm = props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === undefined ? _DOMUtils.getConfirmation : _props$getUserConfirm,\n _props$keyLength = props.keyLength,\n keyLength = _props$keyLength === undefined ? 6 : _props$keyLength;\n\n var basename = props.basename ? (0, _PathUtils.stripTrailingSlash)((0, _PathUtils.addLeadingSlash)(props.basename)) : '';\n\n var getDOMLocation = function getDOMLocation(historyState) {\n var _ref = historyState || {},\n key = _ref.key,\n state = _ref.state;\n\n var _window$location = window.location,\n pathname = _window$location.pathname,\n search = _window$location.search,\n hash = _window$location.hash;\n\n\n var path = pathname + search + hash;\n\n (0, _warning2.default)(!basename || (0, _PathUtils.hasBasename)(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".');\n\n if (basename) path = (0, _PathUtils.stripBasename)(path, basename);\n\n return (0, _LocationUtils.createLocation)(path, state, key);\n };\n\n var createKey = function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n };\n\n var transitionManager = (0, _createTransitionManager2.default)();\n\n var setState = function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n\n transitionManager.notifyListeners(history.location, history.action);\n };\n\n var handlePopState = function handlePopState(event) {\n // Ignore extraneous popstate events in WebKit.\n if ((0, _DOMUtils.isExtraneousPopstateEvent)(event)) return;\n\n handlePop(getDOMLocation(event.state));\n };\n\n var handleHashChange = function handleHashChange() {\n handlePop(getDOMLocation(getHistoryState()));\n };\n\n var forceNextPop = false;\n\n var handlePop = function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({ action: action, location: location });\n } else {\n revertPop(location);\n }\n });\n }\n };\n\n var revertPop = function revertPop(fromLocation) {\n var toLocation = history.location;\n\n // TODO: We could probably make this more reliable by\n // keeping a list of keys we've seen in sessionStorage.\n // Instead, we just default to 0 for keys we don't know.\n\n var toIndex = allKeys.indexOf(toLocation.key);\n\n if (toIndex === -1) toIndex = 0;\n\n var fromIndex = allKeys.indexOf(fromLocation.key);\n\n if (fromIndex === -1) fromIndex = 0;\n\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n };\n\n var initialLocation = getDOMLocation(getHistoryState());\n var allKeys = [initialLocation.key];\n\n // Public interface\n\n var createHref = function createHref(location) {\n return basename + (0, _PathUtils.createPath)(location);\n };\n\n var push = function push(path, state) {\n (0, _warning2.default)(!((typeof path === 'undefined' ? 'undefined' : _typeof(path)) === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored');\n\n var action = 'PUSH';\n var location = (0, _LocationUtils.createLocation)(path, state, createKey(), history.location);\n\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n\n if (canUseHistory) {\n globalHistory.pushState({ key: key, state: state }, null, href);\n\n if (forceRefresh) {\n window.location.href = href;\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n var nextKeys = allKeys.slice(0, prevIndex === -1 ? 0 : prevIndex + 1);\n\n nextKeys.push(location.key);\n allKeys = nextKeys;\n\n setState({ action: action, location: location });\n }\n } else {\n (0, _warning2.default)(state === undefined, 'Browser history cannot push state in browsers that do not support HTML5 history');\n\n window.location.href = href;\n }\n });\n };\n\n var replace = function replace(path, state) {\n (0, _warning2.default)(!((typeof path === 'undefined' ? 'undefined' : _typeof(path)) === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored');\n\n var action = 'REPLACE';\n var location = (0, _LocationUtils.createLocation)(path, state, createKey(), history.location);\n\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n\n if (canUseHistory) {\n globalHistory.replaceState({ key: key, state: state }, null, href);\n\n if (forceRefresh) {\n window.location.replace(href);\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n\n if (prevIndex !== -1) allKeys[prevIndex] = location.key;\n\n setState({ action: action, location: location });\n }\n } else {\n (0, _warning2.default)(state === undefined, 'Browser history cannot replace state in browsers that do not support HTML5 history');\n\n window.location.replace(href);\n }\n });\n };\n\n var go = function go(n) {\n globalHistory.go(n);\n };\n\n var goBack = function goBack() {\n return go(-1);\n };\n\n var goForward = function goForward() {\n return go(1);\n };\n\n var listenerCount = 0;\n\n var checkDOMListeners = function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1) {\n (0, _DOMUtils.addEventListener)(window, PopStateEvent, handlePopState);\n\n if (needsHashChangeListener) (0, _DOMUtils.addEventListener)(window, HashChangeEvent, handleHashChange);\n } else if (listenerCount === 0) {\n (0, _DOMUtils.removeEventListener)(window, PopStateEvent, handlePopState);\n\n if (needsHashChangeListener) (0, _DOMUtils.removeEventListener)(window, HashChangeEvent, handleHashChange);\n }\n };\n\n var isBlocked = false;\n\n var block = function block() {\n var prompt = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n };\n\n var listen = function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n };\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n\n return history;\n};\n\nexports.default = createBrowserHistory;\n\n//# sourceURL=webpack:///./node_modules/history/createBrowserHistory.js?"); + +/***/ }), + +/***/ "./node_modules/history/createHashHistory.js": +/*!***************************************************!*\ + !*** ./node_modules/history/createHashHistory.js ***! + \***************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _warning = __webpack_require__(/*! warning */ \"./node_modules/warning/browser.js\");\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nvar _invariant = __webpack_require__(/*! invariant */ \"./node_modules/invariant/browser.js\");\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nvar _LocationUtils = __webpack_require__(/*! ./LocationUtils */ \"./node_modules/history/LocationUtils.js\");\n\nvar _PathUtils = __webpack_require__(/*! ./PathUtils */ \"./node_modules/history/PathUtils.js\");\n\nvar _createTransitionManager = __webpack_require__(/*! ./createTransitionManager */ \"./node_modules/history/createTransitionManager.js\");\n\nvar _createTransitionManager2 = _interopRequireDefault(_createTransitionManager);\n\nvar _DOMUtils = __webpack_require__(/*! ./DOMUtils */ \"./node_modules/history/DOMUtils.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar HashChangeEvent = 'hashchange';\n\nvar HashPathCoders = {\n hashbang: {\n encodePath: function encodePath(path) {\n return path.charAt(0) === '!' ? path : '!/' + (0, _PathUtils.stripLeadingSlash)(path);\n },\n decodePath: function decodePath(path) {\n return path.charAt(0) === '!' ? path.substr(1) : path;\n }\n },\n noslash: {\n encodePath: _PathUtils.stripLeadingSlash,\n decodePath: _PathUtils.addLeadingSlash\n },\n slash: {\n encodePath: _PathUtils.addLeadingSlash,\n decodePath: _PathUtils.addLeadingSlash\n }\n};\n\nvar getHashPath = function getHashPath() {\n // We can't use window.location.hash here because it's not\n // consistent across browsers - Firefox will pre-decode it!\n var href = window.location.href;\n var hashIndex = href.indexOf('#');\n return hashIndex === -1 ? '' : href.substring(hashIndex + 1);\n};\n\nvar pushHashPath = function pushHashPath(path) {\n return window.location.hash = path;\n};\n\nvar replaceHashPath = function replaceHashPath(path) {\n var hashIndex = window.location.href.indexOf('#');\n\n window.location.replace(window.location.href.slice(0, hashIndex >= 0 ? hashIndex : 0) + '#' + path);\n};\n\nvar createHashHistory = function createHashHistory() {\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n (0, _invariant2.default)(_DOMUtils.canUseDOM, 'Hash history needs a DOM');\n\n var globalHistory = window.history;\n var canGoWithoutReload = (0, _DOMUtils.supportsGoWithoutReloadUsingHash)();\n\n var _props$getUserConfirm = props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === undefined ? _DOMUtils.getConfirmation : _props$getUserConfirm,\n _props$hashType = props.hashType,\n hashType = _props$hashType === undefined ? 'slash' : _props$hashType;\n\n var basename = props.basename ? (0, _PathUtils.stripTrailingSlash)((0, _PathUtils.addLeadingSlash)(props.basename)) : '';\n\n var _HashPathCoders$hashT = HashPathCoders[hashType],\n encodePath = _HashPathCoders$hashT.encodePath,\n decodePath = _HashPathCoders$hashT.decodePath;\n\n\n var getDOMLocation = function getDOMLocation() {\n var path = decodePath(getHashPath());\n\n (0, _warning2.default)(!basename || (0, _PathUtils.hasBasename)(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".');\n\n if (basename) path = (0, _PathUtils.stripBasename)(path, basename);\n\n return (0, _LocationUtils.createLocation)(path);\n };\n\n var transitionManager = (0, _createTransitionManager2.default)();\n\n var setState = function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n\n transitionManager.notifyListeners(history.location, history.action);\n };\n\n var forceNextPop = false;\n var ignorePath = null;\n\n var handleHashChange = function handleHashChange() {\n var path = getHashPath();\n var encodedPath = encodePath(path);\n\n if (path !== encodedPath) {\n // Ensure we always have a properly-encoded hash.\n replaceHashPath(encodedPath);\n } else {\n var location = getDOMLocation();\n var prevLocation = history.location;\n\n if (!forceNextPop && (0, _LocationUtils.locationsAreEqual)(prevLocation, location)) return; // A hashchange doesn't always == location change.\n\n if (ignorePath === (0, _PathUtils.createPath)(location)) return; // Ignore this change; we already setState in push/replace.\n\n ignorePath = null;\n\n handlePop(location);\n }\n };\n\n var handlePop = function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({ action: action, location: location });\n } else {\n revertPop(location);\n }\n });\n }\n };\n\n var revertPop = function revertPop(fromLocation) {\n var toLocation = history.location;\n\n // TODO: We could probably make this more reliable by\n // keeping a list of paths we've seen in sessionStorage.\n // Instead, we just default to 0 for paths we don't know.\n\n var toIndex = allPaths.lastIndexOf((0, _PathUtils.createPath)(toLocation));\n\n if (toIndex === -1) toIndex = 0;\n\n var fromIndex = allPaths.lastIndexOf((0, _PathUtils.createPath)(fromLocation));\n\n if (fromIndex === -1) fromIndex = 0;\n\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n };\n\n // Ensure the hash is encoded properly before doing anything else.\n var path = getHashPath();\n var encodedPath = encodePath(path);\n\n if (path !== encodedPath) replaceHashPath(encodedPath);\n\n var initialLocation = getDOMLocation();\n var allPaths = [(0, _PathUtils.createPath)(initialLocation)];\n\n // Public interface\n\n var createHref = function createHref(location) {\n return '#' + encodePath(basename + (0, _PathUtils.createPath)(location));\n };\n\n var push = function push(path, state) {\n (0, _warning2.default)(state === undefined, 'Hash history cannot push state; it is ignored');\n\n var action = 'PUSH';\n var location = (0, _LocationUtils.createLocation)(path, undefined, undefined, history.location);\n\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n\n var path = (0, _PathUtils.createPath)(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a PUSH, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n pushHashPath(encodedPath);\n\n var prevIndex = allPaths.lastIndexOf((0, _PathUtils.createPath)(history.location));\n var nextPaths = allPaths.slice(0, prevIndex === -1 ? 0 : prevIndex + 1);\n\n nextPaths.push(path);\n allPaths = nextPaths;\n\n setState({ action: action, location: location });\n } else {\n (0, _warning2.default)(false, 'Hash history cannot PUSH the same path; a new entry will not be added to the history stack');\n\n setState();\n }\n });\n };\n\n var replace = function replace(path, state) {\n (0, _warning2.default)(state === undefined, 'Hash history cannot replace state; it is ignored');\n\n var action = 'REPLACE';\n var location = (0, _LocationUtils.createLocation)(path, undefined, undefined, history.location);\n\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n\n var path = (0, _PathUtils.createPath)(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a REPLACE, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n replaceHashPath(encodedPath);\n }\n\n var prevIndex = allPaths.indexOf((0, _PathUtils.createPath)(history.location));\n\n if (prevIndex !== -1) allPaths[prevIndex] = path;\n\n setState({ action: action, location: location });\n });\n };\n\n var go = function go(n) {\n (0, _warning2.default)(canGoWithoutReload, 'Hash history go(n) causes a full page reload in this browser');\n\n globalHistory.go(n);\n };\n\n var goBack = function goBack() {\n return go(-1);\n };\n\n var goForward = function goForward() {\n return go(1);\n };\n\n var listenerCount = 0;\n\n var checkDOMListeners = function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1) {\n (0, _DOMUtils.addEventListener)(window, HashChangeEvent, handleHashChange);\n } else if (listenerCount === 0) {\n (0, _DOMUtils.removeEventListener)(window, HashChangeEvent, handleHashChange);\n }\n };\n\n var isBlocked = false;\n\n var block = function block() {\n var prompt = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n };\n\n var listen = function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n };\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n\n return history;\n};\n\nexports.default = createHashHistory;\n\n//# sourceURL=webpack:///./node_modules/history/createHashHistory.js?"); + +/***/ }), + +/***/ "./node_modules/history/createMemoryHistory.js": +/*!*****************************************************!*\ + !*** ./node_modules/history/createMemoryHistory.js ***! + \*****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nexports.__esModule = true;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _warning = __webpack_require__(/*! warning */ \"./node_modules/warning/browser.js\");\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nvar _PathUtils = __webpack_require__(/*! ./PathUtils */ \"./node_modules/history/PathUtils.js\");\n\nvar _LocationUtils = __webpack_require__(/*! ./LocationUtils */ \"./node_modules/history/LocationUtils.js\");\n\nvar _createTransitionManager = __webpack_require__(/*! ./createTransitionManager */ \"./node_modules/history/createTransitionManager.js\");\n\nvar _createTransitionManager2 = _interopRequireDefault(_createTransitionManager);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar clamp = function clamp(n, lowerBound, upperBound) {\n return Math.min(Math.max(n, lowerBound), upperBound);\n};\n\n/**\n * Creates a history object that stores locations in memory.\n */\nvar createMemoryHistory = function createMemoryHistory() {\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var getUserConfirmation = props.getUserConfirmation,\n _props$initialEntries = props.initialEntries,\n initialEntries = _props$initialEntries === undefined ? ['/'] : _props$initialEntries,\n _props$initialIndex = props.initialIndex,\n initialIndex = _props$initialIndex === undefined ? 0 : _props$initialIndex,\n _props$keyLength = props.keyLength,\n keyLength = _props$keyLength === undefined ? 6 : _props$keyLength;\n\n\n var transitionManager = (0, _createTransitionManager2.default)();\n\n var setState = function setState(nextState) {\n _extends(history, nextState);\n\n history.length = history.entries.length;\n\n transitionManager.notifyListeners(history.location, history.action);\n };\n\n var createKey = function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n };\n\n var index = clamp(initialIndex, 0, initialEntries.length - 1);\n var entries = initialEntries.map(function (entry) {\n return typeof entry === 'string' ? (0, _LocationUtils.createLocation)(entry, undefined, createKey()) : (0, _LocationUtils.createLocation)(entry, undefined, entry.key || createKey());\n });\n\n // Public interface\n\n var createHref = _PathUtils.createPath;\n\n var push = function push(path, state) {\n (0, _warning2.default)(!((typeof path === 'undefined' ? 'undefined' : _typeof(path)) === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored');\n\n var action = 'PUSH';\n var location = (0, _LocationUtils.createLocation)(path, state, createKey(), history.location);\n\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n\n var prevIndex = history.index;\n var nextIndex = prevIndex + 1;\n\n var nextEntries = history.entries.slice(0);\n if (nextEntries.length > nextIndex) {\n nextEntries.splice(nextIndex, nextEntries.length - nextIndex, location);\n } else {\n nextEntries.push(location);\n }\n\n setState({\n action: action,\n location: location,\n index: nextIndex,\n entries: nextEntries\n });\n });\n };\n\n var replace = function replace(path, state) {\n (0, _warning2.default)(!((typeof path === 'undefined' ? 'undefined' : _typeof(path)) === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored');\n\n var action = 'REPLACE';\n var location = (0, _LocationUtils.createLocation)(path, state, createKey(), history.location);\n\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n\n history.entries[history.index] = location;\n\n setState({ action: action, location: location });\n });\n };\n\n var go = function go(n) {\n var nextIndex = clamp(history.index + n, 0, history.entries.length - 1);\n\n var action = 'POP';\n var location = history.entries[nextIndex];\n\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location,\n index: nextIndex\n });\n } else {\n // Mimic the behavior of DOM histories by\n // causing a render after a cancelled POP.\n setState();\n }\n });\n };\n\n var goBack = function goBack() {\n return go(-1);\n };\n\n var goForward = function goForward() {\n return go(1);\n };\n\n var canGo = function canGo(n) {\n var nextIndex = history.index + n;\n return nextIndex >= 0 && nextIndex < history.entries.length;\n };\n\n var block = function block() {\n var prompt = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n return transitionManager.setPrompt(prompt);\n };\n\n var listen = function listen(listener) {\n return transitionManager.appendListener(listener);\n };\n\n var history = {\n length: entries.length,\n action: 'POP',\n location: entries[index],\n index: index,\n entries: entries,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n canGo: canGo,\n block: block,\n listen: listen\n };\n\n return history;\n};\n\nexports.default = createMemoryHistory;\n\n//# sourceURL=webpack:///./node_modules/history/createMemoryHistory.js?"); + +/***/ }), + +/***/ "./node_modules/history/createTransitionManager.js": +/*!*********************************************************!*\ + !*** ./node_modules/history/createTransitionManager.js ***! + \*********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nexports.__esModule = true;\n\nvar _warning = __webpack_require__(/*! warning */ \"./node_modules/warning/browser.js\");\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar createTransitionManager = function createTransitionManager() {\n var prompt = null;\n\n var setPrompt = function setPrompt(nextPrompt) {\n (0, _warning2.default)(prompt == null, 'A history supports only one prompt at a time');\n\n prompt = nextPrompt;\n\n return function () {\n if (prompt === nextPrompt) prompt = null;\n };\n };\n\n var confirmTransitionTo = function confirmTransitionTo(location, action, getUserConfirmation, callback) {\n // TODO: If another transition starts while we're still confirming\n // the previous one, we may end up in a weird state. Figure out the\n // best way to handle this.\n if (prompt != null) {\n var result = typeof prompt === 'function' ? prompt(location, action) : prompt;\n\n if (typeof result === 'string') {\n if (typeof getUserConfirmation === 'function') {\n getUserConfirmation(result, callback);\n } else {\n (0, _warning2.default)(false, 'A history needs a getUserConfirmation function in order to use a prompt message');\n\n callback(true);\n }\n } else {\n // Return false from a transition hook to cancel the transition.\n callback(result !== false);\n }\n } else {\n callback(true);\n }\n };\n\n var listeners = [];\n\n var appendListener = function appendListener(fn) {\n var isActive = true;\n\n var listener = function listener() {\n if (isActive) fn.apply(undefined, arguments);\n };\n\n listeners.push(listener);\n\n return function () {\n isActive = false;\n listeners = listeners.filter(function (item) {\n return item !== listener;\n });\n };\n };\n\n var notifyListeners = function notifyListeners() {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n listeners.forEach(function (listener) {\n return listener.apply(undefined, args);\n });\n };\n\n return {\n setPrompt: setPrompt,\n confirmTransitionTo: confirmTransitionTo,\n appendListener: appendListener,\n notifyListeners: notifyListeners\n };\n};\n\nexports.default = createTransitionManager;\n\n//# sourceURL=webpack:///./node_modules/history/createTransitionManager.js?"); + +/***/ }), + +/***/ "./node_modules/history/es/DOMUtils.js": +/*!*********************************************!*\ + !*** ./node_modules/history/es/DOMUtils.js ***! + \*********************************************/ +/*! exports provided: canUseDOM, addEventListener, removeEventListener, getConfirmation, supportsHistory, supportsPopStateOnHashChange, supportsGoWithoutReloadUsingHash, isExtraneousPopstateEvent */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"canUseDOM\", function() { return canUseDOM; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"addEventListener\", function() { return addEventListener; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"removeEventListener\", function() { return removeEventListener; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getConfirmation\", function() { return getConfirmation; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"supportsHistory\", function() { return supportsHistory; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"supportsPopStateOnHashChange\", function() { return supportsPopStateOnHashChange; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"supportsGoWithoutReloadUsingHash\", function() { return supportsGoWithoutReloadUsingHash; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isExtraneousPopstateEvent\", function() { return isExtraneousPopstateEvent; });\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n\nvar addEventListener = function addEventListener(node, event, listener) {\n return node.addEventListener ? node.addEventListener(event, listener, false) : node.attachEvent('on' + event, listener);\n};\n\nvar removeEventListener = function removeEventListener(node, event, listener) {\n return node.removeEventListener ? node.removeEventListener(event, listener, false) : node.detachEvent('on' + event, listener);\n};\n\nvar getConfirmation = function getConfirmation(message, callback) {\n return callback(window.confirm(message));\n}; // eslint-disable-line no-alert\n\n/**\n * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n *\n * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586\n */\nvar supportsHistory = function supportsHistory() {\n var ua = window.navigator.userAgent;\n\n if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;\n\n return window.history && 'pushState' in window.history;\n};\n\n/**\n * Returns true if browser fires popstate on hash change.\n * IE10 and IE11 do not.\n */\nvar supportsPopStateOnHashChange = function supportsPopStateOnHashChange() {\n return window.navigator.userAgent.indexOf('Trident') === -1;\n};\n\n/**\n * Returns false if using go(n) with hash history causes a full page reload.\n */\nvar supportsGoWithoutReloadUsingHash = function supportsGoWithoutReloadUsingHash() {\n return window.navigator.userAgent.indexOf('Firefox') === -1;\n};\n\n/**\n * Returns true if a given popstate event is an extraneous WebKit event.\n * Accounts for the fact that Chrome on iOS fires real popstate events\n * containing undefined state when pressing the back button.\n */\nvar isExtraneousPopstateEvent = function isExtraneousPopstateEvent(event) {\n return event.state === undefined && navigator.userAgent.indexOf('CriOS') === -1;\n};\n\n//# sourceURL=webpack:///./node_modules/history/es/DOMUtils.js?"); + +/***/ }), + +/***/ "./node_modules/history/es/LocationUtils.js": +/*!**************************************************!*\ + !*** ./node_modules/history/es/LocationUtils.js ***! + \**************************************************/ +/*! exports provided: createLocation, locationsAreEqual */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"createLocation\", function() { return createLocation; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"locationsAreEqual\", function() { return locationsAreEqual; });\n/* harmony import */ var resolve_pathname__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! resolve-pathname */ \"./node_modules/resolve-pathname/index.js\");\n/* harmony import */ var value_equal__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! value-equal */ \"./node_modules/value-equal/index.js\");\n/* harmony import */ var _PathUtils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./PathUtils */ \"./node_modules/history/es/PathUtils.js\");\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\n\n\n\n\nvar createLocation = function createLocation(path, state, key, currentLocation) {\n var location = void 0;\n if (typeof path === 'string') {\n // Two-arg form: push(path, state)\n location = Object(_PathUtils__WEBPACK_IMPORTED_MODULE_2__[\"parsePath\"])(path);\n location.state = state;\n } else {\n // One-arg form: push(location)\n location = _extends({}, path);\n\n if (location.pathname === undefined) location.pathname = '';\n\n if (location.search) {\n if (location.search.charAt(0) !== '?') location.search = '?' + location.search;\n } else {\n location.search = '';\n }\n\n if (location.hash) {\n if (location.hash.charAt(0) !== '#') location.hash = '#' + location.hash;\n } else {\n location.hash = '';\n }\n\n if (state !== undefined && location.state === undefined) location.state = state;\n }\n\n try {\n location.pathname = decodeURI(location.pathname);\n } catch (e) {\n if (e instanceof URIError) {\n throw new URIError('Pathname \"' + location.pathname + '\" could not be decoded. ' + 'This is likely caused by an invalid percent-encoding.');\n } else {\n throw e;\n }\n }\n\n if (key) location.key = key;\n\n if (currentLocation) {\n // Resolve incomplete/relative pathname relative to current location.\n if (!location.pathname) {\n location.pathname = currentLocation.pathname;\n } else if (location.pathname.charAt(0) !== '/') {\n location.pathname = Object(resolve_pathname__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(location.pathname, currentLocation.pathname);\n }\n } else {\n // When there is no prior location and pathname is empty, set it to /\n if (!location.pathname) {\n location.pathname = '/';\n }\n }\n\n return location;\n};\n\nvar locationsAreEqual = function locationsAreEqual(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && a.key === b.key && Object(value_equal__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(a.state, b.state);\n};\n\n//# sourceURL=webpack:///./node_modules/history/es/LocationUtils.js?"); + +/***/ }), + +/***/ "./node_modules/history/es/PathUtils.js": +/*!**********************************************!*\ + !*** ./node_modules/history/es/PathUtils.js ***! + \**********************************************/ +/*! exports provided: addLeadingSlash, stripLeadingSlash, hasBasename, stripBasename, stripTrailingSlash, parsePath, createPath */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"addLeadingSlash\", function() { return addLeadingSlash; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"stripLeadingSlash\", function() { return stripLeadingSlash; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"hasBasename\", function() { return hasBasename; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"stripBasename\", function() { return stripBasename; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"stripTrailingSlash\", function() { return stripTrailingSlash; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"parsePath\", function() { return parsePath; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"createPath\", function() { return createPath; });\nvar addLeadingSlash = function addLeadingSlash(path) {\n return path.charAt(0) === '/' ? path : '/' + path;\n};\n\nvar stripLeadingSlash = function stripLeadingSlash(path) {\n return path.charAt(0) === '/' ? path.substr(1) : path;\n};\n\nvar hasBasename = function hasBasename(path, prefix) {\n return new RegExp('^' + prefix + '(\\\\/|\\\\?|#|$)', 'i').test(path);\n};\n\nvar stripBasename = function stripBasename(path, prefix) {\n return hasBasename(path, prefix) ? path.substr(prefix.length) : path;\n};\n\nvar stripTrailingSlash = function stripTrailingSlash(path) {\n return path.charAt(path.length - 1) === '/' ? path.slice(0, -1) : path;\n};\n\nvar parsePath = function parsePath(path) {\n var pathname = path || '/';\n var search = '';\n var hash = '';\n\n var hashIndex = pathname.indexOf('#');\n if (hashIndex !== -1) {\n hash = pathname.substr(hashIndex);\n pathname = pathname.substr(0, hashIndex);\n }\n\n var searchIndex = pathname.indexOf('?');\n if (searchIndex !== -1) {\n search = pathname.substr(searchIndex);\n pathname = pathname.substr(0, searchIndex);\n }\n\n return {\n pathname: pathname,\n search: search === '?' ? '' : search,\n hash: hash === '#' ? '' : hash\n };\n};\n\nvar createPath = function createPath(location) {\n var pathname = location.pathname,\n search = location.search,\n hash = location.hash;\n\n\n var path = pathname || '/';\n\n if (search && search !== '?') path += search.charAt(0) === '?' ? search : '?' + search;\n\n if (hash && hash !== '#') path += hash.charAt(0) === '#' ? hash : '#' + hash;\n\n return path;\n};\n\n//# sourceURL=webpack:///./node_modules/history/es/PathUtils.js?"); + +/***/ }), + +/***/ "./node_modules/history/es/createBrowserHistory.js": +/*!*********************************************************!*\ + !*** ./node_modules/history/es/createBrowserHistory.js ***! + \*********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var warning__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! warning */ \"./node_modules/warning/browser.js\");\n/* harmony import */ var warning__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(warning__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var invariant__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! invariant */ \"./node_modules/invariant/browser.js\");\n/* harmony import */ var invariant__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(invariant__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _LocationUtils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./LocationUtils */ \"./node_modules/history/es/LocationUtils.js\");\n/* harmony import */ var _PathUtils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./PathUtils */ \"./node_modules/history/es/PathUtils.js\");\n/* harmony import */ var _createTransitionManager__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./createTransitionManager */ \"./node_modules/history/es/createTransitionManager.js\");\n/* harmony import */ var _DOMUtils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./DOMUtils */ \"./node_modules/history/es/DOMUtils.js\");\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\n\n\n\n\n\n\n\nvar PopStateEvent = 'popstate';\nvar HashChangeEvent = 'hashchange';\n\nvar getHistoryState = function getHistoryState() {\n try {\n return window.history.state || {};\n } catch (e) {\n // IE 11 sometimes throws when accessing window.history.state\n // See https://github.com/ReactTraining/history/pull/289\n return {};\n }\n};\n\n/**\n * Creates a history object that uses the HTML5 history API including\n * pushState, replaceState, and the popstate event.\n */\nvar createBrowserHistory = function createBrowserHistory() {\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n invariant__WEBPACK_IMPORTED_MODULE_1___default()(_DOMUtils__WEBPACK_IMPORTED_MODULE_5__[\"canUseDOM\"], 'Browser history needs a DOM');\n\n var globalHistory = window.history;\n var canUseHistory = Object(_DOMUtils__WEBPACK_IMPORTED_MODULE_5__[\"supportsHistory\"])();\n var needsHashChangeListener = !Object(_DOMUtils__WEBPACK_IMPORTED_MODULE_5__[\"supportsPopStateOnHashChange\"])();\n\n var _props$forceRefresh = props.forceRefresh,\n forceRefresh = _props$forceRefresh === undefined ? false : _props$forceRefresh,\n _props$getUserConfirm = props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === undefined ? _DOMUtils__WEBPACK_IMPORTED_MODULE_5__[\"getConfirmation\"] : _props$getUserConfirm,\n _props$keyLength = props.keyLength,\n keyLength = _props$keyLength === undefined ? 6 : _props$keyLength;\n\n var basename = props.basename ? Object(_PathUtils__WEBPACK_IMPORTED_MODULE_3__[\"stripTrailingSlash\"])(Object(_PathUtils__WEBPACK_IMPORTED_MODULE_3__[\"addLeadingSlash\"])(props.basename)) : '';\n\n var getDOMLocation = function getDOMLocation(historyState) {\n var _ref = historyState || {},\n key = _ref.key,\n state = _ref.state;\n\n var _window$location = window.location,\n pathname = _window$location.pathname,\n search = _window$location.search,\n hash = _window$location.hash;\n\n\n var path = pathname + search + hash;\n\n warning__WEBPACK_IMPORTED_MODULE_0___default()(!basename || Object(_PathUtils__WEBPACK_IMPORTED_MODULE_3__[\"hasBasename\"])(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".');\n\n if (basename) path = Object(_PathUtils__WEBPACK_IMPORTED_MODULE_3__[\"stripBasename\"])(path, basename);\n\n return Object(_LocationUtils__WEBPACK_IMPORTED_MODULE_2__[\"createLocation\"])(path, state, key);\n };\n\n var createKey = function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n };\n\n var transitionManager = Object(_createTransitionManager__WEBPACK_IMPORTED_MODULE_4__[\"default\"])();\n\n var setState = function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n\n transitionManager.notifyListeners(history.location, history.action);\n };\n\n var handlePopState = function handlePopState(event) {\n // Ignore extraneous popstate events in WebKit.\n if (Object(_DOMUtils__WEBPACK_IMPORTED_MODULE_5__[\"isExtraneousPopstateEvent\"])(event)) return;\n\n handlePop(getDOMLocation(event.state));\n };\n\n var handleHashChange = function handleHashChange() {\n handlePop(getDOMLocation(getHistoryState()));\n };\n\n var forceNextPop = false;\n\n var handlePop = function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({ action: action, location: location });\n } else {\n revertPop(location);\n }\n });\n }\n };\n\n var revertPop = function revertPop(fromLocation) {\n var toLocation = history.location;\n\n // TODO: We could probably make this more reliable by\n // keeping a list of keys we've seen in sessionStorage.\n // Instead, we just default to 0 for keys we don't know.\n\n var toIndex = allKeys.indexOf(toLocation.key);\n\n if (toIndex === -1) toIndex = 0;\n\n var fromIndex = allKeys.indexOf(fromLocation.key);\n\n if (fromIndex === -1) fromIndex = 0;\n\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n };\n\n var initialLocation = getDOMLocation(getHistoryState());\n var allKeys = [initialLocation.key];\n\n // Public interface\n\n var createHref = function createHref(location) {\n return basename + Object(_PathUtils__WEBPACK_IMPORTED_MODULE_3__[\"createPath\"])(location);\n };\n\n var push = function push(path, state) {\n warning__WEBPACK_IMPORTED_MODULE_0___default()(!((typeof path === 'undefined' ? 'undefined' : _typeof(path)) === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored');\n\n var action = 'PUSH';\n var location = Object(_LocationUtils__WEBPACK_IMPORTED_MODULE_2__[\"createLocation\"])(path, state, createKey(), history.location);\n\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n\n if (canUseHistory) {\n globalHistory.pushState({ key: key, state: state }, null, href);\n\n if (forceRefresh) {\n window.location.href = href;\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n var nextKeys = allKeys.slice(0, prevIndex === -1 ? 0 : prevIndex + 1);\n\n nextKeys.push(location.key);\n allKeys = nextKeys;\n\n setState({ action: action, location: location });\n }\n } else {\n warning__WEBPACK_IMPORTED_MODULE_0___default()(state === undefined, 'Browser history cannot push state in browsers that do not support HTML5 history');\n\n window.location.href = href;\n }\n });\n };\n\n var replace = function replace(path, state) {\n warning__WEBPACK_IMPORTED_MODULE_0___default()(!((typeof path === 'undefined' ? 'undefined' : _typeof(path)) === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored');\n\n var action = 'REPLACE';\n var location = Object(_LocationUtils__WEBPACK_IMPORTED_MODULE_2__[\"createLocation\"])(path, state, createKey(), history.location);\n\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n\n if (canUseHistory) {\n globalHistory.replaceState({ key: key, state: state }, null, href);\n\n if (forceRefresh) {\n window.location.replace(href);\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n\n if (prevIndex !== -1) allKeys[prevIndex] = location.key;\n\n setState({ action: action, location: location });\n }\n } else {\n warning__WEBPACK_IMPORTED_MODULE_0___default()(state === undefined, 'Browser history cannot replace state in browsers that do not support HTML5 history');\n\n window.location.replace(href);\n }\n });\n };\n\n var go = function go(n) {\n globalHistory.go(n);\n };\n\n var goBack = function goBack() {\n return go(-1);\n };\n\n var goForward = function goForward() {\n return go(1);\n };\n\n var listenerCount = 0;\n\n var checkDOMListeners = function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1) {\n Object(_DOMUtils__WEBPACK_IMPORTED_MODULE_5__[\"addEventListener\"])(window, PopStateEvent, handlePopState);\n\n if (needsHashChangeListener) Object(_DOMUtils__WEBPACK_IMPORTED_MODULE_5__[\"addEventListener\"])(window, HashChangeEvent, handleHashChange);\n } else if (listenerCount === 0) {\n Object(_DOMUtils__WEBPACK_IMPORTED_MODULE_5__[\"removeEventListener\"])(window, PopStateEvent, handlePopState);\n\n if (needsHashChangeListener) Object(_DOMUtils__WEBPACK_IMPORTED_MODULE_5__[\"removeEventListener\"])(window, HashChangeEvent, handleHashChange);\n }\n };\n\n var isBlocked = false;\n\n var block = function block() {\n var prompt = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n };\n\n var listen = function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n };\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n\n return history;\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (createBrowserHistory);\n\n//# sourceURL=webpack:///./node_modules/history/es/createBrowserHistory.js?"); + +/***/ }), + +/***/ "./node_modules/history/es/createHashHistory.js": +/*!******************************************************!*\ + !*** ./node_modules/history/es/createHashHistory.js ***! + \******************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var warning__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! warning */ \"./node_modules/warning/browser.js\");\n/* harmony import */ var warning__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(warning__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var invariant__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! invariant */ \"./node_modules/invariant/browser.js\");\n/* harmony import */ var invariant__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(invariant__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _LocationUtils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./LocationUtils */ \"./node_modules/history/es/LocationUtils.js\");\n/* harmony import */ var _PathUtils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./PathUtils */ \"./node_modules/history/es/PathUtils.js\");\n/* harmony import */ var _createTransitionManager__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./createTransitionManager */ \"./node_modules/history/es/createTransitionManager.js\");\n/* harmony import */ var _DOMUtils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./DOMUtils */ \"./node_modules/history/es/DOMUtils.js\");\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\n\n\n\n\n\n\n\nvar HashChangeEvent = 'hashchange';\n\nvar HashPathCoders = {\n hashbang: {\n encodePath: function encodePath(path) {\n return path.charAt(0) === '!' ? path : '!/' + Object(_PathUtils__WEBPACK_IMPORTED_MODULE_3__[\"stripLeadingSlash\"])(path);\n },\n decodePath: function decodePath(path) {\n return path.charAt(0) === '!' ? path.substr(1) : path;\n }\n },\n noslash: {\n encodePath: _PathUtils__WEBPACK_IMPORTED_MODULE_3__[\"stripLeadingSlash\"],\n decodePath: _PathUtils__WEBPACK_IMPORTED_MODULE_3__[\"addLeadingSlash\"]\n },\n slash: {\n encodePath: _PathUtils__WEBPACK_IMPORTED_MODULE_3__[\"addLeadingSlash\"],\n decodePath: _PathUtils__WEBPACK_IMPORTED_MODULE_3__[\"addLeadingSlash\"]\n }\n};\n\nvar getHashPath = function getHashPath() {\n // We can't use window.location.hash here because it's not\n // consistent across browsers - Firefox will pre-decode it!\n var href = window.location.href;\n var hashIndex = href.indexOf('#');\n return hashIndex === -1 ? '' : href.substring(hashIndex + 1);\n};\n\nvar pushHashPath = function pushHashPath(path) {\n return window.location.hash = path;\n};\n\nvar replaceHashPath = function replaceHashPath(path) {\n var hashIndex = window.location.href.indexOf('#');\n\n window.location.replace(window.location.href.slice(0, hashIndex >= 0 ? hashIndex : 0) + '#' + path);\n};\n\nvar createHashHistory = function createHashHistory() {\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n invariant__WEBPACK_IMPORTED_MODULE_1___default()(_DOMUtils__WEBPACK_IMPORTED_MODULE_5__[\"canUseDOM\"], 'Hash history needs a DOM');\n\n var globalHistory = window.history;\n var canGoWithoutReload = Object(_DOMUtils__WEBPACK_IMPORTED_MODULE_5__[\"supportsGoWithoutReloadUsingHash\"])();\n\n var _props$getUserConfirm = props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === undefined ? _DOMUtils__WEBPACK_IMPORTED_MODULE_5__[\"getConfirmation\"] : _props$getUserConfirm,\n _props$hashType = props.hashType,\n hashType = _props$hashType === undefined ? 'slash' : _props$hashType;\n\n var basename = props.basename ? Object(_PathUtils__WEBPACK_IMPORTED_MODULE_3__[\"stripTrailingSlash\"])(Object(_PathUtils__WEBPACK_IMPORTED_MODULE_3__[\"addLeadingSlash\"])(props.basename)) : '';\n\n var _HashPathCoders$hashT = HashPathCoders[hashType],\n encodePath = _HashPathCoders$hashT.encodePath,\n decodePath = _HashPathCoders$hashT.decodePath;\n\n\n var getDOMLocation = function getDOMLocation() {\n var path = decodePath(getHashPath());\n\n warning__WEBPACK_IMPORTED_MODULE_0___default()(!basename || Object(_PathUtils__WEBPACK_IMPORTED_MODULE_3__[\"hasBasename\"])(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".');\n\n if (basename) path = Object(_PathUtils__WEBPACK_IMPORTED_MODULE_3__[\"stripBasename\"])(path, basename);\n\n return Object(_LocationUtils__WEBPACK_IMPORTED_MODULE_2__[\"createLocation\"])(path);\n };\n\n var transitionManager = Object(_createTransitionManager__WEBPACK_IMPORTED_MODULE_4__[\"default\"])();\n\n var setState = function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n\n transitionManager.notifyListeners(history.location, history.action);\n };\n\n var forceNextPop = false;\n var ignorePath = null;\n\n var handleHashChange = function handleHashChange() {\n var path = getHashPath();\n var encodedPath = encodePath(path);\n\n if (path !== encodedPath) {\n // Ensure we always have a properly-encoded hash.\n replaceHashPath(encodedPath);\n } else {\n var location = getDOMLocation();\n var prevLocation = history.location;\n\n if (!forceNextPop && Object(_LocationUtils__WEBPACK_IMPORTED_MODULE_2__[\"locationsAreEqual\"])(prevLocation, location)) return; // A hashchange doesn't always == location change.\n\n if (ignorePath === Object(_PathUtils__WEBPACK_IMPORTED_MODULE_3__[\"createPath\"])(location)) return; // Ignore this change; we already setState in push/replace.\n\n ignorePath = null;\n\n handlePop(location);\n }\n };\n\n var handlePop = function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({ action: action, location: location });\n } else {\n revertPop(location);\n }\n });\n }\n };\n\n var revertPop = function revertPop(fromLocation) {\n var toLocation = history.location;\n\n // TODO: We could probably make this more reliable by\n // keeping a list of paths we've seen in sessionStorage.\n // Instead, we just default to 0 for paths we don't know.\n\n var toIndex = allPaths.lastIndexOf(Object(_PathUtils__WEBPACK_IMPORTED_MODULE_3__[\"createPath\"])(toLocation));\n\n if (toIndex === -1) toIndex = 0;\n\n var fromIndex = allPaths.lastIndexOf(Object(_PathUtils__WEBPACK_IMPORTED_MODULE_3__[\"createPath\"])(fromLocation));\n\n if (fromIndex === -1) fromIndex = 0;\n\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n };\n\n // Ensure the hash is encoded properly before doing anything else.\n var path = getHashPath();\n var encodedPath = encodePath(path);\n\n if (path !== encodedPath) replaceHashPath(encodedPath);\n\n var initialLocation = getDOMLocation();\n var allPaths = [Object(_PathUtils__WEBPACK_IMPORTED_MODULE_3__[\"createPath\"])(initialLocation)];\n\n // Public interface\n\n var createHref = function createHref(location) {\n return '#' + encodePath(basename + Object(_PathUtils__WEBPACK_IMPORTED_MODULE_3__[\"createPath\"])(location));\n };\n\n var push = function push(path, state) {\n warning__WEBPACK_IMPORTED_MODULE_0___default()(state === undefined, 'Hash history cannot push state; it is ignored');\n\n var action = 'PUSH';\n var location = Object(_LocationUtils__WEBPACK_IMPORTED_MODULE_2__[\"createLocation\"])(path, undefined, undefined, history.location);\n\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n\n var path = Object(_PathUtils__WEBPACK_IMPORTED_MODULE_3__[\"createPath\"])(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a PUSH, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n pushHashPath(encodedPath);\n\n var prevIndex = allPaths.lastIndexOf(Object(_PathUtils__WEBPACK_IMPORTED_MODULE_3__[\"createPath\"])(history.location));\n var nextPaths = allPaths.slice(0, prevIndex === -1 ? 0 : prevIndex + 1);\n\n nextPaths.push(path);\n allPaths = nextPaths;\n\n setState({ action: action, location: location });\n } else {\n warning__WEBPACK_IMPORTED_MODULE_0___default()(false, 'Hash history cannot PUSH the same path; a new entry will not be added to the history stack');\n\n setState();\n }\n });\n };\n\n var replace = function replace(path, state) {\n warning__WEBPACK_IMPORTED_MODULE_0___default()(state === undefined, 'Hash history cannot replace state; it is ignored');\n\n var action = 'REPLACE';\n var location = Object(_LocationUtils__WEBPACK_IMPORTED_MODULE_2__[\"createLocation\"])(path, undefined, undefined, history.location);\n\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n\n var path = Object(_PathUtils__WEBPACK_IMPORTED_MODULE_3__[\"createPath\"])(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a REPLACE, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n replaceHashPath(encodedPath);\n }\n\n var prevIndex = allPaths.indexOf(Object(_PathUtils__WEBPACK_IMPORTED_MODULE_3__[\"createPath\"])(history.location));\n\n if (prevIndex !== -1) allPaths[prevIndex] = path;\n\n setState({ action: action, location: location });\n });\n };\n\n var go = function go(n) {\n warning__WEBPACK_IMPORTED_MODULE_0___default()(canGoWithoutReload, 'Hash history go(n) causes a full page reload in this browser');\n\n globalHistory.go(n);\n };\n\n var goBack = function goBack() {\n return go(-1);\n };\n\n var goForward = function goForward() {\n return go(1);\n };\n\n var listenerCount = 0;\n\n var checkDOMListeners = function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1) {\n Object(_DOMUtils__WEBPACK_IMPORTED_MODULE_5__[\"addEventListener\"])(window, HashChangeEvent, handleHashChange);\n } else if (listenerCount === 0) {\n Object(_DOMUtils__WEBPACK_IMPORTED_MODULE_5__[\"removeEventListener\"])(window, HashChangeEvent, handleHashChange);\n }\n };\n\n var isBlocked = false;\n\n var block = function block() {\n var prompt = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n };\n\n var listen = function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n };\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n\n return history;\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (createHashHistory);\n\n//# sourceURL=webpack:///./node_modules/history/es/createHashHistory.js?"); + +/***/ }), + +/***/ "./node_modules/history/es/createMemoryHistory.js": +/*!********************************************************!*\ + !*** ./node_modules/history/es/createMemoryHistory.js ***! + \********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var warning__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! warning */ \"./node_modules/warning/browser.js\");\n/* harmony import */ var warning__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(warning__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _PathUtils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./PathUtils */ \"./node_modules/history/es/PathUtils.js\");\n/* harmony import */ var _LocationUtils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./LocationUtils */ \"./node_modules/history/es/LocationUtils.js\");\n/* harmony import */ var _createTransitionManager__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./createTransitionManager */ \"./node_modules/history/es/createTransitionManager.js\");\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\n\n\n\n\n\nvar clamp = function clamp(n, lowerBound, upperBound) {\n return Math.min(Math.max(n, lowerBound), upperBound);\n};\n\n/**\n * Creates a history object that stores locations in memory.\n */\nvar createMemoryHistory = function createMemoryHistory() {\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var getUserConfirmation = props.getUserConfirmation,\n _props$initialEntries = props.initialEntries,\n initialEntries = _props$initialEntries === undefined ? ['/'] : _props$initialEntries,\n _props$initialIndex = props.initialIndex,\n initialIndex = _props$initialIndex === undefined ? 0 : _props$initialIndex,\n _props$keyLength = props.keyLength,\n keyLength = _props$keyLength === undefined ? 6 : _props$keyLength;\n\n\n var transitionManager = Object(_createTransitionManager__WEBPACK_IMPORTED_MODULE_3__[\"default\"])();\n\n var setState = function setState(nextState) {\n _extends(history, nextState);\n\n history.length = history.entries.length;\n\n transitionManager.notifyListeners(history.location, history.action);\n };\n\n var createKey = function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n };\n\n var index = clamp(initialIndex, 0, initialEntries.length - 1);\n var entries = initialEntries.map(function (entry) {\n return typeof entry === 'string' ? Object(_LocationUtils__WEBPACK_IMPORTED_MODULE_2__[\"createLocation\"])(entry, undefined, createKey()) : Object(_LocationUtils__WEBPACK_IMPORTED_MODULE_2__[\"createLocation\"])(entry, undefined, entry.key || createKey());\n });\n\n // Public interface\n\n var createHref = _PathUtils__WEBPACK_IMPORTED_MODULE_1__[\"createPath\"];\n\n var push = function push(path, state) {\n warning__WEBPACK_IMPORTED_MODULE_0___default()(!((typeof path === 'undefined' ? 'undefined' : _typeof(path)) === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored');\n\n var action = 'PUSH';\n var location = Object(_LocationUtils__WEBPACK_IMPORTED_MODULE_2__[\"createLocation\"])(path, state, createKey(), history.location);\n\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n\n var prevIndex = history.index;\n var nextIndex = prevIndex + 1;\n\n var nextEntries = history.entries.slice(0);\n if (nextEntries.length > nextIndex) {\n nextEntries.splice(nextIndex, nextEntries.length - nextIndex, location);\n } else {\n nextEntries.push(location);\n }\n\n setState({\n action: action,\n location: location,\n index: nextIndex,\n entries: nextEntries\n });\n });\n };\n\n var replace = function replace(path, state) {\n warning__WEBPACK_IMPORTED_MODULE_0___default()(!((typeof path === 'undefined' ? 'undefined' : _typeof(path)) === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored');\n\n var action = 'REPLACE';\n var location = Object(_LocationUtils__WEBPACK_IMPORTED_MODULE_2__[\"createLocation\"])(path, state, createKey(), history.location);\n\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n\n history.entries[history.index] = location;\n\n setState({ action: action, location: location });\n });\n };\n\n var go = function go(n) {\n var nextIndex = clamp(history.index + n, 0, history.entries.length - 1);\n\n var action = 'POP';\n var location = history.entries[nextIndex];\n\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location,\n index: nextIndex\n });\n } else {\n // Mimic the behavior of DOM histories by\n // causing a render after a cancelled POP.\n setState();\n }\n });\n };\n\n var goBack = function goBack() {\n return go(-1);\n };\n\n var goForward = function goForward() {\n return go(1);\n };\n\n var canGo = function canGo(n) {\n var nextIndex = history.index + n;\n return nextIndex >= 0 && nextIndex < history.entries.length;\n };\n\n var block = function block() {\n var prompt = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n return transitionManager.setPrompt(prompt);\n };\n\n var listen = function listen(listener) {\n return transitionManager.appendListener(listener);\n };\n\n var history = {\n length: entries.length,\n action: 'POP',\n location: entries[index],\n index: index,\n entries: entries,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n canGo: canGo,\n block: block,\n listen: listen\n };\n\n return history;\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (createMemoryHistory);\n\n//# sourceURL=webpack:///./node_modules/history/es/createMemoryHistory.js?"); + +/***/ }), + +/***/ "./node_modules/history/es/createTransitionManager.js": +/*!************************************************************!*\ + !*** ./node_modules/history/es/createTransitionManager.js ***! + \************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var warning__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! warning */ \"./node_modules/warning/browser.js\");\n/* harmony import */ var warning__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(warning__WEBPACK_IMPORTED_MODULE_0__);\n\n\nvar createTransitionManager = function createTransitionManager() {\n var prompt = null;\n\n var setPrompt = function setPrompt(nextPrompt) {\n warning__WEBPACK_IMPORTED_MODULE_0___default()(prompt == null, 'A history supports only one prompt at a time');\n\n prompt = nextPrompt;\n\n return function () {\n if (prompt === nextPrompt) prompt = null;\n };\n };\n\n var confirmTransitionTo = function confirmTransitionTo(location, action, getUserConfirmation, callback) {\n // TODO: If another transition starts while we're still confirming\n // the previous one, we may end up in a weird state. Figure out the\n // best way to handle this.\n if (prompt != null) {\n var result = typeof prompt === 'function' ? prompt(location, action) : prompt;\n\n if (typeof result === 'string') {\n if (typeof getUserConfirmation === 'function') {\n getUserConfirmation(result, callback);\n } else {\n warning__WEBPACK_IMPORTED_MODULE_0___default()(false, 'A history needs a getUserConfirmation function in order to use a prompt message');\n\n callback(true);\n }\n } else {\n // Return false from a transition hook to cancel the transition.\n callback(result !== false);\n }\n } else {\n callback(true);\n }\n };\n\n var listeners = [];\n\n var appendListener = function appendListener(fn) {\n var isActive = true;\n\n var listener = function listener() {\n if (isActive) fn.apply(undefined, arguments);\n };\n\n listeners.push(listener);\n\n return function () {\n isActive = false;\n listeners = listeners.filter(function (item) {\n return item !== listener;\n });\n };\n };\n\n var notifyListeners = function notifyListeners() {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n listeners.forEach(function (listener) {\n return listener.apply(undefined, args);\n });\n };\n\n return {\n setPrompt: setPrompt,\n confirmTransitionTo: confirmTransitionTo,\n appendListener: appendListener,\n notifyListeners: notifyListeners\n };\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (createTransitionManager);\n\n//# sourceURL=webpack:///./node_modules/history/es/createTransitionManager.js?"); + +/***/ }), + +/***/ "./node_modules/history/es/index.js": +/*!******************************************!*\ + !*** ./node_modules/history/es/index.js ***! + \******************************************/ +/*! exports provided: createBrowserHistory, createHashHistory, createMemoryHistory, createLocation, locationsAreEqual, parsePath, createPath */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _createBrowserHistory__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./createBrowserHistory */ \"./node_modules/history/es/createBrowserHistory.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"createBrowserHistory\", function() { return _createBrowserHistory__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n/* harmony import */ var _createHashHistory__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./createHashHistory */ \"./node_modules/history/es/createHashHistory.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"createHashHistory\", function() { return _createHashHistory__WEBPACK_IMPORTED_MODULE_1__[\"default\"]; });\n\n/* harmony import */ var _createMemoryHistory__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./createMemoryHistory */ \"./node_modules/history/es/createMemoryHistory.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"createMemoryHistory\", function() { return _createMemoryHistory__WEBPACK_IMPORTED_MODULE_2__[\"default\"]; });\n\n/* harmony import */ var _LocationUtils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./LocationUtils */ \"./node_modules/history/es/LocationUtils.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"createLocation\", function() { return _LocationUtils__WEBPACK_IMPORTED_MODULE_3__[\"createLocation\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"locationsAreEqual\", function() { return _LocationUtils__WEBPACK_IMPORTED_MODULE_3__[\"locationsAreEqual\"]; });\n\n/* harmony import */ var _PathUtils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./PathUtils */ \"./node_modules/history/es/PathUtils.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"parsePath\", function() { return _PathUtils__WEBPACK_IMPORTED_MODULE_4__[\"parsePath\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"createPath\", function() { return _PathUtils__WEBPACK_IMPORTED_MODULE_4__[\"createPath\"]; });\n\n\n\n\n\n\n\n\n\n\n\n//# sourceURL=webpack:///./node_modules/history/es/index.js?"); + +/***/ }), + +/***/ "./node_modules/hoist-non-react-statics/index.js": +/*!*******************************************************!*\ + !*** ./node_modules/hoist-non-react-statics/index.js ***! + \*******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\n\n\nvar REACT_STATICS = {\n childContextTypes: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\n\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = getPrototypeOf && getPrototypeOf(Object);\n\nmodule.exports = function hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') { // don't hoist over string (html) components\n\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n if (!REACT_STATICS[key] && !KNOWN_STATICS[key] && (!blacklist || !blacklist[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n try { // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n\n return targetComponent;\n }\n\n return targetComponent;\n};\n\n\n//# sourceURL=webpack:///./node_modules/hoist-non-react-statics/index.js?"); + +/***/ }), + +/***/ "./node_modules/html-tokenize/index.js": +/*!*********************************************!*\ + !*** ./node_modules/html-tokenize/index.js ***! + \*********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +eval("/* WEBPACK VAR INJECTION */(function(Buffer) {var bufferFrom = __webpack_require__(/*! buffer-from */ \"./node_modules/buffer-from/index.js\")\nvar Transform = __webpack_require__(/*! readable-stream */ \"./node_modules/html-tokenize/node_modules/readable-stream/readable.js\").Transform;\nvar inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n\ninherits(Tokenize, Transform);\nmodule.exports = Tokenize;\n\nvar codes = {\n lt: '<'.charCodeAt(0),\n gt: '>'.charCodeAt(0),\n slash: '/'.charCodeAt(0),\n dquote: '\"'.charCodeAt(0),\n squote: \"'\".charCodeAt(0),\n equal: '='.charCodeAt(0)\n};\n\nvar strings = {\n endScript: bufferFrom(''),\n cdata: bufferFrom('')\n};\n\nvar states = {\n 'TagNameState': 1,\n 'AttributeNameState': 2,\n 'BeforeAttributeValueState': 3,\n 'AttributeValueState':4\n}\n\nfunction Tokenize () {\n if (!(this instanceof Tokenize)) return new Tokenize;\n Transform.call(this);\n this._readableState.objectMode = true;\n this.state = 'text';\n this.tagState = null;\n this.quoteState = null;\n this.raw = null;\n this.buffers = [];\n this._last = [];\n}\n\nTokenize.prototype._transform = function (buf, enc, next) {\n var i = 0;\n var offset = 0;\n \n if (this._prev) {\n buf = Buffer.concat([ this._prev, buf ]);\n i = this._prev.length - 1;\n offset = this._offset;\n this._prev = null;\n this._offset = 0;\n }\n \n for (; i < buf.length; i++) {\n var b = buf[i];\n this._last.push(b);\n if (this._last.length > 9) this._last.shift();\n // detect end of raw character mode (comment, script,..)\n if (this.raw) {\n var parts = this._testRaw(buf, offset, i);\n if (parts) {\n this.push([ 'text', parts[0] ]);\n \n if (this.raw === strings.endComment\n || this.raw === strings.endCdata) {\n this.state = 'text';\n this.buffers = [];\n this.push([ 'close', parts[1] ]);\n }\n else {\n this.state = 'open';\n this.buffers = [ parts[1] ];\n }\n \n this.raw = null;\n offset = i + 1;\n }\n }\n // ask for more data if last byte is '<' \n else if (this.state === 'text' && b === codes.lt\n && i === buf.length - 1) {\n this._prev = buf;\n this._offset = offset;\n return next();\n }\n // detect a tag opening\n else if (this.state === 'text' && b === codes.lt\n && !isWhiteSpace(buf[i+1])) {\n if (i > 0 && i - offset > 0) {\n this.buffers.push(buf.slice(offset, i));\n }\n offset = i;\n this.state = 'open';\n this.tagState = states.TagNameState;\n this._pushState('text');\n }\n else if (\n this.tagState === states.TagNameState &&\n isWhiteSpace(b)\n ) {\n this.tagState = states.AttributeNameState\n }\n else if (\n this.tagState === states.AttributeNameState &&\n b === codes.equal\n ) {\n this.tagState = states.BeforeAttributeValueState\n }\n else if (\n this.tagState === states.BeforeAttributeValueState &&\n isWhiteSpace(b)\n ) {}\n else if (\n this.tagState === states.BeforeAttributeValueState\n && b !== codes.gt\n ) {\n this.tagState = states.AttributeValueState;\n if (b === codes.dquote) {\n this.quoteState = 'double';\n } else if (b === codes.squote) {\n this.quoteState = 'single';\n } else {\n this.quoteState = null;\n }\n }\n else if (\n this.tagState === states.AttributeValueState &&\n !this.quoteState &&\n isWhiteSpace(b)\n ) {\n this.tagState = states.AttributeNameState;\n }\n else if (\n this.tagState === states.AttributeValueState &&\n this.quoteState === 'double' &&\n b === codes.dquote\n ) {\n this.quoteState = null;\n this.tagState = states.AttributeNameState;\n }\n else if (\n this.tagState === states.AttributeValueState &&\n this.quoteState === 'single' &&\n b === codes.squote\n ) {\n this.quoteState = null;\n this.tagState = states.AttributeNameState;\n }\n else if (this.state === 'open' && b === codes.gt && !this.quoteState) {\n this.buffers.push(buf.slice(offset, i + 1));\n offset = i + 1;\n this.state = 'text';\n this.tagState = null;\n if (this._getChar(1) === codes.slash) {\n this._pushState('close');\n }\n else {\n var tag = this._getTag();\n if (tag === 'script') this.raw = strings.endScript;\n if (tag === 'style') this.raw = strings.endStyle;\n if (tag === 'title') this.raw = strings.endTitle;\n this._pushState('open');\n }\n }\n else if (this.state === 'open' && compare(this._last, strings.comment)) {\n this.buffers.push(buf.slice(offset, i + 1));\n offset = i + 1;\n this.state = 'text';\n this.raw = strings.endComment;\n this._pushState('open');\n }\n else if (this.state === 'open' && compare(this._last, strings.cdata)) {\n this.buffers.push(buf.slice(offset, i + 1));\n offset = i + 1;\n this.state = 'text';\n this.raw = strings.endCdata;\n this._pushState('open');\n }\n }\n if (offset < buf.length) this.buffers.push(buf.slice(offset));\n next();\n};\n\nTokenize.prototype._flush = function (next) {\n if (this.state === 'text') this._pushState('text');\n this.push(null);\n next();\n};\n\nTokenize.prototype._pushState = function (ev) {\n if (this.buffers.length === 0) return;\n var buf = Buffer.concat(this.buffers);\n this.buffers = [];\n this.push([ ev, buf ]);\n};\n\nTokenize.prototype._getChar = function (i) {\n var offset = 0;\n for (var j = 0; j < this.buffers.length; j++) {\n var buf = this.buffers[j];\n if (offset + buf.length > i) {\n return buf[i - offset];\n }\n offset += buf;\n }\n};\n\nTokenize.prototype._getTag = function () {\n var offset = 0;\n var tag = '';\n for (var j = 0; j < this.buffers.length; j++) {\n var buf = this.buffers[j];\n for (var k = 0; k < buf.length; k++) {\n if (offset === 0 && k === 0) continue;\n var c = String.fromCharCode(buf[k]);\n if (/[^\\w-!\\[\\]]/.test(c)) {\n return tag.toLowerCase();\n }\n else tag += c;\n }\n offset += buf.length;\n }\n};\n\nTokenize.prototype._testRaw = function (buf, offset, index) {\n var raw = this.raw, last = this._last;\n if (!compare(last, raw)) return;\n \n this.buffers.push(buf.slice(offset, index + 1));\n var buf = Buffer.concat(this.buffers);\n var k = buf.length - raw.length;\n return [ buf.slice(0, k), buf.slice(k) ];\n};\n\nfunction compare (a, b) {\n if (a.length < b.length) return false;\n for (var i=a.length-1, j=b.length-1; i >= 0 && j >= 0; i--, j--) {\n if (lower(a[i]) !== lower(b[j])) return false;\n }\n return true;\n}\n\nfunction lower (n) {\n if (n >= 65 && n <= 90) return n + 32;\n return n;\n}\n\nfunction isWhiteSpace(b) {\n return b === 0x20 || b === 0x09 || b === 0x0A || b === 0x0C || b === 0x0D;\n}\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../buffer/index.js */ \"./node_modules/buffer/index.js\").Buffer))\n\n//# sourceURL=webpack:///./node_modules/html-tokenize/index.js?"); + +/***/ }), + +/***/ "./node_modules/html-tokenize/node_modules/readable-stream/lib/_stream_duplex.js": +/*!***************************************************************************************!*\ + !*** ./node_modules/html-tokenize/node_modules/readable-stream/lib/_stream_duplex.js ***! + \***************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +eval("/* WEBPACK VAR INJECTION */(function(process) {// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n\nmodule.exports = Duplex;\n\n/**/\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n for (var key in obj) keys.push(key);\n return keys;\n}\n/**/\n\n\n/**/\nvar util = __webpack_require__(/*! core-util-is */ \"./node_modules/core-util-is/lib/util.js\");\nutil.inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/**/\n\nvar Readable = __webpack_require__(/*! ./_stream_readable */ \"./node_modules/html-tokenize/node_modules/readable-stream/lib/_stream_readable.js\");\nvar Writable = __webpack_require__(/*! ./_stream_writable */ \"./node_modules/html-tokenize/node_modules/readable-stream/lib/_stream_writable.js\");\n\nutil.inherits(Duplex, Readable);\n\nforEach(objectKeys(Writable.prototype), function(method) {\n if (!Duplex.prototype[method])\n Duplex.prototype[method] = Writable.prototype[method];\n});\n\nfunction Duplex(options) {\n if (!(this instanceof Duplex))\n return new Duplex(options);\n\n Readable.call(this, options);\n Writable.call(this, options);\n\n if (options && options.readable === false)\n this.readable = false;\n\n if (options && options.writable === false)\n this.writable = false;\n\n this.allowHalfOpen = true;\n if (options && options.allowHalfOpen === false)\n this.allowHalfOpen = false;\n\n this.once('end', onend);\n}\n\n// the no-half-open enforcer\nfunction onend() {\n // if we allow half-open state, or if the writable side ended,\n // then we're ok.\n if (this.allowHalfOpen || this._writableState.ended)\n return;\n\n // no more data can be written.\n // But allow more writes to happen in this tick.\n process.nextTick(this.end.bind(this));\n}\n\nfunction forEach (xs, f) {\n for (var i = 0, l = xs.length; i < l; i++) {\n f(xs[i], i);\n }\n}\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../process/browser.js */ \"./node_modules/process/browser.js\")))\n\n//# sourceURL=webpack:///./node_modules/html-tokenize/node_modules/readable-stream/lib/_stream_duplex.js?"); + +/***/ }), + +/***/ "./node_modules/html-tokenize/node_modules/readable-stream/lib/_stream_passthrough.js": +/*!********************************************************************************************!*\ + !*** ./node_modules/html-tokenize/node_modules/readable-stream/lib/_stream_passthrough.js ***! + \********************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +eval("// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n\nmodule.exports = PassThrough;\n\nvar Transform = __webpack_require__(/*! ./_stream_transform */ \"./node_modules/html-tokenize/node_modules/readable-stream/lib/_stream_transform.js\");\n\n/**/\nvar util = __webpack_require__(/*! core-util-is */ \"./node_modules/core-util-is/lib/util.js\");\nutil.inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/**/\n\nutil.inherits(PassThrough, Transform);\n\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough))\n return new PassThrough(options);\n\n Transform.call(this, options);\n}\n\nPassThrough.prototype._transform = function(chunk, encoding, cb) {\n cb(null, chunk);\n};\n\n\n//# sourceURL=webpack:///./node_modules/html-tokenize/node_modules/readable-stream/lib/_stream_passthrough.js?"); + +/***/ }), + +/***/ "./node_modules/html-tokenize/node_modules/readable-stream/lib/_stream_readable.js": +/*!*****************************************************************************************!*\ + !*** ./node_modules/html-tokenize/node_modules/readable-stream/lib/_stream_readable.js ***! + \*****************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +eval("/* WEBPACK VAR INJECTION */(function(process) {// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nmodule.exports = Readable;\n\n/**/\nvar isArray = __webpack_require__(/*! isarray */ \"./node_modules/isarray/index.js\");\n/**/\n\n\n/**/\nvar Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\").Buffer;\n/**/\n\nReadable.ReadableState = ReadableState;\n\nvar EE = __webpack_require__(/*! events */ \"./node_modules/events/events.js\").EventEmitter;\n\n/**/\nif (!EE.listenerCount) EE.listenerCount = function(emitter, type) {\n return emitter.listeners(type).length;\n};\n/**/\n\nvar Stream = __webpack_require__(/*! stream */ \"./node_modules/stream-browserify/index.js\");\n\n/**/\nvar util = __webpack_require__(/*! core-util-is */ \"./node_modules/core-util-is/lib/util.js\");\nutil.inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/**/\n\nvar StringDecoder;\n\nutil.inherits(Readable, Stream);\n\nfunction ReadableState(options, stream) {\n options = options || {};\n\n // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n var hwm = options.highWaterMark;\n this.highWaterMark = (hwm || hwm === 0) ? hwm : 16 * 1024;\n\n // cast to ints.\n this.highWaterMark = ~~this.highWaterMark;\n\n this.buffer = [];\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = false;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false;\n\n // In streams that never have any data, and do push(null) right away,\n // the consumer can miss the 'end' event if they do some I/O before\n // consuming the stream. So, we don't emit('end') until some reading\n // happens.\n this.calledRead = false;\n\n // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, becuase any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n this.sync = true;\n\n // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n\n\n // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n this.objectMode = !!options.objectMode;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // when piping, we only care about 'readable' events that happen\n // after read()ing all the bytes and not getting any pushback.\n this.ranOut = false;\n\n // the number of writers that are awaiting a drain event in .pipe()s\n this.awaitDrain = 0;\n\n // if true, a maybeReadMore has been scheduled\n this.readingMore = false;\n\n this.decoder = null;\n this.encoding = null;\n if (options.encoding) {\n if (!StringDecoder)\n StringDecoder = __webpack_require__(/*! string_decoder/ */ \"./node_modules/string_decoder/lib/string_decoder.js\").StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\n\nfunction Readable(options) {\n if (!(this instanceof Readable))\n return new Readable(options);\n\n this._readableState = new ReadableState(options, this);\n\n // legacy\n this.readable = true;\n\n Stream.call(this);\n}\n\n// Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\nReadable.prototype.push = function(chunk, encoding) {\n var state = this._readableState;\n\n if (typeof chunk === 'string' && !state.objectMode) {\n encoding = encoding || state.defaultEncoding;\n if (encoding !== state.encoding) {\n chunk = new Buffer(chunk, encoding);\n encoding = '';\n }\n }\n\n return readableAddChunk(this, state, chunk, encoding, false);\n};\n\n// Unshift should *always* be something directly out of read()\nReadable.prototype.unshift = function(chunk) {\n var state = this._readableState;\n return readableAddChunk(this, state, chunk, '', true);\n};\n\nfunction readableAddChunk(stream, state, chunk, encoding, addToFront) {\n var er = chunkInvalid(state, chunk);\n if (er) {\n stream.emit('error', er);\n } else if (chunk === null || chunk === undefined) {\n state.reading = false;\n if (!state.ended)\n onEofChunk(stream, state);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (state.ended && !addToFront) {\n var e = new Error('stream.push() after EOF');\n stream.emit('error', e);\n } else if (state.endEmitted && addToFront) {\n var e = new Error('stream.unshift() after end event');\n stream.emit('error', e);\n } else {\n if (state.decoder && !addToFront && !encoding)\n chunk = state.decoder.write(chunk);\n\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) {\n state.buffer.unshift(chunk);\n } else {\n state.reading = false;\n state.buffer.push(chunk);\n }\n\n if (state.needReadable)\n emitReadable(stream);\n\n maybeReadMore(stream, state);\n }\n } else if (!addToFront) {\n state.reading = false;\n }\n\n return needMoreData(state);\n}\n\n\n\n// if it's past the high water mark, we can push in some more.\n// Also, if we have no data yet, we can stand some\n// more bytes. This is to work around cases where hwm=0,\n// such as the repl. Also, if the push() triggered a\n// readable event, and the user called read(largeNumber) such that\n// needReadable was set, then we ought to push more, so that another\n// 'readable' event will be triggered.\nfunction needMoreData(state) {\n return !state.ended &&\n (state.needReadable ||\n state.length < state.highWaterMark ||\n state.length === 0);\n}\n\n// backwards compatibility.\nReadable.prototype.setEncoding = function(enc) {\n if (!StringDecoder)\n StringDecoder = __webpack_require__(/*! string_decoder/ */ \"./node_modules/string_decoder/lib/string_decoder.js\").StringDecoder;\n this._readableState.decoder = new StringDecoder(enc);\n this._readableState.encoding = enc;\n};\n\n// Don't raise the hwm > 128MB\nvar MAX_HWM = 0x800000;\nfunction roundUpToNextPowerOf2(n) {\n if (n >= MAX_HWM) {\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2\n n--;\n for (var p = 1; p < 32; p <<= 1) n |= n >> p;\n n++;\n }\n return n;\n}\n\nfunction howMuchToRead(n, state) {\n if (state.length === 0 && state.ended)\n return 0;\n\n if (state.objectMode)\n return n === 0 ? 0 : 1;\n\n if (n === null || isNaN(n)) {\n // only flow one buffer at a time\n if (state.flowing && state.buffer.length)\n return state.buffer[0].length;\n else\n return state.length;\n }\n\n if (n <= 0)\n return 0;\n\n // If we're asking for more than the target buffer level,\n // then raise the water mark. Bump up to the next highest\n // power of 2, to prevent increasing it excessively in tiny\n // amounts.\n if (n > state.highWaterMark)\n state.highWaterMark = roundUpToNextPowerOf2(n);\n\n // don't have that much. return null, unless we've ended.\n if (n > state.length) {\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n } else\n return state.length;\n }\n\n return n;\n}\n\n// you can override either this method, or the async _read(n) below.\nReadable.prototype.read = function(n) {\n var state = this._readableState;\n state.calledRead = true;\n var nOrig = n;\n var ret;\n\n if (typeof n !== 'number' || n > 0)\n state.emittedReadable = false;\n\n // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n if (n === 0 &&\n state.needReadable &&\n (state.length >= state.highWaterMark || state.ended)) {\n emitReadable(this);\n return null;\n }\n\n n = howMuchToRead(n, state);\n\n // if we've ended, and we're now clear, then finish it up.\n if (n === 0 && state.ended) {\n ret = null;\n\n // In cases where the decoder did not receive enough data\n // to produce a full chunk, then immediately received an\n // EOF, state.buffer will contain [, ].\n // howMuchToRead will see this and coerce the amount to\n // read to zero (because it's looking at the length of the\n // first in state.buffer), and we'll end up here.\n //\n // This can only happen via state.decoder -- no other venue\n // exists for pushing a zero-length chunk into state.buffer\n // and triggering this behavior. In this case, we return our\n // remaining data and end the stream, if appropriate.\n if (state.length > 0 && state.decoder) {\n ret = fromList(n, state);\n state.length -= ret.length;\n }\n\n if (state.length === 0)\n endReadable(this);\n\n return ret;\n }\n\n // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n\n // if we need a readable event, then we need to do some reading.\n var doRead = state.needReadable;\n\n // if we currently have less than the highWaterMark, then also read some\n if (state.length - n <= state.highWaterMark)\n doRead = true;\n\n // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n if (state.ended || state.reading)\n doRead = false;\n\n if (doRead) {\n state.reading = true;\n state.sync = true;\n // if the length is currently zero, then we *need* a readable event.\n if (state.length === 0)\n state.needReadable = true;\n // call internal read method\n this._read(state.highWaterMark);\n state.sync = false;\n }\n\n // If _read called its callback synchronously, then `reading`\n // will be false, and we need to re-evaluate how much data we\n // can return to the user.\n if (doRead && !state.reading)\n n = howMuchToRead(nOrig, state);\n\n if (n > 0)\n ret = fromList(n, state);\n else\n ret = null;\n\n if (ret === null) {\n state.needReadable = true;\n n = 0;\n }\n\n state.length -= n;\n\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (state.length === 0 && !state.ended)\n state.needReadable = true;\n\n // If we happened to read() exactly the remaining amount in the\n // buffer, and the EOF has been seen at this point, then make sure\n // that we emit 'end' on the very next tick.\n if (state.ended && !state.endEmitted && state.length === 0)\n endReadable(this);\n\n return ret;\n};\n\nfunction chunkInvalid(state, chunk) {\n var er = null;\n if (!Buffer.isBuffer(chunk) &&\n 'string' !== typeof chunk &&\n chunk !== null &&\n chunk !== undefined &&\n !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n return er;\n}\n\n\nfunction onEofChunk(stream, state) {\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n state.ended = true;\n\n // if we've ended and we have some data left, then emit\n // 'readable' now to make sure it gets picked up.\n if (state.length > 0)\n emitReadable(stream);\n else\n endReadable(stream);\n}\n\n// Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\nfunction emitReadable(stream) {\n var state = stream._readableState;\n state.needReadable = false;\n if (state.emittedReadable)\n return;\n\n state.emittedReadable = true;\n if (state.sync)\n process.nextTick(function() {\n emitReadable_(stream);\n });\n else\n emitReadable_(stream);\n}\n\nfunction emitReadable_(stream) {\n stream.emit('readable');\n}\n\n\n// at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n process.nextTick(function() {\n maybeReadMore_(stream, state);\n });\n }\n}\n\nfunction maybeReadMore_(stream, state) {\n var len = state.length;\n while (!state.reading && !state.flowing && !state.ended &&\n state.length < state.highWaterMark) {\n stream.read(0);\n if (len === state.length)\n // didn't get any data, stop spinning.\n break;\n else\n len = state.length;\n }\n state.readingMore = false;\n}\n\n// abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\nReadable.prototype._read = function(n) {\n this.emit('error', new Error('not implemented'));\n};\n\nReadable.prototype.pipe = function(dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n default:\n state.pipes.push(dest);\n break;\n }\n state.pipesCount += 1;\n\n var doEnd = (!pipeOpts || pipeOpts.end !== false) &&\n dest !== process.stdout &&\n dest !== process.stderr;\n\n var endFn = doEnd ? onend : cleanup;\n if (state.endEmitted)\n process.nextTick(endFn);\n else\n src.once('end', endFn);\n\n dest.on('unpipe', onunpipe);\n function onunpipe(readable) {\n if (readable !== src) return;\n cleanup();\n }\n\n function onend() {\n dest.end();\n }\n\n // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n\n function cleanup() {\n // cleanup event handlers once the pipe is broken\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', cleanup);\n\n // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n if (!dest._writableState || dest._writableState.needDrain)\n ondrain();\n }\n\n // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n function onerror(er) {\n unpipe();\n dest.removeListener('error', onerror);\n if (EE.listenerCount(dest, 'error') === 0)\n dest.emit('error', er);\n }\n // This is a brutally ugly hack to make sure that our error handler\n // is attached before any userland ones. NEVER DO THIS.\n if (!dest._events || !dest._events.error)\n dest.on('error', onerror);\n else if (isArray(dest._events.error))\n dest._events.error.unshift(onerror);\n else\n dest._events.error = [onerror, dest._events.error];\n\n\n\n // Both close and finish should trigger unpipe, but only once.\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n dest.once('close', onclose);\n function onfinish() {\n dest.removeListener('close', onclose);\n unpipe();\n }\n dest.once('finish', onfinish);\n\n function unpipe() {\n src.unpipe(dest);\n }\n\n // tell the dest that it's being piped to\n dest.emit('pipe', src);\n\n // start the flow if it hasn't been started already.\n if (!state.flowing) {\n // the handler that waits for readable events after all\n // the data gets sucked out in flow.\n // This would be easier to follow with a .once() handler\n // in flow(), but that is too slow.\n this.on('readable', pipeOnReadable);\n\n state.flowing = true;\n process.nextTick(function() {\n flow(src);\n });\n }\n\n return dest;\n};\n\nfunction pipeOnDrain(src) {\n return function() {\n var dest = this;\n var state = src._readableState;\n state.awaitDrain--;\n if (state.awaitDrain === 0)\n flow(src);\n };\n}\n\nfunction flow(src) {\n var state = src._readableState;\n var chunk;\n state.awaitDrain = 0;\n\n function write(dest, i, list) {\n var written = dest.write(chunk);\n if (false === written) {\n state.awaitDrain++;\n }\n }\n\n while (state.pipesCount && null !== (chunk = src.read())) {\n\n if (state.pipesCount === 1)\n write(state.pipes, 0, null);\n else\n forEach(state.pipes, write);\n\n src.emit('data', chunk);\n\n // if anyone needs a drain, then we have to wait for that.\n if (state.awaitDrain > 0)\n return;\n }\n\n // if every destination was unpiped, either before entering this\n // function, or in the while loop, then stop flowing.\n //\n // NB: This is a pretty rare edge case.\n if (state.pipesCount === 0) {\n state.flowing = false;\n\n // if there were data event listeners added, then switch to old mode.\n if (EE.listenerCount(src, 'data') > 0)\n emitDataEvents(src);\n return;\n }\n\n // at this point, no one needed a drain, so we just ran out of data\n // on the next readable event, start it over again.\n state.ranOut = true;\n}\n\nfunction pipeOnReadable() {\n if (this._readableState.ranOut) {\n this._readableState.ranOut = false;\n flow(this);\n }\n}\n\n\nReadable.prototype.unpipe = function(dest) {\n var state = this._readableState;\n\n // if we're not piping anywhere, then do nothing.\n if (state.pipesCount === 0)\n return this;\n\n // just one destination. most common case.\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes)\n return this;\n\n if (!dest)\n dest = state.pipes;\n\n // got a match.\n state.pipes = null;\n state.pipesCount = 0;\n this.removeListener('readable', pipeOnReadable);\n state.flowing = false;\n if (dest)\n dest.emit('unpipe', this);\n return this;\n }\n\n // slow case. multiple pipe destinations.\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n this.removeListener('readable', pipeOnReadable);\n state.flowing = false;\n\n for (var i = 0; i < len; i++)\n dests[i].emit('unpipe', this);\n return this;\n }\n\n // try to find the right one.\n var i = indexOf(state.pipes, dest);\n if (i === -1)\n return this;\n\n state.pipes.splice(i, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1)\n state.pipes = state.pipes[0];\n\n dest.emit('unpipe', this);\n\n return this;\n};\n\n// set up data events if they are asked for\n// Ensure readable listeners eventually get something\nReadable.prototype.on = function(ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n\n if (ev === 'data' && !this._readableState.flowing)\n emitDataEvents(this);\n\n if (ev === 'readable' && this.readable) {\n var state = this._readableState;\n if (!state.readableListening) {\n state.readableListening = true;\n state.emittedReadable = false;\n state.needReadable = true;\n if (!state.reading) {\n this.read(0);\n } else if (state.length) {\n emitReadable(this, state);\n }\n }\n }\n\n return res;\n};\nReadable.prototype.addListener = Readable.prototype.on;\n\n// pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\nReadable.prototype.resume = function() {\n emitDataEvents(this);\n this.read(0);\n this.emit('resume');\n};\n\nReadable.prototype.pause = function() {\n emitDataEvents(this, true);\n this.emit('pause');\n};\n\nfunction emitDataEvents(stream, startPaused) {\n var state = stream._readableState;\n\n if (state.flowing) {\n // https://github.com/isaacs/readable-stream/issues/16\n throw new Error('Cannot switch to old mode now.');\n }\n\n var paused = startPaused || false;\n var readable = false;\n\n // convert to an old-style stream.\n stream.readable = true;\n stream.pipe = Stream.prototype.pipe;\n stream.on = stream.addListener = Stream.prototype.on;\n\n stream.on('readable', function() {\n readable = true;\n\n var c;\n while (!paused && (null !== (c = stream.read())))\n stream.emit('data', c);\n\n if (c === null) {\n readable = false;\n stream._readableState.needReadable = true;\n }\n });\n\n stream.pause = function() {\n paused = true;\n this.emit('pause');\n };\n\n stream.resume = function() {\n paused = false;\n if (readable)\n process.nextTick(function() {\n stream.emit('readable');\n });\n else\n this.read(0);\n this.emit('resume');\n };\n\n // now make it start, just in case it hadn't already.\n stream.emit('readable');\n}\n\n// wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\nReadable.prototype.wrap = function(stream) {\n var state = this._readableState;\n var paused = false;\n\n var self = this;\n stream.on('end', function() {\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length)\n self.push(chunk);\n }\n\n self.push(null);\n });\n\n stream.on('data', function(chunk) {\n if (state.decoder)\n chunk = state.decoder.write(chunk);\n\n // don't skip over falsy values in objectMode\n //if (state.objectMode && util.isNullOrUndefined(chunk))\n if (state.objectMode && (chunk === null || chunk === undefined))\n return;\n else if (!state.objectMode && (!chunk || !chunk.length))\n return;\n\n var ret = self.push(chunk);\n if (!ret) {\n paused = true;\n stream.pause();\n }\n });\n\n // proxy all the other methods.\n // important when wrapping filters and duplexes.\n for (var i in stream) {\n if (typeof stream[i] === 'function' &&\n typeof this[i] === 'undefined') {\n this[i] = function(method) { return function() {\n return stream[method].apply(stream, arguments);\n }}(i);\n }\n }\n\n // proxy certain important events.\n var events = ['error', 'close', 'destroy', 'pause', 'resume'];\n forEach(events, function(ev) {\n stream.on(ev, self.emit.bind(self, ev));\n });\n\n // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n self._read = function(n) {\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n\n return self;\n};\n\n\n\n// exposed for testing purposes only.\nReadable._fromList = fromList;\n\n// Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\nfunction fromList(n, state) {\n var list = state.buffer;\n var length = state.length;\n var stringMode = !!state.decoder;\n var objectMode = !!state.objectMode;\n var ret;\n\n // nothing in the list, definitely empty.\n if (list.length === 0)\n return null;\n\n if (length === 0)\n ret = null;\n else if (objectMode)\n ret = list.shift();\n else if (!n || n >= length) {\n // read it all, truncate the array.\n if (stringMode)\n ret = list.join('');\n else\n ret = Buffer.concat(list, length);\n list.length = 0;\n } else {\n // read just some of it.\n if (n < list[0].length) {\n // just take a part of the first list item.\n // slice is the same for buffers and strings.\n var buf = list[0];\n ret = buf.slice(0, n);\n list[0] = buf.slice(n);\n } else if (n === list[0].length) {\n // first list is a perfect match\n ret = list.shift();\n } else {\n // complex case.\n // we have enough to cover it, but it spans past the first buffer.\n if (stringMode)\n ret = '';\n else\n ret = new Buffer(n);\n\n var c = 0;\n for (var i = 0, l = list.length; i < l && c < n; i++) {\n var buf = list[0];\n var cpy = Math.min(n - c, buf.length);\n\n if (stringMode)\n ret += buf.slice(0, cpy);\n else\n buf.copy(ret, c, 0, cpy);\n\n if (cpy < buf.length)\n list[0] = buf.slice(cpy);\n else\n list.shift();\n\n c += cpy;\n }\n }\n }\n\n return ret;\n}\n\nfunction endReadable(stream) {\n var state = stream._readableState;\n\n // If we get here before consuming all the bytes, then that is a\n // bug in node. Should never happen.\n if (state.length > 0)\n throw new Error('endReadable called on non-empty stream');\n\n if (!state.endEmitted && state.calledRead) {\n state.ended = true;\n process.nextTick(function() {\n // Check that we didn't get one last unshift.\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n }\n });\n }\n}\n\nfunction forEach (xs, f) {\n for (var i = 0, l = xs.length; i < l; i++) {\n f(xs[i], i);\n }\n}\n\nfunction indexOf (xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n return -1;\n}\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../process/browser.js */ \"./node_modules/process/browser.js\")))\n\n//# sourceURL=webpack:///./node_modules/html-tokenize/node_modules/readable-stream/lib/_stream_readable.js?"); + +/***/ }), + +/***/ "./node_modules/html-tokenize/node_modules/readable-stream/lib/_stream_transform.js": +/*!******************************************************************************************!*\ + !*** ./node_modules/html-tokenize/node_modules/readable-stream/lib/_stream_transform.js ***! + \******************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +eval("// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n\nmodule.exports = Transform;\n\nvar Duplex = __webpack_require__(/*! ./_stream_duplex */ \"./node_modules/html-tokenize/node_modules/readable-stream/lib/_stream_duplex.js\");\n\n/**/\nvar util = __webpack_require__(/*! core-util-is */ \"./node_modules/core-util-is/lib/util.js\");\nutil.inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/**/\n\nutil.inherits(Transform, Duplex);\n\n\nfunction TransformState(options, stream) {\n this.afterTransform = function(er, data) {\n return afterTransform(stream, er, data);\n };\n\n this.needTransform = false;\n this.transforming = false;\n this.writecb = null;\n this.writechunk = null;\n}\n\nfunction afterTransform(stream, er, data) {\n var ts = stream._transformState;\n ts.transforming = false;\n\n var cb = ts.writecb;\n\n if (!cb)\n return stream.emit('error', new Error('no writecb in Transform class'));\n\n ts.writechunk = null;\n ts.writecb = null;\n\n if (data !== null && data !== undefined)\n stream.push(data);\n\n if (cb)\n cb(er);\n\n var rs = stream._readableState;\n rs.reading = false;\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n stream._read(rs.highWaterMark);\n }\n}\n\n\nfunction Transform(options) {\n if (!(this instanceof Transform))\n return new Transform(options);\n\n Duplex.call(this, options);\n\n var ts = this._transformState = new TransformState(options, this);\n\n // when the writable side finishes, then flush out anything remaining.\n var stream = this;\n\n // start out asking for a readable event once data is transformed.\n this._readableState.needReadable = true;\n\n // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n this._readableState.sync = false;\n\n this.once('finish', function() {\n if ('function' === typeof this._flush)\n this._flush(function(er) {\n done(stream, er);\n });\n else\n done(stream);\n });\n}\n\nTransform.prototype.push = function(chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n};\n\n// This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\nTransform.prototype._transform = function(chunk, encoding, cb) {\n throw new Error('not implemented');\n};\n\nTransform.prototype._write = function(chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform ||\n rs.needReadable ||\n rs.length < rs.highWaterMark)\n this._read(rs.highWaterMark);\n }\n};\n\n// Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\nTransform.prototype._read = function(n) {\n var ts = this._transformState;\n\n if (ts.writechunk !== null && ts.writecb && !ts.transforming) {\n ts.transforming = true;\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\n\n\nfunction done(stream, er) {\n if (er)\n return stream.emit('error', er);\n\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n var ws = stream._writableState;\n var rs = stream._readableState;\n var ts = stream._transformState;\n\n if (ws.length)\n throw new Error('calling transform done when ws.length != 0');\n\n if (ts.transforming)\n throw new Error('calling transform done when still transforming');\n\n return stream.push(null);\n}\n\n\n//# sourceURL=webpack:///./node_modules/html-tokenize/node_modules/readable-stream/lib/_stream_transform.js?"); + +/***/ }), + +/***/ "./node_modules/html-tokenize/node_modules/readable-stream/lib/_stream_writable.js": +/*!*****************************************************************************************!*\ + !*** ./node_modules/html-tokenize/node_modules/readable-stream/lib/_stream_writable.js ***! + \*****************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +eval("/* WEBPACK VAR INJECTION */(function(process) {// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, cb), and it'll handle all\n// the drain event emission and buffering.\n\nmodule.exports = Writable;\n\n/**/\nvar Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\").Buffer;\n/**/\n\nWritable.WritableState = WritableState;\n\n\n/**/\nvar util = __webpack_require__(/*! core-util-is */ \"./node_modules/core-util-is/lib/util.js\");\nutil.inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/**/\n\nvar Stream = __webpack_require__(/*! stream */ \"./node_modules/stream-browserify/index.js\");\n\nutil.inherits(Writable, Stream);\n\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n}\n\nfunction WritableState(options, stream) {\n options = options || {};\n\n // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n var hwm = options.highWaterMark;\n this.highWaterMark = (hwm || hwm === 0) ? hwm : 16 * 1024;\n\n // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n this.objectMode = !!options.objectMode;\n\n // cast to ints.\n this.highWaterMark = ~~this.highWaterMark;\n\n this.needDrain = false;\n // at the start of calling end()\n this.ending = false;\n // when end() has been called, and returned\n this.ended = false;\n // when 'finish' is emitted\n this.finished = false;\n\n // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n this.length = 0;\n\n // a flag to see when we're in the middle of a write.\n this.writing = false;\n\n // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, becuase any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n this.sync = true;\n\n // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n this.bufferProcessing = false;\n\n // the callback that's passed to _write(chunk,cb)\n this.onwrite = function(er) {\n onwrite(stream, er);\n };\n\n // the callback that the user supplies to write(chunk,encoding,cb)\n this.writecb = null;\n\n // the amount that is being written when _write is called.\n this.writelen = 0;\n\n this.buffer = [];\n\n // True if the error was already emitted and should not be thrown again\n this.errorEmitted = false;\n}\n\nfunction Writable(options) {\n var Duplex = __webpack_require__(/*! ./_stream_duplex */ \"./node_modules/html-tokenize/node_modules/readable-stream/lib/_stream_duplex.js\");\n\n // Writable ctor is applied to Duplexes, though they're not\n // instanceof Writable, they're instanceof Readable.\n if (!(this instanceof Writable) && !(this instanceof Duplex))\n return new Writable(options);\n\n this._writableState = new WritableState(options, this);\n\n // legacy.\n this.writable = true;\n\n Stream.call(this);\n}\n\n// Otherwise people can pipe Writable streams, which is just wrong.\nWritable.prototype.pipe = function() {\n this.emit('error', new Error('Cannot pipe. Not readable.'));\n};\n\n\nfunction writeAfterEnd(stream, state, cb) {\n var er = new Error('write after end');\n // TODO: defer error events consistently everywhere, not just the cb\n stream.emit('error', er);\n process.nextTick(function() {\n cb(er);\n });\n}\n\n// If we get something that is not a buffer, string, null, or undefined,\n// and we're not in objectMode, then that's an error.\n// Otherwise stream chunks are all considered to be of length=1, and the\n// watermarks determine how many objects to keep in the buffer, rather than\n// how many bytes or characters.\nfunction validChunk(stream, state, chunk, cb) {\n var valid = true;\n if (!Buffer.isBuffer(chunk) &&\n 'string' !== typeof chunk &&\n chunk !== null &&\n chunk !== undefined &&\n !state.objectMode) {\n var er = new TypeError('Invalid non-string/buffer chunk');\n stream.emit('error', er);\n process.nextTick(function() {\n cb(er);\n });\n valid = false;\n }\n return valid;\n}\n\nWritable.prototype.write = function(chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (Buffer.isBuffer(chunk))\n encoding = 'buffer';\n else if (!encoding)\n encoding = state.defaultEncoding;\n\n if (typeof cb !== 'function')\n cb = function() {};\n\n if (state.ended)\n writeAfterEnd(this, state, cb);\n else if (validChunk(this, state, chunk, cb))\n ret = writeOrBuffer(this, state, chunk, encoding, cb);\n\n return ret;\n};\n\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode &&\n state.decodeStrings !== false &&\n typeof chunk === 'string') {\n chunk = new Buffer(chunk, encoding);\n }\n return chunk;\n}\n\n// if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\nfunction writeOrBuffer(stream, state, chunk, encoding, cb) {\n chunk = decodeChunk(state, chunk, encoding);\n if (Buffer.isBuffer(chunk))\n encoding = 'buffer';\n var len = state.objectMode ? 1 : chunk.length;\n\n state.length += len;\n\n var ret = state.length < state.highWaterMark;\n // we must ensure that previous needDrain will not be reset to false.\n if (!ret)\n state.needDrain = true;\n\n if (state.writing)\n state.buffer.push(new WriteReq(chunk, encoding, cb));\n else\n doWrite(stream, state, len, chunk, encoding, cb);\n\n return ret;\n}\n\nfunction doWrite(stream, state, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\n\nfunction onwriteError(stream, state, sync, er, cb) {\n if (sync)\n process.nextTick(function() {\n cb(er);\n });\n else\n cb(er);\n\n stream._writableState.errorEmitted = true;\n stream.emit('error', er);\n}\n\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\n\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n\n onwriteStateUpdate(state);\n\n if (er)\n onwriteError(stream, state, sync, er, cb);\n else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(stream, state);\n\n if (!finished && !state.bufferProcessing && state.buffer.length)\n clearBuffer(stream, state);\n\n if (sync) {\n process.nextTick(function() {\n afterWrite(stream, state, finished, cb);\n });\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\n\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished)\n onwriteDrain(stream, state);\n cb();\n if (finished)\n finishMaybe(stream, state);\n}\n\n// Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n}\n\n\n// if there's something in the buffer waiting, then process it\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n\n for (var c = 0; c < state.buffer.length; c++) {\n var entry = state.buffer[c];\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n\n doWrite(stream, state, len, chunk, encoding, cb);\n\n // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n if (state.writing) {\n c++;\n break;\n }\n }\n\n state.bufferProcessing = false;\n if (c < state.buffer.length)\n state.buffer = state.buffer.slice(c);\n else\n state.buffer.length = 0;\n}\n\nWritable.prototype._write = function(chunk, encoding, cb) {\n cb(new Error('not implemented'));\n};\n\nWritable.prototype.end = function(chunk, encoding, cb) {\n var state = this._writableState;\n\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (typeof chunk !== 'undefined' && chunk !== null)\n this.write(chunk, encoding);\n\n // ignore unnecessary end() calls.\n if (!state.ending && !state.finished)\n endWritable(this, state, cb);\n};\n\n\nfunction needFinish(stream, state) {\n return (state.ending &&\n state.length === 0 &&\n !state.finished &&\n !state.writing);\n}\n\nfunction finishMaybe(stream, state) {\n var need = needFinish(stream, state);\n if (need) {\n state.finished = true;\n stream.emit('finish');\n }\n return need;\n}\n\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n if (cb) {\n if (state.finished)\n process.nextTick(cb);\n else\n stream.once('finish', cb);\n }\n state.ended = true;\n}\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../process/browser.js */ \"./node_modules/process/browser.js\")))\n\n//# sourceURL=webpack:///./node_modules/html-tokenize/node_modules/readable-stream/lib/_stream_writable.js?"); + +/***/ }), + +/***/ "./node_modules/html-tokenize/node_modules/readable-stream/readable.js": +/*!*****************************************************************************!*\ + !*** ./node_modules/html-tokenize/node_modules/readable-stream/readable.js ***! + \*****************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +eval("/* WEBPACK VAR INJECTION */(function(process) {var Stream = __webpack_require__(/*! stream */ \"./node_modules/stream-browserify/index.js\"); // hack to fix a circular dependency issue when used with browserify\nexports = module.exports = __webpack_require__(/*! ./lib/_stream_readable.js */ \"./node_modules/html-tokenize/node_modules/readable-stream/lib/_stream_readable.js\");\nexports.Stream = Stream;\nexports.Readable = exports;\nexports.Writable = __webpack_require__(/*! ./lib/_stream_writable.js */ \"./node_modules/html-tokenize/node_modules/readable-stream/lib/_stream_writable.js\");\nexports.Duplex = __webpack_require__(/*! ./lib/_stream_duplex.js */ \"./node_modules/html-tokenize/node_modules/readable-stream/lib/_stream_duplex.js\");\nexports.Transform = __webpack_require__(/*! ./lib/_stream_transform.js */ \"./node_modules/html-tokenize/node_modules/readable-stream/lib/_stream_transform.js\");\nexports.PassThrough = __webpack_require__(/*! ./lib/_stream_passthrough.js */ \"./node_modules/html-tokenize/node_modules/readable-stream/lib/_stream_passthrough.js\");\nif (!process.browser && process.env.READABLE_STREAM === 'disable') {\n module.exports = __webpack_require__(/*! stream */ \"./node_modules/stream-browserify/index.js\");\n}\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../process/browser.js */ \"./node_modules/process/browser.js\")))\n\n//# sourceURL=webpack:///./node_modules/html-tokenize/node_modules/readable-stream/readable.js?"); + +/***/ }), + +/***/ "./node_modules/hyphenate-style-name/index.js": +/*!****************************************************!*\ + !*** ./node_modules/hyphenate-style-name/index.js ***! + \****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nvar uppercasePattern = /[A-Z]/g;\nvar msPattern = /^ms-/;\nvar cache = {};\n\nfunction hyphenateStyleName(string) {\n return string in cache\n ? cache[string]\n : cache[string] = string\n .replace(uppercasePattern, '-$&')\n .toLowerCase()\n .replace(msPattern, '-ms-');\n}\n\nmodule.exports = hyphenateStyleName;\n\n\n//# sourceURL=webpack:///./node_modules/hyphenate-style-name/index.js?"); + +/***/ }), + +/***/ "./node_modules/ieee754/index.js": +/*!***************************************!*\ + !*** ./node_modules/ieee754/index.js ***! + \***************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +eval("exports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = nBytes * 8 - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = nBytes * 8 - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = (value * c - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n\n\n//# sourceURL=webpack:///./node_modules/ieee754/index.js?"); + +/***/ }), + +/***/ "./node_modules/inherits/inherits_browser.js": +/*!***************************************************!*\ + !*** ./node_modules/inherits/inherits_browser.js ***! + \***************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +eval("if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n}\n\n\n//# sourceURL=webpack:///./node_modules/inherits/inherits_browser.js?"); + +/***/ }), + +/***/ "./node_modules/invariant/browser.js": +/*!*******************************************!*\ + !*** ./node_modules/invariant/browser.js ***! + \*******************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n if (true) {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n format.replace(/%s/g, function() { return args[argIndex++]; })\n );\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n};\n\nmodule.exports = invariant;\n\n\n//# sourceURL=webpack:///./node_modules/invariant/browser.js?"); + +/***/ }), + +/***/ "./node_modules/is-function/index.js": +/*!*******************************************!*\ + !*** ./node_modules/is-function/index.js ***! + \*******************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +eval("module.exports = isFunction\n\nvar toString = Object.prototype.toString\n\nfunction isFunction (fn) {\n var string = toString.call(fn)\n return string === '[object Function]' ||\n (typeof fn === 'function' && string !== '[object RegExp]') ||\n (typeof window !== 'undefined' &&\n // IE8 and below\n (fn === window.setTimeout ||\n fn === window.alert ||\n fn === window.confirm ||\n fn === window.prompt))\n};\n\n\n//# sourceURL=webpack:///./node_modules/is-function/index.js?"); + +/***/ }), + +/***/ "./node_modules/is-in-browser/dist/module.js": +/*!***************************************************!*\ + !*** ./node_modules/is-in-browser/dist/module.js ***! + \***************************************************/ +/*! exports provided: isBrowser, default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isBrowser\", function() { return isBrowser; });\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar isBrowser = (typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) === \"object\" && (typeof document === \"undefined\" ? \"undefined\" : _typeof(document)) === 'object' && document.nodeType === 9;\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (isBrowser);\n\n\n//# sourceURL=webpack:///./node_modules/is-in-browser/dist/module.js?"); + +/***/ }), + +/***/ "./node_modules/is-plain-object/index.js": +/*!***********************************************!*\ + !*** ./node_modules/is-plain-object/index.js ***! + \***********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/*!\n * is-plain-object \n *\n * Copyright (c) 2014-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\n\n\nvar isObject = __webpack_require__(/*! isobject */ \"./node_modules/is-plain-object/node_modules/isobject/index.js\");\n\nfunction isObjectObject(o) {\n return isObject(o) === true\n && Object.prototype.toString.call(o) === '[object Object]';\n}\n\nmodule.exports = function isPlainObject(o) {\n var ctor,prot;\n\n if (isObjectObject(o) === false) return false;\n\n // If has modified constructor\n ctor = o.constructor;\n if (typeof ctor !== 'function') return false;\n\n // If has modified prototype\n prot = ctor.prototype;\n if (isObjectObject(prot) === false) return false;\n\n // If constructor does not have an Object-specific method\n if (prot.hasOwnProperty('isPrototypeOf') === false) {\n return false;\n }\n\n // Most likely a plain Object\n return true;\n};\n\n\n//# sourceURL=webpack:///./node_modules/is-plain-object/index.js?"); + +/***/ }), + +/***/ "./node_modules/is-plain-object/node_modules/isobject/index.js": +/*!*********************************************************************!*\ + !*** ./node_modules/is-plain-object/node_modules/isobject/index.js ***! + \*********************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/*!\n * isobject \n *\n * Copyright (c) 2014-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\n\n\nmodule.exports = function isObject(val) {\n return val != null && typeof val === 'object' && Array.isArray(val) === false;\n};\n\n\n//# sourceURL=webpack:///./node_modules/is-plain-object/node_modules/isobject/index.js?"); + +/***/ }), + +/***/ "./node_modules/isarray/index.js": +/*!***************************************!*\ + !*** ./node_modules/isarray/index.js ***! + \***************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +eval("module.exports = Array.isArray || function (arr) {\n return Object.prototype.toString.call(arr) == '[object Array]';\n};\n\n\n//# sourceURL=webpack:///./node_modules/isarray/index.js?"); + +/***/ }), + +/***/ "./node_modules/jss-camel-case/lib/index.js": +/*!**************************************************!*\ + !*** ./node_modules/jss-camel-case/lib/index.js ***! + \**************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports['default'] = camelCase;\n\nvar _hyphenateStyleName = __webpack_require__(/*! hyphenate-style-name */ \"./node_modules/hyphenate-style-name/index.js\");\n\nvar _hyphenateStyleName2 = _interopRequireDefault(_hyphenateStyleName);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\n/**\n * Convert camel cased property names to dash separated.\n *\n * @param {Object} style\n * @return {Object}\n */\nfunction convertCase(style) {\n var converted = {};\n\n for (var prop in style) {\n converted[(0, _hyphenateStyleName2['default'])(prop)] = style[prop];\n }\n\n if (style.fallbacks) {\n if (Array.isArray(style.fallbacks)) converted.fallbacks = style.fallbacks.map(convertCase);else converted.fallbacks = convertCase(style.fallbacks);\n }\n\n return converted;\n}\n\n/**\n * Allow camel cased property names by converting them back to dasherized.\n *\n * @param {Rule} rule\n */\nfunction camelCase() {\n function onProcessStyle(style) {\n if (Array.isArray(style)) {\n // Handle rules like @font-face, which can have multiple styles in an array\n for (var index = 0; index < style.length; index++) {\n style[index] = convertCase(style[index]);\n }\n return style;\n }\n\n return convertCase(style);\n }\n\n function onChangeValue(value, prop, rule) {\n var hyphenatedProp = (0, _hyphenateStyleName2['default'])(prop);\n\n // There was no camel case in place\n if (prop === hyphenatedProp) return value;\n\n rule.prop(hyphenatedProp, value);\n\n // Core will ignore that property value we set the proper one above.\n return null;\n }\n\n return { onProcessStyle: onProcessStyle, onChangeValue: onChangeValue };\n}\n\n//# sourceURL=webpack:///./node_modules/jss-camel-case/lib/index.js?"); + +/***/ }), + +/***/ "./node_modules/jss-compose/lib/index.js": +/*!***********************************************!*\ + !*** ./node_modules/jss-compose/lib/index.js ***! + \***********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = jssCompose;\n\nvar _warning = __webpack_require__(/*! warning */ \"./node_modules/warning/browser.js\");\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * Set selector.\n *\n * @param {Object} original rule\n * @param {String} className class string\n * @return {Boolean} flag, indicating function was successfull or not\n */\nfunction registerClass(rule, className) {\n // Skip falsy values\n if (!className) return true;\n\n // Support array of class names `{composes: ['foo', 'bar']}`\n if (Array.isArray(className)) {\n for (var index = 0; index < className.length; index++) {\n var isSetted = registerClass(rule, className[index]);\n if (!isSetted) return false;\n }\n\n return true;\n }\n\n // Support space separated class names `{composes: 'foo bar'}`\n if (className.indexOf(' ') > -1) {\n return registerClass(rule, className.split(' '));\n }\n\n var parent = rule.options.parent;\n\n // It is a ref to a local rule.\n\n if (className[0] === '$') {\n var refRule = parent.getRule(className.substr(1));\n\n if (!refRule) {\n (0, _warning2.default)(false, '[JSS] Referenced rule is not defined. \\r\\n%s', rule);\n return false;\n }\n\n if (refRule === rule) {\n (0, _warning2.default)(false, '[JSS] Cyclic composition detected. \\r\\n%s', rule);\n return false;\n }\n\n parent.classes[rule.key] += ' ' + parent.classes[refRule.key];\n\n return true;\n }\n\n rule.options.parent.classes[rule.key] += ' ' + className;\n\n return true;\n}\n\n/**\n * Convert compose property to additional class, remove property from original styles.\n *\n * @param {Rule} rule\n * @api public\n */\nfunction jssCompose() {\n function onProcessStyle(style, rule) {\n if (!style.composes) return style;\n registerClass(rule, style.composes);\n // Remove composes property to prevent infinite loop.\n delete style.composes;\n return style;\n }\n return { onProcessStyle: onProcessStyle };\n}\n\n//# sourceURL=webpack:///./node_modules/jss-compose/lib/index.js?"); + +/***/ }), + +/***/ "./node_modules/jss-default-unit/lib/defaultUnits.js": +/*!***********************************************************!*\ + !*** ./node_modules/jss-default-unit/lib/defaultUnits.js ***! + \***********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n/**\n * Generated jss-default-unit CSS property units\n *\n * @type object\n */\nexports['default'] = {\n 'animation-delay': 'ms',\n 'animation-duration': 'ms',\n 'background-position': 'px',\n 'background-position-x': 'px',\n 'background-position-y': 'px',\n 'background-size': 'px',\n border: 'px',\n 'border-bottom': 'px',\n 'border-bottom-left-radius': 'px',\n 'border-bottom-right-radius': 'px',\n 'border-bottom-width': 'px',\n 'border-left': 'px',\n 'border-left-width': 'px',\n 'border-radius': 'px',\n 'border-right': 'px',\n 'border-right-width': 'px',\n 'border-spacing': 'px',\n 'border-top': 'px',\n 'border-top-left-radius': 'px',\n 'border-top-right-radius': 'px',\n 'border-top-width': 'px',\n 'border-width': 'px',\n 'border-after-width': 'px',\n 'border-before-width': 'px',\n 'border-end-width': 'px',\n 'border-horizontal-spacing': 'px',\n 'border-start-width': 'px',\n 'border-vertical-spacing': 'px',\n bottom: 'px',\n 'box-shadow': 'px',\n 'column-gap': 'px',\n 'column-rule': 'px',\n 'column-rule-width': 'px',\n 'column-width': 'px',\n 'flex-basis': 'px',\n 'font-size': 'px',\n 'font-size-delta': 'px',\n height: 'px',\n left: 'px',\n 'letter-spacing': 'px',\n 'logical-height': 'px',\n 'logical-width': 'px',\n margin: 'px',\n 'margin-after': 'px',\n 'margin-before': 'px',\n 'margin-bottom': 'px',\n 'margin-left': 'px',\n 'margin-right': 'px',\n 'margin-top': 'px',\n 'max-height': 'px',\n 'max-width': 'px',\n 'margin-end': 'px',\n 'margin-start': 'px',\n 'mask-position-x': 'px',\n 'mask-position-y': 'px',\n 'mask-size': 'px',\n 'max-logical-height': 'px',\n 'max-logical-width': 'px',\n 'min-height': 'px',\n 'min-width': 'px',\n 'min-logical-height': 'px',\n 'min-logical-width': 'px',\n motion: 'px',\n 'motion-offset': 'px',\n outline: 'px',\n 'outline-offset': 'px',\n 'outline-width': 'px',\n padding: 'px',\n 'padding-bottom': 'px',\n 'padding-left': 'px',\n 'padding-right': 'px',\n 'padding-top': 'px',\n 'padding-after': 'px',\n 'padding-before': 'px',\n 'padding-end': 'px',\n 'padding-start': 'px',\n 'perspective-origin-x': '%',\n 'perspective-origin-y': '%',\n perspective: 'px',\n right: 'px',\n 'shape-margin': 'px',\n size: 'px',\n 'text-indent': 'px',\n 'text-stroke': 'px',\n 'text-stroke-width': 'px',\n top: 'px',\n 'transform-origin': '%',\n 'transform-origin-x': '%',\n 'transform-origin-y': '%',\n 'transform-origin-z': '%',\n 'transition-delay': 'ms',\n 'transition-duration': 'ms',\n 'vertical-align': 'px',\n width: 'px',\n 'word-spacing': 'px',\n // Not existing properties.\n // Used to avoid issues with jss-expand intergration.\n 'box-shadow-x': 'px',\n 'box-shadow-y': 'px',\n 'box-shadow-blur': 'px',\n 'box-shadow-spread': 'px',\n 'font-line-height': 'px',\n 'text-shadow-x': 'px',\n 'text-shadow-y': 'px',\n 'text-shadow-blur': 'px'\n};\n\n//# sourceURL=webpack:///./node_modules/jss-default-unit/lib/defaultUnits.js?"); + +/***/ }), + +/***/ "./node_modules/jss-default-unit/lib/index.js": +/*!****************************************************!*\ + !*** ./node_modules/jss-default-unit/lib/index.js ***! + \****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nexports['default'] = defaultUnit;\n\nvar _defaultUnits = __webpack_require__(/*! ./defaultUnits */ \"./node_modules/jss-default-unit/lib/defaultUnits.js\");\n\nvar _defaultUnits2 = _interopRequireDefault(_defaultUnits);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\n/**\n * Clones the object and adds a camel cased property version.\n */\nfunction addCamelCasedVersion(obj) {\n var regExp = /(-[a-z])/g;\n var replace = function replace(str) {\n return str[1].toUpperCase();\n };\n var newObj = {};\n for (var key in obj) {\n newObj[key] = obj[key];\n newObj[key.replace(regExp, replace)] = obj[key];\n }\n return newObj;\n}\n\nvar units = addCamelCasedVersion(_defaultUnits2['default']);\n\n/**\n * Recursive deep style passing function\n *\n * @param {String} current property\n * @param {(Object|Array|Number|String)} property value\n * @param {Object} options\n * @return {(Object|Array|Number|String)} resulting value\n */\nfunction iterate(prop, value, options) {\n if (!value) return value;\n\n var convertedValue = value;\n\n var type = typeof value === 'undefined' ? 'undefined' : _typeof(value);\n if (type === 'object' && Array.isArray(value)) type = 'array';\n\n switch (type) {\n case 'object':\n if (prop === 'fallbacks') {\n for (var innerProp in value) {\n value[innerProp] = iterate(innerProp, value[innerProp], options);\n }\n break;\n }\n for (var _innerProp in value) {\n value[_innerProp] = iterate(prop + '-' + _innerProp, value[_innerProp], options);\n }\n break;\n case 'array':\n for (var i = 0; i < value.length; i++) {\n value[i] = iterate(prop, value[i], options);\n }\n break;\n case 'number':\n if (value !== 0) {\n convertedValue = value + (options[prop] || units[prop] || '');\n }\n break;\n default:\n break;\n }\n\n return convertedValue;\n}\n\n/**\n * Add unit to numeric values.\n */\nfunction defaultUnit() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n var camelCasedOptions = addCamelCasedVersion(options);\n\n function onProcessStyle(style, rule) {\n if (rule.type !== 'style') return style;\n\n for (var prop in style) {\n style[prop] = iterate(prop, style[prop], camelCasedOptions);\n }\n\n return style;\n }\n\n function onChangeValue(value, prop) {\n return iterate(prop, value, camelCasedOptions);\n }\n\n return { onProcessStyle: onProcessStyle, onChangeValue: onChangeValue };\n}\n\n//# sourceURL=webpack:///./node_modules/jss-default-unit/lib/index.js?"); + +/***/ }), + +/***/ "./node_modules/jss-expand/lib/index.js": +/*!**********************************************!*\ + !*** ./node_modules/jss-expand/lib/index.js ***! + \**********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nexports.default = jssExpand;\n\nvar _props = __webpack_require__(/*! ./props */ \"./node_modules/jss-expand/lib/props.js\");\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * Map values by given prop.\n *\n * @param {Array} array of values\n * @param {String} original property\n * @param {String} original rule\n * @return {String} mapped values\n */\nfunction mapValuesByProp(value, prop, rule) {\n return value.map(function (item) {\n return objectToArray(item, prop, rule, false, true);\n });\n}\n\n/**\n * Convert array to nested array, if needed\n *\n * @param {Array} array of values\n * @param {String} original property\n * @param {Object} sheme, for converting arrays in strings\n * @param {Object} original rule\n * @return {String} converted string\n */\nfunction processArray(value, prop, scheme, rule) {\n if (scheme[prop] == null) return value;\n if (value.length === 0) return [];\n if (Array.isArray(value[0])) return processArray(value[0], prop, scheme);\n if (_typeof(value[0]) === 'object') {\n return mapValuesByProp(value, prop, rule);\n }\n\n return [value];\n}\n\n/**\n * Convert object to array.\n *\n * @param {Object} object of values\n * @param {String} original property\n * @param {Object} original rule\n * @param {Boolean} is fallback prop\n * @param {Boolean} object is inside array\n * @return {String} converted string\n */\nfunction objectToArray(value, prop, rule, isFallback, isInArray) {\n if (!(_props.propObj[prop] || _props.customPropObj[prop])) return [];\n\n var result = [];\n\n // Check if exists any non-standart property\n if (_props.customPropObj[prop]) {\n value = customPropsToStyle(value, rule, _props.customPropObj[prop], isFallback);\n }\n\n // Pass throught all standart props\n if (Object.keys(value).length) {\n for (var baseProp in _props.propObj[prop]) {\n if (value[baseProp]) {\n if (Array.isArray(value[baseProp])) {\n result.push(_props.propArrayInObj[baseProp] === null ? value[baseProp] : value[baseProp].join(' '));\n } else result.push(value[baseProp]);\n continue;\n }\n\n // Add default value from props config.\n if (_props.propObj[prop][baseProp] != null) {\n result.push(_props.propObj[prop][baseProp]);\n }\n }\n }\n\n if (!result.length || isInArray) return result;\n return [result];\n}\n\n/**\n * Convert custom properties values to styles adding them to rule directly\n *\n * @param {Object} object of values\n * @param {Object} original rule\n * @param {String} property, that contain partial custom properties\n * @param {Boolean} is fallback prop\n * @return {Object} value without custom properties, that was already added to rule\n */\nfunction customPropsToStyle(value, rule, customProps, isFallback) {\n for (var prop in customProps) {\n var propName = customProps[prop];\n\n // If current property doesn't exist already in rule - add new one\n if (typeof value[prop] !== 'undefined' && (isFallback || !rule.prop(propName))) {\n var appendedValue = styleDetector(_defineProperty({}, propName, value[prop]), rule)[propName];\n\n // Add style directly in rule\n if (isFallback) rule.style.fallbacks[propName] = appendedValue;else rule.style[propName] = appendedValue;\n }\n // Delete converted property to avoid double converting\n delete value[prop];\n }\n\n return value;\n}\n\n/**\n * Detect if a style needs to be converted.\n *\n * @param {Object} style\n * @param {Object} rule\n * @param {Boolean} is fallback prop\n * @return {Object} convertedStyle\n */\nfunction styleDetector(style, rule, isFallback) {\n for (var prop in style) {\n var value = style[prop];\n\n if (Array.isArray(value)) {\n // Check double arrays to avoid recursion.\n if (!Array.isArray(value[0])) {\n if (prop === 'fallbacks') {\n for (var index = 0; index < style.fallbacks.length; index++) {\n style.fallbacks[index] = styleDetector(style.fallbacks[index], rule, true);\n }\n continue;\n }\n\n style[prop] = processArray(value, prop, _props.propArray);\n // Avoid creating properties with empty values\n if (!style[prop].length) delete style[prop];\n }\n } else if ((typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object') {\n if (prop === 'fallbacks') {\n style.fallbacks = styleDetector(style.fallbacks, rule, true);\n continue;\n }\n\n style[prop] = objectToArray(value, prop, rule, isFallback);\n // Avoid creating properties with empty values\n if (!style[prop].length) delete style[prop];\n }\n\n // Maybe a computed value resulting in an empty string\n else if (style[prop] === '') delete style[prop];\n }\n\n return style;\n}\n\n/**\n * Adds possibility to write expanded styles.\n *\n * @param {Rule} rule\n * @api public\n */\nfunction jssExpand() {\n function onProcessStyle(style, rule) {\n if (!style || rule.type !== 'style') return style;\n\n if (Array.isArray(style)) {\n // Pass rules one by one and reformat them\n for (var index = 0; index < style.length; index++) {\n style[index] = styleDetector(style[index], rule);\n }\n return style;\n }\n\n return styleDetector(style, rule);\n }\n\n return { onProcessStyle: onProcessStyle };\n}\n\n//# sourceURL=webpack:///./node_modules/jss-expand/lib/index.js?"); + +/***/ }), + +/***/ "./node_modules/jss-expand/lib/props.js": +/*!**********************************************!*\ + !*** ./node_modules/jss-expand/lib/props.js ***! + \**********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n/**\n * A scheme for converting properties from array to regular style.\n * All properties listed below will be transformed to a string separated by space.\n */\nvar propArray = exports.propArray = {\n 'background-size': true,\n 'background-position': true,\n border: true,\n 'border-bottom': true,\n 'border-left': true,\n 'border-top': true,\n 'border-right': true,\n 'border-radius': true,\n 'border-image': true,\n 'border-width': true,\n 'border-style': true,\n 'border-color': true,\n 'box-shadow': true,\n flex: true,\n margin: true,\n padding: true,\n outline: true,\n 'transform-origin': true,\n transform: true,\n transition: true\n\n /**\n * A scheme for converting arrays to regular styles inside of objects.\n * For e.g.: \"{position: [0, 0]}\" => \"background-position: 0 0;\".\n */\n};var propArrayInObj = exports.propArrayInObj = {\n position: true, // background-position\n size: true // background-size\n\n\n /**\n * A scheme for parsing and building correct styles from passed objects.\n */\n};var propObj = exports.propObj = {\n padding: {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n },\n margin: {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n },\n background: {\n attachment: null,\n color: null,\n image: null,\n position: null,\n repeat: null\n },\n border: {\n width: null,\n style: null,\n color: null\n },\n 'border-top': {\n width: null,\n style: null,\n color: null\n },\n 'border-right': {\n width: null,\n style: null,\n color: null\n },\n 'border-bottom': {\n width: null,\n style: null,\n color: null\n },\n 'border-left': {\n width: null,\n style: null,\n color: null\n },\n outline: {\n width: null,\n style: null,\n color: null\n },\n 'list-style': {\n type: null,\n position: null,\n image: null\n },\n transition: {\n property: null,\n duration: null,\n 'timing-function': null,\n timingFunction: null, // Needed for avoiding comilation issues with jss-camel-case\n delay: null\n },\n animation: {\n name: null,\n duration: null,\n 'timing-function': null,\n timingFunction: null, // Needed to avoid compilation issues with jss-camel-case\n delay: null,\n 'iteration-count': null,\n iterationCount: null, // Needed to avoid compilation issues with jss-camel-case\n direction: null,\n 'fill-mode': null,\n fillMode: null, // Needed to avoid compilation issues with jss-camel-case\n 'play-state': null,\n playState: null // Needed to avoid compilation issues with jss-camel-case\n },\n 'box-shadow': {\n x: 0,\n y: 0,\n blur: 0,\n spread: 0,\n color: null,\n inset: null\n },\n 'text-shadow': {\n x: 0,\n y: 0,\n blur: null,\n color: null\n }\n\n /**\n * A scheme for converting non-standart properties inside object.\n * For e.g.: include 'border-radius' property inside 'border' object.\n */\n};var customPropObj = exports.customPropObj = {\n border: {\n radius: 'border-radius',\n image: 'border-image',\n width: 'border-width',\n style: 'border-style',\n color: 'border-color'\n },\n background: {\n size: 'background-size',\n image: 'background-image'\n },\n font: {\n style: 'font-style',\n variant: 'font-variant',\n weight: 'font-weight',\n stretch: 'font-stretch',\n size: 'font-size',\n family: 'font-family',\n lineHeight: 'line-height', // Needed to avoid compilation issues with jss-camel-case\n 'line-height': 'line-height'\n },\n flex: {\n grow: 'flex-grow',\n basis: 'flex-basis',\n direction: 'flex-direction',\n wrap: 'flex-wrap',\n flow: 'flex-flow',\n shrink: 'flex-shrink'\n },\n align: {\n self: 'align-self',\n items: 'align-items',\n content: 'align-content'\n },\n grid: {\n 'template-columns': 'grid-template-columns',\n templateColumns: 'grid-template-columns',\n\n 'template-rows': 'grid-template-rows',\n templateRows: 'grid-template-rows',\n\n 'template-areas': 'grid-template-areas',\n templateAreas: 'grid-template-areas',\n\n template: 'grid-template',\n\n 'auto-columns': 'grid-auto-columns',\n autoColumns: 'grid-auto-columns',\n\n 'auto-rows': 'grid-auto-rows',\n autoRows: 'grid-auto-rows',\n\n 'auto-flow': 'grid-auto-flow',\n autoFlow: 'grid-auto-flow',\n\n row: 'grid-row',\n column: 'grid-column',\n\n 'row-start': 'grid-row-start',\n rowStart: 'grid-row-start',\n 'row-end': 'grid-row-end',\n rowEnd: 'grid-row-end',\n\n 'column-start': 'grid-column-start',\n columnStart: 'grid-column-start',\n 'column-end': 'grid-column-end',\n columnEnd: 'grid-column-end',\n\n area: 'grid-area',\n gap: 'grid-gap',\n\n 'row-gap': 'grid-row-gap',\n rowGap: 'grid-row-gap',\n\n 'column-gap': 'grid-column-gap',\n columnGap: 'grid-column-gap'\n }\n};\n\n//# sourceURL=webpack:///./node_modules/jss-expand/lib/props.js?"); + +/***/ }), + +/***/ "./node_modules/jss-extend/lib/index.js": +/*!**********************************************!*\ + !*** ./node_modules/jss-extend/lib/index.js ***! + \**********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nexports['default'] = jssExtend;\n\nvar _warning = __webpack_require__(/*! warning */ \"./node_modules/warning/browser.js\");\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar isObject = function isObject(obj) {\n return obj && (typeof obj === 'undefined' ? 'undefined' : _typeof(obj)) === 'object' && !Array.isArray(obj);\n};\nvar valueNs = 'extendCurrValue' + Date.now();\n\nfunction mergeExtend(style, rule, sheet, newStyle) {\n var extendType = _typeof(style.extend);\n // Extend using a rule name.\n if (extendType === 'string') {\n if (!sheet) return;\n var refRule = sheet.getRule(style.extend);\n if (!refRule) return;\n if (refRule === rule) {\n (0, _warning2['default'])(false, '[JSS] A rule tries to extend itself \\r\\n%s', rule);\n return;\n }\n var parent = refRule.options.parent;\n\n if (parent) {\n var originalStyle = parent.rules.raw[style.extend];\n extend(originalStyle, rule, sheet, newStyle);\n }\n return;\n }\n\n // Extend using an array of objects.\n if (Array.isArray(style.extend)) {\n for (var index = 0; index < style.extend.length; index++) {\n extend(style.extend[index], rule, sheet, newStyle);\n }\n return;\n }\n\n // Extend is a style object.\n for (var prop in style.extend) {\n if (prop === 'extend') {\n extend(style.extend.extend, rule, sheet, newStyle);\n continue;\n }\n if (isObject(style.extend[prop])) {\n if (!(prop in newStyle)) newStyle[prop] = {};\n extend(style.extend[prop], rule, sheet, newStyle[prop]);\n continue;\n }\n newStyle[prop] = style.extend[prop];\n }\n}\n\nfunction mergeRest(style, rule, sheet, newStyle) {\n // Copy base style.\n for (var prop in style) {\n if (prop === 'extend') continue;\n if (isObject(newStyle[prop]) && isObject(style[prop])) {\n extend(style[prop], rule, sheet, newStyle[prop]);\n continue;\n }\n\n if (isObject(style[prop])) {\n newStyle[prop] = extend(style[prop], rule, sheet);\n continue;\n }\n\n newStyle[prop] = style[prop];\n }\n}\n\n/**\n * Recursively extend styles.\n */\nfunction extend(style, rule, sheet) {\n var newStyle = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n\n mergeExtend(style, rule, sheet, newStyle);\n mergeRest(style, rule, sheet, newStyle);\n return newStyle;\n}\n\n/**\n * Handle `extend` property.\n *\n * @param {Rule} rule\n * @api public\n */\nfunction jssExtend() {\n function onProcessStyle(style, rule, sheet) {\n if ('extend' in style) return extend(style, rule, sheet);\n return style;\n }\n\n function onChangeValue(value, prop, rule) {\n if (prop !== 'extend') return value;\n\n // Value is empty, remove properties set previously.\n if (value == null || value === false) {\n for (var key in rule[valueNs]) {\n rule.prop(key, null);\n }\n rule[valueNs] = null;\n return null;\n }\n\n for (var _key in value) {\n rule.prop(_key, value[_key]);\n }\n rule[valueNs] = value;\n\n // Make sure we don't set the value in the core.\n return null;\n }\n\n return { onProcessStyle: onProcessStyle, onChangeValue: onChangeValue };\n}\n\n//# sourceURL=webpack:///./node_modules/jss-extend/lib/index.js?"); + +/***/ }), + +/***/ "./node_modules/jss-global/lib/index.js": +/*!**********************************************!*\ + !*** ./node_modules/jss-global/lib/index.js ***! + \**********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nexports['default'] = jssGlobal;\n\nvar _jss = __webpack_require__(/*! jss */ \"./node_modules/jss/lib/index.js\");\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar propKey = '@global';\nvar prefixKey = '@global ';\n\nvar GlobalContainerRule = function () {\n function GlobalContainerRule(key, styles, options) {\n _classCallCheck(this, GlobalContainerRule);\n\n this.type = 'global';\n\n this.key = key;\n this.options = options;\n this.rules = new _jss.RuleList(_extends({}, options, {\n parent: this\n }));\n\n for (var selector in styles) {\n this.rules.add(selector, styles[selector], { selector: selector });\n }\n\n this.rules.process();\n }\n\n /**\n * Get a rule.\n */\n\n\n _createClass(GlobalContainerRule, [{\n key: 'getRule',\n value: function getRule(name) {\n return this.rules.get(name);\n }\n\n /**\n * Create and register rule, run plugins.\n */\n\n }, {\n key: 'addRule',\n value: function addRule(name, style, options) {\n var rule = this.rules.add(name, style, options);\n this.options.jss.plugins.onProcessRule(rule);\n return rule;\n }\n\n /**\n * Get index of a rule.\n */\n\n }, {\n key: 'indexOf',\n value: function indexOf(rule) {\n return this.rules.indexOf(rule);\n }\n\n /**\n * Generates a CSS string.\n */\n\n }, {\n key: 'toString',\n value: function toString() {\n return this.rules.toString();\n }\n }]);\n\n return GlobalContainerRule;\n}();\n\nvar GlobalPrefixedRule = function () {\n function GlobalPrefixedRule(name, style, options) {\n _classCallCheck(this, GlobalPrefixedRule);\n\n this.name = name;\n this.options = options;\n var selector = name.substr(prefixKey.length);\n this.rule = options.jss.createRule(selector, style, _extends({}, options, {\n parent: this,\n selector: selector\n }));\n }\n\n _createClass(GlobalPrefixedRule, [{\n key: 'toString',\n value: function toString(options) {\n return this.rule.toString(options);\n }\n }]);\n\n return GlobalPrefixedRule;\n}();\n\nvar separatorRegExp = /\\s*,\\s*/g;\n\nfunction addScope(selector, scope) {\n var parts = selector.split(separatorRegExp);\n var scoped = '';\n for (var i = 0; i < parts.length; i++) {\n scoped += scope + ' ' + parts[i].trim();\n if (parts[i + 1]) scoped += ', ';\n }\n return scoped;\n}\n\nfunction handleNestedGlobalContainerRule(rule) {\n var options = rule.options,\n style = rule.style;\n\n var rules = style[propKey];\n\n if (!rules) return;\n\n for (var name in rules) {\n options.sheet.addRule(name, rules[name], _extends({}, options, {\n selector: addScope(name, rule.selector)\n }));\n }\n\n delete style[propKey];\n}\n\nfunction handlePrefixedGlobalRule(rule) {\n var options = rule.options,\n style = rule.style;\n\n for (var prop in style) {\n if (prop.substr(0, propKey.length) !== propKey) continue;\n\n var selector = addScope(prop.substr(propKey.length), rule.selector);\n options.sheet.addRule(selector, style[prop], _extends({}, options, {\n selector: selector\n }));\n delete style[prop];\n }\n}\n\n/**\n * Convert nested rules to separate, remove them from original styles.\n *\n * @param {Rule} rule\n * @api public\n */\nfunction jssGlobal() {\n function onCreateRule(name, styles, options) {\n if (name === propKey) {\n return new GlobalContainerRule(name, styles, options);\n }\n\n if (name[0] === '@' && name.substr(0, prefixKey.length) === prefixKey) {\n return new GlobalPrefixedRule(name, styles, options);\n }\n\n var parent = options.parent;\n\n\n if (parent) {\n if (parent.type === 'global' || parent.options.parent.type === 'global') {\n options.global = true;\n }\n }\n\n if (options.global) options.selector = name;\n\n return null;\n }\n\n function onProcessRule(rule) {\n if (rule.type !== 'style') return;\n\n handleNestedGlobalContainerRule(rule);\n handlePrefixedGlobalRule(rule);\n }\n\n return { onCreateRule: onCreateRule, onProcessRule: onProcessRule };\n}\n\n//# sourceURL=webpack:///./node_modules/jss-global/lib/index.js?"); + +/***/ }), + +/***/ "./node_modules/jss-nested/lib/index.js": +/*!**********************************************!*\ + !*** ./node_modules/jss-nested/lib/index.js ***! + \**********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nexports.default = jssNested;\n\nvar _warning = __webpack_require__(/*! warning */ \"./node_modules/warning/browser.js\");\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar separatorRegExp = /\\s*,\\s*/g;\nvar parentRegExp = /&/g;\nvar refRegExp = /\\$([\\w-]+)/g;\n\n/**\n * Convert nested rules to separate, remove them from original styles.\n *\n * @param {Rule} rule\n * @api public\n */\nfunction jssNested() {\n // Get a function to be used for $ref replacement.\n function getReplaceRef(container) {\n return function (match, key) {\n var rule = container.getRule(key);\n if (rule) return rule.selector;\n (0, _warning2.default)(false, '[JSS] Could not find the referenced rule %s in %s.', key, container.options.meta || container);\n return key;\n };\n }\n\n var hasAnd = function hasAnd(str) {\n return str.indexOf('&') !== -1;\n };\n\n function replaceParentRefs(nestedProp, parentProp) {\n var parentSelectors = parentProp.split(separatorRegExp);\n var nestedSelectors = nestedProp.split(separatorRegExp);\n\n var result = '';\n\n for (var i = 0; i < parentSelectors.length; i++) {\n var parent = parentSelectors[i];\n\n for (var j = 0; j < nestedSelectors.length; j++) {\n var nested = nestedSelectors[j];\n if (result) result += ', ';\n // Replace all & by the parent or prefix & with the parent.\n result += hasAnd(nested) ? nested.replace(parentRegExp, parent) : parent + ' ' + nested;\n }\n }\n\n return result;\n }\n\n function getOptions(rule, container, options) {\n // Options has been already created, now we only increase index.\n if (options) return _extends({}, options, { index: options.index + 1 });\n\n var nestingLevel = rule.options.nestingLevel;\n\n nestingLevel = nestingLevel === undefined ? 1 : nestingLevel + 1;\n\n return _extends({}, rule.options, {\n nestingLevel: nestingLevel,\n index: container.indexOf(rule) + 1\n });\n }\n\n function onProcessStyle(style, rule) {\n if (rule.type !== 'style') return style;\n var container = rule.options.parent;\n var options = void 0;\n var replaceRef = void 0;\n for (var prop in style) {\n var isNested = hasAnd(prop);\n var isNestedConditional = prop[0] === '@';\n\n if (!isNested && !isNestedConditional) continue;\n\n options = getOptions(rule, container, options);\n\n if (isNested) {\n var selector = replaceParentRefs(prop, rule.selector\n // Lazily create the ref replacer function just once for\n // all nested rules within the sheet.\n );if (!replaceRef) replaceRef = getReplaceRef(container\n // Replace all $refs.\n );selector = selector.replace(refRegExp, replaceRef);\n\n container.addRule(selector, style[prop], _extends({}, options, { selector: selector }));\n } else if (isNestedConditional) {\n container\n // Place conditional right after the parent rule to ensure right ordering.\n .addRule(prop, null, options).addRule(rule.key, style[prop], { selector: rule.selector });\n }\n\n delete style[prop];\n }\n\n return style;\n }\n\n return { onProcessStyle: onProcessStyle };\n}\n\n//# sourceURL=webpack:///./node_modules/jss-nested/lib/index.js?"); + +/***/ }), + +/***/ "./node_modules/jss-preset-default/lib/index.js": +/*!******************************************************!*\ + !*** ./node_modules/jss-preset-default/lib/index.js ***! + \******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _jssTemplate = __webpack_require__(/*! jss-template */ \"./node_modules/jss-template/lib/index.js\");\n\nvar _jssTemplate2 = _interopRequireDefault(_jssTemplate);\n\nvar _jssGlobal = __webpack_require__(/*! jss-global */ \"./node_modules/jss-global/lib/index.js\");\n\nvar _jssGlobal2 = _interopRequireDefault(_jssGlobal);\n\nvar _jssExtend = __webpack_require__(/*! jss-extend */ \"./node_modules/jss-extend/lib/index.js\");\n\nvar _jssExtend2 = _interopRequireDefault(_jssExtend);\n\nvar _jssNested = __webpack_require__(/*! jss-nested */ \"./node_modules/jss-nested/lib/index.js\");\n\nvar _jssNested2 = _interopRequireDefault(_jssNested);\n\nvar _jssCompose = __webpack_require__(/*! jss-compose */ \"./node_modules/jss-compose/lib/index.js\");\n\nvar _jssCompose2 = _interopRequireDefault(_jssCompose);\n\nvar _jssCamelCase = __webpack_require__(/*! jss-camel-case */ \"./node_modules/jss-camel-case/lib/index.js\");\n\nvar _jssCamelCase2 = _interopRequireDefault(_jssCamelCase);\n\nvar _jssDefaultUnit = __webpack_require__(/*! jss-default-unit */ \"./node_modules/jss-default-unit/lib/index.js\");\n\nvar _jssDefaultUnit2 = _interopRequireDefault(_jssDefaultUnit);\n\nvar _jssExpand = __webpack_require__(/*! jss-expand */ \"./node_modules/jss-expand/lib/index.js\");\n\nvar _jssExpand2 = _interopRequireDefault(_jssExpand);\n\nvar _jssVendorPrefixer = __webpack_require__(/*! jss-vendor-prefixer */ \"./node_modules/jss-vendor-prefixer/lib/index.js\");\n\nvar _jssVendorPrefixer2 = _interopRequireDefault(_jssVendorPrefixer);\n\nvar _jssPropsSort = __webpack_require__(/*! jss-props-sort */ \"./node_modules/jss-props-sort/lib/index.js\");\n\nvar _jssPropsSort2 = _interopRequireDefault(_jssPropsSort);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function () {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n return {\n plugins: [(0, _jssTemplate2.default)(options.template), (0, _jssGlobal2.default)(options.global), (0, _jssExtend2.default)(options.extend), (0, _jssNested2.default)(options.nested), (0, _jssCompose2.default)(options.compose), (0, _jssCamelCase2.default)(options.camelCase), (0, _jssDefaultUnit2.default)(options.defaultUnit), (0, _jssExpand2.default)(options.expand), (0, _jssVendorPrefixer2.default)(options.vendorPrefixer), (0, _jssPropsSort2.default)(options.propsSort)]\n };\n};\n\n//# sourceURL=webpack:///./node_modules/jss-preset-default/lib/index.js?"); + +/***/ }), + +/***/ "./node_modules/jss-props-sort/lib/index.js": +/*!**************************************************!*\ + !*** ./node_modules/jss-props-sort/lib/index.js ***! + \**************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports['default'] = jssPropsSort;\n/**\n * Sort props by length.\n */\nfunction jssPropsSort() {\n function sort(prop0, prop1) {\n return prop0.length - prop1.length;\n }\n\n function onProcessStyle(style, rule) {\n if (rule.type !== 'style') return style;\n\n var newStyle = {};\n var props = Object.keys(style).sort(sort);\n for (var prop in props) {\n newStyle[props[prop]] = style[props[prop]];\n }\n return newStyle;\n }\n\n return { onProcessStyle: onProcessStyle };\n}\n\n//# sourceURL=webpack:///./node_modules/jss-props-sort/lib/index.js?"); + +/***/ }), + +/***/ "./node_modules/jss-template/lib/index.js": +/*!************************************************!*\ + !*** ./node_modules/jss-template/lib/index.js ***! + \************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _parse = __webpack_require__(/*! ./parse */ \"./node_modules/jss-template/lib/parse.js\");\n\nvar _parse2 = _interopRequireDefault(_parse);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar onProcessRule = function onProcessRule(rule) {\n if (typeof rule.style === 'string') {\n rule.style = (0, _parse2['default'])(rule.style);\n }\n};\n\nexports['default'] = function () {\n return { onProcessRule: onProcessRule };\n};\n\n//# sourceURL=webpack:///./node_modules/jss-template/lib/index.js?"); + +/***/ }), + +/***/ "./node_modules/jss-template/lib/parse.js": +/*!************************************************!*\ + !*** ./node_modules/jss-template/lib/parse.js ***! + \************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _warning = __webpack_require__(/*! warning */ \"./node_modules/warning/browser.js\");\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar semiWithNl = /;\\n/;\n\n/**\n * Naive CSS parser.\n * - Supports only rule body (no selectors)\n * - Requires semicolon and new line after the value (except of last line)\n * - No nested rules support\n */\n\nexports['default'] = function (cssText) {\n var style = {};\n var split = cssText.split(semiWithNl);\n for (var i = 0; i < split.length; i++) {\n var decl = (split[i] || '').trim();\n\n if (!decl) continue;\n var colonIndex = decl.indexOf(':');\n if (colonIndex === -1) {\n (0, _warning2['default'])(false, 'Malformed CSS string \"%s\"', decl);\n continue;\n }\n var prop = decl.substr(0, colonIndex).trim();\n var value = decl.substr(colonIndex + 1).trim();\n style[prop] = value;\n }\n return style;\n};\n\n//# sourceURL=webpack:///./node_modules/jss-template/lib/parse.js?"); + +/***/ }), + +/***/ "./node_modules/jss-vendor-prefixer/lib/index.js": +/*!*******************************************************!*\ + !*** ./node_modules/jss-vendor-prefixer/lib/index.js ***! + \*******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports['default'] = jssVendorPrefixer;\n\nvar _cssVendor = __webpack_require__(/*! css-vendor */ \"./node_modules/css-vendor/lib/index.js\");\n\nvar vendor = _interopRequireWildcard(_cssVendor);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }\n\n/**\n * Add vendor prefix to a property name when needed.\n *\n * @param {Rule} rule\n * @api public\n */\nfunction jssVendorPrefixer() {\n function onProcessRule(rule) {\n if (rule.type === 'keyframes') {\n rule.key = '@' + vendor.prefix.css + rule.key.substr(1);\n }\n }\n\n function onProcessStyle(style, rule) {\n if (rule.type !== 'style') return style;\n\n for (var prop in style) {\n var value = style[prop];\n\n var changeProp = false;\n var supportedProp = vendor.supportedProperty(prop);\n if (supportedProp && supportedProp !== prop) changeProp = true;\n\n var changeValue = false;\n var supportedValue = vendor.supportedValue(supportedProp, value);\n if (supportedValue && supportedValue !== value) changeValue = true;\n\n if (changeProp || changeValue) {\n if (changeProp) delete style[prop];\n style[supportedProp || prop] = supportedValue || value;\n }\n }\n\n return style;\n }\n\n function onChangeValue(value, prop) {\n return vendor.supportedValue(prop, value);\n }\n\n return { onProcessRule: onProcessRule, onProcessStyle: onProcessStyle, onChangeValue: onChangeValue };\n}\n\n//# sourceURL=webpack:///./node_modules/jss-vendor-prefixer/lib/index.js?"); + +/***/ }), + +/***/ "./node_modules/jss/lib/Jss.js": +/*!*************************************!*\ + !*** ./node_modules/jss/lib/Jss.js ***! + \*************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _isInBrowser = __webpack_require__(/*! is-in-browser */ \"./node_modules/is-in-browser/dist/module.js\");\n\nvar _isInBrowser2 = _interopRequireDefault(_isInBrowser);\n\nvar _StyleSheet = __webpack_require__(/*! ./StyleSheet */ \"./node_modules/jss/lib/StyleSheet.js\");\n\nvar _StyleSheet2 = _interopRequireDefault(_StyleSheet);\n\nvar _PluginsRegistry = __webpack_require__(/*! ./PluginsRegistry */ \"./node_modules/jss/lib/PluginsRegistry.js\");\n\nvar _PluginsRegistry2 = _interopRequireDefault(_PluginsRegistry);\n\nvar _rules = __webpack_require__(/*! ./plugins/rules */ \"./node_modules/jss/lib/plugins/rules.js\");\n\nvar _rules2 = _interopRequireDefault(_rules);\n\nvar _observables = __webpack_require__(/*! ./plugins/observables */ \"./node_modules/jss/lib/plugins/observables.js\");\n\nvar _observables2 = _interopRequireDefault(_observables);\n\nvar _functions = __webpack_require__(/*! ./plugins/functions */ \"./node_modules/jss/lib/plugins/functions.js\");\n\nvar _functions2 = _interopRequireDefault(_functions);\n\nvar _sheets = __webpack_require__(/*! ./sheets */ \"./node_modules/jss/lib/sheets.js\");\n\nvar _sheets2 = _interopRequireDefault(_sheets);\n\nvar _StyleRule = __webpack_require__(/*! ./rules/StyleRule */ \"./node_modules/jss/lib/rules/StyleRule.js\");\n\nvar _StyleRule2 = _interopRequireDefault(_StyleRule);\n\nvar _createGenerateClassName = __webpack_require__(/*! ./utils/createGenerateClassName */ \"./node_modules/jss/lib/utils/createGenerateClassName.js\");\n\nvar _createGenerateClassName2 = _interopRequireDefault(_createGenerateClassName);\n\nvar _createRule2 = __webpack_require__(/*! ./utils/createRule */ \"./node_modules/jss/lib/utils/createRule.js\");\n\nvar _createRule3 = _interopRequireDefault(_createRule2);\n\nvar _DomRenderer = __webpack_require__(/*! ./renderers/DomRenderer */ \"./node_modules/jss/lib/renderers/DomRenderer.js\");\n\nvar _DomRenderer2 = _interopRequireDefault(_DomRenderer);\n\nvar _VirtualRenderer = __webpack_require__(/*! ./renderers/VirtualRenderer */ \"./node_modules/jss/lib/renderers/VirtualRenderer.js\");\n\nvar _VirtualRenderer2 = _interopRequireDefault(_VirtualRenderer);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar defaultPlugins = _rules2['default'].concat([_observables2['default'], _functions2['default']]);\n\nvar instanceCounter = 0;\n\nvar Jss = function () {\n function Jss(options) {\n _classCallCheck(this, Jss);\n\n this.id = instanceCounter++;\n this.version = \"9.8.7\";\n this.plugins = new _PluginsRegistry2['default']();\n this.options = {\n createGenerateClassName: _createGenerateClassName2['default'],\n Renderer: _isInBrowser2['default'] ? _DomRenderer2['default'] : _VirtualRenderer2['default'],\n plugins: []\n };\n this.generateClassName = (0, _createGenerateClassName2['default'])();\n\n // eslint-disable-next-line prefer-spread\n this.use.apply(this, defaultPlugins);\n this.setup(options);\n }\n\n _createClass(Jss, [{\n key: 'setup',\n value: function setup() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n if (options.createGenerateClassName) {\n this.options.createGenerateClassName = options.createGenerateClassName;\n // $FlowFixMe\n this.generateClassName = options.createGenerateClassName();\n }\n\n if (options.insertionPoint != null) this.options.insertionPoint = options.insertionPoint;\n if (options.virtual || options.Renderer) {\n this.options.Renderer = options.Renderer || (options.virtual ? _VirtualRenderer2['default'] : _DomRenderer2['default']);\n }\n\n // eslint-disable-next-line prefer-spread\n if (options.plugins) this.use.apply(this, options.plugins);\n\n return this;\n }\n\n /**\n * Create a Style Sheet.\n */\n\n }, {\n key: 'createStyleSheet',\n value: function createStyleSheet(styles) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n var index = options.index;\n if (typeof index !== 'number') {\n index = _sheets2['default'].index === 0 ? 0 : _sheets2['default'].index + 1;\n }\n var sheet = new _StyleSheet2['default'](styles, _extends({}, options, {\n jss: this,\n generateClassName: options.generateClassName || this.generateClassName,\n insertionPoint: this.options.insertionPoint,\n Renderer: this.options.Renderer,\n index: index\n }));\n this.plugins.onProcessSheet(sheet);\n\n return sheet;\n }\n\n /**\n * Detach the Style Sheet and remove it from the registry.\n */\n\n }, {\n key: 'removeStyleSheet',\n value: function removeStyleSheet(sheet) {\n sheet.detach();\n _sheets2['default'].remove(sheet);\n return this;\n }\n\n /**\n * Create a rule without a Style Sheet.\n */\n\n }, {\n key: 'createRule',\n value: function createRule(name) {\n var style = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n // Enable rule without name for inline styles.\n if ((typeof name === 'undefined' ? 'undefined' : _typeof(name)) === 'object') {\n options = style;\n style = name;\n name = undefined;\n }\n\n // Cast from RuleFactoryOptions to RuleOptions\n // https://stackoverflow.com/questions/41328728/force-casting-in-flow\n var ruleOptions = options;\n\n ruleOptions.jss = this;\n ruleOptions.Renderer = this.options.Renderer;\n if (!ruleOptions.generateClassName) ruleOptions.generateClassName = this.generateClassName;\n if (!ruleOptions.classes) ruleOptions.classes = {};\n var rule = (0, _createRule3['default'])(name, style, ruleOptions);\n\n if (!ruleOptions.selector && rule instanceof _StyleRule2['default']) {\n rule.selector = '.' + ruleOptions.generateClassName(rule);\n }\n\n this.plugins.onProcessRule(rule);\n\n return rule;\n }\n\n /**\n * Register plugin. Passed function will be invoked with a rule instance.\n */\n\n }, {\n key: 'use',\n value: function use() {\n var _this = this;\n\n for (var _len = arguments.length, plugins = Array(_len), _key = 0; _key < _len; _key++) {\n plugins[_key] = arguments[_key];\n }\n\n plugins.forEach(function (plugin) {\n // Avoids applying same plugin twice, at least based on ref.\n if (_this.options.plugins.indexOf(plugin) === -1) {\n _this.options.plugins.push(plugin);\n _this.plugins.use(plugin);\n }\n });\n\n return this;\n }\n }]);\n\n return Jss;\n}();\n\nexports['default'] = Jss;\n\n//# sourceURL=webpack:///./node_modules/jss/lib/Jss.js?"); + +/***/ }), + +/***/ "./node_modules/jss/lib/PluginsRegistry.js": +/*!*************************************************!*\ + !*** ./node_modules/jss/lib/PluginsRegistry.js ***! + \*************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _warning = __webpack_require__(/*! warning */ \"./node_modules/warning/browser.js\");\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar PluginsRegistry = function () {\n function PluginsRegistry() {\n _classCallCheck(this, PluginsRegistry);\n\n this.hooks = {\n onCreateRule: [],\n onProcessRule: [],\n onProcessStyle: [],\n onProcessSheet: [],\n onChangeValue: [],\n onUpdate: []\n\n /**\n * Call `onCreateRule` hooks and return an object if returned by a hook.\n */\n };\n }\n\n _createClass(PluginsRegistry, [{\n key: 'onCreateRule',\n value: function onCreateRule(name, decl, options) {\n for (var i = 0; i < this.hooks.onCreateRule.length; i++) {\n var rule = this.hooks.onCreateRule[i](name, decl, options);\n if (rule) return rule;\n }\n return null;\n }\n\n /**\n * Call `onProcessRule` hooks.\n */\n\n }, {\n key: 'onProcessRule',\n value: function onProcessRule(rule) {\n if (rule.isProcessed) return;\n var sheet = rule.options.sheet;\n\n for (var i = 0; i < this.hooks.onProcessRule.length; i++) {\n this.hooks.onProcessRule[i](rule, sheet);\n }\n\n // $FlowFixMe\n if (rule.style) this.onProcessStyle(rule.style, rule, sheet);\n\n rule.isProcessed = true;\n }\n\n /**\n * Call `onProcessStyle` hooks.\n */\n\n }, {\n key: 'onProcessStyle',\n value: function onProcessStyle(style, rule, sheet) {\n var nextStyle = style;\n\n for (var i = 0; i < this.hooks.onProcessStyle.length; i++) {\n nextStyle = this.hooks.onProcessStyle[i](nextStyle, rule, sheet);\n // $FlowFixMe\n rule.style = nextStyle;\n }\n }\n\n /**\n * Call `onProcessSheet` hooks.\n */\n\n }, {\n key: 'onProcessSheet',\n value: function onProcessSheet(sheet) {\n for (var i = 0; i < this.hooks.onProcessSheet.length; i++) {\n this.hooks.onProcessSheet[i](sheet);\n }\n }\n\n /**\n * Call `onUpdate` hooks.\n */\n\n }, {\n key: 'onUpdate',\n value: function onUpdate(data, rule, sheet) {\n for (var i = 0; i < this.hooks.onUpdate.length; i++) {\n this.hooks.onUpdate[i](data, rule, sheet);\n }\n }\n\n /**\n * Call `onChangeValue` hooks.\n */\n\n }, {\n key: 'onChangeValue',\n value: function onChangeValue(value, prop, rule) {\n var processedValue = value;\n for (var i = 0; i < this.hooks.onChangeValue.length; i++) {\n processedValue = this.hooks.onChangeValue[i](processedValue, prop, rule);\n }\n return processedValue;\n }\n\n /**\n * Register a plugin.\n * If function is passed, it is a shortcut for `{onProcessRule}`.\n */\n\n }, {\n key: 'use',\n value: function use(plugin) {\n for (var name in plugin) {\n if (this.hooks[name]) this.hooks[name].push(plugin[name]);else (0, _warning2['default'])(false, '[JSS] Unknown hook \"%s\".', name);\n }\n }\n }]);\n\n return PluginsRegistry;\n}();\n\nexports['default'] = PluginsRegistry;\n\n//# sourceURL=webpack:///./node_modules/jss/lib/PluginsRegistry.js?"); + +/***/ }), + +/***/ "./node_modules/jss/lib/RuleList.js": +/*!******************************************!*\ + !*** ./node_modules/jss/lib/RuleList.js ***! + \******************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _createRule = __webpack_require__(/*! ./utils/createRule */ \"./node_modules/jss/lib/utils/createRule.js\");\n\nvar _createRule2 = _interopRequireDefault(_createRule);\n\nvar _linkRule = __webpack_require__(/*! ./utils/linkRule */ \"./node_modules/jss/lib/utils/linkRule.js\");\n\nvar _linkRule2 = _interopRequireDefault(_linkRule);\n\nvar _StyleRule = __webpack_require__(/*! ./rules/StyleRule */ \"./node_modules/jss/lib/rules/StyleRule.js\");\n\nvar _StyleRule2 = _interopRequireDefault(_StyleRule);\n\nvar _escape = __webpack_require__(/*! ./utils/escape */ \"./node_modules/jss/lib/utils/escape.js\");\n\nvar _escape2 = _interopRequireDefault(_escape);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Contains rules objects and allows adding/removing etc.\n * Is used for e.g. by `StyleSheet` or `ConditionalRule`.\n */\nvar RuleList = function () {\n\n // Original styles object.\n function RuleList(options) {\n var _this = this;\n\n _classCallCheck(this, RuleList);\n\n this.map = {};\n this.raw = {};\n this.index = [];\n\n this.update = function (name, data) {\n var _options = _this.options,\n plugins = _options.jss.plugins,\n sheet = _options.sheet;\n\n if (typeof name === 'string') {\n plugins.onUpdate(data, _this.get(name), sheet);\n } else {\n for (var index = 0; index < _this.index.length; index++) {\n plugins.onUpdate(name, _this.index[index], sheet);\n }\n }\n };\n\n this.options = options;\n this.classes = options.classes;\n }\n\n /**\n * Create and register rule.\n *\n * Will not render after Style Sheet was rendered the first time.\n */\n\n\n // Used to ensure correct rules order.\n\n // Rules registry for access by .get() method.\n // It contains the same rule registered by name and by selector.\n\n\n _createClass(RuleList, [{\n key: 'add',\n value: function add(name, decl, options) {\n var _options2 = this.options,\n parent = _options2.parent,\n sheet = _options2.sheet,\n jss = _options2.jss,\n Renderer = _options2.Renderer,\n generateClassName = _options2.generateClassName;\n\n\n options = _extends({\n classes: this.classes,\n parent: parent,\n sheet: sheet,\n jss: jss,\n Renderer: Renderer,\n generateClassName: generateClassName\n }, options);\n\n if (!options.selector && this.classes[name]) {\n options.selector = '.' + (0, _escape2['default'])(this.classes[name]);\n }\n\n this.raw[name] = decl;\n\n var rule = (0, _createRule2['default'])(name, decl, options);\n\n var className = void 0;\n\n if (!options.selector && rule instanceof _StyleRule2['default']) {\n className = generateClassName(rule, sheet);\n rule.selector = '.' + (0, _escape2['default'])(className);\n }\n\n this.register(rule, className);\n\n var index = options.index === undefined ? this.index.length : options.index;\n this.index.splice(index, 0, rule);\n\n return rule;\n }\n\n /**\n * Get a rule.\n */\n\n }, {\n key: 'get',\n value: function get(name) {\n return this.map[name];\n }\n\n /**\n * Delete a rule.\n */\n\n }, {\n key: 'remove',\n value: function remove(rule) {\n this.unregister(rule);\n this.index.splice(this.indexOf(rule), 1);\n }\n\n /**\n * Get index of a rule.\n */\n\n }, {\n key: 'indexOf',\n value: function indexOf(rule) {\n return this.index.indexOf(rule);\n }\n\n /**\n * Run `onProcessRule()` plugins on every rule.\n */\n\n }, {\n key: 'process',\n value: function process() {\n var plugins = this.options.jss.plugins;\n // We need to clone array because if we modify the index somewhere else during a loop\n // we end up with very hard-to-track-down side effects.\n\n this.index.slice(0).forEach(plugins.onProcessRule, plugins);\n }\n\n /**\n * Register a rule in `.map` and `.classes` maps.\n */\n\n }, {\n key: 'register',\n value: function register(rule, className) {\n this.map[rule.key] = rule;\n if (rule instanceof _StyleRule2['default']) {\n this.map[rule.selector] = rule;\n if (className) this.classes[rule.key] = className;\n }\n }\n\n /**\n * Unregister a rule.\n */\n\n }, {\n key: 'unregister',\n value: function unregister(rule) {\n delete this.map[rule.key];\n if (rule instanceof _StyleRule2['default']) {\n delete this.map[rule.selector];\n delete this.classes[rule.key];\n }\n }\n\n /**\n * Update the function values with a new data.\n */\n\n }, {\n key: 'link',\n\n\n /**\n * Link renderable rules with CSSRuleList.\n */\n value: function link(cssRules) {\n var map = this.options.sheet.renderer.getUnescapedKeysMap(this.index);\n\n for (var i = 0; i < cssRules.length; i++) {\n var cssRule = cssRules[i];\n var _key = this.options.sheet.renderer.getKey(cssRule);\n if (map[_key]) _key = map[_key];\n var rule = this.map[_key];\n if (rule) (0, _linkRule2['default'])(rule, cssRule);\n }\n }\n\n /**\n * Convert rules to a CSS string.\n */\n\n }, {\n key: 'toString',\n value: function toString(options) {\n var str = '';\n var sheet = this.options.sheet;\n\n var link = sheet ? sheet.options.link : false;\n\n for (var index = 0; index < this.index.length; index++) {\n var rule = this.index[index];\n var css = rule.toString(options);\n\n // No need to render an empty rule.\n if (!css && !link) continue;\n\n if (str) str += '\\n';\n str += css;\n }\n\n return str;\n }\n }]);\n\n return RuleList;\n}();\n\nexports['default'] = RuleList;\n\n//# sourceURL=webpack:///./node_modules/jss/lib/RuleList.js?"); + +/***/ }), + +/***/ "./node_modules/jss/lib/SheetsManager.js": +/*!***********************************************!*\ + !*** ./node_modules/jss/lib/SheetsManager.js ***! + \***********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _warning = __webpack_require__(/*! warning */ \"./node_modules/warning/browser.js\");\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * SheetsManager is like a WeakMap which is designed to count StyleSheet\n * instances and attach/detach automatically.\n */\nvar SheetsManager = function () {\n function SheetsManager() {\n _classCallCheck(this, SheetsManager);\n\n this.sheets = [];\n this.refs = [];\n this.keys = [];\n }\n\n _createClass(SheetsManager, [{\n key: 'get',\n value: function get(key) {\n var index = this.keys.indexOf(key);\n return this.sheets[index];\n }\n }, {\n key: 'add',\n value: function add(key, sheet) {\n var sheets = this.sheets,\n refs = this.refs,\n keys = this.keys;\n\n var index = sheets.indexOf(sheet);\n\n if (index !== -1) return index;\n\n sheets.push(sheet);\n refs.push(0);\n keys.push(key);\n\n return sheets.length - 1;\n }\n }, {\n key: 'manage',\n value: function manage(key) {\n var index = this.keys.indexOf(key);\n var sheet = this.sheets[index];\n if (this.refs[index] === 0) sheet.attach();\n this.refs[index]++;\n if (!this.keys[index]) this.keys.splice(index, 0, key);\n return sheet;\n }\n }, {\n key: 'unmanage',\n value: function unmanage(key) {\n var index = this.keys.indexOf(key);\n if (index === -1) {\n // eslint-ignore-next-line no-console\n (0, _warning2['default'])(false, \"SheetsManager: can't find sheet to unmanage\");\n return;\n }\n if (this.refs[index] > 0) {\n this.refs[index]--;\n if (this.refs[index] === 0) this.sheets[index].detach();\n }\n }\n }, {\n key: 'size',\n get: function get() {\n return this.keys.length;\n }\n }]);\n\n return SheetsManager;\n}();\n\nexports['default'] = SheetsManager;\n\n//# sourceURL=webpack:///./node_modules/jss/lib/SheetsManager.js?"); + +/***/ }), + +/***/ "./node_modules/jss/lib/SheetsRegistry.js": +/*!************************************************!*\ + !*** ./node_modules/jss/lib/SheetsRegistry.js ***! + \************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Sheets registry to access them all at one place.\n */\nvar SheetsRegistry = function () {\n function SheetsRegistry() {\n _classCallCheck(this, SheetsRegistry);\n\n this.registry = [];\n }\n\n _createClass(SheetsRegistry, [{\n key: 'add',\n\n\n /**\n * Register a Style Sheet.\n */\n value: function add(sheet) {\n var registry = this.registry;\n var index = sheet.options.index;\n\n\n if (registry.indexOf(sheet) !== -1) return;\n\n if (registry.length === 0 || index >= this.index) {\n registry.push(sheet);\n return;\n }\n\n // Find a position.\n for (var i = 0; i < registry.length; i++) {\n if (registry[i].options.index > index) {\n registry.splice(i, 0, sheet);\n return;\n }\n }\n }\n\n /**\n * Reset the registry.\n */\n\n }, {\n key: 'reset',\n value: function reset() {\n this.registry = [];\n }\n\n /**\n * Remove a Style Sheet.\n */\n\n }, {\n key: 'remove',\n value: function remove(sheet) {\n var index = this.registry.indexOf(sheet);\n this.registry.splice(index, 1);\n }\n\n /**\n * Convert all attached sheets to a CSS string.\n */\n\n }, {\n key: 'toString',\n value: function toString(options) {\n return this.registry.filter(function (sheet) {\n return sheet.attached;\n }).map(function (sheet) {\n return sheet.toString(options);\n }).join('\\n');\n }\n }, {\n key: 'index',\n\n\n /**\n * Current highest index number.\n */\n get: function get() {\n return this.registry.length === 0 ? 0 : this.registry[this.registry.length - 1].options.index;\n }\n }]);\n\n return SheetsRegistry;\n}();\n\nexports['default'] = SheetsRegistry;\n\n//# sourceURL=webpack:///./node_modules/jss/lib/SheetsRegistry.js?"); + +/***/ }), + +/***/ "./node_modules/jss/lib/StyleSheet.js": +/*!********************************************!*\ + !*** ./node_modules/jss/lib/StyleSheet.js ***! + \********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _linkRule = __webpack_require__(/*! ./utils/linkRule */ \"./node_modules/jss/lib/utils/linkRule.js\");\n\nvar _linkRule2 = _interopRequireDefault(_linkRule);\n\nvar _RuleList = __webpack_require__(/*! ./RuleList */ \"./node_modules/jss/lib/RuleList.js\");\n\nvar _RuleList2 = _interopRequireDefault(_RuleList);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/* eslint-disable-next-line no-use-before-define */\nvar StyleSheet = function () {\n function StyleSheet(styles, options) {\n var _this = this;\n\n _classCallCheck(this, StyleSheet);\n\n this.update = function (name, data) {\n if (typeof name === 'string') {\n _this.rules.update(name, data);\n } else {\n _this.rules.update(name);\n }\n return _this;\n };\n\n this.attached = false;\n this.deployed = false;\n this.linked = false;\n this.classes = {};\n this.options = _extends({}, options, {\n sheet: this,\n parent: this,\n classes: this.classes\n });\n this.renderer = new options.Renderer(this);\n this.rules = new _RuleList2['default'](this.options);\n\n for (var _name in styles) {\n this.rules.add(_name, styles[_name]);\n }\n\n this.rules.process();\n }\n\n /**\n * Attach renderable to the render tree.\n */\n\n\n _createClass(StyleSheet, [{\n key: 'attach',\n value: function attach() {\n if (this.attached) return this;\n if (!this.deployed) this.deploy();\n this.renderer.attach();\n if (!this.linked && this.options.link) this.link();\n this.attached = true;\n return this;\n }\n\n /**\n * Remove renderable from render tree.\n */\n\n }, {\n key: 'detach',\n value: function detach() {\n if (!this.attached) return this;\n this.renderer.detach();\n this.attached = false;\n return this;\n }\n\n /**\n * Add a rule to the current stylesheet.\n * Will insert a rule also after the stylesheet has been rendered first time.\n */\n\n }, {\n key: 'addRule',\n value: function addRule(name, decl, options) {\n var queue = this.queue;\n\n // Plugins can create rules.\n // In order to preserve the right order, we need to queue all `.addRule` calls,\n // which happen after the first `rules.add()` call.\n\n if (this.attached && !queue) this.queue = [];\n\n var rule = this.rules.add(name, decl, options);\n this.options.jss.plugins.onProcessRule(rule);\n\n if (this.attached) {\n if (!this.deployed) return rule;\n // Don't insert rule directly if there is no stringified version yet.\n // It will be inserted all together when .attach is called.\n if (queue) queue.push(rule);else {\n this.insertRule(rule);\n if (this.queue) {\n this.queue.forEach(this.insertRule, this);\n this.queue = undefined;\n }\n }\n return rule;\n }\n\n // We can't add rules to a detached style node.\n // We will redeploy the sheet once user will attach it.\n this.deployed = false;\n\n return rule;\n }\n\n /**\n * Insert rule into the StyleSheet\n */\n\n }, {\n key: 'insertRule',\n value: function insertRule(rule) {\n var renderable = this.renderer.insertRule(rule);\n if (renderable && this.options.link) (0, _linkRule2['default'])(rule, renderable);\n }\n\n /**\n * Create and add rules.\n * Will render also after Style Sheet was rendered the first time.\n */\n\n }, {\n key: 'addRules',\n value: function addRules(styles, options) {\n var added = [];\n for (var _name2 in styles) {\n added.push(this.addRule(_name2, styles[_name2], options));\n }\n return added;\n }\n\n /**\n * Get a rule by name.\n */\n\n }, {\n key: 'getRule',\n value: function getRule(name) {\n return this.rules.get(name);\n }\n\n /**\n * Delete a rule by name.\n * Returns `true`: if rule has been deleted from the DOM.\n */\n\n }, {\n key: 'deleteRule',\n value: function deleteRule(name) {\n var rule = this.rules.get(name);\n\n if (!rule) return false;\n\n this.rules.remove(rule);\n\n if (this.attached && rule.renderable) {\n return this.renderer.deleteRule(rule.renderable);\n }\n\n return true;\n }\n\n /**\n * Get index of a rule.\n */\n\n }, {\n key: 'indexOf',\n value: function indexOf(rule) {\n return this.rules.indexOf(rule);\n }\n\n /**\n * Deploy pure CSS string to a renderable.\n */\n\n }, {\n key: 'deploy',\n value: function deploy() {\n this.renderer.deploy();\n this.deployed = true;\n return this;\n }\n\n /**\n * Link renderable CSS rules from sheet with their corresponding models.\n */\n\n }, {\n key: 'link',\n value: function link() {\n var cssRules = this.renderer.getRules();\n\n // Is undefined when VirtualRenderer is used.\n if (cssRules) this.rules.link(cssRules);\n this.linked = true;\n return this;\n }\n\n /**\n * Update the function values with a new data.\n */\n\n }, {\n key: 'toString',\n\n\n /**\n * Convert rules to a CSS string.\n */\n value: function toString(options) {\n return this.rules.toString(options);\n }\n }]);\n\n return StyleSheet;\n}();\n\nexports['default'] = StyleSheet;\n\n//# sourceURL=webpack:///./node_modules/jss/lib/StyleSheet.js?"); + +/***/ }), + +/***/ "./node_modules/jss/lib/index.js": +/*!***************************************!*\ + !*** ./node_modules/jss/lib/index.js ***! + \***************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.create = exports.createGenerateClassName = exports.sheets = exports.RuleList = exports.SheetsManager = exports.SheetsRegistry = exports.toCssValue = exports.getDynamicStyles = undefined;\n\nvar _getDynamicStyles = __webpack_require__(/*! ./utils/getDynamicStyles */ \"./node_modules/jss/lib/utils/getDynamicStyles.js\");\n\nObject.defineProperty(exports, 'getDynamicStyles', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_getDynamicStyles)['default'];\n }\n});\n\nvar _toCssValue = __webpack_require__(/*! ./utils/toCssValue */ \"./node_modules/jss/lib/utils/toCssValue.js\");\n\nObject.defineProperty(exports, 'toCssValue', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_toCssValue)['default'];\n }\n});\n\nvar _SheetsRegistry = __webpack_require__(/*! ./SheetsRegistry */ \"./node_modules/jss/lib/SheetsRegistry.js\");\n\nObject.defineProperty(exports, 'SheetsRegistry', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_SheetsRegistry)['default'];\n }\n});\n\nvar _SheetsManager = __webpack_require__(/*! ./SheetsManager */ \"./node_modules/jss/lib/SheetsManager.js\");\n\nObject.defineProperty(exports, 'SheetsManager', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_SheetsManager)['default'];\n }\n});\n\nvar _RuleList = __webpack_require__(/*! ./RuleList */ \"./node_modules/jss/lib/RuleList.js\");\n\nObject.defineProperty(exports, 'RuleList', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_RuleList)['default'];\n }\n});\n\nvar _sheets = __webpack_require__(/*! ./sheets */ \"./node_modules/jss/lib/sheets.js\");\n\nObject.defineProperty(exports, 'sheets', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_sheets)['default'];\n }\n});\n\nvar _createGenerateClassName = __webpack_require__(/*! ./utils/createGenerateClassName */ \"./node_modules/jss/lib/utils/createGenerateClassName.js\");\n\nObject.defineProperty(exports, 'createGenerateClassName', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_createGenerateClassName)['default'];\n }\n});\n\nvar _Jss = __webpack_require__(/*! ./Jss */ \"./node_modules/jss/lib/Jss.js\");\n\nvar _Jss2 = _interopRequireDefault(_Jss);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\n/**\n * Creates a new instance of Jss.\n */\nvar create = exports.create = function create(options) {\n return new _Jss2['default'](options);\n};\n\n/**\n * A global Jss instance.\n */\nexports['default'] = create();\n\n//# sourceURL=webpack:///./node_modules/jss/lib/index.js?"); + +/***/ }), + +/***/ "./node_modules/jss/lib/plugins/functions.js": +/*!***************************************************!*\ + !*** ./node_modules/jss/lib/plugins/functions.js ***! + \***************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _RuleList = __webpack_require__(/*! ../RuleList */ \"./node_modules/jss/lib/RuleList.js\");\n\nvar _RuleList2 = _interopRequireDefault(_RuleList);\n\nvar _StyleRule = __webpack_require__(/*! ../rules/StyleRule */ \"./node_modules/jss/lib/rules/StyleRule.js\");\n\nvar _StyleRule2 = _interopRequireDefault(_StyleRule);\n\nvar _createRule = __webpack_require__(/*! ../utils/createRule */ \"./node_modules/jss/lib/utils/createRule.js\");\n\nvar _createRule2 = _interopRequireDefault(_createRule);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\n// A symbol replacement.\nvar now = Date.now();\n\nvar fnValuesNs = 'fnValues' + now;\nvar fnStyleNs = 'fnStyle' + ++now;\n\nexports['default'] = {\n onCreateRule: function onCreateRule(name, decl, options) {\n if (typeof decl !== 'function') return null;\n var rule = (0, _createRule2['default'])(name, {}, options);\n rule[fnStyleNs] = decl;\n return rule;\n },\n onProcessStyle: function onProcessStyle(style, rule) {\n var fn = {};\n for (var prop in style) {\n var value = style[prop];\n if (typeof value !== 'function') continue;\n delete style[prop];\n fn[prop] = value;\n }\n rule = rule;\n rule[fnValuesNs] = fn;\n return style;\n },\n onUpdate: function onUpdate(data, rule) {\n // It is a rules container like for e.g. ConditionalRule.\n if (rule.rules instanceof _RuleList2['default']) {\n rule.rules.update(data);\n return;\n }\n if (!(rule instanceof _StyleRule2['default'])) return;\n\n rule = rule;\n\n // If we have a fn values map, it is a rule with function values.\n if (rule[fnValuesNs]) {\n for (var prop in rule[fnValuesNs]) {\n rule.prop(prop, rule[fnValuesNs][prop](data));\n }\n }\n\n rule = rule;\n\n var fnStyle = rule[fnStyleNs];\n\n // If we have a style function, the entire rule is dynamic and style object\n // will be returned from that function.\n if (fnStyle) {\n var style = fnStyle(data);\n for (var _prop in style) {\n rule.prop(_prop, style[_prop]);\n }\n }\n }\n};\n\n//# sourceURL=webpack:///./node_modules/jss/lib/plugins/functions.js?"); + +/***/ }), + +/***/ "./node_modules/jss/lib/plugins/observables.js": +/*!*****************************************************!*\ + !*** ./node_modules/jss/lib/plugins/observables.js ***! + \*****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _StyleRule = __webpack_require__(/*! ../rules/StyleRule */ \"./node_modules/jss/lib/rules/StyleRule.js\");\n\nvar _StyleRule2 = _interopRequireDefault(_StyleRule);\n\nvar _createRule = __webpack_require__(/*! ../utils/createRule */ \"./node_modules/jss/lib/utils/createRule.js\");\n\nvar _createRule2 = _interopRequireDefault(_createRule);\n\nvar _isObservable = __webpack_require__(/*! ../utils/isObservable */ \"./node_modules/jss/lib/utils/isObservable.js\");\n\nvar _isObservable2 = _interopRequireDefault(_isObservable);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nexports['default'] = {\n onCreateRule: function onCreateRule(name, decl, options) {\n if (!(0, _isObservable2['default'])(decl)) return null;\n\n // Cast `decl` to `Observable`, since it passed the type guard.\n var style$ = decl;\n\n var rule = (0, _createRule2['default'])(name, {}, options);\n\n // TODO\n // Call `stream.subscribe()` returns a subscription, which should be explicitly\n // unsubscribed from when we know this sheet is no longer needed.\n style$.subscribe(function (style) {\n for (var prop in style) {\n rule.prop(prop, style[prop]);\n }\n });\n\n return rule;\n },\n onProcessRule: function onProcessRule(rule) {\n if (!(rule instanceof _StyleRule2['default'])) return;\n var styleRule = rule;\n var style = styleRule.style;\n\n var _loop = function _loop(prop) {\n var value = style[prop];\n if (!(0, _isObservable2['default'])(value)) return 'continue';\n delete style[prop];\n value.subscribe({\n next: function next(nextValue) {\n styleRule.prop(prop, nextValue);\n }\n });\n };\n\n for (var prop in style) {\n var _ret = _loop(prop);\n\n if (_ret === 'continue') continue;\n }\n }\n};\n\n//# sourceURL=webpack:///./node_modules/jss/lib/plugins/observables.js?"); + +/***/ }), + +/***/ "./node_modules/jss/lib/plugins/rules.js": +/*!***********************************************!*\ + !*** ./node_modules/jss/lib/plugins/rules.js ***! + \***********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _SimpleRule = __webpack_require__(/*! ../rules/SimpleRule */ \"./node_modules/jss/lib/rules/SimpleRule.js\");\n\nvar _SimpleRule2 = _interopRequireDefault(_SimpleRule);\n\nvar _KeyframesRule = __webpack_require__(/*! ../rules/KeyframesRule */ \"./node_modules/jss/lib/rules/KeyframesRule.js\");\n\nvar _KeyframesRule2 = _interopRequireDefault(_KeyframesRule);\n\nvar _ConditionalRule = __webpack_require__(/*! ../rules/ConditionalRule */ \"./node_modules/jss/lib/rules/ConditionalRule.js\");\n\nvar _ConditionalRule2 = _interopRequireDefault(_ConditionalRule);\n\nvar _FontFaceRule = __webpack_require__(/*! ../rules/FontFaceRule */ \"./node_modules/jss/lib/rules/FontFaceRule.js\");\n\nvar _FontFaceRule2 = _interopRequireDefault(_FontFaceRule);\n\nvar _ViewportRule = __webpack_require__(/*! ../rules/ViewportRule */ \"./node_modules/jss/lib/rules/ViewportRule.js\");\n\nvar _ViewportRule2 = _interopRequireDefault(_ViewportRule);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar classes = {\n '@charset': _SimpleRule2['default'],\n '@import': _SimpleRule2['default'],\n '@namespace': _SimpleRule2['default'],\n '@keyframes': _KeyframesRule2['default'],\n '@media': _ConditionalRule2['default'],\n '@supports': _ConditionalRule2['default'],\n '@font-face': _FontFaceRule2['default'],\n '@viewport': _ViewportRule2['default'],\n '@-ms-viewport': _ViewportRule2['default']\n\n /**\n * Generate plugins which will register all rules.\n */\n};\nvar plugins = Object.keys(classes).map(function (key) {\n // https://jsperf.com/indexof-vs-substr-vs-regex-at-the-beginning-3\n var re = new RegExp('^' + key);\n var RuleClass = classes[key];\n var onCreateRule = function onCreateRule(name, decl, options) {\n return re.test(name) ? new RuleClass(name, decl, options) : null;\n };\n return { onCreateRule: onCreateRule };\n});\n\nexports['default'] = plugins;\n\n//# sourceURL=webpack:///./node_modules/jss/lib/plugins/rules.js?"); + +/***/ }), + +/***/ "./node_modules/jss/lib/renderers/DomRenderer.js": +/*!*******************************************************!*\ + !*** ./node_modules/jss/lib/renderers/DomRenderer.js ***! + \*******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _warning = __webpack_require__(/*! warning */ \"./node_modules/warning/browser.js\");\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nvar _sheets = __webpack_require__(/*! ../sheets */ \"./node_modules/jss/lib/sheets.js\");\n\nvar _sheets2 = _interopRequireDefault(_sheets);\n\nvar _StyleRule = __webpack_require__(/*! ../rules/StyleRule */ \"./node_modules/jss/lib/rules/StyleRule.js\");\n\nvar _StyleRule2 = _interopRequireDefault(_StyleRule);\n\nvar _toCssValue = __webpack_require__(/*! ../utils/toCssValue */ \"./node_modules/jss/lib/utils/toCssValue.js\");\n\nvar _toCssValue2 = _interopRequireDefault(_toCssValue);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Cache the value from the first time a function is called.\n */\nvar memoize = function memoize(fn) {\n var value = void 0;\n return function () {\n if (!value) value = fn();\n return value;\n };\n};\n\n/**\n * Get a style property value.\n */\nfunction getPropertyValue(cssRule, prop) {\n try {\n return cssRule.style.getPropertyValue(prop);\n } catch (err) {\n // IE may throw if property is unknown.\n return '';\n }\n}\n\n/**\n * Set a style property.\n */\nfunction setProperty(cssRule, prop, value) {\n try {\n var cssValue = value;\n\n if (Array.isArray(value)) {\n cssValue = (0, _toCssValue2['default'])(value, true);\n\n if (value[value.length - 1] === '!important') {\n cssRule.style.setProperty(prop, cssValue, 'important');\n return true;\n }\n }\n\n cssRule.style.setProperty(prop, cssValue);\n } catch (err) {\n // IE may throw if property is unknown.\n return false;\n }\n return true;\n}\n\n/**\n * Remove a style property.\n */\nfunction removeProperty(cssRule, prop) {\n try {\n cssRule.style.removeProperty(prop);\n } catch (err) {\n (0, _warning2['default'])(false, '[JSS] DOMException \"%s\" was thrown. Tried to remove property \"%s\".', err.message, prop);\n }\n}\n\nvar CSSRuleTypes = {\n STYLE_RULE: 1,\n KEYFRAMES_RULE: 7\n\n /**\n * Get the CSS Rule key.\n */\n\n};var getKey = function () {\n var extractKey = function extractKey(cssText) {\n var from = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n return cssText.substr(from, cssText.indexOf('{') - 1);\n };\n\n return function (cssRule) {\n if (cssRule.type === CSSRuleTypes.STYLE_RULE) return cssRule.selectorText;\n if (cssRule.type === CSSRuleTypes.KEYFRAMES_RULE) {\n var name = cssRule.name;\n\n if (name) return '@keyframes ' + name;\n\n // There is no rule.name in the following browsers:\n // - IE 9\n // - Safari 7.1.8\n // - Mobile Safari 9.0.0\n var cssText = cssRule.cssText;\n\n return '@' + extractKey(cssText, cssText.indexOf('keyframes'));\n }\n\n // Conditionals.\n return extractKey(cssRule.cssText);\n };\n}();\n\n/**\n * Set the selector.\n */\nfunction setSelector(cssRule, selectorText) {\n cssRule.selectorText = selectorText;\n\n // Return false if setter was not successful.\n // Currently works in chrome only.\n return cssRule.selectorText === selectorText;\n}\n\n/**\n * Gets the `head` element upon the first call and caches it.\n */\nvar getHead = memoize(function () {\n return document.head || document.getElementsByTagName('head')[0];\n});\n\n/**\n * Gets a map of rule keys, where the property is an unescaped key and value\n * is a potentially escaped one.\n * It is used to identify CSS rules and the corresponding JSS rules. As an identifier\n * for CSSStyleRule we normally use `selectorText`. Though if original selector text\n * contains escaped code points e.g. `:not(#\\\\20)`, CSSOM will compile it to `:not(# )`\n * and so CSS rule's `selectorText` won't match JSS rule selector.\n *\n * https://www.w3.org/International/questions/qa-escapes#cssescapes\n */\nvar getUnescapedKeysMap = function () {\n var style = void 0;\n var isAttached = false;\n\n return function (rules) {\n var map = {};\n // https://github.com/facebook/flow/issues/2696\n if (!style) style = document.createElement('style');\n for (var i = 0; i < rules.length; i++) {\n var rule = rules[i];\n if (!(rule instanceof _StyleRule2['default'])) continue;\n var selector = rule.selector;\n // Only unescape selector over CSSOM if it contains a back slash.\n\n if (selector && selector.indexOf('\\\\') !== -1) {\n // Lazilly attach when needed.\n if (!isAttached) {\n getHead().appendChild(style);\n isAttached = true;\n }\n style.textContent = selector + ' {}';\n var _style = style,\n sheet = _style.sheet;\n\n if (sheet) {\n var cssRules = sheet.cssRules;\n\n if (cssRules) map[cssRules[0].selectorText] = rule.key;\n }\n }\n }\n if (isAttached) {\n getHead().removeChild(style);\n isAttached = false;\n }\n return map;\n };\n}();\n\n/**\n * Find attached sheet with an index higher than the passed one.\n */\nfunction findHigherSheet(registry, options) {\n for (var i = 0; i < registry.length; i++) {\n var sheet = registry[i];\n if (sheet.attached && sheet.options.index > options.index && sheet.options.insertionPoint === options.insertionPoint) {\n return sheet;\n }\n }\n return null;\n}\n\n/**\n * Find attached sheet with the highest index.\n */\nfunction findHighestSheet(registry, options) {\n for (var i = registry.length - 1; i >= 0; i--) {\n var sheet = registry[i];\n if (sheet.attached && sheet.options.insertionPoint === options.insertionPoint) {\n return sheet;\n }\n }\n return null;\n}\n\n/**\n * Find a comment with \"jss\" inside.\n */\nfunction findCommentNode(text) {\n var head = getHead();\n for (var i = 0; i < head.childNodes.length; i++) {\n var node = head.childNodes[i];\n if (node.nodeType === 8 && node.nodeValue.trim() === text) {\n return node;\n }\n }\n return null;\n}\n\n/**\n * Find a node before which we can insert the sheet.\n */\nfunction findPrevNode(options) {\n var registry = _sheets2['default'].registry;\n\n\n if (registry.length > 0) {\n // Try to insert before the next higher sheet.\n var sheet = findHigherSheet(registry, options);\n if (sheet) return sheet.renderer.element;\n\n // Otherwise insert after the last attached.\n sheet = findHighestSheet(registry, options);\n if (sheet) return sheet.renderer.element.nextElementSibling;\n }\n\n // Try to find a comment placeholder if registry is empty.\n var insertionPoint = options.insertionPoint;\n\n if (insertionPoint && typeof insertionPoint === 'string') {\n var comment = findCommentNode(insertionPoint);\n if (comment) return comment.nextSibling;\n // If user specifies an insertion point and it can't be found in the document -\n // bad specificity issues may appear.\n (0, _warning2['default'])(insertionPoint === 'jss', '[JSS] Insertion point \"%s\" not found.', insertionPoint);\n }\n\n return null;\n}\n\n/**\n * Insert style element into the DOM.\n */\nfunction insertStyle(style, options) {\n var insertionPoint = options.insertionPoint;\n\n var prevNode = findPrevNode(options);\n\n if (prevNode) {\n var parentNode = prevNode.parentNode;\n\n if (parentNode) parentNode.insertBefore(style, prevNode);\n return;\n }\n\n // Works with iframes and any node types.\n if (insertionPoint && typeof insertionPoint.nodeType === 'number') {\n // https://stackoverflow.com/questions/41328728/force-casting-in-flow\n var insertionPointElement = insertionPoint;\n var _parentNode = insertionPointElement.parentNode;\n\n if (_parentNode) _parentNode.insertBefore(style, insertionPointElement.nextSibling);else (0, _warning2['default'])(false, '[JSS] Insertion point is not in the DOM.');\n return;\n }\n\n getHead().insertBefore(style, prevNode);\n}\n\n/**\n * Read jss nonce setting from the page if the user has set it.\n */\nvar getNonce = memoize(function () {\n var node = document.querySelector('meta[property=\"csp-nonce\"]');\n return node ? node.getAttribute('content') : null;\n});\n\nvar DomRenderer = function () {\n function DomRenderer(sheet) {\n _classCallCheck(this, DomRenderer);\n\n this.getPropertyValue = getPropertyValue;\n this.setProperty = setProperty;\n this.removeProperty = removeProperty;\n this.setSelector = setSelector;\n this.getKey = getKey;\n this.getUnescapedKeysMap = getUnescapedKeysMap;\n this.hasInsertedRules = false;\n\n // There is no sheet when the renderer is used from a standalone StyleRule.\n if (sheet) _sheets2['default'].add(sheet);\n\n this.sheet = sheet;\n\n var _ref = this.sheet ? this.sheet.options : {},\n media = _ref.media,\n meta = _ref.meta,\n element = _ref.element;\n\n this.element = element || document.createElement('style');\n this.element.setAttribute('data-jss', '');\n if (media) this.element.setAttribute('media', media);\n if (meta) this.element.setAttribute('data-meta', meta);\n var nonce = getNonce();\n if (nonce) this.element.setAttribute('nonce', nonce);\n }\n\n /**\n * Insert style element into render tree.\n */\n\n\n // HTMLStyleElement needs fixing https://github.com/facebook/flow/issues/2696\n\n\n _createClass(DomRenderer, [{\n key: 'attach',\n value: function attach() {\n // In the case the element node is external and it is already in the DOM.\n if (this.element.parentNode || !this.sheet) return;\n\n // When rules are inserted using `insertRule` API, after `sheet.detach().attach()`\n // browsers remove those rules.\n // TODO figure out if its a bug and if it is known.\n // Workaround is to redeploy the sheet before attaching as a string.\n if (this.hasInsertedRules) {\n this.deploy();\n this.hasInsertedRules = false;\n }\n\n insertStyle(this.element, this.sheet.options);\n }\n\n /**\n * Remove style element from render tree.\n */\n\n }, {\n key: 'detach',\n value: function detach() {\n this.element.parentNode.removeChild(this.element);\n }\n\n /**\n * Inject CSS string into element.\n */\n\n }, {\n key: 'deploy',\n value: function deploy() {\n if (!this.sheet) return;\n this.element.textContent = '\\n' + this.sheet.toString() + '\\n';\n }\n\n /**\n * Insert a rule into element.\n */\n\n }, {\n key: 'insertRule',\n value: function insertRule(rule, index) {\n var sheet = this.element.sheet;\n var cssRules = sheet.cssRules;\n\n var str = rule.toString();\n if (!index) index = cssRules.length;\n\n if (!str) return false;\n\n try {\n sheet.insertRule(str, index);\n } catch (err) {\n (0, _warning2['default'])(false, '[JSS] Can not insert an unsupported rule \\n\\r%s', rule);\n return false;\n }\n this.hasInsertedRules = true;\n\n return cssRules[index];\n }\n\n /**\n * Delete a rule.\n */\n\n }, {\n key: 'deleteRule',\n value: function deleteRule(cssRule) {\n var sheet = this.element.sheet;\n\n var index = this.indexOf(cssRule);\n if (index === -1) return false;\n sheet.deleteRule(index);\n return true;\n }\n\n /**\n * Get index of a CSS Rule.\n */\n\n }, {\n key: 'indexOf',\n value: function indexOf(cssRule) {\n var cssRules = this.element.sheet.cssRules;\n\n for (var _index = 0; _index < cssRules.length; _index++) {\n if (cssRule === cssRules[_index]) return _index;\n }\n return -1;\n }\n\n /**\n * Generate a new CSS rule and replace the existing one.\n */\n\n }, {\n key: 'replaceRule',\n value: function replaceRule(cssRule, rule) {\n var index = this.indexOf(cssRule);\n var newCssRule = this.insertRule(rule, index);\n this.element.sheet.deleteRule(index);\n return newCssRule;\n }\n\n /**\n * Get all rules elements.\n */\n\n }, {\n key: 'getRules',\n value: function getRules() {\n return this.element.sheet.cssRules;\n }\n }]);\n\n return DomRenderer;\n}();\n\nexports['default'] = DomRenderer;\n\n//# sourceURL=webpack:///./node_modules/jss/lib/renderers/DomRenderer.js?"); + +/***/ }), + +/***/ "./node_modules/jss/lib/renderers/VirtualRenderer.js": +/*!***********************************************************!*\ + !*** ./node_modules/jss/lib/renderers/VirtualRenderer.js ***! + \***********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/* eslint-disable class-methods-use-this */\n\n/**\n * Rendering backend to do nothing in nodejs.\n */\nvar VirtualRenderer = function () {\n function VirtualRenderer() {\n _classCallCheck(this, VirtualRenderer);\n }\n\n _createClass(VirtualRenderer, [{\n key: 'setProperty',\n value: function setProperty() {\n return true;\n }\n }, {\n key: 'getPropertyValue',\n value: function getPropertyValue() {\n return '';\n }\n }, {\n key: 'removeProperty',\n value: function removeProperty() {}\n }, {\n key: 'setSelector',\n value: function setSelector() {\n return true;\n }\n }, {\n key: 'getKey',\n value: function getKey() {\n return '';\n }\n }, {\n key: 'attach',\n value: function attach() {}\n }, {\n key: 'detach',\n value: function detach() {}\n }, {\n key: 'deploy',\n value: function deploy() {}\n }, {\n key: 'insertRule',\n value: function insertRule() {\n return false;\n }\n }, {\n key: 'deleteRule',\n value: function deleteRule() {\n return true;\n }\n }, {\n key: 'replaceRule',\n value: function replaceRule() {\n return false;\n }\n }, {\n key: 'getRules',\n value: function getRules() {}\n }, {\n key: 'indexOf',\n value: function indexOf() {\n return -1;\n }\n }]);\n\n return VirtualRenderer;\n}();\n\nexports['default'] = VirtualRenderer;\n\n//# sourceURL=webpack:///./node_modules/jss/lib/renderers/VirtualRenderer.js?"); + +/***/ }), + +/***/ "./node_modules/jss/lib/rules/ConditionalRule.js": +/*!*******************************************************!*\ + !*** ./node_modules/jss/lib/rules/ConditionalRule.js ***! + \*******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _RuleList = __webpack_require__(/*! ../RuleList */ \"./node_modules/jss/lib/RuleList.js\");\n\nvar _RuleList2 = _interopRequireDefault(_RuleList);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Conditional rule for @media, @supports\n */\nvar ConditionalRule = function () {\n function ConditionalRule(key, styles, options) {\n _classCallCheck(this, ConditionalRule);\n\n this.type = 'conditional';\n this.isProcessed = false;\n\n this.key = key;\n this.options = options;\n this.rules = new _RuleList2['default'](_extends({}, options, { parent: this }));\n\n for (var name in styles) {\n this.rules.add(name, styles[name]);\n }\n\n this.rules.process();\n }\n\n /**\n * Get a rule.\n */\n\n\n _createClass(ConditionalRule, [{\n key: 'getRule',\n value: function getRule(name) {\n return this.rules.get(name);\n }\n\n /**\n * Get index of a rule.\n */\n\n }, {\n key: 'indexOf',\n value: function indexOf(rule) {\n return this.rules.indexOf(rule);\n }\n\n /**\n * Create and register rule, run plugins.\n */\n\n }, {\n key: 'addRule',\n value: function addRule(name, style, options) {\n var rule = this.rules.add(name, style, options);\n this.options.jss.plugins.onProcessRule(rule);\n return rule;\n }\n\n /**\n * Generates a CSS string.\n */\n\n }, {\n key: 'toString',\n value: function toString() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : { indent: 1 };\n\n var inner = this.rules.toString(options);\n return inner ? this.key + ' {\\n' + inner + '\\n}' : '';\n }\n }]);\n\n return ConditionalRule;\n}();\n\nexports['default'] = ConditionalRule;\n\n//# sourceURL=webpack:///./node_modules/jss/lib/rules/ConditionalRule.js?"); + +/***/ }), + +/***/ "./node_modules/jss/lib/rules/FontFaceRule.js": +/*!****************************************************!*\ + !*** ./node_modules/jss/lib/rules/FontFaceRule.js ***! + \****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _toCss = __webpack_require__(/*! ../utils/toCss */ \"./node_modules/jss/lib/utils/toCss.js\");\n\nvar _toCss2 = _interopRequireDefault(_toCss);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar FontFaceRule = function () {\n function FontFaceRule(key, style, options) {\n _classCallCheck(this, FontFaceRule);\n\n this.type = 'font-face';\n this.isProcessed = false;\n\n this.key = key;\n this.style = style;\n this.options = options;\n }\n\n /**\n * Generates a CSS string.\n */\n\n\n _createClass(FontFaceRule, [{\n key: 'toString',\n value: function toString(options) {\n if (Array.isArray(this.style)) {\n var str = '';\n for (var index = 0; index < this.style.length; index++) {\n str += (0, _toCss2['default'])(this.key, this.style[index]);\n if (this.style[index + 1]) str += '\\n';\n }\n return str;\n }\n\n return (0, _toCss2['default'])(this.key, this.style, options);\n }\n }]);\n\n return FontFaceRule;\n}();\n\nexports['default'] = FontFaceRule;\n\n//# sourceURL=webpack:///./node_modules/jss/lib/rules/FontFaceRule.js?"); + +/***/ }), + +/***/ "./node_modules/jss/lib/rules/KeyframesRule.js": +/*!*****************************************************!*\ + !*** ./node_modules/jss/lib/rules/KeyframesRule.js ***! + \*****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _RuleList = __webpack_require__(/*! ../RuleList */ \"./node_modules/jss/lib/RuleList.js\");\n\nvar _RuleList2 = _interopRequireDefault(_RuleList);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Rule for @keyframes\n */\nvar KeyframesRule = function () {\n function KeyframesRule(key, frames, options) {\n _classCallCheck(this, KeyframesRule);\n\n this.type = 'keyframes';\n this.isProcessed = false;\n\n this.key = key;\n this.options = options;\n this.rules = new _RuleList2['default'](_extends({}, options, { parent: this }));\n\n for (var name in frames) {\n this.rules.add(name, frames[name], _extends({}, this.options, {\n parent: this,\n selector: name\n }));\n }\n\n this.rules.process();\n }\n\n /**\n * Generates a CSS string.\n */\n\n\n _createClass(KeyframesRule, [{\n key: 'toString',\n value: function toString() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : { indent: 1 };\n\n var inner = this.rules.toString(options);\n if (inner) inner += '\\n';\n return this.key + ' {\\n' + inner + '}';\n }\n }]);\n\n return KeyframesRule;\n}();\n\nexports['default'] = KeyframesRule;\n\n//# sourceURL=webpack:///./node_modules/jss/lib/rules/KeyframesRule.js?"); + +/***/ }), + +/***/ "./node_modules/jss/lib/rules/SimpleRule.js": +/*!**************************************************!*\ + !*** ./node_modules/jss/lib/rules/SimpleRule.js ***! + \**************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar SimpleRule = function () {\n function SimpleRule(key, value, options) {\n _classCallCheck(this, SimpleRule);\n\n this.type = 'simple';\n this.isProcessed = false;\n\n this.key = key;\n this.value = value;\n this.options = options;\n }\n\n /**\n * Generates a CSS string.\n */\n // eslint-disable-next-line no-unused-vars\n\n\n _createClass(SimpleRule, [{\n key: 'toString',\n value: function toString(options) {\n if (Array.isArray(this.value)) {\n var str = '';\n for (var index = 0; index < this.value.length; index++) {\n str += this.key + ' ' + this.value[index] + ';';\n if (this.value[index + 1]) str += '\\n';\n }\n return str;\n }\n\n return this.key + ' ' + this.value + ';';\n }\n }]);\n\n return SimpleRule;\n}();\n\nexports['default'] = SimpleRule;\n\n//# sourceURL=webpack:///./node_modules/jss/lib/rules/SimpleRule.js?"); + +/***/ }), + +/***/ "./node_modules/jss/lib/rules/StyleRule.js": +/*!*************************************************!*\ + !*** ./node_modules/jss/lib/rules/StyleRule.js ***! + \*************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _warning = __webpack_require__(/*! warning */ \"./node_modules/warning/browser.js\");\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nvar _toCss = __webpack_require__(/*! ../utils/toCss */ \"./node_modules/jss/lib/utils/toCss.js\");\n\nvar _toCss2 = _interopRequireDefault(_toCss);\n\nvar _toCssValue = __webpack_require__(/*! ../utils/toCssValue */ \"./node_modules/jss/lib/utils/toCssValue.js\");\n\nvar _toCssValue2 = _interopRequireDefault(_toCssValue);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar StyleRule = function () {\n function StyleRule(key, style, options) {\n _classCallCheck(this, StyleRule);\n\n this.type = 'style';\n this.isProcessed = false;\n var sheet = options.sheet,\n Renderer = options.Renderer,\n selector = options.selector;\n\n this.key = key;\n this.options = options;\n this.style = style;\n if (selector) this.selectorText = selector;\n this.renderer = sheet ? sheet.renderer : new Renderer();\n }\n\n /**\n * Set selector string.\n * Attention: use this with caution. Most browsers didn't implement\n * selectorText setter, so this may result in rerendering of entire Style Sheet.\n */\n\n\n _createClass(StyleRule, [{\n key: 'prop',\n\n\n /**\n * Get or set a style property.\n */\n value: function prop(name, value) {\n // It's a getter.\n if (value === undefined) return this.style[name];\n\n // Don't do anything if the value has not changed.\n if (this.style[name] === value) return this;\n\n value = this.options.jss.plugins.onChangeValue(value, name, this);\n\n var isEmpty = value == null || value === false;\n var isDefined = name in this.style;\n\n // Value is empty and wasn't defined before.\n if (isEmpty && !isDefined) return this;\n\n // We are going to remove this value.\n var remove = isEmpty && isDefined;\n\n if (remove) delete this.style[name];else this.style[name] = value;\n\n // Renderable is defined if StyleSheet option `link` is true.\n if (this.renderable) {\n if (remove) this.renderer.removeProperty(this.renderable, name);else this.renderer.setProperty(this.renderable, name, value);\n return this;\n }\n\n var sheet = this.options.sheet;\n\n if (sheet && sheet.attached) {\n (0, _warning2['default'])(false, 'Rule is not linked. Missing sheet option \"link: true\".');\n }\n return this;\n }\n\n /**\n * Apply rule to an element inline.\n */\n\n }, {\n key: 'applyTo',\n value: function applyTo(renderable) {\n var json = this.toJSON();\n for (var prop in json) {\n this.renderer.setProperty(renderable, prop, json[prop]);\n }return this;\n }\n\n /**\n * Returns JSON representation of the rule.\n * Fallbacks are not supported.\n * Useful for inline styles.\n */\n\n }, {\n key: 'toJSON',\n value: function toJSON() {\n var json = {};\n for (var prop in this.style) {\n var value = this.style[prop];\n if ((typeof value === 'undefined' ? 'undefined' : _typeof(value)) !== 'object') json[prop] = value;else if (Array.isArray(value)) json[prop] = (0, _toCssValue2['default'])(value);\n }\n return json;\n }\n\n /**\n * Generates a CSS string.\n */\n\n }, {\n key: 'toString',\n value: function toString(options) {\n var sheet = this.options.sheet;\n\n var link = sheet ? sheet.options.link : false;\n var opts = link ? _extends({}, options, { allowEmpty: true }) : options;\n return (0, _toCss2['default'])(this.selector, this.style, opts);\n }\n }, {\n key: 'selector',\n set: function set(selector) {\n if (selector === this.selectorText) return;\n\n this.selectorText = selector;\n\n if (!this.renderable) return;\n\n var hasChanged = this.renderer.setSelector(this.renderable, selector);\n\n // If selector setter is not implemented, rerender the rule.\n if (!hasChanged && this.renderable) {\n var renderable = this.renderer.replaceRule(this.renderable, this);\n if (renderable) this.renderable = renderable;\n }\n }\n\n /**\n * Get selector string.\n */\n ,\n get: function get() {\n return this.selectorText;\n }\n }]);\n\n return StyleRule;\n}();\n\nexports['default'] = StyleRule;\n\n//# sourceURL=webpack:///./node_modules/jss/lib/rules/StyleRule.js?"); + +/***/ }), + +/***/ "./node_modules/jss/lib/rules/ViewportRule.js": +/*!****************************************************!*\ + !*** ./node_modules/jss/lib/rules/ViewportRule.js ***! + \****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _toCss = __webpack_require__(/*! ../utils/toCss */ \"./node_modules/jss/lib/utils/toCss.js\");\n\nvar _toCss2 = _interopRequireDefault(_toCss);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar ViewportRule = function () {\n function ViewportRule(key, style, options) {\n _classCallCheck(this, ViewportRule);\n\n this.type = 'viewport';\n this.isProcessed = false;\n\n this.key = key;\n this.style = style;\n this.options = options;\n }\n\n /**\n * Generates a CSS string.\n */\n\n\n _createClass(ViewportRule, [{\n key: 'toString',\n value: function toString(options) {\n return (0, _toCss2['default'])(this.key, this.style, options);\n }\n }]);\n\n return ViewportRule;\n}();\n\nexports['default'] = ViewportRule;\n\n//# sourceURL=webpack:///./node_modules/jss/lib/rules/ViewportRule.js?"); + +/***/ }), + +/***/ "./node_modules/jss/lib/sheets.js": +/*!****************************************!*\ + !*** ./node_modules/jss/lib/sheets.js ***! + \****************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _SheetsRegistry = __webpack_require__(/*! ./SheetsRegistry */ \"./node_modules/jss/lib/SheetsRegistry.js\");\n\nvar _SheetsRegistry2 = _interopRequireDefault(_SheetsRegistry);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\n/**\n * This is a global sheets registry. Only DomRenderer will add sheets to it.\n * On the server one should use an own SheetsRegistry instance and add the\n * sheets to it, because you need to make sure to create a new registry for\n * each request in order to not leak sheets across requests.\n */\nexports['default'] = new _SheetsRegistry2['default']();\n\n//# sourceURL=webpack:///./node_modules/jss/lib/sheets.js?"); + +/***/ }), + +/***/ "./node_modules/jss/lib/utils/cloneStyle.js": +/*!**************************************************!*\ + !*** ./node_modules/jss/lib/utils/cloneStyle.js ***! + \**************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nexports['default'] = cloneStyle;\n\nvar _isObservable = __webpack_require__(/*! ./isObservable */ \"./node_modules/jss/lib/utils/isObservable.js\");\n\nvar _isObservable2 = _interopRequireDefault(_isObservable);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar isArray = Array.isArray;\nfunction cloneStyle(style) {\n // Support empty values in case user ends up with them by accident.\n if (style == null) return style;\n\n // Support string value for SimpleRule.\n var typeOfStyle = typeof style === 'undefined' ? 'undefined' : _typeof(style);\n\n if (typeOfStyle === 'string' || typeOfStyle === 'number' || typeOfStyle === 'function') {\n return style;\n }\n\n // Support array for FontFaceRule.\n if (isArray(style)) return style.map(cloneStyle);\n\n // Support Observable styles. Observables are immutable, so we don't need to\n // copy them.\n if ((0, _isObservable2['default'])(style)) return style;\n\n var newStyle = {};\n for (var name in style) {\n var value = style[name];\n if ((typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object') {\n newStyle[name] = cloneStyle(value);\n continue;\n }\n newStyle[name] = value;\n }\n\n return newStyle;\n}\n\n//# sourceURL=webpack:///./node_modules/jss/lib/utils/cloneStyle.js?"); + +/***/ }), + +/***/ "./node_modules/jss/lib/utils/createGenerateClassName.js": +/*!***************************************************************!*\ + !*** ./node_modules/jss/lib/utils/createGenerateClassName.js ***! + \***************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _warning = __webpack_require__(/*! warning */ \"./node_modules/warning/browser.js\");\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nvar _StyleSheet = __webpack_require__(/*! ../StyleSheet */ \"./node_modules/jss/lib/StyleSheet.js\");\n\nvar _StyleSheet2 = _interopRequireDefault(_StyleSheet);\n\nvar _moduleId = __webpack_require__(/*! ./moduleId */ \"./node_modules/jss/lib/utils/moduleId.js\");\n\nvar _moduleId2 = _interopRequireDefault(_moduleId);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar maxRules = 1e10;\n\n\nvar env = \"development\";\n\n/**\n * Returns a function which generates unique class names based on counters.\n * When new generator function is created, rule counter is reseted.\n * We need to reset the rule counter for SSR for each request.\n */\n\nexports['default'] = function () {\n var ruleCounter = 0;\n var defaultPrefix = env === 'production' ? 'c' : '';\n\n return function (rule, sheet) {\n ruleCounter += 1;\n\n if (ruleCounter > maxRules) {\n (0, _warning2['default'])(false, '[JSS] You might have a memory leak. Rule counter is at %s.', ruleCounter);\n }\n\n var prefix = defaultPrefix;\n var jssId = '';\n\n if (sheet) {\n prefix = sheet.options.classNamePrefix || defaultPrefix;\n if (sheet.options.jss.id != null) jssId += sheet.options.jss.id;\n }\n\n if (env === 'production') {\n return '' + prefix + _moduleId2['default'] + jssId + ruleCounter;\n }\n\n return prefix + rule.key + '-' + _moduleId2['default'] + (jssId && '-' + jssId) + '-' + ruleCounter;\n };\n};\n\n//# sourceURL=webpack:///./node_modules/jss/lib/utils/createGenerateClassName.js?"); + +/***/ }), + +/***/ "./node_modules/jss/lib/utils/createRule.js": +/*!**************************************************!*\ + !*** ./node_modules/jss/lib/utils/createRule.js ***! + \**************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports['default'] = createRule;\n\nvar _warning = __webpack_require__(/*! warning */ \"./node_modules/warning/browser.js\");\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nvar _StyleRule = __webpack_require__(/*! ../rules/StyleRule */ \"./node_modules/jss/lib/rules/StyleRule.js\");\n\nvar _StyleRule2 = _interopRequireDefault(_StyleRule);\n\nvar _cloneStyle = __webpack_require__(/*! ../utils/cloneStyle */ \"./node_modules/jss/lib/utils/cloneStyle.js\");\n\nvar _cloneStyle2 = _interopRequireDefault(_cloneStyle);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\n/**\n * Create a rule instance.\n */\nfunction createRule() {\n var name = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'unnamed';\n var decl = arguments[1];\n var options = arguments[2];\n var jss = options.jss;\n\n var declCopy = (0, _cloneStyle2['default'])(decl);\n\n var rule = jss.plugins.onCreateRule(name, declCopy, options);\n if (rule) return rule;\n\n // It is an at-rule and it has no instance.\n if (name[0] === '@') {\n (0, _warning2['default'])(false, '[JSS] Unknown at-rule %s', name);\n }\n\n return new _StyleRule2['default'](name, declCopy, options);\n}\n\n//# sourceURL=webpack:///./node_modules/jss/lib/utils/createRule.js?"); + +/***/ }), + +/***/ "./node_modules/jss/lib/utils/escape.js": +/*!**********************************************!*\ + !*** ./node_modules/jss/lib/utils/escape.js ***! + \**********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* WEBPACK VAR INJECTION */(function(global) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar CSS = global.CSS;\n\nvar env = \"development\";\n\nvar escapeRegex = /([[\\].#*$><+~=|^:(),\"'`])/g;\n\nexports['default'] = function (str) {\n // We don't need to escape it in production, because we are not using user's\n // input for selectors, we are generating a valid selector.\n if (env === 'production') return str;\n\n if (!CSS || !CSS.escape) {\n return str.replace(escapeRegex, '\\\\$1');\n }\n\n return CSS.escape(str);\n};\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../webpack/buildin/global.js */ \"./node_modules/webpack/buildin/global.js\")))\n\n//# sourceURL=webpack:///./node_modules/jss/lib/utils/escape.js?"); + +/***/ }), + +/***/ "./node_modules/jss/lib/utils/getDynamicStyles.js": +/*!********************************************************!*\ + !*** ./node_modules/jss/lib/utils/getDynamicStyles.js ***! + \********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nexports['default'] = getDynamicStyles;\n/**\n * Extracts a styles object with only props that contain function values.\n */\nfunction getDynamicStyles(styles) {\n var to = null;\n\n for (var key in styles) {\n var value = styles[key];\n var type = typeof value === 'undefined' ? 'undefined' : _typeof(value);\n\n if (type === 'function') {\n if (!to) to = {};\n to[key] = value;\n } else if (type === 'object' && value !== null && !Array.isArray(value)) {\n var extracted = getDynamicStyles(value);\n if (extracted) {\n if (!to) to = {};\n to[key] = extracted;\n }\n }\n }\n\n return to;\n}\n\n//# sourceURL=webpack:///./node_modules/jss/lib/utils/getDynamicStyles.js?"); + +/***/ }), + +/***/ "./node_modules/jss/lib/utils/isObservable.js": +/*!****************************************************!*\ + !*** ./node_modules/jss/lib/utils/isObservable.js ***! + \****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _symbolObservable = __webpack_require__(/*! symbol-observable */ \"./node_modules/symbol-observable/es/index.js\");\n\nvar _symbolObservable2 = _interopRequireDefault(_symbolObservable);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nexports['default'] = function (value) {\n return value && value[_symbolObservable2['default']] && value === value[_symbolObservable2['default']]();\n};\n\n//# sourceURL=webpack:///./node_modules/jss/lib/utils/isObservable.js?"); + +/***/ }), + +/***/ "./node_modules/jss/lib/utils/linkRule.js": +/*!************************************************!*\ + !*** ./node_modules/jss/lib/utils/linkRule.js ***! + \************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = linkRule;\n/**\n * Link rule with CSSStyleRule and nested rules with corresponding nested cssRules if both exists.\n */\nfunction linkRule(rule, cssRule) {\n rule.renderable = cssRule;\n if (rule.rules && cssRule.cssRules) rule.rules.link(cssRule.cssRules);\n}\n\n//# sourceURL=webpack:///./node_modules/jss/lib/utils/linkRule.js?"); + +/***/ }), + +/***/ "./node_modules/jss/lib/utils/moduleId.js": +/*!************************************************!*\ + !*** ./node_modules/jss/lib/utils/moduleId.js ***! + \************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* WEBPACK VAR INJECTION */(function(global) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar ns = '2f1acc6c3a606b082e5eef5e54414ffb';\nif (global[ns] == null) global[ns] = 0;\n\n// Bundle may contain multiple JSS versions at the same time. In order to identify\n// the current version with just one short number and use it for classes generation\n// we use a counter. Also it is more accurate, because user can manually reevaluate\n// the module.\nexports['default'] = global[ns]++;\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../webpack/buildin/global.js */ \"./node_modules/webpack/buildin/global.js\")))\n\n//# sourceURL=webpack:///./node_modules/jss/lib/utils/moduleId.js?"); + +/***/ }), + +/***/ "./node_modules/jss/lib/utils/toCss.js": +/*!*********************************************!*\ + !*** ./node_modules/jss/lib/utils/toCss.js ***! + \*********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports['default'] = toCss;\n\nvar _toCssValue = __webpack_require__(/*! ./toCssValue */ \"./node_modules/jss/lib/utils/toCssValue.js\");\n\nvar _toCssValue2 = _interopRequireDefault(_toCssValue);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\n/**\n * Indent a string.\n * http://jsperf.com/array-join-vs-for\n */\nfunction indentStr(str, indent) {\n var result = '';\n for (var index = 0; index < indent; index++) {\n result += ' ';\n }return result + str;\n}\n\n/**\n * Converts a Rule to CSS string.\n */\n\nfunction toCss(selector, style) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n var result = '';\n\n if (!style) return result;\n\n var _options$indent = options.indent,\n indent = _options$indent === undefined ? 0 : _options$indent;\n var fallbacks = style.fallbacks;\n\n\n indent++;\n\n // Apply fallbacks first.\n if (fallbacks) {\n // Array syntax {fallbacks: [{prop: value}]}\n if (Array.isArray(fallbacks)) {\n for (var index = 0; index < fallbacks.length; index++) {\n var fallback = fallbacks[index];\n for (var prop in fallback) {\n var value = fallback[prop];\n if (value != null) {\n result += '\\n' + indentStr(prop + ': ' + (0, _toCssValue2['default'])(value) + ';', indent);\n }\n }\n }\n } else {\n // Object syntax {fallbacks: {prop: value}}\n for (var _prop in fallbacks) {\n var _value = fallbacks[_prop];\n if (_value != null) {\n result += '\\n' + indentStr(_prop + ': ' + (0, _toCssValue2['default'])(_value) + ';', indent);\n }\n }\n }\n }\n\n for (var _prop2 in style) {\n var _value2 = style[_prop2];\n if (_value2 != null && _prop2 !== 'fallbacks') {\n result += '\\n' + indentStr(_prop2 + ': ' + (0, _toCssValue2['default'])(_value2) + ';', indent);\n }\n }\n\n // Allow empty style in this case, because properties will be added dynamically.\n if (!result && !options.allowEmpty) return result;\n\n indent--;\n result = indentStr(selector + ' {' + result + '\\n', indent) + indentStr('}', indent);\n\n return result;\n}\n\n//# sourceURL=webpack:///./node_modules/jss/lib/utils/toCss.js?"); + +/***/ }), + +/***/ "./node_modules/jss/lib/utils/toCssValue.js": +/*!**************************************************!*\ + !*** ./node_modules/jss/lib/utils/toCssValue.js ***! + \**************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports['default'] = toCssValue;\nvar join = function join(value, by) {\n var result = '';\n for (var i = 0; i < value.length; i++) {\n // Remove !important from the value, it will be readded later.\n if (value[i] === '!important') break;\n if (result) result += by;\n result += value[i];\n }\n return result;\n};\n\n/**\n * Converts array values to string.\n *\n * `margin: [['5px', '10px']]` > `margin: 5px 10px;`\n * `border: ['1px', '2px']` > `border: 1px, 2px;`\n * `margin: [['5px', '10px'], '!important']` > `margin: 5px 10px !important;`\n * `color: ['red', !important]` > `color: red !important;`\n */\nfunction toCssValue(value) {\n var ignoreImportant = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (!Array.isArray(value)) return value;\n\n var cssValue = '';\n\n // Support space separated values via `[['5px', '10px']]`.\n if (Array.isArray(value[0])) {\n for (var i = 0; i < value.length; i++) {\n if (value[i] === '!important') break;\n if (cssValue) cssValue += ', ';\n cssValue += join(value[i], ' ');\n }\n } else cssValue = join(value, ', ');\n\n // Add !important, because it was ignored.\n if (!ignoreImportant && value[value.length - 1] === '!important') {\n cssValue += ' !important';\n }\n\n return cssValue;\n}\n\n//# sourceURL=webpack:///./node_modules/jss/lib/utils/toCssValue.js?"); + +/***/ }), + +/***/ "./node_modules/lodash.isfunction/index.js": +/*!*************************************************!*\ + !*** ./node_modules/lodash.isfunction/index.js ***! + \*************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +eval("/* WEBPACK VAR INJECTION */(function(global) {/**\n * Lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright JS Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n nullTag = '[object Null]',\n proxyTag = '[object Proxy]',\n undefinedTag = '[object Undefined]';\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar Symbol = root.Symbol,\n symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isFunction;\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../webpack/buildin/global.js */ \"./node_modules/webpack/buildin/global.js\")))\n\n//# sourceURL=webpack:///./node_modules/lodash.isfunction/index.js?"); + +/***/ }), + +/***/ "./node_modules/lodash.isobject/index.js": +/*!***********************************************!*\ + !*** ./node_modules/lodash.isobject/index.js ***! + \***********************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +eval("/**\n * lodash 3.0.2 (Custom Build) \n * Build: `lodash modern modularize exports=\"npm\" -o ./`\n * Copyright 2012-2015 The Dojo Foundation \n * Based on Underscore.js 1.8.3 \n * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license \n */\n\n/**\n * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.\n * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(1);\n * // => false\n */\nfunction isObject(value) {\n // Avoid a V8 JIT bug in Chrome 19-20.\n // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n\n\n//# sourceURL=webpack:///./node_modules/lodash.isobject/index.js?"); + +/***/ }), + +/***/ "./node_modules/lodash.tonumber/index.js": +/*!***********************************************!*\ + !*** ./node_modules/lodash.tonumber/index.js ***! + \***********************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +eval("/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = toNumber;\n\n\n//# sourceURL=webpack:///./node_modules/lodash.tonumber/index.js?"); + +/***/ }), + +/***/ "./node_modules/multipipe/index.js": +/*!*****************************************!*\ + !*** ./node_modules/multipipe/index.js ***! + \*****************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +eval("/* WEBPACK VAR INJECTION */(function(process) {\n/**\n * Module dependencies.\n */\n\nvar duplexer = __webpack_require__(/*! duplexer2 */ \"./node_modules/duplexer2/index.js\");\nvar PassThrough = __webpack_require__(/*! stream */ \"./node_modules/stream-browserify/index.js\").PassThrough;\nvar Readable = __webpack_require__(/*! stream */ \"./node_modules/stream-browserify/index.js\").PassThrough;\nvar objectAssign = __webpack_require__(/*! object-assign */ \"./node_modules/object-assign/index.js\");\n\n/**\n * Slice reference.\n */\n\nvar slice = [].slice;\n\n/**\n * Duplexer options.\n */\n\nvar defaultOpts = {\n bubbleErrors: false,\n objectMode: true\n};\n\n/**\n * Expose `pipe`.\n */\n\nmodule.exports = pipe;\n\n/**\n * Pipe.\n *\n * @param streams Array[Stream,...]\n * @param opts [Object]\n * @param cb [Function]\n * @return {Stream}\n * @api public\n */\n\nfunction pipe(streams, opts, cb){\n if (!Array.isArray(streams)) {\n streams = slice.call(arguments);\n opts = null;\n cb = null;\n }\n\n var lastArg = streams[streams.length - 1];\n if ('function' == typeof lastArg) {\n cb = streams.splice(-1)[0];\n lastArg = streams[streams.length - 1];\n }\n if ('object' == typeof lastArg && typeof lastArg.pipe != 'function') {\n opts = streams.splice(-1)[0];\n }\n var first = streams[0];\n var last = streams[streams.length - 1];\n var ret;\n opts = objectAssign({}, defaultOpts, opts)\n\n if (!first) {\n if (cb) process.nextTick(cb);\n return new PassThrough(opts);\n }\n \n if (first.writable && last.readable) ret = duplexer(opts, first, last);\n else if (streams.length == 1) ret = new Readable(opts).wrap(streams[0]);\n else if (first.writable) ret = first;\n else if (last.readable) ret = last;\n else ret = new PassThrough(opts);\n \n streams.forEach(function(stream, i){\n var next = streams[i+1];\n if (next) stream.pipe(next);\n if (stream != ret) stream.on('error', ret.emit.bind(ret, 'error'));\n });\n\n if (cb) {\n var ended = false;\n ret.on('error', end);\n last.on('finish', function(){ end() });\n last.on('close', function(){ end() });\n function end(err){\n if (ended) return;\n ended = true;\n cb(err);\n }\n }\n\n return ret;\n}\n\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../process/browser.js */ \"./node_modules/process/browser.js\")))\n\n//# sourceURL=webpack:///./node_modules/multipipe/index.js?"); + +/***/ }), + +/***/ "./node_modules/object-assign/index.js": +/*!*********************************************!*\ + !*** ./node_modules/object-assign/index.js ***! + \*********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n\n\n//# sourceURL=webpack:///./node_modules/object-assign/index.js?"); + +/***/ }), + +/***/ "./node_modules/path-to-regexp/index.js": +/*!**********************************************!*\ + !*** ./node_modules/path-to-regexp/index.js ***! + \**********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +eval("var isarray = __webpack_require__(/*! isarray */ \"./node_modules/isarray/index.js\")\n\n/**\n * Expose `pathToRegexp`.\n */\nmodule.exports = pathToRegexp\nmodule.exports.parse = parse\nmodule.exports.compile = compile\nmodule.exports.tokensToFunction = tokensToFunction\nmodule.exports.tokensToRegExp = tokensToRegExp\n\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\nvar PATH_REGEXP = new RegExp([\n // Match escaped characters that would otherwise appear in future matches.\n // This allows the user to escape special characters that won't transform.\n '(\\\\\\\\.)',\n // Match Express-style parameters and un-named parameters with a prefix\n // and optional suffixes. Matches appear as:\n //\n // \"/:test(\\\\d+)?\" => [\"/\", \"test\", \"\\d+\", undefined, \"?\", undefined]\n // \"/route(\\\\d+)\" => [undefined, undefined, undefined, \"\\d+\", undefined, undefined]\n // \"/*\" => [\"/\", undefined, undefined, undefined, undefined, \"*\"]\n '([\\\\/.])?(?:(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?|(\\\\*))'\n].join('|'), 'g')\n\n/**\n * Parse a string for the raw tokens.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!Array}\n */\nfunction parse (str, options) {\n var tokens = []\n var key = 0\n var index = 0\n var path = ''\n var defaultDelimiter = options && options.delimiter || '/'\n var res\n\n while ((res = PATH_REGEXP.exec(str)) != null) {\n var m = res[0]\n var escaped = res[1]\n var offset = res.index\n path += str.slice(index, offset)\n index = offset + m.length\n\n // Ignore already escaped sequences.\n if (escaped) {\n path += escaped[1]\n continue\n }\n\n var next = str[index]\n var prefix = res[2]\n var name = res[3]\n var capture = res[4]\n var group = res[5]\n var modifier = res[6]\n var asterisk = res[7]\n\n // Push the current path onto the tokens.\n if (path) {\n tokens.push(path)\n path = ''\n }\n\n var partial = prefix != null && next != null && next !== prefix\n var repeat = modifier === '+' || modifier === '*'\n var optional = modifier === '?' || modifier === '*'\n var delimiter = res[2] || defaultDelimiter\n var pattern = capture || group\n\n tokens.push({\n name: name || key++,\n prefix: prefix || '',\n delimiter: delimiter,\n optional: optional,\n repeat: repeat,\n partial: partial,\n asterisk: !!asterisk,\n pattern: pattern ? escapeGroup(pattern) : (asterisk ? '.*' : '[^' + escapeString(delimiter) + ']+?')\n })\n }\n\n // Match any characters still remaining.\n if (index < str.length) {\n path += str.substr(index)\n }\n\n // If the path exists, push it onto the end.\n if (path) {\n tokens.push(path)\n }\n\n return tokens\n}\n\n/**\n * Compile a string to a template function for the path.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!function(Object=, Object=)}\n */\nfunction compile (str, options) {\n return tokensToFunction(parse(str, options))\n}\n\n/**\n * Prettier encoding of URI path segments.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeURIComponentPretty (str) {\n return encodeURI(str).replace(/[\\/?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Encode the asterisk parameter. Similar to `pretty`, but allows slashes.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeAsterisk (str) {\n return encodeURI(str).replace(/[?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Expose a method for transforming tokens into the path function.\n */\nfunction tokensToFunction (tokens) {\n // Compile all the tokens into regexps.\n var matches = new Array(tokens.length)\n\n // Compile all the patterns before compilation.\n for (var i = 0; i < tokens.length; i++) {\n if (typeof tokens[i] === 'object') {\n matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$')\n }\n }\n\n return function (obj, opts) {\n var path = ''\n var data = obj || {}\n var options = opts || {}\n var encode = options.pretty ? encodeURIComponentPretty : encodeURIComponent\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n path += token\n\n continue\n }\n\n var value = data[token.name]\n var segment\n\n if (value == null) {\n if (token.optional) {\n // Prepend partial segment prefixes.\n if (token.partial) {\n path += token.prefix\n }\n\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to be defined')\n }\n }\n\n if (isarray(value)) {\n if (!token.repeat) {\n throw new TypeError('Expected \"' + token.name + '\" to not repeat, but received `' + JSON.stringify(value) + '`')\n }\n\n if (value.length === 0) {\n if (token.optional) {\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to not be empty')\n }\n }\n\n for (var j = 0; j < value.length; j++) {\n segment = encode(value[j])\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\", but received `' + JSON.stringify(segment) + '`')\n }\n\n path += (j === 0 ? token.prefix : token.delimiter) + segment\n }\n\n continue\n }\n\n segment = token.asterisk ? encodeAsterisk(value) : encode(value)\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but received \"' + segment + '\"')\n }\n\n path += token.prefix + segment\n }\n\n return path\n }\n}\n\n/**\n * Escape a regular expression string.\n *\n * @param {string} str\n * @return {string}\n */\nfunction escapeString (str) {\n return str.replace(/([.+*?=^!:${}()[\\]|\\/\\\\])/g, '\\\\$1')\n}\n\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param {string} group\n * @return {string}\n */\nfunction escapeGroup (group) {\n return group.replace(/([=!:$\\/()])/g, '\\\\$1')\n}\n\n/**\n * Attach the keys as a property of the regexp.\n *\n * @param {!RegExp} re\n * @param {Array} keys\n * @return {!RegExp}\n */\nfunction attachKeys (re, keys) {\n re.keys = keys\n return re\n}\n\n/**\n * Get the flags for a regexp from the options.\n *\n * @param {Object} options\n * @return {string}\n */\nfunction flags (options) {\n return options.sensitive ? '' : 'i'\n}\n\n/**\n * Pull out keys from a regexp.\n *\n * @param {!RegExp} path\n * @param {!Array} keys\n * @return {!RegExp}\n */\nfunction regexpToRegexp (path, keys) {\n // Use a negative lookahead to match only capturing groups.\n var groups = path.source.match(/\\((?!\\?)/g)\n\n if (groups) {\n for (var i = 0; i < groups.length; i++) {\n keys.push({\n name: i,\n prefix: null,\n delimiter: null,\n optional: false,\n repeat: false,\n partial: false,\n asterisk: false,\n pattern: null\n })\n }\n }\n\n return attachKeys(path, keys)\n}\n\n/**\n * Transform an array into a regexp.\n *\n * @param {!Array} path\n * @param {Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction arrayToRegexp (path, keys, options) {\n var parts = []\n\n for (var i = 0; i < path.length; i++) {\n parts.push(pathToRegexp(path[i], keys, options).source)\n }\n\n var regexp = new RegExp('(?:' + parts.join('|') + ')', flags(options))\n\n return attachKeys(regexp, keys)\n}\n\n/**\n * Create a path regexp from string input.\n *\n * @param {string} path\n * @param {!Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction stringToRegexp (path, keys, options) {\n return tokensToRegExp(parse(path, options), keys, options)\n}\n\n/**\n * Expose a function for taking tokens and returning a RegExp.\n *\n * @param {!Array} tokens\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction tokensToRegExp (tokens, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options)\n keys = []\n }\n\n options = options || {}\n\n var strict = options.strict\n var end = options.end !== false\n var route = ''\n\n // Iterate over the tokens and create our regexp string.\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n route += escapeString(token)\n } else {\n var prefix = escapeString(token.prefix)\n var capture = '(?:' + token.pattern + ')'\n\n keys.push(token)\n\n if (token.repeat) {\n capture += '(?:' + prefix + capture + ')*'\n }\n\n if (token.optional) {\n if (!token.partial) {\n capture = '(?:' + prefix + '(' + capture + '))?'\n } else {\n capture = prefix + '(' + capture + ')?'\n }\n } else {\n capture = prefix + '(' + capture + ')'\n }\n\n route += capture\n }\n }\n\n var delimiter = escapeString(options.delimiter || '/')\n var endsWithDelimiter = route.slice(-delimiter.length) === delimiter\n\n // In non-strict mode we allow a slash at the end of match. If the path to\n // match already ends with a slash, we remove it for consistency. The slash\n // is valid at the end of a path match, not in the middle. This is important\n // in non-ending mode, where \"/test/\" shouldn't match \"/test//route\".\n if (!strict) {\n route = (endsWithDelimiter ? route.slice(0, -delimiter.length) : route) + '(?:' + delimiter + '(?=$))?'\n }\n\n if (end) {\n route += '$'\n } else {\n // In non-ending mode, we need the capturing groups to match as much as\n // possible by using a positive lookahead to the end or next path segment.\n route += strict && endsWithDelimiter ? '' : '(?=' + delimiter + '|$)'\n }\n\n return attachKeys(new RegExp('^' + route, flags(options)), keys)\n}\n\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n *\n * @param {(string|RegExp|Array)} path\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction pathToRegexp (path, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options)\n keys = []\n }\n\n options = options || {}\n\n if (path instanceof RegExp) {\n return regexpToRegexp(path, /** @type {!Array} */ (keys))\n }\n\n if (isarray(path)) {\n return arrayToRegexp(/** @type {!Array} */ (path), /** @type {!Array} */ (keys), options)\n }\n\n return stringToRegexp(/** @type {string} */ (path), /** @type {!Array} */ (keys), options)\n}\n\n\n//# sourceURL=webpack:///./node_modules/path-to-regexp/index.js?"); + +/***/ }), + +/***/ "./node_modules/popper.js/dist/esm/popper.js": +/*!***************************************************!*\ + !*** ./node_modules/popper.js/dist/esm/popper.js ***! + \***************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* WEBPACK VAR INJECTION */(function(global) {/**!\n * @fileOverview Kickass library to create and place poppers near their reference elements.\n * @version 1.14.7\n * @license\n * Copyright (c) 2016 Federico Zivolo and contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined';\n\nvar longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\nvar timeoutDuration = 0;\nfor (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n timeoutDuration = 1;\n break;\n }\n}\n\nfunction microtaskDebounce(fn) {\n var called = false;\n return function () {\n if (called) {\n return;\n }\n called = true;\n window.Promise.resolve().then(function () {\n called = false;\n fn();\n });\n };\n}\n\nfunction taskDebounce(fn) {\n var scheduled = false;\n return function () {\n if (!scheduled) {\n scheduled = true;\n setTimeout(function () {\n scheduled = false;\n fn();\n }, timeoutDuration);\n }\n };\n}\n\nvar supportsMicroTasks = isBrowser && window.Promise;\n\n/**\n* Create a debounced version of a method, that's asynchronously deferred\n* but called in the minimum time possible.\n*\n* @method\n* @memberof Popper.Utils\n* @argument {Function} fn\n* @returns {Function}\n*/\nvar debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;\n\n/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\nfunction isFunction(functionToCheck) {\n var getType = {};\n return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\n}\n\n/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\nfunction getStyleComputedProperty(element, property) {\n if (element.nodeType !== 1) {\n return [];\n }\n // NOTE: 1 DOM access here\n var window = element.ownerDocument.defaultView;\n var css = window.getComputedStyle(element, null);\n return property ? css[property] : css;\n}\n\n/**\n * Returns the parentNode or the host of the element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} parent\n */\nfunction getParentNode(element) {\n if (element.nodeName === 'HTML') {\n return element;\n }\n return element.parentNode || element.host;\n}\n\n/**\n * Returns the scrolling parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} scroll parent\n */\nfunction getScrollParent(element) {\n // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n if (!element) {\n return document.body;\n }\n\n switch (element.nodeName) {\n case 'HTML':\n case 'BODY':\n return element.ownerDocument.body;\n case '#document':\n return element.body;\n }\n\n // Firefox want us to check `-x` and `-y` variations as well\n\n var _getStyleComputedProp = getStyleComputedProperty(element),\n overflow = _getStyleComputedProp.overflow,\n overflowX = _getStyleComputedProp.overflowX,\n overflowY = _getStyleComputedProp.overflowY;\n\n if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n return element;\n }\n\n return getScrollParent(getParentNode(element));\n}\n\nvar isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nvar isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);\n\n/**\n * Determines if the browser is Internet Explorer\n * @method\n * @memberof Popper.Utils\n * @param {Number} version to check\n * @returns {Boolean} isIE\n */\nfunction isIE(version) {\n if (version === 11) {\n return isIE11;\n }\n if (version === 10) {\n return isIE10;\n }\n return isIE11 || isIE10;\n}\n\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\nfunction getOffsetParent(element) {\n if (!element) {\n return document.documentElement;\n }\n\n var noOffsetParent = isIE(10) ? document.body : null;\n\n // NOTE: 1 DOM access here\n var offsetParent = element.offsetParent || null;\n // Skip hidden elements which don't have an offsetParent\n while (offsetParent === noOffsetParent && element.nextElementSibling) {\n offsetParent = (element = element.nextElementSibling).offsetParent;\n }\n\n var nodeName = offsetParent && offsetParent.nodeName;\n\n if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n return element ? element.ownerDocument.documentElement : document.documentElement;\n }\n\n // .offsetParent will return the closest TH, TD or TABLE in case\n // no offsetParent is present, I hate this job...\n if (['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {\n return getOffsetParent(offsetParent);\n }\n\n return offsetParent;\n}\n\nfunction isOffsetContainer(element) {\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY') {\n return false;\n }\n return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;\n}\n\n/**\n * Finds the root node (document, shadowDOM root) of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} node\n * @returns {Element} root node\n */\nfunction getRoot(node) {\n if (node.parentNode !== null) {\n return getRoot(node.parentNode);\n }\n\n return node;\n}\n\n/**\n * Finds the offset parent common to the two provided nodes\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element1\n * @argument {Element} element2\n * @returns {Element} common offset parent\n */\nfunction findCommonOffsetParent(element1, element2) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n return document.documentElement;\n }\n\n // Here we make sure to give as \"start\" the element that comes first in the DOM\n var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\n var start = order ? element1 : element2;\n var end = order ? element2 : element1;\n\n // Get common ancestor container\n var range = document.createRange();\n range.setStart(start, 0);\n range.setEnd(end, 0);\n var commonAncestorContainer = range.commonAncestorContainer;\n\n // Both nodes are inside #document\n\n if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {\n if (isOffsetContainer(commonAncestorContainer)) {\n return commonAncestorContainer;\n }\n\n return getOffsetParent(commonAncestorContainer);\n }\n\n // one of the nodes is inside shadowDOM, find which one\n var element1root = getRoot(element1);\n if (element1root.host) {\n return findCommonOffsetParent(element1root.host, element2);\n } else {\n return findCommonOffsetParent(element1, getRoot(element2).host);\n }\n}\n\n/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {String} side `top` or `left`\n * @returns {number} amount of scrolled pixels\n */\nfunction getScroll(element) {\n var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';\n\n var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n var html = element.ownerDocument.documentElement;\n var scrollingElement = element.ownerDocument.scrollingElement || html;\n return scrollingElement[upperSide];\n }\n\n return element[upperSide];\n}\n\n/*\n * Sum or subtract the element scroll values (left and top) from a given rect object\n * @method\n * @memberof Popper.Utils\n * @param {Object} rect - Rect object you want to change\n * @param {HTMLElement} element - The element from the function reads the scroll values\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n * @return {Object} rect - The modifier rect object\n */\nfunction includeScroll(rect, element) {\n var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n var modifier = subtract ? -1 : 1;\n rect.top += scrollTop * modifier;\n rect.bottom += scrollTop * modifier;\n rect.left += scrollLeft * modifier;\n rect.right += scrollLeft * modifier;\n return rect;\n}\n\n/*\n * Helper to detect borders of a given element\n * @method\n * @memberof Popper.Utils\n * @param {CSSStyleDeclaration} styles\n * Result of `getStyleComputedProperty` on the given element\n * @param {String} axis - `x` or `y`\n * @return {number} borders - The borders size of the given axis\n */\n\nfunction getBordersSize(styles, axis) {\n var sideA = axis === 'x' ? 'Left' : 'Top';\n var sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n return parseFloat(styles['border' + sideA + 'Width'], 10) + parseFloat(styles['border' + sideB + 'Width'], 10);\n}\n\nfunction getSize(axis, body, html, computedStyle) {\n return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE(10) ? parseInt(html['offset' + axis]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')]) : 0);\n}\n\nfunction getWindowSizes(document) {\n var body = document.body;\n var html = document.documentElement;\n var computedStyle = isIE(10) && getComputedStyle(html);\n\n return {\n height: getSize('Height', body, html, computedStyle),\n width: getSize('Width', body, html, computedStyle)\n };\n}\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\n\n\n\n\nvar defineProperty = function (obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n};\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\n/**\n * Given element offsets, generate an output similar to getBoundingClientRect\n * @method\n * @memberof Popper.Utils\n * @argument {Object} offsets\n * @returns {Object} ClientRect like output\n */\nfunction getClientRect(offsets) {\n return _extends({}, offsets, {\n right: offsets.left + offsets.width,\n bottom: offsets.top + offsets.height\n });\n}\n\n/**\n * Get bounding client rect of given element\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\nfunction getBoundingClientRect(element) {\n var rect = {};\n\n // IE10 10 FIX: Please, don't ask, the element isn't\n // considered in DOM in some circumstances...\n // This isn't reproducible in IE10 compatibility mode of IE11\n try {\n if (isIE(10)) {\n rect = element.getBoundingClientRect();\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n rect.top += scrollTop;\n rect.left += scrollLeft;\n rect.bottom += scrollTop;\n rect.right += scrollLeft;\n } else {\n rect = element.getBoundingClientRect();\n }\n } catch (e) {}\n\n var result = {\n left: rect.left,\n top: rect.top,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top\n };\n\n // subtract scrollbar size from sizes\n var sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};\n var width = sizes.width || element.clientWidth || result.right - result.left;\n var height = sizes.height || element.clientHeight || result.bottom - result.top;\n\n var horizScrollbar = element.offsetWidth - width;\n var vertScrollbar = element.offsetHeight - height;\n\n // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n // we make this check conditional for performance reasons\n if (horizScrollbar || vertScrollbar) {\n var styles = getStyleComputedProperty(element);\n horizScrollbar -= getBordersSize(styles, 'x');\n vertScrollbar -= getBordersSize(styles, 'y');\n\n result.width -= horizScrollbar;\n result.height -= vertScrollbar;\n }\n\n return getClientRect(result);\n}\n\nfunction getOffsetRectRelativeToArbitraryNode(children, parent) {\n var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var isIE10 = isIE(10);\n var isHTML = parent.nodeName === 'HTML';\n var childrenRect = getBoundingClientRect(children);\n var parentRect = getBoundingClientRect(parent);\n var scrollParent = getScrollParent(children);\n\n var styles = getStyleComputedProperty(parent);\n var borderTopWidth = parseFloat(styles.borderTopWidth, 10);\n var borderLeftWidth = parseFloat(styles.borderLeftWidth, 10);\n\n // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n if (fixedPosition && isHTML) {\n parentRect.top = Math.max(parentRect.top, 0);\n parentRect.left = Math.max(parentRect.left, 0);\n }\n var offsets = getClientRect({\n top: childrenRect.top - parentRect.top - borderTopWidth,\n left: childrenRect.left - parentRect.left - borderLeftWidth,\n width: childrenRect.width,\n height: childrenRect.height\n });\n offsets.marginTop = 0;\n offsets.marginLeft = 0;\n\n // Subtract margins of documentElement in case it's being used as parent\n // we do this only on HTML because it's the only element that behaves\n // differently when margins are applied to it. The margins are included in\n // the box of the documentElement, in the other cases not.\n if (!isIE10 && isHTML) {\n var marginTop = parseFloat(styles.marginTop, 10);\n var marginLeft = parseFloat(styles.marginLeft, 10);\n\n offsets.top -= borderTopWidth - marginTop;\n offsets.bottom -= borderTopWidth - marginTop;\n offsets.left -= borderLeftWidth - marginLeft;\n offsets.right -= borderLeftWidth - marginLeft;\n\n // Attach marginTop and marginLeft because in some circumstances we may need them\n offsets.marginTop = marginTop;\n offsets.marginLeft = marginLeft;\n }\n\n if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {\n offsets = includeScroll(offsets, parent);\n }\n\n return offsets;\n}\n\nfunction getViewportOffsetRectRelativeToArtbitraryNode(element) {\n var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var html = element.ownerDocument.documentElement;\n var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n var width = Math.max(html.clientWidth, window.innerWidth || 0);\n var height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n var scrollTop = !excludeScroll ? getScroll(html) : 0;\n var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n\n var offset = {\n top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n width: width,\n height: height\n };\n\n return getClientRect(offset);\n}\n\n/**\n * Check if the given element is fixed or is inside a fixed parent\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\nfunction isFixed(element) {\n var nodeName = element.nodeName;\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n return false;\n }\n if (getStyleComputedProperty(element, 'position') === 'fixed') {\n return true;\n }\n var parentNode = getParentNode(element);\n if (!parentNode) {\n return false;\n }\n return isFixed(parentNode);\n}\n\n/**\n * Finds the first parent of an element that has a transformed property defined\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} first transformed parent or documentElement\n */\n\nfunction getFixedPositionOffsetParent(element) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element || !element.parentElement || isIE()) {\n return document.documentElement;\n }\n var el = element.parentElement;\n while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n el = el.parentElement;\n }\n return el || document.documentElement;\n}\n\n/**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} popper\n * @param {HTMLElement} reference\n * @param {number} padding\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n * @param {Boolean} fixedPosition - Is in fixed position mode\n * @returns {Object} Coordinates of the boundaries\n */\nfunction getBoundaries(popper, reference, padding, boundariesElement) {\n var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n\n // NOTE: 1 DOM access here\n\n var boundaries = { top: 0, left: 0 };\n var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);\n\n // Handle viewport case\n if (boundariesElement === 'viewport') {\n boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n } else {\n // Handle other cases based on DOM element used as boundaries\n var boundariesNode = void 0;\n if (boundariesElement === 'scrollParent') {\n boundariesNode = getScrollParent(getParentNode(reference));\n if (boundariesNode.nodeName === 'BODY') {\n boundariesNode = popper.ownerDocument.documentElement;\n }\n } else if (boundariesElement === 'window') {\n boundariesNode = popper.ownerDocument.documentElement;\n } else {\n boundariesNode = boundariesElement;\n }\n\n var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);\n\n // In case of HTML, we need a different computation\n if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n var _getWindowSizes = getWindowSizes(popper.ownerDocument),\n height = _getWindowSizes.height,\n width = _getWindowSizes.width;\n\n boundaries.top += offsets.top - offsets.marginTop;\n boundaries.bottom = height + offsets.top;\n boundaries.left += offsets.left - offsets.marginLeft;\n boundaries.right = width + offsets.left;\n } else {\n // for all the other DOM elements, this one is good\n boundaries = offsets;\n }\n }\n\n // Add paddings\n padding = padding || 0;\n var isPaddingNumber = typeof padding === 'number';\n boundaries.left += isPaddingNumber ? padding : padding.left || 0;\n boundaries.top += isPaddingNumber ? padding : padding.top || 0;\n boundaries.right -= isPaddingNumber ? padding : padding.right || 0;\n boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0;\n\n return boundaries;\n}\n\nfunction getArea(_ref) {\n var width = _ref.width,\n height = _ref.height;\n\n return width * height;\n}\n\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n * @method\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {\n var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;\n\n if (placement.indexOf('auto') === -1) {\n return placement;\n }\n\n var boundaries = getBoundaries(popper, reference, padding, boundariesElement);\n\n var rects = {\n top: {\n width: boundaries.width,\n height: refRect.top - boundaries.top\n },\n right: {\n width: boundaries.right - refRect.right,\n height: boundaries.height\n },\n bottom: {\n width: boundaries.width,\n height: boundaries.bottom - refRect.bottom\n },\n left: {\n width: refRect.left - boundaries.left,\n height: boundaries.height\n }\n };\n\n var sortedAreas = Object.keys(rects).map(function (key) {\n return _extends({\n key: key\n }, rects[key], {\n area: getArea(rects[key])\n });\n }).sort(function (a, b) {\n return b.area - a.area;\n });\n\n var filteredAreas = sortedAreas.filter(function (_ref2) {\n var width = _ref2.width,\n height = _ref2.height;\n return width >= popper.clientWidth && height >= popper.clientHeight;\n });\n\n var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;\n\n var variation = placement.split('-')[1];\n\n return computedPlacement + (variation ? '-' + variation : '');\n}\n\n/**\n * Get offsets to the reference element\n * @method\n * @memberof Popper.Utils\n * @param {Object} state\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @param {Element} fixedPosition - is in fixed position mode\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\nfunction getReferenceOffsets(state, popper, reference) {\n var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);\n return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\n}\n\n/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\nfunction getOuterSizes(element) {\n var window = element.ownerDocument.defaultView;\n var styles = window.getComputedStyle(element);\n var x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);\n var y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);\n var result = {\n width: element.offsetWidth + y,\n height: element.offsetHeight + x\n };\n return result;\n}\n\n/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\nfunction getOppositePlacement(placement) {\n var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}\n\n/**\n * Get offsets to the popper\n * @method\n * @memberof Popper.Utils\n * @param {Object} position - CSS position the Popper will get applied\n * @param {HTMLElement} popper - the popper element\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n * @param {String} placement - one of the valid placement options\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n */\nfunction getPopperOffsets(popper, referenceOffsets, placement) {\n placement = placement.split('-')[0];\n\n // Get popper node sizes\n var popperRect = getOuterSizes(popper);\n\n // Add position, width and height to our offsets object\n var popperOffsets = {\n width: popperRect.width,\n height: popperRect.height\n };\n\n // depending by the popper placement we have to compute its offsets slightly differently\n var isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n var mainSide = isHoriz ? 'top' : 'left';\n var secondarySide = isHoriz ? 'left' : 'top';\n var measurement = isHoriz ? 'height' : 'width';\n var secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;\n if (placement === secondarySide) {\n popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n } else {\n popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];\n }\n\n return popperOffsets;\n}\n\n/**\n * Mimics the `find` method of Array\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction find(arr, check) {\n // use native find if supported\n if (Array.prototype.find) {\n return arr.find(check);\n }\n\n // use `filter` to obtain the same behavior of `find`\n return arr.filter(check)[0];\n}\n\n/**\n * Return the index of the matching object\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction findIndex(arr, prop, value) {\n // use native findIndex if supported\n if (Array.prototype.findIndex) {\n return arr.findIndex(function (cur) {\n return cur[prop] === value;\n });\n }\n\n // use `find` + `indexOf` if `findIndex` isn't supported\n var match = find(arr, function (obj) {\n return obj[prop] === value;\n });\n return arr.indexOf(match);\n}\n\n/**\n * Loop trough the list of modifiers and run them in order,\n * each of them will then edit the data object.\n * @method\n * @memberof Popper.Utils\n * @param {dataObject} data\n * @param {Array} modifiers\n * @param {String} ends - Optional modifier name used as stopper\n * @returns {dataObject}\n */\nfunction runModifiers(modifiers, data, ends) {\n var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n modifiersToRun.forEach(function (modifier) {\n if (modifier['function']) {\n // eslint-disable-line dot-notation\n console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n }\n var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n if (modifier.enabled && isFunction(fn)) {\n // Add properties to offsets to make them a complete clientRect object\n // we do this before each modifier to make sure the previous one doesn't\n // mess with these values\n data.offsets.popper = getClientRect(data.offsets.popper);\n data.offsets.reference = getClientRect(data.offsets.reference);\n\n data = fn(data, modifier);\n }\n });\n\n return data;\n}\n\n/**\n * Updates the position of the popper, computing the new offsets and applying\n * the new style.
    \n * Prefer `scheduleUpdate` over `update` because of performance reasons.\n * @method\n * @memberof Popper\n */\nfunction update() {\n // if popper is destroyed, don't perform any further update\n if (this.state.isDestroyed) {\n return;\n }\n\n var data = {\n instance: this,\n styles: {},\n arrowStyles: {},\n attributes: {},\n flipped: false,\n offsets: {}\n };\n\n // compute reference element offsets\n data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);\n\n // store the computed placement inside `originalPlacement`\n data.originalPlacement = data.placement;\n\n data.positionFixed = this.options.positionFixed;\n\n // compute the popper offsets\n data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);\n\n data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute';\n\n // run the modifiers\n data = runModifiers(this.modifiers, data);\n\n // the first `update` will call `onCreate` callback\n // the other ones will call `onUpdate` callback\n if (!this.state.isCreated) {\n this.state.isCreated = true;\n this.options.onCreate(data);\n } else {\n this.options.onUpdate(data);\n }\n}\n\n/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nfunction isModifierEnabled(modifiers, modifierName) {\n return modifiers.some(function (_ref) {\n var name = _ref.name,\n enabled = _ref.enabled;\n return enabled && name === modifierName;\n });\n}\n\n/**\n * Get the prefixed supported property name\n * @method\n * @memberof Popper.Utils\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n */\nfunction getSupportedPropertyName(property) {\n var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n var upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n for (var i = 0; i < prefixes.length; i++) {\n var prefix = prefixes[i];\n var toCheck = prefix ? '' + prefix + upperProp : property;\n if (typeof document.body.style[toCheck] !== 'undefined') {\n return toCheck;\n }\n }\n return null;\n}\n\n/**\n * Destroys the popper.\n * @method\n * @memberof Popper\n */\nfunction destroy() {\n this.state.isDestroyed = true;\n\n // touch DOM only if `applyStyle` modifier is enabled\n if (isModifierEnabled(this.modifiers, 'applyStyle')) {\n this.popper.removeAttribute('x-placement');\n this.popper.style.position = '';\n this.popper.style.top = '';\n this.popper.style.left = '';\n this.popper.style.right = '';\n this.popper.style.bottom = '';\n this.popper.style.willChange = '';\n this.popper.style[getSupportedPropertyName('transform')] = '';\n }\n\n this.disableEventListeners();\n\n // remove the popper if user explicity asked for the deletion on destroy\n // do not use `remove` because IE11 doesn't support it\n if (this.options.removeOnDestroy) {\n this.popper.parentNode.removeChild(this.popper);\n }\n return this;\n}\n\n/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nfunction getWindow(element) {\n var ownerDocument = element.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView : window;\n}\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n var isBody = scrollParent.nodeName === 'BODY';\n var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n target.addEventListener(event, callback, { passive: true });\n\n if (!isBody) {\n attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);\n }\n scrollParents.push(target);\n}\n\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction setupEventListeners(reference, options, state, updateBound) {\n // Resize event listener on window\n state.updateBound = updateBound;\n getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });\n\n // Scroll event listener on scroll parents\n var scrollElement = getScrollParent(reference);\n attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);\n state.scrollElement = scrollElement;\n state.eventsEnabled = true;\n\n return state;\n}\n\n/**\n * It will add resize/scroll events and start recalculating\n * position of the popper element when they are triggered.\n * @method\n * @memberof Popper\n */\nfunction enableEventListeners() {\n if (!this.state.eventsEnabled) {\n this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);\n }\n}\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction removeEventListeners(reference, state) {\n // Remove resize event listener on window\n getWindow(reference).removeEventListener('resize', state.updateBound);\n\n // Remove scroll event listener on scroll parents\n state.scrollParents.forEach(function (target) {\n target.removeEventListener('scroll', state.updateBound);\n });\n\n // Reset state\n state.updateBound = null;\n state.scrollParents = [];\n state.scrollElement = null;\n state.eventsEnabled = false;\n return state;\n}\n\n/**\n * It will remove resize/scroll events and won't recalculate popper position\n * when they are triggered. It also won't trigger `onUpdate` callback anymore,\n * unless you call `update` method manually.\n * @method\n * @memberof Popper\n */\nfunction disableEventListeners() {\n if (this.state.eventsEnabled) {\n cancelAnimationFrame(this.scheduleUpdate);\n this.state = removeEventListeners(this.reference, this.state);\n }\n}\n\n/**\n * Tells if a given input is a number\n * @method\n * @memberof Popper.Utils\n * @param {*} input to check\n * @return {Boolean}\n */\nfunction isNumeric(n) {\n return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n\n/**\n * Set the style to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setStyles(element, styles) {\n Object.keys(styles).forEach(function (prop) {\n var unit = '';\n // add unit if the value is numeric and is one of the following\n if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {\n unit = 'px';\n }\n element.style[prop] = styles[prop] + unit;\n });\n}\n\n/**\n * Set the attributes to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the attributes to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setAttributes(element, attributes) {\n Object.keys(attributes).forEach(function (prop) {\n var value = attributes[prop];\n if (value !== false) {\n element.setAttribute(prop, attributes[prop]);\n } else {\n element.removeAttribute(prop);\n }\n });\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} data.styles - List of style properties - values to apply to popper element\n * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The same data object\n */\nfunction applyStyle(data) {\n // any property present in `data.styles` will be applied to the popper,\n // in this way we can make the 3rd party modifiers add custom styles to it\n // Be aware, modifiers could override the properties defined in the previous\n // lines of this modifier!\n setStyles(data.instance.popper, data.styles);\n\n // any property present in `data.attributes` will be applied to the popper,\n // they will be set as HTML attributes of the element\n setAttributes(data.instance.popper, data.attributes);\n\n // if arrowElement is defined and arrowStyles has some properties\n if (data.arrowElement && Object.keys(data.arrowStyles).length) {\n setStyles(data.arrowElement, data.arrowStyles);\n }\n\n return data;\n}\n\n/**\n * Set the x-placement attribute before everything else because it could be used\n * to add margins to the popper margins needs to be calculated to get the\n * correct popper offsets.\n * @method\n * @memberof Popper.modifiers\n * @param {HTMLElement} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper\n * @param {Object} options - Popper.js options\n */\nfunction applyStyleOnLoad(reference, popper, options, modifierOptions, state) {\n // compute reference element offsets\n var referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);\n\n popper.setAttribute('x-placement', placement);\n\n // Apply `position` to popper before anything else because\n // without the position applied we can't guarantee correct computations\n setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' });\n\n return options;\n}\n\n/**\n * @function\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Boolean} shouldRound - If the offsets should be rounded at all\n * @returns {Object} The popper's position offsets rounded\n *\n * The tale of pixel-perfect positioning. It's still not 100% perfect, but as\n * good as it can be within reason.\n * Discussion here: https://github.com/FezVrasta/popper.js/pull/715\n *\n * Low DPI screens cause a popper to be blurry if not using full pixels (Safari\n * as well on High DPI screens).\n *\n * Firefox prefers no rounding for positioning and does not have blurriness on\n * high DPI screens.\n *\n * Only horizontal placement and left/right values need to be considered.\n */\nfunction getRoundedOffsets(data, shouldRound) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n var round = Math.round,\n floor = Math.floor;\n\n var noRound = function noRound(v) {\n return v;\n };\n\n var referenceWidth = round(reference.width);\n var popperWidth = round(popper.width);\n\n var isVertical = ['left', 'right'].indexOf(data.placement) !== -1;\n var isVariation = data.placement.indexOf('-') !== -1;\n var sameWidthParity = referenceWidth % 2 === popperWidth % 2;\n var bothOddWidth = referenceWidth % 2 === 1 && popperWidth % 2 === 1;\n\n var horizontalToInteger = !shouldRound ? noRound : isVertical || isVariation || sameWidthParity ? round : floor;\n var verticalToInteger = !shouldRound ? noRound : round;\n\n return {\n left: horizontalToInteger(bothOddWidth && !isVariation && shouldRound ? popper.left - 1 : popper.left),\n top: verticalToInteger(popper.top),\n bottom: verticalToInteger(popper.bottom),\n right: horizontalToInteger(popper.right)\n };\n}\n\nvar isFirefox = isBrowser && /Firefox/i.test(navigator.userAgent);\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeStyle(data, options) {\n var x = options.x,\n y = options.y;\n var popper = data.offsets.popper;\n\n // Remove this legacy support in Popper.js v2\n\n var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'applyStyle';\n }).gpuAcceleration;\n if (legacyGpuAccelerationOption !== undefined) {\n console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');\n }\n var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;\n\n var offsetParent = getOffsetParent(data.instance.popper);\n var offsetParentRect = getBoundingClientRect(offsetParent);\n\n // Styles\n var styles = {\n position: popper.position\n };\n\n var offsets = getRoundedOffsets(data, window.devicePixelRatio < 2 || !isFirefox);\n\n var sideA = x === 'bottom' ? 'top' : 'bottom';\n var sideB = y === 'right' ? 'left' : 'right';\n\n // if gpuAcceleration is set to `true` and transform is supported,\n // we use `translate3d` to apply the position to the popper we\n // automatically use the supported prefixed version if needed\n var prefixedProperty = getSupportedPropertyName('transform');\n\n // now, let's make a step back and look at this code closely (wtf?)\n // If the content of the popper grows once it's been positioned, it\n // may happen that the popper gets misplaced because of the new content\n // overflowing its reference element\n // To avoid this problem, we provide two options (x and y), which allow\n // the consumer to define the offset origin.\n // If we position a popper on top of a reference element, we can set\n // `x` to `top` to make the popper grow towards its top instead of\n // its bottom.\n var left = void 0,\n top = void 0;\n if (sideA === 'bottom') {\n // when offsetParent is the positioning is relative to the bottom of the screen (excluding the scrollbar)\n // and not the bottom of the html element\n if (offsetParent.nodeName === 'HTML') {\n top = -offsetParent.clientHeight + offsets.bottom;\n } else {\n top = -offsetParentRect.height + offsets.bottom;\n }\n } else {\n top = offsets.top;\n }\n if (sideB === 'right') {\n if (offsetParent.nodeName === 'HTML') {\n left = -offsetParent.clientWidth + offsets.right;\n } else {\n left = -offsetParentRect.width + offsets.right;\n }\n } else {\n left = offsets.left;\n }\n if (gpuAcceleration && prefixedProperty) {\n styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';\n styles[sideA] = 0;\n styles[sideB] = 0;\n styles.willChange = 'transform';\n } else {\n // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties\n var invertTop = sideA === 'bottom' ? -1 : 1;\n var invertLeft = sideB === 'right' ? -1 : 1;\n styles[sideA] = top * invertTop;\n styles[sideB] = left * invertLeft;\n styles.willChange = sideA + ', ' + sideB;\n }\n\n // Attributes\n var attributes = {\n 'x-placement': data.placement\n };\n\n // Update `data` attributes, styles and arrowStyles\n data.attributes = _extends({}, attributes, data.attributes);\n data.styles = _extends({}, styles, data.styles);\n data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);\n\n return data;\n}\n\n/**\n * Helper used to know if the given modifier depends from another one.
    \n * It checks if the needed modifier is listed and enabled.\n * @method\n * @memberof Popper.Utils\n * @param {Array} modifiers - list of modifiers\n * @param {String} requestingName - name of requesting modifier\n * @param {String} requestedName - name of requested modifier\n * @returns {Boolean}\n */\nfunction isModifierRequired(modifiers, requestingName, requestedName) {\n var requesting = find(modifiers, function (_ref) {\n var name = _ref.name;\n return name === requestingName;\n });\n\n var isRequired = !!requesting && modifiers.some(function (modifier) {\n return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;\n });\n\n if (!isRequired) {\n var _requesting = '`' + requestingName + '`';\n var requested = '`' + requestedName + '`';\n console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');\n }\n return isRequired;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction arrow(data, options) {\n var _data$offsets$arrow;\n\n // arrow depends on keepTogether in order to work\n if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n return data;\n }\n\n var arrowElement = options.element;\n\n // if arrowElement is a string, suppose it's a CSS selector\n if (typeof arrowElement === 'string') {\n arrowElement = data.instance.popper.querySelector(arrowElement);\n\n // if arrowElement is not found, don't run the modifier\n if (!arrowElement) {\n return data;\n }\n } else {\n // if the arrowElement isn't a query selector we must check that the\n // provided DOM node is child of its popper node\n if (!data.instance.popper.contains(arrowElement)) {\n console.warn('WARNING: `arrow.element` must be child of its popper element!');\n return data;\n }\n }\n\n var placement = data.placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isVertical = ['left', 'right'].indexOf(placement) !== -1;\n\n var len = isVertical ? 'height' : 'width';\n var sideCapitalized = isVertical ? 'Top' : 'Left';\n var side = sideCapitalized.toLowerCase();\n var altSide = isVertical ? 'left' : 'top';\n var opSide = isVertical ? 'bottom' : 'right';\n var arrowElementSize = getOuterSizes(arrowElement)[len];\n\n //\n // extends keepTogether behavior making sure the popper and its\n // reference have enough pixels in conjunction\n //\n\n // top/left side\n if (reference[opSide] - arrowElementSize < popper[side]) {\n data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);\n }\n // bottom/right side\n if (reference[side] + arrowElementSize > popper[opSide]) {\n data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];\n }\n data.offsets.popper = getClientRect(data.offsets.popper);\n\n // compute center of the popper\n var center = reference[side] + reference[len] / 2 - arrowElementSize / 2;\n\n // Compute the sideValue using the updated popper offsets\n // take popper margin in account because we don't have this info available\n var css = getStyleComputedProperty(data.instance.popper);\n var popperMarginSide = parseFloat(css['margin' + sideCapitalized], 10);\n var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width'], 10);\n var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;\n\n // prevent arrowElement from being placed not contiguously to its popper\n sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\n\n data.arrowElement = arrowElement;\n data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow);\n\n return data;\n}\n\n/**\n * Get the opposite placement variation of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement variation\n * @returns {String} flipped placement variation\n */\nfunction getOppositeVariation(variation) {\n if (variation === 'end') {\n return 'start';\n } else if (variation === 'start') {\n return 'end';\n }\n return variation;\n}\n\n/**\n * List of accepted placements to use as values of the `placement` option.
    \n * Valid placements are:\n * - `auto`\n * - `top`\n * - `right`\n * - `bottom`\n * - `left`\n *\n * Each placement can have a variation from this list:\n * - `-start`\n * - `-end`\n *\n * Variations are interpreted easily if you think of them as the left to right\n * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`\n * is right.
    \n * Vertically (`left` and `right`), `start` is top and `end` is bottom.\n *\n * Some valid examples are:\n * - `top-end` (on top of reference, right aligned)\n * - `right-start` (on right of reference, top aligned)\n * - `bottom` (on bottom, centered)\n * - `auto-end` (on the side with more space available, alignment depends by placement)\n *\n * @static\n * @type {Array}\n * @enum {String}\n * @readonly\n * @method placements\n * @memberof Popper\n */\nvar placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'];\n\n// Get rid of `auto` `auto-start` and `auto-end`\nvar validPlacements = placements.slice(3);\n\n/**\n * Given an initial placement, returns all the subsequent placements\n * clockwise (or counter-clockwise).\n *\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement - A valid placement (it accepts variations)\n * @argument {Boolean} counter - Set to true to walk the placements counterclockwise\n * @returns {Array} placements including their variations\n */\nfunction clockwise(placement) {\n var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var index = validPlacements.indexOf(placement);\n var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));\n return counter ? arr.reverse() : arr;\n}\n\nvar BEHAVIORS = {\n FLIP: 'flip',\n CLOCKWISE: 'clockwise',\n COUNTERCLOCKWISE: 'counterclockwise'\n};\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction flip(data, options) {\n // if `inner` modifier is enabled, we can't use the `flip` modifier\n if (isModifierEnabled(data.instance.modifiers, 'inner')) {\n return data;\n }\n\n if (data.flipped && data.placement === data.originalPlacement) {\n // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\n return data;\n }\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed);\n\n var placement = data.placement.split('-')[0];\n var placementOpposite = getOppositePlacement(placement);\n var variation = data.placement.split('-')[1] || '';\n\n var flipOrder = [];\n\n switch (options.behavior) {\n case BEHAVIORS.FLIP:\n flipOrder = [placement, placementOpposite];\n break;\n case BEHAVIORS.CLOCKWISE:\n flipOrder = clockwise(placement);\n break;\n case BEHAVIORS.COUNTERCLOCKWISE:\n flipOrder = clockwise(placement, true);\n break;\n default:\n flipOrder = options.behavior;\n }\n\n flipOrder.forEach(function (step, index) {\n if (placement !== step || flipOrder.length === index + 1) {\n return data;\n }\n\n placement = data.placement.split('-')[0];\n placementOpposite = getOppositePlacement(placement);\n\n var popperOffsets = data.offsets.popper;\n var refOffsets = data.offsets.reference;\n\n // using floor because the reference offsets may contain decimals we are not going to consider here\n var floor = Math.floor;\n var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);\n\n var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);\n\n var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom;\n\n // flip the variation if required\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n var flippedVariation = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);\n\n if (overlapsRef || overflowsBoundaries || flippedVariation) {\n // this boolean to detect any flip loop\n data.flipped = true;\n\n if (overlapsRef || overflowsBoundaries) {\n placement = flipOrder[index + 1];\n }\n\n if (flippedVariation) {\n variation = getOppositeVariation(variation);\n }\n\n data.placement = placement + (variation ? '-' + variation : '');\n\n // this object contains `position`, we want to preserve it along with\n // any additional property we may add in the future\n data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));\n\n data = runModifiers(data.instance.modifiers, data, 'flip');\n }\n });\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction keepTogether(data) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var placement = data.placement.split('-')[0];\n var floor = Math.floor;\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n var side = isVertical ? 'right' : 'bottom';\n var opSide = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n if (popper[side] < floor(reference[opSide])) {\n data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement];\n }\n if (popper[opSide] > floor(reference[side])) {\n data.offsets.popper[opSide] = floor(reference[side]);\n }\n\n return data;\n}\n\n/**\n * Converts a string containing value + unit into a px value number\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} str - Value + unit string\n * @argument {String} measurement - `height` or `width`\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @returns {Number|String}\n * Value in pixels, or original string if no values were extracted\n */\nfunction toValue(str, measurement, popperOffsets, referenceOffsets) {\n // separate value from unit\n var split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n var value = +split[1];\n var unit = split[2];\n\n // If it's not a number it's an operator, I guess\n if (!value) {\n return str;\n }\n\n if (unit.indexOf('%') === 0) {\n var element = void 0;\n switch (unit) {\n case '%p':\n element = popperOffsets;\n break;\n case '%':\n case '%r':\n default:\n element = referenceOffsets;\n }\n\n var rect = getClientRect(element);\n return rect[measurement] / 100 * value;\n } else if (unit === 'vh' || unit === 'vw') {\n // if is a vh or vw, we calculate the size based on the viewport\n var size = void 0;\n if (unit === 'vh') {\n size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);\n } else {\n size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\n }\n return size / 100 * value;\n } else {\n // if is an explicit pixel unit, we get rid of the unit and keep the value\n // if is an implicit unit, it's px, and we return just the value\n return value;\n }\n}\n\n/**\n * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} offset\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @argument {String} basePlacement\n * @returns {Array} a two cells array with x and y offsets in numbers\n */\nfunction parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {\n var offsets = [0, 0];\n\n // Use height if placement is left or right and index is 0 otherwise use width\n // in this way the first offset will use an axis and the second one\n // will use the other one\n var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;\n\n // Split the offset string to obtain a list of values and operands\n // The regex addresses values with the plus or minus sign in front (+10, -20, etc)\n var fragments = offset.split(/(\\+|\\-)/).map(function (frag) {\n return frag.trim();\n });\n\n // Detect if the offset string contains a pair of values or a single one\n // they could be separated by comma or space\n var divider = fragments.indexOf(find(fragments, function (frag) {\n return frag.search(/,|\\s/) !== -1;\n }));\n\n if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');\n }\n\n // If divider is found, we divide the list of values and operands to divide\n // them by ofset X and Y.\n var splitRegex = /\\s*,\\s*|\\s+/;\n var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments];\n\n // Convert the values with units to absolute pixels to allow our computations\n ops = ops.map(function (op, index) {\n // Most of the units rely on the orientation of the popper\n var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';\n var mergeWithPrevious = false;\n return op\n // This aggregates any `+` or `-` sign that aren't considered operators\n // e.g.: 10 + +5 => [10, +, +5]\n .reduce(function (a, b) {\n if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {\n a[a.length - 1] = b;\n mergeWithPrevious = true;\n return a;\n } else if (mergeWithPrevious) {\n a[a.length - 1] += b;\n mergeWithPrevious = false;\n return a;\n } else {\n return a.concat(b);\n }\n }, [])\n // Here we convert the string values into number values (in px)\n .map(function (str) {\n return toValue(str, measurement, popperOffsets, referenceOffsets);\n });\n });\n\n // Loop trough the offsets arrays and execute the operations\n ops.forEach(function (op, index) {\n op.forEach(function (frag, index2) {\n if (isNumeric(frag)) {\n offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);\n }\n });\n });\n return offsets;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @argument {Number|String} options.offset=0\n * The offset value as described in the modifier description\n * @returns {Object} The data object, properly modified\n */\nfunction offset(data, _ref) {\n var offset = _ref.offset;\n var placement = data.placement,\n _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var basePlacement = placement.split('-')[0];\n\n var offsets = void 0;\n if (isNumeric(+offset)) {\n offsets = [+offset, 0];\n } else {\n offsets = parseOffset(offset, popper, reference, basePlacement);\n }\n\n if (basePlacement === 'left') {\n popper.top += offsets[0];\n popper.left -= offsets[1];\n } else if (basePlacement === 'right') {\n popper.top += offsets[0];\n popper.left += offsets[1];\n } else if (basePlacement === 'top') {\n popper.left += offsets[0];\n popper.top -= offsets[1];\n } else if (basePlacement === 'bottom') {\n popper.left += offsets[0];\n popper.top += offsets[1];\n }\n\n data.popper = popper;\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction preventOverflow(data, options) {\n var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper);\n\n // If offsetParent is the reference element, we really want to\n // go one step up and use the next offsetParent as reference to\n // avoid to make this modifier completely useless and look like broken\n if (data.instance.reference === boundariesElement) {\n boundariesElement = getOffsetParent(boundariesElement);\n }\n\n // NOTE: DOM access here\n // resets the popper's position so that the document size can be calculated excluding\n // the size of the popper element itself\n var transformProp = getSupportedPropertyName('transform');\n var popperStyles = data.instance.popper.style; // assignment to help minification\n var top = popperStyles.top,\n left = popperStyles.left,\n transform = popperStyles[transformProp];\n\n popperStyles.top = '';\n popperStyles.left = '';\n popperStyles[transformProp] = '';\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed);\n\n // NOTE: DOM access here\n // restores the original style properties after the offsets have been computed\n popperStyles.top = top;\n popperStyles.left = left;\n popperStyles[transformProp] = transform;\n\n options.boundaries = boundaries;\n\n var order = options.priority;\n var popper = data.offsets.popper;\n\n var check = {\n primary: function primary(placement) {\n var value = popper[placement];\n if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {\n value = Math.max(popper[placement], boundaries[placement]);\n }\n return defineProperty({}, placement, value);\n },\n secondary: function secondary(placement) {\n var mainSide = placement === 'right' ? 'left' : 'top';\n var value = popper[mainSide];\n if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {\n value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));\n }\n return defineProperty({}, mainSide, value);\n }\n };\n\n order.forEach(function (placement) {\n var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\n popper = _extends({}, popper, check[side](placement));\n });\n\n data.offsets.popper = popper;\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction shift(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var shiftvariation = placement.split('-')[1];\n\n // if shift shiftvariation is specified, run the modifier\n if (shiftvariation) {\n var _data$offsets = data.offsets,\n reference = _data$offsets.reference,\n popper = _data$offsets.popper;\n\n var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n var side = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n var shiftOffsets = {\n start: defineProperty({}, side, reference[side]),\n end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement])\n };\n\n data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]);\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction hide(data) {\n if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n return data;\n }\n\n var refRect = data.offsets.reference;\n var bound = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'preventOverflow';\n }).boundaries;\n\n if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === true) {\n return data;\n }\n\n data.hide = true;\n data.attributes['x-out-of-boundaries'] = '';\n } else {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === false) {\n return data;\n }\n\n data.hide = false;\n data.attributes['x-out-of-boundaries'] = false;\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction inner(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n\n var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n\n popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n\n data.placement = getOppositePlacement(placement);\n data.offsets.popper = getClientRect(popper);\n\n return data;\n}\n\n/**\n * Modifier function, each modifier can have a function of this type assigned\n * to its `fn` property.
    \n * These functions will be called on each update, this means that you must\n * make sure they are performant enough to avoid performance bottlenecks.\n *\n * @function ModifierFn\n * @argument {dataObject} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {dataObject} The data object, properly modified\n */\n\n/**\n * Modifiers are plugins used to alter the behavior of your poppers.
    \n * Popper.js uses a set of 9 modifiers to provide all the basic functionalities\n * needed by the library.\n *\n * Usually you don't want to override the `order`, `fn` and `onLoad` props.\n * All the other properties are configurations that could be tweaked.\n * @namespace modifiers\n */\nvar modifiers = {\n /**\n * Modifier used to shift the popper on the start or end of its reference\n * element.
    \n * It will read the variation of the `placement` property.
    \n * It can be one either `-end` or `-start`.\n * @memberof modifiers\n * @inner\n */\n shift: {\n /** @prop {number} order=100 - Index used to define the order of execution */\n order: 100,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: shift\n },\n\n /**\n * The `offset` modifier can shift your popper on both its axis.\n *\n * It accepts the following units:\n * - `px` or unit-less, interpreted as pixels\n * - `%` or `%r`, percentage relative to the length of the reference element\n * - `%p`, percentage relative to the length of the popper element\n * - `vw`, CSS viewport width unit\n * - `vh`, CSS viewport height unit\n *\n * For length is intended the main axis relative to the placement of the popper.
    \n * This means that if the placement is `top` or `bottom`, the length will be the\n * `width`. In case of `left` or `right`, it will be the `height`.\n *\n * You can provide a single value (as `Number` or `String`), or a pair of values\n * as `String` divided by a comma or one (or more) white spaces.
    \n * The latter is a deprecated method because it leads to confusion and will be\n * removed in v2.
    \n * Additionally, it accepts additions and subtractions between different units.\n * Note that multiplications and divisions aren't supported.\n *\n * Valid examples are:\n * ```\n * 10\n * '10%'\n * '10, 10'\n * '10%, 10'\n * '10 + 10%'\n * '10 - 5vh + 3%'\n * '-10px + 5vh, 5px - 6%'\n * ```\n * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap\n * > with their reference element, unfortunately, you will have to disable the `flip` modifier.\n * > You can read more on this at this [issue](https://github.com/FezVrasta/popper.js/issues/373).\n *\n * @memberof modifiers\n * @inner\n */\n offset: {\n /** @prop {number} order=200 - Index used to define the order of execution */\n order: 200,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: offset,\n /** @prop {Number|String} offset=0\n * The offset value as described in the modifier description\n */\n offset: 0\n },\n\n /**\n * Modifier used to prevent the popper from being positioned outside the boundary.\n *\n * A scenario exists where the reference itself is not within the boundaries.
    \n * We can say it has \"escaped the boundaries\" — or just \"escaped\".
    \n * In this case we need to decide whether the popper should either:\n *\n * - detach from the reference and remain \"trapped\" in the boundaries, or\n * - if it should ignore the boundary and \"escape with its reference\"\n *\n * When `escapeWithReference` is set to`true` and reference is completely\n * outside its boundaries, the popper will overflow (or completely leave)\n * the boundaries in order to remain attached to the edge of the reference.\n *\n * @memberof modifiers\n * @inner\n */\n preventOverflow: {\n /** @prop {number} order=300 - Index used to define the order of execution */\n order: 300,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: preventOverflow,\n /**\n * @prop {Array} [priority=['left','right','top','bottom']]\n * Popper will try to prevent overflow following these priorities by default,\n * then, it could overflow on the left and on top of the `boundariesElement`\n */\n priority: ['left', 'right', 'top', 'bottom'],\n /**\n * @prop {number} padding=5\n * Amount of pixel used to define a minimum distance between the boundaries\n * and the popper. This makes sure the popper always has a little padding\n * between the edges of its container\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='scrollParent'\n * Boundaries used by the modifier. Can be `scrollParent`, `window`,\n * `viewport` or any DOM element.\n */\n boundariesElement: 'scrollParent'\n },\n\n /**\n * Modifier used to make sure the reference and its popper stay near each other\n * without leaving any gap between the two. Especially useful when the arrow is\n * enabled and you want to ensure that it points to its reference element.\n * It cares only about the first axis. You can still have poppers with margin\n * between the popper and its reference element.\n * @memberof modifiers\n * @inner\n */\n keepTogether: {\n /** @prop {number} order=400 - Index used to define the order of execution */\n order: 400,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: keepTogether\n },\n\n /**\n * This modifier is used to move the `arrowElement` of the popper to make\n * sure it is positioned between the reference element and its popper element.\n * It will read the outer size of the `arrowElement` node to detect how many\n * pixels of conjunction are needed.\n *\n * It has no effect if no `arrowElement` is provided.\n * @memberof modifiers\n * @inner\n */\n arrow: {\n /** @prop {number} order=500 - Index used to define the order of execution */\n order: 500,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: arrow,\n /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */\n element: '[x-arrow]'\n },\n\n /**\n * Modifier used to flip the popper's placement when it starts to overlap its\n * reference element.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n *\n * **NOTE:** this modifier will interrupt the current update cycle and will\n * restart it if it detects the need to flip the placement.\n * @memberof modifiers\n * @inner\n */\n flip: {\n /** @prop {number} order=600 - Index used to define the order of execution */\n order: 600,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: flip,\n /**\n * @prop {String|Array} behavior='flip'\n * The behavior used to change the popper's placement. It can be one of\n * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid\n * placements (with optional variations)\n */\n behavior: 'flip',\n /**\n * @prop {number} padding=5\n * The popper will flip if it hits the edges of the `boundariesElement`\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='viewport'\n * The element which will define the boundaries of the popper position.\n * The popper will never be placed outside of the defined boundaries\n * (except if `keepTogether` is enabled)\n */\n boundariesElement: 'viewport'\n },\n\n /**\n * Modifier used to make the popper flow toward the inner of the reference element.\n * By default, when this modifier is disabled, the popper will be placed outside\n * the reference element.\n * @memberof modifiers\n * @inner\n */\n inner: {\n /** @prop {number} order=700 - Index used to define the order of execution */\n order: 700,\n /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */\n enabled: false,\n /** @prop {ModifierFn} */\n fn: inner\n },\n\n /**\n * Modifier used to hide the popper when its reference element is outside of the\n * popper boundaries. It will set a `x-out-of-boundaries` attribute which can\n * be used to hide with a CSS selector the popper when its reference is\n * out of boundaries.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n * @memberof modifiers\n * @inner\n */\n hide: {\n /** @prop {number} order=800 - Index used to define the order of execution */\n order: 800,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: hide\n },\n\n /**\n * Computes the style that will be applied to the popper element to gets\n * properly positioned.\n *\n * Note that this modifier will not touch the DOM, it just prepares the styles\n * so that `applyStyle` modifier can apply it. This separation is useful\n * in case you need to replace `applyStyle` with a custom implementation.\n *\n * This modifier has `850` as `order` value to maintain backward compatibility\n * with previous versions of Popper.js. Expect the modifiers ordering method\n * to change in future major versions of the library.\n *\n * @memberof modifiers\n * @inner\n */\n computeStyle: {\n /** @prop {number} order=850 - Index used to define the order of execution */\n order: 850,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: computeStyle,\n /**\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: true,\n /**\n * @prop {string} [x='bottom']\n * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.\n * Change this if your popper should grow in a direction different from `bottom`\n */\n x: 'bottom',\n /**\n * @prop {string} [x='left']\n * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.\n * Change this if your popper should grow in a direction different from `right`\n */\n y: 'right'\n },\n\n /**\n * Applies the computed styles to the popper element.\n *\n * All the DOM manipulations are limited to this modifier. This is useful in case\n * you want to integrate Popper.js inside a framework or view library and you\n * want to delegate all the DOM manipulations to it.\n *\n * Note that if you disable this modifier, you must make sure the popper element\n * has its position set to `absolute` before Popper.js can do its work!\n *\n * Just disable this modifier and define your own to achieve the desired effect.\n *\n * @memberof modifiers\n * @inner\n */\n applyStyle: {\n /** @prop {number} order=900 - Index used to define the order of execution */\n order: 900,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: applyStyle,\n /** @prop {Function} */\n onLoad: applyStyleOnLoad,\n /**\n * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: undefined\n }\n};\n\n/**\n * The `dataObject` is an object containing all the information used by Popper.js.\n * This object is passed to modifiers and to the `onCreate` and `onUpdate` callbacks.\n * @name dataObject\n * @property {Object} data.instance The Popper.js instance\n * @property {String} data.placement Placement applied to popper\n * @property {String} data.originalPlacement Placement originally defined on init\n * @property {Boolean} data.flipped True if popper has been flipped by flip modifier\n * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper\n * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier\n * @property {Object} data.styles Any CSS property defined here will be applied to the popper. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.boundaries Offsets of the popper boundaries\n * @property {Object} data.offsets The measurements of popper, reference and arrow elements\n * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0\n */\n\n/**\n * Default options provided to Popper.js constructor.
    \n * These can be overridden using the `options` argument of Popper.js.
    \n * To override an option, simply pass an object with the same\n * structure of the `options` object, as the 3rd argument. For example:\n * ```\n * new Popper(ref, pop, {\n * modifiers: {\n * preventOverflow: { enabled: false }\n * }\n * })\n * ```\n * @type {Object}\n * @static\n * @memberof Popper\n */\nvar Defaults = {\n /**\n * Popper's placement.\n * @prop {Popper.placements} placement='bottom'\n */\n placement: 'bottom',\n\n /**\n * Set this to true if you want popper to position it self in 'fixed' mode\n * @prop {Boolean} positionFixed=false\n */\n positionFixed: false,\n\n /**\n * Whether events (resize, scroll) are initially enabled.\n * @prop {Boolean} eventsEnabled=true\n */\n eventsEnabled: true,\n\n /**\n * Set to true if you want to automatically remove the popper when\n * you call the `destroy` method.\n * @prop {Boolean} removeOnDestroy=false\n */\n removeOnDestroy: false,\n\n /**\n * Callback called when the popper is created.
    \n * By default, it is set to no-op.
    \n * Access Popper.js instance with `data.instance`.\n * @prop {onCreate}\n */\n onCreate: function onCreate() {},\n\n /**\n * Callback called when the popper is updated. This callback is not called\n * on the initialization/creation of the popper, but only on subsequent\n * updates.
    \n * By default, it is set to no-op.
    \n * Access Popper.js instance with `data.instance`.\n * @prop {onUpdate}\n */\n onUpdate: function onUpdate() {},\n\n /**\n * List of modifiers used to modify the offsets before they are applied to the popper.\n * They provide most of the functionalities of Popper.js.\n * @prop {modifiers}\n */\n modifiers: modifiers\n};\n\n/**\n * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n\n// Utils\n// Methods\nvar Popper = function () {\n /**\n * Creates a new Popper.js instance.\n * @class Popper\n * @param {HTMLElement|referenceObject} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as the popper\n * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)\n * @return {Object} instance - The generated Popper.js instance\n */\n function Popper(reference, popper) {\n var _this = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n classCallCheck(this, Popper);\n\n this.scheduleUpdate = function () {\n return requestAnimationFrame(_this.update);\n };\n\n // make update() debounced, so that it only runs at most once-per-tick\n this.update = debounce(this.update.bind(this));\n\n // with {} we create a new object with the options inside it\n this.options = _extends({}, Popper.Defaults, options);\n\n // init state\n this.state = {\n isDestroyed: false,\n isCreated: false,\n scrollParents: []\n };\n\n // get reference and popper elements (allow jQuery wrappers)\n this.reference = reference && reference.jquery ? reference[0] : reference;\n this.popper = popper && popper.jquery ? popper[0] : popper;\n\n // Deep merge modifiers options\n this.options.modifiers = {};\n Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {\n _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});\n });\n\n // Refactoring modifiers' list (Object => Array)\n this.modifiers = Object.keys(this.options.modifiers).map(function (name) {\n return _extends({\n name: name\n }, _this.options.modifiers[name]);\n })\n // sort the modifiers by order\n .sort(function (a, b) {\n return a.order - b.order;\n });\n\n // modifiers have the ability to execute arbitrary code when Popper.js get inited\n // such code is executed in the same order of its modifier\n // they could add new properties to their options configuration\n // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!\n this.modifiers.forEach(function (modifierOptions) {\n if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);\n }\n });\n\n // fire the first update to position the popper in the right place\n this.update();\n\n var eventsEnabled = this.options.eventsEnabled;\n if (eventsEnabled) {\n // setup event listeners, they will take care of update the position in specific situations\n this.enableEventListeners();\n }\n\n this.state.eventsEnabled = eventsEnabled;\n }\n\n // We can't use class properties because they don't get listed in the\n // class prototype and break stuff like Sinon stubs\n\n\n createClass(Popper, [{\n key: 'update',\n value: function update$$1() {\n return update.call(this);\n }\n }, {\n key: 'destroy',\n value: function destroy$$1() {\n return destroy.call(this);\n }\n }, {\n key: 'enableEventListeners',\n value: function enableEventListeners$$1() {\n return enableEventListeners.call(this);\n }\n }, {\n key: 'disableEventListeners',\n value: function disableEventListeners$$1() {\n return disableEventListeners.call(this);\n }\n\n /**\n * Schedules an update. It will run on the next UI update available.\n * @method scheduleUpdate\n * @memberof Popper\n */\n\n\n /**\n * Collection of utilities useful when writing custom modifiers.\n * Starting from version 1.7, this method is available only if you\n * include `popper-utils.js` before `popper.js`.\n *\n * **DEPRECATION**: This way to access PopperUtils is deprecated\n * and will be removed in v2! Use the PopperUtils module directly instead.\n * Due to the high instability of the methods contained in Utils, we can't\n * guarantee them to follow semver. Use them at your own risk!\n * @static\n * @private\n * @type {Object}\n * @deprecated since version 1.8\n * @member Utils\n * @memberof Popper\n */\n\n }]);\n return Popper;\n}();\n\n/**\n * The `referenceObject` is an object that provides an interface compatible with Popper.js\n * and lets you use it as replacement of a real DOM node.
    \n * You can use this method to position a popper relatively to a set of coordinates\n * in case you don't have a DOM node to use as reference.\n *\n * ```\n * new Popper(referenceObject, popperNode);\n * ```\n *\n * NB: This feature isn't supported in Internet Explorer 10.\n * @name referenceObject\n * @property {Function} data.getBoundingClientRect\n * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.\n * @property {number} data.clientWidth\n * An ES6 getter that will return the width of the virtual reference element.\n * @property {number} data.clientHeight\n * An ES6 getter that will return the height of the virtual reference element.\n */\n\n\nPopper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\nPopper.placements = placements;\nPopper.Defaults = Defaults;\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Popper);\n//# sourceMappingURL=popper.js.map\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../webpack/buildin/global.js */ \"./node_modules/webpack/buildin/global.js\")))\n\n//# sourceURL=webpack:///./node_modules/popper.js/dist/esm/popper.js?"); + +/***/ }), + +/***/ "./node_modules/process-nextick-args/index.js": +/*!****************************************************!*\ + !*** ./node_modules/process-nextick-args/index.js ***! + \****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/* WEBPACK VAR INJECTION */(function(process) {\n\nif (!process.version ||\n process.version.indexOf('v0.') === 0 ||\n process.version.indexOf('v1.') === 0 && process.version.indexOf('v1.8.') !== 0) {\n module.exports = nextTick;\n} else {\n module.exports = process.nextTick;\n}\n\nfunction nextTick(fn, arg1, arg2, arg3) {\n if (typeof fn !== 'function') {\n throw new TypeError('\"callback\" argument must be a function');\n }\n var len = arguments.length;\n var args, i;\n switch (len) {\n case 0:\n case 1:\n return process.nextTick(fn);\n case 2:\n return process.nextTick(function afterTickOne() {\n fn.call(null, arg1);\n });\n case 3:\n return process.nextTick(function afterTickTwo() {\n fn.call(null, arg1, arg2);\n });\n case 4:\n return process.nextTick(function afterTickThree() {\n fn.call(null, arg1, arg2, arg3);\n });\n default:\n args = new Array(len - 1);\n i = 0;\n while (i < args.length) {\n args[i++] = arguments[i];\n }\n return process.nextTick(function afterTick() {\n fn.apply(null, args);\n });\n }\n}\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../process/browser.js */ \"./node_modules/process/browser.js\")))\n\n//# sourceURL=webpack:///./node_modules/process-nextick-args/index.js?"); + +/***/ }), + +/***/ "./node_modules/process/browser.js": +/*!*****************************************!*\ + !*** ./node_modules/process/browser.js ***! + \*****************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +eval("// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n\n//# sourceURL=webpack:///./node_modules/process/browser.js?"); + +/***/ }), + +/***/ "./node_modules/prop-types/checkPropTypes.js": +/*!***************************************************!*\ + !*** ./node_modules/prop-types/checkPropTypes.js ***! + \***************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\n\nif (true) {\n var invariant = __webpack_require__(/*! fbjs/lib/invariant */ \"./node_modules/fbjs/lib/invariant.js\");\n var warning = __webpack_require__(/*! fbjs/lib/warning */ \"./node_modules/fbjs/lib/warning.js\");\n var ReactPropTypesSecret = __webpack_require__(/*! ./lib/ReactPropTypesSecret */ \"./node_modules/prop-types/lib/ReactPropTypesSecret.js\");\n var loggedTypeFailures = {};\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (true) {\n for (var typeSpecName in typeSpecs) {\n if (typeSpecs.hasOwnProperty(typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n invariant(typeof typeSpecs[typeSpecName] === 'function', '%s: %s type `%s` is invalid; it must be a function, usually from ' + 'the `prop-types` package, but received `%s`.', componentName || 'React class', location, typeSpecName, typeof typeSpecs[typeSpecName]);\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n warning(!error || error instanceof Error, '%s: type specification of %s `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error);\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n warning(false, 'Failed %s type: %s%s', location, error.message, stack != null ? stack : '');\n }\n }\n }\n }\n}\n\nmodule.exports = checkPropTypes;\n\n\n//# sourceURL=webpack:///./node_modules/prop-types/checkPropTypes.js?"); + +/***/ }), + +/***/ "./node_modules/prop-types/factoryWithTypeCheckers.js": +/*!************************************************************!*\ + !*** ./node_modules/prop-types/factoryWithTypeCheckers.js ***! + \************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\n\nvar emptyFunction = __webpack_require__(/*! fbjs/lib/emptyFunction */ \"./node_modules/fbjs/lib/emptyFunction.js\");\nvar invariant = __webpack_require__(/*! fbjs/lib/invariant */ \"./node_modules/fbjs/lib/invariant.js\");\nvar warning = __webpack_require__(/*! fbjs/lib/warning */ \"./node_modules/fbjs/lib/warning.js\");\nvar assign = __webpack_require__(/*! object-assign */ \"./node_modules/object-assign/index.js\");\n\nvar ReactPropTypesSecret = __webpack_require__(/*! ./lib/ReactPropTypesSecret */ \"./node_modules/prop-types/lib/ReactPropTypesSecret.js\");\nvar checkPropTypes = __webpack_require__(/*! ./checkPropTypes */ \"./node_modules/prop-types/checkPropTypes.js\");\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker,\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message) {\n this.message = message;\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (true) {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n invariant(\n false,\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n } else if ( true && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n warning(\n false,\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `%s` prop on `%s`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.',\n propFullName,\n componentName\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunction.thatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n true ? warning(false, 'Invalid argument supplied to oneOf, expected an instance of array.') : undefined;\n return emptyFunction.thatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (propValue.hasOwnProperty(key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n true ? warning(false, 'Invalid argument supplied to oneOfType, expected an instance of array.') : undefined;\n return emptyFunction.thatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n warning(\n false,\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received %s at index %s.',\n getPostfixForTypeWarning(checker),\n i\n );\n return emptyFunction.thatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {\n return null;\n }\n }\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (!checker) {\n continue;\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n // We need to check all keys in case some are required but missing from\n // props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n\n\n//# sourceURL=webpack:///./node_modules/prop-types/factoryWithTypeCheckers.js?"); + +/***/ }), + +/***/ "./node_modules/prop-types/index.js": +/*!******************************************!*\ + !*** ./node_modules/prop-types/index.js ***! + \******************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +eval("/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (true) {\n var REACT_ELEMENT_TYPE = (typeof Symbol === 'function' &&\n Symbol.for &&\n Symbol.for('react.element')) ||\n 0xeac7;\n\n var isValidElement = function(object) {\n return typeof object === 'object' &&\n object !== null &&\n object.$$typeof === REACT_ELEMENT_TYPE;\n };\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = __webpack_require__(/*! ./factoryWithTypeCheckers */ \"./node_modules/prop-types/factoryWithTypeCheckers.js\")(isValidElement, throwOnDirectAccess);\n} else {}\n\n\n//# sourceURL=webpack:///./node_modules/prop-types/index.js?"); + +/***/ }), + +/***/ "./node_modules/prop-types/lib/ReactPropTypesSecret.js": +/*!*************************************************************!*\ + !*** ./node_modules/prop-types/lib/ReactPropTypesSecret.js ***! + \*************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n\n\n//# sourceURL=webpack:///./node_modules/prop-types/lib/ReactPropTypesSecret.js?"); + +/***/ }), + +/***/ "./node_modules/react-dom/cjs/react-dom-server.browser.development.js": +/*!****************************************************************************!*\ + !*** ./node_modules/react-dom/cjs/react-dom-server.browser.development.js ***! + \****************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/** @license React v16.8.2\n * react-dom-server.browser.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\n\n\n\nif (true) {\n (function() {\n'use strict';\n\nvar _assign = __webpack_require__(/*! object-assign */ \"./node_modules/object-assign/index.js\");\nvar React = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\nvar checkPropTypes = __webpack_require__(/*! prop-types/checkPropTypes */ \"./node_modules/react-dom/node_modules/prop-types/checkPropTypes.js\");\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar validateFormat = function () {};\n\n{\n validateFormat = function (format) {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n };\n}\n\nfunction invariant(condition, format, a, b, c, d, e, f) {\n validateFormat(format);\n\n if (!condition) {\n var error = void 0;\n if (format === undefined) {\n error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n}\n\n// Relying on the `invariant()` implementation lets us\n// preserve the format and params in the www builds.\n\n// TODO: this is special because it gets imported during build.\n\nvar ReactVersion = '16.8.2';\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar warningWithoutStack = function () {};\n\n{\n warningWithoutStack = function (condition, format) {\n for (var _len = arguments.length, args = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n\n if (format === undefined) {\n throw new Error('`warningWithoutStack(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n if (args.length > 8) {\n // Check before the condition to catch violations early.\n throw new Error('warningWithoutStack() currently supports at most 8 arguments.');\n }\n if (condition) {\n return;\n }\n if (typeof console !== 'undefined') {\n var argsWithFormat = args.map(function (item) {\n return '' + item;\n });\n argsWithFormat.unshift('Warning: ' + format);\n\n // We intentionally don't use spread (or .apply) directly because it\n // breaks IE9: https://github.com/facebook/react/issues/13610\n Function.prototype.apply.call(console.error, console, argsWithFormat);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n throw new Error(message);\n } catch (x) {}\n };\n}\n\nvar warningWithoutStack$1 = warningWithoutStack;\n\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar hasSymbol = typeof Symbol === 'function' && Symbol.for;\n\n\nvar REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\nvar REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\nvar REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\nvar REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\nvar REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\nvar REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace;\n\nvar REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\nvar REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\nvar REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\nvar REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\nvar REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\n\nvar Resolved = 1;\n\n\nfunction refineResolvedLazyComponent(lazyComponent) {\n return lazyComponent._status === Resolved ? lazyComponent._result : null;\n}\n\nfunction getWrappedName(outerType, innerType, wrapperName) {\n var functionName = innerType.displayName || innerType.name || '';\n return outerType.displayName || (functionName !== '' ? wrapperName + '(' + functionName + ')' : wrapperName);\n}\n\nfunction getComponentName(type) {\n if (type == null) {\n // Host root, text node or just invalid type.\n return null;\n }\n {\n if (typeof type.tag === 'number') {\n warningWithoutStack$1(false, 'Received an unexpected object in getComponentName(). ' + 'This is likely a bug in React. Please file an issue.');\n }\n }\n if (typeof type === 'function') {\n return type.displayName || type.name || null;\n }\n if (typeof type === 'string') {\n return type;\n }\n switch (type) {\n case REACT_CONCURRENT_MODE_TYPE:\n return 'ConcurrentMode';\n case REACT_FRAGMENT_TYPE:\n return 'Fragment';\n case REACT_PORTAL_TYPE:\n return 'Portal';\n case REACT_PROFILER_TYPE:\n return 'Profiler';\n case REACT_STRICT_MODE_TYPE:\n return 'StrictMode';\n case REACT_SUSPENSE_TYPE:\n return 'Suspense';\n }\n if (typeof type === 'object') {\n switch (type.$$typeof) {\n case REACT_CONTEXT_TYPE:\n return 'Context.Consumer';\n case REACT_PROVIDER_TYPE:\n return 'Context.Provider';\n case REACT_FORWARD_REF_TYPE:\n return getWrappedName(type, type.render, 'ForwardRef');\n case REACT_MEMO_TYPE:\n return getComponentName(type.type);\n case REACT_LAZY_TYPE:\n {\n var thenable = type;\n var resolvedThenable = refineResolvedLazyComponent(thenable);\n if (resolvedThenable) {\n return getComponentName(resolvedThenable);\n }\n }\n }\n }\n return null;\n}\n\n/**\n * Forked from fbjs/warning:\n * https://github.com/facebook/fbjs/blob/e66ba20ad5be433eb54423f2b097d829324d9de6/packages/fbjs/src/__forks__/warning.js\n *\n * Only change is we use console.warn instead of console.error,\n * and do nothing when 'console' is not supported.\n * This really simplifies the code.\n * ---\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar lowPriorityWarning = function () {};\n\n{\n var printWarning = function (format) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.warn(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n\n lowPriorityWarning = function (condition, format) {\n if (format === undefined) {\n throw new Error('`lowPriorityWarning(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n if (!condition) {\n for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n printWarning.apply(undefined, [format].concat(args));\n }\n };\n}\n\nvar lowPriorityWarning$1 = lowPriorityWarning;\n\nvar ReactSharedInternals = React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n\n// Prevent newer renderers from RTE when used with older react package versions.\n// Current owner and dispatcher used to share the same ref,\n// but PR #14548 split them out to better support the react-debug-tools package.\nif (!ReactSharedInternals.hasOwnProperty('ReactCurrentDispatcher')) {\n ReactSharedInternals.ReactCurrentDispatcher = {\n current: null\n };\n}\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar warning = warningWithoutStack$1;\n\n{\n warning = function (condition, format) {\n if (condition) {\n return;\n }\n var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\n var stack = ReactDebugCurrentFrame.getStackAddendum();\n // eslint-disable-next-line react-internal/warning-and-invariant-args\n\n for (var _len = arguments.length, args = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n\n warningWithoutStack$1.apply(undefined, [false, format + '%s'].concat(args, [stack]));\n };\n}\n\nvar warning$1 = warning;\n\nvar BEFORE_SLASH_RE = /^(.*)[\\\\\\/]/;\n\nvar describeComponentFrame = function (name, source, ownerName) {\n var sourceInfo = '';\n if (source) {\n var path = source.fileName;\n var fileName = path.replace(BEFORE_SLASH_RE, '');\n {\n // In DEV, include code for a common special case:\n // prefer \"folder/index.js\" instead of just \"index.js\".\n if (/^index\\./.test(fileName)) {\n var match = path.match(BEFORE_SLASH_RE);\n if (match) {\n var pathBeforeSlash = match[1];\n if (pathBeforeSlash) {\n var folderName = pathBeforeSlash.replace(BEFORE_SLASH_RE, '');\n fileName = folderName + '/' + fileName;\n }\n }\n }\n }\n sourceInfo = ' (at ' + fileName + ':' + source.lineNumber + ')';\n } else if (ownerName) {\n sourceInfo = ' (created by ' + ownerName + ')';\n }\n return '\\n in ' + (name || 'Unknown') + sourceInfo;\n};\n\n// Helps identify side effects in begin-phase lifecycle hooks and setState reducers:\n\n\n// In some cases, StrictMode should also double-render lifecycles.\n// This can be confusing for tests though,\n// And it can be bad for performance in production.\n// This feature flag can be used to control the behavior:\n\n\n// To preserve the \"Pause on caught exceptions\" behavior of the debugger, we\n// replay the begin phase of a failed component inside invokeGuardedCallback.\n\n\n// Warn about deprecated, async-unsafe lifecycles; relates to RFC #6:\nvar warnAboutDeprecatedLifecycles = false;\n\n// Gather advanced timing metrics for Profiler subtrees.\n\n\n// Trace which interactions trigger each commit.\n\n\n// Only used in www builds.\nvar enableSuspenseServerRenderer = false; // TODO: true? Here it might just be false.\n\n// Only used in www builds.\n\n\n// Only used in www builds.\n\n\n// React Fire: prevent the value and checked attributes from syncing\n// with their related DOM properties\n\n\n// These APIs will no longer be \"unstable\" in the upcoming 16.7 release,\n// Control this behavior with a flag to support 16.6 minor releases in the meanwhile.\n\nvar ReactDebugCurrentFrame$1 = void 0;\n{\n ReactDebugCurrentFrame$1 = ReactSharedInternals.ReactDebugCurrentFrame;\n}\n\nvar didWarnAboutInvalidateContextType = {};\n\nvar emptyObject = {};\n{\n Object.freeze(emptyObject);\n}\n\nfunction maskContext(type, context) {\n var contextTypes = type.contextTypes;\n if (!contextTypes) {\n return emptyObject;\n }\n var maskedContext = {};\n for (var contextName in contextTypes) {\n maskedContext[contextName] = context[contextName];\n }\n return maskedContext;\n}\n\nfunction checkContextTypes(typeSpecs, values, location) {\n {\n checkPropTypes(typeSpecs, values, location, 'Component', ReactDebugCurrentFrame$1.getCurrentStack);\n }\n}\n\nfunction validateContextBounds(context, threadID) {\n // If we don't have enough slots in this context to store this threadID,\n // fill it in without leaving any holes to ensure that the VM optimizes\n // this as non-holey index properties.\n // (Note: If `react` package is < 16.6, _threadCount is undefined.)\n for (var i = context._threadCount | 0; i <= threadID; i++) {\n // We assume that this is the same as the defaultValue which might not be\n // true if we're rendering inside a secondary renderer but they are\n // secondary because these use cases are very rare.\n context[i] = context._currentValue2;\n context._threadCount = i + 1;\n }\n}\n\nfunction processContext(type, context, threadID) {\n var contextType = type.contextType;\n if (typeof contextType === 'object' && contextType !== null) {\n {\n if (contextType.$$typeof !== REACT_CONTEXT_TYPE) {\n var name = getComponentName(type) || 'Component';\n if (!didWarnAboutInvalidateContextType[name]) {\n didWarnAboutInvalidateContextType[name] = true;\n warningWithoutStack$1(false, '%s defines an invalid contextType. ' + 'contextType should point to the Context object returned by React.createContext(). ' + 'Did you accidentally pass the Context.Provider instead?', name);\n }\n }\n }\n validateContextBounds(contextType, threadID);\n return contextType[threadID];\n } else {\n var maskedContext = maskContext(type, context);\n {\n if (type.contextTypes) {\n checkContextTypes(type.contextTypes, maskedContext, 'context');\n }\n }\n return maskedContext;\n }\n}\n\n// Allocates a new index for each request. Tries to stay as compact as possible so that these\n// indices can be used to reference a tightly packaged array. As opposed to being used in a Map.\n// The first allocated index is 1.\n\nvar nextAvailableThreadIDs = new Uint16Array(16);\nfor (var i = 0; i < 15; i++) {\n nextAvailableThreadIDs[i] = i + 1;\n}\nnextAvailableThreadIDs[15] = 0;\n\nfunction growThreadCountAndReturnNextAvailable() {\n var oldArray = nextAvailableThreadIDs;\n var oldSize = oldArray.length;\n var newSize = oldSize * 2;\n !(newSize <= 0x10000) ? invariant(false, 'Maximum number of concurrent React renderers exceeded. This can happen if you are not properly destroying the Readable provided by React. Ensure that you call .destroy() on it if you no longer want to read from it, and did not read to the end. If you use .pipe() this should be automatic.') : void 0;\n var newArray = new Uint16Array(newSize);\n newArray.set(oldArray);\n nextAvailableThreadIDs = newArray;\n nextAvailableThreadIDs[0] = oldSize + 1;\n for (var _i = oldSize; _i < newSize - 1; _i++) {\n nextAvailableThreadIDs[_i] = _i + 1;\n }\n nextAvailableThreadIDs[newSize - 1] = 0;\n return oldSize;\n}\n\nfunction allocThreadID() {\n var nextID = nextAvailableThreadIDs[0];\n if (nextID === 0) {\n return growThreadCountAndReturnNextAvailable();\n }\n nextAvailableThreadIDs[0] = nextAvailableThreadIDs[nextID];\n return nextID;\n}\n\nfunction freeThreadID(id) {\n nextAvailableThreadIDs[id] = nextAvailableThreadIDs[0];\n nextAvailableThreadIDs[0] = id;\n}\n\n// A reserved attribute.\n// It is handled by React separately and shouldn't be written to the DOM.\nvar RESERVED = 0;\n\n// A simple string attribute.\n// Attributes that aren't in the whitelist are presumed to have this type.\nvar STRING = 1;\n\n// A string attribute that accepts booleans in React. In HTML, these are called\n// \"enumerated\" attributes with \"true\" and \"false\" as possible values.\n// When true, it should be set to a \"true\" string.\n// When false, it should be set to a \"false\" string.\nvar BOOLEANISH_STRING = 2;\n\n// A real boolean attribute.\n// When true, it should be present (set either to an empty string or its name).\n// When false, it should be omitted.\nvar BOOLEAN = 3;\n\n// An attribute that can be used as a flag as well as with a value.\n// When true, it should be present (set either to an empty string or its name).\n// When false, it should be omitted.\n// For any other value, should be present with that value.\nvar OVERLOADED_BOOLEAN = 4;\n\n// An attribute that must be numeric or parse as a numeric.\n// When falsy, it should be removed.\nvar NUMERIC = 5;\n\n// An attribute that must be positive numeric or parse as a positive numeric.\n// When falsy, it should be removed.\nvar POSITIVE_NUMERIC = 6;\n\n/* eslint-disable max-len */\nvar ATTRIBUTE_NAME_START_CHAR = ':A-Z_a-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD';\n/* eslint-enable max-len */\nvar ATTRIBUTE_NAME_CHAR = ATTRIBUTE_NAME_START_CHAR + '\\\\-.0-9\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040';\n\n\nvar ROOT_ATTRIBUTE_NAME = 'data-reactroot';\nvar VALID_ATTRIBUTE_NAME_REGEX = new RegExp('^[' + ATTRIBUTE_NAME_START_CHAR + '][' + ATTRIBUTE_NAME_CHAR + ']*$');\n\nvar hasOwnProperty$1 = Object.prototype.hasOwnProperty;\nvar illegalAttributeNameCache = {};\nvar validatedAttributeNameCache = {};\n\nfunction isAttributeNameSafe(attributeName) {\n if (hasOwnProperty$1.call(validatedAttributeNameCache, attributeName)) {\n return true;\n }\n if (hasOwnProperty$1.call(illegalAttributeNameCache, attributeName)) {\n return false;\n }\n if (VALID_ATTRIBUTE_NAME_REGEX.test(attributeName)) {\n validatedAttributeNameCache[attributeName] = true;\n return true;\n }\n illegalAttributeNameCache[attributeName] = true;\n {\n warning$1(false, 'Invalid attribute name: `%s`', attributeName);\n }\n return false;\n}\n\nfunction shouldIgnoreAttribute(name, propertyInfo, isCustomComponentTag) {\n if (propertyInfo !== null) {\n return propertyInfo.type === RESERVED;\n }\n if (isCustomComponentTag) {\n return false;\n }\n if (name.length > 2 && (name[0] === 'o' || name[0] === 'O') && (name[1] === 'n' || name[1] === 'N')) {\n return true;\n }\n return false;\n}\n\nfunction shouldRemoveAttributeWithWarning(name, value, propertyInfo, isCustomComponentTag) {\n if (propertyInfo !== null && propertyInfo.type === RESERVED) {\n return false;\n }\n switch (typeof value) {\n case 'function':\n // $FlowIssue symbol is perfectly valid here\n case 'symbol':\n // eslint-disable-line\n return true;\n case 'boolean':\n {\n if (isCustomComponentTag) {\n return false;\n }\n if (propertyInfo !== null) {\n return !propertyInfo.acceptsBooleans;\n } else {\n var prefix = name.toLowerCase().slice(0, 5);\n return prefix !== 'data-' && prefix !== 'aria-';\n }\n }\n default:\n return false;\n }\n}\n\nfunction shouldRemoveAttribute(name, value, propertyInfo, isCustomComponentTag) {\n if (value === null || typeof value === 'undefined') {\n return true;\n }\n if (shouldRemoveAttributeWithWarning(name, value, propertyInfo, isCustomComponentTag)) {\n return true;\n }\n if (isCustomComponentTag) {\n return false;\n }\n if (propertyInfo !== null) {\n switch (propertyInfo.type) {\n case BOOLEAN:\n return !value;\n case OVERLOADED_BOOLEAN:\n return value === false;\n case NUMERIC:\n return isNaN(value);\n case POSITIVE_NUMERIC:\n return isNaN(value) || value < 1;\n }\n }\n return false;\n}\n\nfunction getPropertyInfo(name) {\n return properties.hasOwnProperty(name) ? properties[name] : null;\n}\n\nfunction PropertyInfoRecord(name, type, mustUseProperty, attributeName, attributeNamespace) {\n this.acceptsBooleans = type === BOOLEANISH_STRING || type === BOOLEAN || type === OVERLOADED_BOOLEAN;\n this.attributeName = attributeName;\n this.attributeNamespace = attributeNamespace;\n this.mustUseProperty = mustUseProperty;\n this.propertyName = name;\n this.type = type;\n}\n\n// When adding attributes to this list, be sure to also add them to\n// the `possibleStandardNames` module to ensure casing and incorrect\n// name warnings.\nvar properties = {};\n\n// These props are reserved by React. They shouldn't be written to the DOM.\n['children', 'dangerouslySetInnerHTML',\n// TODO: This prevents the assignment of defaultValue to regular\n// elements (not just inputs). Now that ReactDOMInput assigns to the\n// defaultValue property -- do we need this?\n'defaultValue', 'defaultChecked', 'innerHTML', 'suppressContentEditableWarning', 'suppressHydrationWarning', 'style'].forEach(function (name) {\n properties[name] = new PropertyInfoRecord(name, RESERVED, false, // mustUseProperty\n name, // attributeName\n null);\n} // attributeNamespace\n);\n\n// A few React string attributes have a different name.\n// This is a mapping from React prop names to the attribute names.\n[['acceptCharset', 'accept-charset'], ['className', 'class'], ['htmlFor', 'for'], ['httpEquiv', 'http-equiv']].forEach(function (_ref) {\n var name = _ref[0],\n attributeName = _ref[1];\n\n properties[name] = new PropertyInfoRecord(name, STRING, false, // mustUseProperty\n attributeName, // attributeName\n null);\n} // attributeNamespace\n);\n\n// These are \"enumerated\" HTML attributes that accept \"true\" and \"false\".\n// In React, we let users pass `true` and `false` even though technically\n// these aren't boolean attributes (they are coerced to strings).\n['contentEditable', 'draggable', 'spellCheck', 'value'].forEach(function (name) {\n properties[name] = new PropertyInfoRecord(name, BOOLEANISH_STRING, false, // mustUseProperty\n name.toLowerCase(), // attributeName\n null);\n} // attributeNamespace\n);\n\n// These are \"enumerated\" SVG attributes that accept \"true\" and \"false\".\n// In React, we let users pass `true` and `false` even though technically\n// these aren't boolean attributes (they are coerced to strings).\n// Since these are SVG attributes, their attribute names are case-sensitive.\n['autoReverse', 'externalResourcesRequired', 'focusable', 'preserveAlpha'].forEach(function (name) {\n properties[name] = new PropertyInfoRecord(name, BOOLEANISH_STRING, false, // mustUseProperty\n name, // attributeName\n null);\n} // attributeNamespace\n);\n\n// These are HTML boolean attributes.\n['allowFullScreen', 'async',\n// Note: there is a special case that prevents it from being written to the DOM\n// on the client side because the browsers are inconsistent. Instead we call focus().\n'autoFocus', 'autoPlay', 'controls', 'default', 'defer', 'disabled', 'formNoValidate', 'hidden', 'loop', 'noModule', 'noValidate', 'open', 'playsInline', 'readOnly', 'required', 'reversed', 'scoped', 'seamless',\n// Microdata\n'itemScope'].forEach(function (name) {\n properties[name] = new PropertyInfoRecord(name, BOOLEAN, false, // mustUseProperty\n name.toLowerCase(), // attributeName\n null);\n} // attributeNamespace\n);\n\n// These are the few React props that we set as DOM properties\n// rather than attributes. These are all booleans.\n['checked',\n// Note: `option.selected` is not updated if `select.multiple` is\n// disabled with `removeAttribute`. We have special logic for handling this.\n'multiple', 'muted', 'selected'].forEach(function (name) {\n properties[name] = new PropertyInfoRecord(name, BOOLEAN, true, // mustUseProperty\n name, // attributeName\n null);\n} // attributeNamespace\n);\n\n// These are HTML attributes that are \"overloaded booleans\": they behave like\n// booleans, but can also accept a string value.\n['capture', 'download'].forEach(function (name) {\n properties[name] = new PropertyInfoRecord(name, OVERLOADED_BOOLEAN, false, // mustUseProperty\n name, // attributeName\n null);\n} // attributeNamespace\n);\n\n// These are HTML attributes that must be positive numbers.\n['cols', 'rows', 'size', 'span'].forEach(function (name) {\n properties[name] = new PropertyInfoRecord(name, POSITIVE_NUMERIC, false, // mustUseProperty\n name, // attributeName\n null);\n} // attributeNamespace\n);\n\n// These are HTML attributes that must be numbers.\n['rowSpan', 'start'].forEach(function (name) {\n properties[name] = new PropertyInfoRecord(name, NUMERIC, false, // mustUseProperty\n name.toLowerCase(), // attributeName\n null);\n} // attributeNamespace\n);\n\nvar CAMELIZE = /[\\-\\:]([a-z])/g;\nvar capitalize = function (token) {\n return token[1].toUpperCase();\n};\n\n// This is a list of all SVG attributes that need special casing, namespacing,\n// or boolean value assignment. Regular attributes that just accept strings\n// and have the same names are omitted, just like in the HTML whitelist.\n// Some of these attributes can be hard to find. This list was created by\n// scrapping the MDN documentation.\n['accent-height', 'alignment-baseline', 'arabic-form', 'baseline-shift', 'cap-height', 'clip-path', 'clip-rule', 'color-interpolation', 'color-interpolation-filters', 'color-profile', 'color-rendering', 'dominant-baseline', 'enable-background', 'fill-opacity', 'fill-rule', 'flood-color', 'flood-opacity', 'font-family', 'font-size', 'font-size-adjust', 'font-stretch', 'font-style', 'font-variant', 'font-weight', 'glyph-name', 'glyph-orientation-horizontal', 'glyph-orientation-vertical', 'horiz-adv-x', 'horiz-origin-x', 'image-rendering', 'letter-spacing', 'lighting-color', 'marker-end', 'marker-mid', 'marker-start', 'overline-position', 'overline-thickness', 'paint-order', 'panose-1', 'pointer-events', 'rendering-intent', 'shape-rendering', 'stop-color', 'stop-opacity', 'strikethrough-position', 'strikethrough-thickness', 'stroke-dasharray', 'stroke-dashoffset', 'stroke-linecap', 'stroke-linejoin', 'stroke-miterlimit', 'stroke-opacity', 'stroke-width', 'text-anchor', 'text-decoration', 'text-rendering', 'underline-position', 'underline-thickness', 'unicode-bidi', 'unicode-range', 'units-per-em', 'v-alphabetic', 'v-hanging', 'v-ideographic', 'v-mathematical', 'vector-effect', 'vert-adv-y', 'vert-origin-x', 'vert-origin-y', 'word-spacing', 'writing-mode', 'xmlns:xlink', 'x-height'].forEach(function (attributeName) {\n var name = attributeName.replace(CAMELIZE, capitalize);\n properties[name] = new PropertyInfoRecord(name, STRING, false, // mustUseProperty\n attributeName, null);\n} // attributeNamespace\n);\n\n// String SVG attributes with the xlink namespace.\n['xlink:actuate', 'xlink:arcrole', 'xlink:href', 'xlink:role', 'xlink:show', 'xlink:title', 'xlink:type'].forEach(function (attributeName) {\n var name = attributeName.replace(CAMELIZE, capitalize);\n properties[name] = new PropertyInfoRecord(name, STRING, false, // mustUseProperty\n attributeName, 'http://www.w3.org/1999/xlink');\n});\n\n// String SVG attributes with the xml namespace.\n['xml:base', 'xml:lang', 'xml:space'].forEach(function (attributeName) {\n var name = attributeName.replace(CAMELIZE, capitalize);\n properties[name] = new PropertyInfoRecord(name, STRING, false, // mustUseProperty\n attributeName, 'http://www.w3.org/XML/1998/namespace');\n});\n\n// These attribute exists both in HTML and SVG.\n// The attribute name is case-sensitive in SVG so we can't just use\n// the React name like we do for attributes that exist only in HTML.\n['tabIndex', 'crossOrigin'].forEach(function (attributeName) {\n properties[attributeName] = new PropertyInfoRecord(attributeName, STRING, false, // mustUseProperty\n attributeName.toLowerCase(), // attributeName\n null);\n} // attributeNamespace\n);\n\n// code copied and modified from escape-html\n/**\n * Module variables.\n * @private\n */\n\nvar matchHtmlRegExp = /[\"'&<>]/;\n\n/**\n * Escapes special characters and HTML entities in a given html string.\n *\n * @param {string} string HTML string to escape for later insertion\n * @return {string}\n * @public\n */\n\nfunction escapeHtml(string) {\n var str = '' + string;\n var match = matchHtmlRegExp.exec(str);\n\n if (!match) {\n return str;\n }\n\n var escape = void 0;\n var html = '';\n var index = void 0;\n var lastIndex = 0;\n\n for (index = match.index; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34:\n // \"\n escape = '"';\n break;\n case 38:\n // &\n escape = '&';\n break;\n case 39:\n // '\n escape = '''; // modified from escape-html; used to be '''\n break;\n case 60:\n // <\n escape = '<';\n break;\n case 62:\n // >\n escape = '>';\n break;\n default:\n continue;\n }\n\n if (lastIndex !== index) {\n html += str.substring(lastIndex, index);\n }\n\n lastIndex = index + 1;\n html += escape;\n }\n\n return lastIndex !== index ? html + str.substring(lastIndex, index) : html;\n}\n// end code copied and modified from escape-html\n\n/**\n * Escapes text to prevent scripting attacks.\n *\n * @param {*} text Text value to escape.\n * @return {string} An escaped string.\n */\nfunction escapeTextForBrowser(text) {\n if (typeof text === 'boolean' || typeof text === 'number') {\n // this shortcircuit helps perf for types that we know will never have\n // special characters, especially given that this function is used often\n // for numeric dom ids.\n return '' + text;\n }\n return escapeHtml(text);\n}\n\n/**\n * Escapes attribute value to prevent scripting attacks.\n *\n * @param {*} value Value to escape.\n * @return {string} An escaped string.\n */\nfunction quoteAttributeValueForBrowser(value) {\n return '\"' + escapeTextForBrowser(value) + '\"';\n}\n\n/**\n * Operations for dealing with DOM properties.\n */\n\n/**\n * Creates markup for the ID property.\n *\n * @param {string} id Unescaped ID.\n * @return {string} Markup string.\n */\n\n\nfunction createMarkupForRoot() {\n return ROOT_ATTRIBUTE_NAME + '=\"\"';\n}\n\n/**\n * Creates markup for a property.\n *\n * @param {string} name\n * @param {*} value\n * @return {?string} Markup string, or null if the property was invalid.\n */\nfunction createMarkupForProperty(name, value) {\n var propertyInfo = getPropertyInfo(name);\n if (name !== 'style' && shouldIgnoreAttribute(name, propertyInfo, false)) {\n return '';\n }\n if (shouldRemoveAttribute(name, value, propertyInfo, false)) {\n return '';\n }\n if (propertyInfo !== null) {\n var attributeName = propertyInfo.attributeName;\n var type = propertyInfo.type;\n\n if (type === BOOLEAN || type === OVERLOADED_BOOLEAN && value === true) {\n return attributeName + '=\"\"';\n } else {\n return attributeName + '=' + quoteAttributeValueForBrowser(value);\n }\n } else if (isAttributeNameSafe(name)) {\n return name + '=' + quoteAttributeValueForBrowser(value);\n }\n return '';\n}\n\n/**\n * Creates markup for a custom property.\n *\n * @param {string} name\n * @param {*} value\n * @return {string} Markup string, or empty string if the property was invalid.\n */\nfunction createMarkupForCustomAttribute(name, value) {\n if (!isAttributeNameSafe(name) || value == null) {\n return '';\n }\n return name + '=' + quoteAttributeValueForBrowser(value);\n}\n\n/**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\nfunction is(x, y) {\n return x === y && (x !== 0 || 1 / x === 1 / y) || x !== x && y !== y // eslint-disable-line no-self-compare\n ;\n}\n\nvar currentlyRenderingComponent = null;\nvar firstWorkInProgressHook = null;\nvar workInProgressHook = null;\n// Whether the work-in-progress hook is a re-rendered hook\nvar isReRender = false;\n// Whether an update was scheduled during the currently executing render pass.\nvar didScheduleRenderPhaseUpdate = false;\n// Lazily created map of render-phase updates\nvar renderPhaseUpdates = null;\n// Counter to prevent infinite loops.\nvar numberOfReRenders = 0;\nvar RE_RENDER_LIMIT = 25;\n\nvar isInHookUserCodeInDev = false;\n\n// In DEV, this is the name of the currently executing primitive hook\nvar currentHookNameInDev = void 0;\n\nfunction resolveCurrentlyRenderingComponent() {\n !(currentlyRenderingComponent !== null) ? invariant(false, 'Hooks can only be called inside the body of a function component. (https://fb.me/react-invalid-hook-call)') : void 0;\n {\n !!isInHookUserCodeInDev ? warning$1(false, 'Do not call Hooks inside useEffect(...), useMemo(...), or other built-in Hooks. ' + 'You can only call Hooks at the top level of your React function. ' + 'For more information, see ' + 'https://fb.me/rules-of-hooks') : void 0;\n }\n return currentlyRenderingComponent;\n}\n\nfunction areHookInputsEqual(nextDeps, prevDeps) {\n if (prevDeps === null) {\n {\n warning$1(false, '%s received a final argument during this render, but not during ' + 'the previous render. Even though the final argument is optional, ' + 'its type cannot change between renders.', currentHookNameInDev);\n }\n return false;\n }\n\n {\n // Don't bother comparing lengths in prod because these arrays should be\n // passed inline.\n if (nextDeps.length !== prevDeps.length) {\n warning$1(false, 'The final argument passed to %s changed size between renders. The ' + 'order and size of this array must remain constant.\\n\\n' + 'Previous: %s\\n' + 'Incoming: %s', currentHookNameInDev, '[' + nextDeps.join(', ') + ']', '[' + prevDeps.join(', ') + ']');\n }\n }\n for (var i = 0; i < prevDeps.length && i < nextDeps.length; i++) {\n if (is(nextDeps[i], prevDeps[i])) {\n continue;\n }\n return false;\n }\n return true;\n}\n\nfunction createHook() {\n if (numberOfReRenders > 0) {\n invariant(false, 'Rendered more hooks than during the previous render');\n }\n return {\n memoizedState: null,\n queue: null,\n next: null\n };\n}\n\nfunction createWorkInProgressHook() {\n if (workInProgressHook === null) {\n // This is the first hook in the list\n if (firstWorkInProgressHook === null) {\n isReRender = false;\n firstWorkInProgressHook = workInProgressHook = createHook();\n } else {\n // There's already a work-in-progress. Reuse it.\n isReRender = true;\n workInProgressHook = firstWorkInProgressHook;\n }\n } else {\n if (workInProgressHook.next === null) {\n isReRender = false;\n // Append to the end of the list\n workInProgressHook = workInProgressHook.next = createHook();\n } else {\n // There's already a work-in-progress. Reuse it.\n isReRender = true;\n workInProgressHook = workInProgressHook.next;\n }\n }\n return workInProgressHook;\n}\n\nfunction prepareToUseHooks(componentIdentity) {\n currentlyRenderingComponent = componentIdentity;\n {\n isInHookUserCodeInDev = false;\n }\n\n // The following should have already been reset\n // didScheduleRenderPhaseUpdate = false;\n // firstWorkInProgressHook = null;\n // numberOfReRenders = 0;\n // renderPhaseUpdates = null;\n // workInProgressHook = null;\n}\n\nfunction finishHooks(Component, props, children, refOrContext) {\n // This must be called after every function component to prevent hooks from\n // being used in classes.\n\n while (didScheduleRenderPhaseUpdate) {\n // Updates were scheduled during the render phase. They are stored in\n // the `renderPhaseUpdates` map. Call the component again, reusing the\n // work-in-progress hooks and applying the additional updates on top. Keep\n // restarting until no more updates are scheduled.\n didScheduleRenderPhaseUpdate = false;\n numberOfReRenders += 1;\n\n // Start over from the beginning of the list\n workInProgressHook = null;\n\n children = Component(props, refOrContext);\n }\n currentlyRenderingComponent = null;\n firstWorkInProgressHook = null;\n numberOfReRenders = 0;\n renderPhaseUpdates = null;\n workInProgressHook = null;\n {\n isInHookUserCodeInDev = false;\n }\n\n // These were reset above\n // currentlyRenderingComponent = null;\n // didScheduleRenderPhaseUpdate = false;\n // firstWorkInProgressHook = null;\n // numberOfReRenders = 0;\n // renderPhaseUpdates = null;\n // workInProgressHook = null;\n\n return children;\n}\n\nfunction readContext(context, observedBits) {\n var threadID = currentThreadID;\n validateContextBounds(context, threadID);\n {\n !!isInHookUserCodeInDev ? warning$1(false, 'Context can only be read while React is rendering. ' + 'In classes, you can read it in the render method or getDerivedStateFromProps. ' + 'In function components, you can read it directly in the function body, but not ' + 'inside Hooks like useReducer() or useMemo().') : void 0;\n }\n return context[threadID];\n}\n\nfunction useContext(context, observedBits) {\n {\n currentHookNameInDev = 'useContext';\n }\n resolveCurrentlyRenderingComponent();\n var threadID = currentThreadID;\n validateContextBounds(context, threadID);\n return context[threadID];\n}\n\nfunction basicStateReducer(state, action) {\n return typeof action === 'function' ? action(state) : action;\n}\n\nfunction useState(initialState) {\n {\n currentHookNameInDev = 'useState';\n }\n return useReducer(basicStateReducer,\n // useReducer has a special case to support lazy useState initializers\n initialState);\n}\n\nfunction useReducer(reducer, initialArg, init) {\n {\n if (reducer !== basicStateReducer) {\n currentHookNameInDev = 'useReducer';\n }\n }\n currentlyRenderingComponent = resolveCurrentlyRenderingComponent();\n workInProgressHook = createWorkInProgressHook();\n if (isReRender) {\n // This is a re-render. Apply the new render phase updates to the previous\n var _queue = workInProgressHook.queue;\n var _dispatch = _queue.dispatch;\n if (renderPhaseUpdates !== null) {\n // Render phase updates are stored in a map of queue -> linked list\n var firstRenderPhaseUpdate = renderPhaseUpdates.get(_queue);\n if (firstRenderPhaseUpdate !== undefined) {\n renderPhaseUpdates.delete(_queue);\n var newState = workInProgressHook.memoizedState;\n var update = firstRenderPhaseUpdate;\n do {\n // Process this render phase update. We don't have to check the\n // priority because it will always be the same as the current\n // render's.\n var _action = update.action;\n {\n isInHookUserCodeInDev = true;\n }\n newState = reducer(newState, _action);\n {\n isInHookUserCodeInDev = false;\n }\n update = update.next;\n } while (update !== null);\n\n workInProgressHook.memoizedState = newState;\n\n return [newState, _dispatch];\n }\n }\n return [workInProgressHook.memoizedState, _dispatch];\n } else {\n {\n isInHookUserCodeInDev = true;\n }\n var initialState = void 0;\n if (reducer === basicStateReducer) {\n // Special case for `useState`.\n initialState = typeof initialArg === 'function' ? initialArg() : initialArg;\n } else {\n initialState = init !== undefined ? init(initialArg) : initialArg;\n }\n {\n isInHookUserCodeInDev = false;\n }\n workInProgressHook.memoizedState = initialState;\n var _queue2 = workInProgressHook.queue = {\n last: null,\n dispatch: null\n };\n var _dispatch2 = _queue2.dispatch = dispatchAction.bind(null, currentlyRenderingComponent, _queue2);\n return [workInProgressHook.memoizedState, _dispatch2];\n }\n}\n\nfunction useMemo(nextCreate, deps) {\n currentlyRenderingComponent = resolveCurrentlyRenderingComponent();\n workInProgressHook = createWorkInProgressHook();\n\n var nextDeps = deps === undefined ? null : deps;\n\n if (workInProgressHook !== null) {\n var prevState = workInProgressHook.memoizedState;\n if (prevState !== null) {\n if (nextDeps !== null) {\n var prevDeps = prevState[1];\n if (areHookInputsEqual(nextDeps, prevDeps)) {\n return prevState[0];\n }\n }\n }\n }\n\n {\n isInHookUserCodeInDev = true;\n }\n var nextValue = nextCreate();\n {\n isInHookUserCodeInDev = false;\n }\n workInProgressHook.memoizedState = [nextValue, nextDeps];\n return nextValue;\n}\n\nfunction useRef(initialValue) {\n currentlyRenderingComponent = resolveCurrentlyRenderingComponent();\n workInProgressHook = createWorkInProgressHook();\n var previousRef = workInProgressHook.memoizedState;\n if (previousRef === null) {\n var ref = { current: initialValue };\n {\n Object.seal(ref);\n }\n workInProgressHook.memoizedState = ref;\n return ref;\n } else {\n return previousRef;\n }\n}\n\nfunction useLayoutEffect(create, inputs) {\n {\n currentHookNameInDev = 'useLayoutEffect';\n }\n warning$1(false, 'useLayoutEffect does nothing on the server, because its effect cannot ' + \"be encoded into the server renderer's output format. This will lead \" + 'to a mismatch between the initial, non-hydrated UI and the intended ' + 'UI. To avoid this, useLayoutEffect should only be used in ' + 'components that render exclusively on the client.');\n}\n\nfunction dispatchAction(componentIdentity, queue, action) {\n !(numberOfReRenders < RE_RENDER_LIMIT) ? invariant(false, 'Too many re-renders. React limits the number of renders to prevent an infinite loop.') : void 0;\n\n if (componentIdentity === currentlyRenderingComponent) {\n // This is a render phase update. Stash it in a lazily-created map of\n // queue -> linked list of updates. After this render pass, we'll restart\n // and apply the stashed updates on top of the work-in-progress hook.\n didScheduleRenderPhaseUpdate = true;\n var update = {\n action: action,\n next: null\n };\n if (renderPhaseUpdates === null) {\n renderPhaseUpdates = new Map();\n }\n var firstRenderPhaseUpdate = renderPhaseUpdates.get(queue);\n if (firstRenderPhaseUpdate === undefined) {\n renderPhaseUpdates.set(queue, update);\n } else {\n // Append the update to the end of the list.\n var lastRenderPhaseUpdate = firstRenderPhaseUpdate;\n while (lastRenderPhaseUpdate.next !== null) {\n lastRenderPhaseUpdate = lastRenderPhaseUpdate.next;\n }\n lastRenderPhaseUpdate.next = update;\n }\n } else {\n // This means an update has happened after the function component has\n // returned. On the server this is a no-op. In React Fiber, the update\n // would be scheduled for a future render.\n }\n}\n\nfunction useCallback(callback, deps) {\n // Callbacks are passed as they are in the server environment.\n return callback;\n}\n\nfunction noop() {}\n\nvar currentThreadID = 0;\n\nfunction setCurrentThreadID(threadID) {\n currentThreadID = threadID;\n}\n\nvar Dispatcher = {\n readContext: readContext,\n useContext: useContext,\n useMemo: useMemo,\n useReducer: useReducer,\n useRef: useRef,\n useState: useState,\n useLayoutEffect: useLayoutEffect,\n useCallback: useCallback,\n // useImperativeHandle is not run in the server environment\n useImperativeHandle: noop,\n // Effects are not run in the server environment.\n useEffect: noop,\n // Debugging effect\n useDebugValue: noop\n};\n\nvar HTML_NAMESPACE = 'http://www.w3.org/1999/xhtml';\nvar MATH_NAMESPACE = 'http://www.w3.org/1998/Math/MathML';\nvar SVG_NAMESPACE = 'http://www.w3.org/2000/svg';\n\nvar Namespaces = {\n html: HTML_NAMESPACE,\n mathml: MATH_NAMESPACE,\n svg: SVG_NAMESPACE\n};\n\n// Assumes there is no parent namespace.\nfunction getIntrinsicNamespace(type) {\n switch (type) {\n case 'svg':\n return SVG_NAMESPACE;\n case 'math':\n return MATH_NAMESPACE;\n default:\n return HTML_NAMESPACE;\n }\n}\n\nfunction getChildNamespace(parentNamespace, type) {\n if (parentNamespace == null || parentNamespace === HTML_NAMESPACE) {\n // No (or default) parent namespace: potential entry point.\n return getIntrinsicNamespace(type);\n }\n if (parentNamespace === SVG_NAMESPACE && type === 'foreignObject') {\n // We're leaving SVG.\n return HTML_NAMESPACE;\n }\n // By default, pass namespace below.\n return parentNamespace;\n}\n\nvar ReactDebugCurrentFrame$2 = null;\n\nvar ReactControlledValuePropTypes = {\n checkPropTypes: null\n};\n\n{\n ReactDebugCurrentFrame$2 = ReactSharedInternals.ReactDebugCurrentFrame;\n\n var hasReadOnlyValue = {\n button: true,\n checkbox: true,\n image: true,\n hidden: true,\n radio: true,\n reset: true,\n submit: true\n };\n\n var propTypes = {\n value: function (props, propName, componentName) {\n if (hasReadOnlyValue[props.type] || props.onChange || props.readOnly || props.disabled || props[propName] == null) {\n return null;\n }\n return new Error('You provided a `value` prop to a form field without an ' + '`onChange` handler. This will render a read-only field. If ' + 'the field should be mutable use `defaultValue`. Otherwise, ' + 'set either `onChange` or `readOnly`.');\n },\n checked: function (props, propName, componentName) {\n if (props.onChange || props.readOnly || props.disabled || props[propName] == null) {\n return null;\n }\n return new Error('You provided a `checked` prop to a form field without an ' + '`onChange` handler. This will render a read-only field. If ' + 'the field should be mutable use `defaultChecked`. Otherwise, ' + 'set either `onChange` or `readOnly`.');\n }\n };\n\n /**\n * Provide a linked `value` attribute for controlled forms. You should not use\n * this outside of the ReactDOM controlled form components.\n */\n ReactControlledValuePropTypes.checkPropTypes = function (tagName, props) {\n checkPropTypes(propTypes, props, 'prop', tagName, ReactDebugCurrentFrame$2.getStackAddendum);\n };\n}\n\n// For HTML, certain tags should omit their close tag. We keep a whitelist for\n// those special-case tags.\n\nvar omittedCloseTags = {\n area: true,\n base: true,\n br: true,\n col: true,\n embed: true,\n hr: true,\n img: true,\n input: true,\n keygen: true,\n link: true,\n meta: true,\n param: true,\n source: true,\n track: true,\n wbr: true\n // NOTE: menuitem's close tag should be omitted, but that causes problems.\n};\n\n// For HTML, certain tags cannot have children. This has the same purpose as\n// `omittedCloseTags` except that `menuitem` should still have its closing tag.\n\nvar voidElementTags = _assign({\n menuitem: true\n}, omittedCloseTags);\n\n// TODO: We can remove this if we add invariantWithStack()\n// or add stack by default to invariants where possible.\nvar HTML = '__html';\n\nvar ReactDebugCurrentFrame$3 = null;\n{\n ReactDebugCurrentFrame$3 = ReactSharedInternals.ReactDebugCurrentFrame;\n}\n\nfunction assertValidProps(tag, props) {\n if (!props) {\n return;\n }\n // Note the use of `==` which checks for null or undefined.\n if (voidElementTags[tag]) {\n !(props.children == null && props.dangerouslySetInnerHTML == null) ? invariant(false, '%s is a void element tag and must neither have `children` nor use `dangerouslySetInnerHTML`.%s', tag, ReactDebugCurrentFrame$3.getStackAddendum()) : void 0;\n }\n if (props.dangerouslySetInnerHTML != null) {\n !(props.children == null) ? invariant(false, 'Can only set one of `children` or `props.dangerouslySetInnerHTML`.') : void 0;\n !(typeof props.dangerouslySetInnerHTML === 'object' && HTML in props.dangerouslySetInnerHTML) ? invariant(false, '`props.dangerouslySetInnerHTML` must be in the form `{__html: ...}`. Please visit https://fb.me/react-invariant-dangerously-set-inner-html for more information.') : void 0;\n }\n {\n !(props.suppressContentEditableWarning || !props.contentEditable || props.children == null) ? warning$1(false, 'A component is `contentEditable` and contains `children` managed by ' + 'React. It is now your responsibility to guarantee that none of ' + 'those nodes are unexpectedly modified or duplicated. This is ' + 'probably not intentional.') : void 0;\n }\n !(props.style == null || typeof props.style === 'object') ? invariant(false, 'The `style` prop expects a mapping from style properties to values, not a string. For example, style={{marginRight: spacing + \\'em\\'}} when using JSX.%s', ReactDebugCurrentFrame$3.getStackAddendum()) : void 0;\n}\n\n/**\n * CSS properties which accept numbers but are not in units of \"px\".\n */\nvar isUnitlessNumber = {\n animationIterationCount: true,\n borderImageOutset: true,\n borderImageSlice: true,\n borderImageWidth: true,\n boxFlex: true,\n boxFlexGroup: true,\n boxOrdinalGroup: true,\n columnCount: true,\n columns: true,\n flex: true,\n flexGrow: true,\n flexPositive: true,\n flexShrink: true,\n flexNegative: true,\n flexOrder: true,\n gridArea: true,\n gridRow: true,\n gridRowEnd: true,\n gridRowSpan: true,\n gridRowStart: true,\n gridColumn: true,\n gridColumnEnd: true,\n gridColumnSpan: true,\n gridColumnStart: true,\n fontWeight: true,\n lineClamp: true,\n lineHeight: true,\n opacity: true,\n order: true,\n orphans: true,\n tabSize: true,\n widows: true,\n zIndex: true,\n zoom: true,\n\n // SVG-related properties\n fillOpacity: true,\n floodOpacity: true,\n stopOpacity: true,\n strokeDasharray: true,\n strokeDashoffset: true,\n strokeMiterlimit: true,\n strokeOpacity: true,\n strokeWidth: true\n};\n\n/**\n * @param {string} prefix vendor-specific prefix, eg: Webkit\n * @param {string} key style name, eg: transitionDuration\n * @return {string} style name prefixed with `prefix`, properly camelCased, eg:\n * WebkitTransitionDuration\n */\nfunction prefixKey(prefix, key) {\n return prefix + key.charAt(0).toUpperCase() + key.substring(1);\n}\n\n/**\n * Support style names that may come passed in prefixed by adding permutations\n * of vendor prefixes.\n */\nvar prefixes = ['Webkit', 'ms', 'Moz', 'O'];\n\n// Using Object.keys here, or else the vanilla for-in loop makes IE8 go into an\n// infinite loop, because it iterates over the newly added props too.\nObject.keys(isUnitlessNumber).forEach(function (prop) {\n prefixes.forEach(function (prefix) {\n isUnitlessNumber[prefixKey(prefix, prop)] = isUnitlessNumber[prop];\n });\n});\n\n/**\n * Convert a value into the proper css writable value. The style name `name`\n * should be logical (no hyphens), as specified\n * in `CSSProperty.isUnitlessNumber`.\n *\n * @param {string} name CSS property name such as `topMargin`.\n * @param {*} value CSS property value such as `10px`.\n * @return {string} Normalized style value with dimensions applied.\n */\nfunction dangerousStyleValue(name, value, isCustomProperty) {\n // Note that we've removed escapeTextForBrowser() calls here since the\n // whole string will be escaped when the attribute is injected into\n // the markup. If you provide unsafe user data here they can inject\n // arbitrary CSS which may be problematic (I couldn't repro this):\n // https://www.owasp.org/index.php/XSS_Filter_Evasion_Cheat_Sheet\n // http://www.thespanner.co.uk/2007/11/26/ultimate-xss-css-injection/\n // This is not an XSS hole but instead a potential CSS injection issue\n // which has lead to a greater discussion about how we're going to\n // trust URLs moving forward. See #2115901\n\n var isEmpty = value == null || typeof value === 'boolean' || value === '';\n if (isEmpty) {\n return '';\n }\n\n if (!isCustomProperty && typeof value === 'number' && value !== 0 && !(isUnitlessNumber.hasOwnProperty(name) && isUnitlessNumber[name])) {\n return value + 'px'; // Presumes implicit 'px' suffix for unitless numbers\n }\n\n return ('' + value).trim();\n}\n\nvar uppercasePattern = /([A-Z])/g;\nvar msPattern = /^ms-/;\n\n/**\n * Hyphenates a camelcased CSS property name, for example:\n *\n * > hyphenateStyleName('backgroundColor')\n * < \"background-color\"\n * > hyphenateStyleName('MozTransition')\n * < \"-moz-transition\"\n * > hyphenateStyleName('msTransition')\n * < \"-ms-transition\"\n *\n * As Modernizr suggests (http://modernizr.com/docs/#prefixed), an `ms` prefix\n * is converted to `-ms-`.\n */\nfunction hyphenateStyleName(name) {\n return name.replace(uppercasePattern, '-$1').toLowerCase().replace(msPattern, '-ms-');\n}\n\nfunction isCustomComponent(tagName, props) {\n if (tagName.indexOf('-') === -1) {\n return typeof props.is === 'string';\n }\n switch (tagName) {\n // These are reserved SVG and MathML elements.\n // We don't mind this whitelist too much because we expect it to never grow.\n // The alternative is to track the namespace in a few places which is convoluted.\n // https://w3c.github.io/webcomponents/spec/custom/#custom-elements-core-concepts\n case 'annotation-xml':\n case 'color-profile':\n case 'font-face':\n case 'font-face-src':\n case 'font-face-uri':\n case 'font-face-format':\n case 'font-face-name':\n case 'missing-glyph':\n return false;\n default:\n return true;\n }\n}\n\nvar warnValidStyle = function () {};\n\n{\n // 'msTransform' is correct, but the other prefixes should be capitalized\n var badVendoredStyleNamePattern = /^(?:webkit|moz|o)[A-Z]/;\n var msPattern$1 = /^-ms-/;\n var hyphenPattern = /-(.)/g;\n\n // style values shouldn't contain a semicolon\n var badStyleValueWithSemicolonPattern = /;\\s*$/;\n\n var warnedStyleNames = {};\n var warnedStyleValues = {};\n var warnedForNaNValue = false;\n var warnedForInfinityValue = false;\n\n var camelize = function (string) {\n return string.replace(hyphenPattern, function (_, character) {\n return character.toUpperCase();\n });\n };\n\n var warnHyphenatedStyleName = function (name) {\n if (warnedStyleNames.hasOwnProperty(name) && warnedStyleNames[name]) {\n return;\n }\n\n warnedStyleNames[name] = true;\n warning$1(false, 'Unsupported style property %s. Did you mean %s?', name,\n // As Andi Smith suggests\n // (http://www.andismith.com/blog/2012/02/modernizr-prefixed/), an `-ms` prefix\n // is converted to lowercase `ms`.\n camelize(name.replace(msPattern$1, 'ms-')));\n };\n\n var warnBadVendoredStyleName = function (name) {\n if (warnedStyleNames.hasOwnProperty(name) && warnedStyleNames[name]) {\n return;\n }\n\n warnedStyleNames[name] = true;\n warning$1(false, 'Unsupported vendor-prefixed style property %s. Did you mean %s?', name, name.charAt(0).toUpperCase() + name.slice(1));\n };\n\n var warnStyleValueWithSemicolon = function (name, value) {\n if (warnedStyleValues.hasOwnProperty(value) && warnedStyleValues[value]) {\n return;\n }\n\n warnedStyleValues[value] = true;\n warning$1(false, \"Style property values shouldn't contain a semicolon. \" + 'Try \"%s: %s\" instead.', name, value.replace(badStyleValueWithSemicolonPattern, ''));\n };\n\n var warnStyleValueIsNaN = function (name, value) {\n if (warnedForNaNValue) {\n return;\n }\n\n warnedForNaNValue = true;\n warning$1(false, '`NaN` is an invalid value for the `%s` css style property.', name);\n };\n\n var warnStyleValueIsInfinity = function (name, value) {\n if (warnedForInfinityValue) {\n return;\n }\n\n warnedForInfinityValue = true;\n warning$1(false, '`Infinity` is an invalid value for the `%s` css style property.', name);\n };\n\n warnValidStyle = function (name, value) {\n if (name.indexOf('-') > -1) {\n warnHyphenatedStyleName(name);\n } else if (badVendoredStyleNamePattern.test(name)) {\n warnBadVendoredStyleName(name);\n } else if (badStyleValueWithSemicolonPattern.test(value)) {\n warnStyleValueWithSemicolon(name, value);\n }\n\n if (typeof value === 'number') {\n if (isNaN(value)) {\n warnStyleValueIsNaN(name, value);\n } else if (!isFinite(value)) {\n warnStyleValueIsInfinity(name, value);\n }\n }\n };\n}\n\nvar warnValidStyle$1 = warnValidStyle;\n\nvar ariaProperties = {\n 'aria-current': 0, // state\n 'aria-details': 0,\n 'aria-disabled': 0, // state\n 'aria-hidden': 0, // state\n 'aria-invalid': 0, // state\n 'aria-keyshortcuts': 0,\n 'aria-label': 0,\n 'aria-roledescription': 0,\n // Widget Attributes\n 'aria-autocomplete': 0,\n 'aria-checked': 0,\n 'aria-expanded': 0,\n 'aria-haspopup': 0,\n 'aria-level': 0,\n 'aria-modal': 0,\n 'aria-multiline': 0,\n 'aria-multiselectable': 0,\n 'aria-orientation': 0,\n 'aria-placeholder': 0,\n 'aria-pressed': 0,\n 'aria-readonly': 0,\n 'aria-required': 0,\n 'aria-selected': 0,\n 'aria-sort': 0,\n 'aria-valuemax': 0,\n 'aria-valuemin': 0,\n 'aria-valuenow': 0,\n 'aria-valuetext': 0,\n // Live Region Attributes\n 'aria-atomic': 0,\n 'aria-busy': 0,\n 'aria-live': 0,\n 'aria-relevant': 0,\n // Drag-and-Drop Attributes\n 'aria-dropeffect': 0,\n 'aria-grabbed': 0,\n // Relationship Attributes\n 'aria-activedescendant': 0,\n 'aria-colcount': 0,\n 'aria-colindex': 0,\n 'aria-colspan': 0,\n 'aria-controls': 0,\n 'aria-describedby': 0,\n 'aria-errormessage': 0,\n 'aria-flowto': 0,\n 'aria-labelledby': 0,\n 'aria-owns': 0,\n 'aria-posinset': 0,\n 'aria-rowcount': 0,\n 'aria-rowindex': 0,\n 'aria-rowspan': 0,\n 'aria-setsize': 0\n};\n\nvar warnedProperties = {};\nvar rARIA = new RegExp('^(aria)-[' + ATTRIBUTE_NAME_CHAR + ']*$');\nvar rARIACamel = new RegExp('^(aria)[A-Z][' + ATTRIBUTE_NAME_CHAR + ']*$');\n\nvar hasOwnProperty$2 = Object.prototype.hasOwnProperty;\n\nfunction validateProperty(tagName, name) {\n if (hasOwnProperty$2.call(warnedProperties, name) && warnedProperties[name]) {\n return true;\n }\n\n if (rARIACamel.test(name)) {\n var ariaName = 'aria-' + name.slice(4).toLowerCase();\n var correctName = ariaProperties.hasOwnProperty(ariaName) ? ariaName : null;\n\n // If this is an aria-* attribute, but is not listed in the known DOM\n // DOM properties, then it is an invalid aria-* attribute.\n if (correctName == null) {\n warning$1(false, 'Invalid ARIA attribute `%s`. ARIA attributes follow the pattern aria-* and must be lowercase.', name);\n warnedProperties[name] = true;\n return true;\n }\n // aria-* attributes should be lowercase; suggest the lowercase version.\n if (name !== correctName) {\n warning$1(false, 'Invalid ARIA attribute `%s`. Did you mean `%s`?', name, correctName);\n warnedProperties[name] = true;\n return true;\n }\n }\n\n if (rARIA.test(name)) {\n var lowerCasedName = name.toLowerCase();\n var standardName = ariaProperties.hasOwnProperty(lowerCasedName) ? lowerCasedName : null;\n\n // If this is an aria-* attribute, but is not listed in the known DOM\n // DOM properties, then it is an invalid aria-* attribute.\n if (standardName == null) {\n warnedProperties[name] = true;\n return false;\n }\n // aria-* attributes should be lowercase; suggest the lowercase version.\n if (name !== standardName) {\n warning$1(false, 'Unknown ARIA attribute `%s`. Did you mean `%s`?', name, standardName);\n warnedProperties[name] = true;\n return true;\n }\n }\n\n return true;\n}\n\nfunction warnInvalidARIAProps(type, props) {\n var invalidProps = [];\n\n for (var key in props) {\n var isValid = validateProperty(type, key);\n if (!isValid) {\n invalidProps.push(key);\n }\n }\n\n var unknownPropString = invalidProps.map(function (prop) {\n return '`' + prop + '`';\n }).join(', ');\n\n if (invalidProps.length === 1) {\n warning$1(false, 'Invalid aria prop %s on <%s> tag. ' + 'For details, see https://fb.me/invalid-aria-prop', unknownPropString, type);\n } else if (invalidProps.length > 1) {\n warning$1(false, 'Invalid aria props %s on <%s> tag. ' + 'For details, see https://fb.me/invalid-aria-prop', unknownPropString, type);\n }\n}\n\nfunction validateProperties(type, props) {\n if (isCustomComponent(type, props)) {\n return;\n }\n warnInvalidARIAProps(type, props);\n}\n\nvar didWarnValueNull = false;\n\nfunction validateProperties$1(type, props) {\n if (type !== 'input' && type !== 'textarea' && type !== 'select') {\n return;\n }\n\n if (props != null && props.value === null && !didWarnValueNull) {\n didWarnValueNull = true;\n if (type === 'select' && props.multiple) {\n warning$1(false, '`value` prop on `%s` should not be null. ' + 'Consider using an empty array when `multiple` is set to `true` ' + 'to clear the component or `undefined` for uncontrolled components.', type);\n } else {\n warning$1(false, '`value` prop on `%s` should not be null. ' + 'Consider using an empty string to clear the component or `undefined` ' + 'for uncontrolled components.', type);\n }\n }\n}\n\n/**\n * Registers plugins so that they can extract and dispatch events.\n *\n * @see {EventPluginHub}\n */\n\n/**\n * Ordered list of injected plugins.\n */\n\n\n/**\n * Mapping from event name to dispatch config\n */\n\n\n/**\n * Mapping from registration name to plugin module\n */\nvar registrationNameModules = {};\n\n/**\n * Mapping from registration name to event name\n */\n\n\n/**\n * Mapping from lowercase registration names to the properly cased version,\n * used to warn in the case of missing event handlers. Available\n * only in true.\n * @type {Object}\n */\nvar possibleRegistrationNames = {};\n// Trust the developer to only use possibleRegistrationNames in true\n\n/**\n * Injects an ordering of plugins (by plugin name). This allows the ordering\n * to be decoupled from injection of the actual plugins so that ordering is\n * always deterministic regardless of packaging, on-the-fly injection, etc.\n *\n * @param {array} InjectedEventPluginOrder\n * @internal\n * @see {EventPluginHub.injection.injectEventPluginOrder}\n */\n\n\n/**\n * Injects plugins to be used by `EventPluginHub`. The plugin names must be\n * in the ordering injected by `injectEventPluginOrder`.\n *\n * Plugins can be injected as part of page initialization or on-the-fly.\n *\n * @param {object} injectedNamesToPlugins Map from names to plugin modules.\n * @internal\n * @see {EventPluginHub.injection.injectEventPluginsByName}\n */\n\n// When adding attributes to the HTML or SVG whitelist, be sure to\n// also add them to this module to ensure casing and incorrect name\n// warnings.\nvar possibleStandardNames = {\n // HTML\n accept: 'accept',\n acceptcharset: 'acceptCharset',\n 'accept-charset': 'acceptCharset',\n accesskey: 'accessKey',\n action: 'action',\n allowfullscreen: 'allowFullScreen',\n alt: 'alt',\n as: 'as',\n async: 'async',\n autocapitalize: 'autoCapitalize',\n autocomplete: 'autoComplete',\n autocorrect: 'autoCorrect',\n autofocus: 'autoFocus',\n autoplay: 'autoPlay',\n autosave: 'autoSave',\n capture: 'capture',\n cellpadding: 'cellPadding',\n cellspacing: 'cellSpacing',\n challenge: 'challenge',\n charset: 'charSet',\n checked: 'checked',\n children: 'children',\n cite: 'cite',\n class: 'className',\n classid: 'classID',\n classname: 'className',\n cols: 'cols',\n colspan: 'colSpan',\n content: 'content',\n contenteditable: 'contentEditable',\n contextmenu: 'contextMenu',\n controls: 'controls',\n controlslist: 'controlsList',\n coords: 'coords',\n crossorigin: 'crossOrigin',\n dangerouslysetinnerhtml: 'dangerouslySetInnerHTML',\n data: 'data',\n datetime: 'dateTime',\n default: 'default',\n defaultchecked: 'defaultChecked',\n defaultvalue: 'defaultValue',\n defer: 'defer',\n dir: 'dir',\n disabled: 'disabled',\n download: 'download',\n draggable: 'draggable',\n enctype: 'encType',\n for: 'htmlFor',\n form: 'form',\n formmethod: 'formMethod',\n formaction: 'formAction',\n formenctype: 'formEncType',\n formnovalidate: 'formNoValidate',\n formtarget: 'formTarget',\n frameborder: 'frameBorder',\n headers: 'headers',\n height: 'height',\n hidden: 'hidden',\n high: 'high',\n href: 'href',\n hreflang: 'hrefLang',\n htmlfor: 'htmlFor',\n httpequiv: 'httpEquiv',\n 'http-equiv': 'httpEquiv',\n icon: 'icon',\n id: 'id',\n innerhtml: 'innerHTML',\n inputmode: 'inputMode',\n integrity: 'integrity',\n is: 'is',\n itemid: 'itemID',\n itemprop: 'itemProp',\n itemref: 'itemRef',\n itemscope: 'itemScope',\n itemtype: 'itemType',\n keyparams: 'keyParams',\n keytype: 'keyType',\n kind: 'kind',\n label: 'label',\n lang: 'lang',\n list: 'list',\n loop: 'loop',\n low: 'low',\n manifest: 'manifest',\n marginwidth: 'marginWidth',\n marginheight: 'marginHeight',\n max: 'max',\n maxlength: 'maxLength',\n media: 'media',\n mediagroup: 'mediaGroup',\n method: 'method',\n min: 'min',\n minlength: 'minLength',\n multiple: 'multiple',\n muted: 'muted',\n name: 'name',\n nomodule: 'noModule',\n nonce: 'nonce',\n novalidate: 'noValidate',\n open: 'open',\n optimum: 'optimum',\n pattern: 'pattern',\n placeholder: 'placeholder',\n playsinline: 'playsInline',\n poster: 'poster',\n preload: 'preload',\n profile: 'profile',\n radiogroup: 'radioGroup',\n readonly: 'readOnly',\n referrerpolicy: 'referrerPolicy',\n rel: 'rel',\n required: 'required',\n reversed: 'reversed',\n role: 'role',\n rows: 'rows',\n rowspan: 'rowSpan',\n sandbox: 'sandbox',\n scope: 'scope',\n scoped: 'scoped',\n scrolling: 'scrolling',\n seamless: 'seamless',\n selected: 'selected',\n shape: 'shape',\n size: 'size',\n sizes: 'sizes',\n span: 'span',\n spellcheck: 'spellCheck',\n src: 'src',\n srcdoc: 'srcDoc',\n srclang: 'srcLang',\n srcset: 'srcSet',\n start: 'start',\n step: 'step',\n style: 'style',\n summary: 'summary',\n tabindex: 'tabIndex',\n target: 'target',\n title: 'title',\n type: 'type',\n usemap: 'useMap',\n value: 'value',\n width: 'width',\n wmode: 'wmode',\n wrap: 'wrap',\n\n // SVG\n about: 'about',\n accentheight: 'accentHeight',\n 'accent-height': 'accentHeight',\n accumulate: 'accumulate',\n additive: 'additive',\n alignmentbaseline: 'alignmentBaseline',\n 'alignment-baseline': 'alignmentBaseline',\n allowreorder: 'allowReorder',\n alphabetic: 'alphabetic',\n amplitude: 'amplitude',\n arabicform: 'arabicForm',\n 'arabic-form': 'arabicForm',\n ascent: 'ascent',\n attributename: 'attributeName',\n attributetype: 'attributeType',\n autoreverse: 'autoReverse',\n azimuth: 'azimuth',\n basefrequency: 'baseFrequency',\n baselineshift: 'baselineShift',\n 'baseline-shift': 'baselineShift',\n baseprofile: 'baseProfile',\n bbox: 'bbox',\n begin: 'begin',\n bias: 'bias',\n by: 'by',\n calcmode: 'calcMode',\n capheight: 'capHeight',\n 'cap-height': 'capHeight',\n clip: 'clip',\n clippath: 'clipPath',\n 'clip-path': 'clipPath',\n clippathunits: 'clipPathUnits',\n cliprule: 'clipRule',\n 'clip-rule': 'clipRule',\n color: 'color',\n colorinterpolation: 'colorInterpolation',\n 'color-interpolation': 'colorInterpolation',\n colorinterpolationfilters: 'colorInterpolationFilters',\n 'color-interpolation-filters': 'colorInterpolationFilters',\n colorprofile: 'colorProfile',\n 'color-profile': 'colorProfile',\n colorrendering: 'colorRendering',\n 'color-rendering': 'colorRendering',\n contentscripttype: 'contentScriptType',\n contentstyletype: 'contentStyleType',\n cursor: 'cursor',\n cx: 'cx',\n cy: 'cy',\n d: 'd',\n datatype: 'datatype',\n decelerate: 'decelerate',\n descent: 'descent',\n diffuseconstant: 'diffuseConstant',\n direction: 'direction',\n display: 'display',\n divisor: 'divisor',\n dominantbaseline: 'dominantBaseline',\n 'dominant-baseline': 'dominantBaseline',\n dur: 'dur',\n dx: 'dx',\n dy: 'dy',\n edgemode: 'edgeMode',\n elevation: 'elevation',\n enablebackground: 'enableBackground',\n 'enable-background': 'enableBackground',\n end: 'end',\n exponent: 'exponent',\n externalresourcesrequired: 'externalResourcesRequired',\n fill: 'fill',\n fillopacity: 'fillOpacity',\n 'fill-opacity': 'fillOpacity',\n fillrule: 'fillRule',\n 'fill-rule': 'fillRule',\n filter: 'filter',\n filterres: 'filterRes',\n filterunits: 'filterUnits',\n floodopacity: 'floodOpacity',\n 'flood-opacity': 'floodOpacity',\n floodcolor: 'floodColor',\n 'flood-color': 'floodColor',\n focusable: 'focusable',\n fontfamily: 'fontFamily',\n 'font-family': 'fontFamily',\n fontsize: 'fontSize',\n 'font-size': 'fontSize',\n fontsizeadjust: 'fontSizeAdjust',\n 'font-size-adjust': 'fontSizeAdjust',\n fontstretch: 'fontStretch',\n 'font-stretch': 'fontStretch',\n fontstyle: 'fontStyle',\n 'font-style': 'fontStyle',\n fontvariant: 'fontVariant',\n 'font-variant': 'fontVariant',\n fontweight: 'fontWeight',\n 'font-weight': 'fontWeight',\n format: 'format',\n from: 'from',\n fx: 'fx',\n fy: 'fy',\n g1: 'g1',\n g2: 'g2',\n glyphname: 'glyphName',\n 'glyph-name': 'glyphName',\n glyphorientationhorizontal: 'glyphOrientationHorizontal',\n 'glyph-orientation-horizontal': 'glyphOrientationHorizontal',\n glyphorientationvertical: 'glyphOrientationVertical',\n 'glyph-orientation-vertical': 'glyphOrientationVertical',\n glyphref: 'glyphRef',\n gradienttransform: 'gradientTransform',\n gradientunits: 'gradientUnits',\n hanging: 'hanging',\n horizadvx: 'horizAdvX',\n 'horiz-adv-x': 'horizAdvX',\n horizoriginx: 'horizOriginX',\n 'horiz-origin-x': 'horizOriginX',\n ideographic: 'ideographic',\n imagerendering: 'imageRendering',\n 'image-rendering': 'imageRendering',\n in2: 'in2',\n in: 'in',\n inlist: 'inlist',\n intercept: 'intercept',\n k1: 'k1',\n k2: 'k2',\n k3: 'k3',\n k4: 'k4',\n k: 'k',\n kernelmatrix: 'kernelMatrix',\n kernelunitlength: 'kernelUnitLength',\n kerning: 'kerning',\n keypoints: 'keyPoints',\n keysplines: 'keySplines',\n keytimes: 'keyTimes',\n lengthadjust: 'lengthAdjust',\n letterspacing: 'letterSpacing',\n 'letter-spacing': 'letterSpacing',\n lightingcolor: 'lightingColor',\n 'lighting-color': 'lightingColor',\n limitingconeangle: 'limitingConeAngle',\n local: 'local',\n markerend: 'markerEnd',\n 'marker-end': 'markerEnd',\n markerheight: 'markerHeight',\n markermid: 'markerMid',\n 'marker-mid': 'markerMid',\n markerstart: 'markerStart',\n 'marker-start': 'markerStart',\n markerunits: 'markerUnits',\n markerwidth: 'markerWidth',\n mask: 'mask',\n maskcontentunits: 'maskContentUnits',\n maskunits: 'maskUnits',\n mathematical: 'mathematical',\n mode: 'mode',\n numoctaves: 'numOctaves',\n offset: 'offset',\n opacity: 'opacity',\n operator: 'operator',\n order: 'order',\n orient: 'orient',\n orientation: 'orientation',\n origin: 'origin',\n overflow: 'overflow',\n overlineposition: 'overlinePosition',\n 'overline-position': 'overlinePosition',\n overlinethickness: 'overlineThickness',\n 'overline-thickness': 'overlineThickness',\n paintorder: 'paintOrder',\n 'paint-order': 'paintOrder',\n panose1: 'panose1',\n 'panose-1': 'panose1',\n pathlength: 'pathLength',\n patterncontentunits: 'patternContentUnits',\n patterntransform: 'patternTransform',\n patternunits: 'patternUnits',\n pointerevents: 'pointerEvents',\n 'pointer-events': 'pointerEvents',\n points: 'points',\n pointsatx: 'pointsAtX',\n pointsaty: 'pointsAtY',\n pointsatz: 'pointsAtZ',\n prefix: 'prefix',\n preservealpha: 'preserveAlpha',\n preserveaspectratio: 'preserveAspectRatio',\n primitiveunits: 'primitiveUnits',\n property: 'property',\n r: 'r',\n radius: 'radius',\n refx: 'refX',\n refy: 'refY',\n renderingintent: 'renderingIntent',\n 'rendering-intent': 'renderingIntent',\n repeatcount: 'repeatCount',\n repeatdur: 'repeatDur',\n requiredextensions: 'requiredExtensions',\n requiredfeatures: 'requiredFeatures',\n resource: 'resource',\n restart: 'restart',\n result: 'result',\n results: 'results',\n rotate: 'rotate',\n rx: 'rx',\n ry: 'ry',\n scale: 'scale',\n security: 'security',\n seed: 'seed',\n shaperendering: 'shapeRendering',\n 'shape-rendering': 'shapeRendering',\n slope: 'slope',\n spacing: 'spacing',\n specularconstant: 'specularConstant',\n specularexponent: 'specularExponent',\n speed: 'speed',\n spreadmethod: 'spreadMethod',\n startoffset: 'startOffset',\n stddeviation: 'stdDeviation',\n stemh: 'stemh',\n stemv: 'stemv',\n stitchtiles: 'stitchTiles',\n stopcolor: 'stopColor',\n 'stop-color': 'stopColor',\n stopopacity: 'stopOpacity',\n 'stop-opacity': 'stopOpacity',\n strikethroughposition: 'strikethroughPosition',\n 'strikethrough-position': 'strikethroughPosition',\n strikethroughthickness: 'strikethroughThickness',\n 'strikethrough-thickness': 'strikethroughThickness',\n string: 'string',\n stroke: 'stroke',\n strokedasharray: 'strokeDasharray',\n 'stroke-dasharray': 'strokeDasharray',\n strokedashoffset: 'strokeDashoffset',\n 'stroke-dashoffset': 'strokeDashoffset',\n strokelinecap: 'strokeLinecap',\n 'stroke-linecap': 'strokeLinecap',\n strokelinejoin: 'strokeLinejoin',\n 'stroke-linejoin': 'strokeLinejoin',\n strokemiterlimit: 'strokeMiterlimit',\n 'stroke-miterlimit': 'strokeMiterlimit',\n strokewidth: 'strokeWidth',\n 'stroke-width': 'strokeWidth',\n strokeopacity: 'strokeOpacity',\n 'stroke-opacity': 'strokeOpacity',\n suppresscontenteditablewarning: 'suppressContentEditableWarning',\n suppresshydrationwarning: 'suppressHydrationWarning',\n surfacescale: 'surfaceScale',\n systemlanguage: 'systemLanguage',\n tablevalues: 'tableValues',\n targetx: 'targetX',\n targety: 'targetY',\n textanchor: 'textAnchor',\n 'text-anchor': 'textAnchor',\n textdecoration: 'textDecoration',\n 'text-decoration': 'textDecoration',\n textlength: 'textLength',\n textrendering: 'textRendering',\n 'text-rendering': 'textRendering',\n to: 'to',\n transform: 'transform',\n typeof: 'typeof',\n u1: 'u1',\n u2: 'u2',\n underlineposition: 'underlinePosition',\n 'underline-position': 'underlinePosition',\n underlinethickness: 'underlineThickness',\n 'underline-thickness': 'underlineThickness',\n unicode: 'unicode',\n unicodebidi: 'unicodeBidi',\n 'unicode-bidi': 'unicodeBidi',\n unicoderange: 'unicodeRange',\n 'unicode-range': 'unicodeRange',\n unitsperem: 'unitsPerEm',\n 'units-per-em': 'unitsPerEm',\n unselectable: 'unselectable',\n valphabetic: 'vAlphabetic',\n 'v-alphabetic': 'vAlphabetic',\n values: 'values',\n vectoreffect: 'vectorEffect',\n 'vector-effect': 'vectorEffect',\n version: 'version',\n vertadvy: 'vertAdvY',\n 'vert-adv-y': 'vertAdvY',\n vertoriginx: 'vertOriginX',\n 'vert-origin-x': 'vertOriginX',\n vertoriginy: 'vertOriginY',\n 'vert-origin-y': 'vertOriginY',\n vhanging: 'vHanging',\n 'v-hanging': 'vHanging',\n videographic: 'vIdeographic',\n 'v-ideographic': 'vIdeographic',\n viewbox: 'viewBox',\n viewtarget: 'viewTarget',\n visibility: 'visibility',\n vmathematical: 'vMathematical',\n 'v-mathematical': 'vMathematical',\n vocab: 'vocab',\n widths: 'widths',\n wordspacing: 'wordSpacing',\n 'word-spacing': 'wordSpacing',\n writingmode: 'writingMode',\n 'writing-mode': 'writingMode',\n x1: 'x1',\n x2: 'x2',\n x: 'x',\n xchannelselector: 'xChannelSelector',\n xheight: 'xHeight',\n 'x-height': 'xHeight',\n xlinkactuate: 'xlinkActuate',\n 'xlink:actuate': 'xlinkActuate',\n xlinkarcrole: 'xlinkArcrole',\n 'xlink:arcrole': 'xlinkArcrole',\n xlinkhref: 'xlinkHref',\n 'xlink:href': 'xlinkHref',\n xlinkrole: 'xlinkRole',\n 'xlink:role': 'xlinkRole',\n xlinkshow: 'xlinkShow',\n 'xlink:show': 'xlinkShow',\n xlinktitle: 'xlinkTitle',\n 'xlink:title': 'xlinkTitle',\n xlinktype: 'xlinkType',\n 'xlink:type': 'xlinkType',\n xmlbase: 'xmlBase',\n 'xml:base': 'xmlBase',\n xmllang: 'xmlLang',\n 'xml:lang': 'xmlLang',\n xmlns: 'xmlns',\n 'xml:space': 'xmlSpace',\n xmlnsxlink: 'xmlnsXlink',\n 'xmlns:xlink': 'xmlnsXlink',\n xmlspace: 'xmlSpace',\n y1: 'y1',\n y2: 'y2',\n y: 'y',\n ychannelselector: 'yChannelSelector',\n z: 'z',\n zoomandpan: 'zoomAndPan'\n};\n\nvar validateProperty$1 = function () {};\n\n{\n var warnedProperties$1 = {};\n var _hasOwnProperty = Object.prototype.hasOwnProperty;\n var EVENT_NAME_REGEX = /^on./;\n var INVALID_EVENT_NAME_REGEX = /^on[^A-Z]/;\n var rARIA$1 = new RegExp('^(aria)-[' + ATTRIBUTE_NAME_CHAR + ']*$');\n var rARIACamel$1 = new RegExp('^(aria)[A-Z][' + ATTRIBUTE_NAME_CHAR + ']*$');\n\n validateProperty$1 = function (tagName, name, value, canUseEventSystem) {\n if (_hasOwnProperty.call(warnedProperties$1, name) && warnedProperties$1[name]) {\n return true;\n }\n\n var lowerCasedName = name.toLowerCase();\n if (lowerCasedName === 'onfocusin' || lowerCasedName === 'onfocusout') {\n warning$1(false, 'React uses onFocus and onBlur instead of onFocusIn and onFocusOut. ' + 'All React events are normalized to bubble, so onFocusIn and onFocusOut ' + 'are not needed/supported by React.');\n warnedProperties$1[name] = true;\n return true;\n }\n\n // We can't rely on the event system being injected on the server.\n if (canUseEventSystem) {\n if (registrationNameModules.hasOwnProperty(name)) {\n return true;\n }\n var registrationName = possibleRegistrationNames.hasOwnProperty(lowerCasedName) ? possibleRegistrationNames[lowerCasedName] : null;\n if (registrationName != null) {\n warning$1(false, 'Invalid event handler property `%s`. Did you mean `%s`?', name, registrationName);\n warnedProperties$1[name] = true;\n return true;\n }\n if (EVENT_NAME_REGEX.test(name)) {\n warning$1(false, 'Unknown event handler property `%s`. It will be ignored.', name);\n warnedProperties$1[name] = true;\n return true;\n }\n } else if (EVENT_NAME_REGEX.test(name)) {\n // If no event plugins have been injected, we are in a server environment.\n // So we can't tell if the event name is correct for sure, but we can filter\n // out known bad ones like `onclick`. We can't suggest a specific replacement though.\n if (INVALID_EVENT_NAME_REGEX.test(name)) {\n warning$1(false, 'Invalid event handler property `%s`. ' + 'React events use the camelCase naming convention, for example `onClick`.', name);\n }\n warnedProperties$1[name] = true;\n return true;\n }\n\n // Let the ARIA attribute hook validate ARIA attributes\n if (rARIA$1.test(name) || rARIACamel$1.test(name)) {\n return true;\n }\n\n if (lowerCasedName === 'innerhtml') {\n warning$1(false, 'Directly setting property `innerHTML` is not permitted. ' + 'For more information, lookup documentation on `dangerouslySetInnerHTML`.');\n warnedProperties$1[name] = true;\n return true;\n }\n\n if (lowerCasedName === 'aria') {\n warning$1(false, 'The `aria` attribute is reserved for future use in React. ' + 'Pass individual `aria-` attributes instead.');\n warnedProperties$1[name] = true;\n return true;\n }\n\n if (lowerCasedName === 'is' && value !== null && value !== undefined && typeof value !== 'string') {\n warning$1(false, 'Received a `%s` for a string attribute `is`. If this is expected, cast ' + 'the value to a string.', typeof value);\n warnedProperties$1[name] = true;\n return true;\n }\n\n if (typeof value === 'number' && isNaN(value)) {\n warning$1(false, 'Received NaN for the `%s` attribute. If this is expected, cast ' + 'the value to a string.', name);\n warnedProperties$1[name] = true;\n return true;\n }\n\n var propertyInfo = getPropertyInfo(name);\n var isReserved = propertyInfo !== null && propertyInfo.type === RESERVED;\n\n // Known attributes should match the casing specified in the property config.\n if (possibleStandardNames.hasOwnProperty(lowerCasedName)) {\n var standardName = possibleStandardNames[lowerCasedName];\n if (standardName !== name) {\n warning$1(false, 'Invalid DOM property `%s`. Did you mean `%s`?', name, standardName);\n warnedProperties$1[name] = true;\n return true;\n }\n } else if (!isReserved && name !== lowerCasedName) {\n // Unknown attributes should have lowercase casing since that's how they\n // will be cased anyway with server rendering.\n warning$1(false, 'React does not recognize the `%s` prop on a DOM element. If you ' + 'intentionally want it to appear in the DOM as a custom ' + 'attribute, spell it as lowercase `%s` instead. ' + 'If you accidentally passed it from a parent component, remove ' + 'it from the DOM element.', name, lowerCasedName);\n warnedProperties$1[name] = true;\n return true;\n }\n\n if (typeof value === 'boolean' && shouldRemoveAttributeWithWarning(name, value, propertyInfo, false)) {\n if (value) {\n warning$1(false, 'Received `%s` for a non-boolean attribute `%s`.\\n\\n' + 'If you want to write it to the DOM, pass a string instead: ' + '%s=\"%s\" or %s={value.toString()}.', value, name, name, value, name);\n } else {\n warning$1(false, 'Received `%s` for a non-boolean attribute `%s`.\\n\\n' + 'If you want to write it to the DOM, pass a string instead: ' + '%s=\"%s\" or %s={value.toString()}.\\n\\n' + 'If you used to conditionally omit it with %s={condition && value}, ' + 'pass %s={condition ? value : undefined} instead.', value, name, name, value, name, name, name);\n }\n warnedProperties$1[name] = true;\n return true;\n }\n\n // Now that we've validated casing, do not validate\n // data types for reserved props\n if (isReserved) {\n return true;\n }\n\n // Warn when a known attribute is a bad type\n if (shouldRemoveAttributeWithWarning(name, value, propertyInfo, false)) {\n warnedProperties$1[name] = true;\n return false;\n }\n\n // Warn when passing the strings 'false' or 'true' into a boolean prop\n if ((value === 'false' || value === 'true') && propertyInfo !== null && propertyInfo.type === BOOLEAN) {\n warning$1(false, 'Received the string `%s` for the boolean attribute `%s`. ' + '%s ' + 'Did you mean %s={%s}?', value, name, value === 'false' ? 'The browser will interpret it as a truthy value.' : 'Although this works, it will not work as expected if you pass the string \"false\".', name, value);\n warnedProperties$1[name] = true;\n return true;\n }\n\n return true;\n };\n}\n\nvar warnUnknownProperties = function (type, props, canUseEventSystem) {\n var unknownProps = [];\n for (var key in props) {\n var isValid = validateProperty$1(type, key, props[key], canUseEventSystem);\n if (!isValid) {\n unknownProps.push(key);\n }\n }\n\n var unknownPropString = unknownProps.map(function (prop) {\n return '`' + prop + '`';\n }).join(', ');\n if (unknownProps.length === 1) {\n warning$1(false, 'Invalid value for prop %s on <%s> tag. Either remove it from the element, ' + 'or pass a string or number value to keep it in the DOM. ' + 'For details, see https://fb.me/react-attribute-behavior', unknownPropString, type);\n } else if (unknownProps.length > 1) {\n warning$1(false, 'Invalid values for props %s on <%s> tag. Either remove them from the element, ' + 'or pass a string or number value to keep them in the DOM. ' + 'For details, see https://fb.me/react-attribute-behavior', unknownPropString, type);\n }\n};\n\nfunction validateProperties$2(type, props, canUseEventSystem) {\n if (isCustomComponent(type, props)) {\n return;\n }\n warnUnknownProperties(type, props, canUseEventSystem);\n}\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n// Based on reading the React.Children implementation. TODO: type this somewhere?\n\nvar toArray = React.Children.toArray;\n\n// This is only used in DEV.\n// Each entry is `this.stack` from a currently executing renderer instance.\n// (There may be more than one because ReactDOMServer is reentrant).\n// Each stack is an array of frames which may contain nested stacks of elements.\nvar currentDebugStacks = [];\n\nvar ReactCurrentDispatcher = ReactSharedInternals.ReactCurrentDispatcher;\nvar ReactDebugCurrentFrame = void 0;\nvar prevGetCurrentStackImpl = null;\nvar getCurrentServerStackImpl = function () {\n return '';\n};\nvar describeStackFrame = function (element) {\n return '';\n};\n\nvar validatePropertiesInDevelopment = function (type, props) {};\nvar pushCurrentDebugStack = function (stack) {};\nvar pushElementToDebugStack = function (element) {};\nvar popCurrentDebugStack = function () {};\nvar hasWarnedAboutUsingContextAsConsumer = false;\n\n{\n ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\n\n validatePropertiesInDevelopment = function (type, props) {\n validateProperties(type, props);\n validateProperties$1(type, props);\n validateProperties$2(type, props, /* canUseEventSystem */false);\n };\n\n describeStackFrame = function (element) {\n var source = element._source;\n var type = element.type;\n var name = getComponentName(type);\n var ownerName = null;\n return describeComponentFrame(name, source, ownerName);\n };\n\n pushCurrentDebugStack = function (stack) {\n currentDebugStacks.push(stack);\n\n if (currentDebugStacks.length === 1) {\n // We are entering a server renderer.\n // Remember the previous (e.g. client) global stack implementation.\n prevGetCurrentStackImpl = ReactDebugCurrentFrame.getCurrentStack;\n ReactDebugCurrentFrame.getCurrentStack = getCurrentServerStackImpl;\n }\n };\n\n pushElementToDebugStack = function (element) {\n // For the innermost executing ReactDOMServer call,\n var stack = currentDebugStacks[currentDebugStacks.length - 1];\n // Take the innermost executing frame (e.g. ),\n var frame = stack[stack.length - 1];\n // and record that it has one more element associated with it.\n frame.debugElementStack.push(element);\n // We only need this because we tail-optimize single-element\n // children and directly handle them in an inner loop instead of\n // creating separate frames for them.\n };\n\n popCurrentDebugStack = function () {\n currentDebugStacks.pop();\n\n if (currentDebugStacks.length === 0) {\n // We are exiting the server renderer.\n // Restore the previous (e.g. client) global stack implementation.\n ReactDebugCurrentFrame.getCurrentStack = prevGetCurrentStackImpl;\n prevGetCurrentStackImpl = null;\n }\n };\n\n getCurrentServerStackImpl = function () {\n if (currentDebugStacks.length === 0) {\n // Nothing is currently rendering.\n return '';\n }\n // ReactDOMServer is reentrant so there may be multiple calls at the same time.\n // Take the frames from the innermost call which is the last in the array.\n var frames = currentDebugStacks[currentDebugStacks.length - 1];\n var stack = '';\n // Go through every frame in the stack from the innermost one.\n for (var i = frames.length - 1; i >= 0; i--) {\n var frame = frames[i];\n // Every frame might have more than one debug element stack entry associated with it.\n // This is because single-child nesting doesn't create materialized frames.\n // Instead it would push them through `pushElementToDebugStack()`.\n var _debugElementStack = frame.debugElementStack;\n for (var ii = _debugElementStack.length - 1; ii >= 0; ii--) {\n stack += describeStackFrame(_debugElementStack[ii]);\n }\n }\n return stack;\n };\n}\n\nvar didWarnDefaultInputValue = false;\nvar didWarnDefaultChecked = false;\nvar didWarnDefaultSelectValue = false;\nvar didWarnDefaultTextareaValue = false;\nvar didWarnInvalidOptionChildren = false;\nvar didWarnAboutNoopUpdateForComponent = {};\nvar didWarnAboutBadClass = {};\nvar didWarnAboutDeprecatedWillMount = {};\nvar didWarnAboutUndefinedDerivedState = {};\nvar didWarnAboutUninitializedState = {};\nvar valuePropNames = ['value', 'defaultValue'];\nvar newlineEatingTags = {\n listing: true,\n pre: true,\n textarea: true\n};\n\n// We accept any tag to be rendered but since this gets injected into arbitrary\n// HTML, we want to make sure that it's a safe tag.\n// http://www.w3.org/TR/REC-xml/#NT-Name\nvar VALID_TAG_REGEX = /^[a-zA-Z][a-zA-Z:_\\.\\-\\d]*$/; // Simplified subset\nvar validatedTagCache = {};\nfunction validateDangerousTag(tag) {\n if (!validatedTagCache.hasOwnProperty(tag)) {\n !VALID_TAG_REGEX.test(tag) ? invariant(false, 'Invalid tag: %s', tag) : void 0;\n validatedTagCache[tag] = true;\n }\n}\n\nvar styleNameCache = {};\nvar processStyleName = function (styleName) {\n if (styleNameCache.hasOwnProperty(styleName)) {\n return styleNameCache[styleName];\n }\n var result = hyphenateStyleName(styleName);\n styleNameCache[styleName] = result;\n return result;\n};\n\nfunction createMarkupForStyles(styles) {\n var serialized = '';\n var delimiter = '';\n for (var styleName in styles) {\n if (!styles.hasOwnProperty(styleName)) {\n continue;\n }\n var isCustomProperty = styleName.indexOf('--') === 0;\n var styleValue = styles[styleName];\n {\n if (!isCustomProperty) {\n warnValidStyle$1(styleName, styleValue);\n }\n }\n if (styleValue != null) {\n serialized += delimiter + processStyleName(styleName) + ':';\n serialized += dangerousStyleValue(styleName, styleValue, isCustomProperty);\n\n delimiter = ';';\n }\n }\n return serialized || null;\n}\n\nfunction warnNoop(publicInstance, callerName) {\n {\n var _constructor = publicInstance.constructor;\n var componentName = _constructor && getComponentName(_constructor) || 'ReactClass';\n var warningKey = componentName + '.' + callerName;\n if (didWarnAboutNoopUpdateForComponent[warningKey]) {\n return;\n }\n\n warningWithoutStack$1(false, '%s(...): Can only update a mounting component. ' + 'This usually means you called %s() outside componentWillMount() on the server. ' + 'This is a no-op.\\n\\nPlease check the code for the %s component.', callerName, callerName, componentName);\n didWarnAboutNoopUpdateForComponent[warningKey] = true;\n }\n}\n\nfunction shouldConstruct(Component) {\n return Component.prototype && Component.prototype.isReactComponent;\n}\n\nfunction getNonChildrenInnerMarkup(props) {\n var innerHTML = props.dangerouslySetInnerHTML;\n if (innerHTML != null) {\n if (innerHTML.__html != null) {\n return innerHTML.__html;\n }\n } else {\n var content = props.children;\n if (typeof content === 'string' || typeof content === 'number') {\n return escapeTextForBrowser(content);\n }\n }\n return null;\n}\n\nfunction flattenTopLevelChildren(children) {\n if (!React.isValidElement(children)) {\n return toArray(children);\n }\n var element = children;\n if (element.type !== REACT_FRAGMENT_TYPE) {\n return [element];\n }\n var fragmentChildren = element.props.children;\n if (!React.isValidElement(fragmentChildren)) {\n return toArray(fragmentChildren);\n }\n var fragmentChildElement = fragmentChildren;\n return [fragmentChildElement];\n}\n\nfunction flattenOptionChildren(children) {\n if (children === undefined || children === null) {\n return children;\n }\n var content = '';\n // Flatten children and warn if they aren't strings or numbers;\n // invalid types are ignored.\n React.Children.forEach(children, function (child) {\n if (child == null) {\n return;\n }\n content += child;\n {\n if (!didWarnInvalidOptionChildren && typeof child !== 'string' && typeof child !== 'number') {\n didWarnInvalidOptionChildren = true;\n warning$1(false, 'Only strings and numbers are supported as
    + ); +} diff --git a/src/React.Sample.Webpack.CoreMvc/package-lock.json b/src/React.Sample.Webpack.CoreMvc/package-lock.json index 1a83f57a4..21a504c64 100644 --- a/src/React.Sample.Webpack.CoreMvc/package-lock.json +++ b/src/React.Sample.Webpack.CoreMvc/package-lock.json @@ -577,6 +577,15 @@ "@babel/helper-plugin-utils": "^7.0.0" } }, + "@babel/plugin-syntax-dynamic-import": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.2.0.tgz", + "integrity": "sha512-mVxuJ0YroI/h/tbFTPGZR8cv6ai+STMKNBq0f8hFxsxWjl94qqhsb+wXbpNMDPU3cfR1TIsVFzU3nXyZMqyK4w==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, "@babel/plugin-syntax-json-strings": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.2.0.tgz", @@ -1166,6 +1175,136 @@ } } }, + "@emotion/cache": { + "version": "10.0.9", + "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-10.0.9.tgz", + "integrity": "sha512-f7MblpE2xoimC4fCMZ9pivmsIn7hyWRIvY75owMDi8pdOSeh+w5tH3r4hBJv/LLrwiMM7cTQURqTPcYoL5pWnw==", + "requires": { + "@emotion/sheet": "0.9.2", + "@emotion/stylis": "0.8.3", + "@emotion/utils": "0.11.1", + "@emotion/weak-memoize": "0.2.2" + }, + "dependencies": { + "@emotion/stylis": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/@emotion/stylis/-/stylis-0.8.3.tgz", + "integrity": "sha512-M3nMfJ6ndJMYloSIbYEBq6G3eqoYD41BpDOxreE8j0cb4fzz/5qvmqU9Mb2hzsXcCnIlGlWhS03PCzVGvTAe0Q==" + }, + "@emotion/utils": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-0.11.1.tgz", + "integrity": "sha512-8M3VN0hetwhsJ8dH8VkVy7xo5/1VoBsDOk/T4SJOeXwTO1c4uIqVNx2qyecLFnnUWD5vvUqHQ1gASSeUN6zcTg==" + } + } + }, + "@emotion/core": { + "version": "10.0.10", + "resolved": "https://registry.npmjs.org/@emotion/core/-/core-10.0.10.tgz", + "integrity": "sha512-U1aE2cOWUscjc8ZJ3Cx32udOzLeRoJwGxBH93xQD850oQFpwPKZARzdUtdc9SByUOwzSFYxhDhrpXnV34FJmWg==", + "requires": { + "@emotion/cache": "^10.0.9", + "@emotion/css": "^10.0.9", + "@emotion/serialize": "^0.11.6", + "@emotion/sheet": "0.9.2", + "@emotion/utils": "0.11.1" + }, + "dependencies": { + "@emotion/hash": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.7.1.tgz", + "integrity": "sha512-OYpa/Sg+2GDX+jibUfpZVn1YqSVRpYmTLF2eyAfrFTIJSbwyIrc+YscayoykvaOME/wV4BV0Sa0yqdMrgse6mA==" + }, + "@emotion/memoize": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.1.tgz", + "integrity": "sha512-Qv4LTqO11jepd5Qmlp3M1YEjBumoTHcHFdgPTQ+sFlIL5myi/7xu/POwP7IRu6odBdmLXdtIs1D6TuW6kbwbbg==" + }, + "@emotion/serialize": { + "version": "0.11.7", + "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-0.11.7.tgz", + "integrity": "sha512-GfzJIMue9eIEPFgBL340hBbjfki11vjYkfmY2LXoCDAFPuG6S+hkOlfinRXLnPVlXnKu7WWp587cVa6/xQriNQ==", + "requires": { + "@emotion/hash": "0.7.1", + "@emotion/memoize": "0.7.1", + "@emotion/unitless": "0.7.3", + "@emotion/utils": "0.11.1", + "csstype": "^2.5.7" + } + }, + "@emotion/unitless": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.3.tgz", + "integrity": "sha512-4zAPlpDEh2VwXswwr/t8xGNDGg8RQiPxtxZ3qQEXyQsBV39ptTdESCjuBvGze1nLMVrxmTIKmnO/nAV8Tqjjzg==" + }, + "@emotion/utils": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-0.11.1.tgz", + "integrity": "sha512-8M3VN0hetwhsJ8dH8VkVy7xo5/1VoBsDOk/T4SJOeXwTO1c4uIqVNx2qyecLFnnUWD5vvUqHQ1gASSeUN6zcTg==" + } + } + }, + "@emotion/css": { + "version": "10.0.12", + "resolved": "https://registry.npmjs.org/@emotion/css/-/css-10.0.12.tgz", + "integrity": "sha512-esET/v6AwYIw5YVo0e1L/bUik7bIMWyK32BudsC/PE5O1rLK3rjiLCOoMVv5GY6+ssuwWVzooGbz79hPvkkmsw==", + "requires": { + "@emotion/serialize": "^0.11.7", + "@emotion/utils": "0.11.1", + "babel-plugin-emotion": "^10.0.9" + }, + "dependencies": { + "@emotion/hash": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.7.1.tgz", + "integrity": "sha512-OYpa/Sg+2GDX+jibUfpZVn1YqSVRpYmTLF2eyAfrFTIJSbwyIrc+YscayoykvaOME/wV4BV0Sa0yqdMrgse6mA==" + }, + "@emotion/memoize": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.1.tgz", + "integrity": "sha512-Qv4LTqO11jepd5Qmlp3M1YEjBumoTHcHFdgPTQ+sFlIL5myi/7xu/POwP7IRu6odBdmLXdtIs1D6TuW6kbwbbg==" + }, + "@emotion/serialize": { + "version": "0.11.7", + "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-0.11.7.tgz", + "integrity": "sha512-GfzJIMue9eIEPFgBL340hBbjfki11vjYkfmY2LXoCDAFPuG6S+hkOlfinRXLnPVlXnKu7WWp587cVa6/xQriNQ==", + "requires": { + "@emotion/hash": "0.7.1", + "@emotion/memoize": "0.7.1", + "@emotion/unitless": "0.7.3", + "@emotion/utils": "0.11.1", + "csstype": "^2.5.7" + } + }, + "@emotion/unitless": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.3.tgz", + "integrity": "sha512-4zAPlpDEh2VwXswwr/t8xGNDGg8RQiPxtxZ3qQEXyQsBV39ptTdESCjuBvGze1nLMVrxmTIKmnO/nAV8Tqjjzg==" + }, + "@emotion/utils": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-0.11.1.tgz", + "integrity": "sha512-8M3VN0hetwhsJ8dH8VkVy7xo5/1VoBsDOk/T4SJOeXwTO1c4uIqVNx2qyecLFnnUWD5vvUqHQ1gASSeUN6zcTg==" + }, + "babel-plugin-emotion": { + "version": "10.0.13", + "resolved": "https://registry.npmjs.org/babel-plugin-emotion/-/babel-plugin-emotion-10.0.13.tgz", + "integrity": "sha512-w8yukWIYDw2ZUzBo7B9t5jh7wsM4NQWqvuZadW4MhVokgw5wsoBRJ59Sa1hMc3UZiatwb0iBNufmRQZVl77I5Q==", + "requires": { + "@babel/helper-module-imports": "^7.0.0", + "@emotion/hash": "0.7.1", + "@emotion/memoize": "0.7.1", + "@emotion/serialize": "^0.11.6", + "babel-plugin-macros": "^2.0.0", + "babel-plugin-syntax-jsx": "^6.18.0", + "convert-source-map": "^1.5.0", + "escape-string-regexp": "^1.0.5", + "find-root": "^1.1.0", + "source-map": "^0.5.7" + } + } + } + }, "@emotion/hash": { "version": "0.6.6", "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.6.6.tgz", @@ -1195,6 +1334,11 @@ "@emotion/utils": "^0.8.2" } }, + "@emotion/sheet": { + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-0.9.2.tgz", + "integrity": "sha512-pVBLzIbC/QCHDKJF2E82V2H/W/B004mDFQZiyo/MSR+VC4pV5JLG0TF/zgQDFvP3fZL/5RTPGEmXlYJBMUuJ+A==" + }, "@emotion/stylis": { "version": "0.7.1", "resolved": "https://registry.npmjs.org/@emotion/stylis/-/stylis-0.7.1.tgz", @@ -1210,6 +1354,11 @@ "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-0.8.2.tgz", "integrity": "sha512-rLu3wcBWH4P5q1CGoSSH/i9hrXs7SlbRLkoq9IGuoPYNGQvDJ3pt/wmOM+XgYjIDRMVIdkUWt0RsfzF50JfnCw==" }, + "@emotion/weak-memoize": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.2.2.tgz", + "integrity": "sha512-n/VQ4mbfr81aqkx/XmVicOLjviMuy02eenSdJY33SVA7S2J42EU0P1H0mOogfYedb3wXA0d/LVtBrgTSm04WEA==" + }, "@webassemblyjs/ast": { "version": "1.8.5", "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.8.5.tgz", @@ -2650,8 +2799,7 @@ "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=", - "dev": true + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" }, "eslint-scope": { "version": "4.0.3", @@ -5025,6 +5173,11 @@ "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=" + }, "pify": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", @@ -5182,6 +5335,14 @@ "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", "dev": true }, + "raf": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz", + "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==", + "requires": { + "performance-now": "^2.1.0" + } + }, "randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", @@ -5297,6 +5458,14 @@ "react-side-effect": "^1.1.0" } }, + "react-input-autosize": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/react-input-autosize/-/react-input-autosize-2.2.1.tgz", + "integrity": "sha512-3+K4CD13iE4lQQ2WlF8PuV5htfmTRLH6MDnfndHM6LuBRszuXnuyIfE7nhSKt8AzRBZ50bu0sAhkNMeS5pxQQA==", + "requires": { + "prop-types": "^15.5.8" + } + }, "react-is": { "version": "16.8.6", "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.8.6.tgz", @@ -5457,6 +5626,38 @@ } } }, + "react-select": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/react-select/-/react-select-3.0.4.tgz", + "integrity": "sha512-fbVISKa/lSUlLsltuatfUiKcWCNvdLXxFFyrzVQCBUsjxJZH/m7UMPdw/ywmRixAmwXAP++MdbNNZypOsiDEfA==", + "requires": { + "@babel/runtime": "^7.4.4", + "@emotion/cache": "^10.0.9", + "@emotion/core": "^10.0.9", + "@emotion/css": "^10.0.9", + "classnames": "^2.2.5", + "memoize-one": "^5.0.0", + "prop-types": "^15.6.0", + "raf": "^3.4.0", + "react-input-autosize": "^2.2.1", + "react-transition-group": "^2.2.1" + }, + "dependencies": { + "@babel/runtime": { + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.4.5.tgz", + "integrity": "sha512-TuI4qpWZP6lGOGIuGWtp9sPluqYICmbk8T/1vpSysqJxRPkudh/ofFWyqdcMsDf2s7KvDL4/YHgKyvcS3g9CJQ==", + "requires": { + "regenerator-runtime": "^0.13.2" + } + }, + "regenerator-runtime": { + "version": "0.13.2", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.2.tgz", + "integrity": "sha512-S/TQAZJO+D3m9xeN1WTI8dLKBBiRgXBlTJvbWjCThHWZj9EvHK70Ff50/tYj2J/fvBY6JtFVwRuazHN2E7M9BA==" + } + } + }, "react-side-effect": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/react-side-effect/-/react-side-effect-1.1.5.tgz", diff --git a/src/React.Sample.Webpack.CoreMvc/package.json b/src/React.Sample.Webpack.CoreMvc/package.json index f7e5777c2..1f23786b9 100644 --- a/src/React.Sample.Webpack.CoreMvc/package.json +++ b/src/React.Sample.Webpack.CoreMvc/package.json @@ -15,6 +15,7 @@ "react-helmet": "^5.2.0", "react-jss": "^8.6.1", "react-router-dom": "^5.0.0", + "react-select": "^3.0.4", "reactstrap": "^8.0.0", "styled-components": "^4.0.0" }, @@ -22,6 +23,7 @@ "@babel/core": "7.4.5", "@babel/plugin-proposal-class-properties": "7.4.4", "@babel/plugin-proposal-object-rest-spread": "7.4.4", + "@babel/plugin-syntax-dynamic-import": "^7.2.0", "@babel/preset-env": "7.4.5", "@babel/preset-react": "7.0.0", "babel-loader": "8.0.5", diff --git a/src/React.Sample.Webpack.CoreMvc/webpack.config.js b/src/React.Sample.Webpack.CoreMvc/webpack.config.js index 96954185d..9b7f9632c 100644 --- a/src/React.Sample.Webpack.CoreMvc/webpack.config.js +++ b/src/React.Sample.Webpack.CoreMvc/webpack.config.js @@ -8,6 +8,7 @@ module.exports = { filename: '[name].js', globalObject: 'this', path: path.resolve(__dirname, 'wwwroot/dist'), + publicPath: 'dist/' }, mode: process.env.NODE_ENV === 'production' ? 'production' : 'development', optimization: { @@ -17,7 +18,7 @@ module.exports = { splitChunks: { cacheGroups: { commons: { - test: /[\\/]node_modules[\\/]/, + test: /[\\/]node_modules[\\/](react|react-dom)[\\/]/, name: 'vendor', chunks: 'all', }, From 1a51e3426db5e70112d199f4a3e743a92bf47eb6 Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Sun, 9 Jun 2019 16:26:05 -0400 Subject: [PATCH 218/530] Remove unused lazy-loading sample code --- src/React.Sample.Webpack.CoreMvc/Content/components/home.jsx | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/React.Sample.Webpack.CoreMvc/Content/components/home.jsx b/src/React.Sample.Webpack.CoreMvc/Content/components/home.jsx index 72ea35de9..7cd5f4fd7 100644 --- a/src/React.Sample.Webpack.CoreMvc/Content/components/home.jsx +++ b/src/React.Sample.Webpack.CoreMvc/Content/components/home.jsx @@ -56,9 +56,6 @@ class HomePage extends Component { } export default class HomeComponent extends Component { - componentDidMount() { - import('react-select').then(x => this.setState({ x })); - } render() { const app = (
    From c5fa12d8cd7bf2266e21221d99a0d870e4edfd74 Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Sun, 9 Jun 2019 21:52:31 -0400 Subject: [PATCH 219/530] Improve type resolution for UMD libraries MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 😎 found a way to make it "just work" with existing types --- src/React.Sample.Mvc4/types/index.d.ts | 30 ++++++-------------------- 1 file changed, 6 insertions(+), 24 deletions(-) diff --git a/src/React.Sample.Mvc4/types/index.d.ts b/src/React.Sample.Mvc4/types/index.d.ts index 5466f2166..b647e1abe 100644 --- a/src/React.Sample.Mvc4/types/index.d.ts +++ b/src/React.Sample.Mvc4/types/index.d.ts @@ -1,27 +1,9 @@ -import { - Component as _Component, - useState as _useState, - Dispatch, - SetStateAction, -} from 'react'; - -// Globally available modules must be declared here -// Copy type definitions from @types/react/index.d.ts, because namespaces can't be re-exported +import _React from 'react'; +import _Reactstrap from 'reactstrap'; +import _PropTypes from 'prop-types'; declare global { - namespace React { - function useState( - initialState: S | (() => S), - ): [S, Dispatch>]; - function useState(): [ - S | undefined, - Dispatch> - ]; - interface Component

    - extends ComponentLifecycle {} - } - const Reactstrap: any; - const PropTypes: any; + const React: typeof _React; + const Reactstrap: typeof _Reactstrap; + const PropTypes: typeof _PropTypes; } - -export const test = 1; From d3be5c5a69c68d2b78e3c6339796688cf6f5c3a5 Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Sun, 9 Jun 2019 21:59:22 -0400 Subject: [PATCH 220/530] Verify types for Mvc4 sample during build --- build.proj | 5 ++ src/React.Sample.Mvc4/package-lock.json | 61 +++++++++++++++++++++++++ src/React.Sample.Mvc4/package.json | 3 ++ 3 files changed, 69 insertions(+) create mode 100644 src/React.Sample.Mvc4/package-lock.json diff --git a/build.proj b/build.proj index a3d2ae917..70bc09e7f 100644 --- a/build.proj +++ b/build.proj @@ -56,6 +56,10 @@ of patent rights can be found in the PATENTS file in the same directory. WorkingDirectory="src/React.Core/Resources/babel-legacy" Command="npm install" /> + + diff --git a/src/React.Sample.Mvc4/package-lock.json b/src/React.Sample.Mvc4/package-lock.json new file mode 100644 index 000000000..b067c54b5 --- /dev/null +++ b/src/React.Sample.Mvc4/package-lock.json @@ -0,0 +1,61 @@ +{ + "name": "React.Sample.Mvc4", + "version": "1.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@types/prop-types": { + "version": "15.7.1", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.1.tgz", + "integrity": "sha512-CFzn9idOEpHrgdw8JsoTkaDDyRWk1jrzIV8djzcgpq0y9tG4B4lFT+Nxh52DVpDXV+n4+NPNv7M1Dj5uMp6XFg==", + "dev": true + }, + "@types/react": { + "version": "16.8.19", + "resolved": "https://registry.npmjs.org/@types/react/-/react-16.8.19.tgz", + "integrity": "sha512-QzEzjrd1zFzY9cDlbIiFvdr+YUmefuuRYrPxmkwG0UQv5XF35gFIi7a95m1bNVcFU0VimxSZ5QVGSiBmlggQXQ==", + "dev": true, + "requires": { + "@types/prop-types": "*", + "csstype": "^2.2.0" + } + }, + "@types/react-dom": { + "version": "16.8.4", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-16.8.4.tgz", + "integrity": "sha512-eIRpEW73DCzPIMaNBDP5pPIpK1KXyZwNgfxiVagb5iGiz6da+9A5hslSX6GAQKdO7SayVCS/Fr2kjqprgAvkfA==", + "dev": true, + "requires": { + "@types/react": "*" + } + }, + "@types/reactstrap": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@types/reactstrap/-/reactstrap-8.0.1.tgz", + "integrity": "sha512-Gn3u6zAFxfBcxDxEMbyUC/A+zS8KpKNg/gKjdFLHug+sG4XOMUaychNiA5buRLeh0r3s+amsjD+xrX8gT612YA==", + "dev": true, + "requires": { + "@types/react": "*", + "popper.js": "^1.14.1" + } + }, + "csstype": { + "version": "2.6.5", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.5.tgz", + "integrity": "sha512-JsTaiksRsel5n7XwqPAfB0l3TFKdpjW/kgAELf9vrb5adGA7UCPLajKK5s3nFrcFm3Rkyp/Qkgl73ENc1UY3cA==", + "dev": true + }, + "popper.js": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.15.0.tgz", + "integrity": "sha512-w010cY1oCUmI+9KwwlWki+r5jxKfTFDVoadl7MSrIujHU5MJ5OR6HTDj6Xo8aoR/QsA56x8jKjA59qGH4ELtrA==", + "dev": true + }, + "typescript": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.5.1.tgz", + "integrity": "sha512-64HkdiRv1yYZsSe4xC1WVgamNigVYjlssIoaH2HcZF0+ijsk5YK2g0G34w9wJkze8+5ow4STd22AynfO6ZYYLw==", + "dev": true + } + } +} diff --git a/src/React.Sample.Mvc4/package.json b/src/React.Sample.Mvc4/package.json index a278be850..cc914481d 100644 --- a/src/React.Sample.Mvc4/package.json +++ b/src/React.Sample.Mvc4/package.json @@ -3,6 +3,9 @@ "version": "1.0.0", "main": "index.js", "license": "MIT", + "scripts": { + "lint:ts": "tsc" + }, "devDependencies": { "@types/react": "16.8.19", "@types/react-dom": "16.8.4", From 77019b231b83afe40ea6c7309396913c4ed8a608 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Mon, 10 Jun 2019 02:00:51 +0000 Subject: [PATCH 221/530] Pin dependency @babel/plugin-syntax-dynamic-import to 7.2.0 --- src/React.Sample.Webpack.CoreMvc/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/React.Sample.Webpack.CoreMvc/package.json b/src/React.Sample.Webpack.CoreMvc/package.json index 1f23786b9..179df7792 100644 --- a/src/React.Sample.Webpack.CoreMvc/package.json +++ b/src/React.Sample.Webpack.CoreMvc/package.json @@ -23,7 +23,7 @@ "@babel/core": "7.4.5", "@babel/plugin-proposal-class-properties": "7.4.4", "@babel/plugin-proposal-object-rest-spread": "7.4.4", - "@babel/plugin-syntax-dynamic-import": "^7.2.0", + "@babel/plugin-syntax-dynamic-import": "7.2.0", "@babel/preset-env": "7.4.5", "@babel/preset-react": "7.0.0", "babel-loader": "8.0.5", From 7e087393e7273be22036c03f19f75f539e0f11e4 Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Mon, 10 Jun 2019 08:39:25 -0400 Subject: [PATCH 222/530] Fix azure pipelines release builds (#832) --- azure-pipelines.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 2372786f1..c5c45456c 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -7,6 +7,7 @@ pool: variables: buildPlatform: 'Any CPU' buildConfiguration: 'Release' + buildType: 'Release' steps: - task: NodeTool@0 From af143a4e78447887767491c157a04dc9ad235195 Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Mon, 10 Jun 2019 08:51:22 -0400 Subject: [PATCH 223/530] 5.0.0-alpha7 --- build.proj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.proj b/build.proj index 70bc09e7f..3797525a6 100644 --- a/build.proj +++ b/build.proj @@ -11,7 +11,7 @@ of patent rights can be found in the PATENTS file in the same directory. 5 0 - 0-alpha6 + 0-alpha7 0 http://reactjs.net/packages/ $(MSBuildProjectDirectory)\tools\MSBuildTasks From 59bbb6eb255413059edb1984dc86aad53deb5750 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" Date: Tue, 11 Jun 2019 06:36:39 -0400 Subject: [PATCH 224/530] Update dependency webpack-cli to v3.3.4 (#833) --- .../Resources/babel-legacy/package-lock.json | 12 ++++++------ src/React.Core/Resources/babel-legacy/package.json | 2 +- src/React.Core/package-lock.json | 12 ++++++------ src/React.Core/package.json | 2 +- src/React.Sample.Webpack.CoreMvc/package-lock.json | 12 ++++++------ src/React.Sample.Webpack.CoreMvc/package.json | 2 +- 6 files changed, 21 insertions(+), 21 deletions(-) diff --git a/src/React.Core/Resources/babel-legacy/package-lock.json b/src/React.Core/Resources/babel-legacy/package-lock.json index c15da1d1f..a387080e2 100644 --- a/src/React.Core/Resources/babel-legacy/package-lock.json +++ b/src/React.Core/Resources/babel-legacy/package-lock.json @@ -4046,9 +4046,9 @@ "dev": true }, "prettier": { - "version": "1.18.0", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.18.0.tgz", - "integrity": "sha512-YsdAD29M0+WY2xXZk3i0PA16olY9qZss+AuODxglXcJ+2ZBwFv+6k5tE8GS8/HKAthaajlS/WqhdgcjumOrPlg==", + "version": "1.18.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.18.2.tgz", + "integrity": "sha512-OeHeMc0JhFE9idD4ZdtNibzY0+TPHSpSSb9h8FqtP+YnoZZ1sl8Vc9b1sasjfymH3SonAF4QcA2+mzHPhMvIiw==", "dev": true }, "private": { @@ -5109,9 +5109,9 @@ } }, "webpack-cli": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.3.tgz", - "integrity": "sha512-/qBxTvsxZ7bIFQtSa08QRY5BZuiJb27cbJM/nzmgXg9NEaudP20D7BruKKIuWfABqWoMEJQcNYYq/OxxSbPHlg==", + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.4.tgz", + "integrity": "sha512-ubJGQEKMtBSpT+LiL5hXvn2GIOWiRWItR1DGUqJRhwRBeGhpRXjvF5f0erqdRJLErkfqS5/Ldkkedh4AL5Q1ZQ==", "dev": true, "requires": { "chalk": "^2.4.1", diff --git a/src/React.Core/Resources/babel-legacy/package.json b/src/React.Core/Resources/babel-legacy/package.json index da270dafa..72b27d03c 100644 --- a/src/React.Core/Resources/babel-legacy/package.json +++ b/src/React.Core/Resources/babel-legacy/package.json @@ -13,7 +13,7 @@ "babel-preset-stage-0": "6.24.1", "babel-standalone": "6.26.0", "webpack": "4.33.0", - "webpack-cli": "3.3.3" + "webpack-cli": "3.3.4" }, "author": "", "license": "MIT" diff --git a/src/React.Core/package-lock.json b/src/React.Core/package-lock.json index a9978762d..7275c3253 100644 --- a/src/React.Core/package-lock.json +++ b/src/React.Core/package-lock.json @@ -3290,9 +3290,9 @@ "dev": true }, "prettier": { - "version": "1.18.0", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.18.0.tgz", - "integrity": "sha512-YsdAD29M0+WY2xXZk3i0PA16olY9qZss+AuODxglXcJ+2ZBwFv+6k5tE8GS8/HKAthaajlS/WqhdgcjumOrPlg==", + "version": "1.18.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.18.2.tgz", + "integrity": "sha512-OeHeMc0JhFE9idD4ZdtNibzY0+TPHSpSSb9h8FqtP+YnoZZ1sl8Vc9b1sasjfymH3SonAF4QcA2+mzHPhMvIiw==", "dev": true }, "process": { @@ -4382,9 +4382,9 @@ } }, "webpack-cli": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.3.tgz", - "integrity": "sha512-/qBxTvsxZ7bIFQtSa08QRY5BZuiJb27cbJM/nzmgXg9NEaudP20D7BruKKIuWfABqWoMEJQcNYYq/OxxSbPHlg==", + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.4.tgz", + "integrity": "sha512-ubJGQEKMtBSpT+LiL5hXvn2GIOWiRWItR1DGUqJRhwRBeGhpRXjvF5f0erqdRJLErkfqS5/Ldkkedh4AL5Q1ZQ==", "dev": true, "requires": { "chalk": "^2.4.1", diff --git a/src/React.Core/package.json b/src/React.Core/package.json index 519d95cb4..ef34d2cef 100644 --- a/src/React.Core/package.json +++ b/src/React.Core/package.json @@ -12,6 +12,6 @@ "react": "16.8.6", "react-dom": "16.8.6", "webpack": "4.33.0", - "webpack-cli": "3.3.3" + "webpack-cli": "3.3.4" } } diff --git a/src/React.Sample.Webpack.CoreMvc/package-lock.json b/src/React.Sample.Webpack.CoreMvc/package-lock.json index 21a504c64..4ab8104b2 100644 --- a/src/React.Sample.Webpack.CoreMvc/package-lock.json +++ b/src/React.Sample.Webpack.CoreMvc/package-lock.json @@ -5210,9 +5210,9 @@ "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" }, "prettier": { - "version": "1.18.0", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.18.0.tgz", - "integrity": "sha512-YsdAD29M0+WY2xXZk3i0PA16olY9qZss+AuODxglXcJ+2ZBwFv+6k5tE8GS8/HKAthaajlS/WqhdgcjumOrPlg==", + "version": "1.18.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.18.2.tgz", + "integrity": "sha512-OeHeMc0JhFE9idD4ZdtNibzY0+TPHSpSSb9h8FqtP+YnoZZ1sl8Vc9b1sasjfymH3SonAF4QcA2+mzHPhMvIiw==", "dev": true }, "private": { @@ -6951,9 +6951,9 @@ } }, "webpack-cli": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.3.tgz", - "integrity": "sha512-/qBxTvsxZ7bIFQtSa08QRY5BZuiJb27cbJM/nzmgXg9NEaudP20D7BruKKIuWfABqWoMEJQcNYYq/OxxSbPHlg==", + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.4.tgz", + "integrity": "sha512-ubJGQEKMtBSpT+LiL5hXvn2GIOWiRWItR1DGUqJRhwRBeGhpRXjvF5f0erqdRJLErkfqS5/Ldkkedh4AL5Q1ZQ==", "dev": true, "requires": { "chalk": "^2.4.1", diff --git a/src/React.Sample.Webpack.CoreMvc/package.json b/src/React.Sample.Webpack.CoreMvc/package.json index 179df7792..a93d91cbe 100644 --- a/src/React.Sample.Webpack.CoreMvc/package.json +++ b/src/React.Sample.Webpack.CoreMvc/package.json @@ -29,6 +29,6 @@ "babel-loader": "8.0.5", "babel-runtime": "6.26.0", "webpack": "4.33.0", - "webpack-cli": "3.3.3" + "webpack-cli": "3.3.4" } } From c93921f059bfe9419ad7094c184979da422a4477 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" Date: Tue, 11 Jun 2019 06:37:04 -0400 Subject: [PATCH 225/530] Update dependency React.AspNet to v5.0.0-alpha7 (#823) --- tutorial-code/tutorial-code.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tutorial-code/tutorial-code.csproj b/tutorial-code/tutorial-code.csproj index 8d87e3f5f..84e1c30f8 100644 --- a/tutorial-code/tutorial-code.csproj +++ b/tutorial-code/tutorial-code.csproj @@ -20,7 +20,7 @@ - + From 4799b88204f3b07cfb700f91565666a2f97da72f Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Tue, 11 Jun 2019 08:46:58 -0400 Subject: [PATCH 226/530] Docs: Add more details about server-rendering to readme --- README.md | 61 ++++++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 45 insertions(+), 16 deletions(-) diff --git a/README.md b/README.md index b481d6438..46f7b1b7b 100644 --- a/README.md +++ b/README.md @@ -8,42 +8,71 @@ ReactJS.NET is a library that makes it easier to use [Babel](http://babeljs.io/) # Features -- On-the-fly [JSX to JavaScript compilation](http://reactjs.net/getting-started/usage.html) via [Babel](http://babeljs.io/) - -* JSX to JavaScript compilation via popular minification/combination - libraries: - - [ASP.NET Bundling and Minification](http://reactjs.net/bundling/weboptimizer.html) - - [Cassette](http://reactjs.net/bundling/cassette.html) - - [Webpack](http://reactjs.net/bundling/webpack.html) - - [MSBuild](http://reactjs.net/bundling/msbuild.html) -* [Server-side component rendering](http://reactjs.net/features/server-side-rendering.html) - to make your initial render super-fast (experimental!) -* [Runs on Windows, OS X and Linux](http://reactjs.net/getting-started/chakracore.html) via .NET Core and ChakraCore -* Supports both ASP.NET 4.0/4.5 and ASP.NET Core -* Server-side style rendering with CSS-in-JS libraries +- On-the-fly [JSX to JavaScript compilation](http://reactjs.net/getting-started/usage.html) via [Babel](http://babeljs.io/) + +* JSX to JavaScript compilation via popular minification/combination + libraries: + - [ASP.NET Bundling and Minification](http://reactjs.net/bundling/weboptimizer.html) + - [Cassette](http://reactjs.net/bundling/cassette.html) + - [Webpack](http://reactjs.net/bundling/webpack.html) + - [MSBuild](http://reactjs.net/bundling/msbuild.html) +* [Server-side component rendering](http://reactjs.net/features/server-side-rendering.html) + to make your initial render super-fast, including support for: + - [CSS-in-JS libraries](https://reactjs.net/features/css-in-js.html) + - [React Router](https://reactjs.net/features/react-router.html) + - [React Helmet](https://reactjs.net/features/react-helmet.html) + - Custom JS logic via implementing [IRenderFunctions](https://github.com/reactjs/React.NET/blob/c93921f059bfe9419ad7094c184979da422a4477/src/React.Core/IRenderFunctions.cs) and passing to [Html.React](https://github.com/reactjs/React.NET/blob/c93921f059bfe9419ad7094c184979da422a4477/src/React.AspNet/HtmlHelperExtensions.cs#L71) +* [Runs on Windows, OS X and Linux](http://reactjs.net/getting-started/chakracore.html) via .NET Core and ChakraCore +* Supports both ASP.NET 4.0/4.5 and ASP.NET Core # Quick Start Install the package -``` +```powershell Install-Package React.Web.Mvc4 # For ASP.NET MVC 4 or 5 Install-Package React.AspNet   # For ASP.NET Core MVC ``` +Install a Javascript engine and configure as the default (more info [here](https://reactjs.net/getting-started/aspnet.html) on how this works) + +```powershell +Install-Package JavaScriptEngineSwitcher.V8 +Install-Package JavaScriptEngineSwitcher.V8.Native.win-x64 +``` + +```csharp +public static class ReactConfig +{ + public static void Configure() + { + ReactSiteConfiguration.Configuration + .AddScript("~/Content/HelloWorld.jsx"); + + JsEngineSwitcher.Current.DefaultEngineName = V8JsEngine.EngineName; + JsEngineSwitcher.Current.EngineFactories.AddV8(); + } +} +``` + Create JSX files ```javascript // /Scripts/HelloWorld.jsx -const HelloWorld = (props) => { - return (

    Hello {props.name}
    ); +const HelloWorld = props => { + return
    Hello {props.greeting}
    ; }; ``` Reference the JSX files from your HTML ```html + +@Html.React("HelloWorld", new { Greeting = "friends!" }); + + +@Html.ReactInitJavaScript(); ``` Now you can use the `HelloWorld` component. From fd2b59e8854da8d5dac07157b2a264bbcd84e707 Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Tue, 11 Jun 2019 08:48:05 -0400 Subject: [PATCH 227/530] Docs: Update webpack page with better babel config and server-render details --- site/jekyll/bundling/webpack.md | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/site/jekyll/bundling/webpack.md b/site/jekyll/bundling/webpack.md index ff6ea4405..080f8cf13 100644 --- a/site/jekyll/bundling/webpack.md +++ b/site/jekyll/bundling/webpack.md @@ -60,15 +60,20 @@ This configuration uses two entry points (`Content/server.js` for the server sid Our configuration also requires installation of the "babel" loader: -``` +```sh npm install --save-dev babel-loader ``` -You will also need a `.babelrc` in the root of your project: +You will also need a `.babelrc` in the root of your project, with at least preset-react and preset-env enabled. Note that the plugins and presets need to be separately installed via `npm install --save-dev`. -``` +```json { - "presets": ["react", "env"] + "presets": ["@babel/preset-react", "@babel/preset-env"], + "plugins": [ + "@babel/proposal-object-rest-spread", + "@babel/plugin-syntax-dynamic-import", + "@babel/proposal-class-properties" + ] } ``` @@ -76,7 +81,7 @@ Once Webpack has been configured, run `webpack` to build the bundles. Once you h ```csharp ReactSiteConfiguration.Configuration - .AddScript("~/build/server.bundle.js"); + .AddScriptWithoutTransform("~/wwwroot/server.bundle.js"); ``` This will load all your components into the `Components` global, which can be used from `Html.React` to render any of the components: @@ -87,6 +92,13 @@ This will load all your components into the `Components` global, which can be us }) ``` +Reference the built bundle directly in a script tag at the end of the page: + +```html + +@Html.ReactInitJavaScript(); +``` + A full example is available in [the ReactJS.NET repository](https://github.com/reactjs/React.NET/tree/master/src/React.Sample.Webpack.CoreMvc). ### Migrating from expose-loader From d39273558ad3d0181c4cd8ed3e6175a1bab3b407 Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Tue, 11 Jun 2019 08:50:08 -0400 Subject: [PATCH 228/530] Docs: Add missing calls to Html.ReactInitJavaScript This has caused a lot of confusion, since omitting this call will result in components that are not interactive --- site/jekyll/getting-started/aspnet.md | 3 ++- site/jekyll/getting-started/aspnetcore.md | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/site/jekyll/getting-started/aspnet.md b/site/jekyll/getting-started/aspnet.md index 07ec6bd01..7ad8f33f0 100644 --- a/site/jekyll/getting-started/aspnet.md +++ b/site/jekyll/getting-started/aspnet.md @@ -43,10 +43,11 @@ namespace React.Sample.Mvc4 } ``` -Reference JSX files directly in script tags: +Reference JSX files directly in script tags at the end of the page: ```html +@Html.ReactInitJavaScript(); ``` You're done! You can now call `Html.React` from within Razor files: diff --git a/site/jekyll/getting-started/aspnetcore.md b/site/jekyll/getting-started/aspnetcore.md index 6169cf120..eea79c96a 100644 --- a/site/jekyll/getting-started/aspnetcore.md +++ b/site/jekyll/getting-started/aspnetcore.md @@ -75,10 +75,11 @@ Finally, add this to `Views\_ViewImports.cshtml` (or create it if it doesn't exi @using React.AspNet ``` -Reference JSX files directly in script tags: +Reference JSX files directly in script tags at the end of the page: ```html +@Html.ReactInitJavaScript(); ``` You're done! You can now call `Html.React` from within Razor files: From 5007121b4b3b3239264f2e6e48e23e0fb4f84496 Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Tue, 11 Jun 2019 09:04:38 -0400 Subject: [PATCH 229/530] Docs: Update usage page to reference webpack --- site/jekyll/getting-started/usage.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/site/jekyll/getting-started/usage.md b/site/jekyll/getting-started/usage.md index 3e93c3bd8..8fbf04517 100644 --- a/site/jekyll/getting-started/usage.md +++ b/site/jekyll/getting-started/usage.md @@ -7,20 +7,20 @@ Once installed, create your React components as usual. ```javascript // /Scripts/HelloWorld.jsx -const HelloWorld = (props) => { - return (
    Hello {props.name}
    ); +const HelloWorld = props => { + return
    Hello {props.name}
    ; }; ``` -On-the-fly JSX to JavaScript Compilation ----------------------------------------- +## On-the-fly JSX to JavaScript Compilation + Hit a JSX file in your browser (eg. `/Scripts/HelloWorld.jsx`) and observe the magnificence of JSX being compiled into JavaScript with no precompilation necessary. -Next Steps ------------ +## Next Steps + On-the-fly JSX compilation is good for fast iteration during development, but for production you will want to precompile for best performance. This can be -done via [ASP.NET Bundling and Minification](/guides/weboptimizer.html) or -[Cassette](/guides/cassette.html). +done via [Webpack](/bundling/webpack.html) (recommended), [ASP.NET Bundling and Minification](/bundling/weboptimizer.html) or +[Cassette](/bundling/cassette.html). From 790358b719df01180680338a37e4af6117f2597f Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Wed, 12 Jun 2019 23:30:40 +0000 Subject: [PATCH 230/530] Update dependency webpack to v4.34.0 --- .../Resources/babel-legacy/package-lock.json | 51 ++++++++----------- .../Resources/babel-legacy/package.json | 2 +- src/React.Core/package-lock.json | 51 ++++++++----------- src/React.Core/package.json | 2 +- .../package-lock.json | 51 ++++++++----------- src/React.Sample.Webpack.CoreMvc/package.json | 2 +- 6 files changed, 66 insertions(+), 93 deletions(-) diff --git a/src/React.Core/Resources/babel-legacy/package-lock.json b/src/React.Core/Resources/babel-legacy/package-lock.json index a387080e2..7821851a5 100644 --- a/src/React.Core/Resources/babel-legacy/package-lock.json +++ b/src/React.Core/Resources/babel-legacy/package-lock.json @@ -3170,12 +3170,6 @@ "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", "dev": true }, - "indexof": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", - "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=", - "dev": true - }, "inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -3744,9 +3738,9 @@ "dev": true }, "node-libs-browser": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.0.tgz", - "integrity": "sha512-5MQunG/oyOaBdttrL40dA7bUfPORLRWMUJLQtMg7nluxUvk5XwnLdL9twQHFAjRx/y7mIMkLKT9++qPbbk6BZA==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", + "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", "dev": true, "requires": { "assert": "^1.1.1", @@ -3759,7 +3753,7 @@ "events": "^3.0.0", "https-browserify": "^1.0.0", "os-browserify": "^0.3.0", - "path-browserify": "0.0.0", + "path-browserify": "0.0.1", "process": "^0.11.10", "punycode": "^1.2.4", "querystring-es3": "^0.2.0", @@ -3771,7 +3765,7 @@ "tty-browserify": "0.0.0", "url": "^0.11.0", "util": "^0.11.0", - "vm-browserify": "0.0.4" + "vm-browserify": "^1.0.1" }, "dependencies": { "punycode": { @@ -3982,9 +3976,9 @@ "dev": true }, "path-browserify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz", - "integrity": "sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo=", + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", + "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", "dev": true }, "path-dirname": { @@ -4880,9 +4874,9 @@ "dev": true }, "tslib": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz", - "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==", + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz", + "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==", "dev": true }, "tty-browserify": { @@ -4942,9 +4936,9 @@ } }, "unique-slug": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.1.tgz", - "integrity": "sha512-n9cU6+gITaVu7VGj1Z8feKMmfAjEAQGhwD9fE3zvpRRa0wEIx8ODYkVGfSc94M2OX00tUFV8wH3zYbm1I8mxFg==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", + "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", "dev": true, "requires": { "imurmurhash": "^0.1.4" @@ -5057,13 +5051,10 @@ "dev": true }, "vm-browserify": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", - "integrity": "sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=", - "dev": true, - "requires": { - "indexof": "0.0.1" - } + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.0.tgz", + "integrity": "sha512-iq+S7vZJE60yejDYM0ek6zg308+UZsdtPExWP9VZoCFCz1zkJoXFnAX7aZfd/ZwrkidzdUZL0C/ryW+JwAiIGw==", + "dev": true }, "watchpack": { "version": "1.6.0", @@ -5077,9 +5068,9 @@ } }, "webpack": { - "version": "4.33.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.33.0.tgz", - "integrity": "sha512-ggWMb0B2QUuYso6FPZKUohOgfm+Z0sVFs8WwWuSH1IAvkWs428VDNmOlAxvHGTB9Dm/qOB/qtE5cRx5y01clxw==", + "version": "4.34.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.34.0.tgz", + "integrity": "sha512-ry2IQy1wJjOefLe1uJLzn5tG/DdIKzQqNlIAd2L84kcaADqNvQDTBlo8UcCNyDaT5FiaB+16jhAkb63YeG3H8Q==", "dev": true, "requires": { "@webassemblyjs/ast": "1.8.5", diff --git a/src/React.Core/Resources/babel-legacy/package.json b/src/React.Core/Resources/babel-legacy/package.json index 72b27d03c..cee81debd 100644 --- a/src/React.Core/Resources/babel-legacy/package.json +++ b/src/React.Core/Resources/babel-legacy/package.json @@ -12,7 +12,7 @@ "babel-preset-es2015": "6.24.1", "babel-preset-stage-0": "6.24.1", "babel-standalone": "6.26.0", - "webpack": "4.33.0", + "webpack": "4.34.0", "webpack-cli": "3.3.4" }, "author": "", diff --git a/src/React.Core/package-lock.json b/src/React.Core/package-lock.json index 7275c3253..b4fa58f23 100644 --- a/src/React.Core/package-lock.json +++ b/src/React.Core/package-lock.json @@ -2413,12 +2413,6 @@ "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", "dev": true }, - "indexof": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", - "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=", - "dev": true - }, "inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -2994,9 +2988,9 @@ "dev": true }, "node-libs-browser": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.0.tgz", - "integrity": "sha512-5MQunG/oyOaBdttrL40dA7bUfPORLRWMUJLQtMg7nluxUvk5XwnLdL9twQHFAjRx/y7mIMkLKT9++qPbbk6BZA==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", + "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", "dev": true, "requires": { "assert": "^1.1.1", @@ -3009,7 +3003,7 @@ "events": "^3.0.0", "https-browserify": "^1.0.0", "os-browserify": "^0.3.0", - "path-browserify": "0.0.0", + "path-browserify": "0.0.1", "process": "^0.11.10", "punycode": "^1.2.4", "querystring-es3": "^0.2.0", @@ -3021,7 +3015,7 @@ "tty-browserify": "0.0.0", "url": "^0.11.0", "util": "^0.11.0", - "vm-browserify": "0.0.4" + "vm-browserify": "^1.0.1" }, "dependencies": { "punycode": { @@ -3220,9 +3214,9 @@ "dev": true }, "path-browserify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz", - "integrity": "sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo=", + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", + "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", "dev": true }, "path-dirname": { @@ -4147,9 +4141,9 @@ "dev": true }, "tslib": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz", - "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==", + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz", + "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==", "dev": true }, "tty-browserify": { @@ -4209,9 +4203,9 @@ } }, "unique-slug": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.1.tgz", - "integrity": "sha512-n9cU6+gITaVu7VGj1Z8feKMmfAjEAQGhwD9fE3zvpRRa0wEIx8ODYkVGfSc94M2OX00tUFV8wH3zYbm1I8mxFg==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", + "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", "dev": true, "requires": { "imurmurhash": "^0.1.4" @@ -4330,13 +4324,10 @@ "dev": true }, "vm-browserify": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", - "integrity": "sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=", - "dev": true, - "requires": { - "indexof": "0.0.1" - } + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.0.tgz", + "integrity": "sha512-iq+S7vZJE60yejDYM0ek6zg308+UZsdtPExWP9VZoCFCz1zkJoXFnAX7aZfd/ZwrkidzdUZL0C/ryW+JwAiIGw==", + "dev": true }, "watchpack": { "version": "1.6.0", @@ -4350,9 +4341,9 @@ } }, "webpack": { - "version": "4.33.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.33.0.tgz", - "integrity": "sha512-ggWMb0B2QUuYso6FPZKUohOgfm+Z0sVFs8WwWuSH1IAvkWs428VDNmOlAxvHGTB9Dm/qOB/qtE5cRx5y01clxw==", + "version": "4.34.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.34.0.tgz", + "integrity": "sha512-ry2IQy1wJjOefLe1uJLzn5tG/DdIKzQqNlIAd2L84kcaADqNvQDTBlo8UcCNyDaT5FiaB+16jhAkb63YeG3H8Q==", "dev": true, "requires": { "@webassemblyjs/ast": "1.8.5", diff --git a/src/React.Core/package.json b/src/React.Core/package.json index ef34d2cef..af01df10e 100644 --- a/src/React.Core/package.json +++ b/src/React.Core/package.json @@ -11,7 +11,7 @@ "prop-types": "15.7.2", "react": "16.8.6", "react-dom": "16.8.6", - "webpack": "4.33.0", + "webpack": "4.34.0", "webpack-cli": "3.3.4" } } diff --git a/src/React.Sample.Webpack.CoreMvc/package-lock.json b/src/React.Sample.Webpack.CoreMvc/package-lock.json index 4ab8104b2..8a86d8321 100644 --- a/src/React.Sample.Webpack.CoreMvc/package-lock.json +++ b/src/React.Sample.Webpack.CoreMvc/package-lock.json @@ -4048,12 +4048,6 @@ "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", "dev": true }, - "indexof": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", - "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=", - "dev": true - }, "inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -4861,9 +4855,9 @@ } }, "node-libs-browser": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.0.tgz", - "integrity": "sha512-5MQunG/oyOaBdttrL40dA7bUfPORLRWMUJLQtMg7nluxUvk5XwnLdL9twQHFAjRx/y7mIMkLKT9++qPbbk6BZA==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", + "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", "dev": true, "requires": { "assert": "^1.1.1", @@ -4876,7 +4870,7 @@ "events": "^3.0.0", "https-browserify": "^1.0.0", "os-browserify": "^0.3.0", - "path-browserify": "0.0.0", + "path-browserify": "0.0.1", "process": "^0.11.10", "punycode": "^1.2.4", "querystring-es3": "^0.2.0", @@ -4888,7 +4882,7 @@ "tty-browserify": "0.0.0", "url": "^0.11.0", "util": "^0.11.0", - "vm-browserify": "0.0.4" + "vm-browserify": "^1.0.1" }, "dependencies": { "punycode": { @@ -5118,9 +5112,9 @@ "dev": true }, "path-browserify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz", - "integrity": "sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo=", + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", + "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", "dev": true }, "path-dirname": { @@ -6656,9 +6650,9 @@ "dev": true }, "tslib": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz", - "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==", + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz", + "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==", "dev": true }, "tty-browserify": { @@ -6756,9 +6750,9 @@ } }, "unique-slug": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.1.tgz", - "integrity": "sha512-n9cU6+gITaVu7VGj1Z8feKMmfAjEAQGhwD9fE3zvpRRa0wEIx8ODYkVGfSc94M2OX00tUFV8wH3zYbm1I8mxFg==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", + "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", "dev": true, "requires": { "imurmurhash": "^0.1.4" @@ -6891,13 +6885,10 @@ "integrity": "sha512-x+cYdNnaA3CxvMaTX0INdTCN8m8aF2uY9BvEqmxuYp8bL09cs/kWVQPVGcA35fMktdOsP69IgU7wFj/61dJHEw==" }, "vm-browserify": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", - "integrity": "sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=", - "dev": true, - "requires": { - "indexof": "0.0.1" - } + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.0.tgz", + "integrity": "sha512-iq+S7vZJE60yejDYM0ek6zg308+UZsdtPExWP9VZoCFCz1zkJoXFnAX7aZfd/ZwrkidzdUZL0C/ryW+JwAiIGw==", + "dev": true }, "warning": { "version": "3.0.0", @@ -6919,9 +6910,9 @@ } }, "webpack": { - "version": "4.33.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.33.0.tgz", - "integrity": "sha512-ggWMb0B2QUuYso6FPZKUohOgfm+Z0sVFs8WwWuSH1IAvkWs428VDNmOlAxvHGTB9Dm/qOB/qtE5cRx5y01clxw==", + "version": "4.34.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.34.0.tgz", + "integrity": "sha512-ry2IQy1wJjOefLe1uJLzn5tG/DdIKzQqNlIAd2L84kcaADqNvQDTBlo8UcCNyDaT5FiaB+16jhAkb63YeG3H8Q==", "dev": true, "requires": { "@webassemblyjs/ast": "1.8.5", diff --git a/src/React.Sample.Webpack.CoreMvc/package.json b/src/React.Sample.Webpack.CoreMvc/package.json index a93d91cbe..de0b0d1e7 100644 --- a/src/React.Sample.Webpack.CoreMvc/package.json +++ b/src/React.Sample.Webpack.CoreMvc/package.json @@ -28,7 +28,7 @@ "@babel/preset-react": "7.0.0", "babel-loader": "8.0.5", "babel-runtime": "6.26.0", - "webpack": "4.33.0", + "webpack": "4.34.0", "webpack-cli": "3.3.4" } } From 70b734b970f1633ac671ca77727b78f038d7ce1c Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Thu, 13 Jun 2019 17:39:03 +0000 Subject: [PATCH 231/530] Update dependency typescript to v3.5.2 --- src/React.Sample.Mvc4/package-lock.json | 6 +++--- src/React.Sample.Mvc4/package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/React.Sample.Mvc4/package-lock.json b/src/React.Sample.Mvc4/package-lock.json index b067c54b5..3f81f4a6f 100644 --- a/src/React.Sample.Mvc4/package-lock.json +++ b/src/React.Sample.Mvc4/package-lock.json @@ -52,9 +52,9 @@ "dev": true }, "typescript": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.5.1.tgz", - "integrity": "sha512-64HkdiRv1yYZsSe4xC1WVgamNigVYjlssIoaH2HcZF0+ijsk5YK2g0G34w9wJkze8+5ow4STd22AynfO6ZYYLw==", + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.5.2.tgz", + "integrity": "sha512-7KxJovlYhTX5RaRbUdkAXN1KUZ8PwWlTzQdHV6xNqvuFOs7+WBo10TQUqT19Q/Jz2hk5v9TQDIhyLhhJY4p5AA==", "dev": true } } diff --git a/src/React.Sample.Mvc4/package.json b/src/React.Sample.Mvc4/package.json index cc914481d..740095b9b 100644 --- a/src/React.Sample.Mvc4/package.json +++ b/src/React.Sample.Mvc4/package.json @@ -10,6 +10,6 @@ "@types/react": "16.8.19", "@types/react-dom": "16.8.4", "@types/reactstrap": "8.0.1", - "typescript": "3.5.1" + "typescript": "3.5.2" } } From 858dabd761106b36ea166a08fb410ff6a13cfe24 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Thu, 13 Jun 2019 19:30:34 +0000 Subject: [PATCH 232/530] Update JavaScriptEngineSwitcher packages to v3.1.2 --- .../React.Sample.ConsoleApp.csproj | 8 ++++---- .../React.Sample.Webpack.CoreMvc.csproj | 10 +++++----- tutorial-code/tutorial-code.csproj | 8 ++++---- 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/src/React.Sample.ConsoleApp/React.Sample.ConsoleApp.csproj b/src/React.Sample.ConsoleApp/React.Sample.ConsoleApp.csproj index d918dae7d..7a82f41a6 100644 --- a/src/React.Sample.ConsoleApp/React.Sample.ConsoleApp.csproj +++ b/src/React.Sample.ConsoleApp/React.Sample.ConsoleApp.csproj @@ -20,10 +20,10 @@ - - - - + + + + diff --git a/src/React.Sample.Webpack.CoreMvc/React.Sample.Webpack.CoreMvc.csproj b/src/React.Sample.Webpack.CoreMvc/React.Sample.Webpack.CoreMvc.csproj index 25430fde0..507f082f4 100644 --- a/src/React.Sample.Webpack.CoreMvc/React.Sample.Webpack.CoreMvc.csproj +++ b/src/React.Sample.Webpack.CoreMvc/React.Sample.Webpack.CoreMvc.csproj @@ -15,11 +15,11 @@ - - - - - + + + + + diff --git a/tutorial-code/tutorial-code.csproj b/tutorial-code/tutorial-code.csproj index 84e1c30f8..302747e39 100644 --- a/tutorial-code/tutorial-code.csproj +++ b/tutorial-code/tutorial-code.csproj @@ -13,10 +13,10 @@ - - - - + + + + From 223454e6791f798eb5c550dcf9068f5f8b4f0321 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Thu, 13 Jun 2019 19:30:45 +0000 Subject: [PATCH 233/530] Update dependency @types/react to v16.8.20 --- src/React.Sample.Mvc4/package-lock.json | 6 +++--- src/React.Sample.Mvc4/package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/React.Sample.Mvc4/package-lock.json b/src/React.Sample.Mvc4/package-lock.json index b067c54b5..1eb99ac29 100644 --- a/src/React.Sample.Mvc4/package-lock.json +++ b/src/React.Sample.Mvc4/package-lock.json @@ -11,9 +11,9 @@ "dev": true }, "@types/react": { - "version": "16.8.19", - "resolved": "https://registry.npmjs.org/@types/react/-/react-16.8.19.tgz", - "integrity": "sha512-QzEzjrd1zFzY9cDlbIiFvdr+YUmefuuRYrPxmkwG0UQv5XF35gFIi7a95m1bNVcFU0VimxSZ5QVGSiBmlggQXQ==", + "version": "16.8.20", + "resolved": "https://registry.npmjs.org/@types/react/-/react-16.8.20.tgz", + "integrity": "sha512-ZLmI+ubSJpfUIlQuULDDrdyuFQORBuGOvNnMue8HeA0GVrAJbWtZQhcBvnBPNRBI/GrfSfrKPFhthzC2SLEtLQ==", "dev": true, "requires": { "@types/prop-types": "*", diff --git a/src/React.Sample.Mvc4/package.json b/src/React.Sample.Mvc4/package.json index cc914481d..705d29985 100644 --- a/src/React.Sample.Mvc4/package.json +++ b/src/React.Sample.Mvc4/package.json @@ -7,7 +7,7 @@ "lint:ts": "tsc" }, "devDependencies": { - "@types/react": "16.8.19", + "@types/react": "16.8.20", "@types/react-dom": "16.8.4", "@types/reactstrap": "8.0.1", "typescript": "3.5.1" From 126b9db2c9834336e4fed6376482154e6a80026b Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Fri, 14 Jun 2019 00:28:19 +0000 Subject: [PATCH 234/530] Update dependency Microsoft.NET.Sdk.Functions to v1.0.29 --- webhooks/React.Site.Hooks.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/webhooks/React.Site.Hooks.csproj b/webhooks/React.Site.Hooks.csproj index 3710d9ae5..652dd0497 100644 --- a/webhooks/React.Site.Hooks.csproj +++ b/webhooks/React.Site.Hooks.csproj @@ -3,7 +3,7 @@ net461 - + From 81d7817b5ce47e30c8788eb71d3f5e6ed6f87ea3 Mon Sep 17 00:00:00 2001 From: Daniel Lo Nigro Date: Sat, 15 Jun 2019 15:01:48 -0700 Subject: [PATCH 235/530] Remove CLA docs since it's not required by this project --- site/jekyll/dev/contributing.md | 7 ------- 1 file changed, 7 deletions(-) diff --git a/site/jekyll/dev/contributing.md b/site/jekyll/dev/contributing.md index b0c22ad38..3258fa42d 100644 --- a/site/jekyll/dev/contributing.md +++ b/site/jekyll/dev/contributing.md @@ -17,13 +17,6 @@ We actively welcome your pull requests on the If you don't have Visual Studio 2017, get the [community edition](https://visualstudio.microsoft.com/downloads/) (it's free!) -## Contributor License Agreement ("CLA") - -In order to accept your pull request, we need you to submit a CLA. You only need -to do this once to work on any of Facebook's open source projects. - -Complete your CLA here: - ## Issues We use GitHub issues to track public bugs. Please ensure your description is From af643c1982e45fe2877801221a90fbc245f8604d Mon Sep 17 00:00:00 2001 From: Daniel Lo Nigro Date: Sat, 15 Jun 2019 15:02:32 -0700 Subject: [PATCH 236/530] Update docs to mention VS2019 requirement Closes #834 --- site/jekyll/dev/contributing.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/site/jekyll/dev/contributing.md b/site/jekyll/dev/contributing.md index 3258fa42d..2cd2761e5 100644 --- a/site/jekyll/dev/contributing.md +++ b/site/jekyll/dev/contributing.md @@ -13,9 +13,8 @@ We actively welcome your pull requests on the 3. If you've changed APIs, update the documentation. 4. Ensure the test suite passes. 5. Make sure your code lints. -6. If you haven't already, complete the Contributor License Agreement ("CLA"). -If you don't have Visual Studio 2017, get the [community edition](https://visualstudio.microsoft.com/downloads/) (it's free!) +Visual Studio 2019 is required to compile ReactJS.NET. If you don't have Visual Studio 2019, get the [community edition](https://visualstudio.microsoft.com/downloads/) (it's free!) ## Issues From 8bb96436d473d8780f832641404b6b96f58b6198 Mon Sep 17 00:00:00 2001 From: Daniel Lo Nigro Date: Sat, 15 Jun 2019 15:31:06 -0700 Subject: [PATCH 237/530] Update Renovate to automerge patch versions --- renovate.json | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/renovate.json b/renovate.json index ded6828f0..7d85e2c8d 100644 --- a/renovate.json +++ b/renovate.json @@ -26,5 +26,10 @@ ], "groupName": "ASP.NET Core packages" } - ] + ], + "separateMinorPatch": true, + "automerge": false, + "patch": { + "automerge": true + } } From e097a2bc86676f6076b6415fa76fabce0146100b Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Sat, 15 Jun 2019 23:14:42 +0000 Subject: [PATCH 238/530] Update dependency babel-loader to v8.0.6 --- .../package-lock.json | 137 ++---------------- src/React.Sample.Webpack.CoreMvc/package.json | 2 +- 2 files changed, 13 insertions(+), 126 deletions(-) diff --git a/src/React.Sample.Webpack.CoreMvc/package-lock.json b/src/React.Sample.Webpack.CoreMvc/package-lock.json index 8a86d8321..190f10d2e 100644 --- a/src/React.Sample.Webpack.CoreMvc/package-lock.json +++ b/src/React.Sample.Webpack.CoreMvc/package-lock.json @@ -1724,15 +1724,23 @@ "dev": true }, "babel-loader": { - "version": "8.0.5", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.0.5.tgz", - "integrity": "sha512-NTnHnVRd2JnRqPC0vW+iOQWU5pchDbYXsG2E6DMXEpMfUcQKclF9gmf3G3ZMhzG7IG9ji4coL0cm+FxeWxDpnw==", + "version": "8.0.6", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.0.6.tgz", + "integrity": "sha512-4BmWKtBOBm13uoUwd08UwjZlaw3O9GWf456R9j+5YykFZ6LUIjIKLc0zEZf+hauxPOJs96C8k6FvYD09vWzhYw==", "dev": true, "requires": { "find-cache-dir": "^2.0.0", "loader-utils": "^1.0.2", "mkdirp": "^0.5.1", - "util.promisify": "^1.0.0" + "pify": "^4.0.1" + }, + "dependencies": { + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true + } } }, "babel-plugin-emotion": { @@ -2555,23 +2563,6 @@ "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz", "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=" }, - "define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "dev": true, - "requires": { - "object-keys": "^1.0.12" - }, - "dependencies": { - "object-keys": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.0.tgz", - "integrity": "sha512-6OO5X1+2tYkNyNEx6TsCxEqFfRWaqx6EtMiSbGrw8Ob8v9Ne+Hl8rBAgLBZn5wjEz3s/s6U1WXFUFOcxxAwUpg==", - "dev": true - } - } - }, "define-property": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", @@ -2763,39 +2754,6 @@ "is-arrayish": "^0.2.1" } }, - "es-abstract": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.13.0.tgz", - "integrity": "sha512-vDZfg/ykNxQVwup/8E1BZhVzFfBxs9NqMzGcvIJrqg5k2/5Za2bWo40dK2J1pgLngZ7c+Shh8lwYtLGyrwPutg==", - "dev": true, - "requires": { - "es-to-primitive": "^1.2.0", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "is-callable": "^1.1.4", - "is-regex": "^1.0.4", - "object-keys": "^1.0.12" - }, - "dependencies": { - "object-keys": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.0.tgz", - "integrity": "sha512-6OO5X1+2tYkNyNEx6TsCxEqFfRWaqx6EtMiSbGrw8Ob8v9Ne+Hl8rBAgLBZn5wjEz3s/s6U1WXFUFOcxxAwUpg==", - "dev": true - } - } - }, - "es-to-primitive": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz", - "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==", - "dev": true, - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", @@ -3751,12 +3709,6 @@ } } }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, "get-caller-file": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", @@ -3854,26 +3806,11 @@ "resolved": "https://registry.npmjs.org/gud/-/gud-1.0.0.tgz", "integrity": "sha512-zGEOVKFM5sVPPrYs7J5/hYEw2Pof8KCyOwyhG8sAF26mCAeUFAcYPu1mwB7hhpIP29zOIBaDqwuHdLp0jvZXjw==" }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "requires": { - "function-bind": "^1.1.1" - } - }, "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" }, - "has-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz", - "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=", - "dev": true - }, "has-value": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", @@ -4130,12 +4067,6 @@ "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", "dev": true }, - "is-callable": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", - "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==", - "dev": true - }, "is-data-descriptor": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", @@ -4156,12 +4087,6 @@ } } }, - "is-date-object": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", - "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=", - "dev": true - }, "is-descriptor": { "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", @@ -4258,29 +4183,11 @@ } } }, - "is-regex": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", - "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", - "dev": true, - "requires": { - "has": "^1.0.1" - } - }, "is-stream": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" }, - "is-symbol": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz", - "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==", - "dev": true, - "requires": { - "has-symbols": "^1.0.0" - } - }, "is-windows": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", @@ -4981,16 +4888,6 @@ "isobject": "^3.0.0" } }, - "object.getownpropertydescriptors": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz", - "integrity": "sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=", - "dev": true, - "requires": { - "define-properties": "^1.1.2", - "es-abstract": "^1.5.1" - } - }, "object.pick": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", @@ -6863,16 +6760,6 @@ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" }, - "util.promisify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz", - "integrity": "sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==", - "dev": true, - "requires": { - "define-properties": "^1.1.2", - "object.getownpropertydescriptors": "^2.0.3" - } - }, "v8-compile-cache": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.0.3.tgz", diff --git a/src/React.Sample.Webpack.CoreMvc/package.json b/src/React.Sample.Webpack.CoreMvc/package.json index de0b0d1e7..cf5c70827 100644 --- a/src/React.Sample.Webpack.CoreMvc/package.json +++ b/src/React.Sample.Webpack.CoreMvc/package.json @@ -26,7 +26,7 @@ "@babel/plugin-syntax-dynamic-import": "7.2.0", "@babel/preset-env": "7.4.5", "@babel/preset-react": "7.0.0", - "babel-loader": "8.0.5", + "babel-loader": "8.0.6", "babel-runtime": "6.26.0", "webpack": "4.34.0", "webpack-cli": "3.3.4" From abe7884a0c4366fe834bab78c3f94add027e6c00 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Thu, 20 Jun 2019 00:31:39 +0000 Subject: [PATCH 239/530] Update dependency @types/react to v16.8.21 --- src/React.Sample.Mvc4/package-lock.json | 6 +++--- src/React.Sample.Mvc4/package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/React.Sample.Mvc4/package-lock.json b/src/React.Sample.Mvc4/package-lock.json index 73d2d1395..38d72ded9 100644 --- a/src/React.Sample.Mvc4/package-lock.json +++ b/src/React.Sample.Mvc4/package-lock.json @@ -11,9 +11,9 @@ "dev": true }, "@types/react": { - "version": "16.8.20", - "resolved": "https://registry.npmjs.org/@types/react/-/react-16.8.20.tgz", - "integrity": "sha512-ZLmI+ubSJpfUIlQuULDDrdyuFQORBuGOvNnMue8HeA0GVrAJbWtZQhcBvnBPNRBI/GrfSfrKPFhthzC2SLEtLQ==", + "version": "16.8.21", + "resolved": "https://registry.npmjs.org/@types/react/-/react-16.8.21.tgz", + "integrity": "sha512-+jAtgtJ3htE+VEP/bMzBBOANGkaTbMOGYWVrmhCVtp2WE//lNG6Irw9kBEaLR7lQGjjkt/BlSSHPgArFNOKhkg==", "dev": true, "requires": { "@types/prop-types": "*", diff --git a/src/React.Sample.Mvc4/package.json b/src/React.Sample.Mvc4/package.json index 214e2ae5f..23fe3aac1 100644 --- a/src/React.Sample.Mvc4/package.json +++ b/src/React.Sample.Mvc4/package.json @@ -7,7 +7,7 @@ "lint:ts": "tsc" }, "devDependencies": { - "@types/react": "16.8.20", + "@types/react": "16.8.21", "@types/react-dom": "16.8.4", "@types/reactstrap": "8.0.1", "typescript": "3.5.2" From d33bc999e51087ad5a23c584810c68577ca6c185 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Fri, 21 Jun 2019 00:52:21 +0000 Subject: [PATCH 240/530] Update dependency @types/react to v16.8.22 --- src/React.Sample.Mvc4/package-lock.json | 6 +++--- src/React.Sample.Mvc4/package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/React.Sample.Mvc4/package-lock.json b/src/React.Sample.Mvc4/package-lock.json index 38d72ded9..627f0f4b3 100644 --- a/src/React.Sample.Mvc4/package-lock.json +++ b/src/React.Sample.Mvc4/package-lock.json @@ -11,9 +11,9 @@ "dev": true }, "@types/react": { - "version": "16.8.21", - "resolved": "https://registry.npmjs.org/@types/react/-/react-16.8.21.tgz", - "integrity": "sha512-+jAtgtJ3htE+VEP/bMzBBOANGkaTbMOGYWVrmhCVtp2WE//lNG6Irw9kBEaLR7lQGjjkt/BlSSHPgArFNOKhkg==", + "version": "16.8.22", + "resolved": "https://registry.npmjs.org/@types/react/-/react-16.8.22.tgz", + "integrity": "sha512-C3O1yVqk4sUXqWyx0wlys76eQfhrQhiDhDlHBrjER76lR2S2Agiid/KpOU9oCqj1dISStscz7xXz1Cg8+sCQeA==", "dev": true, "requires": { "@types/prop-types": "*", diff --git a/src/React.Sample.Mvc4/package.json b/src/React.Sample.Mvc4/package.json index 23fe3aac1..5ae452064 100644 --- a/src/React.Sample.Mvc4/package.json +++ b/src/React.Sample.Mvc4/package.json @@ -7,7 +7,7 @@ "lint:ts": "tsc" }, "devDependencies": { - "@types/react": "16.8.21", + "@types/react": "16.8.22", "@types/react-dom": "16.8.4", "@types/reactstrap": "8.0.1", "typescript": "3.5.2" From 625f469bff6400d6fd333636a6ea0e3eaef7505e Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Sun, 23 Jun 2019 12:51:32 +0000 Subject: [PATCH 241/530] Update dependency webpack-cli to v3.3.5 --- .../Resources/babel-legacy/package-lock.json | 241 +++++++-------- .../Resources/babel-legacy/package.json | 2 +- src/React.Core/package-lock.json | 245 ++++++++-------- src/React.Core/package.json | 2 +- .../package-lock.json | 277 +++++++++--------- src/React.Sample.Webpack.CoreMvc/package.json | 2 +- 6 files changed, 388 insertions(+), 381 deletions(-) diff --git a/src/React.Core/Resources/babel-legacy/package-lock.json b/src/React.Core/Resources/babel-legacy/package-lock.json index 7821851a5..9f4d36464 100644 --- a/src/React.Core/Resources/babel-legacy/package-lock.json +++ b/src/React.Core/Resources/babel-legacy/package-lock.json @@ -229,9 +229,9 @@ "dev": true }, "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", "dev": true }, "ansi-styles": { @@ -1616,6 +1616,17 @@ "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", "supports-color": "^5.3.0" + }, + "dependencies": { + "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" + } + } } }, "chokidar": { @@ -1698,22 +1709,16 @@ } }, "cliui": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", - "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", "dev": true, "requires": { - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0", - "wrap-ansi": "^2.0.0" + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" } }, - "code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", - "dev": true - }, "collection-visit": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", @@ -2043,6 +2048,12 @@ "minimalistic-crypto-utils": "^1.0.0" } }, + "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 + }, "emojis-list": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", @@ -2338,15 +2349,26 @@ } }, "findup-sync": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz", - "integrity": "sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz", + "integrity": "sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==", "dev": true, "requires": { "detect-file": "^1.0.0", - "is-glob": "^3.1.0", + "is-glob": "^4.0.0", "micromatch": "^3.0.4", "resolve-dir": "^1.0.1" + }, + "dependencies": { + "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" + } + } } }, "flush-write-stream": { @@ -2951,9 +2973,9 @@ } }, "get-caller-file": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", - "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "dev": true }, "get-stream": { @@ -2996,14 +3018,25 @@ } }, "global-modules": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", - "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", + "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", "dev": true, "requires": { - "global-prefix": "^1.0.1", - "is-windows": "^1.0.1", - "resolve-dir": "^1.0.0" + "global-prefix": "^3.0.0" + }, + "dependencies": { + "global-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", + "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", + "dev": true, + "requires": { + "ini": "^1.3.5", + "kind-of": "^6.0.2", + "which": "^1.3.1" + } + } } }, "global-prefix": { @@ -4039,12 +4072,6 @@ "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", "dev": true }, - "prettier": { - "version": "1.18.2", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.18.2.tgz", - "integrity": "sha512-OeHeMc0JhFE9idD4ZdtNibzY0+TPHSpSSb9h8FqtP+YnoZZ1sl8Vc9b1sasjfymH3SonAF4QcA2+mzHPhMvIiw==", - "dev": true - }, "private": { "version": "0.1.8", "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", @@ -4286,9 +4313,9 @@ "dev": true }, "require-main-filename": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", + "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==", "dev": true }, "resolve-cwd": { @@ -4308,6 +4335,19 @@ "requires": { "expand-tilde": "^2.0.0", "global-modules": "^1.0.0" + }, + "dependencies": { + "global-modules": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", + "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", + "dev": true, + "requires": { + "global-prefix": "^1.0.1", + "is-windows": "^1.0.1", + "resolve-dir": "^1.0.0" + } + } } }, "resolve-from": { @@ -4701,13 +4741,14 @@ "dev": true }, "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "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": "^4.0.0" + "strip-ansi": "^5.1.0" } }, "string_decoder": { @@ -4720,12 +4761,12 @@ } }, "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "dev": true, "requires": { - "ansi-regex": "^3.0.0" + "ansi-regex": "^4.1.0" } }, "strip-eof": { @@ -4735,9 +4776,9 @@ "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==", + "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" @@ -5100,23 +5141,22 @@ } }, "webpack-cli": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.4.tgz", - "integrity": "sha512-ubJGQEKMtBSpT+LiL5hXvn2GIOWiRWItR1DGUqJRhwRBeGhpRXjvF5f0erqdRJLErkfqS5/Ldkkedh4AL5Q1ZQ==", + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.5.tgz", + "integrity": "sha512-w0j/s42c5UhchwTmV/45MLQnTVwRoaUTu9fM5LuyOd/8lFoCNCELDogFoecx5NzRUndO0yD/gF2b02XKMnmAWQ==", "dev": true, "requires": { - "chalk": "^2.4.1", - "cross-spawn": "^6.0.5", - "enhanced-resolve": "^4.1.0", - "findup-sync": "^2.0.0", - "global-modules": "^1.0.0", - "import-local": "^2.0.0", - "interpret": "^1.1.0", - "loader-utils": "^1.1.0", - "prettier": "^1.17.0", - "supports-color": "^5.5.0", - "v8-compile-cache": "^2.0.2", - "yargs": "^12.0.5" + "chalk": "2.4.2", + "cross-spawn": "6.0.5", + "enhanced-resolve": "4.1.0", + "findup-sync": "3.0.0", + "global-modules": "2.0.0", + "import-local": "2.0.0", + "interpret": "1.2.0", + "loader-utils": "1.2.3", + "supports-color": "6.1.0", + "v8-compile-cache": "2.0.3", + "yargs": "13.2.4" } }, "webpack-sources": { @@ -5162,50 +5202,14 @@ } }, "wrap-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "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==", "dev": true, "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "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=", - "dev": true, - "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=", - "dev": true, - "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=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - } + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" } }, "wrappy": { @@ -5233,29 +5237,28 @@ "dev": true }, "yargs": { - "version": "12.0.5", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz", - "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==", + "version": "13.2.4", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.2.4.tgz", + "integrity": "sha512-HG/DWAJa1PAnHT9JAhNa8AbAv3FPaiLzioSjCcmuXXhP8MlpHO5vwls4g4j6n30Z74GVQj8Xa62dWVx1QCGklg==", "dev": true, "requires": { - "cliui": "^4.0.0", - "decamelize": "^1.2.0", + "cliui": "^5.0.0", "find-up": "^3.0.0", - "get-caller-file": "^1.0.1", - "os-locale": "^3.0.0", + "get-caller-file": "^2.0.1", + "os-locale": "^3.1.0", "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", + "require-main-filename": "^2.0.0", "set-blocking": "^2.0.0", - "string-width": "^2.0.0", + "string-width": "^3.0.0", "which-module": "^2.0.0", - "y18n": "^3.2.1 || ^4.0.0", - "yargs-parser": "^11.1.1" + "y18n": "^4.0.0", + "yargs-parser": "^13.1.0" } }, "yargs-parser": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz", - "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==", + "version": "13.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.1.tgz", + "integrity": "sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ==", "dev": true, "requires": { "camelcase": "^5.0.0", diff --git a/src/React.Core/Resources/babel-legacy/package.json b/src/React.Core/Resources/babel-legacy/package.json index cee81debd..de0278793 100644 --- a/src/React.Core/Resources/babel-legacy/package.json +++ b/src/React.Core/Resources/babel-legacy/package.json @@ -13,7 +13,7 @@ "babel-preset-stage-0": "6.24.1", "babel-standalone": "6.26.0", "webpack": "4.34.0", - "webpack-cli": "3.3.4" + "webpack-cli": "3.3.5" }, "author": "", "license": "MIT" diff --git a/src/React.Core/package-lock.json b/src/React.Core/package-lock.json index b4fa58f23..7e5c5c3b7 100644 --- a/src/React.Core/package-lock.json +++ b/src/React.Core/package-lock.json @@ -417,9 +417,9 @@ "dev": true }, "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", "dev": true }, "ansi-styles": { @@ -918,22 +918,16 @@ } }, "cliui": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", - "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", "dev": true, "requires": { - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0", - "wrap-ansi": "^2.0.0" + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" } }, - "code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", - "dev": true - }, "collection-visit": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", @@ -1248,6 +1242,12 @@ "minimalistic-crypto-utils": "^1.0.0" } }, + "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 + }, "emojis-list": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", @@ -1608,15 +1608,26 @@ } }, "findup-sync": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz", - "integrity": "sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz", + "integrity": "sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==", "dev": true, "requires": { "detect-file": "^1.0.0", - "is-glob": "^3.1.0", + "is-glob": "^4.0.0", "micromatch": "^3.0.4", "resolve-dir": "^1.0.1" + }, + "dependencies": { + "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" + } + } } }, "flush-write-stream": { @@ -2221,9 +2232,9 @@ } }, "get-caller-file": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", - "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "dev": true }, "get-stream": { @@ -2266,14 +2277,25 @@ } }, "global-modules": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", - "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", + "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", "dev": true, "requires": { - "global-prefix": "^1.0.1", - "is-windows": "^1.0.1", - "resolve-dir": "^1.0.0" + "global-prefix": "^3.0.0" + }, + "dependencies": { + "global-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", + "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", + "dev": true, + "requires": { + "ini": "^1.3.5", + "kind-of": "^6.0.2", + "which": "^1.3.1" + } + } } }, "global-prefix": { @@ -3041,12 +3063,6 @@ "path-key": "^2.0.0" } }, - "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=", - "dev": true - }, "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", @@ -3283,12 +3299,6 @@ "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", "dev": true }, - "prettier": { - "version": "1.18.2", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.18.2.tgz", - "integrity": "sha512-OeHeMc0JhFE9idD4ZdtNibzY0+TPHSpSSb9h8FqtP+YnoZZ1sl8Vc9b1sasjfymH3SonAF4QcA2+mzHPhMvIiw==", - "dev": true - }, "process": { "version": "0.11.10", "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", @@ -3540,9 +3550,9 @@ "dev": true }, "require-main-filename": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", + "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==", "dev": true }, "resolve": { @@ -3571,6 +3581,19 @@ "requires": { "expand-tilde": "^2.0.0", "global-modules": "^1.0.0" + }, + "dependencies": { + "global-modules": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", + "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", + "dev": true, + "requires": { + "global-prefix": "^1.0.1", + "is-windows": "^1.0.1", + "resolve-dir": "^1.0.0" + } + } } }, "resolve-from": { @@ -3968,13 +3991,14 @@ "dev": true }, "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "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": "^4.0.0" + "strip-ansi": "^5.1.0" } }, "string_decoder": { @@ -3987,12 +4011,12 @@ } }, "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "dev": true, "requires": { - "ansi-regex": "^3.0.0" + "ansi-regex": "^4.1.0" } }, "strip-eof": { @@ -4373,23 +4397,33 @@ } }, "webpack-cli": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.4.tgz", - "integrity": "sha512-ubJGQEKMtBSpT+LiL5hXvn2GIOWiRWItR1DGUqJRhwRBeGhpRXjvF5f0erqdRJLErkfqS5/Ldkkedh4AL5Q1ZQ==", - "dev": true, - "requires": { - "chalk": "^2.4.1", - "cross-spawn": "^6.0.5", - "enhanced-resolve": "^4.1.0", - "findup-sync": "^2.0.0", - "global-modules": "^1.0.0", - "import-local": "^2.0.0", - "interpret": "^1.1.0", - "loader-utils": "^1.1.0", - "prettier": "^1.17.0", - "supports-color": "^5.5.0", - "v8-compile-cache": "^2.0.2", - "yargs": "^12.0.5" + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.5.tgz", + "integrity": "sha512-w0j/s42c5UhchwTmV/45MLQnTVwRoaUTu9fM5LuyOd/8lFoCNCELDogFoecx5NzRUndO0yD/gF2b02XKMnmAWQ==", + "dev": true, + "requires": { + "chalk": "2.4.2", + "cross-spawn": "6.0.5", + "enhanced-resolve": "4.1.0", + "findup-sync": "3.0.0", + "global-modules": "2.0.0", + "import-local": "2.0.0", + "interpret": "1.2.0", + "loader-utils": "1.2.3", + "supports-color": "6.1.0", + "v8-compile-cache": "2.0.3", + "yargs": "13.2.4" + }, + "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" + } + } } }, "webpack-sources": { @@ -4446,50 +4480,14 @@ } }, "wrap-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "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==", "dev": true, "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "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=", - "dev": true, - "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=", - "dev": true, - "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=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - } + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" } }, "wrappy": { @@ -4517,29 +4515,28 @@ "dev": true }, "yargs": { - "version": "12.0.5", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz", - "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==", + "version": "13.2.4", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.2.4.tgz", + "integrity": "sha512-HG/DWAJa1PAnHT9JAhNa8AbAv3FPaiLzioSjCcmuXXhP8MlpHO5vwls4g4j6n30Z74GVQj8Xa62dWVx1QCGklg==", "dev": true, "requires": { - "cliui": "^4.0.0", - "decamelize": "^1.2.0", + "cliui": "^5.0.0", "find-up": "^3.0.0", - "get-caller-file": "^1.0.1", - "os-locale": "^3.0.0", + "get-caller-file": "^2.0.1", + "os-locale": "^3.1.0", "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", + "require-main-filename": "^2.0.0", "set-blocking": "^2.0.0", - "string-width": "^2.0.0", + "string-width": "^3.0.0", "which-module": "^2.0.0", - "y18n": "^3.2.1 || ^4.0.0", - "yargs-parser": "^11.1.1" + "y18n": "^4.0.0", + "yargs-parser": "^13.1.0" } }, "yargs-parser": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz", - "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==", + "version": "13.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.1.tgz", + "integrity": "sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ==", "dev": true, "requires": { "camelcase": "^5.0.0", diff --git a/src/React.Core/package.json b/src/React.Core/package.json index af01df10e..bc27dd808 100644 --- a/src/React.Core/package.json +++ b/src/React.Core/package.json @@ -12,6 +12,6 @@ "react": "16.8.6", "react-dom": "16.8.6", "webpack": "4.34.0", - "webpack-cli": "3.3.4" + "webpack-cli": "3.3.5" } } diff --git a/src/React.Sample.Webpack.CoreMvc/package-lock.json b/src/React.Sample.Webpack.CoreMvc/package-lock.json index 190f10d2e..14d9c401b 100644 --- a/src/React.Sample.Webpack.CoreMvc/package-lock.json +++ b/src/React.Sample.Webpack.CoreMvc/package-lock.json @@ -1589,9 +1589,9 @@ "dev": true }, "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", "dev": true }, "ansi-styles": { @@ -2205,22 +2205,16 @@ "integrity": "sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q==" }, "cliui": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", - "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", "dev": true, "requires": { - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0", - "wrap-ansi": "^2.0.0" + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" } }, - "code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", - "dev": true - }, "collection-visit": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", @@ -2686,6 +2680,12 @@ "minimalistic-crypto-utils": "^1.0.0" } }, + "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 + }, "emojis-list": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", @@ -3048,26 +3048,15 @@ } }, "findup-sync": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz", - "integrity": "sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz", + "integrity": "sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==", "dev": true, "requires": { "detect-file": "^1.0.0", - "is-glob": "^3.1.0", + "is-glob": "^4.0.0", "micromatch": "^3.0.4", "resolve-dir": "^1.0.1" - }, - "dependencies": { - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "requires": { - "is-extglob": "^2.1.0" - } - } } }, "flush-write-stream": { @@ -3710,9 +3699,9 @@ } }, "get-caller-file": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", - "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "dev": true }, "get-stream": { @@ -3766,14 +3755,25 @@ } }, "global-modules": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", - "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", + "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", "dev": true, "requires": { - "global-prefix": "^1.0.1", - "is-windows": "^1.0.1", - "resolve-dir": "^1.0.0" + "global-prefix": "^3.0.0" + }, + "dependencies": { + "global-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", + "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", + "dev": true, + "requires": { + "ini": "^1.3.5", + "kind-of": "^6.0.2", + "which": "^1.3.1" + } + } } }, "global-prefix": { @@ -4832,12 +4832,6 @@ "path-key": "^2.0.0" } }, - "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=", - "dev": true - }, "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", @@ -5100,12 +5094,6 @@ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" }, - "prettier": { - "version": "1.18.2", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.18.2.tgz", - "integrity": "sha512-OeHeMc0JhFE9idD4ZdtNibzY0+TPHSpSSb9h8FqtP+YnoZZ1sl8Vc9b1sasjfymH3SonAF4QcA2+mzHPhMvIiw==", - "dev": true - }, "private": { "version": "0.1.8", "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", @@ -5750,9 +5738,9 @@ "dev": true }, "require-main-filename": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", + "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==", "dev": true }, "resolve": { @@ -5780,6 +5768,19 @@ "requires": { "expand-tilde": "^2.0.0", "global-modules": "^1.0.0" + }, + "dependencies": { + "global-modules": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", + "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", + "dev": true, + "requires": { + "global-prefix": "^1.0.1", + "is-windows": "^1.0.1", + "resolve-dir": "^1.0.0" + } + } } }, "resolve-from": { @@ -6232,13 +6233,14 @@ "dev": true }, "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "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": "^4.0.0" + "strip-ansi": "^5.1.0" } }, "string_decoder": { @@ -6250,12 +6252,12 @@ } }, "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "dev": true, "requires": { - "ansi-regex": "^3.0.0" + "ansi-regex": "^4.1.0" } }, "strip-eof": { @@ -6829,23 +6831,65 @@ } }, "webpack-cli": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.4.tgz", - "integrity": "sha512-ubJGQEKMtBSpT+LiL5hXvn2GIOWiRWItR1DGUqJRhwRBeGhpRXjvF5f0erqdRJLErkfqS5/Ldkkedh4AL5Q1ZQ==", - "dev": true, - "requires": { - "chalk": "^2.4.1", - "cross-spawn": "^6.0.5", - "enhanced-resolve": "^4.1.0", - "findup-sync": "^2.0.0", - "global-modules": "^1.0.0", - "import-local": "^2.0.0", - "interpret": "^1.1.0", - "loader-utils": "^1.1.0", - "prettier": "^1.17.0", - "supports-color": "^5.5.0", - "v8-compile-cache": "^2.0.2", - "yargs": "^12.0.5" + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.5.tgz", + "integrity": "sha512-w0j/s42c5UhchwTmV/45MLQnTVwRoaUTu9fM5LuyOd/8lFoCNCELDogFoecx5NzRUndO0yD/gF2b02XKMnmAWQ==", + "dev": true, + "requires": { + "chalk": "2.4.2", + "cross-spawn": "6.0.5", + "enhanced-resolve": "4.1.0", + "findup-sync": "3.0.0", + "global-modules": "2.0.0", + "import-local": "2.0.0", + "interpret": "1.2.0", + "loader-utils": "1.2.3", + "supports-color": "6.1.0", + "v8-compile-cache": "2.0.3", + "yargs": "13.2.4" + }, + "dependencies": { + "big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true + }, + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "loader-utils": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz", + "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^2.0.0", + "json5": "^1.0.1" + } + }, + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + }, + "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" + } + } } }, "webpack-sources": { @@ -6896,50 +6940,14 @@ } }, "wrap-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "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==", "dev": true, "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "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=", - "dev": true, - "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=", - "dev": true, - "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=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - } + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" } }, "wrappy": { @@ -6967,29 +6975,28 @@ "dev": true }, "yargs": { - "version": "12.0.5", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz", - "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==", + "version": "13.2.4", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.2.4.tgz", + "integrity": "sha512-HG/DWAJa1PAnHT9JAhNa8AbAv3FPaiLzioSjCcmuXXhP8MlpHO5vwls4g4j6n30Z74GVQj8Xa62dWVx1QCGklg==", "dev": true, "requires": { - "cliui": "^4.0.0", - "decamelize": "^1.2.0", + "cliui": "^5.0.0", "find-up": "^3.0.0", - "get-caller-file": "^1.0.1", - "os-locale": "^3.0.0", + "get-caller-file": "^2.0.1", + "os-locale": "^3.1.0", "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", + "require-main-filename": "^2.0.0", "set-blocking": "^2.0.0", - "string-width": "^2.0.0", + "string-width": "^3.0.0", "which-module": "^2.0.0", - "y18n": "^3.2.1 || ^4.0.0", - "yargs-parser": "^11.1.1" + "y18n": "^4.0.0", + "yargs-parser": "^13.1.0" } }, "yargs-parser": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz", - "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==", + "version": "13.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.1.tgz", + "integrity": "sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ==", "dev": true, "requires": { "camelcase": "^5.0.0", diff --git a/src/React.Sample.Webpack.CoreMvc/package.json b/src/React.Sample.Webpack.CoreMvc/package.json index cf5c70827..f4d403a1c 100644 --- a/src/React.Sample.Webpack.CoreMvc/package.json +++ b/src/React.Sample.Webpack.CoreMvc/package.json @@ -29,6 +29,6 @@ "babel-loader": "8.0.6", "babel-runtime": "6.26.0", "webpack": "4.34.0", - "webpack-cli": "3.3.4" + "webpack-cli": "3.3.5" } } From d353cac77a7276b065cd230ccc5d69f0b57e9a02 Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Thu, 13 Jun 2019 17:17:06 -0400 Subject: [PATCH 242/530] Fix misleading config in Webpack sample SetLoadBabel has no effect if scripts are bundled with webpack --- src/React.Sample.Webpack.CoreMvc/Startup.cs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/React.Sample.Webpack.CoreMvc/Startup.cs b/src/React.Sample.Webpack.CoreMvc/Startup.cs index 382c37de6..837039fab 100644 --- a/src/React.Sample.Webpack.CoreMvc/Startup.cs +++ b/src/React.Sample.Webpack.CoreMvc/Startup.cs @@ -42,9 +42,8 @@ public void Configure(IApplicationBuilder app) { config .SetReuseJavaScriptEngines(true) - .SetLoadBabel(true) + .SetLoadBabel(false) .SetLoadReact(false) - .SetBabelVersion(BabelVersions.Babel7) .AddScriptWithoutTransform("~/dist/runtime.js") .AddScriptWithoutTransform("~/dist/vendor.js") .AddScriptWithoutTransform("~/dist/components.js"); From d59d1d71eda8d50d08effdc8346a89188d69c623 Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Sun, 23 Jun 2019 13:07:56 -0400 Subject: [PATCH 243/530] Update project url to fix github package registry push --- src/Cassette.React/Cassette.React.csproj | 2 +- src/React.AspNet.Middleware/React.AspNet.Middleware.csproj | 2 +- src/React.AspNet/React.AspNet.csproj | 2 +- src/React.Core/React.Core.csproj | 2 +- src/React.MSBuild/React.MSBuild.csproj | 2 +- src/React.Owin/React.Owin.csproj | 2 +- src/React.Router.Mvc4/React.Router.Mvc4.csproj | 2 +- src/React.Router/React.Router.csproj | 2 +- src/React.Web.Mvc4/React.Web.Mvc4.csproj | 2 +- src/React.Web/React.Web.csproj | 2 +- .../System.Web.Optimization.React.csproj | 2 +- 11 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/Cassette.React/Cassette.React.csproj b/src/Cassette.React/Cassette.React.csproj index 5fc4d48f3..5ce968536 100644 --- a/src/Cassette.React/Cassette.React.csproj +++ b/src/Cassette.React/Cassette.React.csproj @@ -11,7 +11,7 @@ Cassette.React asp.net;mvc;asp;jquery;javascript;js;react;facebook;reactjs;babel;cassette http://reactjs.net/img/logo_64.png - http://reactjs.net/ + https://github.com/reactjs/react.net https://github.com/reactjs/React.NET#licence false true diff --git a/src/React.AspNet.Middleware/React.AspNet.Middleware.csproj b/src/React.AspNet.Middleware/React.AspNet.Middleware.csproj index d0a68c307..744fdcb22 100644 --- a/src/React.AspNet.Middleware/React.AspNet.Middleware.csproj +++ b/src/React.AspNet.Middleware/React.AspNet.Middleware.csproj @@ -14,7 +14,7 @@ React.AspNet.Middleware asp.net;mvc;asp;javascript;js;react;facebook;reactjs;vnext;asp.net 5;asp.net core http://reactjs.net/img/logo_64.png - http://reactjs.net/ + https://github.com/reactjs/react.net https://github.com/reactjs/React.NET#licence true true diff --git a/src/React.AspNet/React.AspNet.csproj b/src/React.AspNet/React.AspNet.csproj index c17291bec..24b018419 100644 --- a/src/React.AspNet/React.AspNet.csproj +++ b/src/React.AspNet/React.AspNet.csproj @@ -14,7 +14,7 @@ React.AspNet asp.net;mvc;asp;javascript;js;react;facebook;reactjs;vnext;asp.net 5;asp.net core http://reactjs.net/img/logo_64.png - http://reactjs.net/ + https://github.com/reactjs/react.net https://github.com/reactjs/React.NET#licence false $(DefineConstants);ASPNETCORE diff --git a/src/React.Core/React.Core.csproj b/src/React.Core/React.Core.csproj index cb1707824..347a3168e 100644 --- a/src/React.Core/React.Core.csproj +++ b/src/React.Core/React.Core.csproj @@ -14,7 +14,7 @@ React.Core asp.net;mvc;asp;jquery;javascript;js;react;facebook;reactjs;babel http://reactjs.net/img/logo_64.png - http://reactjs.net/ + https://github.com/reactjs/react.net https://github.com/reactjs/React.NET#licence true true diff --git a/src/React.MSBuild/React.MSBuild.csproj b/src/React.MSBuild/React.MSBuild.csproj index 4cce2923e..26728e193 100644 --- a/src/React.MSBuild/React.MSBuild.csproj +++ b/src/React.MSBuild/React.MSBuild.csproj @@ -14,7 +14,7 @@ React.MSBuild asp.net;mvc;asp;jquery;javascript;js;react;facebook;reactjs;babel;msbuild http://reactjs.net/img/logo_64.png - http://reactjs.net/ + https://github.com/reactjs/react.net https://github.com/reactjs/React.NET#licence true true diff --git a/src/React.Owin/React.Owin.csproj b/src/React.Owin/React.Owin.csproj index 558be7560..23e430cd5 100644 --- a/src/React.Owin/React.Owin.csproj +++ b/src/React.Owin/React.Owin.csproj @@ -15,7 +15,7 @@ React.Owin asp.net;mvc;asp;jquery;javascript;js;react;facebook;reactjs;babel;owin http://reactjs.net/img/logo_64.png - http://reactjs.net/ + https://github.com/reactjs/react.net https://github.com/reactjs/React.NET#licence true true diff --git a/src/React.Router.Mvc4/React.Router.Mvc4.csproj b/src/React.Router.Mvc4/React.Router.Mvc4.csproj index e09f488dd..ebd45afcc 100644 --- a/src/React.Router.Mvc4/React.Router.Mvc4.csproj +++ b/src/React.Router.Mvc4/React.Router.Mvc4.csproj @@ -15,7 +15,7 @@ React.Router.Mvc4 asp.net;mvc;asp;javascript;js;react;facebook;reactjs;babel;router;react router http://reactjs.net/img/logo_64.png - http://reactjs.net/ + https://github.com/reactjs/react.net https://github.com/reactjs/React.NET#licence true true diff --git a/src/React.Router/React.Router.csproj b/src/React.Router/React.Router.csproj index 0f61afc44..b672b1c40 100644 --- a/src/React.Router/React.Router.csproj +++ b/src/React.Router/React.Router.csproj @@ -14,7 +14,7 @@ React.Router asp.net;mvc;asp;javascript;js;react;facebook;reactjs;babel;router;react router http://reactjs.net/img/logo_64.png - http://reactjs.net/ + https://github.com/reactjs/react.net https://github.com/reactjs/React.NET#licence true true diff --git a/src/React.Web.Mvc4/React.Web.Mvc4.csproj b/src/React.Web.Mvc4/React.Web.Mvc4.csproj index 910241ea3..cd7a79970 100644 --- a/src/React.Web.Mvc4/React.Web.Mvc4.csproj +++ b/src/React.Web.Mvc4/React.Web.Mvc4.csproj @@ -15,7 +15,7 @@ React.Web.Mvc4 asp.net;mvc;asp;jquery;javascript;js;react;facebook;reactjs;babel http://reactjs.net/img/logo_64.png - http://reactjs.net/ + https://github.com/reactjs/react.net https://github.com/reactjs/React.NET/blob/master/LICENSE true true diff --git a/src/React.Web/React.Web.csproj b/src/React.Web/React.Web.csproj index dc416149a..eee1efe81 100644 --- a/src/React.Web/React.Web.csproj +++ b/src/React.Web/React.Web.csproj @@ -14,7 +14,7 @@ React.Web asp.net;mvc;asp;jquery;javascript;js;react;facebook;reactjs;babel http://reactjs.net/img/logo_64.png - http://reactjs.net/ + https://github.com/reactjs/react.net https://github.com/reactjs/React.NET#licence true true diff --git a/src/System.Web.Optimization.React/System.Web.Optimization.React.csproj b/src/System.Web.Optimization.React/System.Web.Optimization.React.csproj index 0d4ee5d7f..e4315122a 100644 --- a/src/System.Web.Optimization.React/System.Web.Optimization.React.csproj +++ b/src/System.Web.Optimization.React/System.Web.Optimization.React.csproj @@ -14,7 +14,7 @@ System.Web.Optimization.React asp.net;mvc;asp;jquery;javascript;js;react;facebook;reactjs;babel http://reactjs.net/img/logo_64.png - http://reactjs.net/ + https://github.com/reactjs/react.net https://github.com/reactjs/React.NET#licence true true From d31579c19a7cc8abfdf81c4a165aa2b484cbea14 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 23 Jun 2019 13:09:13 -0400 Subject: [PATCH 244/530] Update dependency webpack to v4.35.0 (#846) --- .../Resources/babel-legacy/package-lock.json | 48 ++++++++--------- .../Resources/babel-legacy/package.json | 2 +- src/React.Core/package-lock.json | 54 +++++++++---------- src/React.Core/package.json | 2 +- .../package-lock.json | 36 ++++++------- src/React.Sample.Webpack.CoreMvc/package.json | 2 +- 6 files changed, 72 insertions(+), 72 deletions(-) diff --git a/src/React.Core/Resources/babel-legacy/package-lock.json b/src/React.Core/Resources/babel-legacy/package-lock.json index 9f4d36464..81c027b61 100644 --- a/src/React.Core/Resources/babel-legacy/package-lock.json +++ b/src/React.Core/Resources/babel-legacy/package-lock.json @@ -1563,22 +1563,22 @@ "dev": true }, "cacache": { - "version": "11.3.2", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-11.3.2.tgz", - "integrity": "sha512-E0zP4EPGDOaT2chM08Als91eYnf8Z+eH1awwwVsngUmgppfM5jjJ8l3z5vO5p5w/I3LsiXawb1sW0VY65pQABg==", + "version": "11.3.3", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-11.3.3.tgz", + "integrity": "sha512-p8WcneCytvzPxhDvYp31PD039vi77I12W+/KfR9S8AZbaiARFBCpsPJS+9uhWfeBfeAtW7o/4vt3MUqLkbY6nA==", "dev": true, "requires": { - "bluebird": "^3.5.3", + "bluebird": "^3.5.5", "chownr": "^1.1.1", "figgy-pudding": "^3.5.1", - "glob": "^7.1.3", + "glob": "^7.1.4", "graceful-fs": "^4.1.15", "lru-cache": "^5.1.1", "mississippi": "^3.0.0", "mkdirp": "^0.5.1", "move-concurrently": "^1.0.1", "promise-inflight": "^1.0.1", - "rimraf": "^2.6.2", + "rimraf": "^2.6.3", "ssri": "^6.0.1", "unique-filename": "^1.1.1", "y18n": "^4.0.0" @@ -1647,17 +1647,6 @@ "path-is-absolute": "^1.0.0", "readdirp": "^2.2.1", "upath": "^1.1.1" - }, - "dependencies": { - "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" - } - } } }, "chownr": { @@ -3015,6 +3004,17 @@ "requires": { "is-glob": "^3.1.0", "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "^2.1.0" + } + } } }, "global-modules": { @@ -3348,12 +3348,12 @@ "dev": true }, "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "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.0" + "is-extglob": "^2.1.1" } }, "is-number": { @@ -5109,9 +5109,9 @@ } }, "webpack": { - "version": "4.34.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.34.0.tgz", - "integrity": "sha512-ry2IQy1wJjOefLe1uJLzn5tG/DdIKzQqNlIAd2L84kcaADqNvQDTBlo8UcCNyDaT5FiaB+16jhAkb63YeG3H8Q==", + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.35.0.tgz", + "integrity": "sha512-M5hL3qpVvtr8d4YaJANbAQBc4uT01G33eDpl/psRTBCfjxFTihdhin1NtAKB1ruDwzeVdcsHHV3NX+QsAgOosw==", "dev": true, "requires": { "@webassemblyjs/ast": "1.8.5", diff --git a/src/React.Core/Resources/babel-legacy/package.json b/src/React.Core/Resources/babel-legacy/package.json index de0278793..bea919793 100644 --- a/src/React.Core/Resources/babel-legacy/package.json +++ b/src/React.Core/Resources/babel-legacy/package.json @@ -12,7 +12,7 @@ "babel-preset-es2015": "6.24.1", "babel-preset-stage-0": "6.24.1", "babel-standalone": "6.26.0", - "webpack": "4.34.0", + "webpack": "4.35.0", "webpack-cli": "3.3.5" }, "author": "", diff --git a/src/React.Core/package-lock.json b/src/React.Core/package-lock.json index 7e5c5c3b7..c34b6f3a5 100644 --- a/src/React.Core/package-lock.json +++ b/src/React.Core/package-lock.json @@ -783,22 +783,22 @@ "dev": true }, "cacache": { - "version": "11.3.2", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-11.3.2.tgz", - "integrity": "sha512-E0zP4EPGDOaT2chM08Als91eYnf8Z+eH1awwwVsngUmgppfM5jjJ8l3z5vO5p5w/I3LsiXawb1sW0VY65pQABg==", + "version": "11.3.3", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-11.3.3.tgz", + "integrity": "sha512-p8WcneCytvzPxhDvYp31PD039vi77I12W+/KfR9S8AZbaiARFBCpsPJS+9uhWfeBfeAtW7o/4vt3MUqLkbY6nA==", "dev": true, "requires": { - "bluebird": "^3.5.3", + "bluebird": "^3.5.5", "chownr": "^1.1.1", "figgy-pudding": "^3.5.1", - "glob": "^7.1.3", + "glob": "^7.1.4", "graceful-fs": "^4.1.15", "lru-cache": "^5.1.1", "mississippi": "^3.0.0", "mkdirp": "^0.5.1", "move-concurrently": "^1.0.1", "promise-inflight": "^1.0.1", - "rimraf": "^2.6.2", + "rimraf": "^2.6.3", "ssri": "^6.0.1", "unique-filename": "^1.1.1", "y18n": "^4.0.0" @@ -856,17 +856,6 @@ "path-is-absolute": "^1.0.0", "readdirp": "^2.2.1", "upath": "^1.1.1" - }, - "dependencies": { - "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" - } - } } }, "chownr": { @@ -2274,6 +2263,17 @@ "requires": { "is-glob": "^3.1.0", "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "^2.1.0" + } + } } }, "global-modules": { @@ -2562,12 +2562,12 @@ "dev": true }, "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "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-extglob": "^2.1.1" } }, "is-number": { @@ -3306,9 +3306,9 @@ "dev": true }, "process-nextick-args": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", - "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", + "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==", "dev": true }, "promise-inflight": { @@ -4365,9 +4365,9 @@ } }, "webpack": { - "version": "4.34.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.34.0.tgz", - "integrity": "sha512-ry2IQy1wJjOefLe1uJLzn5tG/DdIKzQqNlIAd2L84kcaADqNvQDTBlo8UcCNyDaT5FiaB+16jhAkb63YeG3H8Q==", + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.35.0.tgz", + "integrity": "sha512-M5hL3qpVvtr8d4YaJANbAQBc4uT01G33eDpl/psRTBCfjxFTihdhin1NtAKB1ruDwzeVdcsHHV3NX+QsAgOosw==", "dev": true, "requires": { "@webassemblyjs/ast": "1.8.5", diff --git a/src/React.Core/package.json b/src/React.Core/package.json index bc27dd808..5e778a402 100644 --- a/src/React.Core/package.json +++ b/src/React.Core/package.json @@ -11,7 +11,7 @@ "prop-types": "15.7.2", "react": "16.8.6", "react-dom": "16.8.6", - "webpack": "4.34.0", + "webpack": "4.35.0", "webpack-cli": "3.3.5" } } diff --git a/src/React.Sample.Webpack.CoreMvc/package-lock.json b/src/React.Sample.Webpack.CoreMvc/package-lock.json index 14d9c401b..6e83f04f6 100644 --- a/src/React.Sample.Webpack.CoreMvc/package-lock.json +++ b/src/React.Sample.Webpack.CoreMvc/package-lock.json @@ -2065,22 +2065,22 @@ "dev": true }, "cacache": { - "version": "11.3.2", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-11.3.2.tgz", - "integrity": "sha512-E0zP4EPGDOaT2chM08Als91eYnf8Z+eH1awwwVsngUmgppfM5jjJ8l3z5vO5p5w/I3LsiXawb1sW0VY65pQABg==", + "version": "11.3.3", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-11.3.3.tgz", + "integrity": "sha512-p8WcneCytvzPxhDvYp31PD039vi77I12W+/KfR9S8AZbaiARFBCpsPJS+9uhWfeBfeAtW7o/4vt3MUqLkbY6nA==", "dev": true, "requires": { - "bluebird": "^3.5.3", + "bluebird": "^3.5.5", "chownr": "^1.1.1", "figgy-pudding": "^3.5.1", - "glob": "^7.1.3", + "glob": "^7.1.4", "graceful-fs": "^4.1.15", "lru-cache": "^5.1.1", "mississippi": "^3.0.0", "mkdirp": "^0.5.1", "move-concurrently": "^1.0.1", "promise-inflight": "^1.0.1", - "rimraf": "^2.6.2", + "rimraf": "^2.6.3", "ssri": "^6.0.1", "unique-filename": "^1.1.1", "y18n": "^4.0.0" @@ -3076,9 +3076,9 @@ "dev": true }, "process-nextick-args": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", - "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", + "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==", "dev": true }, "readable-stream": { @@ -4615,9 +4615,9 @@ "dev": true }, "process-nextick-args": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", - "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", + "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==", "dev": true }, "readable-stream": { @@ -6195,9 +6195,9 @@ "dev": true }, "process-nextick-args": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", - "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", + "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==", "dev": true }, "readable-stream": { @@ -6799,9 +6799,9 @@ } }, "webpack": { - "version": "4.34.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.34.0.tgz", - "integrity": "sha512-ry2IQy1wJjOefLe1uJLzn5tG/DdIKzQqNlIAd2L84kcaADqNvQDTBlo8UcCNyDaT5FiaB+16jhAkb63YeG3H8Q==", + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.35.0.tgz", + "integrity": "sha512-M5hL3qpVvtr8d4YaJANbAQBc4uT01G33eDpl/psRTBCfjxFTihdhin1NtAKB1ruDwzeVdcsHHV3NX+QsAgOosw==", "dev": true, "requires": { "@webassemblyjs/ast": "1.8.5", diff --git a/src/React.Sample.Webpack.CoreMvc/package.json b/src/React.Sample.Webpack.CoreMvc/package.json index f4d403a1c..49efe9e1c 100644 --- a/src/React.Sample.Webpack.CoreMvc/package.json +++ b/src/React.Sample.Webpack.CoreMvc/package.json @@ -28,7 +28,7 @@ "@babel/preset-react": "7.0.0", "babel-loader": "8.0.6", "babel-runtime": "6.26.0", - "webpack": "4.34.0", + "webpack": "4.35.0", "webpack-cli": "3.3.5" } } From ab32d5ef20d9ed99a2fdf7541859eda07db9ce4d Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Mon, 24 Jun 2019 17:24:36 +0000 Subject: [PATCH 245/530] Update dependency Microsoft.Sourcelink.Github to v1.0.0-beta2-19324-01 --- src/Cassette.React/Cassette.React.csproj | 2 +- src/React.AspNet.Middleware/React.AspNet.Middleware.csproj | 2 +- src/React.Core/React.Core.csproj | 2 +- src/React.MSBuild/React.MSBuild.csproj | 2 +- src/React.Owin/React.Owin.csproj | 2 +- src/React.Router.Mvc4/React.Router.Mvc4.csproj | 2 +- src/React.Router/React.Router.csproj | 2 +- src/React.Web.Mvc4/React.Web.Mvc4.csproj | 2 +- src/React.Web/React.Web.csproj | 2 +- .../System.Web.Optimization.React.csproj | 2 +- 10 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/Cassette.React/Cassette.React.csproj b/src/Cassette.React/Cassette.React.csproj index 5ce968536..58c7687f2 100644 --- a/src/Cassette.React/Cassette.React.csproj +++ b/src/Cassette.React/Cassette.React.csproj @@ -32,7 +32,7 @@ - + diff --git a/src/React.AspNet.Middleware/React.AspNet.Middleware.csproj b/src/React.AspNet.Middleware/React.AspNet.Middleware.csproj index 744fdcb22..b64cd521f 100644 --- a/src/React.AspNet.Middleware/React.AspNet.Middleware.csproj +++ b/src/React.AspNet.Middleware/React.AspNet.Middleware.csproj @@ -41,7 +41,7 @@ - + diff --git a/src/React.Core/React.Core.csproj b/src/React.Core/React.Core.csproj index 347a3168e..640b4012d 100644 --- a/src/React.Core/React.Core.csproj +++ b/src/React.Core/React.Core.csproj @@ -47,7 +47,7 @@ - + diff --git a/src/React.MSBuild/React.MSBuild.csproj b/src/React.MSBuild/React.MSBuild.csproj index 26728e193..4adfb3ac5 100644 --- a/src/React.MSBuild/React.MSBuild.csproj +++ b/src/React.MSBuild/React.MSBuild.csproj @@ -39,7 +39,7 @@ - + diff --git a/src/React.Owin/React.Owin.csproj b/src/React.Owin/React.Owin.csproj index 23e430cd5..69309161d 100644 --- a/src/React.Owin/React.Owin.csproj +++ b/src/React.Owin/React.Owin.csproj @@ -38,7 +38,7 @@ - + diff --git a/src/React.Router.Mvc4/React.Router.Mvc4.csproj b/src/React.Router.Mvc4/React.Router.Mvc4.csproj index ebd45afcc..acda81e36 100644 --- a/src/React.Router.Mvc4/React.Router.Mvc4.csproj +++ b/src/React.Router.Mvc4/React.Router.Mvc4.csproj @@ -43,7 +43,7 @@ - + diff --git a/src/React.Router/React.Router.csproj b/src/React.Router/React.Router.csproj index b672b1c40..1f00e7112 100644 --- a/src/React.Router/React.Router.csproj +++ b/src/React.Router/React.Router.csproj @@ -32,7 +32,7 @@ - + diff --git a/src/React.Web.Mvc4/React.Web.Mvc4.csproj b/src/React.Web.Mvc4/React.Web.Mvc4.csproj index cd7a79970..9c2e543a5 100644 --- a/src/React.Web.Mvc4/React.Web.Mvc4.csproj +++ b/src/React.Web.Mvc4/React.Web.Mvc4.csproj @@ -41,7 +41,7 @@ - + diff --git a/src/React.Web/React.Web.csproj b/src/React.Web/React.Web.csproj index eee1efe81..0f40e923f 100644 --- a/src/React.Web/React.Web.csproj +++ b/src/React.Web/React.Web.csproj @@ -38,7 +38,7 @@ - + diff --git a/src/System.Web.Optimization.React/System.Web.Optimization.React.csproj b/src/System.Web.Optimization.React/System.Web.Optimization.React.csproj index e4315122a..d7d060e8e 100644 --- a/src/System.Web.Optimization.React/System.Web.Optimization.React.csproj +++ b/src/System.Web.Optimization.React/System.Web.Optimization.React.csproj @@ -37,7 +37,7 @@ - + From 757a8b45e4cd3321d4fbbb21e62d05d60a5d9f42 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Mon, 1 Jul 2019 09:34:49 +0000 Subject: [PATCH 246/530] Update dependency webpack to v4.35.2 --- .../Resources/babel-legacy/package-lock.json | 18 +++++++------- .../Resources/babel-legacy/package.json | 2 +- src/React.Core/package-lock.json | 24 +++++++++---------- src/React.Core/package.json | 2 +- .../package-lock.json | 18 +++++++------- src/React.Sample.Webpack.CoreMvc/package.json | 2 +- 6 files changed, 33 insertions(+), 33 deletions(-) diff --git a/src/React.Core/Resources/babel-legacy/package-lock.json b/src/React.Core/Resources/babel-legacy/package-lock.json index 81c027b61..de1019225 100644 --- a/src/React.Core/Resources/babel-legacy/package-lock.json +++ b/src/React.Core/Resources/babel-legacy/package-lock.json @@ -2023,9 +2023,9 @@ } }, "elliptic": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.1.tgz", - "integrity": "sha512-BsXLz5sqX8OHcsh7CqBMztyXARmGQ3LWPtGjJi6DiJHq5C/qvi9P3OqgswKSDftbu8+IoI/QDTAm2fFnQ9SZSQ==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.0.tgz", + "integrity": "sha512-eFOJTMyCYb7xtE/caJ6JJu+bhi67WCYNbkGSknu20pmM8Ke/bqOfdnZWxyoGN26JgfxTbXrsCkEw4KheCT/KGg==", "dev": true, "requires": { "bn.js": "^4.4.0", @@ -4791,9 +4791,9 @@ "dev": true }, "terser": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.0.0.tgz", - "integrity": "sha512-dOapGTU0hETFl1tCo4t56FN+2jffoKyER9qBGoUFyZ6y7WLoKT0bF+lAYi6B6YsILcGF3q1C2FBh8QcKSCgkgA==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.0.2.tgz", + "integrity": "sha512-IWLuJqTvx97KP3uTYkFVn93cXO+EtlzJu8TdJylq+H0VBDlPMIfQA9MBS5Vc5t3xTEUG1q0hIfHMpAP2R+gWTw==", "dev": true, "requires": { "commander": "^2.19.0", @@ -5109,9 +5109,9 @@ } }, "webpack": { - "version": "4.35.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.35.0.tgz", - "integrity": "sha512-M5hL3qpVvtr8d4YaJANbAQBc4uT01G33eDpl/psRTBCfjxFTihdhin1NtAKB1ruDwzeVdcsHHV3NX+QsAgOosw==", + "version": "4.35.2", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.35.2.tgz", + "integrity": "sha512-TZAmorNymV4q66gAM/h90cEjG+N3627Q2MnkSgKlX/z3DlNVKUtqy57lz1WmZU2+FUZwzM+qm7cGaO95PyrX5A==", "dev": true, "requires": { "@webassemblyjs/ast": "1.8.5", diff --git a/src/React.Core/Resources/babel-legacy/package.json b/src/React.Core/Resources/babel-legacy/package.json index bea919793..c67038908 100644 --- a/src/React.Core/Resources/babel-legacy/package.json +++ b/src/React.Core/Resources/babel-legacy/package.json @@ -12,7 +12,7 @@ "babel-preset-es2015": "6.24.1", "babel-preset-stage-0": "6.24.1", "babel-standalone": "6.26.0", - "webpack": "4.35.0", + "webpack": "4.35.2", "webpack-cli": "3.3.5" }, "author": "", diff --git a/src/React.Core/package-lock.json b/src/React.Core/package-lock.json index c34b6f3a5..911ad9e83 100644 --- a/src/React.Core/package-lock.json +++ b/src/React.Core/package-lock.json @@ -1217,9 +1217,9 @@ } }, "elliptic": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.1.tgz", - "integrity": "sha512-BsXLz5sqX8OHcsh7CqBMztyXARmGQ3LWPtGjJi6DiJHq5C/qvi9P3OqgswKSDftbu8+IoI/QDTAm2fFnQ9SZSQ==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.0.tgz", + "integrity": "sha512-eFOJTMyCYb7xtE/caJ6JJu+bhi67WCYNbkGSknu20pmM8Ke/bqOfdnZWxyoGN26JgfxTbXrsCkEw4KheCT/KGg==", "dev": true, "requires": { "bn.js": "^4.4.0", @@ -2318,9 +2318,9 @@ "dev": true }, "graceful-fs": { - "version": "4.1.15", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz", - "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.0.tgz", + "integrity": "sha512-jpSvDPV4Cq/bgtpndIWbI5hmYxhQGHPC4d4cqBPb4DLniCfhJokdXhwhaDuLBGLQdvvRum/UiX6ECVIPvDXqdg==", "dev": true }, "has-flag": { @@ -4041,9 +4041,9 @@ "dev": true }, "terser": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.0.0.tgz", - "integrity": "sha512-dOapGTU0hETFl1tCo4t56FN+2jffoKyER9qBGoUFyZ6y7WLoKT0bF+lAYi6B6YsILcGF3q1C2FBh8QcKSCgkgA==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.0.2.tgz", + "integrity": "sha512-IWLuJqTvx97KP3uTYkFVn93cXO+EtlzJu8TdJylq+H0VBDlPMIfQA9MBS5Vc5t3xTEUG1q0hIfHMpAP2R+gWTw==", "dev": true, "requires": { "commander": "^2.19.0", @@ -4365,9 +4365,9 @@ } }, "webpack": { - "version": "4.35.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.35.0.tgz", - "integrity": "sha512-M5hL3qpVvtr8d4YaJANbAQBc4uT01G33eDpl/psRTBCfjxFTihdhin1NtAKB1ruDwzeVdcsHHV3NX+QsAgOosw==", + "version": "4.35.2", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.35.2.tgz", + "integrity": "sha512-TZAmorNymV4q66gAM/h90cEjG+N3627Q2MnkSgKlX/z3DlNVKUtqy57lz1WmZU2+FUZwzM+qm7cGaO95PyrX5A==", "dev": true, "requires": { "@webassemblyjs/ast": "1.8.5", diff --git a/src/React.Core/package.json b/src/React.Core/package.json index 5e778a402..b2a187e2e 100644 --- a/src/React.Core/package.json +++ b/src/React.Core/package.json @@ -11,7 +11,7 @@ "prop-types": "15.7.2", "react": "16.8.6", "react-dom": "16.8.6", - "webpack": "4.35.0", + "webpack": "4.35.2", "webpack-cli": "3.3.5" } } diff --git a/src/React.Sample.Webpack.CoreMvc/package-lock.json b/src/React.Sample.Webpack.CoreMvc/package-lock.json index 6e83f04f6..09101de6b 100644 --- a/src/React.Sample.Webpack.CoreMvc/package-lock.json +++ b/src/React.Sample.Webpack.CoreMvc/package-lock.json @@ -2666,9 +2666,9 @@ "dev": true }, "elliptic": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.1.tgz", - "integrity": "sha512-BsXLz5sqX8OHcsh7CqBMztyXARmGQ3LWPtGjJi6DiJHq5C/qvi9P3OqgswKSDftbu8+IoI/QDTAm2fFnQ9SZSQ==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.0.tgz", + "integrity": "sha512-eFOJTMyCYb7xtE/caJ6JJu+bhi67WCYNbkGSknu20pmM8Ke/bqOfdnZWxyoGN26JgfxTbXrsCkEw4KheCT/KGg==", "dev": true, "requires": { "bn.js": "^4.4.0", @@ -6334,9 +6334,9 @@ "dev": true }, "terser": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.0.0.tgz", - "integrity": "sha512-dOapGTU0hETFl1tCo4t56FN+2jffoKyER9qBGoUFyZ6y7WLoKT0bF+lAYi6B6YsILcGF3q1C2FBh8QcKSCgkgA==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.0.2.tgz", + "integrity": "sha512-IWLuJqTvx97KP3uTYkFVn93cXO+EtlzJu8TdJylq+H0VBDlPMIfQA9MBS5Vc5t3xTEUG1q0hIfHMpAP2R+gWTw==", "dev": true, "requires": { "commander": "^2.19.0", @@ -6799,9 +6799,9 @@ } }, "webpack": { - "version": "4.35.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.35.0.tgz", - "integrity": "sha512-M5hL3qpVvtr8d4YaJANbAQBc4uT01G33eDpl/psRTBCfjxFTihdhin1NtAKB1ruDwzeVdcsHHV3NX+QsAgOosw==", + "version": "4.35.2", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.35.2.tgz", + "integrity": "sha512-TZAmorNymV4q66gAM/h90cEjG+N3627Q2MnkSgKlX/z3DlNVKUtqy57lz1WmZU2+FUZwzM+qm7cGaO95PyrX5A==", "dev": true, "requires": { "@webassemblyjs/ast": "1.8.5", diff --git a/src/React.Sample.Webpack.CoreMvc/package.json b/src/React.Sample.Webpack.CoreMvc/package.json index 49efe9e1c..1b43dafe2 100644 --- a/src/React.Sample.Webpack.CoreMvc/package.json +++ b/src/React.Sample.Webpack.CoreMvc/package.json @@ -28,7 +28,7 @@ "@babel/preset-react": "7.0.0", "babel-loader": "8.0.6", "babel-runtime": "6.26.0", - "webpack": "4.35.0", + "webpack": "4.35.2", "webpack-cli": "3.3.5" } } From 41b7fa4aa6cb8eef7a63c49bdfebad797390e381 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Mon, 1 Jul 2019 22:50:03 +0000 Subject: [PATCH 247/530] Update dependency Microsoft.Sourcelink.Github to v1.0.0-beta2-19351-01 --- src/Cassette.React/Cassette.React.csproj | 2 +- src/React.AspNet.Middleware/React.AspNet.Middleware.csproj | 2 +- src/React.Core/React.Core.csproj | 2 +- src/React.MSBuild/React.MSBuild.csproj | 2 +- src/React.Owin/React.Owin.csproj | 2 +- src/React.Router.Mvc4/React.Router.Mvc4.csproj | 2 +- src/React.Router/React.Router.csproj | 2 +- src/React.Web.Mvc4/React.Web.Mvc4.csproj | 2 +- src/React.Web/React.Web.csproj | 2 +- .../System.Web.Optimization.React.csproj | 2 +- 10 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/Cassette.React/Cassette.React.csproj b/src/Cassette.React/Cassette.React.csproj index 58c7687f2..964de3d32 100644 --- a/src/Cassette.React/Cassette.React.csproj +++ b/src/Cassette.React/Cassette.React.csproj @@ -32,7 +32,7 @@ - + diff --git a/src/React.AspNet.Middleware/React.AspNet.Middleware.csproj b/src/React.AspNet.Middleware/React.AspNet.Middleware.csproj index b64cd521f..82c011d30 100644 --- a/src/React.AspNet.Middleware/React.AspNet.Middleware.csproj +++ b/src/React.AspNet.Middleware/React.AspNet.Middleware.csproj @@ -41,7 +41,7 @@ - + diff --git a/src/React.Core/React.Core.csproj b/src/React.Core/React.Core.csproj index 640b4012d..b94868c72 100644 --- a/src/React.Core/React.Core.csproj +++ b/src/React.Core/React.Core.csproj @@ -47,7 +47,7 @@ - + diff --git a/src/React.MSBuild/React.MSBuild.csproj b/src/React.MSBuild/React.MSBuild.csproj index 4adfb3ac5..416eb1e68 100644 --- a/src/React.MSBuild/React.MSBuild.csproj +++ b/src/React.MSBuild/React.MSBuild.csproj @@ -39,7 +39,7 @@ - + diff --git a/src/React.Owin/React.Owin.csproj b/src/React.Owin/React.Owin.csproj index 69309161d..717cd83d4 100644 --- a/src/React.Owin/React.Owin.csproj +++ b/src/React.Owin/React.Owin.csproj @@ -38,7 +38,7 @@ - + diff --git a/src/React.Router.Mvc4/React.Router.Mvc4.csproj b/src/React.Router.Mvc4/React.Router.Mvc4.csproj index acda81e36..3af820dd1 100644 --- a/src/React.Router.Mvc4/React.Router.Mvc4.csproj +++ b/src/React.Router.Mvc4/React.Router.Mvc4.csproj @@ -43,7 +43,7 @@ - + diff --git a/src/React.Router/React.Router.csproj b/src/React.Router/React.Router.csproj index 1f00e7112..4101c0703 100644 --- a/src/React.Router/React.Router.csproj +++ b/src/React.Router/React.Router.csproj @@ -32,7 +32,7 @@ - + diff --git a/src/React.Web.Mvc4/React.Web.Mvc4.csproj b/src/React.Web.Mvc4/React.Web.Mvc4.csproj index 9c2e543a5..ae0072bdf 100644 --- a/src/React.Web.Mvc4/React.Web.Mvc4.csproj +++ b/src/React.Web.Mvc4/React.Web.Mvc4.csproj @@ -41,7 +41,7 @@ - + diff --git a/src/React.Web/React.Web.csproj b/src/React.Web/React.Web.csproj index 0f40e923f..c0cf9c520 100644 --- a/src/React.Web/React.Web.csproj +++ b/src/React.Web/React.Web.csproj @@ -38,7 +38,7 @@ - + diff --git a/src/System.Web.Optimization.React/System.Web.Optimization.React.csproj b/src/System.Web.Optimization.React/System.Web.Optimization.React.csproj index d7d060e8e..3bf7157cd 100644 --- a/src/System.Web.Optimization.React/System.Web.Optimization.React.csproj +++ b/src/System.Web.Optimization.React/System.Web.Optimization.React.csproj @@ -37,7 +37,7 @@ - + From 60a61e9464621dcaab9bb8131431b90fdd615792 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Wed, 3 Jul 2019 17:16:12 +0000 Subject: [PATCH 248/530] Update dependency @types/react to v16.8.23 --- src/React.Sample.Mvc4/package-lock.json | 6 +++--- src/React.Sample.Mvc4/package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/React.Sample.Mvc4/package-lock.json b/src/React.Sample.Mvc4/package-lock.json index 627f0f4b3..2d6cb3320 100644 --- a/src/React.Sample.Mvc4/package-lock.json +++ b/src/React.Sample.Mvc4/package-lock.json @@ -11,9 +11,9 @@ "dev": true }, "@types/react": { - "version": "16.8.22", - "resolved": "https://registry.npmjs.org/@types/react/-/react-16.8.22.tgz", - "integrity": "sha512-C3O1yVqk4sUXqWyx0wlys76eQfhrQhiDhDlHBrjER76lR2S2Agiid/KpOU9oCqj1dISStscz7xXz1Cg8+sCQeA==", + "version": "16.8.23", + "resolved": "https://registry.npmjs.org/@types/react/-/react-16.8.23.tgz", + "integrity": "sha512-abkEOIeljniUN9qB5onp++g0EY38h7atnDHxwKUFz1r3VH1+yG1OKi2sNPTyObL40goBmfKFpdii2lEzwLX1cA==", "dev": true, "requires": { "@types/prop-types": "*", diff --git a/src/React.Sample.Mvc4/package.json b/src/React.Sample.Mvc4/package.json index 5ae452064..42f478bcb 100644 --- a/src/React.Sample.Mvc4/package.json +++ b/src/React.Sample.Mvc4/package.json @@ -7,7 +7,7 @@ "lint:ts": "tsc" }, "devDependencies": { - "@types/react": "16.8.22", + "@types/react": "16.8.23", "@types/react-dom": "16.8.4", "@types/reactstrap": "8.0.1", "typescript": "3.5.2" From 6d96b4f04aa5e1d5a01ae0661c0d5d0a2b0bc692 Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Fri, 5 Jul 2019 17:23:32 -0500 Subject: [PATCH 249/530] Html.ReactWithInit improvements (#858) * Lazily initialize component JS when using Html.ReactWithInit * Make Html.ReactWithInit consistent with Html.React * Fix logic error and add a few tests --- src/React.AspNet/HtmlHelperExtensions.cs | 12 ++++--- src/React.Core/IReactComponent.cs | 18 +++++----- src/React.Core/ReactComponent.cs | 17 ++++++++-- src/React.Core/ReactEnvironment.cs | 2 +- src/React.Router/ReactRouterComponent.cs | 12 ++++++- tests/React.Tests/Core/ReactComponentTest.cs | 34 ++++++++++++++++--- .../React.Tests/Core/ReactEnvironmentTest.cs | 16 +++++++++ .../Mvc/HtmlHelperExtensionsTests.cs | 29 ++++++++++++---- .../Router/ReactRouterComponentTest.cs | 21 +++++++++++- 9 files changed, 131 insertions(+), 30 deletions(-) diff --git a/src/React.AspNet/HtmlHelperExtensions.cs b/src/React.AspNet/HtmlHelperExtensions.cs index bf427a7e1..d40fb32ef 100644 --- a/src/React.AspNet/HtmlHelperExtensions.cs +++ b/src/React.AspNet/HtmlHelperExtensions.cs @@ -104,8 +104,10 @@ public static IHtmlString React( /// HTML tag to wrap the component in. Defaults to <div> /// ID to use for the container HTML tag. Defaults to an auto-generated ID /// Skip rendering server-side and only output client-side initialisation code. Defaults to false + /// Skip rendering React specific data-attributes, container and client-side initialisation during server side rendering. Defaults to false /// HTML class(es) to set on the container tag /// A custom exception handler that will be called if a component throws during a render. Args: (Exception ex, string componentName, string containerId) + /// Functions to call during component render /// The component's HTML public static IHtmlString ReactWithInit( this IHtmlHelper htmlHelper, @@ -114,8 +116,10 @@ public static IHtmlString ReactWithInit( string htmlTag = null, string containerId = null, bool clientOnly = false, + bool serverOnly = false, string containerClass = null, - Action exceptionHandler = null + Action exceptionHandler = null, + IRenderFunctions renderFunctions = null ) { try @@ -133,11 +137,11 @@ public static IHtmlString ReactWithInit( return RenderToString(writer => { - reactComponent.RenderHtml(writer, clientOnly, exceptionHandler: exceptionHandler); + reactComponent.RenderHtml(writer, clientOnly, serverOnly, exceptionHandler: exceptionHandler, renderFunctions); writer.WriteLine(); - WriteScriptTag(writer, bodyWriter => reactComponent.RenderJavaScript(bodyWriter)); + WriteScriptTag(writer, bodyWriter => reactComponent.RenderJavaScript(bodyWriter, waitForDOMContentLoad: true)); }); - + } finally { diff --git a/src/React.Core/IReactComponent.cs b/src/React.Core/IReactComponent.cs index 3ba68a128..6e4e8127b 100644 --- a/src/React.Core/IReactComponent.cs +++ b/src/React.Core/IReactComponent.cs @@ -56,14 +56,6 @@ public interface IReactComponent /// HTML string RenderHtml(bool renderContainerOnly = false, bool renderServerOnly = false, Action exceptionHandler = null, IRenderFunctions renderFunctions = null); - /// - /// Renders the JavaScript required to initialise this component client-side. This will - /// initialise the React component, which includes attach event handlers to the - /// server-rendered HTML. - /// - /// JavaScript - string RenderJavaScript(); - /// /// Renders the HTML for this component. This will execute the component server-side and /// return the rendered HTML. @@ -82,6 +74,14 @@ public interface IReactComponent /// server-rendered HTML. /// /// JavaScript - void RenderJavaScript(TextWriter writer); + string RenderJavaScript(bool waitForDOMContentLoad); + + /// + /// Renders the JavaScript required to initialise this component client-side. This will + /// initialise the React component, which includes attach event handlers to the + /// server-rendered HTML. + /// + /// JavaScript + void RenderJavaScript(TextWriter writer, bool waitForDOMContentLoad); } } diff --git a/src/React.Core/ReactComponent.cs b/src/React.Core/ReactComponent.cs index 6ad394361..9b54f10ff 100644 --- a/src/React.Core/ReactComponent.cs +++ b/src/React.Core/ReactComponent.cs @@ -231,9 +231,9 @@ public virtual void RenderHtml(TextWriter writer, bool renderContainerOnly = fal /// server-rendered HTML. /// /// JavaScript - public virtual string RenderJavaScript() + public virtual string RenderJavaScript(bool waitForDOMContentLoad) { - return GetStringFromWriter(renderJsWriter => RenderJavaScript(renderJsWriter)); + return GetStringFromWriter(renderJsWriter => RenderJavaScript(renderJsWriter, waitForDOMContentLoad)); } /// @@ -242,15 +242,26 @@ public virtual string RenderJavaScript() /// server-rendered HTML. /// /// The to which the content is written + /// Delays the component init until the page load event fires. Useful if the component script tags are located after the call to Html.ReactWithInit. /// JavaScript - public virtual void RenderJavaScript(TextWriter writer) + public virtual void RenderJavaScript(TextWriter writer, bool waitForDOMContentLoad) { + if (waitForDOMContentLoad) + { + writer.Write("window.addEventListener('DOMContentLoaded', function() {"); + } + writer.Write( !_configuration.UseServerSideRendering || ClientOnly ? "ReactDOM.render(" : "ReactDOM.hydrate("); WriteComponentInitialiser(writer); writer.Write(", document.getElementById(\""); writer.Write(ContainerId); writer.Write("\"))"); + + if (waitForDOMContentLoad) + { + writer.Write("});"); + } } /// diff --git a/src/React.Core/ReactEnvironment.cs b/src/React.Core/ReactEnvironment.cs index 9609aa29a..9c1a10db5 100644 --- a/src/React.Core/ReactEnvironment.cs +++ b/src/React.Core/ReactEnvironment.cs @@ -342,7 +342,7 @@ public virtual void GetInitJavaScript(TextWriter writer, bool clientOnly = false { if (!component.ServerOnly) { - component.RenderJavaScript(writer); + component.RenderJavaScript(writer, waitForDOMContentLoad: false); writer.WriteLine(';'); } } diff --git a/src/React.Router/ReactRouterComponent.cs b/src/React.Router/ReactRouterComponent.cs index 6cfe54858..932b69652 100644 --- a/src/React.Router/ReactRouterComponent.cs +++ b/src/React.Router/ReactRouterComponent.cs @@ -93,13 +93,23 @@ protected override void WriteComponentInitialiser(TextWriter writer) /// Client side React Router does not need context nor explicit path parameter. /// /// JavaScript - public override void RenderJavaScript(TextWriter writer) + public override void RenderJavaScript(TextWriter writer, bool waitForDOMContentLoad) { + if (waitForDOMContentLoad) + { + writer.Write("window.addEventListener('DOMContentLoaded', function() {"); + } + writer.Write("ReactDOM.hydrate("); base.WriteComponentInitialiser(writer); writer.Write(", document.getElementById(\""); writer.Write(ContainerId); writer.Write("\"))"); + + if (waitForDOMContentLoad) + { + writer.Write("});"); + } } } } diff --git a/tests/React.Tests/Core/ReactComponentTest.cs b/tests/React.Tests/Core/ReactComponentTest.cs index 982bf9ba2..1a0cbc93f 100644 --- a/tests/React.Tests/Core/ReactComponentTest.cs +++ b/tests/React.Tests/Core/ReactComponentTest.cs @@ -6,6 +6,7 @@ */ using System; +using System.IO; using JavaScriptEngineSwitcher.Core; using Moq; using React.Exceptions; @@ -204,7 +205,7 @@ public void RenderJavaScriptShouldCallRenderComponent() { Props = new { hello = "World" } }; - var result = component.RenderJavaScript(); + var result = component.RenderJavaScript(false); Assert.Equal( @"ReactDOM.hydrate(React.createElement(Foo, {""hello"":""World""}), document.getElementById(""container""))", @@ -224,7 +225,7 @@ public void RenderJavaScriptShouldCallRenderComponentWithReactDOMRender() ClientOnly = true, Props = new { hello = "World" } }; - var result = component.RenderJavaScript(); + var result = component.RenderJavaScript(false); Assert.Equal( @"ReactDOM.render(React.createElement(Foo, {""hello"":""World""}), document.getElementById(""container""))", @@ -244,7 +245,7 @@ public void RenderJavaScriptShouldCallRenderComponentwithReactDOMHydrate() ClientOnly = false, Props = new { hello = "World" } }; - var result = component.RenderJavaScript(); + var result = component.RenderJavaScript(false); Assert.Equal( @"ReactDOM.hydrate(React.createElement(Foo, {""hello"":""World""}), document.getElementById(""container""))", @@ -265,14 +266,37 @@ public void RenderJavaScriptShouldCallRenderComponentWithReactDomRenderWhenSsrDi ClientOnly = false, Props = new {hello = "World"} }; - var result = component.RenderJavaScript(); - + var result = component.RenderJavaScript(false); + Assert.Equal( @"ReactDOM.render(React.createElement(Foo, {""hello"":""World""}), document.getElementById(""container""))", result ); } + [Fact] + public void RenderJavaScriptShouldHandleWaitForContentLoad() + { + var environment = new Mock(); + var config = CreateDefaultConfigMock(); + config.SetupGet(x => x.UseServerSideRendering).Returns(false); + + var reactIdGenerator = new Mock(); + var component = new ReactComponent(environment.Object, config.Object, reactIdGenerator.Object, "Foo", "container") + { + ClientOnly = false, + Props = new {hello = "World"} + }; + using (var writer = new StringWriter()) + { + component.RenderJavaScript(writer, waitForDOMContentLoad: true); + Assert.Equal( + @"window.addEventListener('DOMContentLoaded', function() {ReactDOM.render(React.createElement(Foo, {""hello"":""World""}), document.getElementById(""container""))});", + writer.ToString() + ); + } + } + [Theory] [InlineData("Foo", true)] [InlineData("Foo.Bar", true)] diff --git a/tests/React.Tests/Core/ReactEnvironmentTest.cs b/tests/React.Tests/Core/ReactEnvironmentTest.cs index 5253f1ffe..4eab8bf5d 100644 --- a/tests/React.Tests/Core/ReactEnvironmentTest.cs +++ b/tests/React.Tests/Core/ReactEnvironmentTest.cs @@ -13,6 +13,7 @@ using Moq; using Xunit; using React.Exceptions; +using System.IO; namespace React.Tests.Core { @@ -125,6 +126,21 @@ public void CreatesIReactComponent() Assert.Equal(";" + Environment.NewLine, environment.GetInitJavaScript()); } + [Fact] + public void GetInitJavaScript() + { + var mocks = new Mocks(); + var environment = mocks.CreateReactEnvironment(); + + var component = new Mock(); + + component.Setup(x => x.RenderJavaScript(It.IsAny(), It.IsAny())).Callback((TextWriter writer, bool waitForDOMContentLoad) => writer.Write(waitForDOMContentLoad ? "waiting for page load JS" : "JS")).Verifiable(); + + environment.CreateComponent(component.Object); + + Assert.Equal("JS;" + Environment.NewLine, environment.GetInitJavaScript()); + } + [Fact] public void ServerSideOnlyComponentRendersNoJavaScript() { diff --git a/tests/React.Tests/Mvc/HtmlHelperExtensionsTests.cs b/tests/React.Tests/Mvc/HtmlHelperExtensionsTests.cs index a24015c9c..b08ceffe5 100644 --- a/tests/React.Tests/Mvc/HtmlHelperExtensionsTests.cs +++ b/tests/React.Tests/Mvc/HtmlHelperExtensionsTests.cs @@ -38,7 +38,7 @@ public void ReactWithInitShouldReturnHtmlAndScript() component.Setup(x => x.RenderHtml(It.IsAny(), false, false, null, null)) .Callback((TextWriter writer, bool renderContainerOnly, bool renderServerOnly, Action exceptionHandler, IRenderFunctions renderFunctions) => writer.Write("HTML")); - component.Setup(x => x.RenderJavaScript(It.IsAny())).Callback((TextWriter writer) => writer.Write("JS")); + component.Setup(x => x.RenderJavaScript(It.IsAny(), It.IsAny())).Callback((TextWriter writer, bool waitForDOMContentLoad) => writer.Write(waitForDOMContentLoad ? "waiting for page load JS" : "JS")); var environment = ConfigureMockEnvironment(); environment.Setup(x => x.CreateComponent( @@ -57,11 +57,28 @@ public void ReactWithInitShouldReturnHtmlAndScript() ).ToHtmlString(); Assert.Equal( - "HTML" + System.Environment.NewLine + "", + "HTML" + System.Environment.NewLine + "", result.ToString() ); } + [Fact] + public void GetInitJavaScriptReturns() + { + var component = new Mock(); + + var environment = ConfigureMockEnvironment(); + + environment.Setup(x => x.GetInitJavaScript(It.IsAny(), It.IsAny())).Callback((TextWriter writer, bool clientOnly) => writer.Write("JS")); + + var renderJSResult = HtmlHelperExtensions.ReactInitJavaScript(htmlHelper: null, clientOnly: false); + + Assert.Equal( + "", + renderJSResult.ToString() + ); + } + [Fact] public void ScriptNonceIsReturned() { @@ -77,7 +94,7 @@ public void ScriptNonceIsReturned() component.Setup(x => x.RenderHtml(It.IsAny(), false, false, null, null)) .Callback((TextWriter writer, bool renderContainerOnly, bool renderServerOnly, Action exceptionHandle, IRenderFunctions renderFunctions) => writer.Write("HTML")).Verifiable(); - component.Setup(x => x.RenderJavaScript(It.IsAny())).Callback((TextWriter writer) => writer.Write("JS")).Verifiable(); + component.Setup(x => x.RenderJavaScript(It.IsAny(), It.IsAny())).Callback((TextWriter writer, bool waitForDOMContentLoad) => writer.Write(waitForDOMContentLoad ? "waiting for page load JS" : "JS")).Verifiable(); var config = new Mock(); @@ -101,7 +118,7 @@ public void ScriptNonceIsReturned() ).ToHtmlString(); Assert.Equal( - "HTML" + System.Environment.NewLine + "", + "HTML" + System.Environment.NewLine + "", result.ToString() ); @@ -116,7 +133,7 @@ public void ScriptNonceIsReturned() ).ToHtmlString(); Assert.Equal( - "HTML" + System.Environment.NewLine + "", + "HTML" + System.Environment.NewLine + "", result.ToString() ); } @@ -217,7 +234,7 @@ public void RenderFunctionsCalledNonLazily() fakeRenderFunctions.Setup(x => x.TransformRenderedHtml(It.IsAny())).Returns("HTML"); component.Setup(x => x.RenderHtml(It.IsAny(), It.IsAny(), It.IsAny(), It.IsAny>(), It.IsAny())) - .Callback((TextWriter writer, bool renderContainerOnly, bool renderServerOnly, Action exceptionHandler, IRenderFunctions renderFunctions) => + .Callback((TextWriter writer, bool renderContainerOnly, bool renderServerOnly, Action exceptionHandler, IRenderFunctions renderFunctions) => { renderFunctions.PreRender(_ => "one"); writer.Write(renderFunctions.TransformRenderedHtml("HTML")); diff --git a/tests/React.Tests/Router/ReactRouterComponentTest.cs b/tests/React.Tests/Router/ReactRouterComponentTest.cs index 42f43d23d..954aee794 100644 --- a/tests/React.Tests/Router/ReactRouterComponentTest.cs +++ b/tests/React.Tests/Router/ReactRouterComponentTest.cs @@ -27,13 +27,32 @@ public void RenderJavaScriptShouldNotIncludeContextOrPath() { Props = new { hello = "World" } }; - var result = component.RenderJavaScript(); + var result = component.RenderJavaScript(false); Assert.Equal( @"ReactDOM.hydrate(React.createElement(Foo, {""hello"":""World""}), document.getElementById(""container""))", result ); } + + [Fact] + public void RenderJavaScriptShouldHandleWaitForContentLoad() + { + var environment = new Mock(); + var config = new Mock(); + var reactIdGenerator = new Mock(); + + var component = new ReactRouterComponent(environment.Object, config.Object, reactIdGenerator.Object, "Foo", "container", "/bar") + { + Props = new { hello = "World" } + }; + var result = component.RenderJavaScript(true); + + Assert.Equal( + @"window.addEventListener('DOMContentLoaded', function() {ReactDOM.hydrate(React.createElement(Foo, {""hello"":""World""}), document.getElementById(""container""))});", + result + ); + } } } #endif From 7ed661e4fb4def2d35e3510d1be643ac0aa7006c Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Fri, 5 Jul 2019 18:24:24 -0400 Subject: [PATCH 250/530] 5.0.0-beta1 --- build.proj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.proj b/build.proj index 3797525a6..df632557b 100644 --- a/build.proj +++ b/build.proj @@ -11,7 +11,7 @@ of patent rights can be found in the PATENTS file in the same directory. 5 0 - 0-alpha7 + 0-beta1 0 http://reactjs.net/packages/ $(MSBuildProjectDirectory)\tools\MSBuildTasks From ee595e6bef3b4fb8a2b3663d7bdf13cd178e9293 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 6 Jul 2019 23:52:27 -0400 Subject: [PATCH 251/530] Update dependency React.AspNet to v5.0.0-beta1 (#859) --- tutorial-code/tutorial-code.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tutorial-code/tutorial-code.csproj b/tutorial-code/tutorial-code.csproj index 302747e39..afeda92d8 100644 --- a/tutorial-code/tutorial-code.csproj +++ b/tutorial-code/tutorial-code.csproj @@ -20,7 +20,7 @@ - + From 92fda498f0af8075360c7dbe82b7e9e8a51f613d Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Mon, 8 Jul 2019 14:00:46 +0000 Subject: [PATCH 252/530] Update dependency webpack to v4.35.3 --- .../Resources/babel-legacy/package-lock.json | 55 ++++++-------- .../Resources/babel-legacy/package.json | 2 +- src/React.Core/package-lock.json | 73 +++++++++---------- src/React.Core/package.json | 2 +- .../package-lock.json | 73 +++++++++---------- src/React.Sample.Webpack.CoreMvc/package.json | 2 +- 6 files changed, 93 insertions(+), 114 deletions(-) diff --git a/src/React.Core/Resources/babel-legacy/package-lock.json b/src/React.Core/Resources/babel-legacy/package-lock.json index de1019225..36c9cf83e 100644 --- a/src/React.Core/Resources/babel-legacy/package-lock.json +++ b/src/React.Core/Resources/babel-legacy/package-lock.json @@ -193,21 +193,15 @@ "dev": true }, "acorn": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.1.1.tgz", - "integrity": "sha512-jPTiwtOxaHNaAPg/dmrJ/beuzLRnXtB0kQPQ8JpotKJgTB6rX6c8mlf315941pyjBSaPg8NHXS9fhP4u17DpGA==", - "dev": true - }, - "acorn-dynamic-import": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-4.0.0.tgz", - "integrity": "sha512-d3OEjQV4ROpoflsnUA8HozoIR504TFxNivYEUi6uwz0IYhBkTDXGuWlNdMtybRt3nqVx/L6XqMt0FxkXuWKZhw==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.2.0.tgz", + "integrity": "sha512-8oe72N3WPMjA+2zVG71Ia0nXZ8DpQH+QyyHO+p06jT8eg8FGG3FbcUIi8KziHlAfheJQZeoqbvq1mQSQHXKYLw==", "dev": true }, "ajv": { - "version": "6.10.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.0.tgz", - "integrity": "sha512-nffhOpkymDECQyR0mnsUtoCE8RlX38G0rYP+wgLWFyZuUyuuojSSvi/+euOiQBIn63whYwYVIIH1TvE3tu4OEg==", + "version": "6.10.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.1.tgz", + "integrity": "sha512-w1YQaVGNC6t2UCPjEawK/vo/dG8OOrVtUmhBT1uJJYxbl5kU2Tj3v6LGqBcsysN1yhuCStJCCA3GqdvKY8sqXQ==", "dev": true, "requires": { "fast-deep-equal": "^2.0.1", @@ -223,9 +217,9 @@ "dev": true }, "ajv-keywords": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.4.0.tgz", - "integrity": "sha512-aUjdRFISbuFOl0EIZc+9e4FfZp0bDZgAdOOf30bJmw8VM9v84SHyVyxDfbWxpGYbdZD/9XoKxfHVNmxPkhwyGw==", + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.4.1.tgz", + "integrity": "sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ==", "dev": true }, "ansi-regex": { @@ -1650,9 +1644,9 @@ } }, "chownr": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.1.tgz", - "integrity": "sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.2.tgz", + "integrity": "sha512-GkfeAQh+QNy3wquu9oIZr6SS5x7wGdSgNQvD10X3r+AZr1Oys22HW8kAmDMvNg2+Dm0TeGaEuO8gFwdBXxwO8A==", "dev": true }, "chrome-trace-event": { @@ -4791,14 +4785,14 @@ "dev": true }, "terser": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.0.2.tgz", - "integrity": "sha512-IWLuJqTvx97KP3uTYkFVn93cXO+EtlzJu8TdJylq+H0VBDlPMIfQA9MBS5Vc5t3xTEUG1q0hIfHMpAP2R+gWTw==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.1.2.tgz", + "integrity": "sha512-jvNoEQSPXJdssFwqPSgWjsOrb+ELoE+ILpHPKXC83tIxOlh2U75F1KuB2luLD/3a6/7K3Vw5pDn+hvu0C4AzSw==", "dev": true, "requires": { - "commander": "^2.19.0", + "commander": "^2.20.0", "source-map": "~0.6.1", - "source-map-support": "~0.5.10" + "source-map-support": "~0.5.12" }, "dependencies": { "source-map": { @@ -5109,17 +5103,16 @@ } }, "webpack": { - "version": "4.35.2", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.35.2.tgz", - "integrity": "sha512-TZAmorNymV4q66gAM/h90cEjG+N3627Q2MnkSgKlX/z3DlNVKUtqy57lz1WmZU2+FUZwzM+qm7cGaO95PyrX5A==", + "version": "4.35.3", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.35.3.tgz", + "integrity": "sha512-xggQPwr9ILlXzz61lHzjvgoqGU08v5+Wnut19Uv3GaTtzN4xBTcwnobodrXE142EL1tOiS5WVEButooGzcQzTA==", "dev": true, "requires": { "@webassemblyjs/ast": "1.8.5", "@webassemblyjs/helper-module-context": "1.8.5", "@webassemblyjs/wasm-edit": "1.8.5", "@webassemblyjs/wasm-parser": "1.8.5", - "acorn": "^6.0.5", - "acorn-dynamic-import": "^4.0.0", + "acorn": "^6.2.0", "ajv": "^6.1.0", "ajv-keywords": "^3.1.0", "chrome-trace-event": "^1.0.0", @@ -5219,9 +5212,9 @@ "dev": true }, "xtend": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", - "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", "dev": true }, "y18n": { diff --git a/src/React.Core/Resources/babel-legacy/package.json b/src/React.Core/Resources/babel-legacy/package.json index c67038908..d8c992ad3 100644 --- a/src/React.Core/Resources/babel-legacy/package.json +++ b/src/React.Core/Resources/babel-legacy/package.json @@ -12,7 +12,7 @@ "babel-preset-es2015": "6.24.1", "babel-preset-stage-0": "6.24.1", "babel-standalone": "6.26.0", - "webpack": "4.35.2", + "webpack": "4.35.3", "webpack-cli": "3.3.5" }, "author": "", diff --git a/src/React.Core/package-lock.json b/src/React.Core/package-lock.json index 911ad9e83..a85e2c9ad 100644 --- a/src/React.Core/package-lock.json +++ b/src/React.Core/package-lock.json @@ -381,21 +381,15 @@ "dev": true }, "acorn": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.1.1.tgz", - "integrity": "sha512-jPTiwtOxaHNaAPg/dmrJ/beuzLRnXtB0kQPQ8JpotKJgTB6rX6c8mlf315941pyjBSaPg8NHXS9fhP4u17DpGA==", - "dev": true - }, - "acorn-dynamic-import": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-4.0.0.tgz", - "integrity": "sha512-d3OEjQV4ROpoflsnUA8HozoIR504TFxNivYEUi6uwz0IYhBkTDXGuWlNdMtybRt3nqVx/L6XqMt0FxkXuWKZhw==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.2.0.tgz", + "integrity": "sha512-8oe72N3WPMjA+2zVG71Ia0nXZ8DpQH+QyyHO+p06jT8eg8FGG3FbcUIi8KziHlAfheJQZeoqbvq1mQSQHXKYLw==", "dev": true }, "ajv": { - "version": "6.10.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.0.tgz", - "integrity": "sha512-nffhOpkymDECQyR0mnsUtoCE8RlX38G0rYP+wgLWFyZuUyuuojSSvi/+euOiQBIn63whYwYVIIH1TvE3tu4OEg==", + "version": "6.10.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.1.tgz", + "integrity": "sha512-w1YQaVGNC6t2UCPjEawK/vo/dG8OOrVtUmhBT1uJJYxbl5kU2Tj3v6LGqBcsysN1yhuCStJCCA3GqdvKY8sqXQ==", "dev": true, "requires": { "fast-deep-equal": "^2.0.1", @@ -411,9 +405,9 @@ "dev": true }, "ajv-keywords": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.4.0.tgz", - "integrity": "sha512-aUjdRFISbuFOl0EIZc+9e4FfZp0bDZgAdOOf30bJmw8VM9v84SHyVyxDfbWxpGYbdZD/9XoKxfHVNmxPkhwyGw==", + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.4.1.tgz", + "integrity": "sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ==", "dev": true }, "ansi-regex": { @@ -712,9 +706,9 @@ }, "dependencies": { "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==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz", + "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==", "dev": true } } @@ -859,9 +853,9 @@ } }, "chownr": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.1.tgz", - "integrity": "sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.2.tgz", + "integrity": "sha512-GkfeAQh+QNy3wquu9oIZr6SS5x7wGdSgNQvD10X3r+AZr1Oys22HW8kAmDMvNg2+Dm0TeGaEuO8gFwdBXxwO8A==", "dev": true }, "chrome-trace-event": { @@ -2811,9 +2805,9 @@ }, "dependencies": { "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==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz", + "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==", "dev": true } } @@ -3360,9 +3354,9 @@ }, "dependencies": { "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==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz", + "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==", "dev": true } } @@ -4041,14 +4035,14 @@ "dev": true }, "terser": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.0.2.tgz", - "integrity": "sha512-IWLuJqTvx97KP3uTYkFVn93cXO+EtlzJu8TdJylq+H0VBDlPMIfQA9MBS5Vc5t3xTEUG1q0hIfHMpAP2R+gWTw==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.1.2.tgz", + "integrity": "sha512-jvNoEQSPXJdssFwqPSgWjsOrb+ELoE+ILpHPKXC83tIxOlh2U75F1KuB2luLD/3a6/7K3Vw5pDn+hvu0C4AzSw==", "dev": true, "requires": { - "commander": "^2.19.0", + "commander": "^2.20.0", "source-map": "~0.6.1", - "source-map-support": "~0.5.10" + "source-map-support": "~0.5.12" }, "dependencies": { "source-map": { @@ -4365,17 +4359,16 @@ } }, "webpack": { - "version": "4.35.2", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.35.2.tgz", - "integrity": "sha512-TZAmorNymV4q66gAM/h90cEjG+N3627Q2MnkSgKlX/z3DlNVKUtqy57lz1WmZU2+FUZwzM+qm7cGaO95PyrX5A==", + "version": "4.35.3", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.35.3.tgz", + "integrity": "sha512-xggQPwr9ILlXzz61lHzjvgoqGU08v5+Wnut19Uv3GaTtzN4xBTcwnobodrXE142EL1tOiS5WVEButooGzcQzTA==", "dev": true, "requires": { "@webassemblyjs/ast": "1.8.5", "@webassemblyjs/helper-module-context": "1.8.5", "@webassemblyjs/wasm-edit": "1.8.5", "@webassemblyjs/wasm-parser": "1.8.5", - "acorn": "^6.0.5", - "acorn-dynamic-import": "^4.0.0", + "acorn": "^6.2.0", "ajv": "^6.1.0", "ajv-keywords": "^3.1.0", "chrome-trace-event": "^1.0.0", @@ -4497,9 +4490,9 @@ "dev": true }, "xtend": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", - "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", "dev": true }, "y18n": { diff --git a/src/React.Core/package.json b/src/React.Core/package.json index b2a187e2e..c35907d6d 100644 --- a/src/React.Core/package.json +++ b/src/React.Core/package.json @@ -11,7 +11,7 @@ "prop-types": "15.7.2", "react": "16.8.6", "react-dom": "16.8.6", - "webpack": "4.35.2", + "webpack": "4.35.3", "webpack-cli": "3.3.5" } } diff --git a/src/React.Sample.Webpack.CoreMvc/package-lock.json b/src/React.Sample.Webpack.CoreMvc/package-lock.json index 09101de6b..099ad5279 100644 --- a/src/React.Sample.Webpack.CoreMvc/package-lock.json +++ b/src/React.Sample.Webpack.CoreMvc/package-lock.json @@ -1553,21 +1553,15 @@ "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" }, "acorn": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.1.1.tgz", - "integrity": "sha512-jPTiwtOxaHNaAPg/dmrJ/beuzLRnXtB0kQPQ8JpotKJgTB6rX6c8mlf315941pyjBSaPg8NHXS9fhP4u17DpGA==", - "dev": true - }, - "acorn-dynamic-import": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-4.0.0.tgz", - "integrity": "sha512-d3OEjQV4ROpoflsnUA8HozoIR504TFxNivYEUi6uwz0IYhBkTDXGuWlNdMtybRt3nqVx/L6XqMt0FxkXuWKZhw==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.2.0.tgz", + "integrity": "sha512-8oe72N3WPMjA+2zVG71Ia0nXZ8DpQH+QyyHO+p06jT8eg8FGG3FbcUIi8KziHlAfheJQZeoqbvq1mQSQHXKYLw==", "dev": true }, "ajv": { - "version": "6.10.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.0.tgz", - "integrity": "sha512-nffhOpkymDECQyR0mnsUtoCE8RlX38G0rYP+wgLWFyZuUyuuojSSvi/+euOiQBIn63whYwYVIIH1TvE3tu4OEg==", + "version": "6.10.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.1.tgz", + "integrity": "sha512-w1YQaVGNC6t2UCPjEawK/vo/dG8OOrVtUmhBT1uJJYxbl5kU2Tj3v6LGqBcsysN1yhuCStJCCA3GqdvKY8sqXQ==", "dev": true, "requires": { "fast-deep-equal": "^2.0.1", @@ -1583,9 +1577,9 @@ "dev": true }, "ajv-keywords": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.4.0.tgz", - "integrity": "sha512-aUjdRFISbuFOl0EIZc+9e4FfZp0bDZgAdOOf30bJmw8VM9v84SHyVyxDfbWxpGYbdZD/9XoKxfHVNmxPkhwyGw==", + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.4.1.tgz", + "integrity": "sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ==", "dev": true }, "ansi-regex": { @@ -1976,9 +1970,9 @@ }, "dependencies": { "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==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz", + "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==", "dev": true } } @@ -2152,9 +2146,9 @@ } }, "chownr": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.1.tgz", - "integrity": "sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.2.tgz", + "integrity": "sha512-GkfeAQh+QNy3wquu9oIZr6SS5x7wGdSgNQvD10X3r+AZr1Oys22HW8kAmDMvNg2+Dm0TeGaEuO8gFwdBXxwO8A==", "dev": true }, "chrome-trace-event": { @@ -4494,9 +4488,9 @@ }, "dependencies": { "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==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz", + "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==", "dev": true } } @@ -5156,9 +5150,9 @@ }, "dependencies": { "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==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz", + "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==", "dev": true } } @@ -6334,14 +6328,14 @@ "dev": true }, "terser": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.0.2.tgz", - "integrity": "sha512-IWLuJqTvx97KP3uTYkFVn93cXO+EtlzJu8TdJylq+H0VBDlPMIfQA9MBS5Vc5t3xTEUG1q0hIfHMpAP2R+gWTw==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.1.2.tgz", + "integrity": "sha512-jvNoEQSPXJdssFwqPSgWjsOrb+ELoE+ILpHPKXC83tIxOlh2U75F1KuB2luLD/3a6/7K3Vw5pDn+hvu0C4AzSw==", "dev": true, "requires": { - "commander": "^2.19.0", + "commander": "^2.20.0", "source-map": "~0.6.1", - "source-map-support": "~0.5.10" + "source-map-support": "~0.5.12" }, "dependencies": { "source-map": { @@ -6799,17 +6793,16 @@ } }, "webpack": { - "version": "4.35.2", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.35.2.tgz", - "integrity": "sha512-TZAmorNymV4q66gAM/h90cEjG+N3627Q2MnkSgKlX/z3DlNVKUtqy57lz1WmZU2+FUZwzM+qm7cGaO95PyrX5A==", + "version": "4.35.3", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.35.3.tgz", + "integrity": "sha512-xggQPwr9ILlXzz61lHzjvgoqGU08v5+Wnut19Uv3GaTtzN4xBTcwnobodrXE142EL1tOiS5WVEButooGzcQzTA==", "dev": true, "requires": { "@webassemblyjs/ast": "1.8.5", "@webassemblyjs/helper-module-context": "1.8.5", "@webassemblyjs/wasm-edit": "1.8.5", "@webassemblyjs/wasm-parser": "1.8.5", - "acorn": "^6.0.5", - "acorn-dynamic-import": "^4.0.0", + "acorn": "^6.2.0", "ajv": "^6.1.0", "ajv-keywords": "^3.1.0", "chrome-trace-event": "^1.0.0", @@ -6957,9 +6950,9 @@ "dev": true }, "xtend": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", - "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", "dev": true }, "y18n": { diff --git a/src/React.Sample.Webpack.CoreMvc/package.json b/src/React.Sample.Webpack.CoreMvc/package.json index 1b43dafe2..bb739c1c3 100644 --- a/src/React.Sample.Webpack.CoreMvc/package.json +++ b/src/React.Sample.Webpack.CoreMvc/package.json @@ -28,7 +28,7 @@ "@babel/preset-react": "7.0.0", "babel-loader": "8.0.6", "babel-runtime": "6.26.0", - "webpack": "4.35.2", + "webpack": "4.35.3", "webpack-cli": "3.3.5" } } From 8735828a5f575bfb977c2e2ceb12c17e62872754 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Mon, 8 Jul 2019 22:34:48 +0000 Subject: [PATCH 253/530] Update dependency typescript to v3.5.3 --- src/React.Sample.Mvc4/package-lock.json | 6 +++--- src/React.Sample.Mvc4/package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/React.Sample.Mvc4/package-lock.json b/src/React.Sample.Mvc4/package-lock.json index 2d6cb3320..c3a6cd722 100644 --- a/src/React.Sample.Mvc4/package-lock.json +++ b/src/React.Sample.Mvc4/package-lock.json @@ -52,9 +52,9 @@ "dev": true }, "typescript": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.5.2.tgz", - "integrity": "sha512-7KxJovlYhTX5RaRbUdkAXN1KUZ8PwWlTzQdHV6xNqvuFOs7+WBo10TQUqT19Q/Jz2hk5v9TQDIhyLhhJY4p5AA==", + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.5.3.tgz", + "integrity": "sha512-ACzBtm/PhXBDId6a6sDJfroT2pOWt/oOnk4/dElG5G33ZL776N3Y6/6bKZJBFpd+b05F3Ct9qDjMeJmRWtE2/g==", "dev": true } } diff --git a/src/React.Sample.Mvc4/package.json b/src/React.Sample.Mvc4/package.json index 42f478bcb..89fd1a9e1 100644 --- a/src/React.Sample.Mvc4/package.json +++ b/src/React.Sample.Mvc4/package.json @@ -10,6 +10,6 @@ "@types/react": "16.8.23", "@types/react-dom": "16.8.4", "@types/reactstrap": "8.0.1", - "typescript": "3.5.2" + "typescript": "3.5.3" } } From 59d23f7050af7b1a89ca5a182bfd67b53a16d9ce Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Wed, 10 Jul 2019 11:47:14 +0000 Subject: [PATCH 254/530] Update JavaScriptEngineSwitcher packages to v3.1.3 --- .../React.Sample.ConsoleApp.csproj | 8 ++++---- .../React.Sample.Webpack.CoreMvc.csproj | 10 +++++----- tutorial-code/tutorial-code.csproj | 8 ++++---- 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/src/React.Sample.ConsoleApp/React.Sample.ConsoleApp.csproj b/src/React.Sample.ConsoleApp/React.Sample.ConsoleApp.csproj index 7a82f41a6..d300140b9 100644 --- a/src/React.Sample.ConsoleApp/React.Sample.ConsoleApp.csproj +++ b/src/React.Sample.ConsoleApp/React.Sample.ConsoleApp.csproj @@ -20,10 +20,10 @@ - - - - + + + + diff --git a/src/React.Sample.Webpack.CoreMvc/React.Sample.Webpack.CoreMvc.csproj b/src/React.Sample.Webpack.CoreMvc/React.Sample.Webpack.CoreMvc.csproj index 507f082f4..940a35e9c 100644 --- a/src/React.Sample.Webpack.CoreMvc/React.Sample.Webpack.CoreMvc.csproj +++ b/src/React.Sample.Webpack.CoreMvc/React.Sample.Webpack.CoreMvc.csproj @@ -15,11 +15,11 @@ - - - - - + + + + + diff --git a/tutorial-code/tutorial-code.csproj b/tutorial-code/tutorial-code.csproj index afeda92d8..bfcdda306 100644 --- a/tutorial-code/tutorial-code.csproj +++ b/tutorial-code/tutorial-code.csproj @@ -13,10 +13,10 @@ - - - - + + + + From dff78692e9c901ddcc223e629c748e7659f29b43 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 11 Jul 2019 05:35:21 -0700 Subject: [PATCH 255/530] Bump lodash from 4.17.11 to 4.17.14 in /src/React.Core (#866) Bumps [lodash](https://github.com/lodash/lodash) from 4.17.11 to 4.17.14. - [Release notes](https://github.com/lodash/lodash/releases) - [Commits](https://github.com/lodash/lodash/compare/4.17.11...4.17.14) Signed-off-by: dependabot[bot] --- src/React.Core/package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/React.Core/package-lock.json b/src/React.Core/package-lock.json index a85e2c9ad..cae76d553 100644 --- a/src/React.Core/package-lock.json +++ b/src/React.Core/package-lock.json @@ -2730,9 +2730,9 @@ } }, "lodash": { - "version": "4.17.11", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", - "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==", + "version": "4.17.14", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.14.tgz", + "integrity": "sha512-mmKYbW3GLuJeX+iGP+Y7Gp1AiGHGbXHCOh/jZmrawMmsE7MS4znI3RL2FsjbqOyMayHInjOeykW7PEajUk1/xw==", "dev": true }, "loose-envify": { From e5194c97f9c234b59f9217aa874e2476da21439c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 11 Jul 2019 16:51:03 +0000 Subject: [PATCH 256/530] Bump lodash from 4.17.11 to 4.17.14 in /src/React.Sample.Webpack.CoreMvc (#867) --- .../package-lock.json | 17 +++-------------- 1 file changed, 3 insertions(+), 14 deletions(-) diff --git a/src/React.Sample.Webpack.CoreMvc/package-lock.json b/src/React.Sample.Webpack.CoreMvc/package-lock.json index 099ad5279..faec968bd 100644 --- a/src/React.Sample.Webpack.CoreMvc/package-lock.json +++ b/src/React.Sample.Webpack.CoreMvc/package-lock.json @@ -166,12 +166,6 @@ "to-fast-properties": "^2.0.0" } }, - "lodash": { - "version": "4.17.11", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", - "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==", - "dev": true - }, "to-fast-properties": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", @@ -1143,11 +1137,6 @@ "to-fast-properties": "^2.0.0" }, "dependencies": { - "lodash": { - "version": "4.17.11", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", - "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==" - }, "to-fast-properties": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", @@ -4401,9 +4390,9 @@ } }, "lodash": { - "version": "4.17.11", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", - "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==" + "version": "4.17.14", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.14.tgz", + "integrity": "sha512-mmKYbW3GLuJeX+iGP+Y7Gp1AiGHGbXHCOh/jZmrawMmsE7MS4znI3RL2FsjbqOyMayHInjOeykW7PEajUk1/xw==" }, "lodash.isfunction": { "version": "3.0.9", From 4cfd755100db7ad871cbe030383df1fc56ed31f1 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Sun, 14 Jul 2019 13:13:24 +0000 Subject: [PATCH 257/530] Update dependency webpack-cli to v3.3.6 --- .../Resources/babel-legacy/package-lock.json | 17 +++-------------- .../Resources/babel-legacy/package.json | 2 +- src/React.Core/package-lock.json | 17 +++-------------- src/React.Core/package.json | 2 +- .../package-lock.json | 6 +++--- src/React.Sample.Webpack.CoreMvc/package.json | 2 +- 6 files changed, 12 insertions(+), 34 deletions(-) diff --git a/src/React.Core/Resources/babel-legacy/package-lock.json b/src/React.Core/Resources/babel-legacy/package-lock.json index 36c9cf83e..d7bc943d3 100644 --- a/src/React.Core/Resources/babel-legacy/package-lock.json +++ b/src/React.Core/Resources/babel-legacy/package-lock.json @@ -2341,17 +2341,6 @@ "is-glob": "^4.0.0", "micromatch": "^3.0.4", "resolve-dir": "^1.0.1" - }, - "dependencies": { - "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" - } - } } }, "flush-write-stream": { @@ -5134,9 +5123,9 @@ } }, "webpack-cli": { - "version": "3.3.5", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.5.tgz", - "integrity": "sha512-w0j/s42c5UhchwTmV/45MLQnTVwRoaUTu9fM5LuyOd/8lFoCNCELDogFoecx5NzRUndO0yD/gF2b02XKMnmAWQ==", + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.6.tgz", + "integrity": "sha512-0vEa83M7kJtxK/jUhlpZ27WHIOndz5mghWL2O53kiDoA9DIxSKnfqB92LoqEn77cT4f3H2cZm1BMEat/6AZz3A==", "dev": true, "requires": { "chalk": "2.4.2", diff --git a/src/React.Core/Resources/babel-legacy/package.json b/src/React.Core/Resources/babel-legacy/package.json index d8c992ad3..25ea50259 100644 --- a/src/React.Core/Resources/babel-legacy/package.json +++ b/src/React.Core/Resources/babel-legacy/package.json @@ -13,7 +13,7 @@ "babel-preset-stage-0": "6.24.1", "babel-standalone": "6.26.0", "webpack": "4.35.3", - "webpack-cli": "3.3.5" + "webpack-cli": "3.3.6" }, "author": "", "license": "MIT" diff --git a/src/React.Core/package-lock.json b/src/React.Core/package-lock.json index cae76d553..77aa79148 100644 --- a/src/React.Core/package-lock.json +++ b/src/React.Core/package-lock.json @@ -1600,17 +1600,6 @@ "is-glob": "^4.0.0", "micromatch": "^3.0.4", "resolve-dir": "^1.0.1" - }, - "dependencies": { - "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" - } - } } }, "flush-write-stream": { @@ -4390,9 +4379,9 @@ } }, "webpack-cli": { - "version": "3.3.5", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.5.tgz", - "integrity": "sha512-w0j/s42c5UhchwTmV/45MLQnTVwRoaUTu9fM5LuyOd/8lFoCNCELDogFoecx5NzRUndO0yD/gF2b02XKMnmAWQ==", + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.6.tgz", + "integrity": "sha512-0vEa83M7kJtxK/jUhlpZ27WHIOndz5mghWL2O53kiDoA9DIxSKnfqB92LoqEn77cT4f3H2cZm1BMEat/6AZz3A==", "dev": true, "requires": { "chalk": "2.4.2", diff --git a/src/React.Core/package.json b/src/React.Core/package.json index c35907d6d..7f164f13c 100644 --- a/src/React.Core/package.json +++ b/src/React.Core/package.json @@ -12,6 +12,6 @@ "react": "16.8.6", "react-dom": "16.8.6", "webpack": "4.35.3", - "webpack-cli": "3.3.5" + "webpack-cli": "3.3.6" } } diff --git a/src/React.Sample.Webpack.CoreMvc/package-lock.json b/src/React.Sample.Webpack.CoreMvc/package-lock.json index faec968bd..cfa0f2a76 100644 --- a/src/React.Sample.Webpack.CoreMvc/package-lock.json +++ b/src/React.Sample.Webpack.CoreMvc/package-lock.json @@ -6813,9 +6813,9 @@ } }, "webpack-cli": { - "version": "3.3.5", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.5.tgz", - "integrity": "sha512-w0j/s42c5UhchwTmV/45MLQnTVwRoaUTu9fM5LuyOd/8lFoCNCELDogFoecx5NzRUndO0yD/gF2b02XKMnmAWQ==", + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.6.tgz", + "integrity": "sha512-0vEa83M7kJtxK/jUhlpZ27WHIOndz5mghWL2O53kiDoA9DIxSKnfqB92LoqEn77cT4f3H2cZm1BMEat/6AZz3A==", "dev": true, "requires": { "chalk": "2.4.2", diff --git a/src/React.Sample.Webpack.CoreMvc/package.json b/src/React.Sample.Webpack.CoreMvc/package.json index bb739c1c3..b939956f5 100644 --- a/src/React.Sample.Webpack.CoreMvc/package.json +++ b/src/React.Sample.Webpack.CoreMvc/package.json @@ -29,6 +29,6 @@ "babel-loader": "8.0.6", "babel-runtime": "6.26.0", "webpack": "4.35.3", - "webpack-cli": "3.3.5" + "webpack-cli": "3.3.6" } } From c6240925c00541ffd7fb76c4bcb613b0ce38d586 Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Sun, 14 Jul 2019 19:04:50 -0400 Subject: [PATCH 258/530] Enable HtmlHelperExtensionTests for .NET Core --- .../Mvc/HtmlHelperExtensionsTests.cs | 6 ++++-- tests/React.Tests/Mvc/TestUtilities.cs | 21 +++++++++++++++++++ 2 files changed, 25 insertions(+), 2 deletions(-) create mode 100644 tests/React.Tests/Mvc/TestUtilities.cs diff --git a/tests/React.Tests/Mvc/HtmlHelperExtensionsTests.cs b/tests/React.Tests/Mvc/HtmlHelperExtensionsTests.cs index b08ceffe5..696804917 100644 --- a/tests/React.Tests/Mvc/HtmlHelperExtensionsTests.cs +++ b/tests/React.Tests/Mvc/HtmlHelperExtensionsTests.cs @@ -5,12 +5,15 @@ * LICENSE file in the root directory of this source tree. */ #if NET452 +using React.Web.Mvc; +#else +using React.AspNet; +#endif using System; using System.IO; using System.Security.Cryptography; using Moq; -using React.Web.Mvc; using Xunit; namespace React.Tests.Mvc @@ -269,4 +272,3 @@ public void RenderFunctionsCalledNonLazily() } } } -#endif diff --git a/tests/React.Tests/Mvc/TestUtilities.cs b/tests/React.Tests/Mvc/TestUtilities.cs new file mode 100644 index 000000000..4cbd052a4 --- /dev/null +++ b/tests/React.Tests/Mvc/TestUtilities.cs @@ -0,0 +1,21 @@ +#if !NET452 +using System.IO; +using System.Text.Encodings.Web; +using Microsoft.AspNetCore.Html; + +namespace React.Tests.Mvc +{ + public static class TestUtilities + { + public static string ToHtmlString(this IHtmlContent source) + { + using (var writer = new StringWriter()) + { + source.WriteTo(writer, HtmlEncoder.Default); + return writer.ToString(); + } + } + } +} + +#endif From e2f17fe5a602add74bc11ac61ee8243b777a1af2 Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Mon, 15 Jul 2019 06:12:17 -0700 Subject: [PATCH 259/530] Add typescript docs, update sample (#869) * Add typescript docs, update sample * Fix a few typos --- build.proj | 1 - site/jekyll/features/typescript.md | 44 +++++++++++++++++++ .../React.Sample.Mvc4.csproj | 5 ++- 3 files changed, 48 insertions(+), 2 deletions(-) create mode 100644 site/jekyll/features/typescript.md diff --git a/build.proj b/build.proj index df632557b..8bb50b149 100644 --- a/build.proj +++ b/build.proj @@ -104,7 +104,6 @@ of patent rights can be found in the PATENTS file in the same directory. - diff --git a/site/jekyll/features/typescript.md b/site/jekyll/features/typescript.md new file mode 100644 index 000000000..defdfd077 --- /dev/null +++ b/site/jekyll/features/typescript.md @@ -0,0 +1,44 @@ +--- +layout: docs +title: Typescript compilation +--- + +Just want to see the code? Check out the [sample project](https://github.com/reactjs/React.NET/tree/master/src/React.Sample.Mvc4). + +Typescript is a library for writing type-safe Javascript. Starting with version 5, ReactJS.NET supports stripping out type definitions from `.TS` and .`TSX` files, powered by Babel. + +Note that just using the library will compile your Typescript to Javascript, but will _not_ warn you about code that does not type check. To set up type checking in your project during the build: + +1. Install a supported version of [Node](https://nodejs.org/en/download/) (either LTS or Current is fine) +1. Create an empty `package.json` to your project root by running `npm init`. Optionally fill out the questions asked by `npm`, or press Enter to accept the defaults. +1. Run `npm i typescript --save-dev`, which will update the freshly generated `package.json`. It's important that the Typescript version is declared in this file so every developer on your project has the same type checking rules. +1. Copy the [tsconfig.json](https://github.com/reactjs/react.net/blob/master/src/React.Sample.Mvc4/tsconfig.json) file from the Mvc sample to your project root. If your components are not located in `Content`, change that path to the appropriate directory. +1. Typescript needs to be informed of the libraries available on the global scope. To do this, create [types/index.d.ts](https://github.com/reactjs/react.net/blob/master/src/React.Sample.Mvc4/types/index.d.ts) in your project root: + +```ts +import _React from 'react'; +import _PropTypes from 'prop-types'; // @types/prop-types is a dependency of `@types/react` +import _Reactstrap from 'reactstrap'; // Third party library example + +declare global { + const React: typeof _React; // the React types _also_ exported by the React namespace, but export them again here just in case. + const PropTypes: typeof _PropTypes; + const Reactstrap: typeof _Reactstrap; +} +``` + +Libraries imported in `types/index.d.ts` must be listed in `package.json` before typescript will load their type definitions. Types for `react` are defined by the `@types/react` library in the [DefinitelyTyped](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/react) repo, so install the types package with `npm i --save-dev @types/react`. Sometimes libraries will ship with typescript support; if so, install the package directly via `npm i --save-dev ` to make the types resolve. If a library you're using does not ship with types, chances are there will be community-provided types in DefinitelyTyped. + +To check that everything works at this point, run `node_modules/.bin/tsc` from your project's working directory. You'll see empty output from `tsc` if the type checking succeeds. + +Finally, add a compile-time step to your project file to get type checking with every Visual Studio build (works in both ASP.NET and .NET Core): + +```xml + + + +``` + +You're done! Introduce a type error in your project to verify things are working as expected. For example, you will see a message similar to `6>C:\code\react.net\src\React.Sample.Mvc4\Content/Sample.tsx(27,19): error TS2551: Property 'initialCommentss' does not exist on type 'CommentsBoxProps'. Did you mean 'initialComments'?` + +Check out the [sample project](https://github.com/reactjs/React.NET/tree/master/src/React.Sample.Mvc4) for the completed integration. diff --git a/src/React.Sample.Mvc4/React.Sample.Mvc4.csproj b/src/React.Sample.Mvc4/React.Sample.Mvc4.csproj index d8697f83b..fa68ba549 100644 --- a/src/React.Sample.Mvc4/React.Sample.Mvc4.csproj +++ b/src/React.Sample.Mvc4/React.Sample.Mvc4.csproj @@ -230,10 +230,13 @@ + + + - \ No newline at end of file + From 4d0fabe728708d58bab60d228ac0798a2e86254f Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Wed, 17 Jul 2019 01:41:35 +0000 Subject: [PATCH 260/530] Update dependency Microsoft.Sourcelink.Github to v1.0.0-beta2-19367-01 --- src/Cassette.React/Cassette.React.csproj | 2 +- src/React.AspNet.Middleware/React.AspNet.Middleware.csproj | 2 +- src/React.Core/React.Core.csproj | 2 +- src/React.MSBuild/React.MSBuild.csproj | 2 +- src/React.Owin/React.Owin.csproj | 2 +- src/React.Router.Mvc4/React.Router.Mvc4.csproj | 2 +- src/React.Router/React.Router.csproj | 2 +- src/React.Web.Mvc4/React.Web.Mvc4.csproj | 2 +- src/React.Web/React.Web.csproj | 2 +- .../System.Web.Optimization.React.csproj | 2 +- 10 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/Cassette.React/Cassette.React.csproj b/src/Cassette.React/Cassette.React.csproj index 964de3d32..33fb238ec 100644 --- a/src/Cassette.React/Cassette.React.csproj +++ b/src/Cassette.React/Cassette.React.csproj @@ -32,7 +32,7 @@ - + diff --git a/src/React.AspNet.Middleware/React.AspNet.Middleware.csproj b/src/React.AspNet.Middleware/React.AspNet.Middleware.csproj index 82c011d30..dddd881de 100644 --- a/src/React.AspNet.Middleware/React.AspNet.Middleware.csproj +++ b/src/React.AspNet.Middleware/React.AspNet.Middleware.csproj @@ -41,7 +41,7 @@ - + diff --git a/src/React.Core/React.Core.csproj b/src/React.Core/React.Core.csproj index b94868c72..cc50d2d20 100644 --- a/src/React.Core/React.Core.csproj +++ b/src/React.Core/React.Core.csproj @@ -47,7 +47,7 @@ - + diff --git a/src/React.MSBuild/React.MSBuild.csproj b/src/React.MSBuild/React.MSBuild.csproj index 416eb1e68..e2f2f8c2b 100644 --- a/src/React.MSBuild/React.MSBuild.csproj +++ b/src/React.MSBuild/React.MSBuild.csproj @@ -39,7 +39,7 @@ - + diff --git a/src/React.Owin/React.Owin.csproj b/src/React.Owin/React.Owin.csproj index 717cd83d4..1fe409c17 100644 --- a/src/React.Owin/React.Owin.csproj +++ b/src/React.Owin/React.Owin.csproj @@ -38,7 +38,7 @@ - + diff --git a/src/React.Router.Mvc4/React.Router.Mvc4.csproj b/src/React.Router.Mvc4/React.Router.Mvc4.csproj index 3af820dd1..5501f2cce 100644 --- a/src/React.Router.Mvc4/React.Router.Mvc4.csproj +++ b/src/React.Router.Mvc4/React.Router.Mvc4.csproj @@ -43,7 +43,7 @@ - + diff --git a/src/React.Router/React.Router.csproj b/src/React.Router/React.Router.csproj index 4101c0703..569c999d3 100644 --- a/src/React.Router/React.Router.csproj +++ b/src/React.Router/React.Router.csproj @@ -32,7 +32,7 @@ - + diff --git a/src/React.Web.Mvc4/React.Web.Mvc4.csproj b/src/React.Web.Mvc4/React.Web.Mvc4.csproj index ae0072bdf..7988074b4 100644 --- a/src/React.Web.Mvc4/React.Web.Mvc4.csproj +++ b/src/React.Web.Mvc4/React.Web.Mvc4.csproj @@ -41,7 +41,7 @@ - + diff --git a/src/React.Web/React.Web.csproj b/src/React.Web/React.Web.csproj index c0cf9c520..257e5ca94 100644 --- a/src/React.Web/React.Web.csproj +++ b/src/React.Web/React.Web.csproj @@ -38,7 +38,7 @@ - + diff --git a/src/System.Web.Optimization.React/System.Web.Optimization.React.csproj b/src/System.Web.Optimization.React/System.Web.Optimization.React.csproj index 3bf7157cd..7a954294e 100644 --- a/src/System.Web.Optimization.React/System.Web.Optimization.React.csproj +++ b/src/System.Web.Optimization.React/System.Web.Optimization.React.csproj @@ -37,7 +37,7 @@ - + From 8be703b5aa48aaa860a6652eaa43295588f207f5 Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Wed, 17 Jul 2019 06:30:34 -0700 Subject: [PATCH 261/530] Clean up references to source link package (#871) --- src/React.AspNet.Middleware/React.AspNet.Middleware.csproj | 5 ++++- src/React.AspNet/React.AspNet.csproj | 4 ++++ src/React.Router.Mvc4/React.Router.Mvc4.csproj | 2 +- src/React.Router/React.Router.csproj | 5 ++++- 4 files changed, 13 insertions(+), 3 deletions(-) diff --git a/src/React.AspNet.Middleware/React.AspNet.Middleware.csproj b/src/React.AspNet.Middleware/React.AspNet.Middleware.csproj index dddd881de..7c6fc90b2 100644 --- a/src/React.AspNet.Middleware/React.AspNet.Middleware.csproj +++ b/src/React.AspNet.Middleware/React.AspNet.Middleware.csproj @@ -35,13 +35,16 @@ + + + + - diff --git a/src/React.AspNet/React.AspNet.csproj b/src/React.AspNet/React.AspNet.csproj index 24b018419..4498ac6f4 100644 --- a/src/React.AspNet/React.AspNet.csproj +++ b/src/React.AspNet/React.AspNet.csproj @@ -32,6 +32,10 @@ + + + + diff --git a/src/React.Router.Mvc4/React.Router.Mvc4.csproj b/src/React.Router.Mvc4/React.Router.Mvc4.csproj index 5501f2cce..810bccc07 100644 --- a/src/React.Router.Mvc4/React.Router.Mvc4.csproj +++ b/src/React.Router.Mvc4/React.Router.Mvc4.csproj @@ -43,7 +43,7 @@ - + diff --git a/src/React.Router/React.Router.csproj b/src/React.Router/React.Router.csproj index 569c999d3..f507301c3 100644 --- a/src/React.Router/React.Router.csproj +++ b/src/React.Router/React.Router.csproj @@ -29,10 +29,13 @@ + + + + - From 433501c7efc7cc47cf8552d74729ec69e521434e Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Tue, 16 Jul 2019 18:27:56 -0400 Subject: [PATCH 262/530] Add 5.0.0 blog post --- .../jekyll/_posts/2019-07-16-5.0.0-release.md | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 site/jekyll/_posts/2019-07-16-5.0.0-release.md diff --git a/site/jekyll/_posts/2019-07-16-5.0.0-release.md b/site/jekyll/_posts/2019-07-16-5.0.0-release.md new file mode 100644 index 000000000..dc143a0cf --- /dev/null +++ b/site/jekyll/_posts/2019-07-16-5.0.0-release.md @@ -0,0 +1,20 @@ +--- +title: 'ReactJS.NET 5.0.0' +layout: post +author: Dustin Masters +--- + +We're pleased to announce the release of ReactJS.NET 5.0.0. This release brings a few new features as well as a bunch of minor improvements: + +- Typescript compilation of .tsx components, which also updates to Babel 7 ([#763](https://github.com/reactjs/React.NET/pull/763)) +- Output caching improvements - ([#858](https://github.com/reactjs/React.NET/pull/858)) +- JSON.NET v12 support - ([#779](https://github.com/reactjs/React.NET/pull/779)) +- .NET Core 3 preview support - ([#791](https://github.com/reactjs/React.NET/pull/791)) +- Source link and symbol server support - ([#830](https://github.com/reactjs/React.NET/pull/830)), [ebb22ee](https://github.com/reactjs/React.NET/commit/ebb22ee59d9b2b5824adbcc46b82c92b06997949) +- React and ReactDOM updated to 16.8.6 + +Thanks to the following developers for contributing to this release: Daniel15, dustinsoftware, gunnim, Taritsyn, vanillajonathan + +Cheers! + +- [@dustinsoftware](https://twitter.com/dustinsoftware) and [@Daniel15](https://twitter.com/daniel15) From 3f02ab440d565ded761631fe11e446b2b3fea3d5 Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Tue, 16 Jul 2019 18:30:29 -0400 Subject: [PATCH 263/530] 5.0.0 --- build.proj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.proj b/build.proj index 8bb50b149..0b630287c 100644 --- a/build.proj +++ b/build.proj @@ -11,7 +11,7 @@ of patent rights can be found in the PATENTS file in the same directory. 5 0 - 0-beta1 + 0 0 http://reactjs.net/packages/ $(MSBuildProjectDirectory)\tools\MSBuildTasks From ca9ece8cb36976b1074baec435989e852a135d25 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Thu, 18 Jul 2019 01:49:17 +0000 Subject: [PATCH 264/530] Update dependency React.AspNet to v5.0.0 --- tutorial-code/tutorial-code.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tutorial-code/tutorial-code.csproj b/tutorial-code/tutorial-code.csproj index bfcdda306..1d332512f 100644 --- a/tutorial-code/tutorial-code.csproj +++ b/tutorial-code/tutorial-code.csproj @@ -20,7 +20,7 @@ - + From d34afd11d36d42adcd97dd9b2258acdf7cc00cef Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Tue, 23 Jul 2019 17:25:53 +0000 Subject: [PATCH 265/530] Update dependency @types/react-dom to v16.8.5 --- src/React.Sample.Mvc4/package-lock.json | 6 +++--- src/React.Sample.Mvc4/package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/React.Sample.Mvc4/package-lock.json b/src/React.Sample.Mvc4/package-lock.json index c3a6cd722..0b39c7ccc 100644 --- a/src/React.Sample.Mvc4/package-lock.json +++ b/src/React.Sample.Mvc4/package-lock.json @@ -21,9 +21,9 @@ } }, "@types/react-dom": { - "version": "16.8.4", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-16.8.4.tgz", - "integrity": "sha512-eIRpEW73DCzPIMaNBDP5pPIpK1KXyZwNgfxiVagb5iGiz6da+9A5hslSX6GAQKdO7SayVCS/Fr2kjqprgAvkfA==", + "version": "16.8.5", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-16.8.5.tgz", + "integrity": "sha512-idCEjROZ2cqh29+trmTmZhsBAUNQuYrF92JHKzZ5+aiFM1mlSk3bb23CK7HhYuOY75Apgap5y2jTyHzaM2AJGA==", "dev": true, "requires": { "@types/react": "*" diff --git a/src/React.Sample.Mvc4/package.json b/src/React.Sample.Mvc4/package.json index 89fd1a9e1..bca878885 100644 --- a/src/React.Sample.Mvc4/package.json +++ b/src/React.Sample.Mvc4/package.json @@ -8,7 +8,7 @@ }, "devDependencies": { "@types/react": "16.8.23", - "@types/react-dom": "16.8.4", + "@types/react-dom": "16.8.5", "@types/reactstrap": "8.0.1", "typescript": "3.5.3" } From d8d2c86b269b116a6a7eeff027e436e07d21f5b9 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Wed, 31 Jul 2019 17:23:13 +0000 Subject: [PATCH 266/530] Update dependency @types/react to v16.8.24 --- src/React.Sample.Mvc4/package-lock.json | 12 ++++++------ src/React.Sample.Mvc4/package.json | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/React.Sample.Mvc4/package-lock.json b/src/React.Sample.Mvc4/package-lock.json index 0b39c7ccc..94153b7d7 100644 --- a/src/React.Sample.Mvc4/package-lock.json +++ b/src/React.Sample.Mvc4/package-lock.json @@ -11,9 +11,9 @@ "dev": true }, "@types/react": { - "version": "16.8.23", - "resolved": "https://registry.npmjs.org/@types/react/-/react-16.8.23.tgz", - "integrity": "sha512-abkEOIeljniUN9qB5onp++g0EY38h7atnDHxwKUFz1r3VH1+yG1OKi2sNPTyObL40goBmfKFpdii2lEzwLX1cA==", + "version": "16.8.24", + "resolved": "https://registry.npmjs.org/@types/react/-/react-16.8.24.tgz", + "integrity": "sha512-VpFHUoD37YNY2+lr/+c7qL/tZsIU/bKuskUF3tmGUArbxIcQdb5j3zvo4cuuzu2A6UaVmVn7sJ4PgWYNFEBGzg==", "dev": true, "requires": { "@types/prop-types": "*", @@ -40,9 +40,9 @@ } }, "csstype": { - "version": "2.6.5", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.5.tgz", - "integrity": "sha512-JsTaiksRsel5n7XwqPAfB0l3TFKdpjW/kgAELf9vrb5adGA7UCPLajKK5s3nFrcFm3Rkyp/Qkgl73ENc1UY3cA==", + "version": "2.6.6", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.6.tgz", + "integrity": "sha512-RpFbQGUE74iyPgvr46U9t1xoQBM8T4BL8SxrN66Le2xYAPSaDJJKeztV3awugusb3g3G9iL8StmkBBXhcbbXhg==", "dev": true }, "popper.js": { diff --git a/src/React.Sample.Mvc4/package.json b/src/React.Sample.Mvc4/package.json index bca878885..b2c0c8388 100644 --- a/src/React.Sample.Mvc4/package.json +++ b/src/React.Sample.Mvc4/package.json @@ -7,7 +7,7 @@ "lint:ts": "tsc" }, "devDependencies": { - "@types/react": "16.8.23", + "@types/react": "16.8.24", "@types/react-dom": "16.8.5", "@types/reactstrap": "8.0.1", "typescript": "3.5.3" From e431d9194e3d1bf973bbbbe9fa78645e84a748c8 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Fri, 2 Aug 2019 19:47:45 +0000 Subject: [PATCH 267/530] Update JavaScriptEngineSwitcher packages to v3.1.5 --- src/React.Sample.Owin/React.Sample.Owin.csproj | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/React.Sample.Owin/React.Sample.Owin.csproj b/src/React.Sample.Owin/React.Sample.Owin.csproj index 26169195c..abe3d17a4 100644 --- a/src/React.Sample.Owin/React.Sample.Owin.csproj +++ b/src/React.Sample.Owin/React.Sample.Owin.csproj @@ -24,8 +24,8 @@ - - + + From 0e239d25411dce324c6980a89920120620815ac7 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Mon, 5 Aug 2019 19:45:27 +0000 Subject: [PATCH 268/530] Update dependency JavaScriptEngineSwitcher.V8 to v3.1.6 --- src/React.Sample.Owin/React.Sample.Owin.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/React.Sample.Owin/React.Sample.Owin.csproj b/src/React.Sample.Owin/React.Sample.Owin.csproj index abe3d17a4..c23d65da0 100644 --- a/src/React.Sample.Owin/React.Sample.Owin.csproj +++ b/src/React.Sample.Owin/React.Sample.Owin.csproj @@ -24,7 +24,7 @@ - + From 9e68b89b1cae77596dd3a61f7f4025e1ed8dc9fa Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Wed, 7 Aug 2019 17:32:23 +0000 Subject: [PATCH 269/530] Update dependency @types/react to v16.8.25 --- src/React.Sample.Mvc4/package-lock.json | 6 +++--- src/React.Sample.Mvc4/package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/React.Sample.Mvc4/package-lock.json b/src/React.Sample.Mvc4/package-lock.json index 94153b7d7..618315b81 100644 --- a/src/React.Sample.Mvc4/package-lock.json +++ b/src/React.Sample.Mvc4/package-lock.json @@ -11,9 +11,9 @@ "dev": true }, "@types/react": { - "version": "16.8.24", - "resolved": "https://registry.npmjs.org/@types/react/-/react-16.8.24.tgz", - "integrity": "sha512-VpFHUoD37YNY2+lr/+c7qL/tZsIU/bKuskUF3tmGUArbxIcQdb5j3zvo4cuuzu2A6UaVmVn7sJ4PgWYNFEBGzg==", + "version": "16.8.25", + "resolved": "https://registry.npmjs.org/@types/react/-/react-16.8.25.tgz", + "integrity": "sha512-ydAAkLnNTC4oYSxJ3zwK/4QcVmEecACJ4ZdxXITbxz/dhahBSDKY6OQ1uawAW6rE/7kfHccxulYLSAIZVrSq0A==", "dev": true, "requires": { "@types/prop-types": "*", diff --git a/src/React.Sample.Mvc4/package.json b/src/React.Sample.Mvc4/package.json index b2c0c8388..cd5e2d0d7 100644 --- a/src/React.Sample.Mvc4/package.json +++ b/src/React.Sample.Mvc4/package.json @@ -7,7 +7,7 @@ "lint:ts": "tsc" }, "devDependencies": { - "@types/react": "16.8.24", + "@types/react": "16.8.25", "@types/react-dom": "16.8.5", "@types/reactstrap": "8.0.1", "typescript": "3.5.3" From f522503b5adb4de8d4151edf9e017d1d52cd3350 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Wed, 14 Aug 2019 14:30:22 +0000 Subject: [PATCH 270/530] Update JavaScriptEngineSwitcher packages to v3.1.7 --- .../React.Sample.ConsoleApp.csproj | 8 ++++---- .../React.Sample.Webpack.CoreMvc.csproj | 10 +++++----- tutorial-code/tutorial-code.csproj | 8 ++++---- 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/src/React.Sample.ConsoleApp/React.Sample.ConsoleApp.csproj b/src/React.Sample.ConsoleApp/React.Sample.ConsoleApp.csproj index d300140b9..173cc126a 100644 --- a/src/React.Sample.ConsoleApp/React.Sample.ConsoleApp.csproj +++ b/src/React.Sample.ConsoleApp/React.Sample.ConsoleApp.csproj @@ -20,10 +20,10 @@ - - - - + + + + diff --git a/src/React.Sample.Webpack.CoreMvc/React.Sample.Webpack.CoreMvc.csproj b/src/React.Sample.Webpack.CoreMvc/React.Sample.Webpack.CoreMvc.csproj index 940a35e9c..8756ba9fd 100644 --- a/src/React.Sample.Webpack.CoreMvc/React.Sample.Webpack.CoreMvc.csproj +++ b/src/React.Sample.Webpack.CoreMvc/React.Sample.Webpack.CoreMvc.csproj @@ -15,11 +15,11 @@ - - - - - + + + + + diff --git a/tutorial-code/tutorial-code.csproj b/tutorial-code/tutorial-code.csproj index 1d332512f..9828fb4d0 100644 --- a/tutorial-code/tutorial-code.csproj +++ b/tutorial-code/tutorial-code.csproj @@ -13,10 +13,10 @@ - - - - + + + + From 429fb1c3a00b8bd95115d71e203a2a288dad7ff2 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Sun, 18 Aug 2019 05:38:38 +0000 Subject: [PATCH 271/530] Update dependency webpack-cli to v3.3.7 --- src/React.Core/Resources/babel-legacy/package-lock.json | 6 +++--- src/React.Core/Resources/babel-legacy/package.json | 2 +- src/React.Core/package-lock.json | 6 +++--- src/React.Core/package.json | 2 +- src/React.Sample.Webpack.CoreMvc/package-lock.json | 6 +++--- src/React.Sample.Webpack.CoreMvc/package.json | 2 +- 6 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/React.Core/Resources/babel-legacy/package-lock.json b/src/React.Core/Resources/babel-legacy/package-lock.json index d7bc943d3..5547f0ecc 100644 --- a/src/React.Core/Resources/babel-legacy/package-lock.json +++ b/src/React.Core/Resources/babel-legacy/package-lock.json @@ -5123,9 +5123,9 @@ } }, "webpack-cli": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.6.tgz", - "integrity": "sha512-0vEa83M7kJtxK/jUhlpZ27WHIOndz5mghWL2O53kiDoA9DIxSKnfqB92LoqEn77cT4f3H2cZm1BMEat/6AZz3A==", + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.7.tgz", + "integrity": "sha512-OhTUCttAsr+IZSMVwGROGRHvT+QAs8H6/mHIl4SvhAwYywjiylYjpwybGx7WQ9Hkb45FhjtsymkwiRRbGJ1SZQ==", "dev": true, "requires": { "chalk": "2.4.2", diff --git a/src/React.Core/Resources/babel-legacy/package.json b/src/React.Core/Resources/babel-legacy/package.json index 25ea50259..7170d7da5 100644 --- a/src/React.Core/Resources/babel-legacy/package.json +++ b/src/React.Core/Resources/babel-legacy/package.json @@ -13,7 +13,7 @@ "babel-preset-stage-0": "6.24.1", "babel-standalone": "6.26.0", "webpack": "4.35.3", - "webpack-cli": "3.3.6" + "webpack-cli": "3.3.7" }, "author": "", "license": "MIT" diff --git a/src/React.Core/package-lock.json b/src/React.Core/package-lock.json index 77aa79148..e6013a6fc 100644 --- a/src/React.Core/package-lock.json +++ b/src/React.Core/package-lock.json @@ -4379,9 +4379,9 @@ } }, "webpack-cli": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.6.tgz", - "integrity": "sha512-0vEa83M7kJtxK/jUhlpZ27WHIOndz5mghWL2O53kiDoA9DIxSKnfqB92LoqEn77cT4f3H2cZm1BMEat/6AZz3A==", + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.7.tgz", + "integrity": "sha512-OhTUCttAsr+IZSMVwGROGRHvT+QAs8H6/mHIl4SvhAwYywjiylYjpwybGx7WQ9Hkb45FhjtsymkwiRRbGJ1SZQ==", "dev": true, "requires": { "chalk": "2.4.2", diff --git a/src/React.Core/package.json b/src/React.Core/package.json index 7f164f13c..5a9886ca1 100644 --- a/src/React.Core/package.json +++ b/src/React.Core/package.json @@ -12,6 +12,6 @@ "react": "16.8.6", "react-dom": "16.8.6", "webpack": "4.35.3", - "webpack-cli": "3.3.6" + "webpack-cli": "3.3.7" } } diff --git a/src/React.Sample.Webpack.CoreMvc/package-lock.json b/src/React.Sample.Webpack.CoreMvc/package-lock.json index cfa0f2a76..55a693def 100644 --- a/src/React.Sample.Webpack.CoreMvc/package-lock.json +++ b/src/React.Sample.Webpack.CoreMvc/package-lock.json @@ -6813,9 +6813,9 @@ } }, "webpack-cli": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.6.tgz", - "integrity": "sha512-0vEa83M7kJtxK/jUhlpZ27WHIOndz5mghWL2O53kiDoA9DIxSKnfqB92LoqEn77cT4f3H2cZm1BMEat/6AZz3A==", + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.7.tgz", + "integrity": "sha512-OhTUCttAsr+IZSMVwGROGRHvT+QAs8H6/mHIl4SvhAwYywjiylYjpwybGx7WQ9Hkb45FhjtsymkwiRRbGJ1SZQ==", "dev": true, "requires": { "chalk": "2.4.2", diff --git a/src/React.Sample.Webpack.CoreMvc/package.json b/src/React.Sample.Webpack.CoreMvc/package.json index b939956f5..9bfe892c5 100644 --- a/src/React.Sample.Webpack.CoreMvc/package.json +++ b/src/React.Sample.Webpack.CoreMvc/package.json @@ -29,6 +29,6 @@ "babel-loader": "8.0.6", "babel-runtime": "6.26.0", "webpack": "4.35.3", - "webpack-cli": "3.3.6" + "webpack-cli": "3.3.7" } } From 6345877dc67385db862ba31c10c66a6a5bd69512 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Mon, 19 Aug 2019 17:39:16 +0000 Subject: [PATCH 272/530] Update dependency @types/reactstrap to v8.0.2 --- src/React.Sample.Mvc4/package-lock.json | 6 +++--- src/React.Sample.Mvc4/package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/React.Sample.Mvc4/package-lock.json b/src/React.Sample.Mvc4/package-lock.json index 618315b81..e60b427d7 100644 --- a/src/React.Sample.Mvc4/package-lock.json +++ b/src/React.Sample.Mvc4/package-lock.json @@ -30,9 +30,9 @@ } }, "@types/reactstrap": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/@types/reactstrap/-/reactstrap-8.0.1.tgz", - "integrity": "sha512-Gn3u6zAFxfBcxDxEMbyUC/A+zS8KpKNg/gKjdFLHug+sG4XOMUaychNiA5buRLeh0r3s+amsjD+xrX8gT612YA==", + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@types/reactstrap/-/reactstrap-8.0.2.tgz", + "integrity": "sha512-nRt91vAZLkgSSLFBSI5v9bmDRMnh4d5zZ9RsXHTtF9NXjAiNXmJJ+RvimOG025/bX3cIyLMgUKRdSM9lWJxQ4A==", "dev": true, "requires": { "@types/react": "*", diff --git a/src/React.Sample.Mvc4/package.json b/src/React.Sample.Mvc4/package.json index cd5e2d0d7..3a5bb0194 100644 --- a/src/React.Sample.Mvc4/package.json +++ b/src/React.Sample.Mvc4/package.json @@ -9,7 +9,7 @@ "devDependencies": { "@types/react": "16.8.25", "@types/react-dom": "16.8.5", - "@types/reactstrap": "8.0.1", + "@types/reactstrap": "8.0.2", "typescript": "3.5.3" } } From 50ce48c198591e246cbe2d281187c1833f584cb2 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Mon, 19 Aug 2019 18:19:48 +0000 Subject: [PATCH 273/530] Update dependency @types/reactstrap to v8.0.3 --- src/React.Sample.Mvc4/package-lock.json | 6 +++--- src/React.Sample.Mvc4/package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/React.Sample.Mvc4/package-lock.json b/src/React.Sample.Mvc4/package-lock.json index e60b427d7..97a9e63c7 100644 --- a/src/React.Sample.Mvc4/package-lock.json +++ b/src/React.Sample.Mvc4/package-lock.json @@ -30,9 +30,9 @@ } }, "@types/reactstrap": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@types/reactstrap/-/reactstrap-8.0.2.tgz", - "integrity": "sha512-nRt91vAZLkgSSLFBSI5v9bmDRMnh4d5zZ9RsXHTtF9NXjAiNXmJJ+RvimOG025/bX3cIyLMgUKRdSM9lWJxQ4A==", + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@types/reactstrap/-/reactstrap-8.0.3.tgz", + "integrity": "sha512-ztleh3D+Y5s5HfPpJSHwn+sqDNxXswDEvuiSaL+4eLDNIYaKpONXOv9F6fLNoRpbbDgf3m4awqoYZIv50W9vLw==", "dev": true, "requires": { "@types/react": "*", diff --git a/src/React.Sample.Mvc4/package.json b/src/React.Sample.Mvc4/package.json index 3a5bb0194..5c658fd46 100644 --- a/src/React.Sample.Mvc4/package.json +++ b/src/React.Sample.Mvc4/package.json @@ -9,7 +9,7 @@ "devDependencies": { "@types/react": "16.8.25", "@types/react-dom": "16.8.5", - "@types/reactstrap": "8.0.2", + "@types/reactstrap": "8.0.3", "typescript": "3.5.3" } } From ec9f800a32af2678e3dfd1a71e7bc2491b3298ed Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Thu, 5 Sep 2019 17:14:22 +0000 Subject: [PATCH 274/530] Update dependency webpack-cli to v3.3.8 --- src/React.Core/Resources/babel-legacy/package-lock.json | 6 +++--- src/React.Core/Resources/babel-legacy/package.json | 2 +- src/React.Core/package-lock.json | 6 +++--- src/React.Core/package.json | 2 +- src/React.Sample.Webpack.CoreMvc/package-lock.json | 6 +++--- src/React.Sample.Webpack.CoreMvc/package.json | 2 +- 6 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/React.Core/Resources/babel-legacy/package-lock.json b/src/React.Core/Resources/babel-legacy/package-lock.json index 5547f0ecc..4374715bd 100644 --- a/src/React.Core/Resources/babel-legacy/package-lock.json +++ b/src/React.Core/Resources/babel-legacy/package-lock.json @@ -5123,9 +5123,9 @@ } }, "webpack-cli": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.7.tgz", - "integrity": "sha512-OhTUCttAsr+IZSMVwGROGRHvT+QAs8H6/mHIl4SvhAwYywjiylYjpwybGx7WQ9Hkb45FhjtsymkwiRRbGJ1SZQ==", + "version": "3.3.8", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.8.tgz", + "integrity": "sha512-RANYSXwikSWINjHMd/mtesblNSpjpDLoYTBtP99n1RhXqVI/wxN40Auqy42I7y4xrbmRBoA5Zy5E0JSBD5XRhw==", "dev": true, "requires": { "chalk": "2.4.2", diff --git a/src/React.Core/Resources/babel-legacy/package.json b/src/React.Core/Resources/babel-legacy/package.json index 7170d7da5..66b6f081b 100644 --- a/src/React.Core/Resources/babel-legacy/package.json +++ b/src/React.Core/Resources/babel-legacy/package.json @@ -13,7 +13,7 @@ "babel-preset-stage-0": "6.24.1", "babel-standalone": "6.26.0", "webpack": "4.35.3", - "webpack-cli": "3.3.7" + "webpack-cli": "3.3.8" }, "author": "", "license": "MIT" diff --git a/src/React.Core/package-lock.json b/src/React.Core/package-lock.json index e6013a6fc..ecfbd65da 100644 --- a/src/React.Core/package-lock.json +++ b/src/React.Core/package-lock.json @@ -4379,9 +4379,9 @@ } }, "webpack-cli": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.7.tgz", - "integrity": "sha512-OhTUCttAsr+IZSMVwGROGRHvT+QAs8H6/mHIl4SvhAwYywjiylYjpwybGx7WQ9Hkb45FhjtsymkwiRRbGJ1SZQ==", + "version": "3.3.8", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.8.tgz", + "integrity": "sha512-RANYSXwikSWINjHMd/mtesblNSpjpDLoYTBtP99n1RhXqVI/wxN40Auqy42I7y4xrbmRBoA5Zy5E0JSBD5XRhw==", "dev": true, "requires": { "chalk": "2.4.2", diff --git a/src/React.Core/package.json b/src/React.Core/package.json index 5a9886ca1..5e2ed027b 100644 --- a/src/React.Core/package.json +++ b/src/React.Core/package.json @@ -12,6 +12,6 @@ "react": "16.8.6", "react-dom": "16.8.6", "webpack": "4.35.3", - "webpack-cli": "3.3.7" + "webpack-cli": "3.3.8" } } diff --git a/src/React.Sample.Webpack.CoreMvc/package-lock.json b/src/React.Sample.Webpack.CoreMvc/package-lock.json index 55a693def..0c481b9ee 100644 --- a/src/React.Sample.Webpack.CoreMvc/package-lock.json +++ b/src/React.Sample.Webpack.CoreMvc/package-lock.json @@ -6813,9 +6813,9 @@ } }, "webpack-cli": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.7.tgz", - "integrity": "sha512-OhTUCttAsr+IZSMVwGROGRHvT+QAs8H6/mHIl4SvhAwYywjiylYjpwybGx7WQ9Hkb45FhjtsymkwiRRbGJ1SZQ==", + "version": "3.3.8", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.8.tgz", + "integrity": "sha512-RANYSXwikSWINjHMd/mtesblNSpjpDLoYTBtP99n1RhXqVI/wxN40Auqy42I7y4xrbmRBoA5Zy5E0JSBD5XRhw==", "dev": true, "requires": { "chalk": "2.4.2", diff --git a/src/React.Sample.Webpack.CoreMvc/package.json b/src/React.Sample.Webpack.CoreMvc/package.json index 9bfe892c5..96a18c5e3 100644 --- a/src/React.Sample.Webpack.CoreMvc/package.json +++ b/src/React.Sample.Webpack.CoreMvc/package.json @@ -29,6 +29,6 @@ "babel-loader": "8.0.6", "babel-runtime": "6.26.0", "webpack": "4.35.3", - "webpack-cli": "3.3.7" + "webpack-cli": "3.3.8" } } From ce0b568f8cbe3919596a9d9f764bb9239ebabb82 Mon Sep 17 00:00:00 2001 From: Jorrit Schippers Date: Fri, 6 Sep 2019 12:43:32 +0200 Subject: [PATCH 275/530] Fix typo in 2019-01-16-4.0.0-release.md AllowJavaScriptPrecomplilation -> AllowJavaScriptPrecompilation --- site/jekyll/_posts/2019-01-16-4.0.0-release.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site/jekyll/_posts/2019-01-16-4.0.0-release.md b/site/jekyll/_posts/2019-01-16-4.0.0-release.md index f2d350c87..eebc4e92c 100644 --- a/site/jekyll/_posts/2019-01-16-4.0.0-release.md +++ b/site/jekyll/_posts/2019-01-16-4.0.0-release.md @@ -13,7 +13,7 @@ This release brings a few new features: - Javascript engines are no longer automatically registered. See the getting started pages on [.NET Framework](https://reactjs.net/getting-started/aspnet.html) and [.NET Core](https://reactjs.net/getting-started/aspnetcore.html) for more information about how to register a specific Javascript engine in your app. - JavaScriptEngineSwitcher and JSPool have been updated as a part of this change. - Further reading for JavaScriptEngineSwitcher: [How to upgrade applications to version 3.X](https://github.com/Taritsyn/JavaScriptEngineSwitcher/wiki/How-to-upgrade-applications-to-version-3.X) -- Support for faster Javascript engine initialization via the [`AllowJavaScriptPrecomplilation`](https://github.com/reactjs/React.NET/commit/4ff0fad26557817ffdf31e4de7ba98bccd1645ac) setting +- Support for faster Javascript engine initialization via the [`AllowJavaScriptPrecompilation`](https://github.com/reactjs/React.NET/commit/4ff0fad26557817ffdf31e4de7ba98bccd1645ac) setting - Server side rendering support for - [React Router](https://reactjs.net/features/react-router.html) - [React Helmet](https://reactjs.net/features/react-helmet.html) From 6e71a0382642073974dbee4163c026875b9c95c8 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Thu, 12 Sep 2019 18:26:12 +0000 Subject: [PATCH 276/530] Update JavaScriptEngineSwitcher packages to v3.1.8 --- .../React.Sample.ConsoleApp.csproj | 8 ++++---- .../React.Sample.Webpack.CoreMvc.csproj | 10 +++++----- tutorial-code/tutorial-code.csproj | 8 ++++---- 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/src/React.Sample.ConsoleApp/React.Sample.ConsoleApp.csproj b/src/React.Sample.ConsoleApp/React.Sample.ConsoleApp.csproj index 173cc126a..34b84ff1d 100644 --- a/src/React.Sample.ConsoleApp/React.Sample.ConsoleApp.csproj +++ b/src/React.Sample.ConsoleApp/React.Sample.ConsoleApp.csproj @@ -20,10 +20,10 @@ - - - - + + + + diff --git a/src/React.Sample.Webpack.CoreMvc/React.Sample.Webpack.CoreMvc.csproj b/src/React.Sample.Webpack.CoreMvc/React.Sample.Webpack.CoreMvc.csproj index 8756ba9fd..535e88a9e 100644 --- a/src/React.Sample.Webpack.CoreMvc/React.Sample.Webpack.CoreMvc.csproj +++ b/src/React.Sample.Webpack.CoreMvc/React.Sample.Webpack.CoreMvc.csproj @@ -15,11 +15,11 @@ - - - - - + + + + + diff --git a/tutorial-code/tutorial-code.csproj b/tutorial-code/tutorial-code.csproj index 9828fb4d0..de01e899a 100644 --- a/tutorial-code/tutorial-code.csproj +++ b/tutorial-code/tutorial-code.csproj @@ -13,10 +13,10 @@ - - - - + + + + From 3ae8d08a33882b81d0913220c05391ff7e02fb88 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Tue, 17 Sep 2019 07:14:38 +0000 Subject: [PATCH 277/530] Update dependency webpack-cli to v3.3.9 --- src/React.Core/Resources/babel-legacy/package-lock.json | 6 +++--- src/React.Core/Resources/babel-legacy/package.json | 2 +- src/React.Core/package-lock.json | 6 +++--- src/React.Core/package.json | 2 +- src/React.Sample.Webpack.CoreMvc/package-lock.json | 6 +++--- src/React.Sample.Webpack.CoreMvc/package.json | 2 +- 6 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/React.Core/Resources/babel-legacy/package-lock.json b/src/React.Core/Resources/babel-legacy/package-lock.json index 4374715bd..d606695ce 100644 --- a/src/React.Core/Resources/babel-legacy/package-lock.json +++ b/src/React.Core/Resources/babel-legacy/package-lock.json @@ -5123,9 +5123,9 @@ } }, "webpack-cli": { - "version": "3.3.8", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.8.tgz", - "integrity": "sha512-RANYSXwikSWINjHMd/mtesblNSpjpDLoYTBtP99n1RhXqVI/wxN40Auqy42I7y4xrbmRBoA5Zy5E0JSBD5XRhw==", + "version": "3.3.9", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.9.tgz", + "integrity": "sha512-xwnSxWl8nZtBl/AFJCOn9pG7s5CYUYdZxmmukv+fAHLcBIHM36dImfpQg3WfShZXeArkWlf6QRw24Klcsv8a5A==", "dev": true, "requires": { "chalk": "2.4.2", diff --git a/src/React.Core/Resources/babel-legacy/package.json b/src/React.Core/Resources/babel-legacy/package.json index 66b6f081b..c146eba2e 100644 --- a/src/React.Core/Resources/babel-legacy/package.json +++ b/src/React.Core/Resources/babel-legacy/package.json @@ -13,7 +13,7 @@ "babel-preset-stage-0": "6.24.1", "babel-standalone": "6.26.0", "webpack": "4.35.3", - "webpack-cli": "3.3.8" + "webpack-cli": "3.3.9" }, "author": "", "license": "MIT" diff --git a/src/React.Core/package-lock.json b/src/React.Core/package-lock.json index ecfbd65da..87071e099 100644 --- a/src/React.Core/package-lock.json +++ b/src/React.Core/package-lock.json @@ -4379,9 +4379,9 @@ } }, "webpack-cli": { - "version": "3.3.8", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.8.tgz", - "integrity": "sha512-RANYSXwikSWINjHMd/mtesblNSpjpDLoYTBtP99n1RhXqVI/wxN40Auqy42I7y4xrbmRBoA5Zy5E0JSBD5XRhw==", + "version": "3.3.9", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.9.tgz", + "integrity": "sha512-xwnSxWl8nZtBl/AFJCOn9pG7s5CYUYdZxmmukv+fAHLcBIHM36dImfpQg3WfShZXeArkWlf6QRw24Klcsv8a5A==", "dev": true, "requires": { "chalk": "2.4.2", diff --git a/src/React.Core/package.json b/src/React.Core/package.json index 5e2ed027b..d8b1b9736 100644 --- a/src/React.Core/package.json +++ b/src/React.Core/package.json @@ -12,6 +12,6 @@ "react": "16.8.6", "react-dom": "16.8.6", "webpack": "4.35.3", - "webpack-cli": "3.3.8" + "webpack-cli": "3.3.9" } } diff --git a/src/React.Sample.Webpack.CoreMvc/package-lock.json b/src/React.Sample.Webpack.CoreMvc/package-lock.json index 0c481b9ee..fb67f2511 100644 --- a/src/React.Sample.Webpack.CoreMvc/package-lock.json +++ b/src/React.Sample.Webpack.CoreMvc/package-lock.json @@ -6813,9 +6813,9 @@ } }, "webpack-cli": { - "version": "3.3.8", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.8.tgz", - "integrity": "sha512-RANYSXwikSWINjHMd/mtesblNSpjpDLoYTBtP99n1RhXqVI/wxN40Auqy42I7y4xrbmRBoA5Zy5E0JSBD5XRhw==", + "version": "3.3.9", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.9.tgz", + "integrity": "sha512-xwnSxWl8nZtBl/AFJCOn9pG7s5CYUYdZxmmukv+fAHLcBIHM36dImfpQg3WfShZXeArkWlf6QRw24Klcsv8a5A==", "dev": true, "requires": { "chalk": "2.4.2", diff --git a/src/React.Sample.Webpack.CoreMvc/package.json b/src/React.Sample.Webpack.CoreMvc/package.json index 96a18c5e3..05ef4fcd9 100644 --- a/src/React.Sample.Webpack.CoreMvc/package.json +++ b/src/React.Sample.Webpack.CoreMvc/package.json @@ -29,6 +29,6 @@ "babel-loader": "8.0.6", "babel-runtime": "6.26.0", "webpack": "4.35.3", - "webpack-cli": "3.3.8" + "webpack-cli": "3.3.9" } } From 29d44f976f8e11af4ea581308f3a9f9e81a2cd6e Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Tue, 17 Sep 2019 01:24:23 +0000 Subject: [PATCH 278/530] Update dependency Octokit to v0.34.0 --- webhooks/React.Site.Hooks.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/webhooks/React.Site.Hooks.csproj b/webhooks/React.Site.Hooks.csproj index 652dd0497..86510cea1 100644 --- a/webhooks/React.Site.Hooks.csproj +++ b/webhooks/React.Site.Hooks.csproj @@ -4,7 +4,7 @@ - + From b095ec92a67e03fe64e3e9f7be023e2670c409ce Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Tue, 10 Sep 2019 20:52:09 +0000 Subject: [PATCH 279/530] Update dependency typescript to v3.6.3 --- src/React.Sample.Mvc4/package-lock.json | 6 +++--- src/React.Sample.Mvc4/package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/React.Sample.Mvc4/package-lock.json b/src/React.Sample.Mvc4/package-lock.json index 97a9e63c7..263ca641a 100644 --- a/src/React.Sample.Mvc4/package-lock.json +++ b/src/React.Sample.Mvc4/package-lock.json @@ -52,9 +52,9 @@ "dev": true }, "typescript": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.5.3.tgz", - "integrity": "sha512-ACzBtm/PhXBDId6a6sDJfroT2pOWt/oOnk4/dElG5G33ZL776N3Y6/6bKZJBFpd+b05F3Ct9qDjMeJmRWtE2/g==", + "version": "3.6.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.6.3.tgz", + "integrity": "sha512-N7bceJL1CtRQ2RiG0AQME13ksR7DiuQh/QehubYcghzv20tnh+MQnQIuJddTmsbqYj+dztchykemz0zFzlvdQw==", "dev": true } } diff --git a/src/React.Sample.Mvc4/package.json b/src/React.Sample.Mvc4/package.json index 5c658fd46..f71bd49b1 100644 --- a/src/React.Sample.Mvc4/package.json +++ b/src/React.Sample.Mvc4/package.json @@ -10,6 +10,6 @@ "@types/react": "16.8.25", "@types/react-dom": "16.8.5", "@types/reactstrap": "8.0.3", - "typescript": "3.5.3" + "typescript": "3.6.3" } } From 3a02522b54db265db68d7bdbbcbe45db8c89dc78 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Mon, 19 Aug 2019 20:18:08 +0000 Subject: [PATCH 280/530] Update dependency @types/react-dom to v16.9.0 --- src/React.Sample.Mvc4/package-lock.json | 6 +++--- src/React.Sample.Mvc4/package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/React.Sample.Mvc4/package-lock.json b/src/React.Sample.Mvc4/package-lock.json index 263ca641a..1664bdd8d 100644 --- a/src/React.Sample.Mvc4/package-lock.json +++ b/src/React.Sample.Mvc4/package-lock.json @@ -21,9 +21,9 @@ } }, "@types/react-dom": { - "version": "16.8.5", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-16.8.5.tgz", - "integrity": "sha512-idCEjROZ2cqh29+trmTmZhsBAUNQuYrF92JHKzZ5+aiFM1mlSk3bb23CK7HhYuOY75Apgap5y2jTyHzaM2AJGA==", + "version": "16.9.0", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-16.9.0.tgz", + "integrity": "sha512-OL2lk7LYGjxn4b0efW3Pvf2KBVP0y1v3wip1Bp7nA79NkOpElH98q3WdCEdDj93b2b0zaeBG9DvriuKjIK5xDA==", "dev": true, "requires": { "@types/react": "*" diff --git a/src/React.Sample.Mvc4/package.json b/src/React.Sample.Mvc4/package.json index f71bd49b1..5ce4f52a2 100644 --- a/src/React.Sample.Mvc4/package.json +++ b/src/React.Sample.Mvc4/package.json @@ -8,7 +8,7 @@ }, "devDependencies": { "@types/react": "16.8.25", - "@types/react-dom": "16.8.5", + "@types/react-dom": "16.9.0", "@types/reactstrap": "8.0.3", "typescript": "3.6.3" } From 10b25ff05b7cfb6978770ffe393312892004b097 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Thu, 8 Aug 2019 21:27:56 +0000 Subject: [PATCH 281/530] Update react monorepo to v16.9.0 --- src/React.Core/package-lock.json | 45 ++++++++++++++++---------------- src/React.Core/package.json | 4 +-- 2 files changed, 24 insertions(+), 25 deletions(-) diff --git a/src/React.Core/package-lock.json b/src/React.Core/package-lock.json index 87071e099..dd246e704 100644 --- a/src/React.Core/package-lock.json +++ b/src/React.Core/package-lock.json @@ -2725,12 +2725,12 @@ "dev": true }, "loose-envify": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", - "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", "dev": true, "requires": { - "js-tokens": "3.0.2" + "js-tokens": "^3.0.0 || ^4.0.0" } }, "lru-cache": { @@ -3443,27 +3443,26 @@ } }, "react": { - "version": "16.8.6", - "resolved": "https://registry.npmjs.org/react/-/react-16.8.6.tgz", - "integrity": "sha512-pC0uMkhLaHm11ZSJULfOBqV4tIZkx87ZLvbbQYunNixAAvjnC+snJCg0XQXn9VIsttVsbZP/H/ewzgsd5fxKXw==", + "version": "16.9.0", + "resolved": "https://registry.npmjs.org/react/-/react-16.9.0.tgz", + "integrity": "sha512-+7LQnFBwkiw+BobzOF6N//BdoNw0ouwmSJTEm9cglOOmsg/TMiFHZLe2sEoN5M7LgJTj9oHH0gxklfnQe66S1w==", "dev": true, "requires": { - "loose-envify": "1.3.1", - "object-assign": "4.1.1", - "prop-types": "15.7.2", - "scheduler": "0.13.6" + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "prop-types": "^15.6.2" } }, "react-dom": { - "version": "16.8.6", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.8.6.tgz", - "integrity": "sha512-1nL7PIq9LTL3fthPqwkvr2zY7phIPjYrT0jp4HjyEQrEROnw4dG41VVwi/wfoCneoleqrNX7iAD+pXebJZwrwA==", + "version": "16.9.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.9.0.tgz", + "integrity": "sha512-YFT2rxO9hM70ewk9jq0y6sQk8cL02xm4+IzYBz75CQGlClQQ1Bxq0nhHF6OtSbit+AIahujJgb/CPRibFkMNJQ==", "dev": true, "requires": { - "loose-envify": "1.3.1", - "object-assign": "4.1.1", - "prop-types": "15.7.2", - "scheduler": "0.13.6" + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "prop-types": "^15.6.2", + "scheduler": "^0.15.0" } }, "react-is": { @@ -3641,13 +3640,13 @@ } }, "scheduler": { - "version": "0.13.6", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.13.6.tgz", - "integrity": "sha512-IWnObHt413ucAYKsD9J1QShUKkbKLQQHdxRyw73sw4FN26iWr3DY/H34xGPe4nmL1DwXyWmSWmMrA9TfQbE/XQ==", + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.15.0.tgz", + "integrity": "sha512-xAefmSfN6jqAa7Kuq7LIJY0bwAPG3xlCj0HMEBQk1lxYiDKZscY2xJ5U/61ZTrYbmNQbXa+gc7czPkVo11tnCg==", "dev": true, "requires": { - "loose-envify": "1.3.1", - "object-assign": "4.1.1" + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" } }, "schema-utils": { diff --git a/src/React.Core/package.json b/src/React.Core/package.json index d8b1b9736..aa7e3d29f 100644 --- a/src/React.Core/package.json +++ b/src/React.Core/package.json @@ -9,8 +9,8 @@ "@babel/core": "7.4.5", "@babel/standalone": "7.4.5", "prop-types": "15.7.2", - "react": "16.8.6", - "react-dom": "16.8.6", + "react": "16.9.0", + "react-dom": "16.9.0", "webpack": "4.35.3", "webpack-cli": "3.3.9" } From b8bc419517238d00b9acb04e3c3bfb26d7b00bbc Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Fri, 6 Sep 2019 17:37:08 +0000 Subject: [PATCH 282/530] Update dependency @babel/standalone to v7.6.0 --- src/React.Core/package-lock.json | 6 +++--- src/React.Core/package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/React.Core/package-lock.json b/src/React.Core/package-lock.json index dd246e704..005e9ac27 100644 --- a/src/React.Core/package-lock.json +++ b/src/React.Core/package-lock.json @@ -131,9 +131,9 @@ "dev": true }, "@babel/standalone": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@babel/standalone/-/standalone-7.4.5.tgz", - "integrity": "sha512-Ddjq6OS+NxpJdvMEMiKVU4BCg/2IOpbP+2JNM9ZY1HULxlZGTyNXKIqXHRqzV0N6e+51zmTwQg+c1Lfs44bBHg==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/@babel/standalone/-/standalone-7.6.0.tgz", + "integrity": "sha512-bOZnW6amPLr2296mPl+cHCAG4GNo1NTmoi7cURzLtb08Er1nM9QpT6RecYR/UNlYOOvzUWUYlUTKrKJs9tpbcw==", "dev": true }, "@babel/template": { diff --git a/src/React.Core/package.json b/src/React.Core/package.json index aa7e3d29f..b880c4dba 100644 --- a/src/React.Core/package.json +++ b/src/React.Core/package.json @@ -7,7 +7,7 @@ }, "devDependencies": { "@babel/core": "7.4.5", - "@babel/standalone": "7.4.5", + "@babel/standalone": "7.6.0", "prop-types": "15.7.2", "react": "16.9.0", "react-dom": "16.9.0", From 6bbc00a91b789a09b4c4e8acbb924f8fdbb29dbe Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Sat, 21 Sep 2019 21:27:41 -0700 Subject: [PATCH 283/530] Update to .NET Core 3.0 rc1 (#909) * Update frameworkreference to .NETCore 3.0 rc1 * Bump pipeline config to .NET Core 3.0.100-rc1 * Migrate to new PackageIcon attribute --- azure-pipelines.yml | 2 +- src/Cassette.React/Cassette.React.csproj | 3 ++- src/React.AspNet.Middleware/React.AspNet.Middleware.csproj | 5 +++-- src/React.AspNet/React.AspNet.csproj | 5 +++-- src/React.Core/React.Core.csproj | 3 ++- src/React.MSBuild/React.MSBuild.csproj | 3 ++- src/React.Owin/React.Owin.csproj | 3 ++- src/React.Router.Mvc4/React.Router.Mvc4.csproj | 3 ++- src/React.Router/React.Router.csproj | 5 +++-- src/React.Web.Mvc4/React.Web.Mvc4.csproj | 3 ++- src/React.Web/React.Web.csproj | 3 ++- .../System.Web.Optimization.React.csproj | 3 ++- 12 files changed, 26 insertions(+), 15 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index c5c45456c..9d4afe505 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -19,7 +19,7 @@ steps: - task: DotNetCoreInstaller@0 inputs: packageType: 'sdk' - version: '3.0.100-preview5-011568' + version: '3.0.100-rc1-014190' - task: VSBuild@1 inputs: diff --git a/src/Cassette.React/Cassette.React.csproj b/src/Cassette.React/Cassette.React.csproj index 33fb238ec..8dd6e8648 100644 --- a/src/Cassette.React/Cassette.React.csproj +++ b/src/Cassette.React/Cassette.React.csproj @@ -10,7 +10,7 @@ Cassette.React Cassette.React asp.net;mvc;asp;jquery;javascript;js;react;facebook;reactjs;babel;cassette - http://reactjs.net/img/logo_64.png + logo_64.png https://github.com/reactjs/react.net https://github.com/reactjs/React.NET#licence false @@ -24,6 +24,7 @@ + diff --git a/src/React.AspNet.Middleware/React.AspNet.Middleware.csproj b/src/React.AspNet.Middleware/React.AspNet.Middleware.csproj index 7c6fc90b2..34e4a8d95 100644 --- a/src/React.AspNet.Middleware/React.AspNet.Middleware.csproj +++ b/src/React.AspNet.Middleware/React.AspNet.Middleware.csproj @@ -13,7 +13,7 @@ true React.AspNet.Middleware asp.net;mvc;asp;javascript;js;react;facebook;reactjs;vnext;asp.net 5;asp.net core - http://reactjs.net/img/logo_64.png + logo_64.png https://github.com/reactjs/react.net https://github.com/reactjs/React.NET#licence true @@ -29,6 +29,7 @@ + @@ -48,7 +49,7 @@ - + diff --git a/src/React.AspNet/React.AspNet.csproj b/src/React.AspNet/React.AspNet.csproj index 4498ac6f4..4160152d5 100644 --- a/src/React.AspNet/React.AspNet.csproj +++ b/src/React.AspNet/React.AspNet.csproj @@ -13,7 +13,7 @@ true React.AspNet asp.net;mvc;asp;javascript;js;react;facebook;reactjs;vnext;asp.net 5;asp.net core - http://reactjs.net/img/logo_64.png + logo_64.png https://github.com/reactjs/react.net https://github.com/reactjs/React.NET#licence false @@ -25,6 +25,7 @@ + @@ -41,7 +42,7 @@ - + diff --git a/src/React.Core/React.Core.csproj b/src/React.Core/React.Core.csproj index cc50d2d20..f898f86cc 100644 --- a/src/React.Core/React.Core.csproj +++ b/src/React.Core/React.Core.csproj @@ -13,7 +13,7 @@ true React.Core asp.net;mvc;asp;jquery;javascript;js;react;facebook;reactjs;babel - http://reactjs.net/img/logo_64.png + logo_64.png https://github.com/reactjs/react.net https://github.com/reactjs/React.NET#licence true @@ -31,6 +31,7 @@ + diff --git a/src/React.MSBuild/React.MSBuild.csproj b/src/React.MSBuild/React.MSBuild.csproj index e2f2f8c2b..68b7fb348 100644 --- a/src/React.MSBuild/React.MSBuild.csproj +++ b/src/React.MSBuild/React.MSBuild.csproj @@ -13,7 +13,7 @@ true React.MSBuild asp.net;mvc;asp;jquery;javascript;js;react;facebook;reactjs;babel;msbuild - http://reactjs.net/img/logo_64.png + logo_64.png https://github.com/reactjs/react.net https://github.com/reactjs/React.NET#licence true @@ -35,6 +35,7 @@ true content\ + diff --git a/src/React.Owin/React.Owin.csproj b/src/React.Owin/React.Owin.csproj index 1fe409c17..b0f39114b 100644 --- a/src/React.Owin/React.Owin.csproj +++ b/src/React.Owin/React.Owin.csproj @@ -14,7 +14,7 @@ true React.Owin asp.net;mvc;asp;jquery;javascript;js;react;facebook;reactjs;babel;owin - http://reactjs.net/img/logo_64.png + logo_64.png https://github.com/reactjs/react.net https://github.com/reactjs/React.NET#licence true @@ -28,6 +28,7 @@ + diff --git a/src/React.Router.Mvc4/React.Router.Mvc4.csproj b/src/React.Router.Mvc4/React.Router.Mvc4.csproj index 810bccc07..90a84d2ed 100644 --- a/src/React.Router.Mvc4/React.Router.Mvc4.csproj +++ b/src/React.Router.Mvc4/React.Router.Mvc4.csproj @@ -14,7 +14,7 @@ true React.Router.Mvc4 asp.net;mvc;asp;javascript;js;react;facebook;reactjs;babel;router;react router - http://reactjs.net/img/logo_64.png + logo_64.png https://github.com/reactjs/react.net https://github.com/reactjs/React.NET#licence true @@ -33,6 +33,7 @@ true content\ + diff --git a/src/React.Router/React.Router.csproj b/src/React.Router/React.Router.csproj index f507301c3..db2f19785 100644 --- a/src/React.Router/React.Router.csproj +++ b/src/React.Router/React.Router.csproj @@ -13,7 +13,7 @@ true React.Router asp.net;mvc;asp;javascript;js;react;facebook;reactjs;babel;router;react router - http://reactjs.net/img/logo_64.png + logo_64.png https://github.com/reactjs/react.net https://github.com/reactjs/React.NET#licence true @@ -27,6 +27,7 @@ + @@ -39,7 +40,7 @@ - + diff --git a/src/React.Web.Mvc4/React.Web.Mvc4.csproj b/src/React.Web.Mvc4/React.Web.Mvc4.csproj index 7988074b4..4657a66ad 100644 --- a/src/React.Web.Mvc4/React.Web.Mvc4.csproj +++ b/src/React.Web.Mvc4/React.Web.Mvc4.csproj @@ -14,7 +14,7 @@ true React.Web.Mvc4 asp.net;mvc;asp;jquery;javascript;js;react;facebook;reactjs;babel - http://reactjs.net/img/logo_64.png + logo_64.png https://github.com/reactjs/react.net https://github.com/reactjs/React.NET/blob/master/LICENSE true @@ -32,6 +32,7 @@ true content\ + diff --git a/src/React.Web/React.Web.csproj b/src/React.Web/React.Web.csproj index 257e5ca94..650008edd 100644 --- a/src/React.Web/React.Web.csproj +++ b/src/React.Web/React.Web.csproj @@ -13,7 +13,7 @@ true React.Web asp.net;mvc;asp;jquery;javascript;js;react;facebook;reactjs;babel - http://reactjs.net/img/logo_64.png + logo_64.png https://github.com/reactjs/react.net https://github.com/reactjs/React.NET#licence true @@ -31,6 +31,7 @@ true content\ + diff --git a/src/System.Web.Optimization.React/System.Web.Optimization.React.csproj b/src/System.Web.Optimization.React/System.Web.Optimization.React.csproj index 7a954294e..9dfe66070 100644 --- a/src/System.Web.Optimization.React/System.Web.Optimization.React.csproj +++ b/src/System.Web.Optimization.React/System.Web.Optimization.React.csproj @@ -13,7 +13,7 @@ true System.Web.Optimization.React asp.net;mvc;asp;jquery;javascript;js;react;facebook;reactjs;babel - http://reactjs.net/img/logo_64.png + logo_64.png https://github.com/reactjs/react.net https://github.com/reactjs/React.NET#licence true @@ -29,6 +29,7 @@ true content\ + From 5947728a0aa79f996764ec566d1421ff3a7bce63 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 21 Sep 2019 21:35:09 -0700 Subject: [PATCH 284/530] Update dependency @types/reactstrap to v8.0.4 (#897) --- src/React.Sample.Mvc4/package-lock.json | 6 +++--- src/React.Sample.Mvc4/package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/React.Sample.Mvc4/package-lock.json b/src/React.Sample.Mvc4/package-lock.json index 1664bdd8d..0395f1742 100644 --- a/src/React.Sample.Mvc4/package-lock.json +++ b/src/React.Sample.Mvc4/package-lock.json @@ -30,9 +30,9 @@ } }, "@types/reactstrap": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@types/reactstrap/-/reactstrap-8.0.3.tgz", - "integrity": "sha512-ztleh3D+Y5s5HfPpJSHwn+sqDNxXswDEvuiSaL+4eLDNIYaKpONXOv9F6fLNoRpbbDgf3m4awqoYZIv50W9vLw==", + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/@types/reactstrap/-/reactstrap-8.0.4.tgz", + "integrity": "sha512-USAvyYnZ75OA1CfFDkUW+3TBRuYfc2At9Ts+10RcyCFgGpIgWGVG7MZnCZSkcOACjjhD0D+8vPkMVgXcohMqrQ==", "dev": true, "requires": { "@types/react": "*", diff --git a/src/React.Sample.Mvc4/package.json b/src/React.Sample.Mvc4/package.json index 5ce4f52a2..3f073d140 100644 --- a/src/React.Sample.Mvc4/package.json +++ b/src/React.Sample.Mvc4/package.json @@ -9,7 +9,7 @@ "devDependencies": { "@types/react": "16.8.25", "@types/react-dom": "16.9.0", - "@types/reactstrap": "8.0.3", + "@types/reactstrap": "8.0.4", "typescript": "3.6.3" } } From b48be73bf8ee5bcdc028a810587ad7c538993202 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 21 Sep 2019 21:35:22 -0700 Subject: [PATCH 285/530] Update dependency @types/react to v16.9.2 (#888) --- src/React.Sample.Mvc4/package-lock.json | 12 ++++++------ src/React.Sample.Mvc4/package.json | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/React.Sample.Mvc4/package-lock.json b/src/React.Sample.Mvc4/package-lock.json index 0395f1742..8c1a0da0e 100644 --- a/src/React.Sample.Mvc4/package-lock.json +++ b/src/React.Sample.Mvc4/package-lock.json @@ -5,15 +5,15 @@ "requires": true, "dependencies": { "@types/prop-types": { - "version": "15.7.1", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.1.tgz", - "integrity": "sha512-CFzn9idOEpHrgdw8JsoTkaDDyRWk1jrzIV8djzcgpq0y9tG4B4lFT+Nxh52DVpDXV+n4+NPNv7M1Dj5uMp6XFg==", + "version": "15.7.2", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.2.tgz", + "integrity": "sha512-f8JzJNWVhKtc9dg/dyDNfliTKNOJSLa7Oht/ElZdF/UbMUmAH3rLmAk3ODNjw0mZajDEgatA03tRjB4+Dp/tzA==", "dev": true }, "@types/react": { - "version": "16.8.25", - "resolved": "https://registry.npmjs.org/@types/react/-/react-16.8.25.tgz", - "integrity": "sha512-ydAAkLnNTC4oYSxJ3zwK/4QcVmEecACJ4ZdxXITbxz/dhahBSDKY6OQ1uawAW6rE/7kfHccxulYLSAIZVrSq0A==", + "version": "16.9.2", + "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.2.tgz", + "integrity": "sha512-jYP2LWwlh+FTqGd9v7ynUKZzjj98T8x7Yclz479QdRhHfuW9yQ+0jjnD31eXSXutmBpppj5PYNLYLRfnZJvcfg==", "dev": true, "requires": { "@types/prop-types": "*", diff --git a/src/React.Sample.Mvc4/package.json b/src/React.Sample.Mvc4/package.json index 3f073d140..700b26a5e 100644 --- a/src/React.Sample.Mvc4/package.json +++ b/src/React.Sample.Mvc4/package.json @@ -7,7 +7,7 @@ "lint:ts": "tsc" }, "devDependencies": { - "@types/react": "16.8.25", + "@types/react": "16.9.2", "@types/react-dom": "16.9.0", "@types/reactstrap": "8.0.4", "typescript": "3.6.3" From 514e53abcabb5f563d41b5a9db50d46743e52681 Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Sat, 21 Sep 2019 22:20:42 -0700 Subject: [PATCH 286/530] Update .NET Core 2.2 packages (#875) * Update .NET Core packages * Revert unintentional change to vs tools package --- src/React.AspNet.Middleware/React.AspNet.Middleware.csproj | 4 ++-- src/React.AspNet/React.AspNet.csproj | 2 +- src/React.Core/React.Core.csproj | 2 +- src/React.Router/React.Router.csproj | 4 ++-- tests/React.Tests.Common/React.Tests.Common.csproj | 2 +- tests/React.Tests/React.Tests.csproj | 2 +- 6 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/React.AspNet.Middleware/React.AspNet.Middleware.csproj b/src/React.AspNet.Middleware/React.AspNet.Middleware.csproj index 34e4a8d95..c57c77237 100644 --- a/src/React.AspNet.Middleware/React.AspNet.Middleware.csproj +++ b/src/React.AspNet.Middleware/React.AspNet.Middleware.csproj @@ -41,8 +41,8 @@ - - + + diff --git a/src/React.AspNet/React.AspNet.csproj b/src/React.AspNet/React.AspNet.csproj index 4160152d5..471d5ba30 100644 --- a/src/React.AspNet/React.AspNet.csproj +++ b/src/React.AspNet/React.AspNet.csproj @@ -38,7 +38,7 @@ - + diff --git a/src/React.Core/React.Core.csproj b/src/React.Core/React.Core.csproj index f898f86cc..15487e758 100644 --- a/src/React.Core/React.Core.csproj +++ b/src/React.Core/React.Core.csproj @@ -64,7 +64,7 @@ - + diff --git a/src/React.Router/React.Router.csproj b/src/React.Router/React.Router.csproj index db2f19785..b412e317c 100644 --- a/src/React.Router/React.Router.csproj +++ b/src/React.Router/React.Router.csproj @@ -35,8 +35,8 @@ - - + + diff --git a/tests/React.Tests.Common/React.Tests.Common.csproj b/tests/React.Tests.Common/React.Tests.Common.csproj index 407ae82e1..d6128f105 100644 --- a/tests/React.Tests.Common/React.Tests.Common.csproj +++ b/tests/React.Tests.Common/React.Tests.Common.csproj @@ -10,7 +10,7 @@ - + diff --git a/tests/React.Tests/React.Tests.csproj b/tests/React.Tests/React.Tests.csproj index a9d26eed3..a93944cea 100644 --- a/tests/React.Tests/React.Tests.csproj +++ b/tests/React.Tests/React.Tests.csproj @@ -30,7 +30,7 @@ - + From 29b50977d2e4b75a492a570e4adc07fa612e4e02 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 21 Sep 2019 22:21:18 -0700 Subject: [PATCH 287/530] Update dependency webpack to v4.40.2 (#874) --- .../Resources/babel-legacy/package-lock.json | 172 ++++++------ .../Resources/babel-legacy/package.json | 2 +- src/React.Core/package-lock.json | 178 +++++++------ src/React.Core/package.json | 2 +- .../package-lock.json | 249 +++++++++++------- src/React.Sample.Webpack.CoreMvc/package.json | 2 +- 6 files changed, 340 insertions(+), 265 deletions(-) diff --git a/src/React.Core/Resources/babel-legacy/package-lock.json b/src/React.Core/Resources/babel-legacy/package-lock.json index d606695ce..5c5fffc52 100644 --- a/src/React.Core/Resources/babel-legacy/package-lock.json +++ b/src/React.Core/Resources/babel-legacy/package-lock.json @@ -193,15 +193,15 @@ "dev": true }, "acorn": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.2.0.tgz", - "integrity": "sha512-8oe72N3WPMjA+2zVG71Ia0nXZ8DpQH+QyyHO+p06jT8eg8FGG3FbcUIi8KziHlAfheJQZeoqbvq1mQSQHXKYLw==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.3.0.tgz", + "integrity": "sha512-/czfa8BwS88b9gWQVhc8eknunSA2DoJpJyTQkhheIf5E48u1N0R4q/YxxsAeqRrmK9TQ/uYfgLDfZo91UlANIA==", "dev": true }, "ajv": { - "version": "6.10.1", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.1.tgz", - "integrity": "sha512-w1YQaVGNC6t2UCPjEawK/vo/dG8OOrVtUmhBT1uJJYxbl5kU2Tj3v6LGqBcsysN1yhuCStJCCA3GqdvKY8sqXQ==", + "version": "6.10.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz", + "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==", "dev": true, "requires": { "fast-deep-equal": "^2.0.1", @@ -1382,9 +1382,9 @@ } }, "base64-js": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz", - "integrity": "sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", + "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==", "dev": true }, "big.js": { @@ -1557,9 +1557,9 @@ "dev": true }, "cacache": { - "version": "11.3.3", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-11.3.3.tgz", - "integrity": "sha512-p8WcneCytvzPxhDvYp31PD039vi77I12W+/KfR9S8AZbaiARFBCpsPJS+9uhWfeBfeAtW7o/4vt3MUqLkbY6nA==", + "version": "12.0.3", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.3.tgz", + "integrity": "sha512-kqdmfXEGFepesTuROHMs3MpFLWrPkSSpRqOw80RCflZXy/khxaArvFrQ7uJxSUduzAufc6G0g1VUCOZXxWavPw==", "dev": true, "requires": { "bluebird": "^3.5.5", @@ -1567,6 +1567,7 @@ "figgy-pudding": "^3.5.1", "glob": "^7.1.4", "graceful-fs": "^4.1.15", + "infer-owner": "^1.0.3", "lru-cache": "^5.1.1", "mississippi": "^3.0.0", "mkdirp": "^0.5.1", @@ -1624,9 +1625,9 @@ } }, "chokidar": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.6.tgz", - "integrity": "sha512-V2jUo67OKkc6ySiRpJrjlpJKl9kDuG+Xb8VgsGzb+aEouhgS1D0weyPU4lEzdAcsCAvrih2J2BqyXqHWvVLw5g==", + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", "dev": true, "requires": { "anymatch": "^2.0.0", @@ -1889,9 +1890,9 @@ } }, "cyclist": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-0.2.2.tgz", - "integrity": "sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz", + "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=", "dev": true }, "date-now": { @@ -2017,9 +2018,9 @@ } }, "elliptic": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.0.tgz", - "integrity": "sha512-eFOJTMyCYb7xtE/caJ6JJu+bhi67WCYNbkGSknu20pmM8Ke/bqOfdnZWxyoGN26JgfxTbXrsCkEw4KheCT/KGg==", + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.1.tgz", + "integrity": "sha512-xvJINNLbTeWQjrl6X+7eQCrIy/YPv5XCpKW6kB5mKvtnGILoLDcySuwomfdzt0BMdLNVnuRNTuzKNHj0bva1Cg==", "dev": true, "requires": { "bn.js": "^4.4.0", @@ -2098,9 +2099,9 @@ } }, "estraverse": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", - "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", "dev": true }, "esutils": { @@ -3186,6 +3187,12 @@ "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", "dev": true }, + "infer-owner": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", + "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", + "dev": true + }, "inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -3955,20 +3962,20 @@ "dev": true }, "parallel-transform": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.1.0.tgz", - "integrity": "sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY=", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz", + "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==", "dev": true, "requires": { - "cyclist": "~0.2.2", + "cyclist": "^1.0.1", "inherits": "^2.0.3", "readable-stream": "^2.1.5" } }, "parse-asn1": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.4.tgz", - "integrity": "sha512-Qs5duJcuvNExRfFZ99HDD3z4mAi3r9Wl/FOjEOijlxwCZs7E7mW2vjTpgQ4J8LpTF8x5v+1Vn5UQFejmWT11aw==", + "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", @@ -4352,9 +4359,9 @@ "dev": true }, "rimraf": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", - "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", "dev": true, "requires": { "glob": "^7.1.3" @@ -4412,9 +4419,9 @@ "dev": true }, "serialize-javascript": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.7.0.tgz", - "integrity": "sha512-ke8UG8ulpFOxO8f8gRYabHQe/ZntKlcig2Mp+8+URDP1D8vJZ0KUt7LYo07q25Z/+JVSgpr/cui9PIp5H6/+nA==", + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.9.1.tgz", + "integrity": "sha512-0Vb/54WJ6k5v8sSWN09S0ora+Hnr+cX40r9F170nT+mSkaxltoE/7R3OrIdBSUv1OoiobH1QoWQbCnAO+e8J1A==", "dev": true }, "set-blocking": { @@ -4622,9 +4629,9 @@ } }, "source-map-support": { - "version": "0.5.12", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.12.tgz", - "integrity": "sha512-4h2Pbvyy15EE02G+JOZpUCmqWJuqrs+sEkzewTm++BPi7Hvn/HwcqLAcNxYAyI0x13CpPPn+kMjl+hplXMHITQ==", + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", + "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", "dev": true, "requires": { "buffer-from": "^1.0.0", @@ -4774,9 +4781,9 @@ "dev": true }, "terser": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.1.2.tgz", - "integrity": "sha512-jvNoEQSPXJdssFwqPSgWjsOrb+ELoE+ILpHPKXC83tIxOlh2U75F1KuB2luLD/3a6/7K3Vw5pDn+hvu0C4AzSw==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.3.1.tgz", + "integrity": "sha512-pnzH6dnFEsR2aa2SJaKb1uSCl3QmIsJ8dEkj0Fky+2AwMMcC9doMqLOQIH6wVTEKaVfKVvLSk5qxPBEZT9mywg==", "dev": true, "requires": { "commander": "^2.20.0", @@ -4793,20 +4800,19 @@ } }, "terser-webpack-plugin": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.3.0.tgz", - "integrity": "sha512-W2YWmxPjjkUcOWa4pBEv4OP4er1aeQJlSo2UhtCFQCuRXEHjOFscO8VyWHj9JLlA0RzQb8Y2/Ta78XZvT54uGg==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.1.tgz", + "integrity": "sha512-ZXmmfiwtCLfz8WKZyYUuuHf3dMYEjg8NrjHMb0JqHVHVOSkzp3cW2/XG1fP3tRhqEqSzMwzzRQGtAPbs4Cncxg==", "dev": true, "requires": { - "cacache": "^11.3.2", - "find-cache-dir": "^2.0.0", + "cacache": "^12.0.2", + "find-cache-dir": "^2.1.0", "is-wsl": "^1.1.0", - "loader-utils": "^1.2.3", "schema-utils": "^1.0.0", "serialize-javascript": "^1.7.0", "source-map": "^0.6.1", - "terser": "^4.0.0", - "webpack-sources": "^1.3.0", + "terser": "^4.1.2", + "webpack-sources": "^1.4.0", "worker-farm": "^1.7.0" }, "dependencies": { @@ -4829,9 +4835,9 @@ } }, "timers-browserify": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.10.tgz", - "integrity": "sha512-YvC1SV1XdOUaL6gx5CoGroT3Gu49pK9+TZ38ErPldOWW4j49GI1HKs9DV+KGq/w6y+LZ72W1c8cKz2vzY+qpzg==", + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.11.tgz", + "integrity": "sha512-60aV6sgJ5YEbzUdn9c8kYGIqOubPoUdqQCul3SBAsRCZ40s6Y5cMcrW4dt3/k/EsbLVJNl9n6Vz3fTc+k2GeKQ==", "dev": true, "requires": { "setimmediate": "^1.0.4" @@ -5009,9 +5015,9 @@ } }, "upath": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/upath/-/upath-1.1.2.tgz", - "integrity": "sha512-kXpym8nmDmlCBr7nKdIx8P2jNBa+pBpIUFRnKJ4dr8htyYGJFokkr2ZvERRtUN+9SY+JqXouNgUPtv6JQva/2Q==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", "dev": true }, "uri-js": { @@ -5092,34 +5098,42 @@ } }, "webpack": { - "version": "4.35.3", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.35.3.tgz", - "integrity": "sha512-xggQPwr9ILlXzz61lHzjvgoqGU08v5+Wnut19Uv3GaTtzN4xBTcwnobodrXE142EL1tOiS5WVEButooGzcQzTA==", + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.40.2.tgz", + "integrity": "sha512-5nIvteTDCUws2DVvP9Qe+JPla7kWPPIDFZv55To7IycHWZ+Z5qBdaBYPyuXWdhggTufZkQwfIK+5rKQTVovm2A==", "dev": true, "requires": { "@webassemblyjs/ast": "1.8.5", "@webassemblyjs/helper-module-context": "1.8.5", "@webassemblyjs/wasm-edit": "1.8.5", "@webassemblyjs/wasm-parser": "1.8.5", - "acorn": "^6.2.0", - "ajv": "^6.1.0", - "ajv-keywords": "^3.1.0", - "chrome-trace-event": "^1.0.0", + "acorn": "^6.2.1", + "ajv": "^6.10.2", + "ajv-keywords": "^3.4.1", + "chrome-trace-event": "^1.0.2", "enhanced-resolve": "^4.1.0", - "eslint-scope": "^4.0.0", + "eslint-scope": "^4.0.3", "json-parse-better-errors": "^1.0.2", - "loader-runner": "^2.3.0", - "loader-utils": "^1.1.0", - "memory-fs": "~0.4.1", - "micromatch": "^3.1.8", - "mkdirp": "~0.5.0", - "neo-async": "^2.5.0", - "node-libs-browser": "^2.0.0", + "loader-runner": "^2.4.0", + "loader-utils": "^1.2.3", + "memory-fs": "^0.4.1", + "micromatch": "^3.1.10", + "mkdirp": "^0.5.1", + "neo-async": "^2.6.1", + "node-libs-browser": "^2.2.1", "schema-utils": "^1.0.0", - "tapable": "^1.1.0", - "terser-webpack-plugin": "^1.1.0", - "watchpack": "^1.5.0", - "webpack-sources": "^1.3.0" + "tapable": "^1.1.3", + "terser-webpack-plugin": "^1.4.1", + "watchpack": "^1.6.0", + "webpack-sources": "^1.4.1" + }, + "dependencies": { + "tapable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", + "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", + "dev": true + } } }, "webpack-cli": { @@ -5142,9 +5156,9 @@ } }, "webpack-sources": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.3.0.tgz", - "integrity": "sha512-OiVgSrbGu7NEnEvQJJgdSFPl2qWKkWq5lHMhgiToIiN9w34EBnjYzSYs+VbL5KoYiLNtFFa7BZIKxRED3I32pA==", + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", + "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", "dev": true, "requires": { "source-list-map": "^2.0.0", diff --git a/src/React.Core/Resources/babel-legacy/package.json b/src/React.Core/Resources/babel-legacy/package.json index c146eba2e..abf0a7d8d 100644 --- a/src/React.Core/Resources/babel-legacy/package.json +++ b/src/React.Core/Resources/babel-legacy/package.json @@ -12,7 +12,7 @@ "babel-preset-es2015": "6.24.1", "babel-preset-stage-0": "6.24.1", "babel-standalone": "6.26.0", - "webpack": "4.35.3", + "webpack": "4.40.2", "webpack-cli": "3.3.9" }, "author": "", diff --git a/src/React.Core/package-lock.json b/src/React.Core/package-lock.json index 005e9ac27..dc125101e 100644 --- a/src/React.Core/package-lock.json +++ b/src/React.Core/package-lock.json @@ -381,15 +381,15 @@ "dev": true }, "acorn": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.2.0.tgz", - "integrity": "sha512-8oe72N3WPMjA+2zVG71Ia0nXZ8DpQH+QyyHO+p06jT8eg8FGG3FbcUIi8KziHlAfheJQZeoqbvq1mQSQHXKYLw==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.3.0.tgz", + "integrity": "sha512-/czfa8BwS88b9gWQVhc8eknunSA2DoJpJyTQkhheIf5E48u1N0R4q/YxxsAeqRrmK9TQ/uYfgLDfZo91UlANIA==", "dev": true }, "ajv": { - "version": "6.10.1", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.1.tgz", - "integrity": "sha512-w1YQaVGNC6t2UCPjEawK/vo/dG8OOrVtUmhBT1uJJYxbl5kU2Tj3v6LGqBcsysN1yhuCStJCCA3GqdvKY8sqXQ==", + "version": "6.10.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz", + "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==", "dev": true, "requires": { "fast-deep-equal": "^2.0.1", @@ -594,9 +594,9 @@ } }, "base64-js": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz", - "integrity": "sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", + "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==", "dev": true }, "big.js": { @@ -777,9 +777,9 @@ "dev": true }, "cacache": { - "version": "11.3.3", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-11.3.3.tgz", - "integrity": "sha512-p8WcneCytvzPxhDvYp31PD039vi77I12W+/KfR9S8AZbaiARFBCpsPJS+9uhWfeBfeAtW7o/4vt3MUqLkbY6nA==", + "version": "12.0.3", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.3.tgz", + "integrity": "sha512-kqdmfXEGFepesTuROHMs3MpFLWrPkSSpRqOw80RCflZXy/khxaArvFrQ7uJxSUduzAufc6G0g1VUCOZXxWavPw==", "dev": true, "requires": { "bluebird": "^3.5.5", @@ -787,6 +787,7 @@ "figgy-pudding": "^3.5.1", "glob": "^7.1.4", "graceful-fs": "^4.1.15", + "infer-owner": "^1.0.3", "lru-cache": "^5.1.1", "mississippi": "^3.0.0", "mkdirp": "^0.5.1", @@ -833,9 +834,9 @@ } }, "chokidar": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.6.tgz", - "integrity": "sha512-V2jUo67OKkc6ySiRpJrjlpJKl9kDuG+Xb8VgsGzb+aEouhgS1D0weyPU4lEzdAcsCAvrih2J2BqyXqHWvVLw5g==", + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", "dev": true, "requires": { "anymatch": "^2.0.0", @@ -1092,9 +1093,9 @@ } }, "cyclist": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-0.2.2.tgz", - "integrity": "sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz", + "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=", "dev": true }, "date-now": { @@ -1211,9 +1212,9 @@ } }, "elliptic": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.0.tgz", - "integrity": "sha512-eFOJTMyCYb7xtE/caJ6JJu+bhi67WCYNbkGSknu20pmM8Ke/bqOfdnZWxyoGN26JgfxTbXrsCkEw4KheCT/KGg==", + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.1.tgz", + "integrity": "sha512-xvJINNLbTeWQjrl6X+7eQCrIy/YPv5XCpKW6kB5mKvtnGILoLDcySuwomfdzt0BMdLNVnuRNTuzKNHj0bva1Cg==", "dev": true, "requires": { "bn.js": "^4.4.0", @@ -1357,9 +1358,9 @@ } }, "estraverse": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", - "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", "dev": true }, "esutils": { @@ -2301,9 +2302,9 @@ "dev": true }, "graceful-fs": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.0.tgz", - "integrity": "sha512-jpSvDPV4Cq/bgtpndIWbI5hmYxhQGHPC4d4cqBPb4DLniCfhJokdXhwhaDuLBGLQdvvRum/UiX6ECVIPvDXqdg==", + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.2.tgz", + "integrity": "sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q==", "dev": true }, "has-flag": { @@ -2418,6 +2419,12 @@ "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", "dev": true }, + "infer-owner": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", + "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", + "dev": true + }, "inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -3176,20 +3183,20 @@ "dev": true }, "parallel-transform": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.1.0.tgz", - "integrity": "sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY=", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz", + "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==", "dev": true, "requires": { - "cyclist": "~0.2.2", + "cyclist": "^1.0.1", "inherits": "^2.0.3", "readable-stream": "^2.1.5" } }, "parse-asn1": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.4.tgz", - "integrity": "sha512-Qs5duJcuvNExRfFZ99HDD3z4mAi3r9Wl/FOjEOijlxwCZs7E7mW2vjTpgQ4J8LpTF8x5v+1Vn5UQFejmWT11aw==", + "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", @@ -3597,9 +3604,9 @@ "dev": true }, "rimraf": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", - "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", "dev": true, "requires": { "glob": "^7.1.3" @@ -3667,9 +3674,9 @@ "dev": true }, "serialize-javascript": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.7.0.tgz", - "integrity": "sha512-ke8UG8ulpFOxO8f8gRYabHQe/ZntKlcig2Mp+8+URDP1D8vJZ0KUt7LYo07q25Z/+JVSgpr/cui9PIp5H6/+nA==", + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.9.1.tgz", + "integrity": "sha512-0Vb/54WJ6k5v8sSWN09S0ora+Hnr+cX40r9F170nT+mSkaxltoE/7R3OrIdBSUv1OoiobH1QoWQbCnAO+e8J1A==", "dev": true }, "set-blocking": { @@ -3871,9 +3878,9 @@ } }, "source-map-support": { - "version": "0.5.12", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.12.tgz", - "integrity": "sha512-4h2Pbvyy15EE02G+JOZpUCmqWJuqrs+sEkzewTm++BPi7Hvn/HwcqLAcNxYAyI0x13CpPPn+kMjl+hplXMHITQ==", + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", + "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", "dev": true, "requires": { "buffer-from": "^1.0.0", @@ -4023,9 +4030,9 @@ "dev": true }, "terser": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.1.2.tgz", - "integrity": "sha512-jvNoEQSPXJdssFwqPSgWjsOrb+ELoE+ILpHPKXC83tIxOlh2U75F1KuB2luLD/3a6/7K3Vw5pDn+hvu0C4AzSw==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.3.1.tgz", + "integrity": "sha512-pnzH6dnFEsR2aa2SJaKb1uSCl3QmIsJ8dEkj0Fky+2AwMMcC9doMqLOQIH6wVTEKaVfKVvLSk5qxPBEZT9mywg==", "dev": true, "requires": { "commander": "^2.20.0", @@ -4042,20 +4049,19 @@ } }, "terser-webpack-plugin": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.3.0.tgz", - "integrity": "sha512-W2YWmxPjjkUcOWa4pBEv4OP4er1aeQJlSo2UhtCFQCuRXEHjOFscO8VyWHj9JLlA0RzQb8Y2/Ta78XZvT54uGg==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.1.tgz", + "integrity": "sha512-ZXmmfiwtCLfz8WKZyYUuuHf3dMYEjg8NrjHMb0JqHVHVOSkzp3cW2/XG1fP3tRhqEqSzMwzzRQGtAPbs4Cncxg==", "dev": true, "requires": { - "cacache": "^11.3.2", - "find-cache-dir": "^2.0.0", + "cacache": "^12.0.2", + "find-cache-dir": "^2.1.0", "is-wsl": "^1.1.0", - "loader-utils": "^1.2.3", "schema-utils": "^1.0.0", "serialize-javascript": "^1.7.0", "source-map": "^0.6.1", - "terser": "^4.0.0", - "webpack-sources": "^1.3.0", + "terser": "^4.1.2", + "webpack-sources": "^1.4.0", "worker-farm": "^1.7.0" }, "dependencies": { @@ -4078,9 +4084,9 @@ } }, "timers-browserify": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.10.tgz", - "integrity": "sha512-YvC1SV1XdOUaL6gx5CoGroT3Gu49pK9+TZ38ErPldOWW4j49GI1HKs9DV+KGq/w6y+LZ72W1c8cKz2vzY+qpzg==", + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.11.tgz", + "integrity": "sha512-60aV6sgJ5YEbzUdn9c8kYGIqOubPoUdqQCul3SBAsRCZ40s6Y5cMcrW4dt3/k/EsbLVJNl9n6Vz3fTc+k2GeKQ==", "dev": true, "requires": { "setimmediate": "^1.0.4" @@ -4264,9 +4270,9 @@ } }, "upath": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/upath/-/upath-1.1.2.tgz", - "integrity": "sha512-kXpym8nmDmlCBr7nKdIx8P2jNBa+pBpIUFRnKJ4dr8htyYGJFokkr2ZvERRtUN+9SY+JqXouNgUPtv6JQva/2Q==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", "dev": true }, "uri-js": { @@ -4347,34 +4353,42 @@ } }, "webpack": { - "version": "4.35.3", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.35.3.tgz", - "integrity": "sha512-xggQPwr9ILlXzz61lHzjvgoqGU08v5+Wnut19Uv3GaTtzN4xBTcwnobodrXE142EL1tOiS5WVEButooGzcQzTA==", + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.40.2.tgz", + "integrity": "sha512-5nIvteTDCUws2DVvP9Qe+JPla7kWPPIDFZv55To7IycHWZ+Z5qBdaBYPyuXWdhggTufZkQwfIK+5rKQTVovm2A==", "dev": true, "requires": { "@webassemblyjs/ast": "1.8.5", "@webassemblyjs/helper-module-context": "1.8.5", "@webassemblyjs/wasm-edit": "1.8.5", "@webassemblyjs/wasm-parser": "1.8.5", - "acorn": "^6.2.0", - "ajv": "^6.1.0", - "ajv-keywords": "^3.1.0", - "chrome-trace-event": "^1.0.0", + "acorn": "^6.2.1", + "ajv": "^6.10.2", + "ajv-keywords": "^3.4.1", + "chrome-trace-event": "^1.0.2", "enhanced-resolve": "^4.1.0", - "eslint-scope": "^4.0.0", + "eslint-scope": "^4.0.3", "json-parse-better-errors": "^1.0.2", - "loader-runner": "^2.3.0", - "loader-utils": "^1.1.0", - "memory-fs": "~0.4.1", - "micromatch": "^3.1.8", - "mkdirp": "~0.5.0", - "neo-async": "^2.5.0", - "node-libs-browser": "^2.0.0", + "loader-runner": "^2.4.0", + "loader-utils": "^1.2.3", + "memory-fs": "^0.4.1", + "micromatch": "^3.1.10", + "mkdirp": "^0.5.1", + "neo-async": "^2.6.1", + "node-libs-browser": "^2.2.1", "schema-utils": "^1.0.0", - "tapable": "^1.1.0", - "terser-webpack-plugin": "^1.1.0", - "watchpack": "^1.5.0", - "webpack-sources": "^1.3.0" + "tapable": "^1.1.3", + "terser-webpack-plugin": "^1.4.1", + "watchpack": "^1.6.0", + "webpack-sources": "^1.4.1" + }, + "dependencies": { + "tapable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", + "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", + "dev": true + } } }, "webpack-cli": { @@ -4408,9 +4422,9 @@ } }, "webpack-sources": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.3.0.tgz", - "integrity": "sha512-OiVgSrbGu7NEnEvQJJgdSFPl2qWKkWq5lHMhgiToIiN9w34EBnjYzSYs+VbL5KoYiLNtFFa7BZIKxRED3I32pA==", + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", + "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", "dev": true, "requires": { "source-list-map": "^2.0.0", diff --git a/src/React.Core/package.json b/src/React.Core/package.json index b880c4dba..7093e607d 100644 --- a/src/React.Core/package.json +++ b/src/React.Core/package.json @@ -11,7 +11,7 @@ "prop-types": "15.7.2", "react": "16.9.0", "react-dom": "16.9.0", - "webpack": "4.35.3", + "webpack": "4.40.2", "webpack-cli": "3.3.9" } } diff --git a/src/React.Sample.Webpack.CoreMvc/package-lock.json b/src/React.Sample.Webpack.CoreMvc/package-lock.json index fb67f2511..480e5cf9a 100644 --- a/src/React.Sample.Webpack.CoreMvc/package-lock.json +++ b/src/React.Sample.Webpack.CoreMvc/package-lock.json @@ -1542,15 +1542,15 @@ "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" }, "acorn": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.2.0.tgz", - "integrity": "sha512-8oe72N3WPMjA+2zVG71Ia0nXZ8DpQH+QyyHO+p06jT8eg8FGG3FbcUIi8KziHlAfheJQZeoqbvq1mQSQHXKYLw==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.3.0.tgz", + "integrity": "sha512-/czfa8BwS88b9gWQVhc8eknunSA2DoJpJyTQkhheIf5E48u1N0R4q/YxxsAeqRrmK9TQ/uYfgLDfZo91UlANIA==", "dev": true }, "ajv": { - "version": "6.10.1", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.1.tgz", - "integrity": "sha512-w1YQaVGNC6t2UCPjEawK/vo/dG8OOrVtUmhBT1uJJYxbl5kU2Tj3v6LGqBcsysN1yhuCStJCCA3GqdvKY8sqXQ==", + "version": "6.10.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz", + "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==", "dev": true, "requires": { "fast-deep-equal": "^2.0.1", @@ -1842,9 +1842,9 @@ } }, "base64-js": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz", - "integrity": "sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", + "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==", "dev": true }, "big.js": { @@ -2048,9 +2048,9 @@ "dev": true }, "cacache": { - "version": "11.3.3", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-11.3.3.tgz", - "integrity": "sha512-p8WcneCytvzPxhDvYp31PD039vi77I12W+/KfR9S8AZbaiARFBCpsPJS+9uhWfeBfeAtW7o/4vt3MUqLkbY6nA==", + "version": "12.0.3", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.3.tgz", + "integrity": "sha512-kqdmfXEGFepesTuROHMs3MpFLWrPkSSpRqOw80RCflZXy/khxaArvFrQ7uJxSUduzAufc6G0g1VUCOZXxWavPw==", "dev": true, "requires": { "bluebird": "^3.5.5", @@ -2058,6 +2058,7 @@ "figgy-pudding": "^3.5.1", "glob": "^7.1.4", "graceful-fs": "^4.1.15", + "infer-owner": "^1.0.3", "lru-cache": "^5.1.1", "mississippi": "^3.0.0", "mkdirp": "^0.5.1", @@ -2115,9 +2116,9 @@ } }, "chokidar": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.6.tgz", - "integrity": "sha512-V2jUo67OKkc6ySiRpJrjlpJKl9kDuG+Xb8VgsGzb+aEouhgS1D0weyPU4lEzdAcsCAvrih2J2BqyXqHWvVLw5g==", + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", "dev": true, "requires": { "anymatch": "^2.0.0", @@ -2503,9 +2504,9 @@ "integrity": "sha512-Nt5VDyOTIIV4/nRFswoCKps1R5CD1hkiyjBE9/thNaNZILLEviVw9yWQw15+O+CpNjQKB/uvdcxFFOrSflY3Yw==" }, "cyclist": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-0.2.2.tgz", - "integrity": "sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz", + "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=", "dev": true }, "date-now": { @@ -2649,9 +2650,9 @@ "dev": true }, "elliptic": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.0.tgz", - "integrity": "sha512-eFOJTMyCYb7xtE/caJ6JJu+bhi67WCYNbkGSknu20pmM8Ke/bqOfdnZWxyoGN26JgfxTbXrsCkEw4KheCT/KGg==", + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.1.tgz", + "integrity": "sha512-xvJINNLbTeWQjrl6X+7eQCrIy/YPv5XCpKW6kB5mKvtnGILoLDcySuwomfdzt0BMdLNVnuRNTuzKNHj0bva1Cg==", "dev": true, "requires": { "bn.js": "^4.4.0", @@ -2767,9 +2768,9 @@ } }, "estraverse": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", - "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", "dev": true }, "esutils": { @@ -3968,6 +3969,12 @@ "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", "dev": true }, + "infer-owner": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", + "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", + "dev": true + }, "inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -4949,20 +4956,20 @@ "dev": true }, "parallel-transform": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.1.0.tgz", - "integrity": "sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY=", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz", + "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==", "dev": true, "requires": { - "cyclist": "~0.2.2", + "cyclist": "^1.0.1", "inherits": "^2.0.3", "readable-stream": "^2.1.5" } }, "parse-asn1": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.4.tgz", - "integrity": "sha512-Qs5duJcuvNExRfFZ99HDD3z4mAi3r9Wl/FOjEOijlxwCZs7E7mW2vjTpgQ4J8LpTF8x5v+1Vn5UQFejmWT11aw==", + "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", @@ -5790,9 +5797,9 @@ "dev": true }, "rimraf": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", - "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", "dev": true, "requires": { "glob": "^7.1.3" @@ -5858,9 +5865,9 @@ "dev": true }, "serialize-javascript": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.7.0.tgz", - "integrity": "sha512-ke8UG8ulpFOxO8f8gRYabHQe/ZntKlcig2Mp+8+URDP1D8vJZ0KUt7LYo07q25Z/+JVSgpr/cui9PIp5H6/+nA==", + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.9.1.tgz", + "integrity": "sha512-0Vb/54WJ6k5v8sSWN09S0ora+Hnr+cX40r9F170nT+mSkaxltoE/7R3OrIdBSUv1OoiobH1QoWQbCnAO+e8J1A==", "dev": true }, "set-blocking": { @@ -6065,9 +6072,9 @@ } }, "source-map-support": { - "version": "0.5.12", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.12.tgz", - "integrity": "sha512-4h2Pbvyy15EE02G+JOZpUCmqWJuqrs+sEkzewTm++BPi7Hvn/HwcqLAcNxYAyI0x13CpPPn+kMjl+hplXMHITQ==", + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", + "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", "dev": true, "requires": { "buffer-from": "^1.0.0", @@ -6317,9 +6324,9 @@ "dev": true }, "terser": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.1.2.tgz", - "integrity": "sha512-jvNoEQSPXJdssFwqPSgWjsOrb+ELoE+ILpHPKXC83tIxOlh2U75F1KuB2luLD/3a6/7K3Vw5pDn+hvu0C4AzSw==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.3.1.tgz", + "integrity": "sha512-pnzH6dnFEsR2aa2SJaKb1uSCl3QmIsJ8dEkj0Fky+2AwMMcC9doMqLOQIH6wVTEKaVfKVvLSk5qxPBEZT9mywg==", "dev": true, "requires": { "commander": "^2.20.0", @@ -6336,53 +6343,53 @@ } }, "terser-webpack-plugin": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.3.0.tgz", - "integrity": "sha512-W2YWmxPjjkUcOWa4pBEv4OP4er1aeQJlSo2UhtCFQCuRXEHjOFscO8VyWHj9JLlA0RzQb8Y2/Ta78XZvT54uGg==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.1.tgz", + "integrity": "sha512-ZXmmfiwtCLfz8WKZyYUuuHf3dMYEjg8NrjHMb0JqHVHVOSkzp3cW2/XG1fP3tRhqEqSzMwzzRQGtAPbs4Cncxg==", "dev": true, "requires": { - "cacache": "^11.3.2", - "find-cache-dir": "^2.0.0", + "cacache": "^12.0.2", + "find-cache-dir": "^2.1.0", "is-wsl": "^1.1.0", - "loader-utils": "^1.2.3", "schema-utils": "^1.0.0", "serialize-javascript": "^1.7.0", "source-map": "^0.6.1", - "terser": "^4.0.0", - "webpack-sources": "^1.3.0", + "terser": "^4.1.2", + "webpack-sources": "^1.4.0", "worker-farm": "^1.7.0" }, "dependencies": { - "big.js": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", - "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", - "dev": true - }, - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "find-cache-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", + "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", "dev": true, "requires": { - "minimist": "^1.2.0" + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" } }, - "loader-utils": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz", - "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==", + "make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", "dev": true, "requires": { - "big.js": "^5.2.2", - "emojis-list": "^2.0.0", - "json5": "^1.0.1" + "pify": "^4.0.1", + "semver": "^5.6.0" } }, - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true }, "source-map": { @@ -6445,9 +6452,9 @@ } }, "timers-browserify": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.10.tgz", - "integrity": "sha512-YvC1SV1XdOUaL6gx5CoGroT3Gu49pK9+TZ38ErPldOWW4j49GI1HKs9DV+KGq/w6y+LZ72W1c8cKz2vzY+qpzg==", + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.11.tgz", + "integrity": "sha512-60aV6sgJ5YEbzUdn9c8kYGIqOubPoUdqQCul3SBAsRCZ40s6Y5cMcrW4dt3/k/EsbLVJNl9n6Vz3fTc+k2GeKQ==", "dev": true, "requires": { "setimmediate": "^1.0.4" @@ -6687,9 +6694,9 @@ } }, "upath": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/upath/-/upath-1.1.2.tgz", - "integrity": "sha512-kXpym8nmDmlCBr7nKdIx8P2jNBa+pBpIUFRnKJ4dr8htyYGJFokkr2ZvERRtUN+9SY+JqXouNgUPtv6JQva/2Q==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", "dev": true }, "uri-js": { @@ -6782,34 +6789,74 @@ } }, "webpack": { - "version": "4.35.3", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.35.3.tgz", - "integrity": "sha512-xggQPwr9ILlXzz61lHzjvgoqGU08v5+Wnut19Uv3GaTtzN4xBTcwnobodrXE142EL1tOiS5WVEButooGzcQzTA==", + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.40.2.tgz", + "integrity": "sha512-5nIvteTDCUws2DVvP9Qe+JPla7kWPPIDFZv55To7IycHWZ+Z5qBdaBYPyuXWdhggTufZkQwfIK+5rKQTVovm2A==", "dev": true, "requires": { "@webassemblyjs/ast": "1.8.5", "@webassemblyjs/helper-module-context": "1.8.5", "@webassemblyjs/wasm-edit": "1.8.5", "@webassemblyjs/wasm-parser": "1.8.5", - "acorn": "^6.2.0", - "ajv": "^6.1.0", - "ajv-keywords": "^3.1.0", - "chrome-trace-event": "^1.0.0", + "acorn": "^6.2.1", + "ajv": "^6.10.2", + "ajv-keywords": "^3.4.1", + "chrome-trace-event": "^1.0.2", "enhanced-resolve": "^4.1.0", - "eslint-scope": "^4.0.0", + "eslint-scope": "^4.0.3", "json-parse-better-errors": "^1.0.2", - "loader-runner": "^2.3.0", - "loader-utils": "^1.1.0", - "memory-fs": "~0.4.1", - "micromatch": "^3.1.8", - "mkdirp": "~0.5.0", - "neo-async": "^2.5.0", - "node-libs-browser": "^2.0.0", + "loader-runner": "^2.4.0", + "loader-utils": "^1.2.3", + "memory-fs": "^0.4.1", + "micromatch": "^3.1.10", + "mkdirp": "^0.5.1", + "neo-async": "^2.6.1", + "node-libs-browser": "^2.2.1", "schema-utils": "^1.0.0", - "tapable": "^1.1.0", - "terser-webpack-plugin": "^1.1.0", - "watchpack": "^1.5.0", - "webpack-sources": "^1.3.0" + "tapable": "^1.1.3", + "terser-webpack-plugin": "^1.4.1", + "watchpack": "^1.6.0", + "webpack-sources": "^1.4.1" + }, + "dependencies": { + "big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true + }, + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "loader-utils": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz", + "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^2.0.0", + "json5": "^1.0.1" + } + }, + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + }, + "tapable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", + "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", + "dev": true + } } }, "webpack-cli": { @@ -6875,9 +6922,9 @@ } }, "webpack-sources": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.3.0.tgz", - "integrity": "sha512-OiVgSrbGu7NEnEvQJJgdSFPl2qWKkWq5lHMhgiToIiN9w34EBnjYzSYs+VbL5KoYiLNtFFa7BZIKxRED3I32pA==", + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", + "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", "dev": true, "requires": { "source-list-map": "^2.0.0", diff --git a/src/React.Sample.Webpack.CoreMvc/package.json b/src/React.Sample.Webpack.CoreMvc/package.json index 05ef4fcd9..89c2e533a 100644 --- a/src/React.Sample.Webpack.CoreMvc/package.json +++ b/src/React.Sample.Webpack.CoreMvc/package.json @@ -28,7 +28,7 @@ "@babel/preset-react": "7.0.0", "babel-loader": "8.0.6", "babel-runtime": "6.26.0", - "webpack": "4.35.3", + "webpack": "4.40.2", "webpack-cli": "3.3.9" } } From aef7459f3c7fa2eaca632ab7a0778189507d0442 Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Sat, 21 Sep 2019 22:22:01 -0700 Subject: [PATCH 288/530] 5.1.0 --- build.proj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.proj b/build.proj index 0b630287c..7f84ad4bd 100644 --- a/build.proj +++ b/build.proj @@ -10,7 +10,7 @@ of patent rights can be found in the PATENTS file in the same directory. 5 - 0 + 1 0 0 http://reactjs.net/packages/ From efa667b82e1a92fe3f9bfbf4f52cd84e5748863e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 21 Sep 2019 22:45:58 -0700 Subject: [PATCH 289/530] Bump nokogiri from 1.7.1 to 1.10.4 in /site/jekyll (#911) Bumps [nokogiri](https://github.com/sparklemotion/nokogiri) from 1.7.1 to 1.10.4. - [Release notes](https://github.com/sparklemotion/nokogiri/releases) - [Changelog](https://github.com/sparklemotion/nokogiri/blob/master/CHANGELOG.md) - [Commits](https://github.com/sparklemotion/nokogiri/compare/v1.7.1...v1.10.4) Signed-off-by: dependabot[bot] --- site/jekyll/Gemfile.lock | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/site/jekyll/Gemfile.lock b/site/jekyll/Gemfile.lock index b4e661a58..6145bde92 100644 --- a/site/jekyll/Gemfile.lock +++ b/site/jekyll/Gemfile.lock @@ -39,12 +39,12 @@ GEM rb-inotify (>= 0.9) rb-kqueue (>= 0.2) maruku (0.7.0) - mini_portile2 (2.1.0) + mini_portile2 (2.4.0) multi_json (1.12.1) - nokogiri (1.7.1) - mini_portile2 (~> 2.1.0) - nokogiri (1.7.1-x64-mingw32) - mini_portile2 (~> 2.1.0) + nokogiri (1.10.4) + mini_portile2 (~> 2.4.0) + nokogiri (1.10.4-x64-mingw32) + mini_portile2 (~> 2.4.0) nokogumbo (1.4.10) nokogiri parslet (1.5.0) From 287a5196687009337c829eafc31ca8befbe92501 Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Sat, 21 Sep 2019 23:03:56 -0700 Subject: [PATCH 290/530] Downgrade tutorial to .NETCore 2.2, since 3.0 is not released (#912) --- tutorial-code/Startup.cs | 25 ++++++++++++++++++------- tutorial-code/tutorial-code.csproj | 8 ++++++-- tutorial-code/web.config | 13 +++++-------- 3 files changed, 29 insertions(+), 17 deletions(-) diff --git a/tutorial-code/Startup.cs b/tutorial-code/Startup.cs index baafa8e89..0a8f041aa 100644 --- a/tutorial-code/Startup.cs +++ b/tutorial-code/Startup.cs @@ -18,7 +18,7 @@ namespace ReactDemo { public class Startup { - public Startup(IWebHostEnvironment env) + public Startup(IHostingEnvironment env) { var builder = new ConfigurationBuilder() .SetBasePath(env.ContentRootPath) @@ -43,9 +43,20 @@ public void ConfigureServices(IServiceCollection services) } // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. - public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerFactory loggerFactory) + public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) { - app.UseDeveloperExceptionPage(); + loggerFactory.AddConsole(Configuration.GetSection("Logging")); + loggerFactory.AddDebug(); + + if (env.IsDevelopment()) + { + app.UseDeveloperExceptionPage(); + app.UseBrowserLink(); + } + else + { + app.UseExceptionHandler("/Home/Error"); + } // Initialise ReactJS.NET. Must be before static files. app.UseReact(config => @@ -74,11 +85,11 @@ public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerF app.UseStaticFiles(); - app.UseRouting(); - - app.UseEndpoints(endpoints => + app.UseMvc(routes => { - endpoints.MapControllerRoute("default", "{controller=Home}/{action=Index}/{id?}"); + routes.MapRoute( + name: "default", + template: "{controller=Home}/{action=Index}/{id?}"); }); } } diff --git a/tutorial-code/tutorial-code.csproj b/tutorial-code/tutorial-code.csproj index de01e899a..b5355b25a 100644 --- a/tutorial-code/tutorial-code.csproj +++ b/tutorial-code/tutorial-code.csproj @@ -1,6 +1,6 @@  - netcoreapp3.0 + netcoreapp2.2 true tutorial-code Exe @@ -20,7 +20,11 @@ - + + + + + diff --git a/tutorial-code/web.config b/tutorial-code/web.config index a2cf1fe26..dc0514fca 100644 --- a/tutorial-code/web.config +++ b/tutorial-code/web.config @@ -1,17 +1,14 @@  + + - + - - - - - - + - \ No newline at end of file + From 9d6d5fdbdae44aa5530c17efae11a9bd8ead269d Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Sun, 22 Sep 2019 05:21:40 +0000 Subject: [PATCH 291/530] Update dependency Microsoft.AspNetCore.Mvc.Core to v2.2.5 --- src/React.Router/React.Router.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/React.Router/React.Router.csproj b/src/React.Router/React.Router.csproj index b412e317c..7a1806834 100644 --- a/src/React.Router/React.Router.csproj +++ b/src/React.Router/React.Router.csproj @@ -35,7 +35,7 @@ - + From 5e54b0133baf8fe8e314029de1f377d686fd2014 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Mon, 23 Sep 2019 21:37:08 +0000 Subject: [PATCH 292/530] Update dependency @babel/standalone to v7.6.2 --- src/React.Core/package-lock.json | 6 +++--- src/React.Core/package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/React.Core/package-lock.json b/src/React.Core/package-lock.json index dc125101e..6229207f4 100644 --- a/src/React.Core/package-lock.json +++ b/src/React.Core/package-lock.json @@ -131,9 +131,9 @@ "dev": true }, "@babel/standalone": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/@babel/standalone/-/standalone-7.6.0.tgz", - "integrity": "sha512-bOZnW6amPLr2296mPl+cHCAG4GNo1NTmoi7cURzLtb08Er1nM9QpT6RecYR/UNlYOOvzUWUYlUTKrKJs9tpbcw==", + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/@babel/standalone/-/standalone-7.6.2.tgz", + "integrity": "sha512-bfrGoJA6bHD3zJdTM8DANDKM2MjuhH7SLTeHuQMyfCn4VQgJlwe9MByqiTTKWZ1dAD0HrC7WDaL60WV+9HUXnQ==", "dev": true }, "@babel/template": { diff --git a/src/React.Core/package.json b/src/React.Core/package.json index 7093e607d..1210032e3 100644 --- a/src/React.Core/package.json +++ b/src/React.Core/package.json @@ -7,7 +7,7 @@ }, "devDependencies": { "@babel/core": "7.4.5", - "@babel/standalone": "7.6.0", + "@babel/standalone": "7.6.2", "prop-types": "15.7.2", "react": "16.9.0", "react-dom": "16.9.0", From a1944f00049bdc909525eb9178ae1b4277bcc364 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Mon, 23 Sep 2019 23:52:36 +0000 Subject: [PATCH 293/530] Update babel monorepo --- src/React.Core/package-lock.json | 135 ++-- src/React.Core/package.json | 2 +- .../package-lock.json | 621 ++++++++++-------- src/React.Sample.Webpack.CoreMvc/package.json | 8 +- 4 files changed, 401 insertions(+), 365 deletions(-) diff --git a/src/React.Core/package-lock.json b/src/React.Core/package-lock.json index 6229207f4..8327e1028 100644 --- a/src/React.Core/package-lock.json +++ b/src/React.Core/package-lock.json @@ -5,31 +5,31 @@ "requires": true, "dependencies": { "@babel/code-frame": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz", - "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==", + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz", + "integrity": "sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw==", "dev": true, "requires": { "@babel/highlight": "^7.0.0" } }, "@babel/core": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.4.5.tgz", - "integrity": "sha512-OvjIh6aqXtlsA8ujtGKfC7LYWksYSX8yQcM8Ay3LuvVeQ63lcOKgoZWVqcpFwkd29aYU9rVx7jxhfhiEDV9MZA==", + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.6.2.tgz", + "integrity": "sha512-l8zto/fuoZIbncm+01p8zPSDZu/VuuJhAfA7d/AbzM09WR7iVhavvfNDYCNpo1VvLk6E6xgAoP9P+/EMJHuRkQ==", "dev": true, "requires": { - "@babel/code-frame": "^7.0.0", - "@babel/generator": "^7.4.4", - "@babel/helpers": "^7.4.4", - "@babel/parser": "^7.4.5", - "@babel/template": "^7.4.4", - "@babel/traverse": "^7.4.5", - "@babel/types": "^7.4.4", + "@babel/code-frame": "^7.5.5", + "@babel/generator": "^7.6.2", + "@babel/helpers": "^7.6.2", + "@babel/parser": "^7.6.2", + "@babel/template": "^7.6.0", + "@babel/traverse": "^7.6.2", + "@babel/types": "^7.6.0", "convert-source-map": "^1.1.0", "debug": "^4.1.0", "json5": "^2.1.0", - "lodash": "^4.17.11", + "lodash": "^4.17.13", "resolve": "^1.3.2", "semver": "^5.4.1", "source-map": "^0.5.0" @@ -45,24 +45,23 @@ } }, "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true } } }, "@babel/generator": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.4.4.tgz", - "integrity": "sha512-53UOLK6TVNqKxf7RUh8NE851EHRxOOeVXKbK2bivdb+iziMyk03Sr4eaE9OELCbyZAAafAKPDwF2TPUES5QbxQ==", + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.6.2.tgz", + "integrity": "sha512-j8iHaIW4gGPnViaIHI7e9t/Hl8qLjERI6DcV9kEpAIDJsAOrcnXqRS7t+QbhL76pwbtqP+QCQLL0z1CyVmtjjQ==", "dev": true, "requires": { - "@babel/types": "^7.4.4", + "@babel/types": "^7.6.0", "jsesc": "^2.5.1", - "lodash": "^4.17.11", - "source-map": "^0.5.0", - "trim-right": "^1.0.1" + "lodash": "^4.17.13", + "source-map": "^0.5.0" } }, "@babel/helper-function-name": { @@ -95,20 +94,20 @@ } }, "@babel/helpers": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.4.4.tgz", - "integrity": "sha512-igczbR/0SeuPR8RFfC7tGrbdTbFL3QTvH6D+Z6zNxnTe//GyqmtHmDkzrqDmyZ3eSwPqB/LhyKoU5DXsp+Vp2A==", + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.6.2.tgz", + "integrity": "sha512-3/bAUL8zZxYs1cdX2ilEE0WobqbCmKWr/889lf2SS0PpDcpEIY8pb1CCyz0pEcX3pEb+MCbks1jIokz2xLtGTA==", "dev": true, "requires": { - "@babel/template": "^7.4.4", - "@babel/traverse": "^7.4.4", - "@babel/types": "^7.4.4" + "@babel/template": "^7.6.0", + "@babel/traverse": "^7.6.2", + "@babel/types": "^7.6.0" } }, "@babel/highlight": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0.tgz", - "integrity": "sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==", + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.5.0.tgz", + "integrity": "sha512-7dV4eu9gBxoM0dAnj/BCFDW9LFU0zvTrkq0ugM7pnHEgguOEeOz1so2ZghEdzviYzQEED0r4EAgpsBChKy1TRQ==", "dev": true, "requires": { "chalk": "^2.0.0", @@ -125,9 +124,9 @@ } }, "@babel/parser": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.4.5.tgz", - "integrity": "sha512-9mUqkL1FF5T7f0WDFfAoDdiMVPWsdD1gZYzSnaXsxUCUqzuch/8of9G3VUSNiZmMBoRxT3neyVsqeiL/ZPcjew==", + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.6.2.tgz", + "integrity": "sha512-mdFqWrSPCmikBoaBYMuBulzTIKuXVPtEISFbRRVNwMWpCms/hmE2kRq0bblUHaNRKrjRlmVbx1sDHmjmRgD2Xg==", "dev": true }, "@babel/standalone": { @@ -137,31 +136,31 @@ "dev": true }, "@babel/template": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.4.4.tgz", - "integrity": "sha512-CiGzLN9KgAvgZsnivND7rkA+AeJ9JB0ciPOD4U59GKbQP2iQl+olF1l76kJOupqidozfZ32ghwBEJDhnk9MEcw==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.6.0.tgz", + "integrity": "sha512-5AEH2EXD8euCk446b7edmgFdub/qfH1SN6Nii3+fyXP807QRx9Q73A2N5hNwRRslC2H9sNzaFhsPubkS4L8oNQ==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", - "@babel/parser": "^7.4.4", - "@babel/types": "^7.4.4" + "@babel/parser": "^7.6.0", + "@babel/types": "^7.6.0" } }, "@babel/traverse": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.4.5.tgz", - "integrity": "sha512-Vc+qjynwkjRmIFGxy0KYoPj4FdVDxLej89kMHFsWScq999uX+pwcX4v9mWRjW0KcAYTPAuVQl2LKP1wEVLsp+A==", + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.6.2.tgz", + "integrity": "sha512-8fRE76xNwNttVEF2TwxJDGBLWthUkHWSldmfuBzVRmEDWOtu4XdINTgN7TDWzuLg4bbeIMLvfMFD9we5YcWkRQ==", "dev": true, "requires": { - "@babel/code-frame": "^7.0.0", - "@babel/generator": "^7.4.4", + "@babel/code-frame": "^7.5.5", + "@babel/generator": "^7.6.2", "@babel/helper-function-name": "^7.1.0", "@babel/helper-split-export-declaration": "^7.4.4", - "@babel/parser": "^7.4.5", - "@babel/types": "^7.4.4", + "@babel/parser": "^7.6.2", + "@babel/types": "^7.6.0", "debug": "^4.1.0", "globals": "^11.1.0", - "lodash": "^4.17.11" + "lodash": "^4.17.13" }, "dependencies": { "debug": { @@ -174,21 +173,21 @@ } }, "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true } } }, "@babel/types": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.4.4.tgz", - "integrity": "sha512-dOllgYdnEFOebhkKCjzSVFqw/PmmB8pH6RGOWkY4GsboQNd47b1fBThBSwlHAq9alF9vc1M3+6oqR47R50L0tQ==", + "version": "7.6.1", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.6.1.tgz", + "integrity": "sha512-X7gdiuaCmA0uRjCmRtYJNAVCc/q+5xSgsfKJHqMN4iNLILX39677fJE1O40arPMh0TTtS9ItH67yre6c7k6t0g==", "dev": true, "requires": { "esutils": "^2.0.2", - "lodash": "^4.17.11", + "lodash": "^4.17.13", "to-fast-properties": "^2.0.0" } }, @@ -1364,9 +1363,9 @@ "dev": true }, "esutils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", - "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true }, "events": { @@ -2726,9 +2725,9 @@ } }, "lodash": { - "version": "4.17.14", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.14.tgz", - "integrity": "sha512-mmKYbW3GLuJeX+iGP+Y7Gp1AiGHGbXHCOh/jZmrawMmsE7MS4znI3RL2FsjbqOyMayHInjOeykW7PEajUk1/xw==", + "version": "4.17.15", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", + "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", "dev": true }, "loose-envify": { @@ -3545,9 +3544,9 @@ "dev": true }, "resolve": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.11.0.tgz", - "integrity": "sha512-WL2pBDjqT6pGUNSUzMw00o4T7If+z4H2x3Gz893WoUQ5KW8Vr9txp00ykiP16VBaZF5+j/OcXJHZ9+PCvdiDKw==", + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.12.0.tgz", + "integrity": "sha512-B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w==", "dev": true, "requires": { "path-parse": "^1.0.6" @@ -4146,12 +4145,6 @@ "repeat-string": "1.6.1" } }, - "trim-right": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", - "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", - "dev": true - }, "tslib": { "version": "1.10.0", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz", diff --git a/src/React.Core/package.json b/src/React.Core/package.json index 1210032e3..9ed61af03 100644 --- a/src/React.Core/package.json +++ b/src/React.Core/package.json @@ -6,7 +6,7 @@ "build": "webpack" }, "devDependencies": { - "@babel/core": "7.4.5", + "@babel/core": "7.6.2", "@babel/standalone": "7.6.2", "prop-types": "15.7.2", "react": "16.9.0", diff --git a/src/React.Sample.Webpack.CoreMvc/package-lock.json b/src/React.Sample.Webpack.CoreMvc/package-lock.json index 480e5cf9a..38be1e3f6 100644 --- a/src/React.Sample.Webpack.CoreMvc/package-lock.json +++ b/src/React.Sample.Webpack.CoreMvc/package-lock.json @@ -5,67 +5,44 @@ "requires": true, "dependencies": { "@babel/code-frame": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz", - "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==", + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz", + "integrity": "sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw==", "dev": true, "requires": { "@babel/highlight": "^7.0.0" } }, "@babel/core": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.4.5.tgz", - "integrity": "sha512-OvjIh6aqXtlsA8ujtGKfC7LYWksYSX8yQcM8Ay3LuvVeQ63lcOKgoZWVqcpFwkd29aYU9rVx7jxhfhiEDV9MZA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "@babel/generator": "^7.4.4", - "@babel/helpers": "^7.4.4", - "@babel/parser": "^7.4.5", - "@babel/template": "^7.4.4", - "@babel/traverse": "^7.4.5", - "@babel/types": "^7.4.4", + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.6.2.tgz", + "integrity": "sha512-l8zto/fuoZIbncm+01p8zPSDZu/VuuJhAfA7d/AbzM09WR7iVhavvfNDYCNpo1VvLk6E6xgAoP9P+/EMJHuRkQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.5.5", + "@babel/generator": "^7.6.2", + "@babel/helpers": "^7.6.2", + "@babel/parser": "^7.6.2", + "@babel/template": "^7.6.0", + "@babel/traverse": "^7.6.2", + "@babel/types": "^7.6.0", "convert-source-map": "^1.1.0", "debug": "^4.1.0", "json5": "^2.1.0", - "lodash": "^4.17.11", + "lodash": "^4.17.13", "resolve": "^1.3.2", "semver": "^5.4.1", "source-map": "^0.5.0" }, "dependencies": { - "@babel/parser": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.4.5.tgz", - "integrity": "sha512-9mUqkL1FF5T7f0WDFfAoDdiMVPWsdD1gZYzSnaXsxUCUqzuch/8of9G3VUSNiZmMBoRxT3neyVsqeiL/ZPcjew==", - "dev": true - }, - "@babel/traverse": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.4.5.tgz", - "integrity": "sha512-Vc+qjynwkjRmIFGxy0KYoPj4FdVDxLej89kMHFsWScq999uX+pwcX4v9mWRjW0KcAYTPAuVQl2LKP1wEVLsp+A==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "@babel/generator": "^7.4.4", - "@babel/helper-function-name": "^7.1.0", - "@babel/helper-split-export-declaration": "^7.4.4", - "@babel/parser": "^7.4.5", - "@babel/types": "^7.4.4", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.11" - } - }, "@babel/types": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.4.4.tgz", - "integrity": "sha512-dOllgYdnEFOebhkKCjzSVFqw/PmmB8pH6RGOWkY4GsboQNd47b1fBThBSwlHAq9alF9vc1M3+6oqR47R50L0tQ==", + "version": "7.6.1", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.6.1.tgz", + "integrity": "sha512-X7gdiuaCmA0uRjCmRtYJNAVCc/q+5xSgsfKJHqMN4iNLILX39677fJE1O40arPMh0TTtS9ItH67yre6c7k6t0g==", "dev": true, "requires": { "esutils": "^2.0.2", - "lodash": "^4.17.11", + "lodash": "^4.17.13", "to-fast-properties": "^2.0.0" } }, @@ -94,34 +71,33 @@ "dev": true }, "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true } } }, "@babel/generator": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.4.4.tgz", - "integrity": "sha512-53UOLK6TVNqKxf7RUh8NE851EHRxOOeVXKbK2bivdb+iziMyk03Sr4eaE9OELCbyZAAafAKPDwF2TPUES5QbxQ==", + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.6.2.tgz", + "integrity": "sha512-j8iHaIW4gGPnViaIHI7e9t/Hl8qLjERI6DcV9kEpAIDJsAOrcnXqRS7t+QbhL76pwbtqP+QCQLL0z1CyVmtjjQ==", "dev": true, "requires": { - "@babel/types": "^7.4.4", + "@babel/types": "^7.6.0", "jsesc": "^2.5.1", - "lodash": "^4.17.11", - "source-map": "^0.5.0", - "trim-right": "^1.0.1" + "lodash": "^4.17.13", + "source-map": "^0.5.0" }, "dependencies": { "@babel/types": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.4.4.tgz", - "integrity": "sha512-dOllgYdnEFOebhkKCjzSVFqw/PmmB8pH6RGOWkY4GsboQNd47b1fBThBSwlHAq9alF9vc1M3+6oqR47R50L0tQ==", + "version": "7.6.1", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.6.1.tgz", + "integrity": "sha512-X7gdiuaCmA0uRjCmRtYJNAVCc/q+5xSgsfKJHqMN4iNLILX39677fJE1O40arPMh0TTtS9ItH67yre6c7k6t0g==", "dev": true, "requires": { "esutils": "^2.0.2", - "lodash": "^4.17.11", + "lodash": "^4.17.13", "to-fast-properties": "^2.0.0" } } @@ -186,51 +162,51 @@ }, "dependencies": { "@babel/types": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.4.4.tgz", - "integrity": "sha512-dOllgYdnEFOebhkKCjzSVFqw/PmmB8pH6RGOWkY4GsboQNd47b1fBThBSwlHAq9alF9vc1M3+6oqR47R50L0tQ==", + "version": "7.6.1", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.6.1.tgz", + "integrity": "sha512-X7gdiuaCmA0uRjCmRtYJNAVCc/q+5xSgsfKJHqMN4iNLILX39677fJE1O40arPMh0TTtS9ItH67yre6c7k6t0g==", "dev": true, "requires": { "esutils": "^2.0.2", - "lodash": "^4.17.11", + "lodash": "^4.17.13", "to-fast-properties": "^2.0.0" } } } }, "@babel/helper-create-class-features-plugin": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.4.4.tgz", - "integrity": "sha512-UbBHIa2qeAGgyiNR9RszVF7bUHEdgS4JAUNT8SiqrAN6YJVxlOxeLr5pBzb5kan302dejJ9nla4RyKcR1XT6XA==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.6.0.tgz", + "integrity": "sha512-O1QWBko4fzGju6VoVvrZg0RROCVifcLxiApnGP3OWfWzvxRZFCoBD81K5ur5e3bVY2Vf/5rIJm8cqPKn8HUJng==", "dev": true, "requires": { "@babel/helper-function-name": "^7.1.0", - "@babel/helper-member-expression-to-functions": "^7.0.0", + "@babel/helper-member-expression-to-functions": "^7.5.5", "@babel/helper-optimise-call-expression": "^7.0.0", "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-replace-supers": "^7.4.4", + "@babel/helper-replace-supers": "^7.5.5", "@babel/helper-split-export-declaration": "^7.4.4" } }, "@babel/helper-define-map": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.4.4.tgz", - "integrity": "sha512-IX3Ln8gLhZpSuqHJSnTNBWGDE9kdkTEWl21A/K7PQ00tseBwbqCHTvNLHSBd9M0R5rER4h5Rsvj9vw0R5SieBg==", + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.5.5.tgz", + "integrity": "sha512-fTfxx7i0B5NJqvUOBBGREnrqbTxRh7zinBANpZXAVDlsZxYdclDp467G1sQ8VZYMnAURY3RpBUAgOYT9GfzHBg==", "dev": true, "requires": { "@babel/helper-function-name": "^7.1.0", - "@babel/types": "^7.4.4", - "lodash": "^4.17.11" + "@babel/types": "^7.5.5", + "lodash": "^4.17.13" }, "dependencies": { "@babel/types": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.4.4.tgz", - "integrity": "sha512-dOllgYdnEFOebhkKCjzSVFqw/PmmB8pH6RGOWkY4GsboQNd47b1fBThBSwlHAq9alF9vc1M3+6oqR47R50L0tQ==", + "version": "7.6.1", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.6.1.tgz", + "integrity": "sha512-X7gdiuaCmA0uRjCmRtYJNAVCc/q+5xSgsfKJHqMN4iNLILX39677fJE1O40arPMh0TTtS9ItH67yre6c7k6t0g==", "dev": true, "requires": { "esutils": "^2.0.2", - "lodash": "^4.17.11", + "lodash": "^4.17.13", "to-fast-properties": "^2.0.0" } } @@ -276,25 +252,38 @@ }, "dependencies": { "@babel/types": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.4.4.tgz", - "integrity": "sha512-dOllgYdnEFOebhkKCjzSVFqw/PmmB8pH6RGOWkY4GsboQNd47b1fBThBSwlHAq9alF9vc1M3+6oqR47R50L0tQ==", + "version": "7.6.1", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.6.1.tgz", + "integrity": "sha512-X7gdiuaCmA0uRjCmRtYJNAVCc/q+5xSgsfKJHqMN4iNLILX39677fJE1O40arPMh0TTtS9ItH67yre6c7k6t0g==", "dev": true, "requires": { "esutils": "^2.0.2", - "lodash": "^4.17.11", + "lodash": "^4.17.13", "to-fast-properties": "^2.0.0" } } } }, "@babel/helper-member-expression-to-functions": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.0.0.tgz", - "integrity": "sha512-avo+lm/QmZlv27Zsi0xEor2fKcqWG56D5ae9dzklpIaY7cQMK5N8VSpaNVPPagiqmy7LrEjK1IWdGMOqPu5csg==", + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.5.5.tgz", + "integrity": "sha512-5qZ3D1uMclSNqYcXqiHoA0meVdv+xUEex9em2fqMnrk/scphGlGgg66zjMrPJESPwrFJ6sbfFQYUSa0Mz7FabA==", "dev": true, "requires": { - "@babel/types": "^7.0.0" + "@babel/types": "^7.5.5" + }, + "dependencies": { + "@babel/types": { + "version": "7.6.1", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.6.1.tgz", + "integrity": "sha512-X7gdiuaCmA0uRjCmRtYJNAVCc/q+5xSgsfKJHqMN4iNLILX39677fJE1O40arPMh0TTtS9ItH67yre6c7k6t0g==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/helper-module-imports": { @@ -306,27 +295,27 @@ } }, "@babel/helper-module-transforms": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.4.4.tgz", - "integrity": "sha512-3Z1yp8TVQf+B4ynN7WoHPKS8EkdTbgAEy0nU0rs/1Kw4pDgmvYH3rz3aI11KgxKCba2cn7N+tqzV1mY2HMN96w==", + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.5.5.tgz", + "integrity": "sha512-jBeCvETKuJqeiaCdyaheF40aXnnU1+wkSiUs/IQg3tB85up1LyL8x77ClY8qJpuRJUcXQo+ZtdNESmZl4j56Pw==", "dev": true, "requires": { "@babel/helper-module-imports": "^7.0.0", "@babel/helper-simple-access": "^7.1.0", "@babel/helper-split-export-declaration": "^7.4.4", "@babel/template": "^7.4.4", - "@babel/types": "^7.4.4", - "lodash": "^4.17.11" + "@babel/types": "^7.5.5", + "lodash": "^4.17.13" }, "dependencies": { "@babel/types": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.4.4.tgz", - "integrity": "sha512-dOllgYdnEFOebhkKCjzSVFqw/PmmB8pH6RGOWkY4GsboQNd47b1fBThBSwlHAq9alF9vc1M3+6oqR47R50L0tQ==", + "version": "7.6.1", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.6.1.tgz", + "integrity": "sha512-X7gdiuaCmA0uRjCmRtYJNAVCc/q+5xSgsfKJHqMN4iNLILX39677fJE1O40arPMh0TTtS9ItH67yre6c7k6t0g==", "dev": true, "requires": { "esutils": "^2.0.2", - "lodash": "^4.17.11", + "lodash": "^4.17.13", "to-fast-properties": "^2.0.0" } } @@ -348,12 +337,12 @@ "dev": true }, "@babel/helper-regex": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.4.4.tgz", - "integrity": "sha512-Y5nuB/kESmR3tKjU8Nkn1wMGEx1tjJX076HBMeL3XLQCu6vA/YRzuTW0bbb+qRnXvQGn+d6Rx953yffl8vEy7Q==", + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.5.5.tgz", + "integrity": "sha512-CkCYQLkfkiugbRDO8eZn6lRuR8kzZoGXCg3149iTk5se7g6qykSpy3+hELSwquhu+TgHn8nkLiBwHvNX8Hofcw==", "dev": true, "requires": { - "lodash": "^4.17.11" + "lodash": "^4.17.13" } }, "@babel/helper-remap-async-to-generator": { @@ -370,25 +359,25 @@ } }, "@babel/helper-replace-supers": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.4.4.tgz", - "integrity": "sha512-04xGEnd+s01nY1l15EuMS1rfKktNF+1CkKmHoErDppjAAZL+IUBZpzT748x262HF7fibaQPhbvWUl5HeSt1EXg==", + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.5.5.tgz", + "integrity": "sha512-XvRFWrNnlsow2u7jXDuH4jDDctkxbS7gXssrP4q2nUD606ukXHRvydj346wmNg+zAgpFx4MWf4+usfC93bElJg==", "dev": true, "requires": { - "@babel/helper-member-expression-to-functions": "^7.0.0", + "@babel/helper-member-expression-to-functions": "^7.5.5", "@babel/helper-optimise-call-expression": "^7.0.0", - "@babel/traverse": "^7.4.4", - "@babel/types": "^7.4.4" + "@babel/traverse": "^7.5.5", + "@babel/types": "^7.5.5" }, "dependencies": { "@babel/types": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.4.4.tgz", - "integrity": "sha512-dOllgYdnEFOebhkKCjzSVFqw/PmmB8pH6RGOWkY4GsboQNd47b1fBThBSwlHAq9alF9vc1M3+6oqR47R50L0tQ==", + "version": "7.6.1", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.6.1.tgz", + "integrity": "sha512-X7gdiuaCmA0uRjCmRtYJNAVCc/q+5xSgsfKJHqMN4iNLILX39677fJE1O40arPMh0TTtS9ItH67yre6c7k6t0g==", "dev": true, "requires": { "esutils": "^2.0.2", - "lodash": "^4.17.11", + "lodash": "^4.17.13", "to-fast-properties": "^2.0.0" } } @@ -414,13 +403,13 @@ }, "dependencies": { "@babel/types": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.4.4.tgz", - "integrity": "sha512-dOllgYdnEFOebhkKCjzSVFqw/PmmB8pH6RGOWkY4GsboQNd47b1fBThBSwlHAq9alF9vc1M3+6oqR47R50L0tQ==", + "version": "7.6.1", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.6.1.tgz", + "integrity": "sha512-X7gdiuaCmA0uRjCmRtYJNAVCc/q+5xSgsfKJHqMN4iNLILX39677fJE1O40arPMh0TTtS9ItH67yre6c7k6t0g==", "dev": true, "requires": { "esutils": "^2.0.2", - "lodash": "^4.17.11", + "lodash": "^4.17.13", "to-fast-properties": "^2.0.0" } } @@ -439,46 +428,46 @@ }, "dependencies": { "@babel/types": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.4.4.tgz", - "integrity": "sha512-dOllgYdnEFOebhkKCjzSVFqw/PmmB8pH6RGOWkY4GsboQNd47b1fBThBSwlHAq9alF9vc1M3+6oqR47R50L0tQ==", + "version": "7.6.1", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.6.1.tgz", + "integrity": "sha512-X7gdiuaCmA0uRjCmRtYJNAVCc/q+5xSgsfKJHqMN4iNLILX39677fJE1O40arPMh0TTtS9ItH67yre6c7k6t0g==", "dev": true, "requires": { "esutils": "^2.0.2", - "lodash": "^4.17.11", + "lodash": "^4.17.13", "to-fast-properties": "^2.0.0" } } } }, "@babel/helpers": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.4.4.tgz", - "integrity": "sha512-igczbR/0SeuPR8RFfC7tGrbdTbFL3QTvH6D+Z6zNxnTe//GyqmtHmDkzrqDmyZ3eSwPqB/LhyKoU5DXsp+Vp2A==", + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.6.2.tgz", + "integrity": "sha512-3/bAUL8zZxYs1cdX2ilEE0WobqbCmKWr/889lf2SS0PpDcpEIY8pb1CCyz0pEcX3pEb+MCbks1jIokz2xLtGTA==", "dev": true, "requires": { - "@babel/template": "^7.4.4", - "@babel/traverse": "^7.4.4", - "@babel/types": "^7.4.4" + "@babel/template": "^7.6.0", + "@babel/traverse": "^7.6.2", + "@babel/types": "^7.6.0" }, "dependencies": { "@babel/types": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.4.4.tgz", - "integrity": "sha512-dOllgYdnEFOebhkKCjzSVFqw/PmmB8pH6RGOWkY4GsboQNd47b1fBThBSwlHAq9alF9vc1M3+6oqR47R50L0tQ==", + "version": "7.6.1", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.6.1.tgz", + "integrity": "sha512-X7gdiuaCmA0uRjCmRtYJNAVCc/q+5xSgsfKJHqMN4iNLILX39677fJE1O40arPMh0TTtS9ItH67yre6c7k6t0g==", "dev": true, "requires": { "esutils": "^2.0.2", - "lodash": "^4.17.11", + "lodash": "^4.17.13", "to-fast-properties": "^2.0.0" } } } }, "@babel/highlight": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0.tgz", - "integrity": "sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==", + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.5.0.tgz", + "integrity": "sha512-7dV4eu9gBxoM0dAnj/BCFDW9LFU0zvTrkq0ugM7pnHEgguOEeOz1so2ZghEdzviYzQEED0r4EAgpsBChKy1TRQ==", "dev": true, "requires": { "chalk": "^2.0.0", @@ -495,9 +484,9 @@ } }, "@babel/parser": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.4.4.tgz", - "integrity": "sha512-5pCS4mOsL+ANsFZGdvNLybx4wtqAZJ0MJjMHxvzI3bvIsz6sQvzW8XX92EYIkiPtIvcfG3Aj+Ir5VNyjnZhP7w==", + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.6.2.tgz", + "integrity": "sha512-mdFqWrSPCmikBoaBYMuBulzTIKuXVPtEISFbRRVNwMWpCms/hmE2kRq0bblUHaNRKrjRlmVbx1sDHmjmRgD2Xg==", "dev": true }, "@babel/plugin-proposal-async-generator-functions": { @@ -512,15 +501,25 @@ } }, "@babel/plugin-proposal-class-properties": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.4.4.tgz", - "integrity": "sha512-WjKTI8g8d5w1Bc9zgwSz2nfrsNQsXcCf9J9cdCvrJV6RF56yztwm4TmJC0MgJ9tvwO9gUA/mcYe89bLdGfiXFg==", + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.5.5.tgz", + "integrity": "sha512-AF79FsnWFxjlaosgdi421vmYG6/jg79bVD0dpD44QdgobzHKuLZ6S3vl8la9qIeSwGi8i1fS0O1mfuDAAdo1/A==", "dev": true, "requires": { - "@babel/helper-create-class-features-plugin": "^7.4.4", + "@babel/helper-create-class-features-plugin": "^7.5.5", "@babel/helper-plugin-utils": "^7.0.0" } }, + "@babel/plugin-proposal-dynamic-import": { + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.5.0.tgz", + "integrity": "sha512-x/iMjggsKTFHYC6g11PL7Qy58IK8H5zqfm9e6hu4z1iH2IRyAp9u9dL80zA6R76yFovETFLKz2VJIC2iIPBuFw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-syntax-dynamic-import": "^7.2.0" + } + }, "@babel/plugin-proposal-json-strings": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.2.0.tgz", @@ -532,9 +531,9 @@ } }, "@babel/plugin-proposal-object-rest-spread": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.4.4.tgz", - "integrity": "sha512-dMBG6cSPBbHeEBdFXeQ2QLc5gUpg4Vkaz8octD4aoW/ISO+jBOcsuxYL7bsb5WSu8RLP6boxrBIALEHgoHtO9g==", + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.6.2.tgz", + "integrity": "sha512-LDBXlmADCsMZV1Y9OQwMc0MyGZ8Ta/zlD9N67BfQT8uYwkRswiu2hU6nJKrjrt/58aH/vqfQlR/9yId/7A2gWw==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0", @@ -552,14 +551,14 @@ } }, "@babel/plugin-proposal-unicode-property-regex": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.4.4.tgz", - "integrity": "sha512-j1NwnOqMG9mFUOH58JTFsA/+ZYzQLUZ/drqWUqxCYLGeu2JFZL8YrNC9hBxKmWtAuOCHPcRpgv7fhap09Fb4kA==", + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.6.2.tgz", + "integrity": "sha512-NxHETdmpeSCtiatMRYWVJo7266rrvAC3DTeG5exQBIH/fMIUK7ejDNznBbn3HQl/o9peymRRg7Yqkx6PdUXmMw==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0", "@babel/helper-regex": "^7.4.4", - "regexpu-core": "^4.5.4" + "regexpu-core": "^4.6.0" } }, "@babel/plugin-syntax-async-generators": { @@ -626,9 +625,9 @@ } }, "@babel/plugin-transform-async-to-generator": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.4.4.tgz", - "integrity": "sha512-YiqW2Li8TXmzgbXw+STsSqPBPFnGviiaSp6CYOq55X8GQ2SGVLrXB6pNid8HkqkZAzOH6knbai3snhP7v0fNwA==", + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.5.0.tgz", + "integrity": "sha512-mqvkzwIGkq0bEF1zLRRiTdjfomZJDV33AH3oQzHVGkI2VzEmXLpKKOBvEVaFZBJdN0XTyH38s9j/Kiqr68dggg==", "dev": true, "requires": { "@babel/helper-module-imports": "^7.0.0", @@ -646,27 +645,27 @@ } }, "@babel/plugin-transform-block-scoping": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.4.4.tgz", - "integrity": "sha512-jkTUyWZcTrwxu5DD4rWz6rDB5Cjdmgz6z7M7RLXOJyCUkFBawssDGcGh8M/0FTSB87avyJI1HsTwUXp9nKA1PA==", + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.6.2.tgz", + "integrity": "sha512-zZT8ivau9LOQQaOGC7bQLQOT4XPkPXgN2ERfUgk1X8ql+mVkLc4E8eKk+FO3o0154kxzqenWCorfmEXpEZcrSQ==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0", - "lodash": "^4.17.11" + "lodash": "^4.17.13" } }, "@babel/plugin-transform-classes": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.4.4.tgz", - "integrity": "sha512-/e44eFLImEGIpL9qPxSRat13I5QNRgBLu2hOQJCF7VLy/otSM/sypV1+XaIw5+502RX/+6YaSAPmldk+nhHDPw==", + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.5.5.tgz", + "integrity": "sha512-U2htCNK/6e9K7jGyJ++1p5XRU+LJjrwtoiVn9SzRlDT2KubcZ11OOwy3s24TjHxPgxNwonCYP7U2K51uVYCMDg==", "dev": true, "requires": { "@babel/helper-annotate-as-pure": "^7.0.0", - "@babel/helper-define-map": "^7.4.4", + "@babel/helper-define-map": "^7.5.5", "@babel/helper-function-name": "^7.1.0", "@babel/helper-optimise-call-expression": "^7.0.0", "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-replace-supers": "^7.4.4", + "@babel/helper-replace-supers": "^7.5.5", "@babel/helper-split-export-declaration": "^7.4.4", "globals": "^11.1.0" } @@ -681,29 +680,29 @@ } }, "@babel/plugin-transform-destructuring": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.4.4.tgz", - "integrity": "sha512-/aOx+nW0w8eHiEHm+BTERB2oJn5D127iye/SUQl7NjHy0lf+j7h4MKMMSOwdazGq9OxgiNADncE+SRJkCxjZpQ==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.6.0.tgz", + "integrity": "sha512-2bGIS5P1v4+sWTCnKNDZDxbGvEqi0ijeqM/YqHtVGrvG2y0ySgnEEhXErvE9dA0bnIzY9bIzdFK0jFA46ASIIQ==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-transform-dotall-regex": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.4.4.tgz", - "integrity": "sha512-P05YEhRc2h53lZDjRPk/OektxCVevFzZs2Gfjd545Wde3k+yFDbXORgl2e0xpbq8mLcKJ7Idss4fAg0zORN/zg==", + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.6.2.tgz", + "integrity": "sha512-KGKT9aqKV+9YMZSkowzYoYEiHqgaDhGmPNZlZxX6UeHC4z30nC1J9IrZuGqbYFB1jaIGdv91ujpze0exiVK8bA==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0", "@babel/helper-regex": "^7.4.4", - "regexpu-core": "^4.5.4" + "regexpu-core": "^4.6.0" } }, "@babel/plugin-transform-duplicate-keys": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.2.0.tgz", - "integrity": "sha512-q+yuxW4DsTjNceUiTzK0L+AfQ0zD9rWaTLiUqHA8p0gxx7lu1EylenfzjeIWNkPy6e/0VG/Wjw9uf9LueQwLOw==", + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.5.0.tgz", + "integrity": "sha512-igcziksHizyQPlX9gfSjHkE2wmoCH3evvD2qR5w29/Dk0SMKE/eOI7f1HhBdNhR/zxJDqrgpoDTq5YSLH/XMsQ==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0" @@ -757,34 +756,37 @@ } }, "@babel/plugin-transform-modules-amd": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.2.0.tgz", - "integrity": "sha512-mK2A8ucqz1qhrdqjS9VMIDfIvvT2thrEsIQzbaTdc5QFzhDjQv2CkJJ5f6BXIkgbmaoax3zBr2RyvV/8zeoUZw==", + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.5.0.tgz", + "integrity": "sha512-n20UsQMKnWrltocZZm24cRURxQnWIvsABPJlw/fvoy9c6AgHZzoelAIzajDHAQrDpuKFFPPcFGd7ChsYuIUMpg==", "dev": true, "requires": { "@babel/helper-module-transforms": "^7.1.0", - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.0.0", + "babel-plugin-dynamic-import-node": "^2.3.0" } }, "@babel/plugin-transform-modules-commonjs": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.4.4.tgz", - "integrity": "sha512-4sfBOJt58sEo9a2BQXnZq+Q3ZTSAUXyK3E30o36BOGnJ+tvJ6YSxF0PG6kERvbeISgProodWuI9UVG3/FMY6iw==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.6.0.tgz", + "integrity": "sha512-Ma93Ix95PNSEngqomy5LSBMAQvYKVe3dy+JlVJSHEXZR5ASL9lQBedMiCyVtmTLraIDVRE3ZjTZvmXXD2Ozw3g==", "dev": true, "requires": { "@babel/helper-module-transforms": "^7.4.4", "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-simple-access": "^7.1.0" + "@babel/helper-simple-access": "^7.1.0", + "babel-plugin-dynamic-import-node": "^2.3.0" } }, "@babel/plugin-transform-modules-systemjs": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.4.4.tgz", - "integrity": "sha512-MSiModfILQc3/oqnG7NrP1jHaSPryO6tA2kOMmAQApz5dayPxWiHqmq4sWH2xF5LcQK56LlbKByCd8Aah/OIkQ==", + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.5.0.tgz", + "integrity": "sha512-Q2m56tyoQWmuNGxEtUyeEkm6qJYFqs4c+XyXH5RAuYxObRNz9Zgj/1g2GMnjYp2EUyEy7YTrxliGCXzecl/vJg==", "dev": true, "requires": { "@babel/helper-hoist-variables": "^7.4.4", - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.0.0", + "babel-plugin-dynamic-import-node": "^2.3.0" } }, "@babel/plugin-transform-modules-umd": { @@ -798,12 +800,12 @@ } }, "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.4.5.tgz", - "integrity": "sha512-z7+2IsWafTBbjNsOxU/Iv5CvTJlr5w4+HGu1HovKYTtgJ362f7kBcQglkfmlspKKZ3bgrbSGvLfNx++ZJgCWsg==", + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.6.2.tgz", + "integrity": "sha512-xBdB+XOs+lgbZc2/4F5BVDVcDNS4tcSKQc96KmlqLEAwz6tpYPEvPdmDfvVG0Ssn8lAhronaRs6Z6KSexIpK5g==", "dev": true, "requires": { - "regexp-tree": "^0.1.6" + "regexpu-core": "^4.6.0" } }, "@babel/plugin-transform-new-target": { @@ -816,13 +818,13 @@ } }, "@babel/plugin-transform-object-super": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.2.0.tgz", - "integrity": "sha512-VMyhPYZISFZAqAPVkiYb7dUe2AsVi2/wCT5+wZdsNO31FojQJa9ns40hzZ6U9f50Jlq4w6qwzdBB2uwqZ00ebg==", + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.5.5.tgz", + "integrity": "sha512-un1zJQAhSosGFBduPgN/YFNvWVpRuHKU7IHBglLoLZsGmruJPOo6pbInneflUdmq7YvSVqhpPs5zdBvLnteltQ==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-replace-supers": "^7.1.0" + "@babel/helper-replace-supers": "^7.5.5" } }, "@babel/plugin-transform-parameters": { @@ -913,9 +915,9 @@ } }, "@babel/plugin-transform-spread": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.2.2.tgz", - "integrity": "sha512-KWfky/58vubwtS0hLqEnrWJjsMGaOeSBn90Ezn5Jeg9Z8KKHmELbP1yGylMlm5N6TPKeY9A2+UaSYLdxahg01w==", + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.6.2.tgz", + "integrity": "sha512-DpSvPFryKdK1x+EDJYCy28nmAaIMdxmhot62jAXF/o99iA33Zj2Lmcp3vDmz+MUh0LNYVPvfj5iC3feb3/+PFg==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0" @@ -951,65 +953,67 @@ } }, "@babel/plugin-transform-unicode-regex": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.4.4.tgz", - "integrity": "sha512-il+/XdNw01i93+M9J9u4T7/e/Ue/vWfNZE4IRUQjplu2Mqb/AFTDimkw2tdEdSH50wuQXZAbXSql0UphQke+vA==", + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.6.2.tgz", + "integrity": "sha512-orZI6cWlR3nk2YmYdb0gImrgCUwb5cBUwjf6Ks6dvNVvXERkwtJWOQaEOjPiu0Gu1Tq6Yq/hruCZZOOi9F34Dw==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0", "@babel/helper-regex": "^7.4.4", - "regexpu-core": "^4.5.4" + "regexpu-core": "^4.6.0" } }, "@babel/preset-env": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.4.5.tgz", - "integrity": "sha512-f2yNVXM+FsR5V8UwcFeIHzHWgnhXg3NpRmy0ADvALpnhB0SLbCvrCRr4BLOUYbQNLS+Z0Yer46x9dJXpXewI7w==", + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.6.2.tgz", + "integrity": "sha512-Ru7+mfzy9M1/YTEtlDS8CD45jd22ngb9tXnn64DvQK3ooyqSw9K4K9DUWmYknTTVk4TqygL9dqCrZgm1HMea/Q==", "dev": true, "requires": { "@babel/helper-module-imports": "^7.0.0", "@babel/helper-plugin-utils": "^7.0.0", "@babel/plugin-proposal-async-generator-functions": "^7.2.0", + "@babel/plugin-proposal-dynamic-import": "^7.5.0", "@babel/plugin-proposal-json-strings": "^7.2.0", - "@babel/plugin-proposal-object-rest-spread": "^7.4.4", + "@babel/plugin-proposal-object-rest-spread": "^7.6.2", "@babel/plugin-proposal-optional-catch-binding": "^7.2.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", + "@babel/plugin-proposal-unicode-property-regex": "^7.6.2", "@babel/plugin-syntax-async-generators": "^7.2.0", + "@babel/plugin-syntax-dynamic-import": "^7.2.0", "@babel/plugin-syntax-json-strings": "^7.2.0", "@babel/plugin-syntax-object-rest-spread": "^7.2.0", "@babel/plugin-syntax-optional-catch-binding": "^7.2.0", "@babel/plugin-transform-arrow-functions": "^7.2.0", - "@babel/plugin-transform-async-to-generator": "^7.4.4", + "@babel/plugin-transform-async-to-generator": "^7.5.0", "@babel/plugin-transform-block-scoped-functions": "^7.2.0", - "@babel/plugin-transform-block-scoping": "^7.4.4", - "@babel/plugin-transform-classes": "^7.4.4", + "@babel/plugin-transform-block-scoping": "^7.6.2", + "@babel/plugin-transform-classes": "^7.5.5", "@babel/plugin-transform-computed-properties": "^7.2.0", - "@babel/plugin-transform-destructuring": "^7.4.4", - "@babel/plugin-transform-dotall-regex": "^7.4.4", - "@babel/plugin-transform-duplicate-keys": "^7.2.0", + "@babel/plugin-transform-destructuring": "^7.6.0", + "@babel/plugin-transform-dotall-regex": "^7.6.2", + "@babel/plugin-transform-duplicate-keys": "^7.5.0", "@babel/plugin-transform-exponentiation-operator": "^7.2.0", "@babel/plugin-transform-for-of": "^7.4.4", "@babel/plugin-transform-function-name": "^7.4.4", "@babel/plugin-transform-literals": "^7.2.0", "@babel/plugin-transform-member-expression-literals": "^7.2.0", - "@babel/plugin-transform-modules-amd": "^7.2.0", - "@babel/plugin-transform-modules-commonjs": "^7.4.4", - "@babel/plugin-transform-modules-systemjs": "^7.4.4", + "@babel/plugin-transform-modules-amd": "^7.5.0", + "@babel/plugin-transform-modules-commonjs": "^7.6.0", + "@babel/plugin-transform-modules-systemjs": "^7.5.0", "@babel/plugin-transform-modules-umd": "^7.2.0", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.4.5", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.6.2", "@babel/plugin-transform-new-target": "^7.4.4", - "@babel/plugin-transform-object-super": "^7.2.0", + "@babel/plugin-transform-object-super": "^7.5.5", "@babel/plugin-transform-parameters": "^7.4.4", "@babel/plugin-transform-property-literals": "^7.2.0", "@babel/plugin-transform-regenerator": "^7.4.5", "@babel/plugin-transform-reserved-words": "^7.2.0", "@babel/plugin-transform-shorthand-properties": "^7.2.0", - "@babel/plugin-transform-spread": "^7.2.0", + "@babel/plugin-transform-spread": "^7.6.2", "@babel/plugin-transform-sticky-regex": "^7.2.0", "@babel/plugin-transform-template-literals": "^7.4.4", "@babel/plugin-transform-typeof-symbol": "^7.2.0", - "@babel/plugin-transform-unicode-regex": "^7.4.4", - "@babel/types": "^7.4.4", + "@babel/plugin-transform-unicode-regex": "^7.6.2", + "@babel/types": "^7.6.0", "browserslist": "^4.6.0", "core-js-compat": "^3.1.1", "invariant": "^2.2.2", @@ -1018,13 +1022,13 @@ }, "dependencies": { "@babel/types": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.4.4.tgz", - "integrity": "sha512-dOllgYdnEFOebhkKCjzSVFqw/PmmB8pH6RGOWkY4GsboQNd47b1fBThBSwlHAq9alF9vc1M3+6oqR47R50L0tQ==", + "version": "7.6.1", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.6.1.tgz", + "integrity": "sha512-X7gdiuaCmA0uRjCmRtYJNAVCc/q+5xSgsfKJHqMN4iNLILX39677fJE1O40arPMh0TTtS9ItH67yre6c7k6t0g==", "dev": true, "requires": { "esutils": "^2.0.2", - "lodash": "^4.17.11", + "lodash": "^4.17.13", "to-fast-properties": "^2.0.0" } } @@ -1059,54 +1063,54 @@ } }, "@babel/template": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.4.4.tgz", - "integrity": "sha512-CiGzLN9KgAvgZsnivND7rkA+AeJ9JB0ciPOD4U59GKbQP2iQl+olF1l76kJOupqidozfZ32ghwBEJDhnk9MEcw==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.6.0.tgz", + "integrity": "sha512-5AEH2EXD8euCk446b7edmgFdub/qfH1SN6Nii3+fyXP807QRx9Q73A2N5hNwRRslC2H9sNzaFhsPubkS4L8oNQ==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", - "@babel/parser": "^7.4.4", - "@babel/types": "^7.4.4" + "@babel/parser": "^7.6.0", + "@babel/types": "^7.6.0" }, "dependencies": { "@babel/types": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.4.4.tgz", - "integrity": "sha512-dOllgYdnEFOebhkKCjzSVFqw/PmmB8pH6RGOWkY4GsboQNd47b1fBThBSwlHAq9alF9vc1M3+6oqR47R50L0tQ==", + "version": "7.6.1", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.6.1.tgz", + "integrity": "sha512-X7gdiuaCmA0uRjCmRtYJNAVCc/q+5xSgsfKJHqMN4iNLILX39677fJE1O40arPMh0TTtS9ItH67yre6c7k6t0g==", "dev": true, "requires": { "esutils": "^2.0.2", - "lodash": "^4.17.11", + "lodash": "^4.17.13", "to-fast-properties": "^2.0.0" } } } }, "@babel/traverse": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.4.4.tgz", - "integrity": "sha512-Gw6qqkw/e6AGzlyj9KnkabJX7VcubqPtkUQVAwkc0wUMldr3A/hezNB3Rc5eIvId95iSGkGIOe5hh1kMKf951A==", + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.6.2.tgz", + "integrity": "sha512-8fRE76xNwNttVEF2TwxJDGBLWthUkHWSldmfuBzVRmEDWOtu4XdINTgN7TDWzuLg4bbeIMLvfMFD9we5YcWkRQ==", "dev": true, "requires": { - "@babel/code-frame": "^7.0.0", - "@babel/generator": "^7.4.4", + "@babel/code-frame": "^7.5.5", + "@babel/generator": "^7.6.2", "@babel/helper-function-name": "^7.1.0", "@babel/helper-split-export-declaration": "^7.4.4", - "@babel/parser": "^7.4.4", - "@babel/types": "^7.4.4", + "@babel/parser": "^7.6.2", + "@babel/types": "^7.6.0", "debug": "^4.1.0", "globals": "^11.1.0", - "lodash": "^4.17.11" + "lodash": "^4.17.13" }, "dependencies": { "@babel/types": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.4.4.tgz", - "integrity": "sha512-dOllgYdnEFOebhkKCjzSVFqw/PmmB8pH6RGOWkY4GsboQNd47b1fBThBSwlHAq9alF9vc1M3+6oqR47R50L0tQ==", + "version": "7.6.1", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.6.1.tgz", + "integrity": "sha512-X7gdiuaCmA0uRjCmRtYJNAVCc/q+5xSgsfKJHqMN4iNLILX39677fJE1O40arPMh0TTtS9ItH67yre6c7k6t0g==", "dev": true, "requires": { "esutils": "^2.0.2", - "lodash": "^4.17.11", + "lodash": "^4.17.13", "to-fast-properties": "^2.0.0" } }, @@ -1120,9 +1124,9 @@ } }, "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true } } @@ -1726,6 +1730,15 @@ } } }, + "babel-plugin-dynamic-import-node": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.0.tgz", + "integrity": "sha512-o6qFkpeQEBxcqt0XYlWzAVxNCSCZdUgcR8IRlhD/8DylxjjO4foPcvTW0GGKa/cVt3rvxZ7o5ippJ+/0nvLhlQ==", + "dev": true, + "requires": { + "object.assign": "^4.1.0" + } + }, "babel-plugin-emotion": { "version": "9.2.11", "resolved": "https://registry.npmjs.org/babel-plugin-emotion/-/babel-plugin-emotion-9.2.11.tgz", @@ -2001,14 +2014,14 @@ } }, "browserslist": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.6.0.tgz", - "integrity": "sha512-Jk0YFwXBuMOOol8n6FhgkDzn3mY9PYLYGk29zybF05SbRTsMgPqmTNeQQhOghCxq5oFqAXE3u4sYddr4C0uRhg==", + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.7.0.tgz", + "integrity": "sha512-9rGNDtnj+HaahxiVV38Gn8n8Lr8REKsel68v1sPFfIGEK6uSXTY3h9acgiT1dZVtOOUtifo/Dn8daDQ5dUgVsA==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30000967", - "electron-to-chromium": "^1.3.133", - "node-releases": "^1.1.19" + "caniuse-lite": "^1.0.30000989", + "electron-to-chromium": "^1.3.247", + "node-releases": "^1.1.29" } }, "buffer": { @@ -2099,9 +2112,9 @@ "integrity": "sha1-FkpUg+Yw+kMh5a8HAg5TGDGyYJs=" }, "caniuse-lite": { - "version": "1.0.30000969", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000969.tgz", - "integrity": "sha512-Kus0yxkoAJgVc0bax7S4gLSlFifCa7MnSZL9p9VuS/HIKEL4seaqh28KIQAAO50cD/rJ5CiJkJFapkdDAlhFxQ==", + "version": "1.0.30000989", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000989.tgz", + "integrity": "sha512-vrMcvSuMz16YY6GSVZ0dWDTJP8jqk3iFQ/Aq5iqblPwxSVVZI+zxDyTX0VPqtQsDnfdrBDcsmhgTEOh5R8Lbpw==", "dev": true }, "chalk": { @@ -2315,30 +2328,23 @@ "dev": true }, "core-js-compat": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.1.1.tgz", - "integrity": "sha512-RH3kv8NFovFRMdeTEUgu8nMquEWKEVttOY3JFi8mN75sg72zygPqWbpWNTUw4JYEU43562tlzhdWsWqXmdFAnQ==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.2.1.tgz", + "integrity": "sha512-MwPZle5CF9dEaMYdDeWm73ao/IflDH+FjeJCWEADcEgFSE9TLimFKwJsfmkwzI8eC0Aj0mgvMDjeQjrElkz4/A==", "dev": true, "requires": { - "browserslist": "^4.6.0", - "core-js-pure": "3.1.1", - "semver": "^6.0.0" + "browserslist": "^4.6.6", + "semver": "^6.3.0" }, "dependencies": { "semver": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.0.0.tgz", - "integrity": "sha512-0UewU+9rFapKFnlbirLi3byoOuhrSsli/z/ihNnvM24vgF+8sNBiI1LZPBSH9wJKUwaUbw+s3hToDLCXkrghrQ==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true } } }, - "core-js-pure": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.1.1.tgz", - "integrity": "sha512-jH3ZJ0CJ0wwDvWY0olbOComLo6tbWg4kE2x0j4+wlqYnofwF9mYm98YvADuENUzGw69IddmWFCF1FQ2S0jP96A==", - "dev": true - }, "core-util-is": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", @@ -2541,6 +2547,23 @@ "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz", "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=" }, + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "dev": true, + "requires": { + "object-keys": "^1.0.12" + }, + "dependencies": { + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true + } + } + }, "define-property": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", @@ -2644,9 +2667,9 @@ } }, "electron-to-chromium": { - "version": "1.3.135", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.135.tgz", - "integrity": "sha512-xXLNstRdVsisPF3pL3H9TVZo2XkMILfqtD6RiWIUmDK2sFX1Bjwqmd8LBp0Kuo2FgKO63JXPoEVGm8WyYdwP0Q==", + "version": "1.3.264", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.264.tgz", + "integrity": "sha512-z8E7WkrrquCuGYv+kKyybuZIbdms+4PeHp7Zm2uIgEhAigP0bOwqXILItwj0YO73o+QyHY/7XtEfP5DsHOWQgQ==", "dev": true }, "elliptic": { @@ -3682,6 +3705,12 @@ } } }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, "get-caller-file": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", @@ -3774,9 +3803,9 @@ } }, "globals": { - "version": "11.11.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.11.0.tgz", - "integrity": "sha512-WHq43gS+6ufNOEqlrDBxVEbb8ntfXrfAUU2ZOpCxrBdGKW3gyv8mCxAfIBD0DroPKGrJ2eSsXsLtY9MPntsyTw==", + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", "dev": true }, "graceful-fs": { @@ -3795,6 +3824,12 @@ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" }, + "has-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz", + "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=", + "dev": true + }, "has-value": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", @@ -4791,9 +4826,9 @@ } }, "node-releases": { - "version": "1.1.19", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.19.tgz", - "integrity": "sha512-SH/B4WwovHbulIALsQllAVwqZZD1kPmKCqrhGfR29dXjLAVZMHvBjD3S6nL9D/J9QkmZ1R92/0wCMDKXUUvyyA==", + "version": "1.1.32", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.32.tgz", + "integrity": "sha512-VhVknkitq8dqtWoluagsGPn3dxTvN9fwgR59fV3D7sLBHe0JfDramsMI8n8mY//ccq/Kkrf8ZRHRpsyVZ3qw1A==", "dev": true, "requires": { "semver": "^5.3.0" @@ -4872,6 +4907,26 @@ "isobject": "^3.0.0" } }, + "object.assign": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", + "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", + "dev": true, + "requires": { + "define-properties": "^1.1.2", + "function-bind": "^1.1.1", + "has-symbols": "^1.0.0", + "object-keys": "^1.0.11" + }, + "dependencies": { + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true + } + } + }, "object.pick": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", @@ -5642,9 +5697,9 @@ "dev": true }, "regenerator-transform": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.0.tgz", - "integrity": "sha512-rtOelq4Cawlbmq9xuMR5gdFmv7ku/sFoB7sRiywx7aq53bc52b4j6zvH7Te1Vt/X2YveDKnCGUbioieU7FEL3w==", + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.1.tgz", + "integrity": "sha512-flVuee02C3FKRISbxhXl9mGzdbWUVHubl1SMaknjxkFB1/iqpJhArQUvRxOOPEc/9tAiX0BaQ28FJH10E4isSQ==", "dev": true, "requires": { "private": "^0.1.6" @@ -5660,20 +5715,14 @@ "safe-regex": "^1.1.0" } }, - "regexp-tree": { - "version": "0.1.10", - "resolved": "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.10.tgz", - "integrity": "sha512-K1qVSbcedffwuIslMwpe6vGlj+ZXRnGkvjAtFHfDZZZuEdA/h0dxljAPu9vhUo6Rrx2U2AwJ+nSQ6hK+lrP5MQ==", - "dev": true - }, "regexpu-core": { - "version": "4.5.4", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.5.4.tgz", - "integrity": "sha512-BtizvGtFQKGPUcTy56o3nk1bGRp4SZOTYrDtGNlqCQufptV5IkkLN6Emw+yunAJjzf+C9FQFtvq7IoA3+oMYHQ==", + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.6.0.tgz", + "integrity": "sha512-YlVaefl8P5BnFYOITTNzDvan1ulLOiXJzCNZxduTIosN17b87h3bvG9yHMoHaRuo88H4mQ06Aodj5VtYGGGiTg==", "dev": true, "requires": { "regenerate": "^1.4.0", - "regenerate-unicode-properties": "^8.0.2", + "regenerate-unicode-properties": "^8.1.0", "regjsgen": "^0.5.0", "regjsparser": "^0.6.0", "unicode-match-property-ecmascript": "^1.0.4", @@ -6532,12 +6581,6 @@ "nopt": "~1.0.10" } }, - "trim-right": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", - "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", - "dev": true - }, "tslib": { "version": "1.10.0", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz", diff --git a/src/React.Sample.Webpack.CoreMvc/package.json b/src/React.Sample.Webpack.CoreMvc/package.json index 89c2e533a..499ca30ae 100644 --- a/src/React.Sample.Webpack.CoreMvc/package.json +++ b/src/React.Sample.Webpack.CoreMvc/package.json @@ -20,11 +20,11 @@ "styled-components": "^4.0.0" }, "devDependencies": { - "@babel/core": "7.4.5", - "@babel/plugin-proposal-class-properties": "7.4.4", - "@babel/plugin-proposal-object-rest-spread": "7.4.4", + "@babel/core": "7.6.2", + "@babel/plugin-proposal-class-properties": "7.5.5", + "@babel/plugin-proposal-object-rest-spread": "7.6.2", "@babel/plugin-syntax-dynamic-import": "7.2.0", - "@babel/preset-env": "7.4.5", + "@babel/preset-env": "7.6.2", "@babel/preset-react": "7.0.0", "babel-loader": "8.0.6", "babel-runtime": "6.26.0", From 032bf95e6a1c2d754f1181a047de7d0e8542bfde Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Tue, 24 Sep 2019 15:54:34 +0000 Subject: [PATCH 294/530] Update dependency webpack to v4.40.3 --- .../Resources/babel-legacy/package-lock.json | 12 ++++++------ .../Resources/babel-legacy/package.json | 2 +- src/React.Core/package-lock.json | 18 +++++++++--------- src/React.Core/package.json | 2 +- .../package-lock.json | 12 ++++++------ src/React.Sample.Webpack.CoreMvc/package.json | 2 +- 6 files changed, 24 insertions(+), 24 deletions(-) diff --git a/src/React.Core/Resources/babel-legacy/package-lock.json b/src/React.Core/Resources/babel-legacy/package-lock.json index 5c5fffc52..a93bd5c72 100644 --- a/src/React.Core/Resources/babel-legacy/package-lock.json +++ b/src/React.Core/Resources/babel-legacy/package-lock.json @@ -4781,9 +4781,9 @@ "dev": true }, "terser": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.3.1.tgz", - "integrity": "sha512-pnzH6dnFEsR2aa2SJaKb1uSCl3QmIsJ8dEkj0Fky+2AwMMcC9doMqLOQIH6wVTEKaVfKVvLSk5qxPBEZT9mywg==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.3.2.tgz", + "integrity": "sha512-obxk4x19Zlzj9zY4QeXj9iPCb5W8YGn4v3pn4/fHj0Nw8+R7N02Kvwvz9VpOItCZZD8RC+vnYCDL0gP6FAJ7Xg==", "dev": true, "requires": { "commander": "^2.20.0", @@ -5098,9 +5098,9 @@ } }, "webpack": { - "version": "4.40.2", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.40.2.tgz", - "integrity": "sha512-5nIvteTDCUws2DVvP9Qe+JPla7kWPPIDFZv55To7IycHWZ+Z5qBdaBYPyuXWdhggTufZkQwfIK+5rKQTVovm2A==", + "version": "4.40.3", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.40.3.tgz", + "integrity": "sha512-sCHHpNE9XLpK4XZ/eGdjiwXBJY7KVdeVymqia1KKO3eVXNI3hwmfwEGA8vJIKop6loBbrEccysPyrtzCSwH2vw==", "dev": true, "requires": { "@webassemblyjs/ast": "1.8.5", diff --git a/src/React.Core/Resources/babel-legacy/package.json b/src/React.Core/Resources/babel-legacy/package.json index abf0a7d8d..4eae24ddf 100644 --- a/src/React.Core/Resources/babel-legacy/package.json +++ b/src/React.Core/Resources/babel-legacy/package.json @@ -12,7 +12,7 @@ "babel-preset-es2015": "6.24.1", "babel-preset-stage-0": "6.24.1", "babel-standalone": "6.26.0", - "webpack": "4.40.2", + "webpack": "4.40.3", "webpack-cli": "3.3.9" }, "author": "", diff --git a/src/React.Core/package-lock.json b/src/React.Core/package-lock.json index 6229207f4..9c2ae6b42 100644 --- a/src/React.Core/package-lock.json +++ b/src/React.Core/package-lock.json @@ -1239,9 +1239,9 @@ "dev": true }, "end-of-stream": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", - "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.3.tgz", + "integrity": "sha512-cbNhPFS6MlYlWTGncSiDYbdqKhwWFy7kNeb1YSOG6K65i/wPTkLVCJQj0hXA4j0m5Da+hBWnqopEnu1FFelisQ==", "dev": true, "requires": { "once": "^1.4.0" @@ -4030,9 +4030,9 @@ "dev": true }, "terser": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.3.1.tgz", - "integrity": "sha512-pnzH6dnFEsR2aa2SJaKb1uSCl3QmIsJ8dEkj0Fky+2AwMMcC9doMqLOQIH6wVTEKaVfKVvLSk5qxPBEZT9mywg==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.3.2.tgz", + "integrity": "sha512-obxk4x19Zlzj9zY4QeXj9iPCb5W8YGn4v3pn4/fHj0Nw8+R7N02Kvwvz9VpOItCZZD8RC+vnYCDL0gP6FAJ7Xg==", "dev": true, "requires": { "commander": "^2.20.0", @@ -4353,9 +4353,9 @@ } }, "webpack": { - "version": "4.40.2", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.40.2.tgz", - "integrity": "sha512-5nIvteTDCUws2DVvP9Qe+JPla7kWPPIDFZv55To7IycHWZ+Z5qBdaBYPyuXWdhggTufZkQwfIK+5rKQTVovm2A==", + "version": "4.40.3", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.40.3.tgz", + "integrity": "sha512-sCHHpNE9XLpK4XZ/eGdjiwXBJY7KVdeVymqia1KKO3eVXNI3hwmfwEGA8vJIKop6loBbrEccysPyrtzCSwH2vw==", "dev": true, "requires": { "@webassemblyjs/ast": "1.8.5", diff --git a/src/React.Core/package.json b/src/React.Core/package.json index 1210032e3..5e69a3219 100644 --- a/src/React.Core/package.json +++ b/src/React.Core/package.json @@ -11,7 +11,7 @@ "prop-types": "15.7.2", "react": "16.9.0", "react-dom": "16.9.0", - "webpack": "4.40.2", + "webpack": "4.40.3", "webpack-cli": "3.3.9" } } diff --git a/src/React.Sample.Webpack.CoreMvc/package-lock.json b/src/React.Sample.Webpack.CoreMvc/package-lock.json index 480e5cf9a..639119e26 100644 --- a/src/React.Sample.Webpack.CoreMvc/package-lock.json +++ b/src/React.Sample.Webpack.CoreMvc/package-lock.json @@ -6324,9 +6324,9 @@ "dev": true }, "terser": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.3.1.tgz", - "integrity": "sha512-pnzH6dnFEsR2aa2SJaKb1uSCl3QmIsJ8dEkj0Fky+2AwMMcC9doMqLOQIH6wVTEKaVfKVvLSk5qxPBEZT9mywg==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.3.2.tgz", + "integrity": "sha512-obxk4x19Zlzj9zY4QeXj9iPCb5W8YGn4v3pn4/fHj0Nw8+R7N02Kvwvz9VpOItCZZD8RC+vnYCDL0gP6FAJ7Xg==", "dev": true, "requires": { "commander": "^2.20.0", @@ -6789,9 +6789,9 @@ } }, "webpack": { - "version": "4.40.2", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.40.2.tgz", - "integrity": "sha512-5nIvteTDCUws2DVvP9Qe+JPla7kWPPIDFZv55To7IycHWZ+Z5qBdaBYPyuXWdhggTufZkQwfIK+5rKQTVovm2A==", + "version": "4.40.3", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.40.3.tgz", + "integrity": "sha512-sCHHpNE9XLpK4XZ/eGdjiwXBJY7KVdeVymqia1KKO3eVXNI3hwmfwEGA8vJIKop6loBbrEccysPyrtzCSwH2vw==", "dev": true, "requires": { "@webassemblyjs/ast": "1.8.5", diff --git a/src/React.Sample.Webpack.CoreMvc/package.json b/src/React.Sample.Webpack.CoreMvc/package.json index 89c2e533a..a15002e87 100644 --- a/src/React.Sample.Webpack.CoreMvc/package.json +++ b/src/React.Sample.Webpack.CoreMvc/package.json @@ -28,7 +28,7 @@ "@babel/preset-react": "7.0.0", "babel-loader": "8.0.6", "babel-runtime": "6.26.0", - "webpack": "4.40.2", + "webpack": "4.40.3", "webpack-cli": "3.3.9" } } From b524366bb02f39d41047b1311f640ddb19846f16 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Tue, 24 Sep 2019 21:14:09 +0000 Subject: [PATCH 295/530] Update dependency @types/react to v16.9.3 --- src/React.Sample.Mvc4/package-lock.json | 12 ++++++------ src/React.Sample.Mvc4/package.json | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/React.Sample.Mvc4/package-lock.json b/src/React.Sample.Mvc4/package-lock.json index 8c1a0da0e..714af7f65 100644 --- a/src/React.Sample.Mvc4/package-lock.json +++ b/src/React.Sample.Mvc4/package-lock.json @@ -5,15 +5,15 @@ "requires": true, "dependencies": { "@types/prop-types": { - "version": "15.7.2", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.2.tgz", - "integrity": "sha512-f8JzJNWVhKtc9dg/dyDNfliTKNOJSLa7Oht/ElZdF/UbMUmAH3rLmAk3ODNjw0mZajDEgatA03tRjB4+Dp/tzA==", + "version": "15.7.3", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.3.tgz", + "integrity": "sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw==", "dev": true }, "@types/react": { - "version": "16.9.2", - "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.2.tgz", - "integrity": "sha512-jYP2LWwlh+FTqGd9v7ynUKZzjj98T8x7Yclz479QdRhHfuW9yQ+0jjnD31eXSXutmBpppj5PYNLYLRfnZJvcfg==", + "version": "16.9.3", + "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.3.tgz", + "integrity": "sha512-Ogb2nSn+2qQv5opoCv7Ls5yFxtyrdUYxp5G+SWTrlGk7dmFKw331GiezCgEZj9U7QeXJi1CDtws9pdXU1zUL4g==", "dev": true, "requires": { "@types/prop-types": "*", diff --git a/src/React.Sample.Mvc4/package.json b/src/React.Sample.Mvc4/package.json index 700b26a5e..2f98d3301 100644 --- a/src/React.Sample.Mvc4/package.json +++ b/src/React.Sample.Mvc4/package.json @@ -7,7 +7,7 @@ "lint:ts": "tsc" }, "devDependencies": { - "@types/react": "16.9.2", + "@types/react": "16.9.3", "@types/react-dom": "16.9.0", "@types/reactstrap": "8.0.4", "typescript": "3.6.3" From 8254296430a400b03a99b17d7ff21cd611290267 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Tue, 24 Sep 2019 23:07:03 +0000 Subject: [PATCH 296/530] Update dependency @types/react-dom to v16.9.1 --- src/React.Sample.Mvc4/package-lock.json | 6 +++--- src/React.Sample.Mvc4/package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/React.Sample.Mvc4/package-lock.json b/src/React.Sample.Mvc4/package-lock.json index 714af7f65..95530b4a2 100644 --- a/src/React.Sample.Mvc4/package-lock.json +++ b/src/React.Sample.Mvc4/package-lock.json @@ -21,9 +21,9 @@ } }, "@types/react-dom": { - "version": "16.9.0", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-16.9.0.tgz", - "integrity": "sha512-OL2lk7LYGjxn4b0efW3Pvf2KBVP0y1v3wip1Bp7nA79NkOpElH98q3WdCEdDj93b2b0zaeBG9DvriuKjIK5xDA==", + "version": "16.9.1", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-16.9.1.tgz", + "integrity": "sha512-1S/akvkKr63qIUWVu5IKYou2P9fHLb/P2VAwyxVV85JGaGZTcUniMiTuIqM3lXFB25ej6h+CYEQ27ERVwi6eGA==", "dev": true, "requires": { "@types/react": "*" diff --git a/src/React.Sample.Mvc4/package.json b/src/React.Sample.Mvc4/package.json index 2f98d3301..26dd8c4d6 100644 --- a/src/React.Sample.Mvc4/package.json +++ b/src/React.Sample.Mvc4/package.json @@ -8,7 +8,7 @@ }, "devDependencies": { "@types/react": "16.9.3", - "@types/react-dom": "16.9.0", + "@types/react-dom": "16.9.1", "@types/reactstrap": "8.0.4", "typescript": "3.6.3" } From 3137c0459d64fdf38fb35c194a6026e5403b62c0 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Wed, 25 Sep 2019 22:36:50 +0000 Subject: [PATCH 297/530] Update dependency Microsoft.VisualStudio.Web.CodeGeneration.Design to v2.2.4 --- .../React.Sample.Webpack.CoreMvc.csproj | 2 +- tutorial-code/tutorial-code.csproj | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/React.Sample.Webpack.CoreMvc/React.Sample.Webpack.CoreMvc.csproj b/src/React.Sample.Webpack.CoreMvc/React.Sample.Webpack.CoreMvc.csproj index 535e88a9e..8cf82f9b6 100644 --- a/src/React.Sample.Webpack.CoreMvc/React.Sample.Webpack.CoreMvc.csproj +++ b/src/React.Sample.Webpack.CoreMvc/React.Sample.Webpack.CoreMvc.csproj @@ -11,7 +11,7 @@ - + diff --git a/tutorial-code/tutorial-code.csproj b/tutorial-code/tutorial-code.csproj index b5355b25a..6d70f4b9a 100644 --- a/tutorial-code/tutorial-code.csproj +++ b/tutorial-code/tutorial-code.csproj @@ -18,7 +18,7 @@ - + From 380eca1abc1167d850083ef6ddac40c79f5e0d8d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 28 Sep 2019 22:40:26 -0700 Subject: [PATCH 298/530] Update react monorepo to v16.10.1 (#926) --- src/React.Core/package-lock.json | 20 ++++++++++---------- src/React.Core/package.json | 4 ++-- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/React.Core/package-lock.json b/src/React.Core/package-lock.json index 9c2ae6b42..e280035af 100644 --- a/src/React.Core/package-lock.json +++ b/src/React.Core/package-lock.json @@ -3450,9 +3450,9 @@ } }, "react": { - "version": "16.9.0", - "resolved": "https://registry.npmjs.org/react/-/react-16.9.0.tgz", - "integrity": "sha512-+7LQnFBwkiw+BobzOF6N//BdoNw0ouwmSJTEm9cglOOmsg/TMiFHZLe2sEoN5M7LgJTj9oHH0gxklfnQe66S1w==", + "version": "16.10.1", + "resolved": "https://registry.npmjs.org/react/-/react-16.10.1.tgz", + "integrity": "sha512-2bisHwMhxQ3XQz4LiJJwG3360pY965pTl/MRrZYxIBKVj4fOHoDs5aZAkYXGxDRO1Li+SyjTAilQEbOmtQJHzA==", "dev": true, "requires": { "loose-envify": "^1.1.0", @@ -3461,15 +3461,15 @@ } }, "react-dom": { - "version": "16.9.0", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.9.0.tgz", - "integrity": "sha512-YFT2rxO9hM70ewk9jq0y6sQk8cL02xm4+IzYBz75CQGlClQQ1Bxq0nhHF6OtSbit+AIahujJgb/CPRibFkMNJQ==", + "version": "16.10.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.10.1.tgz", + "integrity": "sha512-SmM4ZW0uug0rn95U8uqr52I7UdNf6wdGLeXDmNLfg3y5q5H9eAbdjF5ubQc3bjDyRrvdAB2IKG7X0GzSpnn5Mg==", "dev": true, "requires": { "loose-envify": "^1.1.0", "object-assign": "^4.1.1", "prop-types": "^15.6.2", - "scheduler": "^0.15.0" + "scheduler": "^0.16.1" } }, "react-is": { @@ -3647,9 +3647,9 @@ } }, "scheduler": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.15.0.tgz", - "integrity": "sha512-xAefmSfN6jqAa7Kuq7LIJY0bwAPG3xlCj0HMEBQk1lxYiDKZscY2xJ5U/61ZTrYbmNQbXa+gc7czPkVo11tnCg==", + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.16.1.tgz", + "integrity": "sha512-MIuie7SgsqMYOdCXVFZa8SKoNorJZUWHW8dPgto7uEHn1lX3fg2Gu0TzgK8USj76uxV7vB5eRMnZs/cdEHg+cg==", "dev": true, "requires": { "loose-envify": "^1.1.0", diff --git a/src/React.Core/package.json b/src/React.Core/package.json index 5e69a3219..61b4748cf 100644 --- a/src/React.Core/package.json +++ b/src/React.Core/package.json @@ -9,8 +9,8 @@ "@babel/core": "7.4.5", "@babel/standalone": "7.6.2", "prop-types": "15.7.2", - "react": "16.9.0", - "react-dom": "16.9.0", + "react": "16.10.1", + "react-dom": "16.10.1", "webpack": "4.40.3", "webpack-cli": "3.3.9" } From 60655962c05759d8a3650844b29617d6181eb7e6 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Sun, 29 Sep 2019 05:42:12 +0000 Subject: [PATCH 299/530] Update dependency webpack to v4.41.0 --- .../Resources/babel-legacy/package-lock.json | 30 ++++++++-------- .../Resources/babel-legacy/package.json | 2 +- src/React.Core/package-lock.json | 36 +++++++++---------- src/React.Core/package.json | 2 +- .../package-lock.json | 30 ++++++++-------- src/React.Sample.Webpack.CoreMvc/package.json | 2 +- 6 files changed, 51 insertions(+), 51 deletions(-) diff --git a/src/React.Core/Resources/babel-legacy/package-lock.json b/src/React.Core/Resources/babel-legacy/package-lock.json index a93bd5c72..fc4f0bf9f 100644 --- a/src/React.Core/Resources/babel-legacy/package-lock.json +++ b/src/React.Core/Resources/babel-legacy/package-lock.json @@ -1645,9 +1645,9 @@ } }, "chownr": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.2.tgz", - "integrity": "sha512-GkfeAQh+QNy3wquu9oIZr6SS5x7wGdSgNQvD10X3r+AZr1Oys22HW8kAmDMvNg2+Dm0TeGaEuO8gFwdBXxwO8A==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.3.tgz", + "integrity": "sha512-i70fVHhmV3DtTl6nqvZOnIjbY0Pe4kAUjwHj8z0zAdgBtYrJyYwLKCCuRBQ5ppkyL0AkN7HKRnETdmdp1zqNXw==", "dev": true }, "chrome-trace-event": { @@ -1729,9 +1729,9 @@ "dev": true }, "commander": { - "version": "2.20.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz", - "integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==", + "version": "2.20.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.1.tgz", + "integrity": "sha512-cCuLsMhJeWQ/ZpsFTbE765kvVfoeSddc4nU3up4fV+fDBcfUXnbITJ+JzhkdjzOqhURjZgujxaioam4RM9yGUg==", "dev": true }, "commondir": { @@ -4781,9 +4781,9 @@ "dev": true }, "terser": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.3.2.tgz", - "integrity": "sha512-obxk4x19Zlzj9zY4QeXj9iPCb5W8YGn4v3pn4/fHj0Nw8+R7N02Kvwvz9VpOItCZZD8RC+vnYCDL0gP6FAJ7Xg==", + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.3.4.tgz", + "integrity": "sha512-Kcrn3RiW8NtHBP0ssOAzwa2MsIRQ8lJWiBG/K7JgqPlomA3mtb2DEmp4/hrUA+Jujx+WZ02zqd7GYD+QRBB/2Q==", "dev": true, "requires": { "commander": "^2.20.0", @@ -5098,9 +5098,9 @@ } }, "webpack": { - "version": "4.40.3", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.40.3.tgz", - "integrity": "sha512-sCHHpNE9XLpK4XZ/eGdjiwXBJY7KVdeVymqia1KKO3eVXNI3hwmfwEGA8vJIKop6loBbrEccysPyrtzCSwH2vw==", + "version": "4.41.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.41.0.tgz", + "integrity": "sha512-yNV98U4r7wX1VJAj5kyMsu36T8RPPQntcb5fJLOsMz/pt/WrKC0Vp1bAlqPLkA1LegSwQwf6P+kAbyhRKVQ72g==", "dev": true, "requires": { "@webassemblyjs/ast": "1.8.5", @@ -5227,9 +5227,9 @@ "dev": true }, "yallist": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz", - "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.0.tgz", + "integrity": "sha512-6gpP93MR+VOOehKbCPchro3wFZNSNmek8A2kbkOAZLIZAYx1KP/zAqwO0sOHi3xJEb+UBz8NaYt/17UNit1Q9w==", "dev": true }, "yargs": { diff --git a/src/React.Core/Resources/babel-legacy/package.json b/src/React.Core/Resources/babel-legacy/package.json index 4eae24ddf..8314f7af4 100644 --- a/src/React.Core/Resources/babel-legacy/package.json +++ b/src/React.Core/Resources/babel-legacy/package.json @@ -12,7 +12,7 @@ "babel-preset-es2015": "6.24.1", "babel-preset-stage-0": "6.24.1", "babel-standalone": "6.26.0", - "webpack": "4.40.3", + "webpack": "4.41.0", "webpack-cli": "3.3.9" }, "author": "", diff --git a/src/React.Core/package-lock.json b/src/React.Core/package-lock.json index e280035af..cbc167d64 100644 --- a/src/React.Core/package-lock.json +++ b/src/React.Core/package-lock.json @@ -854,9 +854,9 @@ } }, "chownr": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.2.tgz", - "integrity": "sha512-GkfeAQh+QNy3wquu9oIZr6SS5x7wGdSgNQvD10X3r+AZr1Oys22HW8kAmDMvNg2+Dm0TeGaEuO8gFwdBXxwO8A==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.3.tgz", + "integrity": "sha512-i70fVHhmV3DtTl6nqvZOnIjbY0Pe4kAUjwHj8z0zAdgBtYrJyYwLKCCuRBQ5ppkyL0AkN7HKRnETdmdp1zqNXw==", "dev": true }, "chrome-trace-event": { @@ -938,9 +938,9 @@ "dev": true }, "commander": { - "version": "2.20.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz", - "integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==", + "version": "2.20.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.1.tgz", + "integrity": "sha512-cCuLsMhJeWQ/ZpsFTbE765kvVfoeSddc4nU3up4fV+fDBcfUXnbITJ+JzhkdjzOqhURjZgujxaioam4RM9yGUg==", "dev": true }, "commondir": { @@ -1239,9 +1239,9 @@ "dev": true }, "end-of-stream": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.3.tgz", - "integrity": "sha512-cbNhPFS6MlYlWTGncSiDYbdqKhwWFy7kNeb1YSOG6K65i/wPTkLVCJQj0hXA4j0m5Da+hBWnqopEnu1FFelisQ==", + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", "dev": true, "requires": { "once": "^1.4.0" @@ -4030,9 +4030,9 @@ "dev": true }, "terser": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.3.2.tgz", - "integrity": "sha512-obxk4x19Zlzj9zY4QeXj9iPCb5W8YGn4v3pn4/fHj0Nw8+R7N02Kvwvz9VpOItCZZD8RC+vnYCDL0gP6FAJ7Xg==", + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.3.4.tgz", + "integrity": "sha512-Kcrn3RiW8NtHBP0ssOAzwa2MsIRQ8lJWiBG/K7JgqPlomA3mtb2DEmp4/hrUA+Jujx+WZ02zqd7GYD+QRBB/2Q==", "dev": true, "requires": { "commander": "^2.20.0", @@ -4353,9 +4353,9 @@ } }, "webpack": { - "version": "4.40.3", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.40.3.tgz", - "integrity": "sha512-sCHHpNE9XLpK4XZ/eGdjiwXBJY7KVdeVymqia1KKO3eVXNI3hwmfwEGA8vJIKop6loBbrEccysPyrtzCSwH2vw==", + "version": "4.41.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.41.0.tgz", + "integrity": "sha512-yNV98U4r7wX1VJAj5kyMsu36T8RPPQntcb5fJLOsMz/pt/WrKC0Vp1bAlqPLkA1LegSwQwf6P+kAbyhRKVQ72g==", "dev": true, "requires": { "@webassemblyjs/ast": "1.8.5", @@ -4504,9 +4504,9 @@ "dev": true }, "yallist": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz", - "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.0.tgz", + "integrity": "sha512-6gpP93MR+VOOehKbCPchro3wFZNSNmek8A2kbkOAZLIZAYx1KP/zAqwO0sOHi3xJEb+UBz8NaYt/17UNit1Q9w==", "dev": true }, "yargs": { diff --git a/src/React.Core/package.json b/src/React.Core/package.json index 61b4748cf..fa9de98eb 100644 --- a/src/React.Core/package.json +++ b/src/React.Core/package.json @@ -11,7 +11,7 @@ "prop-types": "15.7.2", "react": "16.10.1", "react-dom": "16.10.1", - "webpack": "4.40.3", + "webpack": "4.41.0", "webpack-cli": "3.3.9" } } diff --git a/src/React.Sample.Webpack.CoreMvc/package-lock.json b/src/React.Sample.Webpack.CoreMvc/package-lock.json index 639119e26..d9062a352 100644 --- a/src/React.Sample.Webpack.CoreMvc/package-lock.json +++ b/src/React.Sample.Webpack.CoreMvc/package-lock.json @@ -2136,9 +2136,9 @@ } }, "chownr": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.2.tgz", - "integrity": "sha512-GkfeAQh+QNy3wquu9oIZr6SS5x7wGdSgNQvD10X3r+AZr1Oys22HW8kAmDMvNg2+Dm0TeGaEuO8gFwdBXxwO8A==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.3.tgz", + "integrity": "sha512-i70fVHhmV3DtTl6nqvZOnIjbY0Pe4kAUjwHj8z0zAdgBtYrJyYwLKCCuRBQ5ppkyL0AkN7HKRnETdmdp1zqNXw==", "dev": true }, "chrome-trace-event": { @@ -2225,9 +2225,9 @@ "dev": true }, "commander": { - "version": "2.20.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz", - "integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==", + "version": "2.20.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.1.tgz", + "integrity": "sha512-cCuLsMhJeWQ/ZpsFTbE765kvVfoeSddc4nU3up4fV+fDBcfUXnbITJ+JzhkdjzOqhURjZgujxaioam4RM9yGUg==", "dev": true }, "commondir": { @@ -6324,9 +6324,9 @@ "dev": true }, "terser": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.3.2.tgz", - "integrity": "sha512-obxk4x19Zlzj9zY4QeXj9iPCb5W8YGn4v3pn4/fHj0Nw8+R7N02Kvwvz9VpOItCZZD8RC+vnYCDL0gP6FAJ7Xg==", + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.3.4.tgz", + "integrity": "sha512-Kcrn3RiW8NtHBP0ssOAzwa2MsIRQ8lJWiBG/K7JgqPlomA3mtb2DEmp4/hrUA+Jujx+WZ02zqd7GYD+QRBB/2Q==", "dev": true, "requires": { "commander": "^2.20.0", @@ -6789,9 +6789,9 @@ } }, "webpack": { - "version": "4.40.3", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.40.3.tgz", - "integrity": "sha512-sCHHpNE9XLpK4XZ/eGdjiwXBJY7KVdeVymqia1KKO3eVXNI3hwmfwEGA8vJIKop6loBbrEccysPyrtzCSwH2vw==", + "version": "4.41.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.41.0.tgz", + "integrity": "sha512-yNV98U4r7wX1VJAj5kyMsu36T8RPPQntcb5fJLOsMz/pt/WrKC0Vp1bAlqPLkA1LegSwQwf6P+kAbyhRKVQ72g==", "dev": true, "requires": { "@webassemblyjs/ast": "1.8.5", @@ -6998,9 +6998,9 @@ "dev": true }, "yallist": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz", - "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.0.tgz", + "integrity": "sha512-6gpP93MR+VOOehKbCPchro3wFZNSNmek8A2kbkOAZLIZAYx1KP/zAqwO0sOHi3xJEb+UBz8NaYt/17UNit1Q9w==", "dev": true }, "yargs": { diff --git a/src/React.Sample.Webpack.CoreMvc/package.json b/src/React.Sample.Webpack.CoreMvc/package.json index a15002e87..2bf0b6581 100644 --- a/src/React.Sample.Webpack.CoreMvc/package.json +++ b/src/React.Sample.Webpack.CoreMvc/package.json @@ -28,7 +28,7 @@ "@babel/preset-react": "7.0.0", "babel-loader": "8.0.6", "babel-runtime": "6.26.0", - "webpack": "4.40.3", + "webpack": "4.41.0", "webpack-cli": "3.3.9" } } From d6828c714fef514a02c58baeb7eb977dfb4dec42 Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Sat, 28 Sep 2019 22:50:37 -0700 Subject: [PATCH 300/530] Reference .NET Core 3.0.0 release (#918) --- azure-pipelines.yml | 2 +- src/React.AspNet.Middleware/React.AspNet.Middleware.csproj | 2 +- src/React.AspNet/React.AspNet.csproj | 2 +- src/React.Router/React.Router.csproj | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 9d4afe505..995ec531e 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -19,7 +19,7 @@ steps: - task: DotNetCoreInstaller@0 inputs: packageType: 'sdk' - version: '3.0.100-rc1-014190' + version: '3.0.100' - task: VSBuild@1 inputs: diff --git a/src/React.AspNet.Middleware/React.AspNet.Middleware.csproj b/src/React.AspNet.Middleware/React.AspNet.Middleware.csproj index c57c77237..3f7ebf803 100644 --- a/src/React.AspNet.Middleware/React.AspNet.Middleware.csproj +++ b/src/React.AspNet.Middleware/React.AspNet.Middleware.csproj @@ -49,7 +49,7 @@ - + diff --git a/src/React.AspNet/React.AspNet.csproj b/src/React.AspNet/React.AspNet.csproj index 471d5ba30..d1859cb94 100644 --- a/src/React.AspNet/React.AspNet.csproj +++ b/src/React.AspNet/React.AspNet.csproj @@ -42,7 +42,7 @@ - + diff --git a/src/React.Router/React.Router.csproj b/src/React.Router/React.Router.csproj index 7a1806834..ee1e7a2b7 100644 --- a/src/React.Router/React.Router.csproj +++ b/src/React.Router/React.Router.csproj @@ -40,7 +40,7 @@ - + From 481e817af5e41b06b4c7841691cbc9fdbb91debc Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Sat, 28 Sep 2019 22:53:33 -0700 Subject: [PATCH 301/530] 5.1.1 --- build.proj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.proj b/build.proj index 7f84ad4bd..956e023c7 100644 --- a/build.proj +++ b/build.proj @@ -11,7 +11,7 @@ of patent rights can be found in the PATENTS file in the same directory. 5 1 - 0 + 1 0 http://reactjs.net/packages/ $(MSBuildProjectDirectory)\tools\MSBuildTasks From ad227f5004f5b934d6491aa20441010d45d1114e Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Mon, 30 Sep 2019 16:29:04 +0000 Subject: [PATCH 302/530] Update dependency @types/react to v16.9.4 --- src/React.Sample.Mvc4/package-lock.json | 6 +++--- src/React.Sample.Mvc4/package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/React.Sample.Mvc4/package-lock.json b/src/React.Sample.Mvc4/package-lock.json index 95530b4a2..38e69d93e 100644 --- a/src/React.Sample.Mvc4/package-lock.json +++ b/src/React.Sample.Mvc4/package-lock.json @@ -11,9 +11,9 @@ "dev": true }, "@types/react": { - "version": "16.9.3", - "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.3.tgz", - "integrity": "sha512-Ogb2nSn+2qQv5opoCv7Ls5yFxtyrdUYxp5G+SWTrlGk7dmFKw331GiezCgEZj9U7QeXJi1CDtws9pdXU1zUL4g==", + "version": "16.9.4", + "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.4.tgz", + "integrity": "sha512-ItGNmJvQ0IvWt8rbk5PLdpdQhvBVxAaXI9hDlx7UMd8Ie1iMIuwMNiKeTfmVN517CdplpyXvA22X4zm4jGGZnw==", "dev": true, "requires": { "@types/prop-types": "*", diff --git a/src/React.Sample.Mvc4/package.json b/src/React.Sample.Mvc4/package.json index 26dd8c4d6..b421d2871 100644 --- a/src/React.Sample.Mvc4/package.json +++ b/src/React.Sample.Mvc4/package.json @@ -7,7 +7,7 @@ "lint:ts": "tsc" }, "devDependencies": { - "@types/react": "16.9.3", + "@types/react": "16.9.4", "@types/react-dom": "16.9.1", "@types/reactstrap": "8.0.4", "typescript": "3.6.3" From 74ffeda0d3aad6cc9ff54e2da9e82bb892d49cef Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Tue, 1 Oct 2019 15:59:38 +0000 Subject: [PATCH 303/530] Update dependency React.AspNet to v5.1.1 --- tutorial-code/tutorial-code.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tutorial-code/tutorial-code.csproj b/tutorial-code/tutorial-code.csproj index 6d70f4b9a..79849928d 100644 --- a/tutorial-code/tutorial-code.csproj +++ b/tutorial-code/tutorial-code.csproj @@ -20,7 +20,7 @@ - + From 4e2c3506fce81ed38554f3f58d457dd74e360302 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Thu, 3 Oct 2019 21:28:25 +0000 Subject: [PATCH 304/530] Update react monorepo to v16.10.2 --- src/React.Core/package-lock.json | 20 ++++++++++---------- src/React.Core/package.json | 4 ++-- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/React.Core/package-lock.json b/src/React.Core/package-lock.json index 4c6eff901..f56771478 100644 --- a/src/React.Core/package-lock.json +++ b/src/React.Core/package-lock.json @@ -3449,9 +3449,9 @@ } }, "react": { - "version": "16.10.1", - "resolved": "https://registry.npmjs.org/react/-/react-16.10.1.tgz", - "integrity": "sha512-2bisHwMhxQ3XQz4LiJJwG3360pY965pTl/MRrZYxIBKVj4fOHoDs5aZAkYXGxDRO1Li+SyjTAilQEbOmtQJHzA==", + "version": "16.10.2", + "resolved": "https://registry.npmjs.org/react/-/react-16.10.2.tgz", + "integrity": "sha512-MFVIq0DpIhrHFyqLU0S3+4dIcBhhOvBE8bJ/5kHPVOVaGdo0KuiQzpcjCPsf585WvhypqtrMILyoE2th6dT+Lw==", "dev": true, "requires": { "loose-envify": "^1.1.0", @@ -3460,15 +3460,15 @@ } }, "react-dom": { - "version": "16.10.1", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.10.1.tgz", - "integrity": "sha512-SmM4ZW0uug0rn95U8uqr52I7UdNf6wdGLeXDmNLfg3y5q5H9eAbdjF5ubQc3bjDyRrvdAB2IKG7X0GzSpnn5Mg==", + "version": "16.10.2", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.10.2.tgz", + "integrity": "sha512-kWGDcH3ItJK4+6Pl9DZB16BXYAZyrYQItU4OMy0jAkv5aNqc+mAKb4TpFtAteI6TJZu+9ZlNhaeNQSVQDHJzkw==", "dev": true, "requires": { "loose-envify": "^1.1.0", "object-assign": "^4.1.1", "prop-types": "^15.6.2", - "scheduler": "^0.16.1" + "scheduler": "^0.16.2" } }, "react-is": { @@ -3646,9 +3646,9 @@ } }, "scheduler": { - "version": "0.16.1", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.16.1.tgz", - "integrity": "sha512-MIuie7SgsqMYOdCXVFZa8SKoNorJZUWHW8dPgto7uEHn1lX3fg2Gu0TzgK8USj76uxV7vB5eRMnZs/cdEHg+cg==", + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.16.2.tgz", + "integrity": "sha512-BqYVWqwz6s1wZMhjFvLfVR5WXP7ZY32M/wYPo04CcuPM7XZEbV2TBNW7Z0UkguPTl0dWMA59VbNXxK6q+pHItg==", "dev": true, "requires": { "loose-envify": "^1.1.0", diff --git a/src/React.Core/package.json b/src/React.Core/package.json index f4987af91..9791b8e2b 100644 --- a/src/React.Core/package.json +++ b/src/React.Core/package.json @@ -9,8 +9,8 @@ "@babel/core": "7.6.2", "@babel/standalone": "7.6.2", "prop-types": "15.7.2", - "react": "16.10.1", - "react-dom": "16.10.1", + "react": "16.10.2", + "react-dom": "16.10.2", "webpack": "4.41.0", "webpack-cli": "3.3.9" } From 0fed3e8fa9cb24912e58dd8a554db2d6e4f2b4fa Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Thu, 3 Oct 2019 22:33:53 +0000 Subject: [PATCH 305/530] Update dependency @types/react to v16.9.5 --- src/React.Sample.Mvc4/package-lock.json | 6 +++--- src/React.Sample.Mvc4/package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/React.Sample.Mvc4/package-lock.json b/src/React.Sample.Mvc4/package-lock.json index 38e69d93e..d0ec020e0 100644 --- a/src/React.Sample.Mvc4/package-lock.json +++ b/src/React.Sample.Mvc4/package-lock.json @@ -11,9 +11,9 @@ "dev": true }, "@types/react": { - "version": "16.9.4", - "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.4.tgz", - "integrity": "sha512-ItGNmJvQ0IvWt8rbk5PLdpdQhvBVxAaXI9hDlx7UMd8Ie1iMIuwMNiKeTfmVN517CdplpyXvA22X4zm4jGGZnw==", + "version": "16.9.5", + "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.5.tgz", + "integrity": "sha512-jQ12VMiFOWYlp+j66dghOWcmDDwhca0bnlcTxS4Qz/fh5gi6wpaZDthPEu/Gc/YlAuO87vbiUXL8qKstFvuOaA==", "dev": true, "requires": { "@types/prop-types": "*", diff --git a/src/React.Sample.Mvc4/package.json b/src/React.Sample.Mvc4/package.json index b421d2871..7245c99b4 100644 --- a/src/React.Sample.Mvc4/package.json +++ b/src/React.Sample.Mvc4/package.json @@ -7,7 +7,7 @@ "lint:ts": "tsc" }, "devDependencies": { - "@types/react": "16.9.4", + "@types/react": "16.9.5", "@types/react-dom": "16.9.1", "@types/reactstrap": "8.0.4", "typescript": "3.6.3" From ad1a504c61f0ce34e4cbdb697fd980bd074b1580 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 3 Oct 2019 23:14:06 -0400 Subject: [PATCH 306/530] Update dependency Octokit to v0.35.0 (#928) --- webhooks/React.Site.Hooks.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/webhooks/React.Site.Hooks.csproj b/webhooks/React.Site.Hooks.csproj index 86510cea1..42fcb2269 100644 --- a/webhooks/React.Site.Hooks.csproj +++ b/webhooks/React.Site.Hooks.csproj @@ -4,7 +4,7 @@ - + From c2c35dfe7f534e70dd81313192805c2658ce9f9d Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Thu, 3 Oct 2019 20:22:37 -0700 Subject: [PATCH 307/530] Bump webpack dependencies to fix low-risk security warnings (#932) --- src/React.Core/package-lock.json | 475 +++++++++--------- .../package-lock.json | 43 +- 2 files changed, 236 insertions(+), 282 deletions(-) diff --git a/src/React.Core/package-lock.json b/src/React.Core/package-lock.json index f56771478..b95e353a1 100644 --- a/src/React.Core/package-lock.json +++ b/src/React.Core/package-lock.json @@ -543,13 +543,13 @@ "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", "dev": true, "requires": { - "cache-base": "1.0.1", - "class-utils": "0.3.6", - "component-emitter": "1.2.1", - "define-property": "1.0.0", - "isobject": "3.0.1", - "mixin-deep": "1.3.1", - "pascalcase": "0.1.1" + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" }, "dependencies": { "define-property": { @@ -558,7 +558,7 @@ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "is-accessor-descriptor": { @@ -567,7 +567,7 @@ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -576,7 +576,7 @@ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -585,9 +585,9 @@ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } } } @@ -638,16 +638,16 @@ "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "dev": true, "requires": { - "arr-flatten": "1.1.0", - "array-unique": "0.3.2", - "extend-shallow": "2.0.1", - "fill-range": "4.0.0", - "isobject": "3.0.1", - "repeat-element": "1.1.2", - "snapdragon": "0.8.2", - "snapdragon-node": "2.1.1", - "split-string": "3.1.0", - "to-regex": "3.0.2" + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" }, "dependencies": { "extend-shallow": { @@ -656,7 +656,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -804,15 +804,15 @@ "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", "dev": true, "requires": { - "collection-visit": "1.0.0", - "component-emitter": "1.2.1", - "get-value": "2.0.6", - "has-value": "1.0.0", - "isobject": "3.0.1", - "set-value": "2.0.0", - "to-object-path": "0.3.0", - "union-value": "1.0.0", - "unset-value": "1.0.0" + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" } }, "camelcase": { @@ -883,10 +883,10 @@ "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", "dev": true, "requires": { - "arr-union": "3.1.0", - "define-property": "0.2.5", - "isobject": "3.0.1", - "static-extend": "0.1.2" + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" }, "dependencies": { "define-property": { @@ -895,7 +895,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } } } @@ -917,8 +917,8 @@ "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", "dev": true, "requires": { - "map-visit": "1.0.0", - "object-visit": "1.0.1" + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" } }, "color-convert": { @@ -1130,8 +1130,8 @@ "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", "dev": true, "requires": { - "is-descriptor": "1.0.2", - "isobject": "3.0.1" + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" }, "dependencies": { "is-accessor-descriptor": { @@ -1140,7 +1140,7 @@ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -1149,7 +1149,7 @@ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -1158,9 +1158,9 @@ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } } } @@ -1263,9 +1263,9 @@ "integrity": "sha512-F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng==", "dev": true, "requires": { - "graceful-fs": "4.1.15", - "memory-fs": "0.4.1", - "tapable": "1.1.1" + "graceful-fs": "^4.1.2", + "memory-fs": "^0.4.0", + "tapable": "^1.0.0" }, "dependencies": { "graceful-fs": { @@ -1286,8 +1286,8 @@ "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", "dev": true, "requires": { - "errno": "0.1.6", - "readable-stream": "2.3.6" + "errno": "^0.1.3", + "readable-stream": "^2.0.1" } }, "process-nextick-args": { @@ -1302,13 +1302,13 @@ "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "dev": true, "requires": { - "core-util-is": "1.0.2", - "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.2" + "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" } }, "string_decoder": { @@ -1317,7 +1317,7 @@ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "requires": { - "safe-buffer": "5.1.1" + "safe-buffer": "~5.1.0" } } } @@ -1328,7 +1328,7 @@ "integrity": "sha512-IsORQDpaaSwcDP4ZZnHxgE85werpo34VYn1Ud3mq+eUsF593faR8oCZNXrROVkpFu2TsbrNhHin0aUrTsQ9vNw==", "dev": true, "requires": { - "prr": "1.0.1" + "prr": "~1.0.1" } }, "escape-string-regexp": { @@ -1405,13 +1405,13 @@ "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "dev": true, "requires": { - "debug": "2.6.9", - "define-property": "0.2.5", - "extend-shallow": "2.0.1", - "posix-character-classes": "0.1.1", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" }, "dependencies": { "define-property": { @@ -1420,7 +1420,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "extend-shallow": { @@ -1429,7 +1429,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -1449,8 +1449,8 @@ "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", "dev": true, "requires": { - "assign-symbols": "1.0.0", - "is-extendable": "1.0.1" + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" }, "dependencies": { "is-extendable": { @@ -1459,7 +1459,7 @@ "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "dev": true, "requires": { - "is-plain-object": "2.0.4" + "is-plain-object": "^2.0.4" } } } @@ -1470,14 +1470,14 @@ "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", "dev": true, "requires": { - "array-unique": "0.3.2", - "define-property": "1.0.0", - "expand-brackets": "2.1.4", - "extend-shallow": "2.0.1", - "fragment-cache": "0.2.1", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" }, "dependencies": { "define-property": { @@ -1486,7 +1486,7 @@ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "extend-shallow": { @@ -1495,7 +1495,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "is-accessor-descriptor": { @@ -1504,7 +1504,7 @@ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -1513,7 +1513,7 @@ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -1522,9 +1522,9 @@ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } } } @@ -1553,10 +1553,10 @@ "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "dev": true, "requires": { - "extend-shallow": "2.0.1", - "is-number": "3.0.0", - "repeat-string": "1.6.1", - "to-regex-range": "2.1.1" + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" }, "dependencies": { "extend-shallow": { @@ -1565,7 +1565,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -1624,7 +1624,7 @@ "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", "dev": true, "requires": { - "map-cache": "0.2.2" + "map-cache": "^0.2.2" } }, "from2": { @@ -2318,9 +2318,9 @@ "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", "dev": true, "requires": { - "get-value": "2.0.6", - "has-values": "1.0.0", - "isobject": "3.0.1" + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" } }, "has-values": { @@ -2329,8 +2329,8 @@ "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", "dev": true, "requires": { - "is-number": "3.0.0", - "kind-of": "4.0.0" + "is-number": "^3.0.0", + "kind-of": "^4.0.0" }, "dependencies": { "kind-of": { @@ -2339,7 +2339,7 @@ "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -2464,7 +2464,7 @@ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -2473,7 +2473,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -2499,7 +2499,7 @@ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -2508,7 +2508,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -2519,9 +2519,9 @@ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "dev": true, "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" }, "dependencies": { "kind-of": { @@ -2565,7 +2565,7 @@ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -2574,7 +2574,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -2585,7 +2585,7 @@ "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "dev": true, "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.1" } }, "is-stream": { @@ -2692,9 +2692,9 @@ "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==", "dev": true, "requires": { - "big.js": "5.2.2", - "emojis-list": "2.1.0", - "json5": "1.0.1" + "big.js": "^5.2.2", + "emojis-list": "^2.0.0", + "json5": "^1.0.1" }, "dependencies": { "json5": { @@ -2703,7 +2703,7 @@ "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", "dev": true, "requires": { - "minimist": "1.2.0" + "minimist": "^1.2.0" } }, "minimist": { @@ -2720,8 +2720,8 @@ "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", "dev": true, "requires": { - "p-locate": "3.0.0", - "path-exists": "3.0.0" + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" } }, "lodash": { @@ -2785,7 +2785,7 @@ "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", "dev": true, "requires": { - "object-visit": "1.0.1" + "object-visit": "^1.0.0" } }, "md5.js": { @@ -2834,19 +2834,19 @@ "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "dev": true, "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "braces": "2.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "extglob": "2.0.4", - "fragment-cache": "0.2.1", - "kind-of": "6.0.2", - "nanomatch": "1.2.13", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" } }, "miller-rabin": { @@ -2911,13 +2911,13 @@ } }, "mixin-deep": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", - "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", "dev": true, "requires": { - "for-in": "1.0.2", - "is-extendable": "1.0.1" + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" }, "dependencies": { "is-extendable": { @@ -2926,7 +2926,7 @@ "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "dev": true, "requires": { - "is-plain-object": "2.0.4" + "is-plain-object": "^2.0.4" } } } @@ -2973,17 +2973,17 @@ "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", "dev": true, "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "fragment-cache": "0.2.1", - "is-windows": "1.0.2", - "kind-of": "6.0.2", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" } }, "neo-async": { @@ -3064,9 +3064,9 @@ "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", "dev": true, "requires": { - "copy-descriptor": "0.1.1", - "define-property": "0.2.5", - "kind-of": "3.2.2" + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" }, "dependencies": { "define-property": { @@ -3075,7 +3075,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "kind-of": { @@ -3084,7 +3084,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -3095,7 +3095,7 @@ "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", "dev": true, "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.0" } }, "object.pick": { @@ -3104,7 +3104,7 @@ "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", "dev": true, "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.1" } }, "once": { @@ -3113,7 +3113,7 @@ "integrity": "sha1-suJhVXzkwxTsgwTz+oJmPkKXyiA=", "dev": true, "requires": { - "wrappy": "1.0.2" + "wrappy": "1" } }, "os-browserify": { @@ -3157,7 +3157,7 @@ "integrity": "sha512-NhURkNcrVB+8hNfLuysU8enY5xn2KXphsHBaC2YmRNTZRc7RWusw6apSpdEj3jo4CMb6W9nrF6tTnsJsJeyu6g==", "dev": true, "requires": { - "p-try": "2.0.0" + "p-try": "^2.0.0" } }, "p-locate": { @@ -3166,7 +3166,7 @@ "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", "dev": true, "requires": { - "p-limit": "2.1.0" + "p-limit": "^2.0.0" } }, "p-try": { @@ -3312,9 +3312,9 @@ "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", "dev": true, "requires": { - "loose-envify": "1.4.0", - "object-assign": "4.1.1", - "react-is": "16.8.2" + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.8.1" }, "dependencies": { "loose-envify": { @@ -3323,7 +3323,7 @@ "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", "dev": true, "requires": { - "js-tokens": "3.0.2" + "js-tokens": "^3.0.0 || ^4.0.0" } } } @@ -3362,8 +3362,8 @@ "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", "dev": true, "requires": { - "end-of-stream": "1.4.1", - "once": "1.3.3" + "end-of-stream": "^1.1.0", + "once": "^1.3.1" }, "dependencies": { "end-of-stream": { @@ -3372,7 +3372,7 @@ "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", "dev": true, "requires": { - "once": "1.4.0" + "once": "^1.4.0" }, "dependencies": { "once": { @@ -3381,7 +3381,7 @@ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "dev": true, "requires": { - "wrappy": "1.0.2" + "wrappy": "1" } } } @@ -3509,8 +3509,8 @@ "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", "dev": true, "requires": { - "extend-shallow": "3.0.2", - "safe-regex": "1.1.0" + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" } }, "remove-trailing-separator": { @@ -3642,7 +3642,7 @@ "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", "dev": true, "requires": { - "ret": "0.1.15" + "ret": "~0.1.10" } }, "scheduler": { @@ -3685,15 +3685,15 @@ "dev": true }, "set-value": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", - "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", "dev": true, "requires": { - "extend-shallow": "2.0.1", - "is-extendable": "0.1.1", - "is-plain-object": "2.0.4", - "split-string": "3.1.0" + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" }, "dependencies": { "extend-shallow": { @@ -3702,7 +3702,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -3750,14 +3750,14 @@ "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", "dev": true, "requires": { - "base": "0.11.2", - "debug": "2.6.9", - "define-property": "0.2.5", - "extend-shallow": "2.0.1", - "map-cache": "0.2.2", - "source-map": "0.5.7", - "source-map-resolve": "0.5.2", - "use": "3.1.1" + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" }, "dependencies": { "define-property": { @@ -3766,7 +3766,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "extend-shallow": { @@ -3775,7 +3775,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -3786,9 +3786,9 @@ "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", "dev": true, "requires": { - "define-property": "1.0.0", - "isobject": "3.0.1", - "snapdragon-util": "3.0.1" + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" }, "dependencies": { "define-property": { @@ -3797,7 +3797,7 @@ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "is-accessor-descriptor": { @@ -3806,7 +3806,7 @@ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -3815,7 +3815,7 @@ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -3824,9 +3824,9 @@ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } } } @@ -3837,7 +3837,7 @@ "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.2.0" }, "dependencies": { "kind-of": { @@ -3846,7 +3846,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -3869,11 +3869,11 @@ "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", "dev": true, "requires": { - "atob": "2.1.2", - "decode-uri-component": "0.2.0", - "resolve-url": "0.2.1", - "source-map-url": "0.4.0", - "urix": "0.1.0" + "atob": "^2.1.1", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" } }, "source-map-support": { @@ -3906,7 +3906,7 @@ "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", "dev": true, "requires": { - "extend-shallow": "3.0.2" + "extend-shallow": "^3.0.0" } }, "ssri": { @@ -3924,8 +3924,8 @@ "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", "dev": true, "requires": { - "define-property": "0.2.5", - "object-copy": "0.1.0" + "define-property": "^0.2.5", + "object-copy": "^0.1.0" }, "dependencies": { "define-property": { @@ -3934,7 +3934,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } } } @@ -4109,7 +4109,7 @@ "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -4118,7 +4118,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -4129,10 +4129,10 @@ "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", "dev": true, "requires": { - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "regex-not": "1.0.2", - "safe-regex": "1.1.0" + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" } }, "to-regex-range": { @@ -4141,8 +4141,8 @@ "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", "dev": true, "requires": { - "is-number": "3.0.0", - "repeat-string": "1.6.1" + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" } }, "tslib": { @@ -4164,38 +4164,15 @@ "dev": true }, "union-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", - "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", "dev": true, "requires": { - "arr-union": "3.1.0", - "get-value": "2.0.6", - "is-extendable": "0.1.1", - "set-value": "0.4.3" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "0.1.1" - } - }, - "set-value": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", - "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", - "dev": true, - "requires": { - "extend-shallow": "2.0.1", - "is-extendable": "0.1.1", - "is-plain-object": "2.0.4", - "to-object-path": "0.3.0" - } - } + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" } }, "unique-filename": { @@ -4222,8 +4199,8 @@ "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", "dev": true, "requires": { - "has-value": "0.3.1", - "isobject": "3.0.1" + "has-value": "^0.3.1", + "isobject": "^3.0.0" }, "dependencies": { "has-value": { @@ -4232,9 +4209,9 @@ "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", "dev": true, "requires": { - "get-value": "2.0.6", - "has-values": "0.1.4", - "isobject": "2.1.0" + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" }, "dependencies": { "isobject": { diff --git a/src/React.Sample.Webpack.CoreMvc/package-lock.json b/src/React.Sample.Webpack.CoreMvc/package-lock.json index f9f0de5d6..0d196061e 100644 --- a/src/React.Sample.Webpack.CoreMvc/package-lock.json +++ b/src/React.Sample.Webpack.CoreMvc/package-lock.json @@ -4682,9 +4682,9 @@ } }, "mixin-deep": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", - "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", "dev": true, "requires": { "for-in": "^1.0.2", @@ -5926,9 +5926,9 @@ "dev": true }, "set-value": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", - "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", "dev": true, "requires": { "extend-shallow": "^2.0.1", @@ -6638,38 +6638,15 @@ "dev": true }, "union-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", - "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", "dev": true, "requires": { "arr-union": "^3.1.0", "get-value": "^2.0.6", "is-extendable": "^0.1.1", - "set-value": "^0.4.3" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "set-value": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", - "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.1", - "to-object-path": "^0.3.0" - } - } + "set-value": "^2.0.1" } }, "unique-filename": { From 6797a39320ae5d27272fdb6039a6efce0c46f986 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Tue, 8 Oct 2019 20:08:07 +0000 Subject: [PATCH 308/530] Update babel monorepo to v7.6.3 --- src/React.Core/package-lock.json | 70 +++++--- src/React.Core/package.json | 2 +- .../package-lock.json | 163 ++++++++++++------ src/React.Sample.Webpack.CoreMvc/package.json | 4 +- 4 files changed, 151 insertions(+), 88 deletions(-) diff --git a/src/React.Core/package-lock.json b/src/React.Core/package-lock.json index b95e353a1..157cfc7b6 100644 --- a/src/React.Core/package-lock.json +++ b/src/React.Core/package-lock.json @@ -14,25 +14,25 @@ } }, "@babel/core": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.6.2.tgz", - "integrity": "sha512-l8zto/fuoZIbncm+01p8zPSDZu/VuuJhAfA7d/AbzM09WR7iVhavvfNDYCNpo1VvLk6E6xgAoP9P+/EMJHuRkQ==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.6.3.tgz", + "integrity": "sha512-QfQ5jTBgXLzJuo7Mo8bZK/ePywmgNRgk/UQykiKwEtZPiFIn8ZqE6jB+AnD1hbB1S2xQyL4//it5vuAUOVAMTw==", "dev": true, "requires": { "@babel/code-frame": "^7.5.5", - "@babel/generator": "^7.6.2", + "@babel/generator": "^7.6.3", "@babel/helpers": "^7.6.2", - "@babel/parser": "^7.6.2", + "@babel/parser": "^7.6.3", "@babel/template": "^7.6.0", - "@babel/traverse": "^7.6.2", - "@babel/types": "^7.6.0", + "@babel/traverse": "^7.6.3", + "@babel/types": "^7.6.3", "convert-source-map": "^1.1.0", "debug": "^4.1.0", "json5": "^2.1.0", "lodash": "^4.17.13", "resolve": "^1.3.2", "semver": "^5.4.1", - "source-map": "^0.5.0" + "source-map": "^0.6.1" }, "dependencies": { "debug": { @@ -49,19 +49,33 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "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 } } }, "@babel/generator": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.6.2.tgz", - "integrity": "sha512-j8iHaIW4gGPnViaIHI7e9t/Hl8qLjERI6DcV9kEpAIDJsAOrcnXqRS7t+QbhL76pwbtqP+QCQLL0z1CyVmtjjQ==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.6.3.tgz", + "integrity": "sha512-hLhYbAb3pHwxjlijC4AQ7mqZdcoujiNaW7izCT04CIowHK8psN0IN8QjDv0iyFtycF5FowUOTwDloIheI25aMw==", "dev": true, "requires": { - "@babel/types": "^7.6.0", + "@babel/types": "^7.6.3", "jsesc": "^2.5.1", "lodash": "^4.17.13", - "source-map": "^0.5.0" + "source-map": "^0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } } }, "@babel/helper-function-name": { @@ -124,9 +138,9 @@ } }, "@babel/parser": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.6.2.tgz", - "integrity": "sha512-mdFqWrSPCmikBoaBYMuBulzTIKuXVPtEISFbRRVNwMWpCms/hmE2kRq0bblUHaNRKrjRlmVbx1sDHmjmRgD2Xg==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.6.3.tgz", + "integrity": "sha512-sUZdXlva1dt2Vw2RqbMkmfoImubO0D0gaCrNngV6Hi0DA4x3o4mlrq0tbfY0dZEUIccH8I6wQ4qgEtwcpOR6Qg==", "dev": true }, "@babel/standalone": { @@ -147,17 +161,17 @@ } }, "@babel/traverse": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.6.2.tgz", - "integrity": "sha512-8fRE76xNwNttVEF2TwxJDGBLWthUkHWSldmfuBzVRmEDWOtu4XdINTgN7TDWzuLg4bbeIMLvfMFD9we5YcWkRQ==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.6.3.tgz", + "integrity": "sha512-unn7P4LGsijIxaAJo/wpoU11zN+2IaClkQAxcJWBNCMS6cmVh802IyLHNkAjQ0iYnRS3nnxk5O3fuXW28IMxTw==", "dev": true, "requires": { "@babel/code-frame": "^7.5.5", - "@babel/generator": "^7.6.2", + "@babel/generator": "^7.6.3", "@babel/helper-function-name": "^7.1.0", "@babel/helper-split-export-declaration": "^7.4.4", - "@babel/parser": "^7.6.2", - "@babel/types": "^7.6.0", + "@babel/parser": "^7.6.3", + "@babel/types": "^7.6.3", "debug": "^4.1.0", "globals": "^11.1.0", "lodash": "^4.17.13" @@ -181,9 +195,9 @@ } }, "@babel/types": { - "version": "7.6.1", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.6.1.tgz", - "integrity": "sha512-X7gdiuaCmA0uRjCmRtYJNAVCc/q+5xSgsfKJHqMN4iNLILX39677fJE1O40arPMh0TTtS9ItH67yre6c7k6t0g==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.6.3.tgz", + "integrity": "sha512-CqbcpTxMcpuQTMhjI37ZHVgjBkysg5icREQIEZ0eG1yCNwg3oy+5AaLiOKmjsCj6nqOsa6Hf0ObjRVwokb7srA==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -2649,9 +2663,9 @@ "dev": true }, "json5": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.0.tgz", - "integrity": "sha512-8Mh9h6xViijj36g7Dxi+Y4S6hNGV96vcJZr/SrlHh1LR/pEn/8j/+qIBbs44YKl69Lrfctp4QD+AdWLTMqEZAQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.1.tgz", + "integrity": "sha512-l+3HXD0GEI3huGq1njuqtzYK8OYJyXMkOLtQ53pjWh89tvWS2h6l+1zMkYWqlb57+SiQodKZyvMEFb2X+KrFhQ==", "dev": true, "requires": { "minimist": "^1.2.0" diff --git a/src/React.Core/package.json b/src/React.Core/package.json index 9791b8e2b..6e3587cc2 100644 --- a/src/React.Core/package.json +++ b/src/React.Core/package.json @@ -6,7 +6,7 @@ "build": "webpack" }, "devDependencies": { - "@babel/core": "7.6.2", + "@babel/core": "7.6.3", "@babel/standalone": "7.6.2", "prop-types": "15.7.2", "react": "16.10.2", diff --git a/src/React.Sample.Webpack.CoreMvc/package-lock.json b/src/React.Sample.Webpack.CoreMvc/package-lock.json index 0d196061e..05dc776e2 100644 --- a/src/React.Sample.Webpack.CoreMvc/package-lock.json +++ b/src/React.Sample.Webpack.CoreMvc/package-lock.json @@ -14,31 +14,66 @@ } }, "@babel/core": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.6.2.tgz", - "integrity": "sha512-l8zto/fuoZIbncm+01p8zPSDZu/VuuJhAfA7d/AbzM09WR7iVhavvfNDYCNpo1VvLk6E6xgAoP9P+/EMJHuRkQ==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.6.3.tgz", + "integrity": "sha512-QfQ5jTBgXLzJuo7Mo8bZK/ePywmgNRgk/UQykiKwEtZPiFIn8ZqE6jB+AnD1hbB1S2xQyL4//it5vuAUOVAMTw==", "dev": true, "requires": { "@babel/code-frame": "^7.5.5", - "@babel/generator": "^7.6.2", + "@babel/generator": "^7.6.3", "@babel/helpers": "^7.6.2", - "@babel/parser": "^7.6.2", + "@babel/parser": "^7.6.3", "@babel/template": "^7.6.0", - "@babel/traverse": "^7.6.2", - "@babel/types": "^7.6.0", + "@babel/traverse": "^7.6.3", + "@babel/types": "^7.6.3", "convert-source-map": "^1.1.0", "debug": "^4.1.0", "json5": "^2.1.0", "lodash": "^4.17.13", "resolve": "^1.3.2", "semver": "^5.4.1", - "source-map": "^0.5.0" + "source-map": "^0.6.1" }, "dependencies": { + "@babel/generator": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.6.3.tgz", + "integrity": "sha512-hLhYbAb3pHwxjlijC4AQ7mqZdcoujiNaW7izCT04CIowHK8psN0IN8QjDv0iyFtycF5FowUOTwDloIheI25aMw==", + "dev": true, + "requires": { + "@babel/types": "^7.6.3", + "jsesc": "^2.5.1", + "lodash": "^4.17.13", + "source-map": "^0.6.1" + } + }, + "@babel/parser": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.6.3.tgz", + "integrity": "sha512-sUZdXlva1dt2Vw2RqbMkmfoImubO0D0gaCrNngV6Hi0DA4x3o4mlrq0tbfY0dZEUIccH8I6wQ4qgEtwcpOR6Qg==", + "dev": true + }, + "@babel/traverse": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.6.3.tgz", + "integrity": "sha512-unn7P4LGsijIxaAJo/wpoU11zN+2IaClkQAxcJWBNCMS6cmVh802IyLHNkAjQ0iYnRS3nnxk5O3fuXW28IMxTw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.5.5", + "@babel/generator": "^7.6.3", + "@babel/helper-function-name": "^7.1.0", + "@babel/helper-split-export-declaration": "^7.4.4", + "@babel/parser": "^7.6.3", + "@babel/types": "^7.6.3", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.13" + } + }, "@babel/types": { - "version": "7.6.1", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.6.1.tgz", - "integrity": "sha512-X7gdiuaCmA0uRjCmRtYJNAVCc/q+5xSgsfKJHqMN4iNLILX39677fJE1O40arPMh0TTtS9ItH67yre6c7k6t0g==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.6.3.tgz", + "integrity": "sha512-CqbcpTxMcpuQTMhjI37ZHVgjBkysg5icREQIEZ0eG1yCNwg3oy+5AaLiOKmjsCj6nqOsa6Hf0ObjRVwokb7srA==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -56,9 +91,9 @@ } }, "json5": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.0.tgz", - "integrity": "sha512-8Mh9h6xViijj36g7Dxi+Y4S6hNGV96vcJZr/SrlHh1LR/pEn/8j/+qIBbs44YKl69Lrfctp4QD+AdWLTMqEZAQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.1.tgz", + "integrity": "sha512-l+3HXD0GEI3huGq1njuqtzYK8OYJyXMkOLtQ53pjWh89tvWS2h6l+1zMkYWqlb57+SiQodKZyvMEFb2X+KrFhQ==", "dev": true, "requires": { "minimist": "^1.2.0" @@ -75,6 +110,12 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "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 } } }, @@ -162,9 +203,9 @@ }, "dependencies": { "@babel/types": { - "version": "7.6.1", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.6.1.tgz", - "integrity": "sha512-X7gdiuaCmA0uRjCmRtYJNAVCc/q+5xSgsfKJHqMN4iNLILX39677fJE1O40arPMh0TTtS9ItH67yre6c7k6t0g==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.6.3.tgz", + "integrity": "sha512-CqbcpTxMcpuQTMhjI37ZHVgjBkysg5icREQIEZ0eG1yCNwg3oy+5AaLiOKmjsCj6nqOsa6Hf0ObjRVwokb7srA==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -200,9 +241,9 @@ }, "dependencies": { "@babel/types": { - "version": "7.6.1", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.6.1.tgz", - "integrity": "sha512-X7gdiuaCmA0uRjCmRtYJNAVCc/q+5xSgsfKJHqMN4iNLILX39677fJE1O40arPMh0TTtS9ItH67yre6c7k6t0g==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.6.3.tgz", + "integrity": "sha512-CqbcpTxMcpuQTMhjI37ZHVgjBkysg5icREQIEZ0eG1yCNwg3oy+5AaLiOKmjsCj6nqOsa6Hf0ObjRVwokb7srA==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -252,9 +293,9 @@ }, "dependencies": { "@babel/types": { - "version": "7.6.1", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.6.1.tgz", - "integrity": "sha512-X7gdiuaCmA0uRjCmRtYJNAVCc/q+5xSgsfKJHqMN4iNLILX39677fJE1O40arPMh0TTtS9ItH67yre6c7k6t0g==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.6.3.tgz", + "integrity": "sha512-CqbcpTxMcpuQTMhjI37ZHVgjBkysg5icREQIEZ0eG1yCNwg3oy+5AaLiOKmjsCj6nqOsa6Hf0ObjRVwokb7srA==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -309,9 +350,9 @@ }, "dependencies": { "@babel/types": { - "version": "7.6.1", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.6.1.tgz", - "integrity": "sha512-X7gdiuaCmA0uRjCmRtYJNAVCc/q+5xSgsfKJHqMN4iNLILX39677fJE1O40arPMh0TTtS9ItH67yre6c7k6t0g==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.6.3.tgz", + "integrity": "sha512-CqbcpTxMcpuQTMhjI37ZHVgjBkysg5icREQIEZ0eG1yCNwg3oy+5AaLiOKmjsCj6nqOsa6Hf0ObjRVwokb7srA==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -428,9 +469,9 @@ }, "dependencies": { "@babel/types": { - "version": "7.6.1", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.6.1.tgz", - "integrity": "sha512-X7gdiuaCmA0uRjCmRtYJNAVCc/q+5xSgsfKJHqMN4iNLILX39677fJE1O40arPMh0TTtS9ItH67yre6c7k6t0g==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.6.3.tgz", + "integrity": "sha512-CqbcpTxMcpuQTMhjI37ZHVgjBkysg5icREQIEZ0eG1yCNwg3oy+5AaLiOKmjsCj6nqOsa6Hf0ObjRVwokb7srA==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -452,9 +493,9 @@ }, "dependencies": { "@babel/types": { - "version": "7.6.1", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.6.1.tgz", - "integrity": "sha512-X7gdiuaCmA0uRjCmRtYJNAVCc/q+5xSgsfKJHqMN4iNLILX39677fJE1O40arPMh0TTtS9ItH67yre6c7k6t0g==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.6.3.tgz", + "integrity": "sha512-CqbcpTxMcpuQTMhjI37ZHVgjBkysg5icREQIEZ0eG1yCNwg3oy+5AaLiOKmjsCj6nqOsa6Hf0ObjRVwokb7srA==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -645,9 +686,9 @@ } }, "@babel/plugin-transform-block-scoping": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.6.2.tgz", - "integrity": "sha512-zZT8ivau9LOQQaOGC7bQLQOT4XPkPXgN2ERfUgk1X8ql+mVkLc4E8eKk+FO3o0154kxzqenWCorfmEXpEZcrSQ==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.6.3.tgz", + "integrity": "sha512-7hvrg75dubcO3ZI2rjYTzUrEuh1E9IyDEhhB6qfcooxhDA33xx2MasuLVgdxzcP6R/lipAC6n9ub9maNW6RKdw==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0", @@ -800,9 +841,9 @@ } }, "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.6.2.tgz", - "integrity": "sha512-xBdB+XOs+lgbZc2/4F5BVDVcDNS4tcSKQc96KmlqLEAwz6tpYPEvPdmDfvVG0Ssn8lAhronaRs6Z6KSexIpK5g==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.6.3.tgz", + "integrity": "sha512-jTkk7/uE6H2s5w6VlMHeWuH+Pcy2lmdwFoeWCVnvIrDUnB5gQqTVI8WfmEAhF2CDEarGrknZcmSFg1+bkfCoSw==", "dev": true, "requires": { "regexpu-core": "^4.6.0" @@ -964,9 +1005,9 @@ } }, "@babel/preset-env": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.6.2.tgz", - "integrity": "sha512-Ru7+mfzy9M1/YTEtlDS8CD45jd22ngb9tXnn64DvQK3ooyqSw9K4K9DUWmYknTTVk4TqygL9dqCrZgm1HMea/Q==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.6.3.tgz", + "integrity": "sha512-CWQkn7EVnwzlOdR5NOm2+pfgSNEZmvGjOhlCHBDq0J8/EStr+G+FvPEiz9B56dR6MoiUFjXhfE4hjLoAKKJtIQ==", "dev": true, "requires": { "@babel/helper-module-imports": "^7.0.0", @@ -985,7 +1026,7 @@ "@babel/plugin-transform-arrow-functions": "^7.2.0", "@babel/plugin-transform-async-to-generator": "^7.5.0", "@babel/plugin-transform-block-scoped-functions": "^7.2.0", - "@babel/plugin-transform-block-scoping": "^7.6.2", + "@babel/plugin-transform-block-scoping": "^7.6.3", "@babel/plugin-transform-classes": "^7.5.5", "@babel/plugin-transform-computed-properties": "^7.2.0", "@babel/plugin-transform-destructuring": "^7.6.0", @@ -1000,7 +1041,7 @@ "@babel/plugin-transform-modules-commonjs": "^7.6.0", "@babel/plugin-transform-modules-systemjs": "^7.5.0", "@babel/plugin-transform-modules-umd": "^7.2.0", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.6.2", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.6.3", "@babel/plugin-transform-new-target": "^7.4.4", "@babel/plugin-transform-object-super": "^7.5.5", "@babel/plugin-transform-parameters": "^7.4.4", @@ -1013,7 +1054,7 @@ "@babel/plugin-transform-template-literals": "^7.4.4", "@babel/plugin-transform-typeof-symbol": "^7.2.0", "@babel/plugin-transform-unicode-regex": "^7.6.2", - "@babel/types": "^7.6.0", + "@babel/types": "^7.6.3", "browserslist": "^4.6.0", "core-js-compat": "^3.1.1", "invariant": "^2.2.2", @@ -1022,9 +1063,9 @@ }, "dependencies": { "@babel/types": { - "version": "7.6.1", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.6.1.tgz", - "integrity": "sha512-X7gdiuaCmA0uRjCmRtYJNAVCc/q+5xSgsfKJHqMN4iNLILX39677fJE1O40arPMh0TTtS9ItH67yre6c7k6t0g==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.6.3.tgz", + "integrity": "sha512-CqbcpTxMcpuQTMhjI37ZHVgjBkysg5icREQIEZ0eG1yCNwg3oy+5AaLiOKmjsCj6nqOsa6Hf0ObjRVwokb7srA==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -2112,9 +2153,9 @@ "integrity": "sha1-FkpUg+Yw+kMh5a8HAg5TGDGyYJs=" }, "caniuse-lite": { - "version": "1.0.30000989", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000989.tgz", - "integrity": "sha512-vrMcvSuMz16YY6GSVZ0dWDTJP8jqk3iFQ/Aq5iqblPwxSVVZI+zxDyTX0VPqtQsDnfdrBDcsmhgTEOh5R8Lbpw==", + "version": "1.0.30000999", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000999.tgz", + "integrity": "sha512-1CUyKyecPeksKwXZvYw0tEoaMCo/RwBlXmEtN5vVnabvO0KPd9RQLcaAuR9/1F+KDMv6esmOFWlsXuzDk+8rxg==", "dev": true }, "chalk": { @@ -2667,9 +2708,9 @@ } }, "electron-to-chromium": { - "version": "1.3.264", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.264.tgz", - "integrity": "sha512-z8E7WkrrquCuGYv+kKyybuZIbdms+4PeHp7Zm2uIgEhAigP0bOwqXILItwj0YO73o+QyHY/7XtEfP5DsHOWQgQ==", + "version": "1.3.277", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.277.tgz", + "integrity": "sha512-Czmsrgng89DOgJlIknnw9bn5431QdtnUwGp5YYiPwU1DbZQUxCLF+rc1ZC09VNAdalOPcvH6AE8BaA0H5HjI/w==", "dev": true }, "elliptic": { @@ -4826,12 +4867,20 @@ } }, "node-releases": { - "version": "1.1.32", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.32.tgz", - "integrity": "sha512-VhVknkitq8dqtWoluagsGPn3dxTvN9fwgR59fV3D7sLBHe0JfDramsMI8n8mY//ccq/Kkrf8ZRHRpsyVZ3qw1A==", + "version": "1.1.35", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.35.tgz", + "integrity": "sha512-JGcM/wndCN/2elJlU0IGdVEJQQnJwsLbgPCFd2pY7V0mxf17bZ0Gb/lgOtL29ZQhvEX5shnVhxQyZz3ex94N8w==", "dev": true, "requires": { - "semver": "^5.3.0" + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } } }, "nopt": { diff --git a/src/React.Sample.Webpack.CoreMvc/package.json b/src/React.Sample.Webpack.CoreMvc/package.json index b40977774..58aa9ca89 100644 --- a/src/React.Sample.Webpack.CoreMvc/package.json +++ b/src/React.Sample.Webpack.CoreMvc/package.json @@ -20,11 +20,11 @@ "styled-components": "^4.0.0" }, "devDependencies": { - "@babel/core": "7.6.2", + "@babel/core": "7.6.3", "@babel/plugin-proposal-class-properties": "7.5.5", "@babel/plugin-proposal-object-rest-spread": "7.6.2", "@babel/plugin-syntax-dynamic-import": "7.2.0", - "@babel/preset-env": "7.6.2", + "@babel/preset-env": "7.6.3", "@babel/preset-react": "7.0.0", "babel-loader": "8.0.6", "babel-runtime": "6.26.0", From 5d79ef3f1fa02c3fb9452c113afb59b7ce903355 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Tue, 8 Oct 2019 22:41:46 +0000 Subject: [PATCH 309/530] Update dependency @babel/standalone to v7.6.3 --- src/React.Core/package-lock.json | 6 +++--- src/React.Core/package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/React.Core/package-lock.json b/src/React.Core/package-lock.json index 157cfc7b6..99ed48f1e 100644 --- a/src/React.Core/package-lock.json +++ b/src/React.Core/package-lock.json @@ -144,9 +144,9 @@ "dev": true }, "@babel/standalone": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/@babel/standalone/-/standalone-7.6.2.tgz", - "integrity": "sha512-bfrGoJA6bHD3zJdTM8DANDKM2MjuhH7SLTeHuQMyfCn4VQgJlwe9MByqiTTKWZ1dAD0HrC7WDaL60WV+9HUXnQ==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/@babel/standalone/-/standalone-7.6.3.tgz", + "integrity": "sha512-lc7H0lPT6rNUsKC0XFpZorEPzdG4myKVtc+ifkrlFOu8bXXd/3vF78Qxe5H3r/G8B65jUUzV0bFGpq7KkJcTmQ==", "dev": true }, "@babel/template": { diff --git a/src/React.Core/package.json b/src/React.Core/package.json index 6e3587cc2..181cb04fe 100644 --- a/src/React.Core/package.json +++ b/src/React.Core/package.json @@ -7,7 +7,7 @@ }, "devDependencies": { "@babel/core": "7.6.3", - "@babel/standalone": "7.6.2", + "@babel/standalone": "7.6.3", "prop-types": "15.7.2", "react": "16.10.2", "react-dom": "16.10.2", From ac06d752361f0e1afbc311d8e244ce3b3d5fece2 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Wed, 9 Oct 2019 19:15:27 +0000 Subject: [PATCH 310/530] Update dependency @types/reactstrap to v8.0.5 --- src/React.Sample.Mvc4/package-lock.json | 6 +++--- src/React.Sample.Mvc4/package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/React.Sample.Mvc4/package-lock.json b/src/React.Sample.Mvc4/package-lock.json index d0ec020e0..63bfcd918 100644 --- a/src/React.Sample.Mvc4/package-lock.json +++ b/src/React.Sample.Mvc4/package-lock.json @@ -30,9 +30,9 @@ } }, "@types/reactstrap": { - "version": "8.0.4", - "resolved": "https://registry.npmjs.org/@types/reactstrap/-/reactstrap-8.0.4.tgz", - "integrity": "sha512-USAvyYnZ75OA1CfFDkUW+3TBRuYfc2At9Ts+10RcyCFgGpIgWGVG7MZnCZSkcOACjjhD0D+8vPkMVgXcohMqrQ==", + "version": "8.0.5", + "resolved": "https://registry.npmjs.org/@types/reactstrap/-/reactstrap-8.0.5.tgz", + "integrity": "sha512-cdTmatus6s/f5GltmDGLbCl31cexQbIFRPPjfEYzTEpjtV5uUNaWmcCSaMbuj5fnvaSTs8Ysx6u0bVb5pPFtjA==", "dev": true, "requires": { "@types/react": "*", diff --git a/src/React.Sample.Mvc4/package.json b/src/React.Sample.Mvc4/package.json index 7245c99b4..903156d72 100644 --- a/src/React.Sample.Mvc4/package.json +++ b/src/React.Sample.Mvc4/package.json @@ -9,7 +9,7 @@ "devDependencies": { "@types/react": "16.9.5", "@types/react-dom": "16.9.1", - "@types/reactstrap": "8.0.4", + "@types/reactstrap": "8.0.5", "typescript": "3.6.3" } } From 3549a4669ea28ca9b494233b4bb1f1dcac02a290 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Wed, 9 Oct 2019 20:42:10 +0000 Subject: [PATCH 311/530] Update dependency typescript to v3.6.4 --- src/React.Sample.Mvc4/package-lock.json | 6 +++--- src/React.Sample.Mvc4/package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/React.Sample.Mvc4/package-lock.json b/src/React.Sample.Mvc4/package-lock.json index 63bfcd918..000956d48 100644 --- a/src/React.Sample.Mvc4/package-lock.json +++ b/src/React.Sample.Mvc4/package-lock.json @@ -52,9 +52,9 @@ "dev": true }, "typescript": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.6.3.tgz", - "integrity": "sha512-N7bceJL1CtRQ2RiG0AQME13ksR7DiuQh/QehubYcghzv20tnh+MQnQIuJddTmsbqYj+dztchykemz0zFzlvdQw==", + "version": "3.6.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.6.4.tgz", + "integrity": "sha512-unoCll1+l+YK4i4F8f22TaNVPRHcD9PA3yCuZ8g5e0qGqlVlJ/8FSateOLLSagn+Yg5+ZwuPkL8LFUc0Jcvksg==", "dev": true } } diff --git a/src/React.Sample.Mvc4/package.json b/src/React.Sample.Mvc4/package.json index 903156d72..a9c583c7b 100644 --- a/src/React.Sample.Mvc4/package.json +++ b/src/React.Sample.Mvc4/package.json @@ -10,6 +10,6 @@ "@types/react": "16.9.5", "@types/react-dom": "16.9.1", "@types/reactstrap": "8.0.5", - "typescript": "3.6.3" + "typescript": "3.6.4" } } From 8aa07e0f80ea6438e97c87ebbee83a72109536af Mon Sep 17 00:00:00 2001 From: ichisadashioko Date: Wed, 9 Oct 2019 20:38:50 -0400 Subject: [PATCH 312/530] ignore *.snupkg generated by dev-build.bat (#939) --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 279183051..b32bd32fb 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,7 @@ _old/ src/SharedAssemblyVersionInfo.cs *.nupkg +*.snupkg src/**/*.nuspec !src/template.nuspec site/jekyll/_site From 2b8f1f8c30e15aa32113253dd62d3c6d78b95cff Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Thu, 10 Oct 2019 14:33:46 +0000 Subject: [PATCH 313/530] Update dependency @babel/core to v7.6.4 --- src/React.Core/package-lock.json | 40 ++++++------------- src/React.Core/package.json | 2 +- .../package-lock.json | 32 ++++++--------- src/React.Sample.Webpack.CoreMvc/package.json | 2 +- 4 files changed, 28 insertions(+), 48 deletions(-) diff --git a/src/React.Core/package-lock.json b/src/React.Core/package-lock.json index 99ed48f1e..e505c4041 100644 --- a/src/React.Core/package-lock.json +++ b/src/React.Core/package-lock.json @@ -14,15 +14,15 @@ } }, "@babel/core": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.6.3.tgz", - "integrity": "sha512-QfQ5jTBgXLzJuo7Mo8bZK/ePywmgNRgk/UQykiKwEtZPiFIn8ZqE6jB+AnD1hbB1S2xQyL4//it5vuAUOVAMTw==", + "version": "7.6.4", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.6.4.tgz", + "integrity": "sha512-Rm0HGw101GY8FTzpWSyRbki/jzq+/PkNQJ+nSulrdY6gFGOsNseCqD6KHRYe2E+EdzuBdr2pxCp6s4Uk6eJ+XQ==", "dev": true, "requires": { "@babel/code-frame": "^7.5.5", - "@babel/generator": "^7.6.3", + "@babel/generator": "^7.6.4", "@babel/helpers": "^7.6.2", - "@babel/parser": "^7.6.3", + "@babel/parser": "^7.6.4", "@babel/template": "^7.6.0", "@babel/traverse": "^7.6.3", "@babel/types": "^7.6.3", @@ -32,7 +32,7 @@ "lodash": "^4.17.13", "resolve": "^1.3.2", "semver": "^5.4.1", - "source-map": "^0.6.1" + "source-map": "^0.5.0" }, "dependencies": { "debug": { @@ -49,33 +49,19 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "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 } } }, "@babel/generator": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.6.3.tgz", - "integrity": "sha512-hLhYbAb3pHwxjlijC4AQ7mqZdcoujiNaW7izCT04CIowHK8psN0IN8QjDv0iyFtycF5FowUOTwDloIheI25aMw==", + "version": "7.6.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.6.4.tgz", + "integrity": "sha512-jsBuXkFoZxk0yWLyGI9llT9oiQ2FeTASmRFE32U+aaDTfoE92t78eroO7PTpU/OrYq38hlcDM6vbfLDaOLy+7w==", "dev": true, "requires": { "@babel/types": "^7.6.3", "jsesc": "^2.5.1", "lodash": "^4.17.13", - "source-map": "^0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } + "source-map": "^0.5.0" } }, "@babel/helper-function-name": { @@ -138,9 +124,9 @@ } }, "@babel/parser": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.6.3.tgz", - "integrity": "sha512-sUZdXlva1dt2Vw2RqbMkmfoImubO0D0gaCrNngV6Hi0DA4x3o4mlrq0tbfY0dZEUIccH8I6wQ4qgEtwcpOR6Qg==", + "version": "7.6.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.6.4.tgz", + "integrity": "sha512-D8RHPW5qd0Vbyo3qb+YjO5nvUVRTXFLQ/FsDxJU2Nqz4uB5EnUN0ZQSEYpvTIbRuttig1XbHWU5oMeQwQSAA+A==", "dev": true }, "@babel/standalone": { diff --git a/src/React.Core/package.json b/src/React.Core/package.json index 181cb04fe..3b2db8c82 100644 --- a/src/React.Core/package.json +++ b/src/React.Core/package.json @@ -6,7 +6,7 @@ "build": "webpack" }, "devDependencies": { - "@babel/core": "7.6.3", + "@babel/core": "7.6.4", "@babel/standalone": "7.6.3", "prop-types": "15.7.2", "react": "16.10.2", diff --git a/src/React.Sample.Webpack.CoreMvc/package-lock.json b/src/React.Sample.Webpack.CoreMvc/package-lock.json index 05dc776e2..8fa41fd04 100644 --- a/src/React.Sample.Webpack.CoreMvc/package-lock.json +++ b/src/React.Sample.Webpack.CoreMvc/package-lock.json @@ -14,15 +14,15 @@ } }, "@babel/core": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.6.3.tgz", - "integrity": "sha512-QfQ5jTBgXLzJuo7Mo8bZK/ePywmgNRgk/UQykiKwEtZPiFIn8ZqE6jB+AnD1hbB1S2xQyL4//it5vuAUOVAMTw==", + "version": "7.6.4", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.6.4.tgz", + "integrity": "sha512-Rm0HGw101GY8FTzpWSyRbki/jzq+/PkNQJ+nSulrdY6gFGOsNseCqD6KHRYe2E+EdzuBdr2pxCp6s4Uk6eJ+XQ==", "dev": true, "requires": { "@babel/code-frame": "^7.5.5", - "@babel/generator": "^7.6.3", + "@babel/generator": "^7.6.4", "@babel/helpers": "^7.6.2", - "@babel/parser": "^7.6.3", + "@babel/parser": "^7.6.4", "@babel/template": "^7.6.0", "@babel/traverse": "^7.6.3", "@babel/types": "^7.6.3", @@ -32,25 +32,25 @@ "lodash": "^4.17.13", "resolve": "^1.3.2", "semver": "^5.4.1", - "source-map": "^0.6.1" + "source-map": "^0.5.0" }, "dependencies": { "@babel/generator": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.6.3.tgz", - "integrity": "sha512-hLhYbAb3pHwxjlijC4AQ7mqZdcoujiNaW7izCT04CIowHK8psN0IN8QjDv0iyFtycF5FowUOTwDloIheI25aMw==", + "version": "7.6.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.6.4.tgz", + "integrity": "sha512-jsBuXkFoZxk0yWLyGI9llT9oiQ2FeTASmRFE32U+aaDTfoE92t78eroO7PTpU/OrYq38hlcDM6vbfLDaOLy+7w==", "dev": true, "requires": { "@babel/types": "^7.6.3", "jsesc": "^2.5.1", "lodash": "^4.17.13", - "source-map": "^0.6.1" + "source-map": "^0.5.0" } }, "@babel/parser": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.6.3.tgz", - "integrity": "sha512-sUZdXlva1dt2Vw2RqbMkmfoImubO0D0gaCrNngV6Hi0DA4x3o4mlrq0tbfY0dZEUIccH8I6wQ4qgEtwcpOR6Qg==", + "version": "7.6.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.6.4.tgz", + "integrity": "sha512-D8RHPW5qd0Vbyo3qb+YjO5nvUVRTXFLQ/FsDxJU2Nqz4uB5EnUN0ZQSEYpvTIbRuttig1XbHWU5oMeQwQSAA+A==", "dev": true }, "@babel/traverse": { @@ -110,12 +110,6 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "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 } } }, diff --git a/src/React.Sample.Webpack.CoreMvc/package.json b/src/React.Sample.Webpack.CoreMvc/package.json index 58aa9ca89..560ed69a1 100644 --- a/src/React.Sample.Webpack.CoreMvc/package.json +++ b/src/React.Sample.Webpack.CoreMvc/package.json @@ -20,7 +20,7 @@ "styled-components": "^4.0.0" }, "devDependencies": { - "@babel/core": "7.6.3", + "@babel/core": "7.6.4", "@babel/plugin-proposal-class-properties": "7.5.5", "@babel/plugin-proposal-object-rest-spread": "7.6.2", "@babel/plugin-syntax-dynamic-import": "7.2.0", From a91373165ad8e6a7d49d0fc6b3186dfc01999835 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Thu, 10 Oct 2019 16:25:57 +0000 Subject: [PATCH 314/530] Update dependency @babel/standalone to v7.6.4 --- src/React.Core/package-lock.json | 6 +++--- src/React.Core/package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/React.Core/package-lock.json b/src/React.Core/package-lock.json index e505c4041..0088bed38 100644 --- a/src/React.Core/package-lock.json +++ b/src/React.Core/package-lock.json @@ -130,9 +130,9 @@ "dev": true }, "@babel/standalone": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/@babel/standalone/-/standalone-7.6.3.tgz", - "integrity": "sha512-lc7H0lPT6rNUsKC0XFpZorEPzdG4myKVtc+ifkrlFOu8bXXd/3vF78Qxe5H3r/G8B65jUUzV0bFGpq7KkJcTmQ==", + "version": "7.6.4", + "resolved": "https://registry.npmjs.org/@babel/standalone/-/standalone-7.6.4.tgz", + "integrity": "sha512-ikqLCCQ3iSaRhkE1xgVc6+f49s+ZbMu8gvaW1VNJdKE+pQMAp+2CALy4rRKopaLfYWULvtfeKrs4suICO64/dg==", "dev": true }, "@babel/template": { diff --git a/src/React.Core/package.json b/src/React.Core/package.json index 3b2db8c82..e515223b2 100644 --- a/src/React.Core/package.json +++ b/src/React.Core/package.json @@ -7,7 +7,7 @@ }, "devDependencies": { "@babel/core": "7.6.4", - "@babel/standalone": "7.6.3", + "@babel/standalone": "7.6.4", "prop-types": "15.7.2", "react": "16.10.2", "react-dom": "16.10.2", From 5293949baa132b3b99a76fd862bb1f06c88fd580 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Fri, 11 Oct 2019 11:56:11 +0000 Subject: [PATCH 315/530] Update dependency webpack to v4.41.1 --- .../Resources/babel-legacy/package-lock.json | 30 +++++++++---------- .../Resources/babel-legacy/package.json | 2 +- src/React.Core/package-lock.json | 30 +++++++++---------- src/React.Core/package.json | 2 +- .../package-lock.json | 30 +++++++++---------- src/React.Sample.Webpack.CoreMvc/package.json | 2 +- 6 files changed, 48 insertions(+), 48 deletions(-) diff --git a/src/React.Core/Resources/babel-legacy/package-lock.json b/src/React.Core/Resources/babel-legacy/package-lock.json index fc4f0bf9f..e29124615 100644 --- a/src/React.Core/Resources/babel-legacy/package-lock.json +++ b/src/React.Core/Resources/babel-legacy/package-lock.json @@ -1400,9 +1400,9 @@ "dev": true }, "bluebird": { - "version": "3.5.5", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.5.tgz", - "integrity": "sha512-5am6HnnfN+urzt4yfg7IgTbotDjIT/u8AJpEt0sIU9FtXfVeezXAPKswrG+xKUCOYAINpSdgZVDU6QFh+cuH3w==", + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.0.tgz", + "integrity": "sha512-aBQ1FxIa7kSWCcmKHlcHFlT2jt6J/l4FzC7KcPELkOJOsPOb/bccdhmIrKDfXhwFrmc7vDoDrrepFvGqjyXGJg==", "dev": true }, "bn.js": { @@ -1729,9 +1729,9 @@ "dev": true }, "commander": { - "version": "2.20.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.1.tgz", - "integrity": "sha512-cCuLsMhJeWQ/ZpsFTbE765kvVfoeSddc4nU3up4fV+fDBcfUXnbITJ+JzhkdjzOqhURjZgujxaioam4RM9yGUg==", + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "dev": true }, "commondir": { @@ -4781,9 +4781,9 @@ "dev": true }, "terser": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.3.4.tgz", - "integrity": "sha512-Kcrn3RiW8NtHBP0ssOAzwa2MsIRQ8lJWiBG/K7JgqPlomA3mtb2DEmp4/hrUA+Jujx+WZ02zqd7GYD+QRBB/2Q==", + "version": "4.3.8", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.3.8.tgz", + "integrity": "sha512-otmIRlRVmLChAWsnSFNO0Bfk6YySuBp6G9qrHiJwlLDd4mxe2ta4sjI7TzIR+W1nBMjilzrMcPOz9pSusgx3hQ==", "dev": true, "requires": { "commander": "^2.20.0", @@ -5098,9 +5098,9 @@ } }, "webpack": { - "version": "4.41.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.41.0.tgz", - "integrity": "sha512-yNV98U4r7wX1VJAj5kyMsu36T8RPPQntcb5fJLOsMz/pt/WrKC0Vp1bAlqPLkA1LegSwQwf6P+kAbyhRKVQ72g==", + "version": "4.41.1", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.41.1.tgz", + "integrity": "sha512-ak7u4tUu/U63sCVxA571IuPZO/Q0pZ9cEXKg+R/woxkDzVovq57uB6L2Hlg/pC8LCU+TWpvtcYwsstivQwMJmw==", "dev": true, "requires": { "@webassemblyjs/ast": "1.8.5", @@ -5227,9 +5227,9 @@ "dev": true }, "yallist": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.0.tgz", - "integrity": "sha512-6gpP93MR+VOOehKbCPchro3wFZNSNmek8A2kbkOAZLIZAYx1KP/zAqwO0sOHi3xJEb+UBz8NaYt/17UNit1Q9w==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", "dev": true }, "yargs": { diff --git a/src/React.Core/Resources/babel-legacy/package.json b/src/React.Core/Resources/babel-legacy/package.json index 8314f7af4..7b0d2b8ed 100644 --- a/src/React.Core/Resources/babel-legacy/package.json +++ b/src/React.Core/Resources/babel-legacy/package.json @@ -12,7 +12,7 @@ "babel-preset-es2015": "6.24.1", "babel-preset-stage-0": "6.24.1", "babel-standalone": "6.26.0", - "webpack": "4.41.0", + "webpack": "4.41.1", "webpack-cli": "3.3.9" }, "author": "", diff --git a/src/React.Core/package-lock.json b/src/React.Core/package-lock.json index 0088bed38..1e7805f3c 100644 --- a/src/React.Core/package-lock.json +++ b/src/React.Core/package-lock.json @@ -611,9 +611,9 @@ "dev": true }, "bluebird": { - "version": "3.5.5", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.5.tgz", - "integrity": "sha512-5am6HnnfN+urzt4yfg7IgTbotDjIT/u8AJpEt0sIU9FtXfVeezXAPKswrG+xKUCOYAINpSdgZVDU6QFh+cuH3w==", + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.0.tgz", + "integrity": "sha512-aBQ1FxIa7kSWCcmKHlcHFlT2jt6J/l4FzC7KcPELkOJOsPOb/bccdhmIrKDfXhwFrmc7vDoDrrepFvGqjyXGJg==", "dev": true }, "bn.js": { @@ -937,9 +937,9 @@ "dev": true }, "commander": { - "version": "2.20.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.1.tgz", - "integrity": "sha512-cCuLsMhJeWQ/ZpsFTbE765kvVfoeSddc4nU3up4fV+fDBcfUXnbITJ+JzhkdjzOqhURjZgujxaioam4RM9yGUg==", + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "dev": true }, "commondir": { @@ -4029,9 +4029,9 @@ "dev": true }, "terser": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.3.4.tgz", - "integrity": "sha512-Kcrn3RiW8NtHBP0ssOAzwa2MsIRQ8lJWiBG/K7JgqPlomA3mtb2DEmp4/hrUA+Jujx+WZ02zqd7GYD+QRBB/2Q==", + "version": "4.3.8", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.3.8.tgz", + "integrity": "sha512-otmIRlRVmLChAWsnSFNO0Bfk6YySuBp6G9qrHiJwlLDd4mxe2ta4sjI7TzIR+W1nBMjilzrMcPOz9pSusgx3hQ==", "dev": true, "requires": { "commander": "^2.20.0", @@ -4323,9 +4323,9 @@ } }, "webpack": { - "version": "4.41.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.41.0.tgz", - "integrity": "sha512-yNV98U4r7wX1VJAj5kyMsu36T8RPPQntcb5fJLOsMz/pt/WrKC0Vp1bAlqPLkA1LegSwQwf6P+kAbyhRKVQ72g==", + "version": "4.41.1", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.41.1.tgz", + "integrity": "sha512-ak7u4tUu/U63sCVxA571IuPZO/Q0pZ9cEXKg+R/woxkDzVovq57uB6L2Hlg/pC8LCU+TWpvtcYwsstivQwMJmw==", "dev": true, "requires": { "@webassemblyjs/ast": "1.8.5", @@ -4474,9 +4474,9 @@ "dev": true }, "yallist": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.0.tgz", - "integrity": "sha512-6gpP93MR+VOOehKbCPchro3wFZNSNmek8A2kbkOAZLIZAYx1KP/zAqwO0sOHi3xJEb+UBz8NaYt/17UNit1Q9w==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", "dev": true }, "yargs": { diff --git a/src/React.Core/package.json b/src/React.Core/package.json index e515223b2..84d89a130 100644 --- a/src/React.Core/package.json +++ b/src/React.Core/package.json @@ -11,7 +11,7 @@ "prop-types": "15.7.2", "react": "16.10.2", "react-dom": "16.10.2", - "webpack": "4.41.0", + "webpack": "4.41.1", "webpack-cli": "3.3.9" } } diff --git a/src/React.Sample.Webpack.CoreMvc/package-lock.json b/src/React.Sample.Webpack.CoreMvc/package-lock.json index 8fa41fd04..8dc384edd 100644 --- a/src/React.Sample.Webpack.CoreMvc/package-lock.json +++ b/src/React.Sample.Webpack.CoreMvc/package-lock.json @@ -1908,9 +1908,9 @@ "dev": true }, "bluebird": { - "version": "3.5.5", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.5.tgz", - "integrity": "sha512-5am6HnnfN+urzt4yfg7IgTbotDjIT/u8AJpEt0sIU9FtXfVeezXAPKswrG+xKUCOYAINpSdgZVDU6QFh+cuH3w==", + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.0.tgz", + "integrity": "sha512-aBQ1FxIa7kSWCcmKHlcHFlT2jt6J/l4FzC7KcPELkOJOsPOb/bccdhmIrKDfXhwFrmc7vDoDrrepFvGqjyXGJg==", "dev": true }, "bn.js": { @@ -2273,9 +2273,9 @@ "dev": true }, "commander": { - "version": "2.20.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.1.tgz", - "integrity": "sha512-cCuLsMhJeWQ/ZpsFTbE765kvVfoeSddc4nU3up4fV+fDBcfUXnbITJ+JzhkdjzOqhURjZgujxaioam4RM9yGUg==", + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "dev": true }, "commondir": { @@ -6416,9 +6416,9 @@ "dev": true }, "terser": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.3.4.tgz", - "integrity": "sha512-Kcrn3RiW8NtHBP0ssOAzwa2MsIRQ8lJWiBG/K7JgqPlomA3mtb2DEmp4/hrUA+Jujx+WZ02zqd7GYD+QRBB/2Q==", + "version": "4.3.8", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.3.8.tgz", + "integrity": "sha512-otmIRlRVmLChAWsnSFNO0Bfk6YySuBp6G9qrHiJwlLDd4mxe2ta4sjI7TzIR+W1nBMjilzrMcPOz9pSusgx3hQ==", "dev": true, "requires": { "commander": "^2.20.0", @@ -6852,9 +6852,9 @@ } }, "webpack": { - "version": "4.41.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.41.0.tgz", - "integrity": "sha512-yNV98U4r7wX1VJAj5kyMsu36T8RPPQntcb5fJLOsMz/pt/WrKC0Vp1bAlqPLkA1LegSwQwf6P+kAbyhRKVQ72g==", + "version": "4.41.1", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.41.1.tgz", + "integrity": "sha512-ak7u4tUu/U63sCVxA571IuPZO/Q0pZ9cEXKg+R/woxkDzVovq57uB6L2Hlg/pC8LCU+TWpvtcYwsstivQwMJmw==", "dev": true, "requires": { "@webassemblyjs/ast": "1.8.5", @@ -7061,9 +7061,9 @@ "dev": true }, "yallist": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.0.tgz", - "integrity": "sha512-6gpP93MR+VOOehKbCPchro3wFZNSNmek8A2kbkOAZLIZAYx1KP/zAqwO0sOHi3xJEb+UBz8NaYt/17UNit1Q9w==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", "dev": true }, "yargs": { diff --git a/src/React.Sample.Webpack.CoreMvc/package.json b/src/React.Sample.Webpack.CoreMvc/package.json index 560ed69a1..016d1840b 100644 --- a/src/React.Sample.Webpack.CoreMvc/package.json +++ b/src/React.Sample.Webpack.CoreMvc/package.json @@ -28,7 +28,7 @@ "@babel/preset-react": "7.0.0", "babel-loader": "8.0.6", "babel-runtime": "6.26.0", - "webpack": "4.41.0", + "webpack": "4.41.1", "webpack-cli": "3.3.9" } } From 3c990820933040b72369c1aafa25b27493f9ae96 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Mon, 14 Oct 2019 20:24:51 +0000 Subject: [PATCH 316/530] Update dependency @types/react-dom to v16.9.2 --- src/React.Sample.Mvc4/package-lock.json | 6 +++--- src/React.Sample.Mvc4/package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/React.Sample.Mvc4/package-lock.json b/src/React.Sample.Mvc4/package-lock.json index 000956d48..ec8903d88 100644 --- a/src/React.Sample.Mvc4/package-lock.json +++ b/src/React.Sample.Mvc4/package-lock.json @@ -21,9 +21,9 @@ } }, "@types/react-dom": { - "version": "16.9.1", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-16.9.1.tgz", - "integrity": "sha512-1S/akvkKr63qIUWVu5IKYou2P9fHLb/P2VAwyxVV85JGaGZTcUniMiTuIqM3lXFB25ej6h+CYEQ27ERVwi6eGA==", + "version": "16.9.2", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-16.9.2.tgz", + "integrity": "sha512-hgPbBoI1aTSTvZwo8HYw35UaTldW6n2ETLvHAcfcg1FaOuBV3olmyCe5eMpx2WybWMBPv0MdU2t5GOcQhP+3zA==", "dev": true, "requires": { "@types/react": "*" diff --git a/src/React.Sample.Mvc4/package.json b/src/React.Sample.Mvc4/package.json index a9c583c7b..040d58133 100644 --- a/src/React.Sample.Mvc4/package.json +++ b/src/React.Sample.Mvc4/package.json @@ -8,7 +8,7 @@ }, "devDependencies": { "@types/react": "16.9.5", - "@types/react-dom": "16.9.1", + "@types/react-dom": "16.9.2", "@types/reactstrap": "8.0.5", "typescript": "3.6.4" } From 51226b25f117a3711586a72b6a2e0e0048efcc20 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Mon, 14 Oct 2019 21:20:26 +0000 Subject: [PATCH 317/530] Update dependency @types/react to v16.9.6 --- src/React.Sample.Mvc4/package-lock.json | 12 ++++++------ src/React.Sample.Mvc4/package.json | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/React.Sample.Mvc4/package-lock.json b/src/React.Sample.Mvc4/package-lock.json index ec8903d88..b0c83b939 100644 --- a/src/React.Sample.Mvc4/package-lock.json +++ b/src/React.Sample.Mvc4/package-lock.json @@ -11,9 +11,9 @@ "dev": true }, "@types/react": { - "version": "16.9.5", - "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.5.tgz", - "integrity": "sha512-jQ12VMiFOWYlp+j66dghOWcmDDwhca0bnlcTxS4Qz/fh5gi6wpaZDthPEu/Gc/YlAuO87vbiUXL8qKstFvuOaA==", + "version": "16.9.6", + "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.6.tgz", + "integrity": "sha512-ulPWlBFO0DQiObqxEm3t4icozuakPy5O81g6QyHv+Nyo1UPL+QVq2rmq1e4J8oHY7jl0HEtMAHNwNIzv6FRuTQ==", "dev": true, "requires": { "@types/prop-types": "*", @@ -40,9 +40,9 @@ } }, "csstype": { - "version": "2.6.6", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.6.tgz", - "integrity": "sha512-RpFbQGUE74iyPgvr46U9t1xoQBM8T4BL8SxrN66Le2xYAPSaDJJKeztV3awugusb3g3G9iL8StmkBBXhcbbXhg==", + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.7.tgz", + "integrity": "sha512-9Mcn9sFbGBAdmimWb2gLVDtFJzeKtDGIr76TUqmjZrw9LFXBMSU70lcs+C0/7fyCd6iBDqmksUcCOUIkisPHsQ==", "dev": true }, "popper.js": { diff --git a/src/React.Sample.Mvc4/package.json b/src/React.Sample.Mvc4/package.json index 040d58133..d83ac818f 100644 --- a/src/React.Sample.Mvc4/package.json +++ b/src/React.Sample.Mvc4/package.json @@ -7,7 +7,7 @@ "lint:ts": "tsc" }, "devDependencies": { - "@types/react": "16.9.5", + "@types/react": "16.9.6", "@types/react-dom": "16.9.2", "@types/reactstrap": "8.0.5", "typescript": "3.6.4" From 8cad56b892ab140299a142536c37161190bb3ae1 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Tue, 15 Oct 2019 13:16:28 +0000 Subject: [PATCH 318/530] Update dependency webpack to v4.41.2 --- .../Resources/babel-legacy/package-lock.json | 12 ++++++------ src/React.Core/Resources/babel-legacy/package.json | 2 +- src/React.Core/package-lock.json | 12 ++++++------ src/React.Core/package.json | 2 +- src/React.Sample.Webpack.CoreMvc/package-lock.json | 12 ++++++------ src/React.Sample.Webpack.CoreMvc/package.json | 2 +- 6 files changed, 21 insertions(+), 21 deletions(-) diff --git a/src/React.Core/Resources/babel-legacy/package-lock.json b/src/React.Core/Resources/babel-legacy/package-lock.json index e29124615..853a2689d 100644 --- a/src/React.Core/Resources/babel-legacy/package-lock.json +++ b/src/React.Core/Resources/babel-legacy/package-lock.json @@ -1400,9 +1400,9 @@ "dev": true }, "bluebird": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.0.tgz", - "integrity": "sha512-aBQ1FxIa7kSWCcmKHlcHFlT2jt6J/l4FzC7KcPELkOJOsPOb/bccdhmIrKDfXhwFrmc7vDoDrrepFvGqjyXGJg==", + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.1.tgz", + "integrity": "sha512-DdmyoGCleJnkbp3nkbxTLJ18rjDsE4yCggEwKNXkeV123sPNfOCYeDoeuOY+F2FrSjO1YXcTU+dsy96KMy+gcg==", "dev": true }, "bn.js": { @@ -5098,9 +5098,9 @@ } }, "webpack": { - "version": "4.41.1", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.41.1.tgz", - "integrity": "sha512-ak7u4tUu/U63sCVxA571IuPZO/Q0pZ9cEXKg+R/woxkDzVovq57uB6L2Hlg/pC8LCU+TWpvtcYwsstivQwMJmw==", + "version": "4.41.2", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.41.2.tgz", + "integrity": "sha512-Zhw69edTGfbz9/8JJoyRQ/pq8FYUoY0diOXqW0T6yhgdhCv6wr0hra5DwwWexNRns2Z2+gsnrNcbe9hbGBgk/A==", "dev": true, "requires": { "@webassemblyjs/ast": "1.8.5", diff --git a/src/React.Core/Resources/babel-legacy/package.json b/src/React.Core/Resources/babel-legacy/package.json index 7b0d2b8ed..847424c20 100644 --- a/src/React.Core/Resources/babel-legacy/package.json +++ b/src/React.Core/Resources/babel-legacy/package.json @@ -12,7 +12,7 @@ "babel-preset-es2015": "6.24.1", "babel-preset-stage-0": "6.24.1", "babel-standalone": "6.26.0", - "webpack": "4.41.1", + "webpack": "4.41.2", "webpack-cli": "3.3.9" }, "author": "", diff --git a/src/React.Core/package-lock.json b/src/React.Core/package-lock.json index 1e7805f3c..1ac620ec3 100644 --- a/src/React.Core/package-lock.json +++ b/src/React.Core/package-lock.json @@ -611,9 +611,9 @@ "dev": true }, "bluebird": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.0.tgz", - "integrity": "sha512-aBQ1FxIa7kSWCcmKHlcHFlT2jt6J/l4FzC7KcPELkOJOsPOb/bccdhmIrKDfXhwFrmc7vDoDrrepFvGqjyXGJg==", + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.1.tgz", + "integrity": "sha512-DdmyoGCleJnkbp3nkbxTLJ18rjDsE4yCggEwKNXkeV123sPNfOCYeDoeuOY+F2FrSjO1YXcTU+dsy96KMy+gcg==", "dev": true }, "bn.js": { @@ -4323,9 +4323,9 @@ } }, "webpack": { - "version": "4.41.1", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.41.1.tgz", - "integrity": "sha512-ak7u4tUu/U63sCVxA571IuPZO/Q0pZ9cEXKg+R/woxkDzVovq57uB6L2Hlg/pC8LCU+TWpvtcYwsstivQwMJmw==", + "version": "4.41.2", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.41.2.tgz", + "integrity": "sha512-Zhw69edTGfbz9/8JJoyRQ/pq8FYUoY0diOXqW0T6yhgdhCv6wr0hra5DwwWexNRns2Z2+gsnrNcbe9hbGBgk/A==", "dev": true, "requires": { "@webassemblyjs/ast": "1.8.5", diff --git a/src/React.Core/package.json b/src/React.Core/package.json index 84d89a130..72a8373cf 100644 --- a/src/React.Core/package.json +++ b/src/React.Core/package.json @@ -11,7 +11,7 @@ "prop-types": "15.7.2", "react": "16.10.2", "react-dom": "16.10.2", - "webpack": "4.41.1", + "webpack": "4.41.2", "webpack-cli": "3.3.9" } } diff --git a/src/React.Sample.Webpack.CoreMvc/package-lock.json b/src/React.Sample.Webpack.CoreMvc/package-lock.json index 8dc384edd..4f8c62068 100644 --- a/src/React.Sample.Webpack.CoreMvc/package-lock.json +++ b/src/React.Sample.Webpack.CoreMvc/package-lock.json @@ -1908,9 +1908,9 @@ "dev": true }, "bluebird": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.0.tgz", - "integrity": "sha512-aBQ1FxIa7kSWCcmKHlcHFlT2jt6J/l4FzC7KcPELkOJOsPOb/bccdhmIrKDfXhwFrmc7vDoDrrepFvGqjyXGJg==", + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.1.tgz", + "integrity": "sha512-DdmyoGCleJnkbp3nkbxTLJ18rjDsE4yCggEwKNXkeV123sPNfOCYeDoeuOY+F2FrSjO1YXcTU+dsy96KMy+gcg==", "dev": true }, "bn.js": { @@ -6852,9 +6852,9 @@ } }, "webpack": { - "version": "4.41.1", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.41.1.tgz", - "integrity": "sha512-ak7u4tUu/U63sCVxA571IuPZO/Q0pZ9cEXKg+R/woxkDzVovq57uB6L2Hlg/pC8LCU+TWpvtcYwsstivQwMJmw==", + "version": "4.41.2", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.41.2.tgz", + "integrity": "sha512-Zhw69edTGfbz9/8JJoyRQ/pq8FYUoY0diOXqW0T6yhgdhCv6wr0hra5DwwWexNRns2Z2+gsnrNcbe9hbGBgk/A==", "dev": true, "requires": { "@webassemblyjs/ast": "1.8.5", diff --git a/src/React.Sample.Webpack.CoreMvc/package.json b/src/React.Sample.Webpack.CoreMvc/package.json index 016d1840b..d9bf58643 100644 --- a/src/React.Sample.Webpack.CoreMvc/package.json +++ b/src/React.Sample.Webpack.CoreMvc/package.json @@ -28,7 +28,7 @@ "@babel/preset-react": "7.0.0", "babel-loader": "8.0.6", "babel-runtime": "6.26.0", - "webpack": "4.41.1", + "webpack": "4.41.2", "webpack-cli": "3.3.9" } } From a24adc20f2557b4c6d71d33a496decb6900fcf98 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Tue, 15 Oct 2019 18:51:12 +0000 Subject: [PATCH 319/530] Update dependency @types/react to v16.9.7 --- src/React.Sample.Mvc4/package-lock.json | 6 +++--- src/React.Sample.Mvc4/package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/React.Sample.Mvc4/package-lock.json b/src/React.Sample.Mvc4/package-lock.json index b0c83b939..f3c7b2cd1 100644 --- a/src/React.Sample.Mvc4/package-lock.json +++ b/src/React.Sample.Mvc4/package-lock.json @@ -11,9 +11,9 @@ "dev": true }, "@types/react": { - "version": "16.9.6", - "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.6.tgz", - "integrity": "sha512-ulPWlBFO0DQiObqxEm3t4icozuakPy5O81g6QyHv+Nyo1UPL+QVq2rmq1e4J8oHY7jl0HEtMAHNwNIzv6FRuTQ==", + "version": "16.9.7", + "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.7.tgz", + "integrity": "sha512-cF/zwVSOa/NQ5ZSLwUmAdeARgJkmu94shnqDO0dUOsp5roeS8SXtYv06uKeQMYgMjnP6dXH5CecxL+GibvqEFg==", "dev": true, "requires": { "@types/prop-types": "*", diff --git a/src/React.Sample.Mvc4/package.json b/src/React.Sample.Mvc4/package.json index d83ac818f..f2d0bfafc 100644 --- a/src/React.Sample.Mvc4/package.json +++ b/src/React.Sample.Mvc4/package.json @@ -7,7 +7,7 @@ "lint:ts": "tsc" }, "devDependencies": { - "@types/react": "16.9.6", + "@types/react": "16.9.7", "@types/react-dom": "16.9.2", "@types/reactstrap": "8.0.5", "typescript": "3.6.4" From 5db3d665d093f0540186c244788aed3968471a0b Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Wed, 16 Oct 2019 18:16:52 +0000 Subject: [PATCH 320/530] Update dependency @types/react to v16.9.9 --- src/React.Sample.Mvc4/package-lock.json | 6 +++--- src/React.Sample.Mvc4/package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/React.Sample.Mvc4/package-lock.json b/src/React.Sample.Mvc4/package-lock.json index f3c7b2cd1..f70f7b82d 100644 --- a/src/React.Sample.Mvc4/package-lock.json +++ b/src/React.Sample.Mvc4/package-lock.json @@ -11,9 +11,9 @@ "dev": true }, "@types/react": { - "version": "16.9.7", - "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.7.tgz", - "integrity": "sha512-cF/zwVSOa/NQ5ZSLwUmAdeARgJkmu94shnqDO0dUOsp5roeS8SXtYv06uKeQMYgMjnP6dXH5CecxL+GibvqEFg==", + "version": "16.9.9", + "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.9.tgz", + "integrity": "sha512-L+AudFJkDukk+ukInYvpoAPyJK5q1GanFOINOJnM0w6tUgITuWvJ4jyoBPFL7z4/L8hGLd+K/6xR5uUjXu0vVg==", "dev": true, "requires": { "@types/prop-types": "*", diff --git a/src/React.Sample.Mvc4/package.json b/src/React.Sample.Mvc4/package.json index f2d0bfafc..40e30a13a 100644 --- a/src/React.Sample.Mvc4/package.json +++ b/src/React.Sample.Mvc4/package.json @@ -7,7 +7,7 @@ "lint:ts": "tsc" }, "devDependencies": { - "@types/react": "16.9.7", + "@types/react": "16.9.9", "@types/react-dom": "16.9.2", "@types/reactstrap": "8.0.5", "typescript": "3.6.4" From 2cbdcf35f595b82b537f2f25b0bbc24827fae79d Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Tue, 22 Oct 2019 20:31:07 +0000 Subject: [PATCH 321/530] Update dependency @types/reactstrap to v8.0.6 --- src/React.Sample.Mvc4/package-lock.json | 12 ++++++------ src/React.Sample.Mvc4/package.json | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/React.Sample.Mvc4/package-lock.json b/src/React.Sample.Mvc4/package-lock.json index f70f7b82d..67aa884ec 100644 --- a/src/React.Sample.Mvc4/package-lock.json +++ b/src/React.Sample.Mvc4/package-lock.json @@ -30,9 +30,9 @@ } }, "@types/reactstrap": { - "version": "8.0.5", - "resolved": "https://registry.npmjs.org/@types/reactstrap/-/reactstrap-8.0.5.tgz", - "integrity": "sha512-cdTmatus6s/f5GltmDGLbCl31cexQbIFRPPjfEYzTEpjtV5uUNaWmcCSaMbuj5fnvaSTs8Ysx6u0bVb5pPFtjA==", + "version": "8.0.6", + "resolved": "https://registry.npmjs.org/@types/reactstrap/-/reactstrap-8.0.6.tgz", + "integrity": "sha512-H4S9hg13q2gPLDcVIiow/hQ6Vahgwl9hs3wX5Kp481nJbG/dbx+sWAa3inLgktE5ESKcy6ww16sDfTt1s1Cgow==", "dev": true, "requires": { "@types/react": "*", @@ -46,9 +46,9 @@ "dev": true }, "popper.js": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.15.0.tgz", - "integrity": "sha512-w010cY1oCUmI+9KwwlWki+r5jxKfTFDVoadl7MSrIujHU5MJ5OR6HTDj6Xo8aoR/QsA56x8jKjA59qGH4ELtrA==", + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.16.0.tgz", + "integrity": "sha512-+G+EkOPoE5S/zChTpmBSSDYmhXJ5PsW8eMhH8cP/CQHMFPBG/kC9Y5IIw6qNYgdJ+/COf0ddY2li28iHaZRSjw==", "dev": true }, "typescript": { diff --git a/src/React.Sample.Mvc4/package.json b/src/React.Sample.Mvc4/package.json index 40e30a13a..b245e7bf5 100644 --- a/src/React.Sample.Mvc4/package.json +++ b/src/React.Sample.Mvc4/package.json @@ -9,7 +9,7 @@ "devDependencies": { "@types/react": "16.9.9", "@types/react-dom": "16.9.2", - "@types/reactstrap": "8.0.5", + "@types/reactstrap": "8.0.6", "typescript": "3.6.4" } } From 4bb3251d6e4457231d6c66808efcf19998f3f2c4 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Thu, 24 Oct 2019 17:43:09 +0000 Subject: [PATCH 322/530] Update dependency @types/react to v16.9.10 --- src/React.Sample.Mvc4/package-lock.json | 6 +++--- src/React.Sample.Mvc4/package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/React.Sample.Mvc4/package-lock.json b/src/React.Sample.Mvc4/package-lock.json index 67aa884ec..32bc93a4a 100644 --- a/src/React.Sample.Mvc4/package-lock.json +++ b/src/React.Sample.Mvc4/package-lock.json @@ -11,9 +11,9 @@ "dev": true }, "@types/react": { - "version": "16.9.9", - "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.9.tgz", - "integrity": "sha512-L+AudFJkDukk+ukInYvpoAPyJK5q1GanFOINOJnM0w6tUgITuWvJ4jyoBPFL7z4/L8hGLd+K/6xR5uUjXu0vVg==", + "version": "16.9.10", + "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.10.tgz", + "integrity": "sha512-J1sinqwBCzazC+DOmbwRc96pNf0KBOVkefV5DVfLX9qiHdltfFH2BUqc36UYcYSU5tIrZtaaVMAx4JwOq5/Q/g==", "dev": true, "requires": { "@types/prop-types": "*", diff --git a/src/React.Sample.Mvc4/package.json b/src/React.Sample.Mvc4/package.json index b245e7bf5..a095972c1 100644 --- a/src/React.Sample.Mvc4/package.json +++ b/src/React.Sample.Mvc4/package.json @@ -7,7 +7,7 @@ "lint:ts": "tsc" }, "devDependencies": { - "@types/react": "16.9.9", + "@types/react": "16.9.10", "@types/react-dom": "16.9.2", "@types/reactstrap": "8.0.6", "typescript": "3.6.4" From ee051a8b4a4d19e0a1e08e340a76593f12770e68 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Fri, 25 Oct 2019 09:03:33 +0000 Subject: [PATCH 323/530] Update dependency @types/react to v16.9.11 --- src/React.Sample.Mvc4/package-lock.json | 6 +++--- src/React.Sample.Mvc4/package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/React.Sample.Mvc4/package-lock.json b/src/React.Sample.Mvc4/package-lock.json index 32bc93a4a..faf6212e8 100644 --- a/src/React.Sample.Mvc4/package-lock.json +++ b/src/React.Sample.Mvc4/package-lock.json @@ -11,9 +11,9 @@ "dev": true }, "@types/react": { - "version": "16.9.10", - "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.10.tgz", - "integrity": "sha512-J1sinqwBCzazC+DOmbwRc96pNf0KBOVkefV5DVfLX9qiHdltfFH2BUqc36UYcYSU5tIrZtaaVMAx4JwOq5/Q/g==", + "version": "16.9.11", + "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.11.tgz", + "integrity": "sha512-UBT4GZ3PokTXSWmdgC/GeCGEJXE5ofWyibCcecRLUVN2ZBpXQGVgQGtG2foS7CrTKFKlQVVswLvf7Js6XA/CVQ==", "dev": true, "requires": { "@types/prop-types": "*", diff --git a/src/React.Sample.Mvc4/package.json b/src/React.Sample.Mvc4/package.json index a095972c1..66d850332 100644 --- a/src/React.Sample.Mvc4/package.json +++ b/src/React.Sample.Mvc4/package.json @@ -7,7 +7,7 @@ "lint:ts": "tsc" }, "devDependencies": { - "@types/react": "16.9.10", + "@types/react": "16.9.11", "@types/react-dom": "16.9.2", "@types/reactstrap": "8.0.6", "typescript": "3.6.4" From 4e3bb3d437992ce145ffa327688f4618e62bd8d2 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Fri, 25 Oct 2019 11:48:48 +0000 Subject: [PATCH 324/530] Update dependency @types/react-dom to v16.9.3 --- src/React.Sample.Mvc4/package-lock.json | 6 +++--- src/React.Sample.Mvc4/package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/React.Sample.Mvc4/package-lock.json b/src/React.Sample.Mvc4/package-lock.json index faf6212e8..30fe00e54 100644 --- a/src/React.Sample.Mvc4/package-lock.json +++ b/src/React.Sample.Mvc4/package-lock.json @@ -21,9 +21,9 @@ } }, "@types/react-dom": { - "version": "16.9.2", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-16.9.2.tgz", - "integrity": "sha512-hgPbBoI1aTSTvZwo8HYw35UaTldW6n2ETLvHAcfcg1FaOuBV3olmyCe5eMpx2WybWMBPv0MdU2t5GOcQhP+3zA==", + "version": "16.9.3", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-16.9.3.tgz", + "integrity": "sha512-FUuZKXPr9qlzUT9lhuzrZgLjH63TvNn28Ch3MvKG4B+F52zQtO8DtE0Opbncy3xaucNZM2WIPfuNTgkbKx5Brg==", "dev": true, "requires": { "@types/react": "*" diff --git a/src/React.Sample.Mvc4/package.json b/src/React.Sample.Mvc4/package.json index 66d850332..479a290b6 100644 --- a/src/React.Sample.Mvc4/package.json +++ b/src/React.Sample.Mvc4/package.json @@ -8,7 +8,7 @@ }, "devDependencies": { "@types/react": "16.9.11", - "@types/react-dom": "16.9.2", + "@types/react-dom": "16.9.3", "@types/reactstrap": "8.0.6", "typescript": "3.6.4" } From 4590d8411bf6f51ba69a4de99d196e9e4421202b Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Thu, 31 Oct 2019 04:54:34 +0000 Subject: [PATCH 325/530] Update dependency webpack-cli to v3.3.10 --- src/React.Core/Resources/babel-legacy/package-lock.json | 6 +++--- src/React.Core/Resources/babel-legacy/package.json | 2 +- src/React.Core/package-lock.json | 6 +++--- src/React.Core/package.json | 2 +- src/React.Sample.Webpack.CoreMvc/package-lock.json | 6 +++--- src/React.Sample.Webpack.CoreMvc/package.json | 2 +- 6 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/React.Core/Resources/babel-legacy/package-lock.json b/src/React.Core/Resources/babel-legacy/package-lock.json index 853a2689d..4775e9ae1 100644 --- a/src/React.Core/Resources/babel-legacy/package-lock.json +++ b/src/React.Core/Resources/babel-legacy/package-lock.json @@ -5137,9 +5137,9 @@ } }, "webpack-cli": { - "version": "3.3.9", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.9.tgz", - "integrity": "sha512-xwnSxWl8nZtBl/AFJCOn9pG7s5CYUYdZxmmukv+fAHLcBIHM36dImfpQg3WfShZXeArkWlf6QRw24Klcsv8a5A==", + "version": "3.3.10", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.10.tgz", + "integrity": "sha512-u1dgND9+MXaEt74sJR4PR7qkPxXUSQ0RXYq8x1L6Jg1MYVEmGPrH6Ah6C4arD4r0J1P5HKjRqpab36k0eIzPqg==", "dev": true, "requires": { "chalk": "2.4.2", diff --git a/src/React.Core/Resources/babel-legacy/package.json b/src/React.Core/Resources/babel-legacy/package.json index 847424c20..6261e5541 100644 --- a/src/React.Core/Resources/babel-legacy/package.json +++ b/src/React.Core/Resources/babel-legacy/package.json @@ -13,7 +13,7 @@ "babel-preset-stage-0": "6.24.1", "babel-standalone": "6.26.0", "webpack": "4.41.2", - "webpack-cli": "3.3.9" + "webpack-cli": "3.3.10" }, "author": "", "license": "MIT" diff --git a/src/React.Core/package-lock.json b/src/React.Core/package-lock.json index 1ac620ec3..db657880a 100644 --- a/src/React.Core/package-lock.json +++ b/src/React.Core/package-lock.json @@ -4362,9 +4362,9 @@ } }, "webpack-cli": { - "version": "3.3.9", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.9.tgz", - "integrity": "sha512-xwnSxWl8nZtBl/AFJCOn9pG7s5CYUYdZxmmukv+fAHLcBIHM36dImfpQg3WfShZXeArkWlf6QRw24Klcsv8a5A==", + "version": "3.3.10", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.10.tgz", + "integrity": "sha512-u1dgND9+MXaEt74sJR4PR7qkPxXUSQ0RXYq8x1L6Jg1MYVEmGPrH6Ah6C4arD4r0J1P5HKjRqpab36k0eIzPqg==", "dev": true, "requires": { "chalk": "2.4.2", diff --git a/src/React.Core/package.json b/src/React.Core/package.json index 72a8373cf..3dd0b699a 100644 --- a/src/React.Core/package.json +++ b/src/React.Core/package.json @@ -12,6 +12,6 @@ "react": "16.10.2", "react-dom": "16.10.2", "webpack": "4.41.2", - "webpack-cli": "3.3.9" + "webpack-cli": "3.3.10" } } diff --git a/src/React.Sample.Webpack.CoreMvc/package-lock.json b/src/React.Sample.Webpack.CoreMvc/package-lock.json index 4f8c62068..bc7d143d2 100644 --- a/src/React.Sample.Webpack.CoreMvc/package-lock.json +++ b/src/React.Sample.Webpack.CoreMvc/package-lock.json @@ -6923,9 +6923,9 @@ } }, "webpack-cli": { - "version": "3.3.9", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.9.tgz", - "integrity": "sha512-xwnSxWl8nZtBl/AFJCOn9pG7s5CYUYdZxmmukv+fAHLcBIHM36dImfpQg3WfShZXeArkWlf6QRw24Klcsv8a5A==", + "version": "3.3.10", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.10.tgz", + "integrity": "sha512-u1dgND9+MXaEt74sJR4PR7qkPxXUSQ0RXYq8x1L6Jg1MYVEmGPrH6Ah6C4arD4r0J1P5HKjRqpab36k0eIzPqg==", "dev": true, "requires": { "chalk": "2.4.2", diff --git a/src/React.Sample.Webpack.CoreMvc/package.json b/src/React.Sample.Webpack.CoreMvc/package.json index d9bf58643..51f055ab6 100644 --- a/src/React.Sample.Webpack.CoreMvc/package.json +++ b/src/React.Sample.Webpack.CoreMvc/package.json @@ -29,6 +29,6 @@ "babel-loader": "8.0.6", "babel-runtime": "6.26.0", "webpack": "4.41.2", - "webpack-cli": "3.3.9" + "webpack-cli": "3.3.10" } } From df81116730b12afc602660d082727bc6b24c89d1 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Mon, 4 Nov 2019 02:37:50 +0000 Subject: [PATCH 326/530] Update dependency Microsoft.Sourcelink.Github to v1.0.0-beta2-19554-01 --- src/Cassette.React/Cassette.React.csproj | 2 +- src/React.AspNet.Middleware/React.AspNet.Middleware.csproj | 2 +- src/React.AspNet/React.AspNet.csproj | 2 +- src/React.Core/React.Core.csproj | 2 +- src/React.MSBuild/React.MSBuild.csproj | 2 +- src/React.Owin/React.Owin.csproj | 2 +- src/React.Router.Mvc4/React.Router.Mvc4.csproj | 2 +- src/React.Router/React.Router.csproj | 2 +- src/React.Web.Mvc4/React.Web.Mvc4.csproj | 2 +- src/React.Web/React.Web.csproj | 2 +- .../System.Web.Optimization.React.csproj | 2 +- 11 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/Cassette.React/Cassette.React.csproj b/src/Cassette.React/Cassette.React.csproj index 8dd6e8648..3bad8029d 100644 --- a/src/Cassette.React/Cassette.React.csproj +++ b/src/Cassette.React/Cassette.React.csproj @@ -33,7 +33,7 @@ - + diff --git a/src/React.AspNet.Middleware/React.AspNet.Middleware.csproj b/src/React.AspNet.Middleware/React.AspNet.Middleware.csproj index 3f7ebf803..4c96722c2 100644 --- a/src/React.AspNet.Middleware/React.AspNet.Middleware.csproj +++ b/src/React.AspNet.Middleware/React.AspNet.Middleware.csproj @@ -37,7 +37,7 @@ - + diff --git a/src/React.AspNet/React.AspNet.csproj b/src/React.AspNet/React.AspNet.csproj index d1859cb94..71fa5a613 100644 --- a/src/React.AspNet/React.AspNet.csproj +++ b/src/React.AspNet/React.AspNet.csproj @@ -34,7 +34,7 @@ - + diff --git a/src/React.Core/React.Core.csproj b/src/React.Core/React.Core.csproj index 15487e758..9be5e9f78 100644 --- a/src/React.Core/React.Core.csproj +++ b/src/React.Core/React.Core.csproj @@ -48,7 +48,7 @@ - + diff --git a/src/React.MSBuild/React.MSBuild.csproj b/src/React.MSBuild/React.MSBuild.csproj index 68b7fb348..4433ffd76 100644 --- a/src/React.MSBuild/React.MSBuild.csproj +++ b/src/React.MSBuild/React.MSBuild.csproj @@ -40,7 +40,7 @@ - + diff --git a/src/React.Owin/React.Owin.csproj b/src/React.Owin/React.Owin.csproj index b0f39114b..f99653073 100644 --- a/src/React.Owin/React.Owin.csproj +++ b/src/React.Owin/React.Owin.csproj @@ -39,7 +39,7 @@ - + diff --git a/src/React.Router.Mvc4/React.Router.Mvc4.csproj b/src/React.Router.Mvc4/React.Router.Mvc4.csproj index 90a84d2ed..0bf96dacd 100644 --- a/src/React.Router.Mvc4/React.Router.Mvc4.csproj +++ b/src/React.Router.Mvc4/React.Router.Mvc4.csproj @@ -44,7 +44,7 @@ - + diff --git a/src/React.Router/React.Router.csproj b/src/React.Router/React.Router.csproj index ee1e7a2b7..6b94fbdcc 100644 --- a/src/React.Router/React.Router.csproj +++ b/src/React.Router/React.Router.csproj @@ -31,7 +31,7 @@ - + diff --git a/src/React.Web.Mvc4/React.Web.Mvc4.csproj b/src/React.Web.Mvc4/React.Web.Mvc4.csproj index 4657a66ad..b0e266543 100644 --- a/src/React.Web.Mvc4/React.Web.Mvc4.csproj +++ b/src/React.Web.Mvc4/React.Web.Mvc4.csproj @@ -42,7 +42,7 @@ - + diff --git a/src/React.Web/React.Web.csproj b/src/React.Web/React.Web.csproj index 650008edd..1275afe19 100644 --- a/src/React.Web/React.Web.csproj +++ b/src/React.Web/React.Web.csproj @@ -39,7 +39,7 @@ - + diff --git a/src/System.Web.Optimization.React/System.Web.Optimization.React.csproj b/src/System.Web.Optimization.React/System.Web.Optimization.React.csproj index 9dfe66070..14945dda3 100644 --- a/src/System.Web.Optimization.React/System.Web.Optimization.React.csproj +++ b/src/System.Web.Optimization.React/System.Web.Optimization.React.csproj @@ -38,7 +38,7 @@ - + From c4afe8f2591fd7d61f238012fe1559a3f312d99b Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Wed, 6 Nov 2019 16:29:22 +0000 Subject: [PATCH 327/530] Update dependency @types/react-dom to v16.9.4 --- src/React.Sample.Mvc4/package-lock.json | 6 +++--- src/React.Sample.Mvc4/package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/React.Sample.Mvc4/package-lock.json b/src/React.Sample.Mvc4/package-lock.json index 30fe00e54..eb6577166 100644 --- a/src/React.Sample.Mvc4/package-lock.json +++ b/src/React.Sample.Mvc4/package-lock.json @@ -21,9 +21,9 @@ } }, "@types/react-dom": { - "version": "16.9.3", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-16.9.3.tgz", - "integrity": "sha512-FUuZKXPr9qlzUT9lhuzrZgLjH63TvNn28Ch3MvKG4B+F52zQtO8DtE0Opbncy3xaucNZM2WIPfuNTgkbKx5Brg==", + "version": "16.9.4", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-16.9.4.tgz", + "integrity": "sha512-fya9xteU/n90tda0s+FtN5Ym4tbgxpq/hb/Af24dvs6uYnYn+fspaxw5USlw0R8apDNwxsqumdRoCoKitckQqw==", "dev": true, "requires": { "@types/react": "*" diff --git a/src/React.Sample.Mvc4/package.json b/src/React.Sample.Mvc4/package.json index 479a290b6..9964855db 100644 --- a/src/React.Sample.Mvc4/package.json +++ b/src/React.Sample.Mvc4/package.json @@ -8,7 +8,7 @@ }, "devDependencies": { "@types/react": "16.9.11", - "@types/react-dom": "16.9.3", + "@types/react-dom": "16.9.4", "@types/reactstrap": "8.0.6", "typescript": "3.6.4" } From b371c058bb5f43430e72a5e89c14f1352d753ec9 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Sat, 9 Nov 2019 01:53:31 +0000 Subject: [PATCH 328/530] Update dependency Newtonsoft.Json to v12.0.3 --- src/React.Core/React.Core.csproj | 2 +- src/React.Sample.Owin/React.Sample.Owin.csproj | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/React.Core/React.Core.csproj b/src/React.Core/React.Core.csproj index 9be5e9f78..2bcf33859 100644 --- a/src/React.Core/React.Core.csproj +++ b/src/React.Core/React.Core.csproj @@ -49,7 +49,7 @@ - + diff --git a/src/React.Sample.Owin/React.Sample.Owin.csproj b/src/React.Sample.Owin/React.Sample.Owin.csproj index c23d65da0..a827c56d8 100644 --- a/src/React.Sample.Owin/React.Sample.Owin.csproj +++ b/src/React.Sample.Owin/React.Sample.Owin.csproj @@ -33,7 +33,7 @@ - + From 9ee90f14551b0ad39675547ec3d5387b2f1ea47b Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Fri, 22 Nov 2019 17:18:55 +0000 Subject: [PATCH 329/530] Update dependency @types/react to v16.9.12 --- src/React.Sample.Mvc4/package-lock.json | 6 +++--- src/React.Sample.Mvc4/package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/React.Sample.Mvc4/package-lock.json b/src/React.Sample.Mvc4/package-lock.json index eb6577166..6b1b64c90 100644 --- a/src/React.Sample.Mvc4/package-lock.json +++ b/src/React.Sample.Mvc4/package-lock.json @@ -11,9 +11,9 @@ "dev": true }, "@types/react": { - "version": "16.9.11", - "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.11.tgz", - "integrity": "sha512-UBT4GZ3PokTXSWmdgC/GeCGEJXE5ofWyibCcecRLUVN2ZBpXQGVgQGtG2foS7CrTKFKlQVVswLvf7Js6XA/CVQ==", + "version": "16.9.12", + "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.12.tgz", + "integrity": "sha512-tc2xuDvJ8uhGmRg/WVpn2IltHoGqijmxntSNkl2tgbMH2boX78ptcAWdyXPgxD0FoaYw8CczUdvjD1G8Y0JtSw==", "dev": true, "requires": { "@types/prop-types": "*", diff --git a/src/React.Sample.Mvc4/package.json b/src/React.Sample.Mvc4/package.json index 9964855db..0f80b0651 100644 --- a/src/React.Sample.Mvc4/package.json +++ b/src/React.Sample.Mvc4/package.json @@ -7,7 +7,7 @@ "lint:ts": "tsc" }, "devDependencies": { - "@types/react": "16.9.11", + "@types/react": "16.9.12", "@types/react-dom": "16.9.4", "@types/reactstrap": "8.0.6", "typescript": "3.6.4" From c60f948f4e38a9bf2b6fa4541f5531c4544051a2 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Sat, 23 Nov 2019 20:31:38 +0000 Subject: [PATCH 330/530] Update dependency @types/react to v16.9.13 --- src/React.Sample.Mvc4/package-lock.json | 6 +++--- src/React.Sample.Mvc4/package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/React.Sample.Mvc4/package-lock.json b/src/React.Sample.Mvc4/package-lock.json index 6b1b64c90..ab124daf3 100644 --- a/src/React.Sample.Mvc4/package-lock.json +++ b/src/React.Sample.Mvc4/package-lock.json @@ -11,9 +11,9 @@ "dev": true }, "@types/react": { - "version": "16.9.12", - "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.12.tgz", - "integrity": "sha512-tc2xuDvJ8uhGmRg/WVpn2IltHoGqijmxntSNkl2tgbMH2boX78ptcAWdyXPgxD0FoaYw8CczUdvjD1G8Y0JtSw==", + "version": "16.9.13", + "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.13.tgz", + "integrity": "sha512-LikzRslbiufJYHyzbHSW0GrAiff8QYLMBFeZmSxzCYGXKxi8m/1PHX+rsVOwhr7mJNq+VIu2Dhf7U6mjFERK6w==", "dev": true, "requires": { "@types/prop-types": "*", diff --git a/src/React.Sample.Mvc4/package.json b/src/React.Sample.Mvc4/package.json index 0f80b0651..938f9d80f 100644 --- a/src/React.Sample.Mvc4/package.json +++ b/src/React.Sample.Mvc4/package.json @@ -7,7 +7,7 @@ "lint:ts": "tsc" }, "devDependencies": { - "@types/react": "16.9.12", + "@types/react": "16.9.13", "@types/react-dom": "16.9.4", "@types/reactstrap": "8.0.6", "typescript": "3.6.4" From 5e62fd5096df597b5d91fcfebe37abee30174135 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 24 Nov 2019 19:05:59 -0500 Subject: [PATCH 331/530] Update dependency typescript to v3.7.2 (#966) --- src/React.Sample.Mvc4/package-lock.json | 6 +++--- src/React.Sample.Mvc4/package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/React.Sample.Mvc4/package-lock.json b/src/React.Sample.Mvc4/package-lock.json index ab124daf3..50c10d968 100644 --- a/src/React.Sample.Mvc4/package-lock.json +++ b/src/React.Sample.Mvc4/package-lock.json @@ -52,9 +52,9 @@ "dev": true }, "typescript": { - "version": "3.6.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.6.4.tgz", - "integrity": "sha512-unoCll1+l+YK4i4F8f22TaNVPRHcD9PA3yCuZ8g5e0qGqlVlJ/8FSateOLLSagn+Yg5+ZwuPkL8LFUc0Jcvksg==", + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.7.2.tgz", + "integrity": "sha512-ml7V7JfiN2Xwvcer+XAf2csGO1bPBdRbFCkYBczNZggrBZ9c7G3riSUeJmqEU5uOtXNPMhE3n+R4FA/3YOAWOQ==", "dev": true } } diff --git a/src/React.Sample.Mvc4/package.json b/src/React.Sample.Mvc4/package.json index 938f9d80f..bd764c78f 100644 --- a/src/React.Sample.Mvc4/package.json +++ b/src/React.Sample.Mvc4/package.json @@ -10,6 +10,6 @@ "@types/react": "16.9.13", "@types/react-dom": "16.9.4", "@types/reactstrap": "8.0.6", - "typescript": "3.6.4" + "typescript": "3.7.2" } } From 97d6166f3ab920b7a94789fb20eaf181fbe7be7b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 24 Nov 2019 19:06:29 -0500 Subject: [PATCH 332/530] Update dependency @babel/standalone to v7.7.4 (#965) --- src/React.Core/package-lock.json | 6 +++--- src/React.Core/package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/React.Core/package-lock.json b/src/React.Core/package-lock.json index db657880a..e72b44f5f 100644 --- a/src/React.Core/package-lock.json +++ b/src/React.Core/package-lock.json @@ -130,9 +130,9 @@ "dev": true }, "@babel/standalone": { - "version": "7.6.4", - "resolved": "https://registry.npmjs.org/@babel/standalone/-/standalone-7.6.4.tgz", - "integrity": "sha512-ikqLCCQ3iSaRhkE1xgVc6+f49s+ZbMu8gvaW1VNJdKE+pQMAp+2CALy4rRKopaLfYWULvtfeKrs4suICO64/dg==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/standalone/-/standalone-7.7.4.tgz", + "integrity": "sha512-7erMqY9K0uOsWERAJrKzOkG5BezlZw8s1Yez40PUJrf8XXPTebv/fO7555+5Hmo1kBiDQlf9FOkV6wc7wRQ19A==", "dev": true }, "@babel/template": { diff --git a/src/React.Core/package.json b/src/React.Core/package.json index 3dd0b699a..f53837087 100644 --- a/src/React.Core/package.json +++ b/src/React.Core/package.json @@ -7,7 +7,7 @@ }, "devDependencies": { "@babel/core": "7.6.4", - "@babel/standalone": "7.6.4", + "@babel/standalone": "7.7.4", "prop-types": "15.7.2", "react": "16.10.2", "react-dom": "16.10.2", From 4e42636694f1ef4e12f37d293717813ac592073e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 24 Nov 2019 19:06:50 -0500 Subject: [PATCH 333/530] Update react monorepo to v16.12.0 (#956) --- src/React.Core/package-lock.json | 20 ++++++++++---------- src/React.Core/package.json | 4 ++-- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/React.Core/package-lock.json b/src/React.Core/package-lock.json index e72b44f5f..3cd0d3e7b 100644 --- a/src/React.Core/package-lock.json +++ b/src/React.Core/package-lock.json @@ -3449,9 +3449,9 @@ } }, "react": { - "version": "16.10.2", - "resolved": "https://registry.npmjs.org/react/-/react-16.10.2.tgz", - "integrity": "sha512-MFVIq0DpIhrHFyqLU0S3+4dIcBhhOvBE8bJ/5kHPVOVaGdo0KuiQzpcjCPsf585WvhypqtrMILyoE2th6dT+Lw==", + "version": "16.12.0", + "resolved": "https://registry.npmjs.org/react/-/react-16.12.0.tgz", + "integrity": "sha512-fglqy3k5E+81pA8s+7K0/T3DBCF0ZDOher1elBFzF7O6arXJgzyu/FW+COxFvAWXJoJN9KIZbT2LXlukwphYTA==", "dev": true, "requires": { "loose-envify": "^1.1.0", @@ -3460,15 +3460,15 @@ } }, "react-dom": { - "version": "16.10.2", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.10.2.tgz", - "integrity": "sha512-kWGDcH3ItJK4+6Pl9DZB16BXYAZyrYQItU4OMy0jAkv5aNqc+mAKb4TpFtAteI6TJZu+9ZlNhaeNQSVQDHJzkw==", + "version": "16.12.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.12.0.tgz", + "integrity": "sha512-LMxFfAGrcS3kETtQaCkTKjMiifahaMySFDn71fZUNpPHZQEzmk/GiAeIT8JSOrHB23fnuCOMruL2a8NYlw+8Gw==", "dev": true, "requires": { "loose-envify": "^1.1.0", "object-assign": "^4.1.1", "prop-types": "^15.6.2", - "scheduler": "^0.16.2" + "scheduler": "^0.18.0" } }, "react-is": { @@ -3646,9 +3646,9 @@ } }, "scheduler": { - "version": "0.16.2", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.16.2.tgz", - "integrity": "sha512-BqYVWqwz6s1wZMhjFvLfVR5WXP7ZY32M/wYPo04CcuPM7XZEbV2TBNW7Z0UkguPTl0dWMA59VbNXxK6q+pHItg==", + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.18.0.tgz", + "integrity": "sha512-agTSHR1Nbfi6ulI0kYNK0203joW2Y5W4po4l+v03tOoiJKpTBbxpNhWDvqc/4IcOw+KLmSiQLTasZ4cab2/UWQ==", "dev": true, "requires": { "loose-envify": "^1.1.0", diff --git a/src/React.Core/package.json b/src/React.Core/package.json index f53837087..29d667126 100644 --- a/src/React.Core/package.json +++ b/src/React.Core/package.json @@ -9,8 +9,8 @@ "@babel/core": "7.6.4", "@babel/standalone": "7.7.4", "prop-types": "15.7.2", - "react": "16.10.2", - "react-dom": "16.10.2", + "react": "16.12.0", + "react-dom": "16.12.0", "webpack": "4.41.2", "webpack-cli": "3.3.10" } From d6ff20050e53283f10d3d1dd017e3eaa1cc517eb Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Sun, 24 Nov 2019 18:48:07 -0800 Subject: [PATCH 334/530] Update tutorial to .NET Core 3 release (#934) --- tutorial-code/Startup.cs | 16 +++++++--------- tutorial-code/tutorial-code.csproj | 14 +++++--------- tutorial-code/web.config | 13 ++++++++----- 3 files changed, 20 insertions(+), 23 deletions(-) diff --git a/tutorial-code/Startup.cs b/tutorial-code/Startup.cs index 0a8f041aa..7777ffb1a 100644 --- a/tutorial-code/Startup.cs +++ b/tutorial-code/Startup.cs @@ -9,6 +9,7 @@ using Microsoft.AspNetCore.Http; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Logging; using Newtonsoft.Json; using Newtonsoft.Json.Serialization; @@ -18,7 +19,7 @@ namespace ReactDemo { public class Startup { - public Startup(IHostingEnvironment env) + public Startup(IWebHostEnvironment env) { var builder = new ConfigurationBuilder() .SetBasePath(env.ContentRootPath) @@ -43,11 +44,8 @@ public void ConfigureServices(IServiceCollection services) } // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. - public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) + public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerFactory loggerFactory) { - loggerFactory.AddConsole(Configuration.GetSection("Logging")); - loggerFactory.AddDebug(); - if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); @@ -85,11 +83,11 @@ public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerF app.UseStaticFiles(); - app.UseMvc(routes => + app.UseRouting(); + + app.UseEndpoints(endpoints => { - routes.MapRoute( - name: "default", - template: "{controller=Home}/{action=Index}/{id?}"); + endpoints.MapControllerRoute("default", "{controller=Home}/{action=Index}/{id?}"); }); } } diff --git a/tutorial-code/tutorial-code.csproj b/tutorial-code/tutorial-code.csproj index 79849928d..ad03c749d 100644 --- a/tutorial-code/tutorial-code.csproj +++ b/tutorial-code/tutorial-code.csproj @@ -1,6 +1,6 @@  - netcoreapp2.2 + netcoreapp3.0 true tutorial-code Exe @@ -14,17 +14,13 @@ - - - - + + + + - - - - diff --git a/tutorial-code/web.config b/tutorial-code/web.config index dc0514fca..a2cf1fe26 100644 --- a/tutorial-code/web.config +++ b/tutorial-code/web.config @@ -1,14 +1,17 @@  - - - + - + + + + + + - + \ No newline at end of file From b62e50b72fae3fffd9704e45b1d533e579b26f90 Mon Sep 17 00:00:00 2001 From: matthew Date: Mon, 14 Oct 2019 14:39:04 +0800 Subject: [PATCH 335/530] add query string to path add query string to path --- src/React.Router/HtmlHelperExtensions.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/React.Router/HtmlHelperExtensions.cs b/src/React.Router/HtmlHelperExtensions.cs index aa522dfbc..1bbf99914 100644 --- a/src/React.Router/HtmlHelperExtensions.cs +++ b/src/React.Router/HtmlHelperExtensions.cs @@ -101,7 +101,8 @@ public static IHtmlString ReactRouter( try { var response = htmlHelper.ViewContext.HttpContext.Response; - path = path ?? htmlHelper.ViewContext.HttpContext.Request.Path; + var request = htmlHelper.ViewContext.HttpContext.Request; + path = path ?? request.Path.ToString() + request.QueryString; var reactComponent = Environment.CreateRouterComponent( From cc504882bae0ba0ec3f3fddcb228a52002999255 Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Sun, 24 Nov 2019 19:55:50 -0800 Subject: [PATCH 336/530] Add test for query param handling in React Router --- .../Router/HtmlHelperExtensionsTest.cs | 46 ++++++++++++++++++- 1 file changed, 44 insertions(+), 2 deletions(-) diff --git a/tests/React.Tests/Router/HtmlHelperExtensionsTest.cs b/tests/React.Tests/Router/HtmlHelperExtensionsTest.cs index 9600744d4..a0759af7d 100644 --- a/tests/React.Tests/Router/HtmlHelperExtensionsTest.cs +++ b/tests/React.Tests/Router/HtmlHelperExtensionsTest.cs @@ -6,6 +6,7 @@ */ #if NET452 +using System.Collections.Specialized; using System.Web; using System.Web.Mvc; using Moq; @@ -64,7 +65,7 @@ class HtmlHelperMocks public Mock htmlHelper; public Mock httpResponse; - public HtmlHelperMocks() + public HtmlHelperMocks(HttpRequestBase request = null) { var viewDataContainer = new Mock(); var viewContext = new Mock(); @@ -72,12 +73,13 @@ public HtmlHelperMocks() htmlHelper = new Mock(viewContext.Object, viewDataContainer.Object); var httpContextBase = new Mock(); viewContext.Setup(x => x.HttpContext).Returns(httpContextBase.Object); + httpContextBase.Setup(x => x.Request).Returns(request); httpContextBase.Setup(x => x.Response).Returns(httpResponse.Object); } } /// - /// Mocks alot of common functionality related to rendering a + /// Mocks alot of common functionality related to rendering a /// React Router component. /// class ReactRouterMocks @@ -227,6 +229,46 @@ public void ShouldRunCustomContextHandler() htmlHelperMock.httpResponse.VerifySet(x => x.StatusCode = 200); } + [Theory] + [InlineData(false)] + [InlineData(true)] + public void ShouldHandleQueryParams(bool withOverriddenPath) + { + var mocks = ConfigureMockReactEnvironment(); + ConfigureMockConfiguration(); + ConfigureReactIdGenerator(); + + mocks.Engine.Setup(x => x.Evaluate("JSON.stringify(context);")) + .Returns("{ status: 200 }"); + + var requestMock = new Mock(); + requestMock.SetupGet(x => x.Path).Returns("/test"); + var queryStringMock = new Mock(); + queryStringMock.Setup(x => x.ToString()).Returns("?a=1&b=2"); + requestMock.SetupGet(x => x.QueryString).Returns(queryStringMock.Object); + + var htmlHelperMock = new HtmlHelperMocks(requestMock.Object); + + var result = HtmlHelperExtensions.ReactRouter( + htmlHelper: htmlHelperMock.htmlHelper.Object, + componentName: "ComponentName", + props: new { }, + path: withOverriddenPath ? "/test2?b=1&c=2" : null, + contextHandler: (response, context) => response.StatusCode = context.status.Value + ); + + htmlHelperMock.httpResponse.VerifySet(x => x.StatusCode = 200); + + if (withOverriddenPath) + { + mocks.Engine.Verify(x => x.Evaluate(@"ReactDOMServer.renderToString(React.createElement(ComponentName, Object.assign({}, { location: '/test2?b=1&c=2', context: context })))")); + } + else + { + mocks.Engine.Verify(x => x.Evaluate(@"ReactDOMServer.renderToString(React.createElement(ComponentName, Object.assign({}, { location: '/test?a=1&b=2', context: context })))")); + } + } + [Fact] public void ShouldRedirectPermanent() { From be43c3e27b3893fc4b9e9d97a7bfff1d7f6d8c7f Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 24 Nov 2019 23:32:14 -0500 Subject: [PATCH 337/530] Update babel monorepo to v7.7.4 (#938) --- src/React.Core/package-lock.json | 118 +- src/React.Core/package.json | 2 +- .../package-lock.json | 1127 ++++++++++------- src/React.Sample.Webpack.CoreMvc/package.json | 12 +- 4 files changed, 714 insertions(+), 545 deletions(-) diff --git a/src/React.Core/package-lock.json b/src/React.Core/package-lock.json index 3cd0d3e7b..d1ec0b82d 100644 --- a/src/React.Core/package-lock.json +++ b/src/React.Core/package-lock.json @@ -14,19 +14,19 @@ } }, "@babel/core": { - "version": "7.6.4", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.6.4.tgz", - "integrity": "sha512-Rm0HGw101GY8FTzpWSyRbki/jzq+/PkNQJ+nSulrdY6gFGOsNseCqD6KHRYe2E+EdzuBdr2pxCp6s4Uk6eJ+XQ==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.7.4.tgz", + "integrity": "sha512-+bYbx56j4nYBmpsWtnPUsKW3NdnYxbqyfrP2w9wILBuHzdfIKz9prieZK0DFPyIzkjYVUe4QkusGL07r5pXznQ==", "dev": true, "requires": { "@babel/code-frame": "^7.5.5", - "@babel/generator": "^7.6.4", - "@babel/helpers": "^7.6.2", - "@babel/parser": "^7.6.4", - "@babel/template": "^7.6.0", - "@babel/traverse": "^7.6.3", - "@babel/types": "^7.6.3", - "convert-source-map": "^1.1.0", + "@babel/generator": "^7.7.4", + "@babel/helpers": "^7.7.4", + "@babel/parser": "^7.7.4", + "@babel/template": "^7.7.4", + "@babel/traverse": "^7.7.4", + "@babel/types": "^7.7.4", + "convert-source-map": "^1.7.0", "debug": "^4.1.0", "json5": "^2.1.0", "lodash": "^4.17.13", @@ -53,55 +53,55 @@ } }, "@babel/generator": { - "version": "7.6.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.6.4.tgz", - "integrity": "sha512-jsBuXkFoZxk0yWLyGI9llT9oiQ2FeTASmRFE32U+aaDTfoE92t78eroO7PTpU/OrYq38hlcDM6vbfLDaOLy+7w==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.7.4.tgz", + "integrity": "sha512-m5qo2WgdOJeyYngKImbkyQrnUN1mPceaG5BV+G0E3gWsa4l/jCSryWJdM2x8OuGAOyh+3d5pVYfZWCiNFtynxg==", "dev": true, "requires": { - "@babel/types": "^7.6.3", + "@babel/types": "^7.7.4", "jsesc": "^2.5.1", "lodash": "^4.17.13", "source-map": "^0.5.0" } }, "@babel/helper-function-name": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz", - "integrity": "sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.7.4.tgz", + "integrity": "sha512-AnkGIdiBhEuiwdoMnKm7jfPfqItZhgRaZfMg1XX3bS25INOnLPjPG1Ppnajh8eqgt5kPJnfqrRHqFqmjKDZLzQ==", "dev": true, "requires": { - "@babel/helper-get-function-arity": "^7.0.0", - "@babel/template": "^7.1.0", - "@babel/types": "^7.0.0" + "@babel/helper-get-function-arity": "^7.7.4", + "@babel/template": "^7.7.4", + "@babel/types": "^7.7.4" } }, "@babel/helper-get-function-arity": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz", - "integrity": "sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.7.4.tgz", + "integrity": "sha512-QTGKEdCkjgzgfJ3bAyRwF4yyT3pg+vDgan8DSivq1eS0gwi+KGKE5x8kRcbeFTb/673mkO5SN1IZfmCfA5o+EA==", "dev": true, "requires": { - "@babel/types": "^7.0.0" + "@babel/types": "^7.7.4" } }, "@babel/helper-split-export-declaration": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.4.tgz", - "integrity": "sha512-Ro/XkzLf3JFITkW6b+hNxzZ1n5OQ80NvIUdmHspih1XAhtN3vPTuUFT4eQnela+2MaZ5ulH+iyP513KJrxbN7Q==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.7.4.tgz", + "integrity": "sha512-guAg1SXFcVr04Guk9eq0S4/rWS++sbmyqosJzVs8+1fH5NI+ZcmkaSkc7dmtAFbHFva6yRJnjW3yAcGxjueDug==", "dev": true, "requires": { - "@babel/types": "^7.4.4" + "@babel/types": "^7.7.4" } }, "@babel/helpers": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.6.2.tgz", - "integrity": "sha512-3/bAUL8zZxYs1cdX2ilEE0WobqbCmKWr/889lf2SS0PpDcpEIY8pb1CCyz0pEcX3pEb+MCbks1jIokz2xLtGTA==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.7.4.tgz", + "integrity": "sha512-ak5NGZGJ6LV85Q1Zc9gn2n+ayXOizryhjSUBTdu5ih1tlVCJeuQENzc4ItyCVhINVXvIT/ZQ4mheGIsfBkpskg==", "dev": true, "requires": { - "@babel/template": "^7.6.0", - "@babel/traverse": "^7.6.2", - "@babel/types": "^7.6.0" + "@babel/template": "^7.7.4", + "@babel/traverse": "^7.7.4", + "@babel/types": "^7.7.4" } }, "@babel/highlight": { @@ -124,9 +124,9 @@ } }, "@babel/parser": { - "version": "7.6.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.6.4.tgz", - "integrity": "sha512-D8RHPW5qd0Vbyo3qb+YjO5nvUVRTXFLQ/FsDxJU2Nqz4uB5EnUN0ZQSEYpvTIbRuttig1XbHWU5oMeQwQSAA+A==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.7.4.tgz", + "integrity": "sha512-jIwvLO0zCL+O/LmEJQjWA75MQTWwx3c3u2JOTDK5D3/9egrWRRA0/0hk9XXywYnXZVVpzrBYeIQTmhwUaePI9g==", "dev": true }, "@babel/standalone": { @@ -136,28 +136,28 @@ "dev": true }, "@babel/template": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.6.0.tgz", - "integrity": "sha512-5AEH2EXD8euCk446b7edmgFdub/qfH1SN6Nii3+fyXP807QRx9Q73A2N5hNwRRslC2H9sNzaFhsPubkS4L8oNQ==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.7.4.tgz", + "integrity": "sha512-qUzihgVPguAzXCK7WXw8pqs6cEwi54s3E+HrejlkuWO6ivMKx9hZl3Y2fSXp9i5HgyWmj7RKP+ulaYnKM4yYxw==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", - "@babel/parser": "^7.6.0", - "@babel/types": "^7.6.0" + "@babel/parser": "^7.7.4", + "@babel/types": "^7.7.4" } }, "@babel/traverse": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.6.3.tgz", - "integrity": "sha512-unn7P4LGsijIxaAJo/wpoU11zN+2IaClkQAxcJWBNCMS6cmVh802IyLHNkAjQ0iYnRS3nnxk5O3fuXW28IMxTw==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.7.4.tgz", + "integrity": "sha512-P1L58hQyupn8+ezVA2z5KBm4/Zr4lCC8dwKCMYzsa5jFMDMQAzaBNy9W5VjB+KAmBjb40U7a/H6ao+Xo+9saIw==", "dev": true, "requires": { "@babel/code-frame": "^7.5.5", - "@babel/generator": "^7.6.3", - "@babel/helper-function-name": "^7.1.0", - "@babel/helper-split-export-declaration": "^7.4.4", - "@babel/parser": "^7.6.3", - "@babel/types": "^7.6.3", + "@babel/generator": "^7.7.4", + "@babel/helper-function-name": "^7.7.4", + "@babel/helper-split-export-declaration": "^7.7.4", + "@babel/parser": "^7.7.4", + "@babel/types": "^7.7.4", "debug": "^4.1.0", "globals": "^11.1.0", "lodash": "^4.17.13" @@ -181,9 +181,9 @@ } }, "@babel/types": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.6.3.tgz", - "integrity": "sha512-CqbcpTxMcpuQTMhjI37ZHVgjBkysg5icREQIEZ0eG1yCNwg3oy+5AaLiOKmjsCj6nqOsa6Hf0ObjRVwokb7srA==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", + "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -988,9 +988,9 @@ "dev": true }, "convert-source-map": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz", - "integrity": "sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", + "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", "dev": true, "requires": { "safe-buffer": "~5.1.1" @@ -3544,9 +3544,9 @@ "dev": true }, "resolve": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.12.0.tgz", - "integrity": "sha512-B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.12.2.tgz", + "integrity": "sha512-cAVTI2VLHWYsGOirfeYVVQ7ZDejtQ9fp4YhYckWDEkFfqbVjaT11iM8k6xSAfGFMM+gDpZjMnFssPu8we+mqFw==", "dev": true, "requires": { "path-parse": "^1.0.6" diff --git a/src/React.Core/package.json b/src/React.Core/package.json index 29d667126..d3f0c7304 100644 --- a/src/React.Core/package.json +++ b/src/React.Core/package.json @@ -6,7 +6,7 @@ "build": "webpack" }, "devDependencies": { - "@babel/core": "7.6.4", + "@babel/core": "7.7.4", "@babel/standalone": "7.7.4", "prop-types": "15.7.2", "react": "16.12.0", diff --git a/src/React.Sample.Webpack.CoreMvc/package-lock.json b/src/React.Sample.Webpack.CoreMvc/package-lock.json index bc7d143d2..a71753b77 100644 --- a/src/React.Sample.Webpack.CoreMvc/package-lock.json +++ b/src/React.Sample.Webpack.CoreMvc/package-lock.json @@ -14,19 +14,19 @@ } }, "@babel/core": { - "version": "7.6.4", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.6.4.tgz", - "integrity": "sha512-Rm0HGw101GY8FTzpWSyRbki/jzq+/PkNQJ+nSulrdY6gFGOsNseCqD6KHRYe2E+EdzuBdr2pxCp6s4Uk6eJ+XQ==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.7.4.tgz", + "integrity": "sha512-+bYbx56j4nYBmpsWtnPUsKW3NdnYxbqyfrP2w9wILBuHzdfIKz9prieZK0DFPyIzkjYVUe4QkusGL07r5pXznQ==", "dev": true, "requires": { "@babel/code-frame": "^7.5.5", - "@babel/generator": "^7.6.4", - "@babel/helpers": "^7.6.2", - "@babel/parser": "^7.6.4", - "@babel/template": "^7.6.0", - "@babel/traverse": "^7.6.3", - "@babel/types": "^7.6.3", - "convert-source-map": "^1.1.0", + "@babel/generator": "^7.7.4", + "@babel/helpers": "^7.7.4", + "@babel/parser": "^7.7.4", + "@babel/template": "^7.7.4", + "@babel/traverse": "^7.7.4", + "@babel/types": "^7.7.4", + "convert-source-map": "^1.7.0", "debug": "^4.1.0", "json5": "^2.1.0", "lodash": "^4.17.13", @@ -35,50 +35,24 @@ "source-map": "^0.5.0" }, "dependencies": { - "@babel/generator": { - "version": "7.6.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.6.4.tgz", - "integrity": "sha512-jsBuXkFoZxk0yWLyGI9llT9oiQ2FeTASmRFE32U+aaDTfoE92t78eroO7PTpU/OrYq38hlcDM6vbfLDaOLy+7w==", + "@babel/types": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", + "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", "dev": true, "requires": { - "@babel/types": "^7.6.3", - "jsesc": "^2.5.1", + "esutils": "^2.0.2", "lodash": "^4.17.13", - "source-map": "^0.5.0" + "to-fast-properties": "^2.0.0" } }, - "@babel/parser": { - "version": "7.6.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.6.4.tgz", - "integrity": "sha512-D8RHPW5qd0Vbyo3qb+YjO5nvUVRTXFLQ/FsDxJU2Nqz4uB5EnUN0ZQSEYpvTIbRuttig1XbHWU5oMeQwQSAA+A==", - "dev": true - }, - "@babel/traverse": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.6.3.tgz", - "integrity": "sha512-unn7P4LGsijIxaAJo/wpoU11zN+2IaClkQAxcJWBNCMS6cmVh802IyLHNkAjQ0iYnRS3nnxk5O3fuXW28IMxTw==", + "convert-source-map": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", + "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", "dev": true, "requires": { - "@babel/code-frame": "^7.5.5", - "@babel/generator": "^7.6.3", - "@babel/helper-function-name": "^7.1.0", - "@babel/helper-split-export-declaration": "^7.4.4", - "@babel/parser": "^7.6.3", - "@babel/types": "^7.6.3", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.13" - } - }, - "@babel/types": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.6.3.tgz", - "integrity": "sha512-CqbcpTxMcpuQTMhjI37ZHVgjBkysg5icREQIEZ0eG1yCNwg3oy+5AaLiOKmjsCj6nqOsa6Hf0ObjRVwokb7srA==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" + "safe-buffer": "~5.1.1" } }, "debug": { @@ -114,21 +88,21 @@ } }, "@babel/generator": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.6.2.tgz", - "integrity": "sha512-j8iHaIW4gGPnViaIHI7e9t/Hl8qLjERI6DcV9kEpAIDJsAOrcnXqRS7t+QbhL76pwbtqP+QCQLL0z1CyVmtjjQ==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.7.4.tgz", + "integrity": "sha512-m5qo2WgdOJeyYngKImbkyQrnUN1mPceaG5BV+G0E3gWsa4l/jCSryWJdM2x8OuGAOyh+3d5pVYfZWCiNFtynxg==", "dev": true, "requires": { - "@babel/types": "^7.6.0", + "@babel/types": "^7.7.4", "jsesc": "^2.5.1", "lodash": "^4.17.13", "source-map": "^0.5.0" }, "dependencies": { "@babel/types": { - "version": "7.6.1", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.6.1.tgz", - "integrity": "sha512-X7gdiuaCmA0uRjCmRtYJNAVCc/q+5xSgsfKJHqMN4iNLILX39677fJE1O40arPMh0TTtS9ItH67yre6c7k6t0g==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", + "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -147,59 +121,66 @@ } }, "@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.1.0.tgz", - "integrity": "sha512-qNSR4jrmJ8M1VMM9tibvyRAHXQs2PmaksQF7c1CGJNipfe3D8p+wgNwgso/P2A2r2mdgBWAXljNWR0QRZAMW8w==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.7.4.tgz", + "integrity": "sha512-Biq/d/WtvfftWZ9Uf39hbPBYDUo986m5Bb4zhkeYDGUllF43D+nUe5M6Vuo6/8JDK/0YX/uBdeoQpyaNhNugZQ==", "dev": true, "requires": { - "@babel/helper-explode-assignable-expression": "^7.1.0", - "@babel/types": "^7.0.0" + "@babel/helper-explode-assignable-expression": "^7.7.4", + "@babel/types": "^7.7.4" + }, + "dependencies": { + "@babel/types": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", + "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/helper-builder-react-jsx": { - "version": "7.3.0", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.3.0.tgz", - "integrity": "sha512-MjA9KgwCuPEkQd9ncSXvSyJ5y+j2sICHyrI0M3L+6fnS4wMSNDc1ARXsbTfbb2cXHn17VisSnU/sHFTCxVxSMw==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.7.4.tgz", + "integrity": "sha512-kvbfHJNN9dg4rkEM4xn1s8d1/h6TYNvajy9L1wx4qLn9HFg0IkTsQi4rfBe92nxrPUFcMsHoMV+8rU7MJb3fCA==", "dev": true, "requires": { - "@babel/types": "^7.3.0", + "@babel/types": "^7.7.4", "esutils": "^2.0.0" }, "dependencies": { "@babel/types": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.3.4.tgz", - "integrity": "sha512-WEkp8MsLftM7O/ty580wAmZzN1nDmCACc5+jFzUt+GUFNNIi3LdRlueYz0YIlmJhlZx1QYDMZL5vdWCL0fNjFQ==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", + "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", "dev": true, "requires": { "esutils": "^2.0.2", - "lodash": "^4.17.11", + "lodash": "^4.17.13", "to-fast-properties": "^2.0.0" } - }, - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "dev": true } } }, "@babel/helper-call-delegate": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/helper-call-delegate/-/helper-call-delegate-7.4.4.tgz", - "integrity": "sha512-l79boDFJ8S1c5hvQvG+rc+wHw6IuH7YldmRKsYtpbawsxURu/paVy57FZMomGK22/JckepaikOkY0MoAmdyOlQ==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/helper-call-delegate/-/helper-call-delegate-7.7.4.tgz", + "integrity": "sha512-8JH9/B7J7tCYJ2PpWVpw9JhPuEVHztagNVuQAFBVFYluRMlpG7F1CgKEgGeL6KFqcsIa92ZYVj6DSc0XwmN1ZA==", "dev": true, "requires": { - "@babel/helper-hoist-variables": "^7.4.4", - "@babel/traverse": "^7.4.4", - "@babel/types": "^7.4.4" + "@babel/helper-hoist-variables": "^7.7.4", + "@babel/traverse": "^7.7.4", + "@babel/types": "^7.7.4" }, "dependencies": { "@babel/types": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.6.3.tgz", - "integrity": "sha512-CqbcpTxMcpuQTMhjI37ZHVgjBkysg5icREQIEZ0eG1yCNwg3oy+5AaLiOKmjsCj6nqOsa6Hf0ObjRVwokb7srA==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", + "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -210,34 +191,44 @@ } }, "@babel/helper-create-class-features-plugin": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.6.0.tgz", - "integrity": "sha512-O1QWBko4fzGju6VoVvrZg0RROCVifcLxiApnGP3OWfWzvxRZFCoBD81K5ur5e3bVY2Vf/5rIJm8cqPKn8HUJng==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.7.4.tgz", + "integrity": "sha512-l+OnKACG4uiDHQ/aJT8dwpR+LhCJALxL0mJ6nzjB25e5IPwqV1VOsY7ah6UB1DG+VOXAIMtuC54rFJGiHkxjgA==", "dev": true, "requires": { - "@babel/helper-function-name": "^7.1.0", - "@babel/helper-member-expression-to-functions": "^7.5.5", - "@babel/helper-optimise-call-expression": "^7.0.0", + "@babel/helper-function-name": "^7.7.4", + "@babel/helper-member-expression-to-functions": "^7.7.4", + "@babel/helper-optimise-call-expression": "^7.7.4", "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-replace-supers": "^7.5.5", - "@babel/helper-split-export-declaration": "^7.4.4" + "@babel/helper-replace-supers": "^7.7.4", + "@babel/helper-split-export-declaration": "^7.7.4" + } + }, + "@babel/helper-create-regexp-features-plugin": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.7.4.tgz", + "integrity": "sha512-Mt+jBKaxL0zfOIWrfQpnfYCN7/rS6GKx6CCCfuoqVVd+17R8zNDlzVYmIi9qyb2wOk002NsmSTDymkIygDUH7A==", + "dev": true, + "requires": { + "@babel/helper-regex": "^7.4.4", + "regexpu-core": "^4.6.0" } }, "@babel/helper-define-map": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.5.5.tgz", - "integrity": "sha512-fTfxx7i0B5NJqvUOBBGREnrqbTxRh7zinBANpZXAVDlsZxYdclDp467G1sQ8VZYMnAURY3RpBUAgOYT9GfzHBg==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.7.4.tgz", + "integrity": "sha512-v5LorqOa0nVQUvAUTUF3KPastvUt/HzByXNamKQ6RdJRTV7j8rLL+WB5C/MzzWAwOomxDhYFb1wLLxHqox86lg==", "dev": true, "requires": { - "@babel/helper-function-name": "^7.1.0", - "@babel/types": "^7.5.5", + "@babel/helper-function-name": "^7.7.4", + "@babel/types": "^7.7.4", "lodash": "^4.17.13" }, "dependencies": { "@babel/types": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.6.3.tgz", - "integrity": "sha512-CqbcpTxMcpuQTMhjI37ZHVgjBkysg5icREQIEZ0eG1yCNwg3oy+5AaLiOKmjsCj6nqOsa6Hf0ObjRVwokb7srA==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", + "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -248,48 +239,87 @@ } }, "@babel/helper-explode-assignable-expression": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.1.0.tgz", - "integrity": "sha512-NRQpfHrJ1msCHtKjbzs9YcMmJZOg6mQMmGRB+hbamEdG5PNpaSm95275VD92DvJKuyl0s2sFiDmMZ+EnnvufqA==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.7.4.tgz", + "integrity": "sha512-2/SicuFrNSXsZNBxe5UGdLr+HZg+raWBLE9vC98bdYOKX/U6PY0mdGlYUJdtTDPSU0Lw0PNbKKDpwYHJLn2jLg==", "dev": true, "requires": { - "@babel/traverse": "^7.1.0", - "@babel/types": "^7.0.0" + "@babel/traverse": "^7.7.4", + "@babel/types": "^7.7.4" + }, + "dependencies": { + "@babel/types": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", + "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/helper-function-name": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz", - "integrity": "sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.7.4.tgz", + "integrity": "sha512-AnkGIdiBhEuiwdoMnKm7jfPfqItZhgRaZfMg1XX3bS25INOnLPjPG1Ppnajh8eqgt5kPJnfqrRHqFqmjKDZLzQ==", "dev": true, "requires": { - "@babel/helper-get-function-arity": "^7.0.0", - "@babel/template": "^7.1.0", - "@babel/types": "^7.0.0" + "@babel/helper-get-function-arity": "^7.7.4", + "@babel/template": "^7.7.4", + "@babel/types": "^7.7.4" + }, + "dependencies": { + "@babel/types": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", + "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/helper-get-function-arity": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz", - "integrity": "sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.7.4.tgz", + "integrity": "sha512-QTGKEdCkjgzgfJ3bAyRwF4yyT3pg+vDgan8DSivq1eS0gwi+KGKE5x8kRcbeFTb/673mkO5SN1IZfmCfA5o+EA==", "dev": true, "requires": { - "@babel/types": "^7.0.0" + "@babel/types": "^7.7.4" + }, + "dependencies": { + "@babel/types": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", + "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/helper-hoist-variables": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.4.4.tgz", - "integrity": "sha512-VYk2/H/BnYbZDDg39hr3t2kKyifAm1W6zHRfhx8jGjIHpQEBv9dry7oQ2f3+J703TLu69nYdxsovl0XYfcnK4w==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.7.4.tgz", + "integrity": "sha512-wQC4xyvc1Jo/FnLirL6CEgPgPCa8M74tOdjWpRhQYapz5JC7u3NYU1zCVoVAGCE3EaIP9T1A3iW0WLJ+reZlpQ==", "dev": true, "requires": { - "@babel/types": "^7.4.4" + "@babel/types": "^7.7.4" }, "dependencies": { "@babel/types": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.6.3.tgz", - "integrity": "sha512-CqbcpTxMcpuQTMhjI37ZHVgjBkysg5icREQIEZ0eG1yCNwg3oy+5AaLiOKmjsCj6nqOsa6Hf0ObjRVwokb7srA==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", + "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -300,18 +330,18 @@ } }, "@babel/helper-member-expression-to-functions": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.5.5.tgz", - "integrity": "sha512-5qZ3D1uMclSNqYcXqiHoA0meVdv+xUEex9em2fqMnrk/scphGlGgg66zjMrPJESPwrFJ6sbfFQYUSa0Mz7FabA==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.7.4.tgz", + "integrity": "sha512-9KcA1X2E3OjXl/ykfMMInBK+uVdfIVakVe7W7Lg3wfXUNyS3Q1HWLFRwZIjhqiCGbslummPDnmb7vIekS0C1vw==", "dev": true, "requires": { - "@babel/types": "^7.5.5" + "@babel/types": "^7.7.4" }, "dependencies": { "@babel/types": { - "version": "7.6.1", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.6.1.tgz", - "integrity": "sha512-X7gdiuaCmA0uRjCmRtYJNAVCc/q+5xSgsfKJHqMN4iNLILX39677fJE1O40arPMh0TTtS9ItH67yre6c7k6t0g==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", + "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -330,23 +360,32 @@ } }, "@babel/helper-module-transforms": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.5.5.tgz", - "integrity": "sha512-jBeCvETKuJqeiaCdyaheF40aXnnU1+wkSiUs/IQg3tB85up1LyL8x77ClY8qJpuRJUcXQo+ZtdNESmZl4j56Pw==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.7.4.tgz", + "integrity": "sha512-ehGBu4mXrhs0FxAqN8tWkzF8GSIGAiEumu4ONZ/hD9M88uHcD+Yu2ttKfOCgwzoesJOJrtQh7trI5YPbRtMmnA==", "dev": true, "requires": { - "@babel/helper-module-imports": "^7.0.0", - "@babel/helper-simple-access": "^7.1.0", - "@babel/helper-split-export-declaration": "^7.4.4", - "@babel/template": "^7.4.4", - "@babel/types": "^7.5.5", + "@babel/helper-module-imports": "^7.7.4", + "@babel/helper-simple-access": "^7.7.4", + "@babel/helper-split-export-declaration": "^7.7.4", + "@babel/template": "^7.7.4", + "@babel/types": "^7.7.4", "lodash": "^4.17.13" }, "dependencies": { + "@babel/helper-module-imports": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.7.4.tgz", + "integrity": "sha512-dGcrX6K9l8258WFjyDLJwuVKxR4XZfU0/vTUgOQYWEnRD8mgr+p4d6fCUMq/ys0h4CCt/S5JhbvtyErjWouAUQ==", + "dev": true, + "requires": { + "@babel/types": "^7.7.4" + } + }, "@babel/types": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.6.3.tgz", - "integrity": "sha512-CqbcpTxMcpuQTMhjI37ZHVgjBkysg5icREQIEZ0eG1yCNwg3oy+5AaLiOKmjsCj6nqOsa6Hf0ObjRVwokb7srA==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", + "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -357,12 +396,25 @@ } }, "@babel/helper-optimise-call-expression": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.0.0.tgz", - "integrity": "sha512-u8nd9NQePYNQV8iPWu/pLLYBqZBa4ZaY1YWRFMuxrid94wKI1QNt67NEZ7GAe5Kc/0LLScbim05xZFWkAdrj9g==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.7.4.tgz", + "integrity": "sha512-VB7gWZ2fDkSuqW6b1AKXkJWO5NyNI3bFL/kK79/30moK57blr6NbH8xcl2XcKCwOmJosftWunZqfO84IGq3ZZg==", "dev": true, "requires": { - "@babel/types": "^7.0.0" + "@babel/types": "^7.7.4" + }, + "dependencies": { + "@babel/types": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", + "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/helper-plugin-utils": { @@ -381,34 +433,56 @@ } }, "@babel/helper-remap-async-to-generator": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.1.0.tgz", - "integrity": "sha512-3fOK0L+Fdlg8S5al8u/hWE6vhufGSn0bN09xm2LXMy//REAF8kDCrYoOBKYmA8m5Nom+sV9LyLCwrFynA8/slg==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.7.4.tgz", + "integrity": "sha512-Sk4xmtVdM9sA/jCI80f+KS+Md+ZHIpjuqmYPk1M7F/upHou5e4ReYmExAiu6PVe65BhJPZA2CY9x9k4BqE5klw==", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.0.0", - "@babel/helper-wrap-function": "^7.1.0", - "@babel/template": "^7.1.0", - "@babel/traverse": "^7.1.0", - "@babel/types": "^7.0.0" + "@babel/helper-annotate-as-pure": "^7.7.4", + "@babel/helper-wrap-function": "^7.7.4", + "@babel/template": "^7.7.4", + "@babel/traverse": "^7.7.4", + "@babel/types": "^7.7.4" + }, + "dependencies": { + "@babel/helper-annotate-as-pure": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.7.4.tgz", + "integrity": "sha512-2BQmQgECKzYKFPpiycoF9tlb5HA4lrVyAmLLVK177EcQAqjVLciUb2/R+n1boQ9y5ENV3uz2ZqiNw7QMBBw1Og==", + "dev": true, + "requires": { + "@babel/types": "^7.7.4" + } + }, + "@babel/types": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", + "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/helper-replace-supers": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.5.5.tgz", - "integrity": "sha512-XvRFWrNnlsow2u7jXDuH4jDDctkxbS7gXssrP4q2nUD606ukXHRvydj346wmNg+zAgpFx4MWf4+usfC93bElJg==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.7.4.tgz", + "integrity": "sha512-pP0tfgg9hsZWo5ZboYGuBn/bbYT/hdLPVSS4NMmiRJdwWhP0IznPwN9AE1JwyGsjSPLC364I0Qh5p+EPkGPNpg==", "dev": true, "requires": { - "@babel/helper-member-expression-to-functions": "^7.5.5", - "@babel/helper-optimise-call-expression": "^7.0.0", - "@babel/traverse": "^7.5.5", - "@babel/types": "^7.5.5" + "@babel/helper-member-expression-to-functions": "^7.7.4", + "@babel/helper-optimise-call-expression": "^7.7.4", + "@babel/traverse": "^7.7.4", + "@babel/types": "^7.7.4" }, "dependencies": { "@babel/types": { - "version": "7.6.1", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.6.1.tgz", - "integrity": "sha512-X7gdiuaCmA0uRjCmRtYJNAVCc/q+5xSgsfKJHqMN4iNLILX39677fJE1O40arPMh0TTtS9ItH67yre6c7k6t0g==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", + "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -419,28 +493,41 @@ } }, "@babel/helper-simple-access": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.1.0.tgz", - "integrity": "sha512-Vk+78hNjRbsiu49zAPALxTb+JUQCz1aolpd8osOF16BGnLtseD21nbHgLPGUwrXEurZgiCOUmvs3ExTu4F5x6w==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.7.4.tgz", + "integrity": "sha512-zK7THeEXfan7UlWsG2A6CI/L9jVnI5+xxKZOdej39Y0YtDYKx9raHk5F2EtK9K8DHRTihYwg20ADt9S36GR78A==", "dev": true, "requires": { - "@babel/template": "^7.1.0", - "@babel/types": "^7.0.0" + "@babel/template": "^7.7.4", + "@babel/types": "^7.7.4" + }, + "dependencies": { + "@babel/types": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", + "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/helper-split-export-declaration": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.4.tgz", - "integrity": "sha512-Ro/XkzLf3JFITkW6b+hNxzZ1n5OQ80NvIUdmHspih1XAhtN3vPTuUFT4eQnela+2MaZ5ulH+iyP513KJrxbN7Q==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.7.4.tgz", + "integrity": "sha512-guAg1SXFcVr04Guk9eq0S4/rWS++sbmyqosJzVs8+1fH5NI+ZcmkaSkc7dmtAFbHFva6yRJnjW3yAcGxjueDug==", "dev": true, "requires": { - "@babel/types": "^7.4.4" + "@babel/types": "^7.7.4" }, "dependencies": { "@babel/types": { - "version": "7.6.1", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.6.1.tgz", - "integrity": "sha512-X7gdiuaCmA0uRjCmRtYJNAVCc/q+5xSgsfKJHqMN4iNLILX39677fJE1O40arPMh0TTtS9ItH67yre6c7k6t0g==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", + "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -451,21 +538,21 @@ } }, "@babel/helper-wrap-function": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.2.0.tgz", - "integrity": "sha512-o9fP1BZLLSrYlxYEYyl2aS+Flun5gtjTIG8iln+XuEzQTs0PLagAGSXUcqruJwD5fM48jzIEggCKpIfWTcR7pQ==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.7.4.tgz", + "integrity": "sha512-VsfzZt6wmsocOaVU0OokwrIytHND55yvyT4BPB9AIIgwr8+x7617hetdJTsuGwygN5RC6mxA9EJztTjuwm2ofg==", "dev": true, "requires": { - "@babel/helper-function-name": "^7.1.0", - "@babel/template": "^7.1.0", - "@babel/traverse": "^7.1.0", - "@babel/types": "^7.2.0" + "@babel/helper-function-name": "^7.7.4", + "@babel/template": "^7.7.4", + "@babel/traverse": "^7.7.4", + "@babel/types": "^7.7.4" }, "dependencies": { "@babel/types": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.6.3.tgz", - "integrity": "sha512-CqbcpTxMcpuQTMhjI37ZHVgjBkysg5icREQIEZ0eG1yCNwg3oy+5AaLiOKmjsCj6nqOsa6Hf0ObjRVwokb7srA==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", + "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -476,20 +563,20 @@ } }, "@babel/helpers": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.6.2.tgz", - "integrity": "sha512-3/bAUL8zZxYs1cdX2ilEE0WobqbCmKWr/889lf2SS0PpDcpEIY8pb1CCyz0pEcX3pEb+MCbks1jIokz2xLtGTA==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.7.4.tgz", + "integrity": "sha512-ak5NGZGJ6LV85Q1Zc9gn2n+ayXOizryhjSUBTdu5ih1tlVCJeuQENzc4ItyCVhINVXvIT/ZQ4mheGIsfBkpskg==", "dev": true, "requires": { - "@babel/template": "^7.6.0", - "@babel/traverse": "^7.6.2", - "@babel/types": "^7.6.0" + "@babel/template": "^7.7.4", + "@babel/traverse": "^7.7.4", + "@babel/types": "^7.7.4" }, "dependencies": { "@babel/types": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.6.3.tgz", - "integrity": "sha512-CqbcpTxMcpuQTMhjI37ZHVgjBkysg5icREQIEZ0eG1yCNwg3oy+5AaLiOKmjsCj6nqOsa6Hf0ObjRVwokb7srA==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", + "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -519,170 +606,200 @@ } }, "@babel/parser": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.6.2.tgz", - "integrity": "sha512-mdFqWrSPCmikBoaBYMuBulzTIKuXVPtEISFbRRVNwMWpCms/hmE2kRq0bblUHaNRKrjRlmVbx1sDHmjmRgD2Xg==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.7.4.tgz", + "integrity": "sha512-jIwvLO0zCL+O/LmEJQjWA75MQTWwx3c3u2JOTDK5D3/9egrWRRA0/0hk9XXywYnXZVVpzrBYeIQTmhwUaePI9g==", "dev": true }, "@babel/plugin-proposal-async-generator-functions": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.2.0.tgz", - "integrity": "sha512-+Dfo/SCQqrwx48ptLVGLdE39YtWRuKc/Y9I5Fy0P1DDBB9lsAHpjcEJQt+4IifuSOSTLBKJObJqMvaO1pIE8LQ==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.7.4.tgz", + "integrity": "sha512-1ypyZvGRXriY/QP668+s8sFr2mqinhkRDMPSQLNghCQE+GAkFtp+wkHVvg2+Hdki8gwP+NFzJBJ/N1BfzCCDEw==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-remap-async-to-generator": "^7.1.0", - "@babel/plugin-syntax-async-generators": "^7.2.0" + "@babel/helper-remap-async-to-generator": "^7.7.4", + "@babel/plugin-syntax-async-generators": "^7.7.4" } }, "@babel/plugin-proposal-class-properties": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.5.5.tgz", - "integrity": "sha512-AF79FsnWFxjlaosgdi421vmYG6/jg79bVD0dpD44QdgobzHKuLZ6S3vl8la9qIeSwGi8i1fS0O1mfuDAAdo1/A==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.7.4.tgz", + "integrity": "sha512-EcuXeV4Hv1X3+Q1TsuOmyyxeTRiSqurGJ26+I/FW1WbymmRRapVORm6x1Zl3iDIHyRxEs+VXWp6qnlcfcJSbbw==", "dev": true, "requires": { - "@babel/helper-create-class-features-plugin": "^7.5.5", + "@babel/helper-create-class-features-plugin": "^7.7.4", "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-proposal-dynamic-import": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.5.0.tgz", - "integrity": "sha512-x/iMjggsKTFHYC6g11PL7Qy58IK8H5zqfm9e6hu4z1iH2IRyAp9u9dL80zA6R76yFovETFLKz2VJIC2iIPBuFw==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.7.4.tgz", + "integrity": "sha512-StH+nGAdO6qDB1l8sZ5UBV8AC3F2VW2I8Vfld73TMKyptMU9DY5YsJAS8U81+vEtxcH3Y/La0wG0btDrhpnhjQ==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-syntax-dynamic-import": "^7.2.0" + "@babel/plugin-syntax-dynamic-import": "^7.7.4" } }, "@babel/plugin-proposal-json-strings": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.2.0.tgz", - "integrity": "sha512-MAFV1CA/YVmYwZG0fBQyXhmj0BHCB5egZHCKWIFVv/XCxAeVGIHfos3SwDck4LvCllENIAg7xMKOG5kH0dzyUg==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.7.4.tgz", + "integrity": "sha512-wQvt3akcBTfLU/wYoqm/ws7YOAQKu8EVJEvHip/mzkNtjaclQoCCIqKXFP5/eyfnfbQCDV3OLRIK3mIVyXuZlw==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-syntax-json-strings": "^7.2.0" + "@babel/plugin-syntax-json-strings": "^7.7.4" } }, "@babel/plugin-proposal-object-rest-spread": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.6.2.tgz", - "integrity": "sha512-LDBXlmADCsMZV1Y9OQwMc0MyGZ8Ta/zlD9N67BfQT8uYwkRswiu2hU6nJKrjrt/58aH/vqfQlR/9yId/7A2gWw==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.7.4.tgz", + "integrity": "sha512-rnpnZR3/iWKmiQyJ3LKJpSwLDcX/nSXhdLk4Aq/tXOApIvyu7qoabrige0ylsAJffaUC51WiBu209Q0U+86OWQ==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-syntax-object-rest-spread": "^7.2.0" + "@babel/plugin-syntax-object-rest-spread": "^7.7.4" } }, "@babel/plugin-proposal-optional-catch-binding": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.2.0.tgz", - "integrity": "sha512-mgYj3jCcxug6KUcX4OBoOJz3CMrwRfQELPQ5560F70YQUBZB7uac9fqaWamKR1iWUzGiK2t0ygzjTScZnVz75g==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.7.4.tgz", + "integrity": "sha512-DyM7U2bnsQerCQ+sejcTNZh8KQEUuC3ufzdnVnSiUv/qoGJp2Z3hanKL18KDhsBT5Wj6a7CMT5mdyCNJsEaA9w==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-syntax-optional-catch-binding": "^7.2.0" + "@babel/plugin-syntax-optional-catch-binding": "^7.7.4" } }, "@babel/plugin-proposal-unicode-property-regex": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.6.2.tgz", - "integrity": "sha512-NxHETdmpeSCtiatMRYWVJo7266rrvAC3DTeG5exQBIH/fMIUK7ejDNznBbn3HQl/o9peymRRg7Yqkx6PdUXmMw==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.7.4.tgz", + "integrity": "sha512-cHgqHgYvffluZk85dJ02vloErm3Y6xtH+2noOBOJ2kXOJH3aVCDnj5eR/lVNlTnYu4hndAPJD3rTFjW3qee0PA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-regex": "^7.4.4", - "regexpu-core": "^4.6.0" + "@babel/helper-create-regexp-features-plugin": "^7.7.4", + "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-syntax-async-generators": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.2.0.tgz", - "integrity": "sha512-1ZrIRBv2t0GSlcwVoQ6VgSLpLgiN/FVQUzt9znxo7v2Ov4jJrs8RY8tv0wvDmFN3qIdMKWrmMMW6yZ0G19MfGg==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.7.4.tgz", + "integrity": "sha512-Li4+EjSpBgxcsmeEF8IFcfV/+yJGxHXDirDkEoyFjumuwbmfCVHUt0HuowD/iGM7OhIRyXJH9YXxqiH6N815+g==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-syntax-dynamic-import": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.2.0.tgz", - "integrity": "sha512-mVxuJ0YroI/h/tbFTPGZR8cv6ai+STMKNBq0f8hFxsxWjl94qqhsb+wXbpNMDPU3cfR1TIsVFzU3nXyZMqyK4w==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.7.4.tgz", + "integrity": "sha512-jHQW0vbRGvwQNgyVxwDh4yuXu4bH1f5/EICJLAhl1SblLs2CDhrsmCk+v5XLdE9wxtAFRyxx+P//Iw+a5L/tTg==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-syntax-json-strings": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.2.0.tgz", - "integrity": "sha512-5UGYnMSLRE1dqqZwug+1LISpA403HzlSfsg6P9VXU6TBjcSHeNlw4DxDx7LgpF+iKZoOG/+uzqoRHTdcUpiZNg==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.7.4.tgz", + "integrity": "sha512-QpGupahTQW1mHRXddMG5srgpHWqRLwJnJZKXTigB9RPFCCGbDGCgBeM/iC82ICXp414WeYx/tD54w7M2qRqTMg==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-syntax-jsx": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.2.0.tgz", - "integrity": "sha512-VyN4QANJkRW6lDBmENzRszvZf3/4AXaj9YR7GwrWeeN9tEBPuXbmDYVU9bYBN0D70zCWVwUy0HWq2553VCb6Hw==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.7.4.tgz", + "integrity": "sha512-wuy6fiMe9y7HeZBWXYCGt2RGxZOj0BImZ9EyXJVnVGBKO/Br592rbR3rtIQn0eQhAk9vqaKP5n8tVqEFBQMfLg==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-syntax-object-rest-spread": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.2.0.tgz", - "integrity": "sha512-t0JKGgqk2We+9may3t0xDdmneaXmyxq0xieYcKHxIsrJO64n1OiMWNUtc5gQK1PA0NpdCRrtZp4z+IUaKugrSA==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.7.4.tgz", + "integrity": "sha512-mObR+r+KZq0XhRVS2BrBKBpr5jqrqzlPvS9C9vuOf5ilSwzloAl7RPWLrgKdWS6IreaVrjHxTjtyqFiOisaCwg==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-syntax-optional-catch-binding": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.2.0.tgz", - "integrity": "sha512-bDe4xKNhb0LI7IvZHiA13kff0KEfaGX/Hv4lMA9+7TEc63hMNvfKo6ZFpXhKuEp+II/q35Gc4NoMeDZyaUbj9w==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.7.4.tgz", + "integrity": "sha512-4ZSuzWgFxqHRE31Glu+fEr/MirNZOMYmD/0BhBWyLyOOQz/gTAl7QmWm2hX1QxEIXsr2vkdlwxIzTyiYRC4xcQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-syntax-top-level-await": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.7.4.tgz", + "integrity": "sha512-wdsOw0MvkL1UIgiQ/IFr3ETcfv1xb8RMM0H9wbiDyLaJFyiDg5oZvDLCXosIXmFeIlweML5iOBXAkqddkYNizg==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-transform-arrow-functions": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.2.0.tgz", - "integrity": "sha512-ER77Cax1+8/8jCB9fo4Ud161OZzWN5qawi4GusDuRLcDbDG+bIGYY20zb2dfAFdTRGzrfq2xZPvF0R64EHnimg==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.7.4.tgz", + "integrity": "sha512-zUXy3e8jBNPiffmqkHRNDdZM2r8DWhCB7HhcoyZjiK1TxYEluLHAvQuYnTT+ARqRpabWqy/NHkO6e3MsYB5YfA==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-transform-async-to-generator": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.5.0.tgz", - "integrity": "sha512-mqvkzwIGkq0bEF1zLRRiTdjfomZJDV33AH3oQzHVGkI2VzEmXLpKKOBvEVaFZBJdN0XTyH38s9j/Kiqr68dggg==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.7.4.tgz", + "integrity": "sha512-zpUTZphp5nHokuy8yLlyafxCJ0rSlFoSHypTUWgpdwoDXWQcseaect7cJ8Ppk6nunOM6+5rPMkod4OYKPR5MUg==", "dev": true, "requires": { - "@babel/helper-module-imports": "^7.0.0", + "@babel/helper-module-imports": "^7.7.4", "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-remap-async-to-generator": "^7.1.0" + "@babel/helper-remap-async-to-generator": "^7.7.4" + }, + "dependencies": { + "@babel/helper-module-imports": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.7.4.tgz", + "integrity": "sha512-dGcrX6K9l8258WFjyDLJwuVKxR4XZfU0/vTUgOQYWEnRD8mgr+p4d6fCUMq/ys0h4CCt/S5JhbvtyErjWouAUQ==", + "dev": true, + "requires": { + "@babel/types": "^7.7.4" + } + }, + "@babel/types": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", + "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/plugin-transform-block-scoped-functions": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.2.0.tgz", - "integrity": "sha512-ntQPR6q1/NKuphly49+QiQiTN0O63uOwjdD6dhIjSWBI5xlrbUFh720TIpzBhpnrLfv2tNH/BXvLIab1+BAI0w==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.7.4.tgz", + "integrity": "sha512-kqtQzwtKcpPclHYjLK//3lH8OFsCDuDJBaFhVwf8kqdnF6MN4l618UDlcA7TfRs3FayrHj+svYnSX8MC9zmUyQ==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-transform-block-scoping": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.6.3.tgz", - "integrity": "sha512-7hvrg75dubcO3ZI2rjYTzUrEuh1E9IyDEhhB6qfcooxhDA33xx2MasuLVgdxzcP6R/lipAC6n9ub9maNW6RKdw==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.7.4.tgz", + "integrity": "sha512-2VBe9u0G+fDt9B5OV5DQH4KBf5DoiNkwFKOz0TCvBWvdAN2rOykCTkrL+jTLxfCAm76l9Qo5OqL7HBOx2dWggg==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0", @@ -690,278 +807,299 @@ } }, "@babel/plugin-transform-classes": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.5.5.tgz", - "integrity": "sha512-U2htCNK/6e9K7jGyJ++1p5XRU+LJjrwtoiVn9SzRlDT2KubcZ11OOwy3s24TjHxPgxNwonCYP7U2K51uVYCMDg==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.7.4.tgz", + "integrity": "sha512-sK1mjWat7K+buWRuImEzjNf68qrKcrddtpQo3swi9j7dUcG6y6R6+Di039QN2bD1dykeswlagupEmpOatFHHUg==", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.0.0", - "@babel/helper-define-map": "^7.5.5", - "@babel/helper-function-name": "^7.1.0", - "@babel/helper-optimise-call-expression": "^7.0.0", + "@babel/helper-annotate-as-pure": "^7.7.4", + "@babel/helper-define-map": "^7.7.4", + "@babel/helper-function-name": "^7.7.4", + "@babel/helper-optimise-call-expression": "^7.7.4", "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-replace-supers": "^7.5.5", - "@babel/helper-split-export-declaration": "^7.4.4", + "@babel/helper-replace-supers": "^7.7.4", + "@babel/helper-split-export-declaration": "^7.7.4", "globals": "^11.1.0" + }, + "dependencies": { + "@babel/helper-annotate-as-pure": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.7.4.tgz", + "integrity": "sha512-2BQmQgECKzYKFPpiycoF9tlb5HA4lrVyAmLLVK177EcQAqjVLciUb2/R+n1boQ9y5ENV3uz2ZqiNw7QMBBw1Og==", + "dev": true, + "requires": { + "@babel/types": "^7.7.4" + } + }, + "@babel/types": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", + "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/plugin-transform-computed-properties": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.2.0.tgz", - "integrity": "sha512-kP/drqTxY6Xt3NNpKiMomfgkNn4o7+vKxK2DDKcBG9sHj51vHqMBGy8wbDS/J4lMxnqs153/T3+DmCEAkC5cpA==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.7.4.tgz", + "integrity": "sha512-bSNsOsZnlpLLyQew35rl4Fma3yKWqK3ImWMSC/Nc+6nGjC9s5NFWAer1YQ899/6s9HxO2zQC1WoFNfkOqRkqRQ==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-transform-destructuring": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.6.0.tgz", - "integrity": "sha512-2bGIS5P1v4+sWTCnKNDZDxbGvEqi0ijeqM/YqHtVGrvG2y0ySgnEEhXErvE9dA0bnIzY9bIzdFK0jFA46ASIIQ==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.7.4.tgz", + "integrity": "sha512-4jFMXI1Cu2aXbcXXl8Lr6YubCn6Oc7k9lLsu8v61TZh+1jny2BWmdtvY9zSUlLdGUvcy9DMAWyZEOqjsbeg/wA==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-transform-dotall-regex": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.6.2.tgz", - "integrity": "sha512-KGKT9aqKV+9YMZSkowzYoYEiHqgaDhGmPNZlZxX6UeHC4z30nC1J9IrZuGqbYFB1jaIGdv91ujpze0exiVK8bA==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.7.4.tgz", + "integrity": "sha512-mk0cH1zyMa/XHeb6LOTXTbG7uIJ8Rrjlzu91pUx/KS3JpcgaTDwMS8kM+ar8SLOvlL2Lofi4CGBAjCo3a2x+lw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-regex": "^7.4.4", - "regexpu-core": "^4.6.0" + "@babel/helper-create-regexp-features-plugin": "^7.7.4", + "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-transform-duplicate-keys": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.5.0.tgz", - "integrity": "sha512-igcziksHizyQPlX9gfSjHkE2wmoCH3evvD2qR5w29/Dk0SMKE/eOI7f1HhBdNhR/zxJDqrgpoDTq5YSLH/XMsQ==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.7.4.tgz", + "integrity": "sha512-g1y4/G6xGWMD85Tlft5XedGaZBCIVN+/P0bs6eabmcPP9egFleMAo65OOjlhcz1njpwagyY3t0nsQC9oTFegJA==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-transform-exponentiation-operator": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.2.0.tgz", - "integrity": "sha512-umh4hR6N7mu4Elq9GG8TOu9M0bakvlsREEC+ialrQN6ABS4oDQ69qJv1VtR3uxlKMCQMCvzk7vr17RHKcjx68A==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.7.4.tgz", + "integrity": "sha512-MCqiLfCKm6KEA1dglf6Uqq1ElDIZwFuzz1WH5mTf8k2uQSxEJMbOIEh7IZv7uichr7PMfi5YVSrr1vz+ipp7AQ==", "dev": true, "requires": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.1.0", + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.7.4", "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-transform-for-of": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.4.4.tgz", - "integrity": "sha512-9T/5Dlr14Z9TIEXLXkt8T1DU7F24cbhwhMNUziN3hB1AXoZcdzPcTiKGRn/6iOymDqtTKWnr/BtRKN9JwbKtdQ==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.7.4.tgz", + "integrity": "sha512-zZ1fD1B8keYtEcKF+M1TROfeHTKnijcVQm0yO/Yu1f7qoDoxEIc/+GX6Go430Bg84eM/xwPFp0+h4EbZg7epAA==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-transform-function-name": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.4.4.tgz", - "integrity": "sha512-iU9pv7U+2jC9ANQkKeNF6DrPy4GBa4NWQtl6dHB4Pb3izX2JOEvDTFarlNsBj/63ZEzNNIAMs3Qw4fNCcSOXJA==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.7.4.tgz", + "integrity": "sha512-E/x09TvjHNhsULs2IusN+aJNRV5zKwxu1cpirZyRPw+FyyIKEHPXTsadj48bVpc1R5Qq1B5ZkzumuFLytnbT6g==", "dev": true, "requires": { - "@babel/helper-function-name": "^7.1.0", + "@babel/helper-function-name": "^7.7.4", "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-transform-literals": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.2.0.tgz", - "integrity": "sha512-2ThDhm4lI4oV7fVQ6pNNK+sx+c/GM5/SaML0w/r4ZB7sAneD/piDJtwdKlNckXeyGK7wlwg2E2w33C/Hh+VFCg==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.7.4.tgz", + "integrity": "sha512-X2MSV7LfJFm4aZfxd0yLVFrEXAgPqYoDG53Br/tCKiKYfX0MjVjQeWPIhPHHsCqzwQANq+FLN786fF5rgLS+gw==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-transform-member-expression-literals": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.2.0.tgz", - "integrity": "sha512-HiU3zKkSU6scTidmnFJ0bMX8hz5ixC93b4MHMiYebmk2lUVNGOboPsqQvx5LzooihijUoLR/v7Nc1rbBtnc7FA==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.7.4.tgz", + "integrity": "sha512-9VMwMO7i69LHTesL0RdGy93JU6a+qOPuvB4F4d0kR0zyVjJRVJRaoaGjhtki6SzQUu8yen/vxPKN6CWnCUw6bA==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-transform-modules-amd": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.5.0.tgz", - "integrity": "sha512-n20UsQMKnWrltocZZm24cRURxQnWIvsABPJlw/fvoy9c6AgHZzoelAIzajDHAQrDpuKFFPPcFGd7ChsYuIUMpg==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.7.4.tgz", + "integrity": "sha512-/542/5LNA18YDtg1F+QHvvUSlxdvjZoD/aldQwkq+E3WCkbEjNSN9zdrOXaSlfg3IfGi22ijzecklF/A7kVZFQ==", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.1.0", + "@babel/helper-module-transforms": "^7.7.4", "@babel/helper-plugin-utils": "^7.0.0", "babel-plugin-dynamic-import-node": "^2.3.0" } }, "@babel/plugin-transform-modules-commonjs": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.6.0.tgz", - "integrity": "sha512-Ma93Ix95PNSEngqomy5LSBMAQvYKVe3dy+JlVJSHEXZR5ASL9lQBedMiCyVtmTLraIDVRE3ZjTZvmXXD2Ozw3g==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.7.4.tgz", + "integrity": "sha512-k8iVS7Jhc367IcNF53KCwIXtKAH7czev866ThsTgy8CwlXjnKZna2VHwChglzLleYrcHz1eQEIJlGRQxB53nqA==", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.4.4", + "@babel/helper-module-transforms": "^7.7.4", "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-simple-access": "^7.1.0", + "@babel/helper-simple-access": "^7.7.4", "babel-plugin-dynamic-import-node": "^2.3.0" } }, "@babel/plugin-transform-modules-systemjs": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.5.0.tgz", - "integrity": "sha512-Q2m56tyoQWmuNGxEtUyeEkm6qJYFqs4c+XyXH5RAuYxObRNz9Zgj/1g2GMnjYp2EUyEy7YTrxliGCXzecl/vJg==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.7.4.tgz", + "integrity": "sha512-y2c96hmcsUi6LrMqvmNDPBBiGCiQu0aYqpHatVVu6kD4mFEXKjyNxd/drc18XXAf9dv7UXjrZwBVmTTGaGP8iw==", "dev": true, "requires": { - "@babel/helper-hoist-variables": "^7.4.4", + "@babel/helper-hoist-variables": "^7.7.4", "@babel/helper-plugin-utils": "^7.0.0", "babel-plugin-dynamic-import-node": "^2.3.0" } }, "@babel/plugin-transform-modules-umd": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.2.0.tgz", - "integrity": "sha512-BV3bw6MyUH1iIsGhXlOK6sXhmSarZjtJ/vMiD9dNmpY8QXFFQTj+6v92pcfy1iqa8DeAfJFwoxcrS/TUZda6sw==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.7.4.tgz", + "integrity": "sha512-u2B8TIi0qZI4j8q4C51ktfO7E3cQ0qnaXFI1/OXITordD40tt17g/sXqgNNCcMTcBFKrUPcGDx+TBJuZxLx7tw==", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.1.0", + "@babel/helper-module-transforms": "^7.7.4", "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.6.3.tgz", - "integrity": "sha512-jTkk7/uE6H2s5w6VlMHeWuH+Pcy2lmdwFoeWCVnvIrDUnB5gQqTVI8WfmEAhF2CDEarGrknZcmSFg1+bkfCoSw==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.7.4.tgz", + "integrity": "sha512-jBUkiqLKvUWpv9GLSuHUFYdmHg0ujC1JEYoZUfeOOfNydZXp1sXObgyPatpcwjWgsdBGsagWW0cdJpX/DO2jMw==", "dev": true, "requires": { - "regexpu-core": "^4.6.0" + "@babel/helper-create-regexp-features-plugin": "^7.7.4" } }, "@babel/plugin-transform-new-target": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.4.4.tgz", - "integrity": "sha512-r1z3T2DNGQwwe2vPGZMBNjioT2scgWzK9BCnDEh+46z8EEwXBq24uRzd65I7pjtugzPSj921aM15RpESgzsSuA==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.7.4.tgz", + "integrity": "sha512-CnPRiNtOG1vRodnsyGX37bHQleHE14B9dnnlgSeEs3ek3fHN1A1SScglTCg1sfbe7sRQ2BUcpgpTpWSfMKz3gg==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-transform-object-super": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.5.5.tgz", - "integrity": "sha512-un1zJQAhSosGFBduPgN/YFNvWVpRuHKU7IHBglLoLZsGmruJPOo6pbInneflUdmq7YvSVqhpPs5zdBvLnteltQ==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.7.4.tgz", + "integrity": "sha512-ho+dAEhC2aRnff2JCA0SAK7V2R62zJd/7dmtoe7MHcso4C2mS+vZjn1Pb1pCVZvJs1mgsvv5+7sT+m3Bysb6eg==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-replace-supers": "^7.5.5" + "@babel/helper-replace-supers": "^7.7.4" } }, "@babel/plugin-transform-parameters": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.4.4.tgz", - "integrity": "sha512-oMh5DUO1V63nZcu/ZVLQFqiihBGo4OpxJxR1otF50GMeCLiRx5nUdtokd+u9SuVJrvvuIh9OosRFPP4pIPnwmw==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.7.4.tgz", + "integrity": "sha512-VJwhVePWPa0DqE9vcfptaJSzNDKrWU/4FbYCjZERtmqEs05g3UMXnYMZoXja7JAJ7Y7sPZipwm/pGApZt7wHlw==", "dev": true, "requires": { - "@babel/helper-call-delegate": "^7.4.4", - "@babel/helper-get-function-arity": "^7.0.0", + "@babel/helper-call-delegate": "^7.7.4", + "@babel/helper-get-function-arity": "^7.7.4", "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-transform-property-literals": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.2.0.tgz", - "integrity": "sha512-9q7Dbk4RhgcLp8ebduOpCbtjh7C0itoLYHXd9ueASKAG/is5PQtMR5VJGka9NKqGhYEGn5ITahd4h9QeBMylWQ==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.7.4.tgz", + "integrity": "sha512-MatJhlC4iHsIskWYyawl53KuHrt+kALSADLQQ/HkhTjX954fkxIEh4q5slL4oRAnsm/eDoZ4q0CIZpcqBuxhJQ==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-transform-react-display-name": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.2.0.tgz", - "integrity": "sha512-Htf/tPa5haZvRMiNSQSFifK12gtr/8vwfr+A9y69uF0QcU77AVu4K7MiHEkTxF7lQoHOL0F9ErqgfNEAKgXj7A==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.7.4.tgz", + "integrity": "sha512-sBbIvqYkthai0X0vkD2xsAwluBp+LtNHH+/V4a5ydifmTtb8KOVOlrMIk/MYmIc4uTYDnjZUHQildYNo36SRJw==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-transform-react-jsx": { - "version": "7.3.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.3.0.tgz", - "integrity": "sha512-a/+aRb7R06WcKvQLOu4/TpjKOdvVEKRLWFpKcNuHhiREPgGRB4TQJxq07+EZLS8LFVYpfq1a5lDUnuMdcCpBKg==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.7.4.tgz", + "integrity": "sha512-LixU4BS95ZTEAZdPaIuyg/k8FiiqN9laQ0dMHB4MlpydHY53uQdWCUrwjLr5o6ilS6fAgZey4Q14XBjl5tL6xw==", "dev": true, "requires": { - "@babel/helper-builder-react-jsx": "^7.3.0", + "@babel/helper-builder-react-jsx": "^7.7.4", "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-syntax-jsx": "^7.2.0" + "@babel/plugin-syntax-jsx": "^7.7.4" } }, "@babel/plugin-transform-react-jsx-self": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.2.0.tgz", - "integrity": "sha512-v6S5L/myicZEy+jr6ielB0OR8h+EH/1QFx/YJ7c7Ua+7lqsjj/vW6fD5FR9hB/6y7mGbfT4vAURn3xqBxsUcdg==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.7.4.tgz", + "integrity": "sha512-PWYjSfqrO273mc1pKCRTIJXyqfc9vWYBax88yIhQb+bpw3XChVC7VWS4VwRVs63wFHKxizvGSd00XEr+YB9Q2A==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-syntax-jsx": "^7.2.0" + "@babel/plugin-syntax-jsx": "^7.7.4" } }, "@babel/plugin-transform-react-jsx-source": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.2.0.tgz", - "integrity": "sha512-A32OkKTp4i5U6aE88GwwcuV4HAprUgHcTq0sSafLxjr6AW0QahrCRCjxogkbbcdtpbXkuTOlgpjophCxb6sh5g==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.7.4.tgz", + "integrity": "sha512-5ZU9FnPhqtHsOXxutRtXZAzoEJwDaP32QcobbMP1/qt7NYcsCNK8XgzJcJfoEr/ZnzVvUNInNjIW22Z6I8p9mg==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-syntax-jsx": "^7.2.0" + "@babel/plugin-syntax-jsx": "^7.7.4" } }, "@babel/plugin-transform-regenerator": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.4.5.tgz", - "integrity": "sha512-gBKRh5qAaCWntnd09S8QC7r3auLCqq5DI6O0DlfoyDjslSBVqBibrMdsqO+Uhmx3+BlOmE/Kw1HFxmGbv0N9dA==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.7.4.tgz", + "integrity": "sha512-e7MWl5UJvmPEwFJTwkBlPmqixCtr9yAASBqff4ggXTNicZiwbF8Eefzm6NVgfiBp7JdAGItecnctKTgH44q2Jw==", "dev": true, "requires": { "regenerator-transform": "^0.14.0" } }, "@babel/plugin-transform-reserved-words": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.2.0.tgz", - "integrity": "sha512-fz43fqW8E1tAB3DKF19/vxbpib1fuyCwSPE418ge5ZxILnBhWyhtPgz8eh1RCGGJlwvksHkyxMxh0eenFi+kFw==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.7.4.tgz", + "integrity": "sha512-OrPiUB5s5XvkCO1lS7D8ZtHcswIC57j62acAnJZKqGGnHP+TIc/ljQSrgdX/QyOTdEK5COAhuc820Hi1q2UgLQ==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-transform-shorthand-properties": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.2.0.tgz", - "integrity": "sha512-QP4eUM83ha9zmYtpbnyjTLAGKQritA5XW/iG9cjtuOI8s1RuL/3V6a3DeSHfKutJQ+ayUfeZJPcnCYEQzaPQqg==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.7.4.tgz", + "integrity": "sha512-q+suddWRfIcnyG5YiDP58sT65AJDZSUhXQDZE3r04AuqD6d/XLaQPPXSBzP2zGerkgBivqtQm9XKGLuHqBID6Q==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-transform-spread": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.6.2.tgz", - "integrity": "sha512-DpSvPFryKdK1x+EDJYCy28nmAaIMdxmhot62jAXF/o99iA33Zj2Lmcp3vDmz+MUh0LNYVPvfj5iC3feb3/+PFg==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.7.4.tgz", + "integrity": "sha512-8OSs0FLe5/80cndziPlg4R0K6HcWSM0zyNhHhLsmw/Nc5MaA49cAsnoJ/t/YZf8qkG7fD+UjTRaApVDB526d7Q==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-transform-sticky-regex": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.2.0.tgz", - "integrity": "sha512-KKYCoGaRAf+ckH8gEL3JHUaFVyNHKe3ASNsZ+AlktgHevvxGigoIttrEJb8iKN03Q7Eazlv1s6cx2B2cQ3Jabw==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.7.4.tgz", + "integrity": "sha512-Ls2NASyL6qtVe1H1hXts9yuEeONV2TJZmplLONkMPUG158CtmnrzW5Q5teibM5UVOFjG0D3IC5mzXR6pPpUY7A==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0", @@ -969,86 +1107,108 @@ } }, "@babel/plugin-transform-template-literals": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.4.4.tgz", - "integrity": "sha512-mQrEC4TWkhLN0z8ygIvEL9ZEToPhG5K7KDW3pzGqOfIGZ28Jb0POUkeWcoz8HnHvhFy6dwAT1j8OzqN8s804+g==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.7.4.tgz", + "integrity": "sha512-sA+KxLwF3QwGj5abMHkHgshp9+rRz+oY9uoRil4CyLtgEuE/88dpkeWgNk5qKVsJE9iSfly3nvHapdRiIS2wnQ==", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.0.0", + "@babel/helper-annotate-as-pure": "^7.7.4", "@babel/helper-plugin-utils": "^7.0.0" + }, + "dependencies": { + "@babel/helper-annotate-as-pure": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.7.4.tgz", + "integrity": "sha512-2BQmQgECKzYKFPpiycoF9tlb5HA4lrVyAmLLVK177EcQAqjVLciUb2/R+n1boQ9y5ENV3uz2ZqiNw7QMBBw1Og==", + "dev": true, + "requires": { + "@babel/types": "^7.7.4" + } + }, + "@babel/types": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", + "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/plugin-transform-typeof-symbol": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.2.0.tgz", - "integrity": "sha512-2LNhETWYxiYysBtrBTqL8+La0jIoQQnIScUJc74OYvUGRmkskNY4EzLCnjHBzdmb38wqtTaixpo1NctEcvMDZw==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.7.4.tgz", + "integrity": "sha512-KQPUQ/7mqe2m0B8VecdyaW5XcQYaePyl9R7IsKd+irzj6jvbhoGnRE+M0aNkyAzI07VfUQ9266L5xMARitV3wg==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-transform-unicode-regex": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.6.2.tgz", - "integrity": "sha512-orZI6cWlR3nk2YmYdb0gImrgCUwb5cBUwjf6Ks6dvNVvXERkwtJWOQaEOjPiu0Gu1Tq6Yq/hruCZZOOi9F34Dw==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.7.4.tgz", + "integrity": "sha512-N77UUIV+WCvE+5yHw+oks3m18/umd7y392Zv7mYTpFqHtkpcc+QUz+gLJNTWVlWROIWeLqY0f3OjZxV5TcXnRw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-regex": "^7.4.4", - "regexpu-core": "^4.6.0" + "@babel/helper-create-regexp-features-plugin": "^7.7.4", + "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/preset-env": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.6.3.tgz", - "integrity": "sha512-CWQkn7EVnwzlOdR5NOm2+pfgSNEZmvGjOhlCHBDq0J8/EStr+G+FvPEiz9B56dR6MoiUFjXhfE4hjLoAKKJtIQ==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.7.4.tgz", + "integrity": "sha512-Dg+ciGJjwvC1NIe/DGblMbcGq1HOtKbw8RLl4nIjlfcILKEOkWT/vRqPpumswABEBVudii6dnVwrBtzD7ibm4g==", "dev": true, "requires": { - "@babel/helper-module-imports": "^7.0.0", + "@babel/helper-module-imports": "^7.7.4", "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-proposal-async-generator-functions": "^7.2.0", - "@babel/plugin-proposal-dynamic-import": "^7.5.0", - "@babel/plugin-proposal-json-strings": "^7.2.0", - "@babel/plugin-proposal-object-rest-spread": "^7.6.2", - "@babel/plugin-proposal-optional-catch-binding": "^7.2.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.6.2", - "@babel/plugin-syntax-async-generators": "^7.2.0", - "@babel/plugin-syntax-dynamic-import": "^7.2.0", - "@babel/plugin-syntax-json-strings": "^7.2.0", - "@babel/plugin-syntax-object-rest-spread": "^7.2.0", - "@babel/plugin-syntax-optional-catch-binding": "^7.2.0", - "@babel/plugin-transform-arrow-functions": "^7.2.0", - "@babel/plugin-transform-async-to-generator": "^7.5.0", - "@babel/plugin-transform-block-scoped-functions": "^7.2.0", - "@babel/plugin-transform-block-scoping": "^7.6.3", - "@babel/plugin-transform-classes": "^7.5.5", - "@babel/plugin-transform-computed-properties": "^7.2.0", - "@babel/plugin-transform-destructuring": "^7.6.0", - "@babel/plugin-transform-dotall-regex": "^7.6.2", - "@babel/plugin-transform-duplicate-keys": "^7.5.0", - "@babel/plugin-transform-exponentiation-operator": "^7.2.0", - "@babel/plugin-transform-for-of": "^7.4.4", - "@babel/plugin-transform-function-name": "^7.4.4", - "@babel/plugin-transform-literals": "^7.2.0", - "@babel/plugin-transform-member-expression-literals": "^7.2.0", - "@babel/plugin-transform-modules-amd": "^7.5.0", - "@babel/plugin-transform-modules-commonjs": "^7.6.0", - "@babel/plugin-transform-modules-systemjs": "^7.5.0", - "@babel/plugin-transform-modules-umd": "^7.2.0", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.6.3", - "@babel/plugin-transform-new-target": "^7.4.4", - "@babel/plugin-transform-object-super": "^7.5.5", - "@babel/plugin-transform-parameters": "^7.4.4", - "@babel/plugin-transform-property-literals": "^7.2.0", - "@babel/plugin-transform-regenerator": "^7.4.5", - "@babel/plugin-transform-reserved-words": "^7.2.0", - "@babel/plugin-transform-shorthand-properties": "^7.2.0", - "@babel/plugin-transform-spread": "^7.6.2", - "@babel/plugin-transform-sticky-regex": "^7.2.0", - "@babel/plugin-transform-template-literals": "^7.4.4", - "@babel/plugin-transform-typeof-symbol": "^7.2.0", - "@babel/plugin-transform-unicode-regex": "^7.6.2", - "@babel/types": "^7.6.3", + "@babel/plugin-proposal-async-generator-functions": "^7.7.4", + "@babel/plugin-proposal-dynamic-import": "^7.7.4", + "@babel/plugin-proposal-json-strings": "^7.7.4", + "@babel/plugin-proposal-object-rest-spread": "^7.7.4", + "@babel/plugin-proposal-optional-catch-binding": "^7.7.4", + "@babel/plugin-proposal-unicode-property-regex": "^7.7.4", + "@babel/plugin-syntax-async-generators": "^7.7.4", + "@babel/plugin-syntax-dynamic-import": "^7.7.4", + "@babel/plugin-syntax-json-strings": "^7.7.4", + "@babel/plugin-syntax-object-rest-spread": "^7.7.4", + "@babel/plugin-syntax-optional-catch-binding": "^7.7.4", + "@babel/plugin-syntax-top-level-await": "^7.7.4", + "@babel/plugin-transform-arrow-functions": "^7.7.4", + "@babel/plugin-transform-async-to-generator": "^7.7.4", + "@babel/plugin-transform-block-scoped-functions": "^7.7.4", + "@babel/plugin-transform-block-scoping": "^7.7.4", + "@babel/plugin-transform-classes": "^7.7.4", + "@babel/plugin-transform-computed-properties": "^7.7.4", + "@babel/plugin-transform-destructuring": "^7.7.4", + "@babel/plugin-transform-dotall-regex": "^7.7.4", + "@babel/plugin-transform-duplicate-keys": "^7.7.4", + "@babel/plugin-transform-exponentiation-operator": "^7.7.4", + "@babel/plugin-transform-for-of": "^7.7.4", + "@babel/plugin-transform-function-name": "^7.7.4", + "@babel/plugin-transform-literals": "^7.7.4", + "@babel/plugin-transform-member-expression-literals": "^7.7.4", + "@babel/plugin-transform-modules-amd": "^7.7.4", + "@babel/plugin-transform-modules-commonjs": "^7.7.4", + "@babel/plugin-transform-modules-systemjs": "^7.7.4", + "@babel/plugin-transform-modules-umd": "^7.7.4", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.7.4", + "@babel/plugin-transform-new-target": "^7.7.4", + "@babel/plugin-transform-object-super": "^7.7.4", + "@babel/plugin-transform-parameters": "^7.7.4", + "@babel/plugin-transform-property-literals": "^7.7.4", + "@babel/plugin-transform-regenerator": "^7.7.4", + "@babel/plugin-transform-reserved-words": "^7.7.4", + "@babel/plugin-transform-shorthand-properties": "^7.7.4", + "@babel/plugin-transform-spread": "^7.7.4", + "@babel/plugin-transform-sticky-regex": "^7.7.4", + "@babel/plugin-transform-template-literals": "^7.7.4", + "@babel/plugin-transform-typeof-symbol": "^7.7.4", + "@babel/plugin-transform-unicode-regex": "^7.7.4", + "@babel/types": "^7.7.4", "browserslist": "^4.6.0", "core-js-compat": "^3.1.1", "invariant": "^2.2.2", @@ -1056,10 +1216,19 @@ "semver": "^5.5.0" }, "dependencies": { + "@babel/helper-module-imports": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.7.4.tgz", + "integrity": "sha512-dGcrX6K9l8258WFjyDLJwuVKxR4XZfU0/vTUgOQYWEnRD8mgr+p4d6fCUMq/ys0h4CCt/S5JhbvtyErjWouAUQ==", + "dev": true, + "requires": { + "@babel/types": "^7.7.4" + } + }, "@babel/types": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.6.3.tgz", - "integrity": "sha512-CqbcpTxMcpuQTMhjI37ZHVgjBkysg5icREQIEZ0eG1yCNwg3oy+5AaLiOKmjsCj6nqOsa6Hf0ObjRVwokb7srA==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", + "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -1070,16 +1239,16 @@ } }, "@babel/preset-react": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.0.0.tgz", - "integrity": "sha512-oayxyPS4Zj+hF6Et11BwuBkmpgT/zMxyuZgFrMeZID6Hdh3dGlk4sHCAhdBCpuCKW2ppBfl2uCCetlrUIJRY3w==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.7.4.tgz", + "integrity": "sha512-j+vZtg0/8pQr1H8wKoaJyGL2IEk3rG/GIvua7Sec7meXVIvGycihlGMx5xcU00kqCJbwzHs18xTu3YfREOqQ+g==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-transform-react-display-name": "^7.0.0", - "@babel/plugin-transform-react-jsx": "^7.0.0", - "@babel/plugin-transform-react-jsx-self": "^7.0.0", - "@babel/plugin-transform-react-jsx-source": "^7.0.0" + "@babel/plugin-transform-react-display-name": "^7.7.4", + "@babel/plugin-transform-react-jsx": "^7.7.4", + "@babel/plugin-transform-react-jsx-self": "^7.7.4", + "@babel/plugin-transform-react-jsx-source": "^7.7.4" } }, "@babel/runtime": { @@ -1098,20 +1267,20 @@ } }, "@babel/template": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.6.0.tgz", - "integrity": "sha512-5AEH2EXD8euCk446b7edmgFdub/qfH1SN6Nii3+fyXP807QRx9Q73A2N5hNwRRslC2H9sNzaFhsPubkS4L8oNQ==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.7.4.tgz", + "integrity": "sha512-qUzihgVPguAzXCK7WXw8pqs6cEwi54s3E+HrejlkuWO6ivMKx9hZl3Y2fSXp9i5HgyWmj7RKP+ulaYnKM4yYxw==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", - "@babel/parser": "^7.6.0", - "@babel/types": "^7.6.0" + "@babel/parser": "^7.7.4", + "@babel/types": "^7.7.4" }, "dependencies": { "@babel/types": { - "version": "7.6.1", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.6.1.tgz", - "integrity": "sha512-X7gdiuaCmA0uRjCmRtYJNAVCc/q+5xSgsfKJHqMN4iNLILX39677fJE1O40arPMh0TTtS9ItH67yre6c7k6t0g==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", + "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -1122,26 +1291,26 @@ } }, "@babel/traverse": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.6.2.tgz", - "integrity": "sha512-8fRE76xNwNttVEF2TwxJDGBLWthUkHWSldmfuBzVRmEDWOtu4XdINTgN7TDWzuLg4bbeIMLvfMFD9we5YcWkRQ==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.7.4.tgz", + "integrity": "sha512-P1L58hQyupn8+ezVA2z5KBm4/Zr4lCC8dwKCMYzsa5jFMDMQAzaBNy9W5VjB+KAmBjb40U7a/H6ao+Xo+9saIw==", "dev": true, "requires": { "@babel/code-frame": "^7.5.5", - "@babel/generator": "^7.6.2", - "@babel/helper-function-name": "^7.1.0", - "@babel/helper-split-export-declaration": "^7.4.4", - "@babel/parser": "^7.6.2", - "@babel/types": "^7.6.0", + "@babel/generator": "^7.7.4", + "@babel/helper-function-name": "^7.7.4", + "@babel/helper-split-export-declaration": "^7.7.4", + "@babel/parser": "^7.7.4", + "@babel/types": "^7.7.4", "debug": "^4.1.0", "globals": "^11.1.0", "lodash": "^4.17.13" }, "dependencies": { "@babel/types": { - "version": "7.6.1", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.6.1.tgz", - "integrity": "sha512-X7gdiuaCmA0uRjCmRtYJNAVCc/q+5xSgsfKJHqMN4iNLILX39677fJE1O40arPMh0TTtS9ItH67yre6c7k6t0g==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", + "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -2049,14 +2218,14 @@ } }, "browserslist": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.7.0.tgz", - "integrity": "sha512-9rGNDtnj+HaahxiVV38Gn8n8Lr8REKsel68v1sPFfIGEK6uSXTY3h9acgiT1dZVtOOUtifo/Dn8daDQ5dUgVsA==", + "version": "4.7.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.7.3.tgz", + "integrity": "sha512-jWvmhqYpx+9EZm/FxcZSbUZyDEvDTLDi3nSAKbzEkyWvtI0mNSmUosey+5awDW1RUlrgXbQb5A6qY1xQH9U6MQ==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30000989", - "electron-to-chromium": "^1.3.247", - "node-releases": "^1.1.29" + "caniuse-lite": "^1.0.30001010", + "electron-to-chromium": "^1.3.306", + "node-releases": "^1.1.40" } }, "buffer": { @@ -2147,9 +2316,9 @@ "integrity": "sha1-FkpUg+Yw+kMh5a8HAg5TGDGyYJs=" }, "caniuse-lite": { - "version": "1.0.30000999", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000999.tgz", - "integrity": "sha512-1CUyKyecPeksKwXZvYw0tEoaMCo/RwBlXmEtN5vVnabvO0KPd9RQLcaAuR9/1F+KDMv6esmOFWlsXuzDk+8rxg==", + "version": "1.0.30001011", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001011.tgz", + "integrity": "sha512-h+Eqyn/YA6o6ZTqpS86PyRmNWOs1r54EBDcd2NTwwfsXQ8re1B38SnB+p2RKF8OUsyEIjeDU8XGec1RGO/wYCg==", "dev": true }, "chalk": { @@ -2363,12 +2532,12 @@ "dev": true }, "core-js-compat": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.2.1.tgz", - "integrity": "sha512-MwPZle5CF9dEaMYdDeWm73ao/IflDH+FjeJCWEADcEgFSE9TLimFKwJsfmkwzI8eC0Aj0mgvMDjeQjrElkz4/A==", + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.4.2.tgz", + "integrity": "sha512-W0Aj+LM3EAxxjD0Kp2o4be8UlnxIZHNupBv2znqrheR4aY2nOn91794k/xoSp+SxqqriiZpTsSwBtZr60cbkwQ==", "dev": true, "requires": { - "browserslist": "^4.6.6", + "browserslist": "^4.7.3", "semver": "^6.3.0" }, "dependencies": { @@ -2702,9 +2871,9 @@ } }, "electron-to-chromium": { - "version": "1.3.277", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.277.tgz", - "integrity": "sha512-Czmsrgng89DOgJlIknnw9bn5431QdtnUwGp5YYiPwU1DbZQUxCLF+rc1ZC09VNAdalOPcvH6AE8BaA0H5HjI/w==", + "version": "1.3.314", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.314.tgz", + "integrity": "sha512-IKDR/xCxKFhPts7h+VaSXS02Z1mznP3fli1BbXWXeN89i2gCzKraU8qLpEid8YzKcmZdZD3Mly3cn5/lY9xsBQ==", "dev": true }, "elliptic": { @@ -3860,9 +4029,9 @@ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" }, "has-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz", - "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", "dev": true }, "has-value": { @@ -4861,9 +5030,9 @@ } }, "node-releases": { - "version": "1.1.35", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.35.tgz", - "integrity": "sha512-JGcM/wndCN/2elJlU0IGdVEJQQnJwsLbgPCFd2pY7V0mxf17bZ0Gb/lgOtL29ZQhvEX5shnVhxQyZz3ex94N8w==", + "version": "1.1.41", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.41.tgz", + "integrity": "sha512-+IctMa7wIs8Cfsa8iYzeaLTFwv5Y4r5jZud+4AnfymzeEXKBCavFX0KBgzVaPVqf0ywa6PrO8/b+bPqdwjGBSg==", "dev": true, "requires": { "semver": "^6.3.0" @@ -5773,9 +5942,9 @@ } }, "regjsgen": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.0.tgz", - "integrity": "sha512-RnIrLhrXCX5ow/E5/Mh2O4e/oa1/jW0eaBKTSy3LaCj+M3Bqvm97GWDp2yUtzIs4LEn65zR2yiYGFqb2ApnzDA==", + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.1.tgz", + "integrity": "sha512-5qxzGZjDs9w4tzT3TPhCJqWdCc3RLYwy9J2NB0nm5Lz+S273lvWcpjaTGHsT1dc6Hhfq41uSEOw8wBmxrKOuyg==", "dev": true }, "regjsparser": { diff --git a/src/React.Sample.Webpack.CoreMvc/package.json b/src/React.Sample.Webpack.CoreMvc/package.json index 51f055ab6..d84285361 100644 --- a/src/React.Sample.Webpack.CoreMvc/package.json +++ b/src/React.Sample.Webpack.CoreMvc/package.json @@ -20,12 +20,12 @@ "styled-components": "^4.0.0" }, "devDependencies": { - "@babel/core": "7.6.4", - "@babel/plugin-proposal-class-properties": "7.5.5", - "@babel/plugin-proposal-object-rest-spread": "7.6.2", - "@babel/plugin-syntax-dynamic-import": "7.2.0", - "@babel/preset-env": "7.6.3", - "@babel/preset-react": "7.0.0", + "@babel/core": "7.7.4", + "@babel/plugin-proposal-class-properties": "7.7.4", + "@babel/plugin-proposal-object-rest-spread": "7.7.4", + "@babel/plugin-syntax-dynamic-import": "7.7.4", + "@babel/preset-env": "7.7.4", + "@babel/preset-react": "7.7.4", "babel-loader": "8.0.6", "babel-runtime": "6.26.0", "webpack": "4.41.2", From 380ff0d3c19725e838e0fa95c8724593c241e96f Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 24 Nov 2019 23:33:22 -0500 Subject: [PATCH 338/530] Update dependency Octokit to v0.36.0 (#935) --- webhooks/React.Site.Hooks.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/webhooks/React.Site.Hooks.csproj b/webhooks/React.Site.Hooks.csproj index 42fcb2269..a27f2b3d8 100644 --- a/webhooks/React.Site.Hooks.csproj +++ b/webhooks/React.Site.Hooks.csproj @@ -4,7 +4,7 @@ - + From b0c231d285764c8792709da31f7ae867967d5f35 Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Sun, 24 Nov 2019 23:39:56 -0500 Subject: [PATCH 339/530] 5.1.2 --- build.proj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.proj b/build.proj index 956e023c7..400d3ae8d 100644 --- a/build.proj +++ b/build.proj @@ -11,7 +11,7 @@ of patent rights can be found in the PATENTS file in the same directory. 5 1 - 1 + 2 0 http://reactjs.net/packages/ $(MSBuildProjectDirectory)\tools\MSBuildTasks From 21f616079446f69e3d5840b003ce249b0072429e Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Sun, 24 Nov 2019 23:51:21 -0500 Subject: [PATCH 340/530] Add blog post for 5.1.2 --- site/jekyll/_posts/2019-11-24-5.1.2-release.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 site/jekyll/_posts/2019-11-24-5.1.2-release.md diff --git a/site/jekyll/_posts/2019-11-24-5.1.2-release.md b/site/jekyll/_posts/2019-11-24-5.1.2-release.md new file mode 100644 index 000000000..7a61f34b2 --- /dev/null +++ b/site/jekyll/_posts/2019-11-24-5.1.2-release.md @@ -0,0 +1,17 @@ +--- +title: 'ReactJS.NET 5.1.2' +layout: post +author: Dustin Masters +--- + +🚀 We're pleased to announce the release of ReactJS.NET 5.1.2. A few small updates in this release: + +- .NET Core 3.0 support. The [tutorial project](https://github.com/reactjs/React.NET/tree/master/tutorial-code) has also been updated to demonstrate the (simple!) migration path. +- React and ReactDOM updated to 16.12.0 +- Fix missing query parameter mapping for React.Router - thanks [@mattywong](https://github.com/mattywong) + +Please report any bugs in the [issue tracker](https://github.com/reactjs/React.NET/issues). + +Cheers! + +- [@dustinsoftware](https://twitter.com/dustinsoftware) and [@Daniel15](https://twitter.com/daniel15) From 5017c04ddd48317c56b05511b2e07874dee7c18c Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Mon, 25 Nov 2019 06:33:39 +0000 Subject: [PATCH 341/530] Update dependency React.AspNet to v5.1.2 --- tutorial-code/tutorial-code.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tutorial-code/tutorial-code.csproj b/tutorial-code/tutorial-code.csproj index ad03c749d..cba3bf7bc 100644 --- a/tutorial-code/tutorial-code.csproj +++ b/tutorial-code/tutorial-code.csproj @@ -20,7 +20,7 @@ - + From 865c8dc7f264ea4434fc330c6f94fe86850370dd Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Wed, 27 Nov 2019 04:30:01 +0000 Subject: [PATCH 342/530] Update dependency Microsoft.Sourcelink.Github to v1.0.0 --- src/Cassette.React/Cassette.React.csproj | 2 +- src/React.AspNet.Middleware/React.AspNet.Middleware.csproj | 2 +- src/React.AspNet/React.AspNet.csproj | 2 +- src/React.Core/React.Core.csproj | 2 +- src/React.MSBuild/React.MSBuild.csproj | 2 +- src/React.Owin/React.Owin.csproj | 2 +- src/React.Router.Mvc4/React.Router.Mvc4.csproj | 2 +- src/React.Router/React.Router.csproj | 2 +- src/React.Web.Mvc4/React.Web.Mvc4.csproj | 2 +- src/React.Web/React.Web.csproj | 2 +- .../System.Web.Optimization.React.csproj | 2 +- 11 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/Cassette.React/Cassette.React.csproj b/src/Cassette.React/Cassette.React.csproj index 3bad8029d..f278c05c7 100644 --- a/src/Cassette.React/Cassette.React.csproj +++ b/src/Cassette.React/Cassette.React.csproj @@ -33,7 +33,7 @@ - + diff --git a/src/React.AspNet.Middleware/React.AspNet.Middleware.csproj b/src/React.AspNet.Middleware/React.AspNet.Middleware.csproj index 4c96722c2..2d579cd39 100644 --- a/src/React.AspNet.Middleware/React.AspNet.Middleware.csproj +++ b/src/React.AspNet.Middleware/React.AspNet.Middleware.csproj @@ -37,7 +37,7 @@ - + diff --git a/src/React.AspNet/React.AspNet.csproj b/src/React.AspNet/React.AspNet.csproj index 71fa5a613..2a1758dc3 100644 --- a/src/React.AspNet/React.AspNet.csproj +++ b/src/React.AspNet/React.AspNet.csproj @@ -34,7 +34,7 @@ - + diff --git a/src/React.Core/React.Core.csproj b/src/React.Core/React.Core.csproj index 2bcf33859..c9d0f2d95 100644 --- a/src/React.Core/React.Core.csproj +++ b/src/React.Core/React.Core.csproj @@ -48,7 +48,7 @@ - + diff --git a/src/React.MSBuild/React.MSBuild.csproj b/src/React.MSBuild/React.MSBuild.csproj index 4433ffd76..bc440065e 100644 --- a/src/React.MSBuild/React.MSBuild.csproj +++ b/src/React.MSBuild/React.MSBuild.csproj @@ -40,7 +40,7 @@ - + diff --git a/src/React.Owin/React.Owin.csproj b/src/React.Owin/React.Owin.csproj index f99653073..fff94081b 100644 --- a/src/React.Owin/React.Owin.csproj +++ b/src/React.Owin/React.Owin.csproj @@ -39,7 +39,7 @@ - + diff --git a/src/React.Router.Mvc4/React.Router.Mvc4.csproj b/src/React.Router.Mvc4/React.Router.Mvc4.csproj index 0bf96dacd..88da61a2b 100644 --- a/src/React.Router.Mvc4/React.Router.Mvc4.csproj +++ b/src/React.Router.Mvc4/React.Router.Mvc4.csproj @@ -44,7 +44,7 @@ - + diff --git a/src/React.Router/React.Router.csproj b/src/React.Router/React.Router.csproj index 6b94fbdcc..672de81b9 100644 --- a/src/React.Router/React.Router.csproj +++ b/src/React.Router/React.Router.csproj @@ -31,7 +31,7 @@ - + diff --git a/src/React.Web.Mvc4/React.Web.Mvc4.csproj b/src/React.Web.Mvc4/React.Web.Mvc4.csproj index b0e266543..a60ca7f5e 100644 --- a/src/React.Web.Mvc4/React.Web.Mvc4.csproj +++ b/src/React.Web.Mvc4/React.Web.Mvc4.csproj @@ -42,7 +42,7 @@ - + diff --git a/src/React.Web/React.Web.csproj b/src/React.Web/React.Web.csproj index 1275afe19..3b041eaff 100644 --- a/src/React.Web/React.Web.csproj +++ b/src/React.Web/React.Web.csproj @@ -39,7 +39,7 @@ - + diff --git a/src/System.Web.Optimization.React/System.Web.Optimization.React.csproj b/src/System.Web.Optimization.React/System.Web.Optimization.React.csproj index 14945dda3..160f87957 100644 --- a/src/System.Web.Optimization.React/System.Web.Optimization.React.csproj +++ b/src/System.Web.Optimization.React/System.Web.Optimization.React.csproj @@ -38,7 +38,7 @@ - + From bb2f21a6da6c19184c1ad323c7660428f6f9a354 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Mon, 2 Dec 2019 18:59:11 +0000 Subject: [PATCH 343/530] Update dependency @types/react to v16.9.14 --- src/React.Sample.Mvc4/package-lock.json | 6 +++--- src/React.Sample.Mvc4/package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/React.Sample.Mvc4/package-lock.json b/src/React.Sample.Mvc4/package-lock.json index 50c10d968..c531dd32b 100644 --- a/src/React.Sample.Mvc4/package-lock.json +++ b/src/React.Sample.Mvc4/package-lock.json @@ -11,9 +11,9 @@ "dev": true }, "@types/react": { - "version": "16.9.13", - "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.13.tgz", - "integrity": "sha512-LikzRslbiufJYHyzbHSW0GrAiff8QYLMBFeZmSxzCYGXKxi8m/1PHX+rsVOwhr7mJNq+VIu2Dhf7U6mjFERK6w==", + "version": "16.9.14", + "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.14.tgz", + "integrity": "sha512-Q4tW4RGmR+u/CgzR8VqZcsUWjP4Pz/LcHfs9AzSG+aBnwq8As3Bid3vG1eGGsXg/xuR2k2tqNlI8pzyV8kxe0g==", "dev": true, "requires": { "@types/prop-types": "*", diff --git a/src/React.Sample.Mvc4/package.json b/src/React.Sample.Mvc4/package.json index bd764c78f..8c1dcdcf0 100644 --- a/src/React.Sample.Mvc4/package.json +++ b/src/React.Sample.Mvc4/package.json @@ -7,7 +7,7 @@ "lint:ts": "tsc" }, "devDependencies": { - "@types/react": "16.9.13", + "@types/react": "16.9.14", "@types/react-dom": "16.9.4", "@types/reactstrap": "8.0.6", "typescript": "3.7.2" From 45882e0ea36844d8f0b6de402f8ce39bdb2eaaaf Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Wed, 4 Dec 2019 08:13:06 +0000 Subject: [PATCH 344/530] Update dependency typescript to v3.7.3 --- src/React.Sample.Mvc4/package-lock.json | 6 +++--- src/React.Sample.Mvc4/package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/React.Sample.Mvc4/package-lock.json b/src/React.Sample.Mvc4/package-lock.json index c531dd32b..1fa162e44 100644 --- a/src/React.Sample.Mvc4/package-lock.json +++ b/src/React.Sample.Mvc4/package-lock.json @@ -52,9 +52,9 @@ "dev": true }, "typescript": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.7.2.tgz", - "integrity": "sha512-ml7V7JfiN2Xwvcer+XAf2csGO1bPBdRbFCkYBczNZggrBZ9c7G3riSUeJmqEU5uOtXNPMhE3n+R4FA/3YOAWOQ==", + "version": "3.7.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.7.3.tgz", + "integrity": "sha512-Mcr/Qk7hXqFBXMN7p7Lusj1ktCBydylfQM/FZCk5glCNQJrCUKPkMHdo9R0MTFWsC/4kPFvDS0fDPvukfCkFsw==", "dev": true } } diff --git a/src/React.Sample.Mvc4/package.json b/src/React.Sample.Mvc4/package.json index 8c1dcdcf0..e3ab6dea1 100644 --- a/src/React.Sample.Mvc4/package.json +++ b/src/React.Sample.Mvc4/package.json @@ -10,6 +10,6 @@ "@types/react": "16.9.14", "@types/react-dom": "16.9.4", "@types/reactstrap": "8.0.6", - "typescript": "3.7.2" + "typescript": "3.7.3" } } From b8f83cbfc9355b45912cf60849e12fc93c3347ca Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Wed, 4 Dec 2019 23:56:12 +0000 Subject: [PATCH 345/530] Update dependency @types/react to v16.9.15 --- src/React.Sample.Mvc4/package-lock.json | 6 +++--- src/React.Sample.Mvc4/package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/React.Sample.Mvc4/package-lock.json b/src/React.Sample.Mvc4/package-lock.json index 1fa162e44..5f99ea7b9 100644 --- a/src/React.Sample.Mvc4/package-lock.json +++ b/src/React.Sample.Mvc4/package-lock.json @@ -11,9 +11,9 @@ "dev": true }, "@types/react": { - "version": "16.9.14", - "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.14.tgz", - "integrity": "sha512-Q4tW4RGmR+u/CgzR8VqZcsUWjP4Pz/LcHfs9AzSG+aBnwq8As3Bid3vG1eGGsXg/xuR2k2tqNlI8pzyV8kxe0g==", + "version": "16.9.15", + "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.15.tgz", + "integrity": "sha512-WsmM1b6xQn1tG3X2Hx4F3bZwc2E82pJXt5OPs2YJgg71IzvUoKOSSSYOvLXYCg1ttipM+UuA4Lj3sfvqjVxyZw==", "dev": true, "requires": { "@types/prop-types": "*", diff --git a/src/React.Sample.Mvc4/package.json b/src/React.Sample.Mvc4/package.json index e3ab6dea1..002a36ab9 100644 --- a/src/React.Sample.Mvc4/package.json +++ b/src/React.Sample.Mvc4/package.json @@ -7,7 +7,7 @@ "lint:ts": "tsc" }, "devDependencies": { - "@types/react": "16.9.14", + "@types/react": "16.9.15", "@types/react-dom": "16.9.4", "@types/reactstrap": "8.0.6", "typescript": "3.7.3" From dd83ac9eef9af92c984579072c1b250528a15d02 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Fri, 6 Dec 2019 13:24:38 +0000 Subject: [PATCH 346/530] Update babel monorepo to v7.7.5 --- src/React.Core/package-lock.json | 20 ++-- src/React.Core/package.json | 2 +- .../package-lock.json | 94 ++++++++++--------- src/React.Sample.Webpack.CoreMvc/package.json | 4 +- 4 files changed, 63 insertions(+), 57 deletions(-) diff --git a/src/React.Core/package-lock.json b/src/React.Core/package-lock.json index d1ec0b82d..665f8a2e4 100644 --- a/src/React.Core/package-lock.json +++ b/src/React.Core/package-lock.json @@ -14,15 +14,15 @@ } }, "@babel/core": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.7.4.tgz", - "integrity": "sha512-+bYbx56j4nYBmpsWtnPUsKW3NdnYxbqyfrP2w9wILBuHzdfIKz9prieZK0DFPyIzkjYVUe4QkusGL07r5pXznQ==", + "version": "7.7.5", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.7.5.tgz", + "integrity": "sha512-M42+ScN4+1S9iB6f+TL7QBpoQETxbclx+KNoKJABghnKYE+fMzSGqst0BZJc8CpI625bwPwYgUyRvxZ+0mZzpw==", "dev": true, "requires": { "@babel/code-frame": "^7.5.5", "@babel/generator": "^7.7.4", "@babel/helpers": "^7.7.4", - "@babel/parser": "^7.7.4", + "@babel/parser": "^7.7.5", "@babel/template": "^7.7.4", "@babel/traverse": "^7.7.4", "@babel/types": "^7.7.4", @@ -124,9 +124,9 @@ } }, "@babel/parser": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.7.4.tgz", - "integrity": "sha512-jIwvLO0zCL+O/LmEJQjWA75MQTWwx3c3u2JOTDK5D3/9egrWRRA0/0hk9XXywYnXZVVpzrBYeIQTmhwUaePI9g==", + "version": "7.7.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.7.5.tgz", + "integrity": "sha512-KNlOe9+/nk4i29g0VXgl8PEXIRms5xKLJeuZ6UptN0fHv+jDiriG+y94X6qAgWTR0h3KaoM1wK5G5h7MHFRSig==", "dev": true }, "@babel/standalone": { @@ -3544,9 +3544,9 @@ "dev": true }, "resolve": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.12.2.tgz", - "integrity": "sha512-cAVTI2VLHWYsGOirfeYVVQ7ZDejtQ9fp4YhYckWDEkFfqbVjaT11iM8k6xSAfGFMM+gDpZjMnFssPu8we+mqFw==", + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.13.1.tgz", + "integrity": "sha512-CxqObCX8K8YtAhOBRg+lrcdn+LK+WYOS8tSjqSFbjtrI5PnS63QPhZl4+yKfrU9tdsbMu9Anr/amegT87M9Z6w==", "dev": true, "requires": { "path-parse": "^1.0.6" diff --git a/src/React.Core/package.json b/src/React.Core/package.json index d3f0c7304..276658e90 100644 --- a/src/React.Core/package.json +++ b/src/React.Core/package.json @@ -6,7 +6,7 @@ "build": "webpack" }, "devDependencies": { - "@babel/core": "7.7.4", + "@babel/core": "7.7.5", "@babel/standalone": "7.7.4", "prop-types": "15.7.2", "react": "16.12.0", diff --git a/src/React.Sample.Webpack.CoreMvc/package-lock.json b/src/React.Sample.Webpack.CoreMvc/package-lock.json index a71753b77..5a8f336aa 100644 --- a/src/React.Sample.Webpack.CoreMvc/package-lock.json +++ b/src/React.Sample.Webpack.CoreMvc/package-lock.json @@ -14,15 +14,15 @@ } }, "@babel/core": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.7.4.tgz", - "integrity": "sha512-+bYbx56j4nYBmpsWtnPUsKW3NdnYxbqyfrP2w9wILBuHzdfIKz9prieZK0DFPyIzkjYVUe4QkusGL07r5pXznQ==", + "version": "7.7.5", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.7.5.tgz", + "integrity": "sha512-M42+ScN4+1S9iB6f+TL7QBpoQETxbclx+KNoKJABghnKYE+fMzSGqst0BZJc8CpI625bwPwYgUyRvxZ+0mZzpw==", "dev": true, "requires": { "@babel/code-frame": "^7.5.5", "@babel/generator": "^7.7.4", "@babel/helpers": "^7.7.4", - "@babel/parser": "^7.7.4", + "@babel/parser": "^7.7.5", "@babel/template": "^7.7.4", "@babel/traverse": "^7.7.4", "@babel/types": "^7.7.4", @@ -35,6 +35,12 @@ "source-map": "^0.5.0" }, "dependencies": { + "@babel/parser": { + "version": "7.7.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.7.5.tgz", + "integrity": "sha512-KNlOe9+/nk4i29g0VXgl8PEXIRms5xKLJeuZ6UptN0fHv+jDiriG+y94X6qAgWTR0h3KaoM1wK5G5h7MHFRSig==", + "dev": true + }, "@babel/types": { "version": "7.7.4", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", @@ -360,9 +366,9 @@ } }, "@babel/helper-module-transforms": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.7.4.tgz", - "integrity": "sha512-ehGBu4mXrhs0FxAqN8tWkzF8GSIGAiEumu4ONZ/hD9M88uHcD+Yu2ttKfOCgwzoesJOJrtQh7trI5YPbRtMmnA==", + "version": "7.7.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.7.5.tgz", + "integrity": "sha512-A7pSxyJf1gN5qXVcidwLWydjftUN878VkalhXX5iQDuGyiGK3sOrrKKHF4/A4fwHtnsotv/NipwAeLzY4KQPvw==", "dev": true, "requires": { "@babel/helper-module-imports": "^7.7.4", @@ -929,23 +935,23 @@ } }, "@babel/plugin-transform-modules-amd": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.7.4.tgz", - "integrity": "sha512-/542/5LNA18YDtg1F+QHvvUSlxdvjZoD/aldQwkq+E3WCkbEjNSN9zdrOXaSlfg3IfGi22ijzecklF/A7kVZFQ==", + "version": "7.7.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.7.5.tgz", + "integrity": "sha512-CT57FG4A2ZUNU1v+HdvDSDrjNWBrtCmSH6YbbgN3Lrf0Di/q/lWRxZrE72p3+HCCz9UjfZOEBdphgC0nzOS6DQ==", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.7.4", + "@babel/helper-module-transforms": "^7.7.5", "@babel/helper-plugin-utils": "^7.0.0", "babel-plugin-dynamic-import-node": "^2.3.0" } }, "@babel/plugin-transform-modules-commonjs": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.7.4.tgz", - "integrity": "sha512-k8iVS7Jhc367IcNF53KCwIXtKAH7czev866ThsTgy8CwlXjnKZna2VHwChglzLleYrcHz1eQEIJlGRQxB53nqA==", + "version": "7.7.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.7.5.tgz", + "integrity": "sha512-9Cq4zTFExwFhQI6MT1aFxgqhIsMWQWDVwOgLzl7PTWJHsNaqFvklAU+Oz6AQLAS0dJKTwZSOCo20INwktxpi3Q==", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.7.4", + "@babel/helper-module-transforms": "^7.7.5", "@babel/helper-plugin-utils": "^7.0.0", "@babel/helper-simple-access": "^7.7.4", "babel-plugin-dynamic-import-node": "^2.3.0" @@ -1061,9 +1067,9 @@ } }, "@babel/plugin-transform-regenerator": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.7.4.tgz", - "integrity": "sha512-e7MWl5UJvmPEwFJTwkBlPmqixCtr9yAASBqff4ggXTNicZiwbF8Eefzm6NVgfiBp7JdAGItecnctKTgH44q2Jw==", + "version": "7.7.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.7.5.tgz", + "integrity": "sha512-/8I8tPvX2FkuEyWbjRCt4qTAgZK0DVy8QRguhA524UH48RfGJy94On2ri+dCuwOpcerPRl9O4ebQkRcVzIaGBw==", "dev": true, "requires": { "regenerator-transform": "^0.14.0" @@ -1158,9 +1164,9 @@ } }, "@babel/preset-env": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.7.4.tgz", - "integrity": "sha512-Dg+ciGJjwvC1NIe/DGblMbcGq1HOtKbw8RLl4nIjlfcILKEOkWT/vRqPpumswABEBVudii6dnVwrBtzD7ibm4g==", + "version": "7.7.5", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.7.5.tgz", + "integrity": "sha512-wDPbiaZdGzsJuTWlpLHJxmwslwHGLZ8F5v69zX3oAWeTOFWdy4OJHoTKg26oAnFg052v+/LAPY5os9KB0LrOEA==", "dev": true, "requires": { "@babel/helper-module-imports": "^7.7.4", @@ -1191,8 +1197,8 @@ "@babel/plugin-transform-function-name": "^7.7.4", "@babel/plugin-transform-literals": "^7.7.4", "@babel/plugin-transform-member-expression-literals": "^7.7.4", - "@babel/plugin-transform-modules-amd": "^7.7.4", - "@babel/plugin-transform-modules-commonjs": "^7.7.4", + "@babel/plugin-transform-modules-amd": "^7.7.5", + "@babel/plugin-transform-modules-commonjs": "^7.7.5", "@babel/plugin-transform-modules-systemjs": "^7.7.4", "@babel/plugin-transform-modules-umd": "^7.7.4", "@babel/plugin-transform-named-capturing-groups-regex": "^7.7.4", @@ -1200,7 +1206,7 @@ "@babel/plugin-transform-object-super": "^7.7.4", "@babel/plugin-transform-parameters": "^7.7.4", "@babel/plugin-transform-property-literals": "^7.7.4", - "@babel/plugin-transform-regenerator": "^7.7.4", + "@babel/plugin-transform-regenerator": "^7.7.5", "@babel/plugin-transform-reserved-words": "^7.7.4", "@babel/plugin-transform-shorthand-properties": "^7.7.4", "@babel/plugin-transform-spread": "^7.7.4", @@ -1210,7 +1216,7 @@ "@babel/plugin-transform-unicode-regex": "^7.7.4", "@babel/types": "^7.7.4", "browserslist": "^4.6.0", - "core-js-compat": "^3.1.1", + "core-js-compat": "^3.4.7", "invariant": "^2.2.2", "js-levenshtein": "^1.1.3", "semver": "^5.5.0" @@ -2218,14 +2224,14 @@ } }, "browserslist": { - "version": "4.7.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.7.3.tgz", - "integrity": "sha512-jWvmhqYpx+9EZm/FxcZSbUZyDEvDTLDi3nSAKbzEkyWvtI0mNSmUosey+5awDW1RUlrgXbQb5A6qY1xQH9U6MQ==", + "version": "4.8.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.8.2.tgz", + "integrity": "sha512-+M4oeaTplPm/f1pXDw84YohEv7B1i/2Aisei8s4s6k3QsoSHa7i5sz8u/cGQkkatCPxMASKxPualR4wwYgVboA==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30001010", - "electron-to-chromium": "^1.3.306", - "node-releases": "^1.1.40" + "caniuse-lite": "^1.0.30001015", + "electron-to-chromium": "^1.3.322", + "node-releases": "^1.1.42" } }, "buffer": { @@ -2316,9 +2322,9 @@ "integrity": "sha1-FkpUg+Yw+kMh5a8HAg5TGDGyYJs=" }, "caniuse-lite": { - "version": "1.0.30001011", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001011.tgz", - "integrity": "sha512-h+Eqyn/YA6o6ZTqpS86PyRmNWOs1r54EBDcd2NTwwfsXQ8re1B38SnB+p2RKF8OUsyEIjeDU8XGec1RGO/wYCg==", + "version": "1.0.30001015", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001015.tgz", + "integrity": "sha512-/xL2AbW/XWHNu1gnIrO8UitBGoFthcsDgU9VLK1/dpsoxbaD5LscHozKze05R6WLsBvLhqv78dAPozMFQBYLbQ==", "dev": true }, "chalk": { @@ -2532,12 +2538,12 @@ "dev": true }, "core-js-compat": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.4.2.tgz", - "integrity": "sha512-W0Aj+LM3EAxxjD0Kp2o4be8UlnxIZHNupBv2znqrheR4aY2nOn91794k/xoSp+SxqqriiZpTsSwBtZr60cbkwQ==", + "version": "3.4.7", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.4.7.tgz", + "integrity": "sha512-57+mgz/P/xsGdjwQYkwtBZR3LuISaxD1dEwVDtbk8xJMqAmwqaxLOvnNT7kdJ7jYE/NjNptyzXi+IQFMi/2fCw==", "dev": true, "requires": { - "browserslist": "^4.7.3", + "browserslist": "^4.8.0", "semver": "^6.3.0" }, "dependencies": { @@ -2871,9 +2877,9 @@ } }, "electron-to-chromium": { - "version": "1.3.314", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.314.tgz", - "integrity": "sha512-IKDR/xCxKFhPts7h+VaSXS02Z1mznP3fli1BbXWXeN89i2gCzKraU8qLpEid8YzKcmZdZD3Mly3cn5/lY9xsBQ==", + "version": "1.3.322", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.322.tgz", + "integrity": "sha512-Tc8JQEfGQ1MzfSzI/bTlSr7btJv/FFO7Yh6tanqVmIWOuNCu6/D1MilIEgLtmWqIrsv+o4IjpLAhgMBr/ncNAA==", "dev": true }, "elliptic": { @@ -5030,9 +5036,9 @@ } }, "node-releases": { - "version": "1.1.41", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.41.tgz", - "integrity": "sha512-+IctMa7wIs8Cfsa8iYzeaLTFwv5Y4r5jZud+4AnfymzeEXKBCavFX0KBgzVaPVqf0ywa6PrO8/b+bPqdwjGBSg==", + "version": "1.1.42", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.42.tgz", + "integrity": "sha512-OQ/ESmUqGawI2PRX+XIRao44qWYBBfN54ImQYdWVTQqUckuejOg76ysSqDBK8NG3zwySRVnX36JwDQ6x+9GxzA==", "dev": true, "requires": { "semver": "^6.3.0" diff --git a/src/React.Sample.Webpack.CoreMvc/package.json b/src/React.Sample.Webpack.CoreMvc/package.json index d84285361..fbed9cee0 100644 --- a/src/React.Sample.Webpack.CoreMvc/package.json +++ b/src/React.Sample.Webpack.CoreMvc/package.json @@ -20,11 +20,11 @@ "styled-components": "^4.0.0" }, "devDependencies": { - "@babel/core": "7.7.4", + "@babel/core": "7.7.5", "@babel/plugin-proposal-class-properties": "7.7.4", "@babel/plugin-proposal-object-rest-spread": "7.7.4", "@babel/plugin-syntax-dynamic-import": "7.7.4", - "@babel/preset-env": "7.7.4", + "@babel/preset-env": "7.7.5", "@babel/preset-react": "7.7.4", "babel-loader": "8.0.6", "babel-runtime": "6.26.0", From 6b53a294b51c3ef641523061b5c099096f936d9f Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Fri, 6 Dec 2019 16:36:13 +0000 Subject: [PATCH 347/530] Update dependency @babel/standalone to v7.7.5 --- src/React.Core/package-lock.json | 6 +++--- src/React.Core/package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/React.Core/package-lock.json b/src/React.Core/package-lock.json index 665f8a2e4..36357eb05 100644 --- a/src/React.Core/package-lock.json +++ b/src/React.Core/package-lock.json @@ -130,9 +130,9 @@ "dev": true }, "@babel/standalone": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/standalone/-/standalone-7.7.4.tgz", - "integrity": "sha512-7erMqY9K0uOsWERAJrKzOkG5BezlZw8s1Yez40PUJrf8XXPTebv/fO7555+5Hmo1kBiDQlf9FOkV6wc7wRQ19A==", + "version": "7.7.5", + "resolved": "https://registry.npmjs.org/@babel/standalone/-/standalone-7.7.5.tgz", + "integrity": "sha512-DTUfpRWwNbFk0mBdXa+u8MGTpcNcScl9cUZyM+2Sjt/0RcOrH/dWMebn2hVF9bb6vp2VJYypB08/c2NhaKhLqA==", "dev": true }, "@babel/template": { diff --git a/src/React.Core/package.json b/src/React.Core/package.json index 276658e90..12d0d686f 100644 --- a/src/React.Core/package.json +++ b/src/React.Core/package.json @@ -7,7 +7,7 @@ }, "devDependencies": { "@babel/core": "7.7.5", - "@babel/standalone": "7.7.4", + "@babel/standalone": "7.7.5", "prop-types": "15.7.2", "react": "16.12.0", "react-dom": "16.12.0", From 1d07f85212668967c6198698194f9759151281eb Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Sun, 8 Dec 2019 00:29:51 +0000 Subject: [PATCH 348/530] Update dependency @babel/preset-env to v7.7.6 --- src/React.Sample.Webpack.CoreMvc/package-lock.json | 6 +++--- src/React.Sample.Webpack.CoreMvc/package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/React.Sample.Webpack.CoreMvc/package-lock.json b/src/React.Sample.Webpack.CoreMvc/package-lock.json index 5a8f336aa..e4dd59b3b 100644 --- a/src/React.Sample.Webpack.CoreMvc/package-lock.json +++ b/src/React.Sample.Webpack.CoreMvc/package-lock.json @@ -1164,9 +1164,9 @@ } }, "@babel/preset-env": { - "version": "7.7.5", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.7.5.tgz", - "integrity": "sha512-wDPbiaZdGzsJuTWlpLHJxmwslwHGLZ8F5v69zX3oAWeTOFWdy4OJHoTKg26oAnFg052v+/LAPY5os9KB0LrOEA==", + "version": "7.7.6", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.7.6.tgz", + "integrity": "sha512-k5hO17iF/Q7tR9Jv8PdNBZWYW6RofxhnxKjBMc0nG4JTaWvOTiPoO/RLFwAKcA4FpmuBFm6jkoqaRJLGi0zdaQ==", "dev": true, "requires": { "@babel/helper-module-imports": "^7.7.4", diff --git a/src/React.Sample.Webpack.CoreMvc/package.json b/src/React.Sample.Webpack.CoreMvc/package.json index fbed9cee0..eb9be01d2 100644 --- a/src/React.Sample.Webpack.CoreMvc/package.json +++ b/src/React.Sample.Webpack.CoreMvc/package.json @@ -24,7 +24,7 @@ "@babel/plugin-proposal-class-properties": "7.7.4", "@babel/plugin-proposal-object-rest-spread": "7.7.4", "@babel/plugin-syntax-dynamic-import": "7.7.4", - "@babel/preset-env": "7.7.5", + "@babel/preset-env": "7.7.6", "@babel/preset-react": "7.7.4", "babel-loader": "8.0.6", "babel-runtime": "6.26.0", From 48dafa31df373dcef5cd93659579ba76f0822726 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Sun, 8 Dec 2019 00:30:06 +0000 Subject: [PATCH 349/530] Update dependency @babel/standalone to v7.7.6 --- src/React.Core/package-lock.json | 6 +++--- src/React.Core/package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/React.Core/package-lock.json b/src/React.Core/package-lock.json index 36357eb05..d95050647 100644 --- a/src/React.Core/package-lock.json +++ b/src/React.Core/package-lock.json @@ -130,9 +130,9 @@ "dev": true }, "@babel/standalone": { - "version": "7.7.5", - "resolved": "https://registry.npmjs.org/@babel/standalone/-/standalone-7.7.5.tgz", - "integrity": "sha512-DTUfpRWwNbFk0mBdXa+u8MGTpcNcScl9cUZyM+2Sjt/0RcOrH/dWMebn2hVF9bb6vp2VJYypB08/c2NhaKhLqA==", + "version": "7.7.6", + "resolved": "https://registry.npmjs.org/@babel/standalone/-/standalone-7.7.6.tgz", + "integrity": "sha512-Th8rfO7jJQm9V+owCuhTrK1kXORlC6kyspz/L/Q5UhFvWZoZhEm2hVZVo7wbpmfbQzEbKn4MxZzoBu4nTz/Szw==", "dev": true }, "@babel/template": { diff --git a/src/React.Core/package.json b/src/React.Core/package.json index 12d0d686f..958cf90bb 100644 --- a/src/React.Core/package.json +++ b/src/React.Core/package.json @@ -7,7 +7,7 @@ }, "devDependencies": { "@babel/core": "7.7.5", - "@babel/standalone": "7.7.5", + "@babel/standalone": "7.7.6", "prop-types": "15.7.2", "react": "16.12.0", "react-dom": "16.12.0", From 83b160988c67a159625832966e722d1044c265e3 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Mon, 9 Dec 2019 13:12:51 +0000 Subject: [PATCH 350/530] Update dependency @types/react to v16.9.16 --- src/React.Sample.Mvc4/package-lock.json | 6 +++--- src/React.Sample.Mvc4/package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/React.Sample.Mvc4/package-lock.json b/src/React.Sample.Mvc4/package-lock.json index 5f99ea7b9..779ad199a 100644 --- a/src/React.Sample.Mvc4/package-lock.json +++ b/src/React.Sample.Mvc4/package-lock.json @@ -11,9 +11,9 @@ "dev": true }, "@types/react": { - "version": "16.9.15", - "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.15.tgz", - "integrity": "sha512-WsmM1b6xQn1tG3X2Hx4F3bZwc2E82pJXt5OPs2YJgg71IzvUoKOSSSYOvLXYCg1ttipM+UuA4Lj3sfvqjVxyZw==", + "version": "16.9.16", + "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.16.tgz", + "integrity": "sha512-dQ3wlehuBbYlfvRXfF5G+5TbZF3xqgkikK7DWAsQXe2KnzV+kjD4W2ea+ThCrKASZn9h98bjjPzoTYzfRqyBkw==", "dev": true, "requires": { "@types/prop-types": "*", diff --git a/src/React.Sample.Mvc4/package.json b/src/React.Sample.Mvc4/package.json index 002a36ab9..9d489b874 100644 --- a/src/React.Sample.Mvc4/package.json +++ b/src/React.Sample.Mvc4/package.json @@ -7,7 +7,7 @@ "lint:ts": "tsc" }, "devDependencies": { - "@types/react": "16.9.15", + "@types/react": "16.9.16", "@types/react-dom": "16.9.4", "@types/reactstrap": "8.0.6", "typescript": "3.7.3" From 23e44b29409e8ef0c1dd53b5d232461262a2942b Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Wed, 11 Dec 2019 22:28:30 +0000 Subject: [PATCH 351/530] Update dependency Microsoft.NET.Sdk.Functions to v1.0.30 --- webhooks/React.Site.Hooks.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/webhooks/React.Site.Hooks.csproj b/webhooks/React.Site.Hooks.csproj index a27f2b3d8..6f038b6c2 100644 --- a/webhooks/React.Site.Hooks.csproj +++ b/webhooks/React.Site.Hooks.csproj @@ -3,7 +3,7 @@ net461 - + From e982750921a529b3a5a40455ec8d18b503fa7c20 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Thu, 12 Dec 2019 22:54:33 +0000 Subject: [PATCH 352/530] Update dependency Microsoft.NET.Sdk.Functions to v1.0.31 --- webhooks/React.Site.Hooks.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/webhooks/React.Site.Hooks.csproj b/webhooks/React.Site.Hooks.csproj index 6f038b6c2..7c495bc79 100644 --- a/webhooks/React.Site.Hooks.csproj +++ b/webhooks/React.Site.Hooks.csproj @@ -3,7 +3,7 @@ net461 - + From e38000a12525804fc6d6db286d3fc2095439f9e9 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Mon, 16 Dec 2019 09:46:14 +0000 Subject: [PATCH 353/530] Update dependency webpack to v4.41.3 --- .../Resources/babel-legacy/package-lock.json | 190 +++++++++-------- .../Resources/babel-legacy/package.json | 2 +- src/React.Core/package-lock.json | 196 ++++++++++-------- src/React.Core/package.json | 2 +- .../package-lock.json | 190 +++++++++-------- src/React.Sample.Webpack.CoreMvc/package.json | 2 +- 6 files changed, 318 insertions(+), 264 deletions(-) diff --git a/src/React.Core/Resources/babel-legacy/package-lock.json b/src/React.Core/Resources/babel-legacy/package-lock.json index 4775e9ae1..f92db1757 100644 --- a/src/React.Core/Resources/babel-legacy/package-lock.json +++ b/src/React.Core/Resources/babel-legacy/package-lock.json @@ -193,9 +193,9 @@ "dev": true }, "acorn": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.3.0.tgz", - "integrity": "sha512-/czfa8BwS88b9gWQVhc8eknunSA2DoJpJyTQkhheIf5E48u1N0R4q/YxxsAeqRrmK9TQ/uYfgLDfZo91UlANIA==", + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.0.tgz", + "integrity": "sha512-gac8OEcQ2Li1dxIEWGZzsp2BitJxwkwcOm0zHAJLcPJaVvm58FRnk6RkuLRpU1EujipU2ZFODv2P9DLMfnV8mw==", "dev": true }, "ajv": { @@ -1399,10 +1399,20 @@ "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", "dev": true }, + "bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "dev": true, + "optional": true, + "requires": { + "file-uri-to-path": "1.0.0" + } + }, "bluebird": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.1.tgz", - "integrity": "sha512-DdmyoGCleJnkbp3nkbxTLJ18rjDsE4yCggEwKNXkeV123sPNfOCYeDoeuOY+F2FrSjO1YXcTU+dsy96KMy+gcg==", + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", "dev": true }, "bn.js": { @@ -1528,9 +1538,9 @@ } }, "buffer": { - "version": "4.9.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", - "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=", + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", + "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", "dev": true, "requires": { "base64-js": "^1.0.2", @@ -1765,13 +1775,10 @@ } }, "console-browserify": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", - "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", - "dev": true, - "requires": { - "date-now": "^0.1.4" - } + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", + "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", + "dev": true }, "constants-browserify": { "version": "1.0.0", @@ -1895,12 +1902,6 @@ "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=", "dev": true }, - "date-now": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", - "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=", - "dev": true - }, "debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", @@ -1964,9 +1965,9 @@ } }, "des.js": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz", - "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=", + "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", @@ -2018,9 +2019,9 @@ } }, "elliptic": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.1.tgz", - "integrity": "sha512-xvJINNLbTeWQjrl6X+7eQCrIy/YPv5XCpKW6kB5mKvtnGILoLDcySuwomfdzt0BMdLNVnuRNTuzKNHj0bva1Cg==", + "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", @@ -2278,9 +2279,9 @@ "dev": true }, "fast-json-stable-stringify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", - "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", + "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==", "dev": true }, "figgy-pudding": { @@ -2289,6 +2290,13 @@ "integrity": "sha512-vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w==", "dev": true }, + "file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "dev": true, + "optional": true + }, "fill-range": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", @@ -2398,14 +2406,15 @@ "dev": true }, "fsevents": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.9.tgz", - "integrity": "sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw==", + "version": "1.2.11", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.11.tgz", + "integrity": "sha512-+ux3lx6peh0BpvY0JebGyZoiR4D+oYzdPZMKJwkZ+sFkNJzpL7tXc/wehS49gUAxg3tmMHPHZkA8JU2rhhgDHw==", "dev": true, "optional": true, "requires": { + "bindings": "^1.5.0", "nan": "^2.12.1", - "node-pre-gyp": "^0.12.0" + "node-pre-gyp": "*" }, "dependencies": { "abbrev": { @@ -2453,7 +2462,7 @@ } }, "chownr": { - "version": "1.1.1", + "version": "1.1.3", "bundled": true, "dev": true, "optional": true @@ -2483,7 +2492,7 @@ "optional": true }, "debug": { - "version": "4.1.1", + "version": "3.2.6", "bundled": true, "dev": true, "optional": true, @@ -2510,12 +2519,12 @@ "optional": true }, "fs-minipass": { - "version": "1.2.5", + "version": "1.2.7", "bundled": true, "dev": true, "optional": true, "requires": { - "minipass": "^2.2.1" + "minipass": "^2.6.0" } }, "fs.realpath": { @@ -2541,7 +2550,7 @@ } }, "glob": { - "version": "7.1.3", + "version": "7.1.6", "bundled": true, "dev": true, "optional": true, @@ -2570,7 +2579,7 @@ } }, "ignore-walk": { - "version": "3.0.1", + "version": "3.0.3", "bundled": true, "dev": true, "optional": true, @@ -2589,7 +2598,7 @@ } }, "inherits": { - "version": "2.0.3", + "version": "2.0.4", "bundled": true, "dev": true, "optional": true @@ -2631,7 +2640,7 @@ "optional": true }, "minipass": { - "version": "2.3.5", + "version": "2.9.0", "bundled": true, "dev": true, "optional": true, @@ -2641,12 +2650,12 @@ } }, "minizlib": { - "version": "1.2.1", + "version": "1.3.3", "bundled": true, "dev": true, "optional": true, "requires": { - "minipass": "^2.2.1" + "minipass": "^2.9.0" } }, "mkdirp": { @@ -2659,24 +2668,24 @@ } }, "ms": { - "version": "2.1.1", + "version": "2.1.2", "bundled": true, "dev": true, "optional": true }, "needle": { - "version": "2.3.0", + "version": "2.4.0", "bundled": true, "dev": true, "optional": true, "requires": { - "debug": "^4.1.0", + "debug": "^3.2.6", "iconv-lite": "^0.4.4", "sax": "^1.2.4" } }, "node-pre-gyp": { - "version": "0.12.0", + "version": "0.14.0", "bundled": true, "dev": true, "optional": true, @@ -2690,7 +2699,7 @@ "rc": "^1.2.7", "rimraf": "^2.6.1", "semver": "^5.3.0", - "tar": "^4" + "tar": "^4.4.2" } }, "nopt": { @@ -2704,13 +2713,22 @@ } }, "npm-bundled": { - "version": "1.0.6", + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "npm-normalize-package-bin": "^1.0.1" + } + }, + "npm-normalize-package-bin": { + "version": "1.0.1", "bundled": true, "dev": true, "optional": true }, "npm-packlist": { - "version": "1.4.1", + "version": "1.4.7", "bundled": true, "dev": true, "optional": true, @@ -2781,7 +2799,7 @@ "optional": true }, "process-nextick-args": { - "version": "2.0.0", + "version": "2.0.1", "bundled": true, "dev": true, "optional": true @@ -2822,7 +2840,7 @@ } }, "rimraf": { - "version": "2.6.3", + "version": "2.7.1", "bundled": true, "dev": true, "optional": true, @@ -2849,7 +2867,7 @@ "optional": true }, "semver": { - "version": "5.7.0", + "version": "5.7.1", "bundled": true, "dev": true, "optional": true @@ -2902,18 +2920,18 @@ "optional": true }, "tar": { - "version": "4.4.8", + "version": "4.4.13", "bundled": true, "dev": true, "optional": true, "requires": { "chownr": "^1.1.1", "fs-minipass": "^1.2.5", - "minipass": "^2.3.4", - "minizlib": "^1.1.1", + "minipass": "^2.8.6", + "minizlib": "^1.2.1", "mkdirp": "^0.5.0", "safe-buffer": "^5.1.2", - "yallist": "^3.0.2" + "yallist": "^3.0.3" } }, "util-deprecate": { @@ -2938,7 +2956,7 @@ "optional": true }, "yallist": { - "version": "3.0.3", + "version": "3.1.1", "bundled": true, "dev": true, "optional": true @@ -2967,9 +2985,9 @@ "dev": true }, "glob": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", - "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", "dev": true, "requires": { "fs.realpath": "^1.0.0", @@ -4419,9 +4437,9 @@ "dev": true }, "serialize-javascript": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.9.1.tgz", - "integrity": "sha512-0Vb/54WJ6k5v8sSWN09S0ora+Hnr+cX40r9F170nT+mSkaxltoE/7R3OrIdBSUv1OoiobH1QoWQbCnAO+e8J1A==", + "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": { @@ -4629,9 +4647,9 @@ } }, "source-map-support": { - "version": "0.5.13", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", - "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", + "version": "0.5.16", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.16.tgz", + "integrity": "sha512-efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ==", "dev": true, "requires": { "buffer-from": "^1.0.0", @@ -4725,9 +4743,9 @@ } }, "stream-shift": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", - "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", + "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==", "dev": true }, "string-width": { @@ -4781,9 +4799,9 @@ "dev": true }, "terser": { - "version": "4.3.8", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.3.8.tgz", - "integrity": "sha512-otmIRlRVmLChAWsnSFNO0Bfk6YySuBp6G9qrHiJwlLDd4mxe2ta4sjI7TzIR+W1nBMjilzrMcPOz9pSusgx3hQ==", + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.4.2.tgz", + "integrity": "sha512-Uufrsvhj9O1ikwgITGsZ5EZS6qPokUOkCegS7fYOdGTv+OA90vndUbU6PEjr5ePqHfNUbGyMO7xyIZv2MhsALQ==", "dev": true, "requires": { "commander": "^2.20.0", @@ -4800,16 +4818,16 @@ } }, "terser-webpack-plugin": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.1.tgz", - "integrity": "sha512-ZXmmfiwtCLfz8WKZyYUuuHf3dMYEjg8NrjHMb0JqHVHVOSkzp3cW2/XG1fP3tRhqEqSzMwzzRQGtAPbs4Cncxg==", + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.3.tgz", + "integrity": "sha512-QMxecFz/gHQwteWwSo5nTc6UaICqN1bMedC5sMtUc7y3Ha3Q8y6ZO0iCR8pq4RJC8Hjf0FEPEHZqcMB/+DFCrA==", "dev": true, "requires": { "cacache": "^12.0.2", "find-cache-dir": "^2.1.0", "is-wsl": "^1.1.0", "schema-utils": "^1.0.0", - "serialize-javascript": "^1.7.0", + "serialize-javascript": "^2.1.2", "source-map": "^0.6.1", "terser": "^4.1.2", "webpack-sources": "^1.4.0", @@ -5081,9 +5099,9 @@ "dev": true }, "vm-browserify": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.0.tgz", - "integrity": "sha512-iq+S7vZJE60yejDYM0ek6zg308+UZsdtPExWP9VZoCFCz1zkJoXFnAX7aZfd/ZwrkidzdUZL0C/ryW+JwAiIGw==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", + "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", "dev": true }, "watchpack": { @@ -5098,9 +5116,9 @@ } }, "webpack": { - "version": "4.41.2", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.41.2.tgz", - "integrity": "sha512-Zhw69edTGfbz9/8JJoyRQ/pq8FYUoY0diOXqW0T6yhgdhCv6wr0hra5DwwWexNRns2Z2+gsnrNcbe9hbGBgk/A==", + "version": "4.41.3", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.41.3.tgz", + "integrity": "sha512-EcNzP9jGoxpQAXq1VOoTet0ik7/VVU1MovIfcUSAjLowc7GhcQku/sOXALvq5nPpSei2HF6VRhibeJSC3i/Law==", "dev": true, "requires": { "@webassemblyjs/ast": "1.8.5", @@ -5123,7 +5141,7 @@ "node-libs-browser": "^2.2.1", "schema-utils": "^1.0.0", "tapable": "^1.1.3", - "terser-webpack-plugin": "^1.4.1", + "terser-webpack-plugin": "^1.4.3", "watchpack": "^1.6.0", "webpack-sources": "^1.4.1" }, diff --git a/src/React.Core/Resources/babel-legacy/package.json b/src/React.Core/Resources/babel-legacy/package.json index 6261e5541..c795ec60d 100644 --- a/src/React.Core/Resources/babel-legacy/package.json +++ b/src/React.Core/Resources/babel-legacy/package.json @@ -12,7 +12,7 @@ "babel-preset-es2015": "6.24.1", "babel-preset-stage-0": "6.24.1", "babel-standalone": "6.26.0", - "webpack": "4.41.2", + "webpack": "4.41.3", "webpack-cli": "3.3.10" }, "author": "", diff --git a/src/React.Core/package-lock.json b/src/React.Core/package-lock.json index d95050647..c897f5306 100644 --- a/src/React.Core/package-lock.json +++ b/src/React.Core/package-lock.json @@ -380,9 +380,9 @@ "dev": true }, "acorn": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.3.0.tgz", - "integrity": "sha512-/czfa8BwS88b9gWQVhc8eknunSA2DoJpJyTQkhheIf5E48u1N0R4q/YxxsAeqRrmK9TQ/uYfgLDfZo91UlANIA==", + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.0.tgz", + "integrity": "sha512-gac8OEcQ2Li1dxIEWGZzsp2BitJxwkwcOm0zHAJLcPJaVvm58FRnk6RkuLRpU1EujipU2ZFODv2P9DLMfnV8mw==", "dev": true }, "ajv": { @@ -610,10 +610,20 @@ "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", "dev": true }, + "bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "dev": true, + "optional": true, + "requires": { + "file-uri-to-path": "1.0.0" + } + }, "bluebird": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.1.tgz", - "integrity": "sha512-DdmyoGCleJnkbp3nkbxTLJ18rjDsE4yCggEwKNXkeV123sPNfOCYeDoeuOY+F2FrSjO1YXcTU+dsy96KMy+gcg==", + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", "dev": true }, "bn.js": { @@ -747,9 +757,9 @@ } }, "buffer": { - "version": "4.9.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", - "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=", + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", + "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", "dev": true, "requires": { "base64-js": "^1.0.2", @@ -973,13 +983,10 @@ } }, "console-browserify": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", - "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", - "dev": true, - "requires": { - "date-now": "^0.1.4" - } + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", + "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", + "dev": true }, "constants-browserify": { "version": "1.0.0", @@ -1097,12 +1104,6 @@ "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=", "dev": true }, - "date-now": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", - "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=", - "dev": true - }, "debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", @@ -1166,9 +1167,9 @@ } }, "des.js": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz", - "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=", + "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", @@ -1211,9 +1212,9 @@ } }, "elliptic": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.1.tgz", - "integrity": "sha512-xvJINNLbTeWQjrl6X+7eQCrIy/YPv5XCpKW6kB5mKvtnGILoLDcySuwomfdzt0BMdLNVnuRNTuzKNHj0bva1Cg==", + "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", @@ -1536,9 +1537,9 @@ "dev": true }, "fast-json-stable-stringify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", - "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", + "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==", "dev": true }, "figgy-pudding": { @@ -1547,6 +1548,13 @@ "integrity": "sha512-vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w==", "dev": true }, + "file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "dev": true, + "optional": true + }, "fill-range": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", @@ -1656,14 +1664,15 @@ "dev": true }, "fsevents": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.9.tgz", - "integrity": "sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw==", + "version": "1.2.11", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.11.tgz", + "integrity": "sha512-+ux3lx6peh0BpvY0JebGyZoiR4D+oYzdPZMKJwkZ+sFkNJzpL7tXc/wehS49gUAxg3tmMHPHZkA8JU2rhhgDHw==", "dev": true, "optional": true, "requires": { + "bindings": "^1.5.0", "nan": "^2.12.1", - "node-pre-gyp": "^0.12.0" + "node-pre-gyp": "*" }, "dependencies": { "abbrev": { @@ -1711,7 +1720,7 @@ } }, "chownr": { - "version": "1.1.1", + "version": "1.1.3", "bundled": true, "dev": true, "optional": true @@ -1741,7 +1750,7 @@ "optional": true }, "debug": { - "version": "4.1.1", + "version": "3.2.6", "bundled": true, "dev": true, "optional": true, @@ -1768,12 +1777,12 @@ "optional": true }, "fs-minipass": { - "version": "1.2.5", + "version": "1.2.7", "bundled": true, "dev": true, "optional": true, "requires": { - "minipass": "^2.2.1" + "minipass": "^2.6.0" } }, "fs.realpath": { @@ -1799,7 +1808,7 @@ } }, "glob": { - "version": "7.1.3", + "version": "7.1.6", "bundled": true, "dev": true, "optional": true, @@ -1828,7 +1837,7 @@ } }, "ignore-walk": { - "version": "3.0.1", + "version": "3.0.3", "bundled": true, "dev": true, "optional": true, @@ -1847,7 +1856,7 @@ } }, "inherits": { - "version": "2.0.3", + "version": "2.0.4", "bundled": true, "dev": true, "optional": true @@ -1889,7 +1898,7 @@ "optional": true }, "minipass": { - "version": "2.3.5", + "version": "2.9.0", "bundled": true, "dev": true, "optional": true, @@ -1899,12 +1908,12 @@ } }, "minizlib": { - "version": "1.2.1", + "version": "1.3.3", "bundled": true, "dev": true, "optional": true, "requires": { - "minipass": "^2.2.1" + "minipass": "^2.9.0" } }, "mkdirp": { @@ -1917,24 +1926,24 @@ } }, "ms": { - "version": "2.1.1", + "version": "2.1.2", "bundled": true, "dev": true, "optional": true }, "needle": { - "version": "2.3.0", + "version": "2.4.0", "bundled": true, "dev": true, "optional": true, "requires": { - "debug": "^4.1.0", + "debug": "^3.2.6", "iconv-lite": "^0.4.4", "sax": "^1.2.4" } }, "node-pre-gyp": { - "version": "0.12.0", + "version": "0.14.0", "bundled": true, "dev": true, "optional": true, @@ -1948,7 +1957,7 @@ "rc": "^1.2.7", "rimraf": "^2.6.1", "semver": "^5.3.0", - "tar": "^4" + "tar": "^4.4.2" } }, "nopt": { @@ -1962,13 +1971,22 @@ } }, "npm-bundled": { - "version": "1.0.6", + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "npm-normalize-package-bin": "^1.0.1" + } + }, + "npm-normalize-package-bin": { + "version": "1.0.1", "bundled": true, "dev": true, "optional": true }, "npm-packlist": { - "version": "1.4.1", + "version": "1.4.7", "bundled": true, "dev": true, "optional": true, @@ -2039,7 +2057,7 @@ "optional": true }, "process-nextick-args": { - "version": "2.0.0", + "version": "2.0.1", "bundled": true, "dev": true, "optional": true @@ -2080,7 +2098,7 @@ } }, "rimraf": { - "version": "2.6.3", + "version": "2.7.1", "bundled": true, "dev": true, "optional": true, @@ -2107,7 +2125,7 @@ "optional": true }, "semver": { - "version": "5.7.0", + "version": "5.7.1", "bundled": true, "dev": true, "optional": true @@ -2160,18 +2178,18 @@ "optional": true }, "tar": { - "version": "4.4.8", + "version": "4.4.13", "bundled": true, "dev": true, "optional": true, "requires": { "chownr": "^1.1.1", "fs-minipass": "^1.2.5", - "minipass": "^2.3.4", - "minizlib": "^1.1.1", + "minipass": "^2.8.6", + "minizlib": "^1.2.1", "mkdirp": "^0.5.0", "safe-buffer": "^5.1.2", - "yallist": "^3.0.2" + "yallist": "^3.0.3" } }, "util-deprecate": { @@ -2196,7 +2214,7 @@ "optional": true }, "yallist": { - "version": "3.0.3", + "version": "3.1.1", "bundled": true, "dev": true, "optional": true @@ -2225,9 +2243,9 @@ "dev": true }, "glob": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", - "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", "dev": true, "requires": { "fs.realpath": "^1.0.0", @@ -2301,9 +2319,9 @@ "dev": true }, "graceful-fs": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.2.tgz", - "integrity": "sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q==", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", + "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==", "dev": true }, "has-flag": { @@ -3673,9 +3691,9 @@ "dev": true }, "serialize-javascript": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.9.1.tgz", - "integrity": "sha512-0Vb/54WJ6k5v8sSWN09S0ora+Hnr+cX40r9F170nT+mSkaxltoE/7R3OrIdBSUv1OoiobH1QoWQbCnAO+e8J1A==", + "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": { @@ -3877,9 +3895,9 @@ } }, "source-map-support": { - "version": "0.5.13", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", - "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", + "version": "0.5.16", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.16.tgz", + "integrity": "sha512-efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ==", "dev": true, "requires": { "buffer-from": "^1.0.0", @@ -3973,9 +3991,9 @@ } }, "stream-shift": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", - "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", + "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==", "dev": true }, "string-width": { @@ -4029,9 +4047,9 @@ "dev": true }, "terser": { - "version": "4.3.8", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.3.8.tgz", - "integrity": "sha512-otmIRlRVmLChAWsnSFNO0Bfk6YySuBp6G9qrHiJwlLDd4mxe2ta4sjI7TzIR+W1nBMjilzrMcPOz9pSusgx3hQ==", + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.4.2.tgz", + "integrity": "sha512-Uufrsvhj9O1ikwgITGsZ5EZS6qPokUOkCegS7fYOdGTv+OA90vndUbU6PEjr5ePqHfNUbGyMO7xyIZv2MhsALQ==", "dev": true, "requires": { "commander": "^2.20.0", @@ -4048,16 +4066,16 @@ } }, "terser-webpack-plugin": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.1.tgz", - "integrity": "sha512-ZXmmfiwtCLfz8WKZyYUuuHf3dMYEjg8NrjHMb0JqHVHVOSkzp3cW2/XG1fP3tRhqEqSzMwzzRQGtAPbs4Cncxg==", + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.3.tgz", + "integrity": "sha512-QMxecFz/gHQwteWwSo5nTc6UaICqN1bMedC5sMtUc7y3Ha3Q8y6ZO0iCR8pq4RJC8Hjf0FEPEHZqcMB/+DFCrA==", "dev": true, "requires": { "cacache": "^12.0.2", "find-cache-dir": "^2.1.0", "is-wsl": "^1.1.0", "schema-utils": "^1.0.0", - "serialize-javascript": "^1.7.0", + "serialize-javascript": "^2.1.2", "source-map": "^0.6.1", "terser": "^4.1.2", "webpack-sources": "^1.4.0", @@ -4306,9 +4324,9 @@ "dev": true }, "vm-browserify": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.0.tgz", - "integrity": "sha512-iq+S7vZJE60yejDYM0ek6zg308+UZsdtPExWP9VZoCFCz1zkJoXFnAX7aZfd/ZwrkidzdUZL0C/ryW+JwAiIGw==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", + "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", "dev": true }, "watchpack": { @@ -4323,9 +4341,9 @@ } }, "webpack": { - "version": "4.41.2", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.41.2.tgz", - "integrity": "sha512-Zhw69edTGfbz9/8JJoyRQ/pq8FYUoY0diOXqW0T6yhgdhCv6wr0hra5DwwWexNRns2Z2+gsnrNcbe9hbGBgk/A==", + "version": "4.41.3", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.41.3.tgz", + "integrity": "sha512-EcNzP9jGoxpQAXq1VOoTet0ik7/VVU1MovIfcUSAjLowc7GhcQku/sOXALvq5nPpSei2HF6VRhibeJSC3i/Law==", "dev": true, "requires": { "@webassemblyjs/ast": "1.8.5", @@ -4348,7 +4366,7 @@ "node-libs-browser": "^2.2.1", "schema-utils": "^1.0.0", "tapable": "^1.1.3", - "terser-webpack-plugin": "^1.4.1", + "terser-webpack-plugin": "^1.4.3", "watchpack": "^1.6.0", "webpack-sources": "^1.4.1" }, diff --git a/src/React.Core/package.json b/src/React.Core/package.json index 958cf90bb..f1931ff44 100644 --- a/src/React.Core/package.json +++ b/src/React.Core/package.json @@ -11,7 +11,7 @@ "prop-types": "15.7.2", "react": "16.12.0", "react-dom": "16.12.0", - "webpack": "4.41.2", + "webpack": "4.41.3", "webpack-cli": "3.3.10" } } diff --git a/src/React.Sample.Webpack.CoreMvc/package-lock.json b/src/React.Sample.Webpack.CoreMvc/package-lock.json index e4dd59b3b..9300a3528 100644 --- a/src/React.Sample.Webpack.CoreMvc/package-lock.json +++ b/src/React.Sample.Webpack.CoreMvc/package-lock.json @@ -1756,9 +1756,9 @@ "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" }, "acorn": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.3.0.tgz", - "integrity": "sha512-/czfa8BwS88b9gWQVhc8eknunSA2DoJpJyTQkhheIf5E48u1N0R4q/YxxsAeqRrmK9TQ/uYfgLDfZo91UlANIA==", + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.0.tgz", + "integrity": "sha512-gac8OEcQ2Li1dxIEWGZzsp2BitJxwkwcOm0zHAJLcPJaVvm58FRnk6RkuLRpU1EujipU2ZFODv2P9DLMfnV8mw==", "dev": true }, "ajv": { @@ -2082,10 +2082,20 @@ "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", "dev": true }, + "bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "dev": true, + "optional": true, + "requires": { + "file-uri-to-path": "1.0.0" + } + }, "bluebird": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.1.tgz", - "integrity": "sha512-DdmyoGCleJnkbp3nkbxTLJ18rjDsE4yCggEwKNXkeV123sPNfOCYeDoeuOY+F2FrSjO1YXcTU+dsy96KMy+gcg==", + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", "dev": true }, "bn.js": { @@ -2235,9 +2245,9 @@ } }, "buffer": { - "version": "4.9.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", - "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=", + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", + "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", "dev": true, "requires": { "base64-js": "^1.0.2", @@ -2492,13 +2502,10 @@ } }, "console-browserify": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", - "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", - "dev": true, - "requires": { - "date-now": "^0.1.4" - } + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", + "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", + "dev": true }, "constants-browserify": { "version": "1.0.0", @@ -2725,12 +2732,6 @@ "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=", "dev": true }, - "date-now": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", - "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=", - "dev": true - }, "debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", @@ -2816,9 +2817,9 @@ } }, "des.js": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz", - "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=", + "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", @@ -2883,9 +2884,9 @@ "dev": true }, "elliptic": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.1.tgz", - "integrity": "sha512-xvJINNLbTeWQjrl6X+7eQCrIy/YPv5XCpKW6kB5mKvtnGILoLDcySuwomfdzt0BMdLNVnuRNTuzKNHj0bva1Cg==", + "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", @@ -3184,9 +3185,9 @@ "dev": true }, "fast-json-stable-stringify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", - "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", + "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==", "dev": true }, "fbjs": { @@ -3216,6 +3217,13 @@ "integrity": "sha512-vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w==", "dev": true }, + "file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "dev": true, + "optional": true + }, "fill-range": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", @@ -3368,14 +3376,15 @@ "dev": true }, "fsevents": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.9.tgz", - "integrity": "sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw==", + "version": "1.2.11", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.11.tgz", + "integrity": "sha512-+ux3lx6peh0BpvY0JebGyZoiR4D+oYzdPZMKJwkZ+sFkNJzpL7tXc/wehS49gUAxg3tmMHPHZkA8JU2rhhgDHw==", "dev": true, "optional": true, "requires": { + "bindings": "^1.5.0", "nan": "^2.12.1", - "node-pre-gyp": "^0.12.0" + "node-pre-gyp": "*" }, "dependencies": { "abbrev": { @@ -3423,7 +3432,7 @@ } }, "chownr": { - "version": "1.1.1", + "version": "1.1.3", "bundled": true, "dev": true, "optional": true @@ -3453,7 +3462,7 @@ "optional": true }, "debug": { - "version": "4.1.1", + "version": "3.2.6", "bundled": true, "dev": true, "optional": true, @@ -3480,12 +3489,12 @@ "optional": true }, "fs-minipass": { - "version": "1.2.5", + "version": "1.2.7", "bundled": true, "dev": true, "optional": true, "requires": { - "minipass": "^2.2.1" + "minipass": "^2.6.0" } }, "fs.realpath": { @@ -3511,7 +3520,7 @@ } }, "glob": { - "version": "7.1.3", + "version": "7.1.6", "bundled": true, "dev": true, "optional": true, @@ -3540,7 +3549,7 @@ } }, "ignore-walk": { - "version": "3.0.1", + "version": "3.0.3", "bundled": true, "dev": true, "optional": true, @@ -3559,7 +3568,7 @@ } }, "inherits": { - "version": "2.0.3", + "version": "2.0.4", "bundled": true, "dev": true, "optional": true @@ -3601,7 +3610,7 @@ "optional": true }, "minipass": { - "version": "2.3.5", + "version": "2.9.0", "bundled": true, "dev": true, "optional": true, @@ -3611,12 +3620,12 @@ } }, "minizlib": { - "version": "1.2.1", + "version": "1.3.3", "bundled": true, "dev": true, "optional": true, "requires": { - "minipass": "^2.2.1" + "minipass": "^2.9.0" } }, "mkdirp": { @@ -3629,24 +3638,24 @@ } }, "ms": { - "version": "2.1.1", + "version": "2.1.2", "bundled": true, "dev": true, "optional": true }, "needle": { - "version": "2.3.0", + "version": "2.4.0", "bundled": true, "dev": true, "optional": true, "requires": { - "debug": "^4.1.0", + "debug": "^3.2.6", "iconv-lite": "^0.4.4", "sax": "^1.2.4" } }, "node-pre-gyp": { - "version": "0.12.0", + "version": "0.14.0", "bundled": true, "dev": true, "optional": true, @@ -3660,7 +3669,7 @@ "rc": "^1.2.7", "rimraf": "^2.6.1", "semver": "^5.3.0", - "tar": "^4" + "tar": "^4.4.2" } }, "nopt": { @@ -3674,13 +3683,22 @@ } }, "npm-bundled": { - "version": "1.0.6", + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "npm-normalize-package-bin": "^1.0.1" + } + }, + "npm-normalize-package-bin": { + "version": "1.0.1", "bundled": true, "dev": true, "optional": true }, "npm-packlist": { - "version": "1.4.1", + "version": "1.4.7", "bundled": true, "dev": true, "optional": true, @@ -3751,7 +3769,7 @@ "optional": true }, "process-nextick-args": { - "version": "2.0.0", + "version": "2.0.1", "bundled": true, "dev": true, "optional": true @@ -3792,7 +3810,7 @@ } }, "rimraf": { - "version": "2.6.3", + "version": "2.7.1", "bundled": true, "dev": true, "optional": true, @@ -3819,7 +3837,7 @@ "optional": true }, "semver": { - "version": "5.7.0", + "version": "5.7.1", "bundled": true, "dev": true, "optional": true @@ -3872,18 +3890,18 @@ "optional": true }, "tar": { - "version": "4.4.8", + "version": "4.4.13", "bundled": true, "dev": true, "optional": true, "requires": { "chownr": "^1.1.1", "fs-minipass": "^1.2.5", - "minipass": "^2.3.4", - "minizlib": "^1.1.1", + "minipass": "^2.8.6", + "minizlib": "^1.2.1", "mkdirp": "^0.5.0", "safe-buffer": "^5.1.2", - "yallist": "^3.0.2" + "yallist": "^3.0.3" } }, "util-deprecate": { @@ -3908,7 +3926,7 @@ "optional": true }, "yallist": { - "version": "3.0.3", + "version": "3.1.1", "bundled": true, "dev": true, "optional": true @@ -3943,9 +3961,9 @@ "dev": true }, "glob": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", - "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", "dev": true, "requires": { "fs.realpath": "^1.0.0", @@ -6132,9 +6150,9 @@ "dev": true }, "serialize-javascript": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.9.1.tgz", - "integrity": "sha512-0Vb/54WJ6k5v8sSWN09S0ora+Hnr+cX40r9F170nT+mSkaxltoE/7R3OrIdBSUv1OoiobH1QoWQbCnAO+e8J1A==", + "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": { @@ -6339,9 +6357,9 @@ } }, "source-map-support": { - "version": "0.5.13", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", - "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", + "version": "0.5.16", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.16.tgz", + "integrity": "sha512-efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ==", "dev": true, "requires": { "buffer-from": "^1.0.0", @@ -6484,9 +6502,9 @@ } }, "stream-shift": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", - "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", + "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==", "dev": true }, "string-width": { @@ -6591,9 +6609,9 @@ "dev": true }, "terser": { - "version": "4.3.8", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.3.8.tgz", - "integrity": "sha512-otmIRlRVmLChAWsnSFNO0Bfk6YySuBp6G9qrHiJwlLDd4mxe2ta4sjI7TzIR+W1nBMjilzrMcPOz9pSusgx3hQ==", + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.4.2.tgz", + "integrity": "sha512-Uufrsvhj9O1ikwgITGsZ5EZS6qPokUOkCegS7fYOdGTv+OA90vndUbU6PEjr5ePqHfNUbGyMO7xyIZv2MhsALQ==", "dev": true, "requires": { "commander": "^2.20.0", @@ -6610,16 +6628,16 @@ } }, "terser-webpack-plugin": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.1.tgz", - "integrity": "sha512-ZXmmfiwtCLfz8WKZyYUuuHf3dMYEjg8NrjHMb0JqHVHVOSkzp3cW2/XG1fP3tRhqEqSzMwzzRQGtAPbs4Cncxg==", + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.3.tgz", + "integrity": "sha512-QMxecFz/gHQwteWwSo5nTc6UaICqN1bMedC5sMtUc7y3Ha3Q8y6ZO0iCR8pq4RJC8Hjf0FEPEHZqcMB/+DFCrA==", "dev": true, "requires": { "cacache": "^12.0.2", "find-cache-dir": "^2.1.0", "is-wsl": "^1.1.0", "schema-utils": "^1.0.0", - "serialize-javascript": "^1.7.0", + "serialize-javascript": "^2.1.2", "source-map": "^0.6.1", "terser": "^4.1.2", "webpack-sources": "^1.4.0", @@ -7002,9 +7020,9 @@ "integrity": "sha512-x+cYdNnaA3CxvMaTX0INdTCN8m8aF2uY9BvEqmxuYp8bL09cs/kWVQPVGcA35fMktdOsP69IgU7wFj/61dJHEw==" }, "vm-browserify": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.0.tgz", - "integrity": "sha512-iq+S7vZJE60yejDYM0ek6zg308+UZsdtPExWP9VZoCFCz1zkJoXFnAX7aZfd/ZwrkidzdUZL0C/ryW+JwAiIGw==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", + "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", "dev": true }, "warning": { @@ -7027,9 +7045,9 @@ } }, "webpack": { - "version": "4.41.2", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.41.2.tgz", - "integrity": "sha512-Zhw69edTGfbz9/8JJoyRQ/pq8FYUoY0diOXqW0T6yhgdhCv6wr0hra5DwwWexNRns2Z2+gsnrNcbe9hbGBgk/A==", + "version": "4.41.3", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.41.3.tgz", + "integrity": "sha512-EcNzP9jGoxpQAXq1VOoTet0ik7/VVU1MovIfcUSAjLowc7GhcQku/sOXALvq5nPpSei2HF6VRhibeJSC3i/Law==", "dev": true, "requires": { "@webassemblyjs/ast": "1.8.5", @@ -7052,7 +7070,7 @@ "node-libs-browser": "^2.2.1", "schema-utils": "^1.0.0", "tapable": "^1.1.3", - "terser-webpack-plugin": "^1.4.1", + "terser-webpack-plugin": "^1.4.3", "watchpack": "^1.6.0", "webpack-sources": "^1.4.1" }, diff --git a/src/React.Sample.Webpack.CoreMvc/package.json b/src/React.Sample.Webpack.CoreMvc/package.json index eb9be01d2..20a1e81dd 100644 --- a/src/React.Sample.Webpack.CoreMvc/package.json +++ b/src/React.Sample.Webpack.CoreMvc/package.json @@ -28,7 +28,7 @@ "@babel/preset-react": "7.7.4", "babel-loader": "8.0.6", "babel-runtime": "6.26.0", - "webpack": "4.41.2", + "webpack": "4.41.3", "webpack-cli": "3.3.10" } } From 9fc49a1948272a0c9aca6529e003280ff12e14a3 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Thu, 19 Dec 2019 01:05:06 +0000 Subject: [PATCH 354/530] Update babel monorepo to v7.7.7 --- src/React.Core/package-lock.json | 28 ++--- src/React.Core/package.json | 2 +- .../package-lock.json | 102 ++++++++++-------- src/React.Sample.Webpack.CoreMvc/package.json | 6 +- 4 files changed, 75 insertions(+), 63 deletions(-) diff --git a/src/React.Core/package-lock.json b/src/React.Core/package-lock.json index c897f5306..38773a71e 100644 --- a/src/React.Core/package-lock.json +++ b/src/React.Core/package-lock.json @@ -14,15 +14,15 @@ } }, "@babel/core": { - "version": "7.7.5", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.7.5.tgz", - "integrity": "sha512-M42+ScN4+1S9iB6f+TL7QBpoQETxbclx+KNoKJABghnKYE+fMzSGqst0BZJc8CpI625bwPwYgUyRvxZ+0mZzpw==", + "version": "7.7.7", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.7.7.tgz", + "integrity": "sha512-jlSjuj/7z138NLZALxVgrx13AOtqip42ATZP7+kYl53GvDV6+4dCek1mVUo8z8c8Xnw/mx2q3d9HWh3griuesQ==", "dev": true, "requires": { "@babel/code-frame": "^7.5.5", - "@babel/generator": "^7.7.4", + "@babel/generator": "^7.7.7", "@babel/helpers": "^7.7.4", - "@babel/parser": "^7.7.5", + "@babel/parser": "^7.7.7", "@babel/template": "^7.7.4", "@babel/traverse": "^7.7.4", "@babel/types": "^7.7.4", @@ -53,9 +53,9 @@ } }, "@babel/generator": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.7.4.tgz", - "integrity": "sha512-m5qo2WgdOJeyYngKImbkyQrnUN1mPceaG5BV+G0E3gWsa4l/jCSryWJdM2x8OuGAOyh+3d5pVYfZWCiNFtynxg==", + "version": "7.7.7", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.7.7.tgz", + "integrity": "sha512-/AOIBpHh/JU1l0ZFS4kiRCBnLi6OTHzh0RPk3h9isBxkkqELtQNFi1Vr/tiG9p1yfoUdKVwISuXWQR+hwwM4VQ==", "dev": true, "requires": { "@babel/types": "^7.7.4", @@ -124,9 +124,9 @@ } }, "@babel/parser": { - "version": "7.7.5", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.7.5.tgz", - "integrity": "sha512-KNlOe9+/nk4i29g0VXgl8PEXIRms5xKLJeuZ6UptN0fHv+jDiriG+y94X6qAgWTR0h3KaoM1wK5G5h7MHFRSig==", + "version": "7.7.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.7.7.tgz", + "integrity": "sha512-WtTZMZAZLbeymhkd/sEaPD8IQyGAhmuTuvTzLiCFM7iXiVdY0gc0IaI+cW0fh1BnSMbJSzXX6/fHllgHKwHhXw==", "dev": true }, "@babel/standalone": { @@ -3562,9 +3562,9 @@ "dev": true }, "resolve": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.13.1.tgz", - "integrity": "sha512-CxqObCX8K8YtAhOBRg+lrcdn+LK+WYOS8tSjqSFbjtrI5PnS63QPhZl4+yKfrU9tdsbMu9Anr/amegT87M9Z6w==", + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.14.0.tgz", + "integrity": "sha512-uviWSi5N67j3t3UKFxej1loCH0VZn5XuqdNxoLShPcYPw6cUZn74K1VRj+9myynRX03bxIBEkwlkob/ujLsJVw==", "dev": true, "requires": { "path-parse": "^1.0.6" diff --git a/src/React.Core/package.json b/src/React.Core/package.json index f1931ff44..1495ef12f 100644 --- a/src/React.Core/package.json +++ b/src/React.Core/package.json @@ -6,7 +6,7 @@ "build": "webpack" }, "devDependencies": { - "@babel/core": "7.7.5", + "@babel/core": "7.7.7", "@babel/standalone": "7.7.6", "prop-types": "15.7.2", "react": "16.12.0", diff --git a/src/React.Sample.Webpack.CoreMvc/package-lock.json b/src/React.Sample.Webpack.CoreMvc/package-lock.json index 9300a3528..81dc83451 100644 --- a/src/React.Sample.Webpack.CoreMvc/package-lock.json +++ b/src/React.Sample.Webpack.CoreMvc/package-lock.json @@ -14,15 +14,15 @@ } }, "@babel/core": { - "version": "7.7.5", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.7.5.tgz", - "integrity": "sha512-M42+ScN4+1S9iB6f+TL7QBpoQETxbclx+KNoKJABghnKYE+fMzSGqst0BZJc8CpI625bwPwYgUyRvxZ+0mZzpw==", + "version": "7.7.7", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.7.7.tgz", + "integrity": "sha512-jlSjuj/7z138NLZALxVgrx13AOtqip42ATZP7+kYl53GvDV6+4dCek1mVUo8z8c8Xnw/mx2q3d9HWh3griuesQ==", "dev": true, "requires": { "@babel/code-frame": "^7.5.5", - "@babel/generator": "^7.7.4", + "@babel/generator": "^7.7.7", "@babel/helpers": "^7.7.4", - "@babel/parser": "^7.7.5", + "@babel/parser": "^7.7.7", "@babel/template": "^7.7.4", "@babel/traverse": "^7.7.4", "@babel/types": "^7.7.4", @@ -35,10 +35,22 @@ "source-map": "^0.5.0" }, "dependencies": { + "@babel/generator": { + "version": "7.7.7", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.7.7.tgz", + "integrity": "sha512-/AOIBpHh/JU1l0ZFS4kiRCBnLi6OTHzh0RPk3h9isBxkkqELtQNFi1Vr/tiG9p1yfoUdKVwISuXWQR+hwwM4VQ==", + "dev": true, + "requires": { + "@babel/types": "^7.7.4", + "jsesc": "^2.5.1", + "lodash": "^4.17.13", + "source-map": "^0.5.0" + } + }, "@babel/parser": { - "version": "7.7.5", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.7.5.tgz", - "integrity": "sha512-KNlOe9+/nk4i29g0VXgl8PEXIRms5xKLJeuZ6UptN0fHv+jDiriG+y94X6qAgWTR0h3KaoM1wK5G5h7MHFRSig==", + "version": "7.7.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.7.7.tgz", + "integrity": "sha512-WtTZMZAZLbeymhkd/sEaPD8IQyGAhmuTuvTzLiCFM7iXiVdY0gc0IaI+cW0fh1BnSMbJSzXX6/fHllgHKwHhXw==", "dev": true }, "@babel/types": { @@ -659,9 +671,9 @@ } }, "@babel/plugin-proposal-object-rest-spread": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.7.4.tgz", - "integrity": "sha512-rnpnZR3/iWKmiQyJ3LKJpSwLDcX/nSXhdLk4Aq/tXOApIvyu7qoabrige0ylsAJffaUC51WiBu209Q0U+86OWQ==", + "version": "7.7.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.7.7.tgz", + "integrity": "sha512-3qp9I8lelgzNedI3hrhkvhaEYree6+WHnyA/q4Dza9z7iEIs1eyhWyJnetk3jJ69RT0AT4G0UhEGwyGFJ7GUuQ==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0", @@ -679,9 +691,9 @@ } }, "@babel/plugin-proposal-unicode-property-regex": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.7.4.tgz", - "integrity": "sha512-cHgqHgYvffluZk85dJ02vloErm3Y6xtH+2noOBOJ2kXOJH3aVCDnj5eR/lVNlTnYu4hndAPJD3rTFjW3qee0PA==", + "version": "7.7.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.7.7.tgz", + "integrity": "sha512-80PbkKyORBUVm1fbTLrHpYdJxMThzM1UqFGh0ALEhO9TYbG86Ah9zQYAB/84axz2vcxefDLdZwWwZNlYARlu9w==", "dev": true, "requires": { "@babel/helper-create-regexp-features-plugin": "^7.7.4", @@ -869,9 +881,9 @@ } }, "@babel/plugin-transform-dotall-regex": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.7.4.tgz", - "integrity": "sha512-mk0cH1zyMa/XHeb6LOTXTbG7uIJ8Rrjlzu91pUx/KS3JpcgaTDwMS8kM+ar8SLOvlL2Lofi4CGBAjCo3a2x+lw==", + "version": "7.7.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.7.7.tgz", + "integrity": "sha512-b4in+YlTeE/QmTgrllnb3bHA0HntYvjz8O3Mcbx75UBPJA2xhb5A8nle498VhxSXJHQefjtQxpnLPehDJ4TRlg==", "dev": true, "requires": { "@babel/helper-create-regexp-features-plugin": "^7.7.4", @@ -1007,9 +1019,9 @@ } }, "@babel/plugin-transform-parameters": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.7.4.tgz", - "integrity": "sha512-VJwhVePWPa0DqE9vcfptaJSzNDKrWU/4FbYCjZERtmqEs05g3UMXnYMZoXja7JAJ7Y7sPZipwm/pGApZt7wHlw==", + "version": "7.7.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.7.7.tgz", + "integrity": "sha512-OhGSrf9ZBrr1fw84oFXj5hgi8Nmg+E2w5L7NhnG0lPvpDtqd7dbyilM2/vR8CKbJ907RyxPh2kj6sBCSSfI9Ew==", "dev": true, "requires": { "@babel/helper-call-delegate": "^7.7.4", @@ -1164,9 +1176,9 @@ } }, "@babel/preset-env": { - "version": "7.7.6", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.7.6.tgz", - "integrity": "sha512-k5hO17iF/Q7tR9Jv8PdNBZWYW6RofxhnxKjBMc0nG4JTaWvOTiPoO/RLFwAKcA4FpmuBFm6jkoqaRJLGi0zdaQ==", + "version": "7.7.7", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.7.7.tgz", + "integrity": "sha512-pCu0hrSSDVI7kCVUOdcMNQEbOPJ52E+LrQ14sN8uL2ALfSqePZQlKrOy+tM4uhEdYlCHi4imr8Zz2cZe9oSdIg==", "dev": true, "requires": { "@babel/helper-module-imports": "^7.7.4", @@ -1174,9 +1186,9 @@ "@babel/plugin-proposal-async-generator-functions": "^7.7.4", "@babel/plugin-proposal-dynamic-import": "^7.7.4", "@babel/plugin-proposal-json-strings": "^7.7.4", - "@babel/plugin-proposal-object-rest-spread": "^7.7.4", + "@babel/plugin-proposal-object-rest-spread": "^7.7.7", "@babel/plugin-proposal-optional-catch-binding": "^7.7.4", - "@babel/plugin-proposal-unicode-property-regex": "^7.7.4", + "@babel/plugin-proposal-unicode-property-regex": "^7.7.7", "@babel/plugin-syntax-async-generators": "^7.7.4", "@babel/plugin-syntax-dynamic-import": "^7.7.4", "@babel/plugin-syntax-json-strings": "^7.7.4", @@ -1190,7 +1202,7 @@ "@babel/plugin-transform-classes": "^7.7.4", "@babel/plugin-transform-computed-properties": "^7.7.4", "@babel/plugin-transform-destructuring": "^7.7.4", - "@babel/plugin-transform-dotall-regex": "^7.7.4", + "@babel/plugin-transform-dotall-regex": "^7.7.7", "@babel/plugin-transform-duplicate-keys": "^7.7.4", "@babel/plugin-transform-exponentiation-operator": "^7.7.4", "@babel/plugin-transform-for-of": "^7.7.4", @@ -1204,7 +1216,7 @@ "@babel/plugin-transform-named-capturing-groups-regex": "^7.7.4", "@babel/plugin-transform-new-target": "^7.7.4", "@babel/plugin-transform-object-super": "^7.7.4", - "@babel/plugin-transform-parameters": "^7.7.4", + "@babel/plugin-transform-parameters": "^7.7.7", "@babel/plugin-transform-property-literals": "^7.7.4", "@babel/plugin-transform-regenerator": "^7.7.5", "@babel/plugin-transform-reserved-words": "^7.7.4", @@ -1216,7 +1228,7 @@ "@babel/plugin-transform-unicode-regex": "^7.7.4", "@babel/types": "^7.7.4", "browserslist": "^4.6.0", - "core-js-compat": "^3.4.7", + "core-js-compat": "^3.6.0", "invariant": "^2.2.2", "js-levenshtein": "^1.1.3", "semver": "^5.5.0" @@ -2332,9 +2344,9 @@ "integrity": "sha1-FkpUg+Yw+kMh5a8HAg5TGDGyYJs=" }, "caniuse-lite": { - "version": "1.0.30001015", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001015.tgz", - "integrity": "sha512-/xL2AbW/XWHNu1gnIrO8UitBGoFthcsDgU9VLK1/dpsoxbaD5LscHozKze05R6WLsBvLhqv78dAPozMFQBYLbQ==", + "version": "1.0.30001016", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001016.tgz", + "integrity": "sha512-yYQ2QfotceRiH4U+h1Us86WJXtVHDmy3nEKIdYPsZCYnOV5/tMgGbmoIlrMzmh2VXlproqYtVaKeGDBkMZifFA==", "dev": true }, "chalk": { @@ -2545,19 +2557,19 @@ "dev": true }, "core-js-compat": { - "version": "3.4.7", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.4.7.tgz", - "integrity": "sha512-57+mgz/P/xsGdjwQYkwtBZR3LuISaxD1dEwVDtbk8xJMqAmwqaxLOvnNT7kdJ7jYE/NjNptyzXi+IQFMi/2fCw==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.6.0.tgz", + "integrity": "sha512-Z3eCNjGgoYluH89Jt4wVkfYsc/VdLrA2/woX5lm0isO/pCT+P+Y+o65bOuEnjDJLthdwTBxbCVzptTXtc18fJg==", "dev": true, "requires": { - "browserslist": "^4.8.0", - "semver": "^6.3.0" + "browserslist": "^4.8.2", + "semver": "7.0.0" }, "dependencies": { "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", + "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", "dev": true } } @@ -5054,9 +5066,9 @@ } }, "node-releases": { - "version": "1.1.42", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.42.tgz", - "integrity": "sha512-OQ/ESmUqGawI2PRX+XIRao44qWYBBfN54ImQYdWVTQqUckuejOg76ysSqDBK8NG3zwySRVnX36JwDQ6x+9GxzA==", + "version": "1.1.43", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.43.tgz", + "integrity": "sha512-Rmfnj52WNhvr83MvuAWHEqXVoZXCcDQssSOffU4n4XOL9sPrP61mSZ88g25NqmABDvH7PiAlFCzoSCSdzA293w==", "dev": true, "requires": { "semver": "^6.3.0" @@ -5972,9 +5984,9 @@ "dev": true }, "regjsparser": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.0.tgz", - "integrity": "sha512-RQ7YyokLiQBomUJuUG8iGVvkgOLxwyZM8k6d3q5SAXpg4r5TZJZigKFvC6PpD+qQ98bCDC5YelPeA3EucDoNeQ==", + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.1.tgz", + "integrity": "sha512-7LutE94sz/NKSYegK+/4E77+8DipxF+Qn2Tmu362AcmsF2NYq/wx3+ObvU90TKEhjf7hQoFXo23ajjrXP7eUgg==", "dev": true, "requires": { "jsesc": "~0.5.0" diff --git a/src/React.Sample.Webpack.CoreMvc/package.json b/src/React.Sample.Webpack.CoreMvc/package.json index 20a1e81dd..49735a90e 100644 --- a/src/React.Sample.Webpack.CoreMvc/package.json +++ b/src/React.Sample.Webpack.CoreMvc/package.json @@ -20,11 +20,11 @@ "styled-components": "^4.0.0" }, "devDependencies": { - "@babel/core": "7.7.5", + "@babel/core": "7.7.7", "@babel/plugin-proposal-class-properties": "7.7.4", - "@babel/plugin-proposal-object-rest-spread": "7.7.4", + "@babel/plugin-proposal-object-rest-spread": "7.7.7", "@babel/plugin-syntax-dynamic-import": "7.7.4", - "@babel/preset-env": "7.7.6", + "@babel/preset-env": "7.7.7", "@babel/preset-react": "7.7.4", "babel-loader": "8.0.6", "babel-runtime": "6.26.0", From 4440c446b8cfb422272f46e567877f6dff85511d Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Thu, 19 Dec 2019 04:49:06 +0000 Subject: [PATCH 355/530] Update dependency @babel/standalone to v7.7.7 --- src/React.Core/package-lock.json | 6 +++--- src/React.Core/package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/React.Core/package-lock.json b/src/React.Core/package-lock.json index 38773a71e..335490eea 100644 --- a/src/React.Core/package-lock.json +++ b/src/React.Core/package-lock.json @@ -130,9 +130,9 @@ "dev": true }, "@babel/standalone": { - "version": "7.7.6", - "resolved": "https://registry.npmjs.org/@babel/standalone/-/standalone-7.7.6.tgz", - "integrity": "sha512-Th8rfO7jJQm9V+owCuhTrK1kXORlC6kyspz/L/Q5UhFvWZoZhEm2hVZVo7wbpmfbQzEbKn4MxZzoBu4nTz/Szw==", + "version": "7.7.7", + "resolved": "https://registry.npmjs.org/@babel/standalone/-/standalone-7.7.7.tgz", + "integrity": "sha512-nlhwSzfCVWFxIfY0wL1DJkHyyDbqHNTldCAaAljzPHJ/ppYziziSoM0HJn919e54uUxtO3AAdp8CWqOn8CON/w==", "dev": true }, "@babel/template": { diff --git a/src/React.Core/package.json b/src/React.Core/package.json index 1495ef12f..09caa1499 100644 --- a/src/React.Core/package.json +++ b/src/React.Core/package.json @@ -7,7 +7,7 @@ }, "devDependencies": { "@babel/core": "7.7.7", - "@babel/standalone": "7.7.6", + "@babel/standalone": "7.7.7", "prop-types": "15.7.2", "react": "16.12.0", "react-dom": "16.12.0", From 0631652dc512a3a38182d0ecf500730f2a075d61 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Thu, 19 Dec 2019 07:42:41 +0000 Subject: [PATCH 356/530] Update dependency webpack to v4.41.4 --- .../Resources/babel-legacy/package-lock.json | 12 ++++++------ src/React.Core/Resources/babel-legacy/package.json | 2 +- src/React.Core/package-lock.json | 12 ++++++------ src/React.Core/package.json | 2 +- src/React.Sample.Webpack.CoreMvc/package-lock.json | 12 ++++++------ src/React.Sample.Webpack.CoreMvc/package.json | 2 +- 6 files changed, 21 insertions(+), 21 deletions(-) diff --git a/src/React.Core/Resources/babel-legacy/package-lock.json b/src/React.Core/Resources/babel-legacy/package-lock.json index f92db1757..5fc41e424 100644 --- a/src/React.Core/Resources/babel-legacy/package-lock.json +++ b/src/React.Core/Resources/babel-legacy/package-lock.json @@ -4799,9 +4799,9 @@ "dev": true }, "terser": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.4.2.tgz", - "integrity": "sha512-Uufrsvhj9O1ikwgITGsZ5EZS6qPokUOkCegS7fYOdGTv+OA90vndUbU6PEjr5ePqHfNUbGyMO7xyIZv2MhsALQ==", + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.4.3.tgz", + "integrity": "sha512-0ikKraVtRDKGzHrzkCv5rUNDzqlhmhowOBqC0XqUHFpW+vJ45+20/IFBcebwKfiS2Z9fJin6Eo+F1zLZsxi8RA==", "dev": true, "requires": { "commander": "^2.20.0", @@ -5116,9 +5116,9 @@ } }, "webpack": { - "version": "4.41.3", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.41.3.tgz", - "integrity": "sha512-EcNzP9jGoxpQAXq1VOoTet0ik7/VVU1MovIfcUSAjLowc7GhcQku/sOXALvq5nPpSei2HF6VRhibeJSC3i/Law==", + "version": "4.41.4", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.41.4.tgz", + "integrity": "sha512-Lc+2uB6NjpCWsHI3trkoISOI64h9QYIXenbEWj3bn3oyjfB1lEBXjWAfAyY2sM0rZn41oD5V91OLwKRwS6Wp8Q==", "dev": true, "requires": { "@webassemblyjs/ast": "1.8.5", diff --git a/src/React.Core/Resources/babel-legacy/package.json b/src/React.Core/Resources/babel-legacy/package.json index c795ec60d..df338a7f3 100644 --- a/src/React.Core/Resources/babel-legacy/package.json +++ b/src/React.Core/Resources/babel-legacy/package.json @@ -12,7 +12,7 @@ "babel-preset-es2015": "6.24.1", "babel-preset-stage-0": "6.24.1", "babel-standalone": "6.26.0", - "webpack": "4.41.3", + "webpack": "4.41.4", "webpack-cli": "3.3.10" }, "author": "", diff --git a/src/React.Core/package-lock.json b/src/React.Core/package-lock.json index 335490eea..f54c36e61 100644 --- a/src/React.Core/package-lock.json +++ b/src/React.Core/package-lock.json @@ -4047,9 +4047,9 @@ "dev": true }, "terser": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.4.2.tgz", - "integrity": "sha512-Uufrsvhj9O1ikwgITGsZ5EZS6qPokUOkCegS7fYOdGTv+OA90vndUbU6PEjr5ePqHfNUbGyMO7xyIZv2MhsALQ==", + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.4.3.tgz", + "integrity": "sha512-0ikKraVtRDKGzHrzkCv5rUNDzqlhmhowOBqC0XqUHFpW+vJ45+20/IFBcebwKfiS2Z9fJin6Eo+F1zLZsxi8RA==", "dev": true, "requires": { "commander": "^2.20.0", @@ -4341,9 +4341,9 @@ } }, "webpack": { - "version": "4.41.3", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.41.3.tgz", - "integrity": "sha512-EcNzP9jGoxpQAXq1VOoTet0ik7/VVU1MovIfcUSAjLowc7GhcQku/sOXALvq5nPpSei2HF6VRhibeJSC3i/Law==", + "version": "4.41.4", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.41.4.tgz", + "integrity": "sha512-Lc+2uB6NjpCWsHI3trkoISOI64h9QYIXenbEWj3bn3oyjfB1lEBXjWAfAyY2sM0rZn41oD5V91OLwKRwS6Wp8Q==", "dev": true, "requires": { "@webassemblyjs/ast": "1.8.5", diff --git a/src/React.Core/package.json b/src/React.Core/package.json index 09caa1499..10627b90a 100644 --- a/src/React.Core/package.json +++ b/src/React.Core/package.json @@ -11,7 +11,7 @@ "prop-types": "15.7.2", "react": "16.12.0", "react-dom": "16.12.0", - "webpack": "4.41.3", + "webpack": "4.41.4", "webpack-cli": "3.3.10" } } diff --git a/src/React.Sample.Webpack.CoreMvc/package-lock.json b/src/React.Sample.Webpack.CoreMvc/package-lock.json index 81dc83451..f9f4b55e2 100644 --- a/src/React.Sample.Webpack.CoreMvc/package-lock.json +++ b/src/React.Sample.Webpack.CoreMvc/package-lock.json @@ -6621,9 +6621,9 @@ "dev": true }, "terser": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.4.2.tgz", - "integrity": "sha512-Uufrsvhj9O1ikwgITGsZ5EZS6qPokUOkCegS7fYOdGTv+OA90vndUbU6PEjr5ePqHfNUbGyMO7xyIZv2MhsALQ==", + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.4.3.tgz", + "integrity": "sha512-0ikKraVtRDKGzHrzkCv5rUNDzqlhmhowOBqC0XqUHFpW+vJ45+20/IFBcebwKfiS2Z9fJin6Eo+F1zLZsxi8RA==", "dev": true, "requires": { "commander": "^2.20.0", @@ -7057,9 +7057,9 @@ } }, "webpack": { - "version": "4.41.3", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.41.3.tgz", - "integrity": "sha512-EcNzP9jGoxpQAXq1VOoTet0ik7/VVU1MovIfcUSAjLowc7GhcQku/sOXALvq5nPpSei2HF6VRhibeJSC3i/Law==", + "version": "4.41.4", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.41.4.tgz", + "integrity": "sha512-Lc+2uB6NjpCWsHI3trkoISOI64h9QYIXenbEWj3bn3oyjfB1lEBXjWAfAyY2sM0rZn41oD5V91OLwKRwS6Wp8Q==", "dev": true, "requires": { "@webassemblyjs/ast": "1.8.5", diff --git a/src/React.Sample.Webpack.CoreMvc/package.json b/src/React.Sample.Webpack.CoreMvc/package.json index 49735a90e..e714a0408 100644 --- a/src/React.Sample.Webpack.CoreMvc/package.json +++ b/src/React.Sample.Webpack.CoreMvc/package.json @@ -28,7 +28,7 @@ "@babel/preset-react": "7.7.4", "babel-loader": "8.0.6", "babel-runtime": "6.26.0", - "webpack": "4.41.3", + "webpack": "4.41.4", "webpack-cli": "3.3.10" } } From 544db58c5228d462af0096c8d901c8063b9774ea Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Fri, 20 Dec 2019 07:15:35 +0000 Subject: [PATCH 357/530] Update dependency @types/react to v16.9.17 --- src/React.Sample.Mvc4/package-lock.json | 12 ++++++------ src/React.Sample.Mvc4/package.json | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/React.Sample.Mvc4/package-lock.json b/src/React.Sample.Mvc4/package-lock.json index 779ad199a..316b6808d 100644 --- a/src/React.Sample.Mvc4/package-lock.json +++ b/src/React.Sample.Mvc4/package-lock.json @@ -11,9 +11,9 @@ "dev": true }, "@types/react": { - "version": "16.9.16", - "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.16.tgz", - "integrity": "sha512-dQ3wlehuBbYlfvRXfF5G+5TbZF3xqgkikK7DWAsQXe2KnzV+kjD4W2ea+ThCrKASZn9h98bjjPzoTYzfRqyBkw==", + "version": "16.9.17", + "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.17.tgz", + "integrity": "sha512-UP27In4fp4sWF5JgyV6pwVPAQM83Fj76JOcg02X5BZcpSu5Wx+fP9RMqc2v0ssBoQIFvD5JdKY41gjJJKmw6Bg==", "dev": true, "requires": { "@types/prop-types": "*", @@ -40,9 +40,9 @@ } }, "csstype": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.7.tgz", - "integrity": "sha512-9Mcn9sFbGBAdmimWb2gLVDtFJzeKtDGIr76TUqmjZrw9LFXBMSU70lcs+C0/7fyCd6iBDqmksUcCOUIkisPHsQ==", + "version": "2.6.8", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.8.tgz", + "integrity": "sha512-msVS9qTuMT5zwAGCVm4mxfrZ18BNc6Csd0oJAtiFMZ1FAx1CCvy2+5MDmYoix63LM/6NDbNtodCiGYGmFgO0dA==", "dev": true }, "popper.js": { diff --git a/src/React.Sample.Mvc4/package.json b/src/React.Sample.Mvc4/package.json index 9d489b874..dbe5133ff 100644 --- a/src/React.Sample.Mvc4/package.json +++ b/src/React.Sample.Mvc4/package.json @@ -7,7 +7,7 @@ "lint:ts": "tsc" }, "devDependencies": { - "@types/react": "16.9.16", + "@types/react": "16.9.17", "@types/react-dom": "16.9.4", "@types/reactstrap": "8.0.6", "typescript": "3.7.3" From 8cc99d8e41f3612aa5f8e5f9f1492b8b03e4a8e9 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Fri, 20 Dec 2019 21:24:00 +0000 Subject: [PATCH 358/530] Update dependency typescript to v3.7.4 --- src/React.Sample.Mvc4/package-lock.json | 6 +++--- src/React.Sample.Mvc4/package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/React.Sample.Mvc4/package-lock.json b/src/React.Sample.Mvc4/package-lock.json index 316b6808d..6f63e479b 100644 --- a/src/React.Sample.Mvc4/package-lock.json +++ b/src/React.Sample.Mvc4/package-lock.json @@ -52,9 +52,9 @@ "dev": true }, "typescript": { - "version": "3.7.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.7.3.tgz", - "integrity": "sha512-Mcr/Qk7hXqFBXMN7p7Lusj1ktCBydylfQM/FZCk5glCNQJrCUKPkMHdo9R0MTFWsC/4kPFvDS0fDPvukfCkFsw==", + "version": "3.7.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.7.4.tgz", + "integrity": "sha512-A25xv5XCtarLwXpcDNZzCGvW2D1S3/bACratYBx2sax8PefsFhlYmkQicKHvpYflFS8if4zne5zT5kpJ7pzuvw==", "dev": true } } diff --git a/src/React.Sample.Mvc4/package.json b/src/React.Sample.Mvc4/package.json index dbe5133ff..6a44d39de 100644 --- a/src/React.Sample.Mvc4/package.json +++ b/src/React.Sample.Mvc4/package.json @@ -10,6 +10,6 @@ "@types/react": "16.9.17", "@types/react-dom": "16.9.4", "@types/reactstrap": "8.0.6", - "typescript": "3.7.3" + "typescript": "3.7.4" } } From 2e23d0a66cfa7823ab0fe21871cf2acd3e31e950 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Fri, 27 Dec 2019 21:24:36 +0000 Subject: [PATCH 359/530] Update dependency webpack to v4.41.5 --- src/React.Core/Resources/babel-legacy/package-lock.json | 6 +++--- src/React.Core/Resources/babel-legacy/package.json | 2 +- src/React.Core/package-lock.json | 6 +++--- src/React.Core/package.json | 2 +- src/React.Sample.Webpack.CoreMvc/package-lock.json | 6 +++--- src/React.Sample.Webpack.CoreMvc/package.json | 2 +- 6 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/React.Core/Resources/babel-legacy/package-lock.json b/src/React.Core/Resources/babel-legacy/package-lock.json index 5fc41e424..5e1996c77 100644 --- a/src/React.Core/Resources/babel-legacy/package-lock.json +++ b/src/React.Core/Resources/babel-legacy/package-lock.json @@ -5116,9 +5116,9 @@ } }, "webpack": { - "version": "4.41.4", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.41.4.tgz", - "integrity": "sha512-Lc+2uB6NjpCWsHI3trkoISOI64h9QYIXenbEWj3bn3oyjfB1lEBXjWAfAyY2sM0rZn41oD5V91OLwKRwS6Wp8Q==", + "version": "4.41.5", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.41.5.tgz", + "integrity": "sha512-wp0Co4vpyumnp3KlkmpM5LWuzvZYayDwM2n17EHFr4qxBBbRokC7DJawPJC7TfSFZ9HZ6GsdH40EBj4UV0nmpw==", "dev": true, "requires": { "@webassemblyjs/ast": "1.8.5", diff --git a/src/React.Core/Resources/babel-legacy/package.json b/src/React.Core/Resources/babel-legacy/package.json index df338a7f3..ab1f6caf8 100644 --- a/src/React.Core/Resources/babel-legacy/package.json +++ b/src/React.Core/Resources/babel-legacy/package.json @@ -12,7 +12,7 @@ "babel-preset-es2015": "6.24.1", "babel-preset-stage-0": "6.24.1", "babel-standalone": "6.26.0", - "webpack": "4.41.4", + "webpack": "4.41.5", "webpack-cli": "3.3.10" }, "author": "", diff --git a/src/React.Core/package-lock.json b/src/React.Core/package-lock.json index f54c36e61..8dd50c6bd 100644 --- a/src/React.Core/package-lock.json +++ b/src/React.Core/package-lock.json @@ -4341,9 +4341,9 @@ } }, "webpack": { - "version": "4.41.4", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.41.4.tgz", - "integrity": "sha512-Lc+2uB6NjpCWsHI3trkoISOI64h9QYIXenbEWj3bn3oyjfB1lEBXjWAfAyY2sM0rZn41oD5V91OLwKRwS6Wp8Q==", + "version": "4.41.5", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.41.5.tgz", + "integrity": "sha512-wp0Co4vpyumnp3KlkmpM5LWuzvZYayDwM2n17EHFr4qxBBbRokC7DJawPJC7TfSFZ9HZ6GsdH40EBj4UV0nmpw==", "dev": true, "requires": { "@webassemblyjs/ast": "1.8.5", diff --git a/src/React.Core/package.json b/src/React.Core/package.json index 10627b90a..9e8bb6e75 100644 --- a/src/React.Core/package.json +++ b/src/React.Core/package.json @@ -11,7 +11,7 @@ "prop-types": "15.7.2", "react": "16.12.0", "react-dom": "16.12.0", - "webpack": "4.41.4", + "webpack": "4.41.5", "webpack-cli": "3.3.10" } } diff --git a/src/React.Sample.Webpack.CoreMvc/package-lock.json b/src/React.Sample.Webpack.CoreMvc/package-lock.json index f9f4b55e2..9bcbd2063 100644 --- a/src/React.Sample.Webpack.CoreMvc/package-lock.json +++ b/src/React.Sample.Webpack.CoreMvc/package-lock.json @@ -7057,9 +7057,9 @@ } }, "webpack": { - "version": "4.41.4", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.41.4.tgz", - "integrity": "sha512-Lc+2uB6NjpCWsHI3trkoISOI64h9QYIXenbEWj3bn3oyjfB1lEBXjWAfAyY2sM0rZn41oD5V91OLwKRwS6Wp8Q==", + "version": "4.41.5", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.41.5.tgz", + "integrity": "sha512-wp0Co4vpyumnp3KlkmpM5LWuzvZYayDwM2n17EHFr4qxBBbRokC7DJawPJC7TfSFZ9HZ6GsdH40EBj4UV0nmpw==", "dev": true, "requires": { "@webassemblyjs/ast": "1.8.5", diff --git a/src/React.Sample.Webpack.CoreMvc/package.json b/src/React.Sample.Webpack.CoreMvc/package.json index e714a0408..c16eb8a9c 100644 --- a/src/React.Sample.Webpack.CoreMvc/package.json +++ b/src/React.Sample.Webpack.CoreMvc/package.json @@ -28,7 +28,7 @@ "@babel/preset-react": "7.7.4", "babel-loader": "8.0.6", "babel-runtime": "6.26.0", - "webpack": "4.41.4", + "webpack": "4.41.5", "webpack-cli": "3.3.10" } } From 2667de3da1ef066c8825f193cb02977f4093e54b Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Thu, 16 Jan 2020 21:25:12 +0000 Subject: [PATCH 360/530] Update dependency typescript to v3.7.5 --- src/React.Sample.Mvc4/package-lock.json | 6 +++--- src/React.Sample.Mvc4/package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/React.Sample.Mvc4/package-lock.json b/src/React.Sample.Mvc4/package-lock.json index 6f63e479b..3fda63980 100644 --- a/src/React.Sample.Mvc4/package-lock.json +++ b/src/React.Sample.Mvc4/package-lock.json @@ -52,9 +52,9 @@ "dev": true }, "typescript": { - "version": "3.7.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.7.4.tgz", - "integrity": "sha512-A25xv5XCtarLwXpcDNZzCGvW2D1S3/bACratYBx2sax8PefsFhlYmkQicKHvpYflFS8if4zne5zT5kpJ7pzuvw==", + "version": "3.7.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.7.5.tgz", + "integrity": "sha512-/P5lkRXkWHNAbcJIiHPfRoKqyd7bsyCma1hZNUGfn20qm64T6ZBlrzprymeu918H+mB/0rIg2gGK/BXkhhYgBw==", "dev": true } } diff --git a/src/React.Sample.Mvc4/package.json b/src/React.Sample.Mvc4/package.json index 6a44d39de..e9850d594 100644 --- a/src/React.Sample.Mvc4/package.json +++ b/src/React.Sample.Mvc4/package.json @@ -10,6 +10,6 @@ "@types/react": "16.9.17", "@types/react-dom": "16.9.4", "@types/reactstrap": "8.0.6", - "typescript": "3.7.4" + "typescript": "3.7.5" } } From 2c4a23bdb0cdcea6e3d13fa5d5ad6e635485c637 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Tue, 21 Jan 2020 01:11:27 +0000 Subject: [PATCH 361/530] Update dependency @types/react-dom to v16.9.5 --- src/React.Sample.Mvc4/package-lock.json | 6 +++--- src/React.Sample.Mvc4/package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/React.Sample.Mvc4/package-lock.json b/src/React.Sample.Mvc4/package-lock.json index 3fda63980..7a68b2e88 100644 --- a/src/React.Sample.Mvc4/package-lock.json +++ b/src/React.Sample.Mvc4/package-lock.json @@ -21,9 +21,9 @@ } }, "@types/react-dom": { - "version": "16.9.4", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-16.9.4.tgz", - "integrity": "sha512-fya9xteU/n90tda0s+FtN5Ym4tbgxpq/hb/Af24dvs6uYnYn+fspaxw5USlw0R8apDNwxsqumdRoCoKitckQqw==", + "version": "16.9.5", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-16.9.5.tgz", + "integrity": "sha512-BX6RQ8s9D+2/gDhxrj8OW+YD4R+8hj7FEM/OJHGNR0KipE1h1mSsf39YeyC81qafkq+N3rU3h3RFbLSwE5VqUg==", "dev": true, "requires": { "@types/react": "*" diff --git a/src/React.Sample.Mvc4/package.json b/src/React.Sample.Mvc4/package.json index e9850d594..4c70a13d1 100644 --- a/src/React.Sample.Mvc4/package.json +++ b/src/React.Sample.Mvc4/package.json @@ -8,7 +8,7 @@ }, "devDependencies": { "@types/react": "16.9.17", - "@types/react-dom": "16.9.4", + "@types/react-dom": "16.9.5", "@types/reactstrap": "8.0.6", "typescript": "3.7.5" } From 6e025685608cc50158585cdf9053748df8f9271d Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Tue, 21 Jan 2020 15:23:07 +0000 Subject: [PATCH 362/530] Update dependency @types/react to v16.9.18 --- src/React.Sample.Mvc4/package-lock.json | 6 +++--- src/React.Sample.Mvc4/package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/React.Sample.Mvc4/package-lock.json b/src/React.Sample.Mvc4/package-lock.json index 7a68b2e88..2c7e3f1a7 100644 --- a/src/React.Sample.Mvc4/package-lock.json +++ b/src/React.Sample.Mvc4/package-lock.json @@ -11,9 +11,9 @@ "dev": true }, "@types/react": { - "version": "16.9.17", - "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.17.tgz", - "integrity": "sha512-UP27In4fp4sWF5JgyV6pwVPAQM83Fj76JOcg02X5BZcpSu5Wx+fP9RMqc2v0ssBoQIFvD5JdKY41gjJJKmw6Bg==", + "version": "16.9.18", + "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.18.tgz", + "integrity": "sha512-MvjiKX/kUE8o49ipppg49RDZ97p4XfW1WWksp/UlTUSJpisyhzd62pZAMXxAscFLoxfYOflkGANAnGkSeHTFQg==", "dev": true, "requires": { "@types/prop-types": "*", diff --git a/src/React.Sample.Mvc4/package.json b/src/React.Sample.Mvc4/package.json index 4c70a13d1..096225222 100644 --- a/src/React.Sample.Mvc4/package.json +++ b/src/React.Sample.Mvc4/package.json @@ -7,7 +7,7 @@ "lint:ts": "tsc" }, "devDependencies": { - "@types/react": "16.9.17", + "@types/react": "16.9.18", "@types/react-dom": "16.9.5", "@types/reactstrap": "8.0.6", "typescript": "3.7.5" From 070d13cc6d1b826d9b6fa3e4ad003d5794f32485 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Wed, 22 Jan 2020 17:39:53 +0000 Subject: [PATCH 363/530] Update dependency @types/react to v16.9.19 --- src/React.Sample.Mvc4/package-lock.json | 6 +++--- src/React.Sample.Mvc4/package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/React.Sample.Mvc4/package-lock.json b/src/React.Sample.Mvc4/package-lock.json index 2c7e3f1a7..cf1ce459a 100644 --- a/src/React.Sample.Mvc4/package-lock.json +++ b/src/React.Sample.Mvc4/package-lock.json @@ -11,9 +11,9 @@ "dev": true }, "@types/react": { - "version": "16.9.18", - "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.18.tgz", - "integrity": "sha512-MvjiKX/kUE8o49ipppg49RDZ97p4XfW1WWksp/UlTUSJpisyhzd62pZAMXxAscFLoxfYOflkGANAnGkSeHTFQg==", + "version": "16.9.19", + "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.19.tgz", + "integrity": "sha512-LJV97//H+zqKWMms0kvxaKYJDG05U2TtQB3chRLF8MPNs+MQh/H1aGlyDUxjaHvu08EAGerdX2z4LTBc7ns77A==", "dev": true, "requires": { "@types/prop-types": "*", diff --git a/src/React.Sample.Mvc4/package.json b/src/React.Sample.Mvc4/package.json index 096225222..1daa6962e 100644 --- a/src/React.Sample.Mvc4/package.json +++ b/src/React.Sample.Mvc4/package.json @@ -7,7 +7,7 @@ "lint:ts": "tsc" }, "devDependencies": { - "@types/react": "16.9.18", + "@types/react": "16.9.19", "@types/react-dom": "16.9.5", "@types/reactstrap": "8.0.6", "typescript": "3.7.5" From 7a9935b807e0af4ad4f0c7300cbf62964f4081e7 Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Fri, 31 Jan 2020 20:44:26 -0800 Subject: [PATCH 364/530] Update .NET Core sample to 3.1 (#1020) * Update .NET Core sample to 3.1 * Update azure-pipelines.yml * Update azure-pipelines.yml * Update global.json --- azure-pipelines.yml | 2 +- global.json | 2 +- .../React.Sample.Webpack.CoreMvc.csproj | 4 ++-- src/React.Sample.Webpack.CoreMvc/Startup.cs | 11 ----------- 4 files changed, 4 insertions(+), 15 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 995ec531e..cc4860db2 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -19,7 +19,7 @@ steps: - task: DotNetCoreInstaller@0 inputs: packageType: 'sdk' - version: '3.0.100' + version: '3.1.100' - task: VSBuild@1 inputs: diff --git a/global.json b/global.json index d96e311f9..f04b5f9c8 100644 --- a/global.json +++ b/global.json @@ -1,6 +1,6 @@ { "projects": [ "src", "test" ], "sdk": { - "version": "3.0.100-preview" + "version": "3.1.100" } } diff --git a/src/React.Sample.Webpack.CoreMvc/React.Sample.Webpack.CoreMvc.csproj b/src/React.Sample.Webpack.CoreMvc/React.Sample.Webpack.CoreMvc.csproj index 8cf82f9b6..25b04b110 100644 --- a/src/React.Sample.Webpack.CoreMvc/React.Sample.Webpack.CoreMvc.csproj +++ b/src/React.Sample.Webpack.CoreMvc/React.Sample.Webpack.CoreMvc.csproj @@ -1,12 +1,12 @@  - netcoreapp2.2;netcoreapp3.0 + netcoreapp3.1 - + diff --git a/src/React.Sample.Webpack.CoreMvc/Startup.cs b/src/React.Sample.Webpack.CoreMvc/Startup.cs index 837039fab..e20fe016b 100644 --- a/src/React.Sample.Webpack.CoreMvc/Startup.cs +++ b/src/React.Sample.Webpack.CoreMvc/Startup.cs @@ -1,8 +1,6 @@ -using System; using JavaScriptEngineSwitcher.ChakraCore; using JavaScriptEngineSwitcher.Extensions.MsDependencyInjection; using Microsoft.AspNetCore.Builder; -using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Http; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; @@ -51,7 +49,6 @@ public void Configure(IApplicationBuilder app) app.UseStaticFiles(); -#if NETCOREAPP3_0 app.UseRouting(); app.UseEndpoints(endpoints => @@ -60,14 +57,6 @@ public void Configure(IApplicationBuilder app) endpoints.MapControllerRoute("comments-root", "comments", new { controller = "Home", action = "Index" }); endpoints.MapControllerRoute("comments", "comments/page-{page}", new { controller = "Home", action = "Comments" }); }); -#else - app.UseMvc(routes => - { - routes.MapRoute("default", "{path?}", new { controller = "Home", action = "Index" }); - routes.MapRoute("comments-root", "comments", new { controller = "Home", action = "Index" }); - routes.MapRoute("comments", "comments/page-{page}", new { controller = "Home", action = "Comments" }); - }); -#endif } } } From dc4e4a262157ab01872c21f9b7e0c3cf467b4b9b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 5 Feb 2020 05:57:44 -1000 Subject: [PATCH 365/530] Update dependency Octokit to v0.37.0 (#1023) Co-authored-by: WhiteSource Renovate --- webhooks/React.Site.Hooks.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/webhooks/React.Site.Hooks.csproj b/webhooks/React.Site.Hooks.csproj index 7c495bc79..e62f3e883 100644 --- a/webhooks/React.Site.Hooks.csproj +++ b/webhooks/React.Site.Hooks.csproj @@ -4,7 +4,7 @@ - + From f1d1212752d3561018472a3b9f8cc8ae532ac939 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 5 Feb 2020 05:58:09 -1000 Subject: [PATCH 366/530] Bump rack from 1.6.5 to 1.6.12 in /site/jekyll (#997) Bumps [rack](https://github.com/rack/rack) from 1.6.5 to 1.6.12. - [Release notes](https://github.com/rack/rack/releases) - [Changelog](https://github.com/rack/rack/blob/master/CHANGELOG.md) - [Commits](https://github.com/rack/rack/compare/1.6.5...1.6.12) Signed-off-by: dependabot[bot] --- site/jekyll/Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site/jekyll/Gemfile.lock b/site/jekyll/Gemfile.lock index 6145bde92..8392e8af8 100644 --- a/site/jekyll/Gemfile.lock +++ b/site/jekyll/Gemfile.lock @@ -53,7 +53,7 @@ GEM pygments.rb (0.5.4) posix-spawn (~> 0.3.6) yajl-ruby (~> 1.1.0) - rack (1.6.5) + rack (1.6.12) rb-fsevent (0.9.8) rb-inotify (0.9.8) ffi (>= 0.5.0) From b040f97112d3bb7ddf914fc6772e03d138b2253e Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Tue, 11 Feb 2020 10:21:52 +0000 Subject: [PATCH 367/530] Update dependency webpack to v4.41.6 --- .../Resources/babel-legacy/package-lock.json | 38 ++++++------- .../Resources/babel-legacy/package.json | 2 +- src/React.Core/package-lock.json | 44 +++++++-------- src/React.Core/package.json | 2 +- .../package-lock.json | 56 +++++++++---------- src/React.Sample.Webpack.CoreMvc/package.json | 2 +- 6 files changed, 72 insertions(+), 72 deletions(-) diff --git a/src/React.Core/Resources/babel-legacy/package-lock.json b/src/React.Core/Resources/babel-legacy/package-lock.json index 5e1996c77..fb7a4c33e 100644 --- a/src/React.Core/Resources/babel-legacy/package-lock.json +++ b/src/React.Core/Resources/babel-legacy/package-lock.json @@ -199,12 +199,12 @@ "dev": true }, "ajv": { - "version": "6.10.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz", - "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==", + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.11.0.tgz", + "integrity": "sha512-nCprB/0syFYy9fVYU1ox1l2KN8S9I+tziH8D4zdZuLT3N6RMlGSGt5FSTpAiHB/Whv8Qs1cWHma1aMKZyaHRKA==", "dev": true, "requires": { - "fast-deep-equal": "^2.0.1", + "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" @@ -2112,9 +2112,9 @@ "dev": true }, "events": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.0.0.tgz", - "integrity": "sha512-Dc381HFWJzEOhQ+d8pkNon++bk9h6cdAoAj4iE6Q4y6xgTzySWXlKn05/TVNpjnfRqi/X0EpJEJohPjNI3zpVA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.1.0.tgz", + "integrity": "sha512-Rv+u8MLHNOdMjTAFeT3nCjHn2aGlx435FP/sDHNaRhDEMwyI/aB22Kj2qIN8R0cw3z28psEQLYwxVKLsKrMgWg==", "dev": true }, "evp_bytestokey": { @@ -2273,9 +2273,9 @@ } }, "fast-deep-equal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz", + "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==", "dev": true }, "fast-json-stable-stringify": { @@ -3974,9 +3974,9 @@ "dev": true }, "pako": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.10.tgz", - "integrity": "sha512-0DTvPVU3ed8+HNXOu5Bs+o//Mbdj9VNQMUOe9oKCwh8l0GNwpTDMKCWbRjgtD291AWnkAgkqA/LOnQS8AmS1tw==", + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", "dev": true }, "parallel-transform": { @@ -4799,9 +4799,9 @@ "dev": true }, "terser": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.4.3.tgz", - "integrity": "sha512-0ikKraVtRDKGzHrzkCv5rUNDzqlhmhowOBqC0XqUHFpW+vJ45+20/IFBcebwKfiS2Z9fJin6Eo+F1zLZsxi8RA==", + "version": "4.6.3", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.6.3.tgz", + "integrity": "sha512-Lw+ieAXmY69d09IIc/yqeBqXpEQIpDGZqT34ui1QWXIUpR2RjbqEkT8X7Lgex19hslSqcWM5iMN2kM11eMsESQ==", "dev": true, "requires": { "commander": "^2.20.0", @@ -5116,9 +5116,9 @@ } }, "webpack": { - "version": "4.41.5", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.41.5.tgz", - "integrity": "sha512-wp0Co4vpyumnp3KlkmpM5LWuzvZYayDwM2n17EHFr4qxBBbRokC7DJawPJC7TfSFZ9HZ6GsdH40EBj4UV0nmpw==", + "version": "4.41.6", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.41.6.tgz", + "integrity": "sha512-yxXfV0Zv9WMGRD+QexkZzmGIh54bsvEs+9aRWxnN8erLWEOehAKUTeNBoUbA6HPEZPlRo7KDi2ZcNveoZgK9MA==", "dev": true, "requires": { "@webassemblyjs/ast": "1.8.5", diff --git a/src/React.Core/Resources/babel-legacy/package.json b/src/React.Core/Resources/babel-legacy/package.json index ab1f6caf8..c8a2e6379 100644 --- a/src/React.Core/Resources/babel-legacy/package.json +++ b/src/React.Core/Resources/babel-legacy/package.json @@ -12,7 +12,7 @@ "babel-preset-es2015": "6.24.1", "babel-preset-stage-0": "6.24.1", "babel-standalone": "6.26.0", - "webpack": "4.41.5", + "webpack": "4.41.6", "webpack-cli": "3.3.10" }, "author": "", diff --git a/src/React.Core/package-lock.json b/src/React.Core/package-lock.json index 8dd50c6bd..79f50d944 100644 --- a/src/React.Core/package-lock.json +++ b/src/React.Core/package-lock.json @@ -386,12 +386,12 @@ "dev": true }, "ajv": { - "version": "6.10.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz", - "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==", + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.11.0.tgz", + "integrity": "sha512-nCprB/0syFYy9fVYU1ox1l2KN8S9I+tziH8D4zdZuLT3N6RMlGSGt5FSTpAiHB/Whv8Qs1cWHma1aMKZyaHRKA==", "dev": true, "requires": { - "fast-deep-equal": "^2.0.1", + "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" @@ -1370,9 +1370,9 @@ "dev": true }, "events": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.0.0.tgz", - "integrity": "sha512-Dc381HFWJzEOhQ+d8pkNon++bk9h6cdAoAj4iE6Q4y6xgTzySWXlKn05/TVNpjnfRqi/X0EpJEJohPjNI3zpVA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.1.0.tgz", + "integrity": "sha512-Rv+u8MLHNOdMjTAFeT3nCjHn2aGlx435FP/sDHNaRhDEMwyI/aB22Kj2qIN8R0cw3z28psEQLYwxVKLsKrMgWg==", "dev": true }, "evp_bytestokey": { @@ -1531,9 +1531,9 @@ } }, "fast-deep-equal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz", + "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==", "dev": true }, "fast-json-stable-stringify": { @@ -3194,9 +3194,9 @@ "dev": true }, "pako": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.10.tgz", - "integrity": "sha512-0DTvPVU3ed8+HNXOu5Bs+o//Mbdj9VNQMUOe9oKCwh8l0GNwpTDMKCWbRjgtD291AWnkAgkqA/LOnQS8AmS1tw==", + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", "dev": true }, "parallel-transform": { @@ -3496,9 +3496,9 @@ "dev": true }, "readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", "dev": true, "requires": { "core-util-is": "~1.0.0", @@ -4047,9 +4047,9 @@ "dev": true }, "terser": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.4.3.tgz", - "integrity": "sha512-0ikKraVtRDKGzHrzkCv5rUNDzqlhmhowOBqC0XqUHFpW+vJ45+20/IFBcebwKfiS2Z9fJin6Eo+F1zLZsxi8RA==", + "version": "4.6.3", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.6.3.tgz", + "integrity": "sha512-Lw+ieAXmY69d09IIc/yqeBqXpEQIpDGZqT34ui1QWXIUpR2RjbqEkT8X7Lgex19hslSqcWM5iMN2kM11eMsESQ==", "dev": true, "requires": { "commander": "^2.20.0", @@ -4341,9 +4341,9 @@ } }, "webpack": { - "version": "4.41.5", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.41.5.tgz", - "integrity": "sha512-wp0Co4vpyumnp3KlkmpM5LWuzvZYayDwM2n17EHFr4qxBBbRokC7DJawPJC7TfSFZ9HZ6GsdH40EBj4UV0nmpw==", + "version": "4.41.6", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.41.6.tgz", + "integrity": "sha512-yxXfV0Zv9WMGRD+QexkZzmGIh54bsvEs+9aRWxnN8erLWEOehAKUTeNBoUbA6HPEZPlRo7KDi2ZcNveoZgK9MA==", "dev": true, "requires": { "@webassemblyjs/ast": "1.8.5", diff --git a/src/React.Core/package.json b/src/React.Core/package.json index 9e8bb6e75..ae2d33045 100644 --- a/src/React.Core/package.json +++ b/src/React.Core/package.json @@ -11,7 +11,7 @@ "prop-types": "15.7.2", "react": "16.12.0", "react-dom": "16.12.0", - "webpack": "4.41.5", + "webpack": "4.41.6", "webpack-cli": "3.3.10" } } diff --git a/src/React.Sample.Webpack.CoreMvc/package-lock.json b/src/React.Sample.Webpack.CoreMvc/package-lock.json index 9bcbd2063..32c37001b 100644 --- a/src/React.Sample.Webpack.CoreMvc/package-lock.json +++ b/src/React.Sample.Webpack.CoreMvc/package-lock.json @@ -1774,12 +1774,12 @@ "dev": true }, "ajv": { - "version": "6.10.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz", - "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==", + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.11.0.tgz", + "integrity": "sha512-nCprB/0syFYy9fVYU1ox1l2KN8S9I+tziH8D4zdZuLT3N6RMlGSGt5FSTpAiHB/Whv8Qs1cWHma1aMKZyaHRKA==", "dev": true, "requires": { - "fast-deep-equal": "^2.0.1", + "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" @@ -3025,9 +3025,9 @@ "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=" }, "events": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.0.0.tgz", - "integrity": "sha512-Dc381HFWJzEOhQ+d8pkNon++bk9h6cdAoAj4iE6Q4y6xgTzySWXlKn05/TVNpjnfRqi/X0EpJEJohPjNI3zpVA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.1.0.tgz", + "integrity": "sha512-Rv+u8MLHNOdMjTAFeT3nCjHn2aGlx435FP/sDHNaRhDEMwyI/aB22Kj2qIN8R0cw3z28psEQLYwxVKLsKrMgWg==", "dev": true }, "evp_bytestokey": { @@ -3191,9 +3191,9 @@ } }, "fast-deep-equal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz", + "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==", "dev": true }, "fast-json-stable-stringify": { @@ -3319,9 +3319,9 @@ "dev": true }, "readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", "dev": true, "requires": { "core-util-is": "~1.0.0", @@ -4886,9 +4886,9 @@ "dev": true }, "readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", "dev": true, "requires": { "core-util-is": "~1.0.0", @@ -5253,9 +5253,9 @@ "dev": true }, "pako": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.10.tgz", - "integrity": "sha512-0DTvPVU3ed8+HNXOu5Bs+o//Mbdj9VNQMUOe9oKCwh8l0GNwpTDMKCWbRjgtD291AWnkAgkqA/LOnQS8AmS1tw==", + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", "dev": true }, "parallel-transform": { @@ -6488,9 +6488,9 @@ "dev": true }, "readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", "dev": true, "requires": { "core-util-is": "~1.0.0", @@ -6621,9 +6621,9 @@ "dev": true }, "terser": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.4.3.tgz", - "integrity": "sha512-0ikKraVtRDKGzHrzkCv5rUNDzqlhmhowOBqC0XqUHFpW+vJ45+20/IFBcebwKfiS2Z9fJin6Eo+F1zLZsxi8RA==", + "version": "4.6.3", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.6.3.tgz", + "integrity": "sha512-Lw+ieAXmY69d09IIc/yqeBqXpEQIpDGZqT34ui1QWXIUpR2RjbqEkT8X7Lgex19hslSqcWM5iMN2kM11eMsESQ==", "dev": true, "requires": { "commander": "^2.20.0", @@ -7057,9 +7057,9 @@ } }, "webpack": { - "version": "4.41.5", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.41.5.tgz", - "integrity": "sha512-wp0Co4vpyumnp3KlkmpM5LWuzvZYayDwM2n17EHFr4qxBBbRokC7DJawPJC7TfSFZ9HZ6GsdH40EBj4UV0nmpw==", + "version": "4.41.6", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.41.6.tgz", + "integrity": "sha512-yxXfV0Zv9WMGRD+QexkZzmGIh54bsvEs+9aRWxnN8erLWEOehAKUTeNBoUbA6HPEZPlRo7KDi2ZcNveoZgK9MA==", "dev": true, "requires": { "@webassemblyjs/ast": "1.8.5", diff --git a/src/React.Sample.Webpack.CoreMvc/package.json b/src/React.Sample.Webpack.CoreMvc/package.json index c16eb8a9c..e2b73a5eb 100644 --- a/src/React.Sample.Webpack.CoreMvc/package.json +++ b/src/React.Sample.Webpack.CoreMvc/package.json @@ -28,7 +28,7 @@ "@babel/preset-react": "7.7.4", "babel-loader": "8.0.6", "babel-runtime": "6.26.0", - "webpack": "4.41.5", + "webpack": "4.41.6", "webpack-cli": "3.3.10" } } From f1423e4ac9ab275b111c3d4f743fd4a24ef181df Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Tue, 11 Feb 2020 19:26:19 +0000 Subject: [PATCH 368/530] Update dependency webpack-cli to v3.3.11 --- src/React.Core/Resources/babel-legacy/package-lock.json | 6 +++--- src/React.Core/Resources/babel-legacy/package.json | 2 +- src/React.Core/package-lock.json | 6 +++--- src/React.Core/package.json | 2 +- src/React.Sample.Webpack.CoreMvc/package-lock.json | 6 +++--- src/React.Sample.Webpack.CoreMvc/package.json | 2 +- 6 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/React.Core/Resources/babel-legacy/package-lock.json b/src/React.Core/Resources/babel-legacy/package-lock.json index fb7a4c33e..d0f593bb4 100644 --- a/src/React.Core/Resources/babel-legacy/package-lock.json +++ b/src/React.Core/Resources/babel-legacy/package-lock.json @@ -5155,9 +5155,9 @@ } }, "webpack-cli": { - "version": "3.3.10", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.10.tgz", - "integrity": "sha512-u1dgND9+MXaEt74sJR4PR7qkPxXUSQ0RXYq8x1L6Jg1MYVEmGPrH6Ah6C4arD4r0J1P5HKjRqpab36k0eIzPqg==", + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.11.tgz", + "integrity": "sha512-dXlfuml7xvAFwYUPsrtQAA9e4DOe58gnzSxhgrO/ZM/gyXTBowrsYeubyN4mqGhYdpXMFNyQ6emjJS9M7OBd4g==", "dev": true, "requires": { "chalk": "2.4.2", diff --git a/src/React.Core/Resources/babel-legacy/package.json b/src/React.Core/Resources/babel-legacy/package.json index c8a2e6379..94b6edf83 100644 --- a/src/React.Core/Resources/babel-legacy/package.json +++ b/src/React.Core/Resources/babel-legacy/package.json @@ -13,7 +13,7 @@ "babel-preset-stage-0": "6.24.1", "babel-standalone": "6.26.0", "webpack": "4.41.6", - "webpack-cli": "3.3.10" + "webpack-cli": "3.3.11" }, "author": "", "license": "MIT" diff --git a/src/React.Core/package-lock.json b/src/React.Core/package-lock.json index 79f50d944..7d9e9b84a 100644 --- a/src/React.Core/package-lock.json +++ b/src/React.Core/package-lock.json @@ -4380,9 +4380,9 @@ } }, "webpack-cli": { - "version": "3.3.10", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.10.tgz", - "integrity": "sha512-u1dgND9+MXaEt74sJR4PR7qkPxXUSQ0RXYq8x1L6Jg1MYVEmGPrH6Ah6C4arD4r0J1P5HKjRqpab36k0eIzPqg==", + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.11.tgz", + "integrity": "sha512-dXlfuml7xvAFwYUPsrtQAA9e4DOe58gnzSxhgrO/ZM/gyXTBowrsYeubyN4mqGhYdpXMFNyQ6emjJS9M7OBd4g==", "dev": true, "requires": { "chalk": "2.4.2", diff --git a/src/React.Core/package.json b/src/React.Core/package.json index ae2d33045..b1377a1e5 100644 --- a/src/React.Core/package.json +++ b/src/React.Core/package.json @@ -12,6 +12,6 @@ "react": "16.12.0", "react-dom": "16.12.0", "webpack": "4.41.6", - "webpack-cli": "3.3.10" + "webpack-cli": "3.3.11" } } diff --git a/src/React.Sample.Webpack.CoreMvc/package-lock.json b/src/React.Sample.Webpack.CoreMvc/package-lock.json index 32c37001b..e50cf6f59 100644 --- a/src/React.Sample.Webpack.CoreMvc/package-lock.json +++ b/src/React.Sample.Webpack.CoreMvc/package-lock.json @@ -7128,9 +7128,9 @@ } }, "webpack-cli": { - "version": "3.3.10", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.10.tgz", - "integrity": "sha512-u1dgND9+MXaEt74sJR4PR7qkPxXUSQ0RXYq8x1L6Jg1MYVEmGPrH6Ah6C4arD4r0J1P5HKjRqpab36k0eIzPqg==", + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.11.tgz", + "integrity": "sha512-dXlfuml7xvAFwYUPsrtQAA9e4DOe58gnzSxhgrO/ZM/gyXTBowrsYeubyN4mqGhYdpXMFNyQ6emjJS9M7OBd4g==", "dev": true, "requires": { "chalk": "2.4.2", diff --git a/src/React.Sample.Webpack.CoreMvc/package.json b/src/React.Sample.Webpack.CoreMvc/package.json index e2b73a5eb..f7cddd577 100644 --- a/src/React.Sample.Webpack.CoreMvc/package.json +++ b/src/React.Sample.Webpack.CoreMvc/package.json @@ -29,6 +29,6 @@ "babel-loader": "8.0.6", "babel-runtime": "6.26.0", "webpack": "4.41.6", - "webpack-cli": "3.3.10" + "webpack-cli": "3.3.11" } } From 45d7a6afc6d8134c1b09c5237b60ef3b9c3d3e58 Mon Sep 17 00:00:00 2001 From: Rob Smith Date: Tue, 11 Feb 2020 23:42:03 -0500 Subject: [PATCH 369/530] Update .NET Core tutorial for .NET Core 3.1 and VS 2019 (#1025) * Update .NET Core tutorial for .NET Core 3.1 and VS 2019 * Fix a couple image paths in tutorial Co-authored-by: Dustin Masters --- site/jekyll/img/tutorial/helloworld-2019.png | Bin 0 -> 13707 bytes site/jekyll/img/tutorial/new_webapp.png | Bin 10482 -> 0 bytes site/jekyll/img/tutorial/new_webapp_2019.png | Bin 0 -> 40950 bytes site/jekyll/img/tutorial/new_webapp_600.png | Bin 17623 -> 0 bytes .../img/tutorial/new_webapp_600_2019.png | Bin 0 -> 56148 bytes site/jekyll/img/tutorial/nuget_core.png | Bin 22670 -> 0 bytes site/jekyll/img/tutorial/nuget_core_2019.png | Bin 0 -> 100065 bytes site/jekyll/img/tutorial/nuget_core_650.png | Bin 36255 -> 0 bytes .../img/tutorial/nuget_core_650_2019.png | Bin 0 -> 135436 bytes site/jekyll/tutorials/aspnetcore.md | 211 ++++++++++-------- 10 files changed, 122 insertions(+), 89 deletions(-) create mode 100644 site/jekyll/img/tutorial/helloworld-2019.png delete mode 100644 site/jekyll/img/tutorial/new_webapp.png create mode 100644 site/jekyll/img/tutorial/new_webapp_2019.png delete mode 100644 site/jekyll/img/tutorial/new_webapp_600.png create mode 100644 site/jekyll/img/tutorial/new_webapp_600_2019.png delete mode 100644 site/jekyll/img/tutorial/nuget_core.png create mode 100644 site/jekyll/img/tutorial/nuget_core_2019.png delete mode 100644 site/jekyll/img/tutorial/nuget_core_650.png create mode 100644 site/jekyll/img/tutorial/nuget_core_650_2019.png diff --git a/site/jekyll/img/tutorial/helloworld-2019.png b/site/jekyll/img/tutorial/helloworld-2019.png new file mode 100644 index 0000000000000000000000000000000000000000..6a760ff34407ee5849a42bcb2a36d0676798faec GIT binary patch literal 13707 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 literal 0 HcmV?d00001 diff --git a/site/jekyll/img/tutorial/new_webapp.png b/site/jekyll/img/tutorial/new_webapp.png deleted file mode 100644 index 196b15ff746cc5e0a56367d1fb031700075f3bad..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10482 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 literal 0 HcmV?d00001 diff --git a/site/jekyll/img/tutorial/new_webapp_600.png b/site/jekyll/img/tutorial/new_webapp_600.png deleted file mode 100644 index 94246014daf0ee1ed1211b14dd4988876bcd0ae7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17623 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 MiOGxp64vwkA9xAh6951J literal 0 HcmV?d00001 diff --git a/site/jekyll/img/tutorial/nuget_core.png b/site/jekyll/img/tutorial/nuget_core.png deleted file mode 100644 index e97a20c737cedf14f25593638e9d56a8dbff16cc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22670 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 WOO*?x9mogFQW)x*>eOg~WBv=p%@#BO diff --git a/site/jekyll/img/tutorial/nuget_core_2019.png b/site/jekyll/img/tutorial/nuget_core_2019.png new file mode 100644 index 0000000000000000000000000000000000000000..3f7e5b831f5bc95303ab8a3efa28fe85ad529339 GIT binary patch literal 100065 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 VzHiYat9^VjNl`hGav^=c{|4FRlI{Qi literal 0 HcmV?d00001 diff --git a/site/jekyll/img/tutorial/nuget_core_650.png b/site/jekyll/img/tutorial/nuget_core_650.png deleted file mode 100644 index dcd18c1ffe03edd16f03dc87d95d8e9019ea1396..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 36255 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℘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

    bC7G=!<1Z1U~iK1kISe;Ttu1)$Bvt-|AMIz5ah{ zE+G?=N#{Pf*bJC(BUZ1<|M1mHxF*A}mTa1MaPju~2jL%*^ZzAc_U-qy9QC_RjM?ul zyRm-d-R=h=2%}dozy9uPb?~KOImJ-KRh~P(W}bu*IvB;1^Iq@{RjQd`=MbTc*1`{$ZE!%oZav3*8b7l zI5L^?$f;pACZ}hchTRNR_aFTMq~sB~-B+$Urbm?Sznn3DT=ktMKX3ZkAFt)Ddo2Xt zR-_iZyXCcTKUZ%%RzW>&{kBDkA#f*GCdiz%a8!z$hwp%#f!MZUT*QnG3x;?&yKyk$ zYPr*n?Q0@@oPuK02ZS+;J1CO}$I!?$0oy>ZiE|TBt$4hKf^&6UmPZD_4VtrrRr=Mp zb+oJy>tjbR=$!`b{$N?Ci;JrpyWm30{7<*!MTfWtMCT5P>o|1|8=UNCEI!iiFfI&t zvC)(p<8tcYaY63Fx8@G>^7hRdoQKkM#mB@_DKr+;ee`On<-SnTM&)*1zT%o5UaNBw2}dAezCexpchmmh+rKY{3pOnhNSvL?&CWmK!l7J_D~%!rGl1J0!*f zY`T=+ig5^@6Kdbmn1AwWNl&jr2jH#kY#Ai1N&{JOIaC~=11SPq4jB*iDl~Mi4WGjV zG*Uf=DG+es#=crd8}~}~-LH1*+y`ZO8jI^YHM;&mn8xB8m-DM)(lV}px3x~?mhP$A z_VM1^_bSzv$4e@#yLkS*h!K$+K)6;3MTZFl4C8^jqPe5Pu@Ldr;U8)&wE&61v*B>P z;{sbRobE=mZLK*Zj6r3@(D5df7R%;RR4Tm{gAC#*3>uxoX26%p5CmK6$_u(6J9}$7 zg{V^WqKGtsEuV@rNfjCbjbqE>x<>>`Z(Wd41zanJK_&T{#uO2r2rhZ%8iC|`E5`NJ zsWDx>u)6CH72@MDHWl4y75~1h+DdOVh@K%eGbWR+yre{}{p0S_(@qV8P!Ou` zODYJW&?pE3aYQVhh(%*j@L%``JNrUD1$anyuCCiQb7EQ$L2;$IrQh2^aOOB-_m%mR zC(T~_p%T7ilkvwL^EUiY6zyw&{rm0XCd@h03Jpy4$CD|bUe(c7vG?mkPD$A;W&YyH z6IN|I$Z$=x>N@)2`Np2sOY`Tx`{CywX;k7}udO;=BI(b-At5i6diV0R^QUeA4#7Fz zco0h>I2rQwN5+*an0s zT5c;GbCVr5IAVE3!iKqI&fq-t*>dOYALI?&30k{!9l)9eu%qwBWYh2oSsOHZeS6 zc+P~5!scIl;4ZV4PIdKm_F~fkzsW9H5a_x4;oJQ#4vcysx98b>f^WK4L@ z?4_e)-3Csd6z^q;h)bNfG%w0JAbs+vC;=Kz=JVaBt(@gZ7EE6;*VEJ9$DRkUTo+GB zwdV8x#Pf*oqS0JGa@Wm2z>)8K<;3OlKfXI_-m(_Q5pLYRhX@-tb|$s)O5ua%714H} zV`q75|2y)MVyfJ{aPi!QD^8cSJX=luH(^l76ps;D)N=ZZlNJ4rC!?3kl#kJ}jU|VE zyxn0rG{X6sZ?K|i%ZionpDg>I3r+gnTW^=$ujVb>zchKnTT54ba<2M*7ACd)(JhF_ zabM=&U{uQFe|B*4A#@7GuMLX-&r_*q_b{hd-W!X?qDeGD%diI-3mO;&L*8l5eNa-P)+Z&ffmjfFKUs0x_EO01B1^P$}V7o|*2NoA3Qx5*`s? z{_X;TaQj49d3oi+dAXA&eRtIS?1Fgw@6>@p)Ox$NBWvhrSLU;;0BjV?Z=$QiC8Ci|rrzkoAb1sHhczv^#lxJ_$Aav{0xrqE%A3mDLx(T(uqe z?))#iJ8{m{m#!svyG1w=zB$!)|H)II|M^x}WO|^DzEFIBYjF}gHq>%4II+L?q z+q|IS0fA{5br+9zYXGIJ>E`8&Kb^eh;2qF+{WM*feft zO2L^6zdpgXZb1E&v&SzLw2J{N8v&~3@~QL33)BwyPO)9s=ydCQ`I1=Y(5ixJxV>@p zm!Gcfy-0TEn+phw_xCZJ`}W#}6Z?3!Y_@;&py)sbokz8`r*>UCbK=Uas&+sjsgU6W zw%p&gC=gyQ)Sc%*erQaB+r1`Bg$g(CL9Iqj2@Z94i5^TXJNWhSLX(N$7Zb|B0$dk2 z$*r@>|Dg)}Z$fem9+VMI>~}p1Qb0^F`AH^0xDLKf^#AFNf~bxWfzHomYSDj+r_!mg zMr^C@h#MXX-Y?+lJN37Y6xQBrJooMOy29pDyDuC2R+v2vdc}#ecVLxz?dMJ`pr+b66bGSGJ0U3BdeyOsOZ3# zHAeRj4;*`c^`PqO`-|%Ct0h>qi#od00lBDkuEpSk7OPup#z1>c|QYv{pfuI$-#xyG!e^u6Mr zk6&a44?A@1=)QMm&;X#mx&p&bet*lfkfCdT{C0~=-xL?U^ygFgC>-kQ;Ufwb&?jLwxV`}A&Rs~O%BNoFzSE^0c1kGL7`X(HP<`d0 zVK_{s0Z$--bYw>%{pzE~IffJGjkZ zM%LY=vI~m#jSA%6y(cfcdZ`s-7sJEUiuob&KH;IB`S=m|4ewP!9h6J6{$=Ejvld*k|50h{!5 z=|dmO+v>4y(V;OxzB~rd-O&j-2SfzNdg}9UwVrRZO(HjZce6Go)A4R?TYvZmXf>5J zxX2uzpqSL^Vo{)%)5S|Sq*^^7Y}MFBhernlIr9Od{MPwPy}Y0x+h;YAfbiF2)TwV( z_u^_!i&f~jQM0$bwN`$5Tb;zpFVKbW;+iyO!M1H%hDX?Wg$L2F02PZVF8|N%B=|qW znXzPidqv^nx@KnR8KbkFxT?f4ASsypjAp%pGiD6&AR6T@1!YaY>pCGkk*As(2KSzc zGy;Q1tt)7@_qAy*Z}*FLZ?6*;oGC+LP-#NQ^PQJ?ruh5Rg0YD;l}AG zuaOej-uBd{iYA7m10?UPZ|8u3SU@XnuWIh0 zTRYn_&9b#w&cZ50z#;&8b#-mMMrWj1JM)ODx|%llo#r@ra!5dXYdgz^uW0WeaIN){ z*2Z=TEFY1^akQp2ic}7ksok=UnkJFUXO})`{b=3~#RiqQqoGyI6gYCQ>WaEnlL=(< z?X4M@hUz-G4&~tCN=5@FrKq&76OAW1J34^s?v`GxEeq99)5>*q)pb<1si+>VR&8a~ z3JT9tl$~W)9ZjHSao0d_Cpf{~9fC`65AM#vU4jR9cXvIwySp6R-5rMa&iy=V%|EEM zx~saYYCq2wvZSt56*A|g!v2<1QDMV^Bgcg>w-Sw-7WvaGuVWu;quQvPB7s@Vzqwg?o9pi|6b3Te4d@arBH#8{TyMJz7G4!(C%hSme=@a2TW^ zP*Tnr2XhOi6P@-?j3#Hu2kV?Vl~Y?e8*|%cSLbg_>eBQ^6iC`;0`Qe=7Gn3v65-u5 zX=P|lY|hfPm<+JR=IHnYXPP$1l~7n+3T|27Nz`_v25obb&bCb<%{@*n)0x;hA+w9- z&D-!!m8_}235(~;JywIgcs(&o%IGRT8&gBBh!3h$@gC}oE_uDil4d5l+MAyvooDWp z`m3xWnh5t=`oH$?QhHu)Ydx#2GG?nY1=;i;43E15Lf)Jk%hxXtjEWBya*<{EZU>@X zD0^W=|5{qi(73(E<^8-%-Bkuw=^7#t?XRn}+pe{ih`k--zi7@m6+pu_`*_}e_>l~| z!e#S&rc}MWEnZ&8>$8oe{t|e69+f#K-7TUJK~9dD*X&{;E7?BDjd|36_Jth#bR0Gw zjbC8J3v@(jpi;bUe3olPoYN}f!3)>E64O~xy~SkGu=&Kje~a5iE`sM5C9)T0eBb{H+eVY`K9t~bRAZ(c>JaNSWV;)t@>GT~D3`etC$eIw36WtGW4 z0Q-(uw< zVXe`w{at@~Fj3g7q;-iJ;~|{4pvFuA*ie|K%b=E^Q$gRMLviu12Rv=ew|@Sv z7O`Bh=)vr!s+T6+m~U2(Fe7RQEXQv zo1L1Rsd#lhX^A@&#n`2*v0`zPemiuvu%lO_`R%^|CH9c7i~Vag zSU4Vgl!xJC*n=Q{6w#@GwVuXdbTy-cV8;9!wU zU7vTj&a6v}p4avuM#0Bp)08GuPM@HogW~OAE#y9>6bLJZ4G8p5|2xa5{a2{y-aNxQ z+A%3jW_5UAi>CYqAY zC>^1H1}5SxdBgKV3491vHbzm*7OF8dR*-=dtQum9xg4-0wND&6lm$wVP$8A#9pgV|N@k9g37Ch)v+d8uy~k@F<#B zKWyqr6%)YgB|-E(@E6XlG~ee^ZoMEREw#5fHEeLNlIA>>&D48W&laWp$ipdb$TT>s zKCV)bBmcBXfdbgm?;zTEG&|{`KgqJbV|zOfzA9KovnSV zR20ERt}cKXWX2hpT$4|vw7t@vHdjFRhe z-701BRV0&we@QvA==M$m%UX@1f+VLMww{v=>?R#ODH&R^`B4Jy^W;oCrJ0{iBTQ#< zqP)rOF$D$(o$UNm!w*4)s+zK2HhQV1glT9ey+w5dP-T-GESqC^`NprXt!u3>?yF%z zLX&&7dQjqqa*Pp%v)gCu=Vt-rq9h$;WITF8%8P(ujp&{c2mc?91)`Q&r4z1*a$zV3 z275m@44ggElKoa_l*K8ETQpVD);!yLcgZ0#_gx5^wtM8gJoN$i>?@R{WN_t{iRl>- z{Hey;W=TrR47K4=hU=Xh@PGV!y21>z8pdIRhqHK_A-sc@O=GjwAK~rmI(@8afmCzHX z-(42^M=oF0BR#B1N6r(j&--;Y(qvzr-BUZmYn>vs11FGRkWYR2~dfN+dJYk*6n~#Ey6*V4dF8`=u~@)T0Ao zaF~c@JN6fsXC-@eWh83Ep?{v!_4nSU{}?&{>ck|SjdIe)1lFom#1M$SV$#bb9KXlA z=Z2KF)zZLKWV4fszc+ePUS+WYKA@yWN#{9HJ9s&VH0#Iq0&k%+(4Rd2IaA_duLm4H zzbMEdktI|ZF`xO+(%(YG37%w>ZoKx)bfP=e$@(WbHUaRjn}W|`Lh6Oz@LmRb3M=2x zgxmgLrk<0Ngp%s=w2n`;+y#rBkHp7Bx_qEn@#+k06h38H>CxIu#!f7m9evd>qx5|< zjMk+0mCRDPoo(1XN#BG(R=rtoP)oFDB5IL#QkI}mA}1(ug;O>F1()0R^}$5Xw_(cE zyXUw>0}yUgBd9n{u?SYT1C+zG!WZbQZ3q@BrY)!F(z^N|Ko@W$b+3c6!4Ocz-*;JB zY-44c-9GJIt=yB7p4@Z1AV|oC$!9%tRPq6C)l#ghv$VWO|3|ByY8+o$9o__i4Yb-? z-d?26u#_TbG208lT^zoL11!jOxabJCMGH2~UAx2@v#Q4G{?3&ucVeOX%a*v!dgTnF z4{%Xc7W+8L4i+wly_7i0YiVmJ#RaB_wN9S^Du<|m(`r;JS3A~3$G8zu4QGh2?fU9X zQ_?l@R@cN2ta@|2oLP1l3x!JM^jSQ0_6VH3>CtdFJ^Mb>p@kIsB}*Exk$&#bmrqPn z&+mbromnqXw21UGDX;sWY_Fj2Y6q5t^#(U+bx0JpRS$0c;bv@8S0cq4)dHTVilq@o zS)L_EhzVx5+v@!a&W%ptO)EaZ8YA^SuDum`2!D=O+V9#sT~`~&6~(S$BMYvpy#kh3 zN{CKvq(ArWjGl~2xLaiY?G?#K{+?XT254+3GjD+ zdEa(iN+6FhXG8TQ$>{rfRv`sVnTlww;2O00yk}l+YPP${tPtBsf!0>m zt<(8! z2{@_?%MU?m@#$z~1PWl5*2pnvCg+hxY^Xkg@1HHw?)wATd z-lb$dk*VB8z_n?>+teDddI%2|w`OwG9)`ghx9(G}5c#c?g_b(cRxZTeFGRyr6URbUwR_{%dX;agzo6ymNMw!a`(AFndINL7G{(da%niH*OG&^QQ?rDc1$B>$`)NWwk4%-1Y7EQb6`i}o9}K`F9F>4>ocPD zZW;X)tjg#ruV38YrvOpw#WQ1HJ4K;VH7CGZ7A6q>LfapPd|lS>Q!<~VMX;Pahh!M$tiq&T-XHJ8!pfbTb$2Fu8iM@59fxj#4~1xtdG2jy^flN!d3ANyZ* zNuUL@;N8`n)j*=4oG~)Nq})n8qxJfG&-@8r0QqNNkcpg$pO+7zKvs@Q;#Tl`R=u zFeqR$rce_!_?OAwp|F3R!4^Xev5#4|GQi0%wG&gr;oWHkUN6Okva;L3!K4_F&eRy# zvt_zV^RIIT4+J{Z?!omucPE?D5Z^8by91Qqg7WXepdw&HS*Rco;nOIN>hYj9&AAY{ zf;4}`ufXdg=zt|@BP6Fj`=sahHFtj_I`L)NB7=Q}3b|!ZjR1qz*VB(X*Z~v1-OUL_ zoYiSEwSx-!gsr>4-6lpzm37~nujxY3;7|SRy#va6qdW~?l^fzH3q@*QKbI>gHj{t|v{NaVd%uc}jxY#=_h@Djr+fj%@Axjemf9e@ATcC z##*wwJqHeUIunf|fNujxRQk}q{!At8Hjk-8R7!V86hj}z({t{bXjR2T16`9cWyN%6l? zhz5fi`M%I#-RJ8ek;*YDUUltMxhy_J*W|Z7+Hzy`>STVJYn&6A zV+|F%w$q_O9@nn1KDd&?w_%+e6IRiI5x4U&l6Un8C~KQF8qOGqcZAfa8x#Ne{)hDK z)NMT^?!RHe#q=7_9^aG9tOCyS2r9)&a^0rzh)ry)bbVgRFA-~5si+iESqJbE09L7p zrbq>KHhz;bKn4WZ0&&!gT0He8vpE2^9A!7ppYbcW(UiG&u3?pq{C|wDvn8+&0_z8hhtxj`qp9~jT z9QRi`n7{}$0Bf+OSSCwr{Hij& zv1|qx8wE{WbJ;W*16>BV}V}$wnQ&`A>%Fw{q0{*urN)=mb>{j zd2t(KsDM%|R%{`*HQpWb{JC1NYi@Oo5v#Wg#aIUEzg-|Jqq7WBQ6JT%4R5E>U@mau zT>uVl3gLfwTqhCoE{|>Ne5s8~F`=i;|K-GQg-BQHPxId-#Je!Sw|)N~Ncq>)lNtKb zO}yfeGl4a2UYk+-F{Fd3bU}U{LTq2|22XzFw%mO9Y!5hk#K_X9r>;(8V*Y1>`dwA< z&C-WOjle_m1$R7rO0xdm@D2KJ<~HA~PsF`}b1mLH3g~B@dha~#m$VXh#){khIrQ$d z2u}{pCJaquH64vJp<~JCdp1@D_INz6s)i{sU(3%TKHI#{5J#PMCkkHpi0Z$II%s!2 z*9ZoY!hN2lXLfMHey*J3N0q(DkMKkC3b}PC|}x@SR5@6fj-!zjS?3ydn|PdFbiX zUBlMg27gR|7ra;<&;K+9q;HM4W_NXg(pE2jFna-f>My&&Z!gcEkN3`Q6@wDlQKhuf}kw@gcdQhUu=TFuX>IO6vnW)(nMT8ycT&= z?GDdA!DQ!%4Gf4OL4zVSS&N#e?)Vsp3FWl&t=6<`x!awLL0OX1ZO{2w=C#t-t$zlJ zfJt)bCm|EZ`2S^dB89W&*1!af`UO$LL z{xCgUwQ`&yMIX*N*6&4Bn?joimnT^hgT68hO>~MQ%pTpZv-eopuI}P;YhAzN(=tHs zD{74k_5`g_xgf3FuK*n$x>jfx23LmWlBNunhX$Vok9UO0qDJ<4A~Wt0;=yw4e=vjw zi@$e5qw~7&R>{Rr=r@laAzJZrxlV#~kj%ehA5S^d0LbJ2x<=cY3*|1Dzlv&h_f(@q z__r}aK^baV%b)LGc78B#IxUwuT)VzgWqof+lfvhaNb2~LF0kbiHfD0k42jh~X$aelK-l4NqwL-RnlW;sM>A!KKSBM zW*vgxY*k7ick^0|kF1WYV&Z-^pVUm2=rnSk+n1Xw+knw*GX?s#{w1wct!kzdRMm=6 z6lyRUA&P@;;zIK=buGOnU2Ylfw$ z_8S^ZB9VyIZSo}%BOZ1VR71T)=hz<}1E@l{se%8M+HUF*qJOhTNGBO@oe^-vpM5TP zh>H_uq}kPW-Um${FTuE3>ulWLzredRF+Q2rXgC*%$z>AXcDNj+r49hBZGnf}uJ&iQ_!l;>qpO)lf7S`1+J#xwQK#UvntW9BEQbqJ*FyVwDwl7z z!+(8QGi=i{ZS62p+CGqPty&BR+_FfnHkvux9Ii#NE;Ew)O`#8MmidaWUjgA_rZRcP z2vKg`BSw zZuSkS%U|Hfq8ohGN59(><58I(2at~GdB@9dSFGQw>QRryHR4vMIEznQlXIrO_Zroj zqlr7|U4sD0)jE9McPhkfk5w{bmWvaaJpJ14%$@oTx=I{kv;yNKJxFZ7}$ER4R@@H=Wgw(3H1$|{;NG8D0_ohI?7!&q5**mDL>lwVy>0D;6(p2w zSq(i92@wp>&j;-(X&|OBsb1Xa;EsRrXoFa$`kTx z9}w@MgjTn^+!Xf#bl&+UenE!hyf%Feyu^D@K2pzfkO8K z{1Jlf?5+>=8xt{gA@bG6V$~Tq=jm+!NLrhHt^*RaA6Kcqj_v~%Q7oq6G{ulx-iMIXN!-U!t#= z6MdX(<&=Ei68C|~H7IN<-tSe@G+y0)Ora+-g8CN41(Yk#Er_&sn}327()hYRfSk!$ zwv^+UDX_5OkT<&33~yUf4zdr%lmiudj>%`MuPZ!}C0l!?tiYw8`t5Gd&BZ72Au)il zOg@g$gN|p>$3=@7`>FWzdgqV7tD?NkzD_Kr(`<)NJ+&8uG0F6)tgnq8t>OqR$*CER zO??Kzp<4o1H()2TU|Qw9Lboxef;KQWQyGot8>o)t9aKNH2Y(3n*UZR-!ai)sDEYwu zG{Yf`ik?6i+4TGcyA?{Wnb|E03^BG_uQi&W3)Fp+_=?T+1?|=JU(;>+m<=6Jh?@T> ze@+L1I=!tLAUV9AW}7!xnoJh@{kmHWV1dl;bFeWoI7}wF%^P+w%g?qSodwbL06OqY zrOC+kj?Xb+P?EnK+;?2UJ_q=fo9m?r$36pMQ5$GFF0rjWA&V}$Hhp{{jfaB$)8=-8 zrPYdzFvz0njasKeZKpV0G8kDIgKzG~<%dY!Oc_bC(u8$)jZ113K8Jw-GJ@Ba4Rhe~ z$fZ|}%jw_(gBnh83;J4fSH1T!34z$C`~E^DesY`rUogEI%fr`n&I$)#rX9a40wyUq zy%9rOFG)fDwzO|t_OEH^W+)r8cj}~QLo@9E$hy|OKV_K0Q&W37)ZgQ5t@%#w`A;Q1 z9|^NJZsi$QXPbhE86oB-=K4ZRh+r>7XFv^?e@3RmSlc^#LyfuCX-b_RqQax^J3ZgE z^ugl4N~hFHXCf2`d6je)h?252KIVY<934I_n3??D7|^+Ifkyegx^_C8m*mIjNeO6| z+HS9leubCv2!%M}OVzG7b1iXBiG+#Y+3})|`ore-za!h19c06oaJ{~JZYC8_LHC?! zF0bgV(Ex7Y5gr;lJ$7C7FT96&@fq|xy^d%1WjLkh{q}|!83yI>ZN>%FgUzC(;cpun zXRO3^d3IJ&eN(n7Iv8dLgHXbql`{F47Kn+rTW@}=^bvU3sLMV8%Har)- zg?Nhgv&IERbOHDA{D<1WHF&nmGhyK&!8OIo{pd+TMQ6v)VBozx{EE+V5~{%a3aP`> zvSI3nj#NJ~JUNzk!)XQ9(1;XDoA(2DzKkWcq}x_#1YVJWhR1NCzE2g}LplB7onicL zhxsB%IBSvsCA)%#&-JAU>6FXlAt*)Yadju{Uk@|DwZpekmLQdLUc;v@^E;l{ci)=@ zJyUyA4?hfCGcLf5wDBUEwZcm9*faKIW}CWlAIc<(NrQLSWn38}YPVR9M?rzx^>78g zq+q)h63)(X&{sK<%|}QIALSaclf&m%=3y$cO~>!xP2bZDoOob{T zGgH7JZuUPW$(iO&9ideiidRL(4Qts++_|gwD%4KC+X?kzo*JUd%e74FzEfolPwf)z zpgl~<$&bfLCwM*gV+NP+Q8c9vHUOfe1$BL(cXdabi1c-Ovzt~$myFQ_d6N|MD0+6n zvb^If?FQK*Uh<_#hEw`Rzsi6%1Uq);!dRF+e57PE!RJ=!=$Z3p=ub;3QaUE~qaIXj zi3Bi+<9{iCJGCWi)sSI4w3A))t=TrTF3rUy)j_=pebu(Wr;>qw%5`1W^Zd{wih+YQ z{S}Hk286*osL&Upl~-5(O^auON5EpoNR8Chq5dJT&8yj0Vd!t+)pjxG>eI_|)Q<^} z^@`V1x}>O%>2BfJ5)_uh0CNK!z=|F2x7fpvfeygqx>#lAj(5Et#>Micr1akgvTLBs z-;3?U!!9!^u)5P_`#<*=Qx{?}@OC9im_Lr2tXD(-YFi3uoDiQgy23@(_MpV%O!Rl) zO;In#02SC%Oo1{m(-+3z{N8#eON@4HL!^hmi0a2(R&uY(^@=eowqu_@UeG%!6Gc;T zt|0rm*V5W6uFgWd1lqW7RQN=sLd1}!hd{d%prrZ!P^g#Qs}X<+`M<6j)i? zRH_gmK}X@0B{aXNxG+D%m_)}zOWedX;1=0d-FSL1!3*&{dgEnlJyQa!BfqHAC57t5 zvclTzN|+h;1=drG?lQ6QZvvi&mF{Z|84rg;&h|scX)>eggJi)zsmCR#!{v58GvsbO z5>ZeOomREurwgj|#T^P#^ZajT6a+=T=t+Y+XO5+Le^Qz83hVE0O^9Z8i)@SR3!E8U zD#1eAZDZA-lCx9uib}ilbDOI2vP+!pu0-sWNJejH>-nXakDT*PF~TO`H=pbt|#lrd6mVu@Dry ze_)Vd?;aPo|1xkSt-p-+_>W5K3I(aEi>Au1>8dg)u2Ad`1&IZ_<>X|kumW>voDOAi zFa|H|lBIHEkGDIMR@(;AYuEc{7sD!OiG|#_wEb;{I@3(UN;i88=MLq6K_TLQfaR+P zg%RQ7f2Hwb(WKbwAz#Y7x_q%N(kS*LSzxi?z62c&#wJzkmQHW0*p34 z^$(F?60ThKx}=xzi~)Cn8_?p+Ag7e)M4tnz`mL6X$zU`%6XS1bLWjG?8R-EQp+XoY zw;u@Nq!v&cHjH-57~FPKduZ)g!IHVLKfWnHS-o$Y#`aL|Cn_$ijn3eQ_9>6JrHY*q z#Ip)4y3_!Z&25FrFpSAc^i{}rHcRpU{;lEjJuTh!ORyxvjp^N$qW+Qdo3zFa3c*Mu zDS}5k?K(A>BTBMdOf%LNkS@eXn=6#}T{;$KyHTqV1vP0+gY4H2(#i~M&%H)nya6*{(Oxm7ami&d)3`m1v1P-ro%LIN(_`Sb&dw&yeH>!sj9oZgSfB5rlk~7k^5);qfBxhb&5H%K zt+uVMwsjiTsudoY+Zx>DR%;h0HgXCboI^qg^};Zo;Ax3DB4@8GEV3ef&!JUvBHYWd zvTp&F`j=LlIUU(l^7r8haZYdiUR$PB5m|ua=qPOJ3}aNf*lZ}%&jafty0EdaEH3X> zObDR#KHCr#0WSwOdcxhUts$h%v$o9kRAIqL<{Cfxqnv017o^42tyBcHdvlwcSlkST z74ntg(oRo3G`upkK%jLv4~uitQudRq#Sri+5mKBISUC@kmw9C)^-i@(hkK#yk0U+| zJ9P61`VLKbXNNt&m&oPTn|PLebd!+6C}Dw_Fk`rpVyRpGaHg`{__9F=oAsq~3gGqL z&CXzF-GGYw&#Mj~BkrzQo`CgzPc-(i^W}wzN5SG`%cAHHpWF10gL|iuPTNV-yNk}F zNKC(;x`%7?HlMRA^+Q_P^0pKf1=t7}fi@C~-q{2lN9QqAleYF&?)5TSL^EI+qNKw5 zNgj7=Y+>YDOd6&amZUhFa5&L=o73$of1X`Rc6{Zr!9?fD!r<=e7x zfrEB(Vm?&as)pz$KNZea{H@BT?%0xl>Z%qA1*spXnRG<(!1U)lD~K$pGMmllX^x$YlRyURKP>={7+sV$e2`~Np_?DGvg@S9MpOmq-rfp zVDq%R1ZW>pkaH9xTK~*KGqegeAp*`FhM4M?**ZBlRCf8=LH#aL4w2jIA8`=iZ~r*p zJ@iD+Wt^DU)&Jc2b6X=Nx6s7juF8mn(3{L>&DIFmYF@MlL&Qs(_=nb5kydY#25p7q zu^rmUqfOi6Ii8ZyeMW5U;ihJs&CW>Y<+r&htzNAqfX!Il|m>RK>N?SgdG&T6^`WPB7!$*X8utPK310 zVcQu)6iF^?ftt=Pi|%xc_-l z+vjN3_gCAGRgqz(D>pA44^t_RXcS3fb~Vu3_1@L=znKdvl948mjG4H1=Oy)F@jI?B zN6_^t_Jfao4wiru>Ve&MHHaN4ib7dR@i6>%zY5P%_p%~oObxsoH^Ru3$j4;5TPD(ab+Wju-~i%%5+%p%x-bAW$MpNj6}vP`tf7!%L`H^(0E=3;cvOh3braZO(1Ab+Tmci%>FNZpvbF`?ub`T|C<- zi=ieJ*bD%}53}cT?J3gZF|2|$jNXXB)jH|)dvB4cpcF0#f&dUDQ;B-n;Vgy9d8PTJ z0J?@e@+s%*CHnAi`?3FUZd2~2{RxlhMVYKNSj_n)0aQL&y5~e1&{~%3Ls*md2hl)d z3De>l9rzLd2Cni8>28X67zS5Ix`mV3k^M)BW`jOb>HAM0YaSK0^RmmQ<_eIT9>&BwB=?Lh9Y?qzxe-mf5 z$hc_JYeMm#(7lO!>dhj)U~gudM+pP3YgBg*>OzKQ<|4aALcMcribV>0|3lWXPXFvJ zTf-AArs6mY@%4?z;&lItOV0Ed<5N6w!yW#ElL61~EDi1n8iA7Idk$8Yu8vi{Z%zfY8P_hn?h*<7Es40TL>e;a z)0$4h<_sbs7)kE1JL5{rXQFJ^c+Kft8x)VFq#Eg(?_x97&pKr678P(C{&1ziz{thI z{B|6nglx%n^IF_VH|OD1W0sGM4zD5B-s-#g@%{>0Yvx^TiHWV+A05GX)U=RE_DsPG z2V_1__099JC1vm#%F2nB+onv^0a#ycD8O!~zyxt|aBxxtBj0X9*92@ShPb!GqMQ66 z6t)2%Q#48joJ$d<(%)Ql<#u)!@6*$03O{0L68VUTl@syURU~c!>_K2)ziH*xme!ax z=A@cyB}x*`E;wL7J<{Y<${Gu(o;j^~aA43J!QF^RpfWDrio61-QgQIJ(Vyi@ReBw+ z6RYZ@k%)3&!D38o^Q#=@hSKj}JD3vp`Xba#fv1u{RPzN|!Uur07WnNW#Qz=ZCq(5< z4;58M(ZpO+v)1z(dKeTz?4EoNB%2Hi%oaPJ{qW@E2=1v_`F;eG60>1v?Jd?|diLjq z^xY-#-OP%csH|g(2{h#+6G7{KY0n=&(ZoC{n zZ7L8)*I7Me3t$awEryP_djho>X}kEHULSAhSerAA5Y;dXS9!FrUtv=r#}5!CeXRYH zR(OUmLq}yM=RbA|cFcscI=#IwL$!(DO5-cwF=g_ShTQoOB7_FzQ=;hkAN-yl+k2sS zB@wKo)EdmyPOk&+1@(iUs6;Y5jBLg}I7f5A>17}CRMXZrxekqWKb~&E-`mQ}jDVI? zk;F|G$Dhb%F%J5lt`Ah&s5gm1LbE!8AIB>9f-6Z-VAG58i@pBfE5v#W0i@L{FM|W9 zO--o3s0HBdCdZbxpt5baIPP!Hi^#2o4+9B_vywzFjk;g;8K1WH)pd%fhpKYI8k<$d;B4rIAwH=VOsABFtTvIe!^Tus{aDQCLN z_N0qD@co+V;k@j4yB|9;yciBtxyI40(-r@POTF=kUuI`puL;Elg#C?0mZIFlxRjJu{ z_+m@qMjU>8!wXZSGuC1wikL5*w``U5r--vRFHokO&G`$}AWycG1D+^SDZcwxi~w)C zbbyQoLX-rZ2`^EHOlA8QRO0V4aK#@i=)polrqalMLMF25LtQRq0nhkr>3_biu&^rQ zB21)z`2S6k=~*I<8Y16!q&AL{7VQ>QnQ*ZT28?0?K~9HhpS=Mv2dKAJhy0)4?-H|g zA8)Eww|Wxat*AkIvZCnq>s|WVWJK63g-wAjTJHpjhRf-Km!9n3-<<2I>@kHot8rv% zH+ugdPALE0Eo22RwsV-!gE`LjJsTK=5>zx~@xM$2FZlp)JzU}>0X$JX{t@pQaWuX~ zomnns@Du7tIXQukMSMm(ES9q>r~g2BnuELpI*2nvH-+3!Ae zHXDl_+4}EqnT=L44YOl5s5uwKD zl+0iJPcLna_<+W%sI?Z7C`Vi<-watrem{3;QwWVoJOYR&__^k_`^gIK^gVnI#n*6G5JUH__k&Ya^C$S?OaowxTpKmXm3pdu&!&kx>tTJDnc9z^aE zMHj77jUSi@g$Rm;;X!1zvM^;5nIg0>$osT}=CqhH?3U0a>7-o| zJaFdI9pP~>pSmQ-0z_EPL?J*RZa~^Aft6aKBee!@16`dK%&{q2qmC_-X5nw4Sdkgp zkTq$>#*Qt|)X%PiOTo)jf^3Wxk6jKBjQ}}KztQ*|l*%9zsZ(9oIH`@AqcMrDdMu%CAY=9^a&k3|&vhZeDTsG<3eVsDCJ zaspB#>ZvBxsyH;bUrx4h+nKCyaa{WT*I0LhDoej563F#qbO7D|*T|p7k7Wi6gSg}OMTc`H%Ih~o5x-?}Lyqooa(*WXLioI9WzBob z->}$^%H;85dTwkklF%#<>cqf^MNN08_O2EM$$O3oA=bxtGzj^|(PO?ynFiBQyR@+CH=Crw|iBhz; zj11FRDY{-=;eS$gaRGBkChA((Tn?*N+)~%sjilu(^xgh>KGuwspHjMczH)0rHdhNI zSb^a;FIUVnEtLc~D_G3cOq3M{`@oNEYsC3#Rb+<9L}c^Lukf7SXUbQ2wj2$xC35-p zd@oGXk{Z4KMA|9GoN<#bcj24n6SGA6~%^ z+|FLNH<|KKTIdKZMAi8P_4m}pftzb1ruVz){ECQYY*moHr$XgS?KkmARgx?D3j!Jb zG{}rQzPpluZaDsC@Gbdl+Trxo)3He>lht*$u5Q(90|m}9t`>s!H&U^3L`F4 zPN(bSMEDnzRtv;AEWWE_)K~LJe0;cr5b{2_hjd?Jz9Wzk%ByZcerzH16sgP14dSFw z1@-^UVp*IRb@5QL-VIdtN3g!)9umhOUWhIzeo@ouB2MY5VWOKtmpP2X;AB*|M#14E zUCFE3w7$>d+uU>J6#yO;4hRr|!aqiHi(M05o3Gps9vE+`SCYhH)M)m@KBX`|HR0R{ zezt$%*ZWJRw(7YT33*j-{+mvhzw*jD?)GyzV=&$!k)niSb;|dfT##`$1%qoo(-~2G zT`Kt}V}k1IA6;shnq3=Fq=(oy1e}kqGC63#48n^G+8;s9ebQz5_4!fxiCs|^(l`fO z>5|dj+R!08_~}~)=O-dRRIGC!;8r-J=3OqYa{HQreigEF@w_O$ANM09f}S;Pnh$+L z+2=rmLrE{Uj;6QK#|^%U#QOZe_~7iqYiF~l0MG5^?aL`ZNDKNCOQz%3>1X~W9owxu zs;bxXM^F6HX=Wd!3@Wi;!y|jH4F^%>afk1NS3Mi&!qNz6WTxkvwd%2G+$Og}1#%g= zpu~`EE5LZOnDC%;{iF`X<2{DL1_lwg`thk)(iTu2!r=Sx{2_zl!$71IHtA{*PF*zl zqJjsf_Mq7N^L@fWq*blY0@{khEA`8WIZH=zXdJw%$;+Fn$P9HRb(<-A=`&d4*mi%v zJ;wDlN z3oiNGOO~A6I1Flwt7*zn#A3tenSpDgPl7!STcn`0?OboI%;C zha=760tafai6}agg?{{1tL<@aF65XM{84JT&>I&a2y&agkwIKAPVTINBTmo6*?+15 zK(!NF+X;n4j-gV_FV(Y22e*zWDAbFfOQE3XF_?0wMVl8iU4F!bf<8p{2rc&Ud2Wt+ zC5bc7FmN|5!xKHhq@^5LRO3YWZKx+6yF3r4_X{X^`!Z`5J4fu=J1e$_i(kNr$&;si zd0j<_#JfsMMEcu29)>&{`D0j}F_o}oPBDo$CQC4>E8cqvJcILw3p9A?u+7L)4TQfV zbNF~11;!ILp%1o7!5tpGadJ+zcN}804UYGY^o)cZSlOK5?_KR*OriKXB1UeKvW@ih zECgGMIMsd|{T&(IwyBr$`uPoEf`*=to{w)l&X~>J$KIHgxR@&R_#IY*(^pW1<*w+f z5-u7`L4N6phARe45W(<{L`ECH2swNiq=qAmiF_3Qc+a#NBtV&i)2v>D`a zXiLskR*831bG7g)ZmB__QjMkpd-=CVzGmKEEy5p9DirL~-2Ml`An#8x-RI}v5Gu$? z9&-nXhJUi;z?=JRgxcK%w|5>GQYVdF%R^&vitQh=rJgOVrJi+#RVsx6Sh?UL+ucm3 z^)U|}?ngs2w-q^V3DO)Z>+|z-E1H}6%Dfgwwe_KCu36m{v$A~6kQ$9}*R0qFT6 zmQ>M5^mIGt-r?mchhCCIE`yIS!%GC`T;W``m&ow{0Np?$zp}dbzq@D07dL9Je|@zZ zH#0K;GFOZoJA8y|pOzbJZWIW7ZWQY|QRo97{UFkJ?rC*eKq47nvrm40V8?-D0;VJ~ z(#|p5*YU}KAI{Cs)zl-6rtX$7hS;rF-`@Gw*SFg>S|o)`>~3!!J8fcT^@%=846WnF zFr78j-?-+NdPtauTSOcU zhu{dLSOS^fU$=AfYhT`|)dJ?THZ6D27f?F!@Q0V!lZ&FDd`BR0cmk1t|HW=wDWgQ~ zGr_d$4A*efiG=Zp@0&{Os^S3j#uC?w%hLi(O>I1qL-gkq(_AKd^56UTieW?^YKMUt z1YQhtT?0Mrd|cg$#s-{YY)19HI=+Bkey3tgtYdgsAO)dhOSEV#eyHW{mRGl)X{PG{ z`$Ze)8IH5ma=X8*!DZ?7Dgueb6F`iE1y9r8%b68N85!a;MlfR>M|f;GcbM0F`^&f9 zdAFvEYhrFkvvrE_5O#MOoa_3^&b|7|_M812opVearvBs8)nFY(D8ME}nR}#0Sb)iA z4lx_ffe+}^jk2R3eIjzn8XM@l;I&0oe`Gq!|1zEt`SI2ofotf{WoAM+}`-80``;F5CCX(XM|0q;<@UJbx4djnfZu z{R(5pPmoK5a%0Z~K5PCf>o?Ey8Z8qX-2G(|&6uUj0?F9S*)wUs@M{0R=9!(_e;Hc2 zR5;KBo!`RausAY>T*{@>nF0~l!Y9VpN_Xv26;B1KMQVJ01Wu@x^j6(!=%90NZ1|Soz|W~f~JRT zl8c?Lue!0je}u;w9$@l7nHeIvLLlZl1;@LY%C26l7Jy1!Cuy!9iii)h!OP1k9^u`h z0v*wpPo81RRU+Xqlf$fQ;zvXVc~}uzy9acDPAQiRF&Hf2h{n`A*b-e*-`LmPClqrA zm>juOG|*c!qO@}*30t}bn7zHjLScW;pj0Mfvj(}K_!4$aO(ohfFu=^K!7F)4RC*VdfCekn<9`g3DnJ za);3b7c({eN>!6YA{}NjSbSlBXJvJ#CN?s_%?yy6`Gh!NZeFQi%as7ZEG;F8rtQ9Z zrGYC2r5ccefedujvI)U%Sn#>f8FZnDJvcO2TRRjS5$tJaQc+!kvI=rW3hp(xGJ2Vy z2G^)160}XA8{zudAG;WxLXvB!zZXT*U(qD>b)r<)wux2TriOM7m)BO)Ff62Zjo@O! z{T)cs3zr^R2ZVb&+w+EdhdD$2^dY%SJlI1Qs{so$QcKl+@F9(i^lK1!=7=saAsEql z>$`iMa;X5!JvCHwK%me%R&Os)%BFfwcc)=ME&~P7pNjwqtRCp4gD=J)izgUp9AxpkIy!hNyql|slR3V#cTlTSNu``Y zrg2u9P>SXlv|dbA_yt_NF!#7Ptds+t=eeB;ak42j4)cmAT>+&kFUlYmxx2Zo!fJFZ=AR-iS^-T`P# z^WVc?-MMY+9zkZ_E1{bt1!C@1v&K!EF*Y?|sIt)^bH>!%6f^ZeCsXR5UN|j(j4ckA zUR2zu)hq0@y*6DVy5Or@`B7s6#cCV! za6KF8=|^Kd8X(MBJS#TXjzsmFI5C+b=&tS@28+trtY{l6RNc*5j7x9^iNMED^On zzh3o*>$H`s(;xY~y!eM#zsgxL=E`}|IOn=1tBIk~hfTCZ#G^amGlTbUcwe9ZpOV9- zkLFg~SDAKyJm5GR)zq7iF27Lc5TU%G%~(8m;x%E+)=cSl_i*FPn?I$Lv)T#B27q?L6{Q z`Ke33elC07`&6aD6>V73z32UEtqy@irZ3(VCp!A}@z$`sxjB)JVEcEd_WZ#gD-DC% zNEFJ}GiydL>z!{6XXW9>uUX7E@L?6$wt>I|rDP;qaX&ou$R)HeQdM@UaX@bl^S963 z{ynfh+H!#TysLMf05;*;+dGcE^ZH#_H^adE9%LeRM|;P)58nLde?>R{Ehuh&vh%eI z>VgzUj45HLrMKnAw}&6<)~p`O?P%nP5Lk07W(N~&n(Ie|pph&ro=PQ>$L1yaMNfHS z8Pwu%SlLipedFgxzf4Dduq^^Qjx$&?M-a@ z=HBQmgE38W^ts@y?T@ zH`US$wVExv-MY7q!iYbP&n zFK=%z7n{ce?5@kUZC$%?%7dz&*a-_WoQ(6=K+J5%EG!5POUsU)xN!59%?VyqvXf1x z#4ynV#>flXxeWsY1M}bVS9fmz*?4UEV8X$5d$=!xEWd(@@9MdcA0Ip}RsA{bAc{@k zl3C%0-uqGv*9}K`kvq3xU|?YWzoB3KO(G1_lP^ zg#%X4FfcGMFfcD1uzH4pfq{X6dEtQ7GYkw23=GT*$KSu_HVh05%-_V{aiApDZ0Ytr z3)7r$l~hH}+4*uhb&xi8-`0gGNh$8uCdKm>&zU_dH#5oGN8Do=lwY8lJ zqz#QMg${&%CKwZ|Eqe} zAJ#FRwd^Tk&YMdEdAI9X#{1_58Im<~!-{zm3zHaS_gNA!yO0#~xHk`OE*cZpR(_W& zgZKRUGx@axC1GG-U|@b51k%*p%0D4*oDU9fVqs-Q#*xej;_5A{*M4~P)aLEG1t{9X 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 literal 0 HcmV?d00001 diff --git a/site/jekyll/tutorials/aspnetcore.md b/site/jekyll/tutorials/aspnetcore.md index 3f757628c..aacb75e13 100644 --- a/site/jekyll/tutorials/aspnetcore.md +++ b/site/jekyll/tutorials/aspnetcore.md @@ -6,7 +6,7 @@ layout: docs > Note: > -> This tutorial is for Visual Studio 2015 and ASP.NET Core MVC. If you're still using ASP.NET 4 and ASP.NET MVC 5, you can [follow the ASP.NET 4 tutorial instead](/tutorials/aspnet4.html) +> This tutorial is for Visual Studio 2019 and ASP.NET Core MVC. If you're still using ASP.NET 4 and ASP.NET MVC 5, you can [follow the ASP.NET 4 tutorial instead](/tutorials/aspnet4.html) This tutorial covers the end-to-end process of creating a brand new ASP.NET MVC website and adding a React component in it. We will start from scratch and end with a fully functioning component. It assumes you have basic knowledge of ASP.NET MVC and using Visual Studio. This tutorial is based off the [original React tutorial](https://reactjs.org/tutorial/tutorial.html) but has been modified specifically for ReactJS.NET. @@ -24,26 +24,29 @@ It'll also have a few neat features: - **Live updates:** other users' comments are popped into the comment view in real time. - **Markdown formatting:** users can use Markdown to format their text. -## Want to skip all this and just see the source? +## Want to skip all this and see the source? [It's all on GitHub](https://github.com/reactjs/React.NET/tree/master/tutorial-code). ## Getting started -For this tutorial we'll be using Visual Studio 2015. If you do not already have a copy of Visual Studio, [the Community version](https://www.visualstudio.com/vs/community/) is free. We will be using ASP.NET Core MVC. +For this tutorial we'll be using Visual Studio 2019. If you do not already have a copy of Visual Studio, [the Community version](https://www.visualstudio.com/vs/community/) is free. We will be using ASP.NET Core MVC. ### New Project Start by creating a new ASP.NET Core MVC project: -1. File → New → Project -2. Ensure ".NET Framework 4.6" is selected in the dropdown list at the top -3. Go to Templates → Visual C# → Web and select the "ASP.NET Core Web Application (.NET Framework)" template. Call it "ReactDemo" - [Screenshot: New Project](/img/tutorial/newproject_core.png) -4. In the "New ASP.NET Core Web Application" dialog, select the Web Application template. Also, click "Change Authentication" and select "No Authentication" - [Screenshot: New ASP.NET Core MVC Project dialog](/img/tutorial/new_webapp.png) +1. File → New → Project... +2. Select "ASP.NET Core Web Application". You may search for it via the search box or narrow down your choices via the drop-downs - C#, All platforms, Web is a good way to get it as the first result. + [Screenshot: New Project](/img/tutorial/newproject_core_2019.png) +3. Click "Next". +4. Enter "ReactDemo" for the project name and location to store it. +5. Click "Create". +6. In the "Create a new ASP.NET Core web application" dialog, select the "Web Application (Model-View-Controller)" template. Also, ensure "Change Authentication" is set to "No Authentication". + [Screenshot: New ASP.NET Core MVC Project dialog](/img/tutorial/new_webapp_2019.png) +7. Click "Create". -Note: We are using .NET Framework in this tutorial, but you can instead use .NET Core if you want to be able to run your site on Linux or Mac OS. Currently .NET Core is missing some of the functionality provided by .NET Framework, so it is recommended to use .NET Framework unless you have a reason to use .NET Core specifically (eg. cross-platform support). +Note: We are using .NET Core 3.1 in this tutorial. ### Remove example content @@ -51,14 +54,40 @@ The default Web Application template includes some example content that we don't - `Controllers\HomeController.cs` - `Views\Home` and `Views\Shared` folders -- `bundleconfig.json` -- `Project_Readme.html` ### Install ReactJS.NET -We need to install ReactJS.NET to the newly-created project. This is accomplished using NuGet, a package manager for .NET. Right-click on the "ReactDemo" project in the Solution Explorer and select "Manage NuGet Packages". Click the "Browse" tab, search for "React.AspNet", and install the **React.AspNet** package. +We need to install ReactJS.NET to the newly-created project. This is accomplished using NuGet, a package manager for .NET. Right-click on the "ReactDemo" project in the Solution Explorer and select "Manage NuGet Packages...". Click the "Browse" tab, search for "React.AspNet", and install the **React.AspNet** package. -[Screenshot: Install NuGet Packages](/img/tutorial/nuget_core.png) +[Screenshot: Install NuGet Packages](/img/tutorial/nuget_core_2019.png) + +### Install a JS engine + +While we're managing NuGet packages, we need to install a JS engine. Search for and install one of either: + +- `JavaScriptEngineSwitcher.V8` (what this tutorial uses) +- `JavaScriptEngineSwitcher.ChakraCore` + +If you choose ChakraCore, make sure you change any code/using statements in this tutorial where needed. + +Now, install the native assembly based on your architecture and engine choice: + +V8: + +- `JavaScriptEngineSwitcher.V8.Native.win-x86` +- `JavaScriptEngineSwitcher.V8.Native.win-x64` (what this tutorial uses) + +Chakra: + +- `JavaScriptEngineSwitcher.ChakraCore.Native.win-x86` +- `JavaScriptEngineSwitcher.ChakraCore.Native.win-x64` +- `JavaScriptEngineSwitcher.ChakraCore.Native.win-arm` +- `JavaScriptEngineSwitcher.ChakraCore.Native.linux-x64` +- `JavaScriptEngineSwitcher.ChakraCore.Native.osx-x64` + +Lastly, install `JavaScriptEngineSwitcher.Extensions.MsDependencyInjection`. + +### Modify Startup.cs We also need to modify the `Startup.cs` file to initialize ReactJS.NET. You can learn more about this on the [Getting Started on ASP.NET Core](/getting-started/aspnetcore.html) page. Open `Startup.cs` and perform the following changes: @@ -66,7 +95,7 @@ At the top of the file, add: ```csharp using Microsoft.AspNetCore.Http; -using JavaScriptEngineSwitcher.ChakraCore; +using JavaScriptEngineSwitcher.V8; using JavaScriptEngineSwitcher.Extensions.MsDependencyInjection; using React.AspNet; ``` @@ -74,8 +103,7 @@ using React.AspNet; Directly above: ```csharp -// Add framework services. -services.AddMvc(); +services.AddControllersWithViews(); ``` Add: @@ -85,8 +113,8 @@ services.AddSingleton(); services.AddReact(); // Make sure a JS engine is registered, or you will get an error! -services.AddJsEngineSwitcher(options => options.DefaultEngineName = ChakraCoreJsEngine.EngineName) - .AddChakraCore(); +services.AddJsEngineSwitcher(options => options.DefaultEngineName = V8JsEngine.EngineName) + .AddV8(); ``` Directly **above**: @@ -119,7 +147,7 @@ app.UseReact(config => }); ``` -Finally, add this to `Views\_ViewImports.cshtml`: +Finally, add this to the top of `Views\_ViewImports.cshtml`: ```csharp @using React.AspNet @@ -127,18 +155,19 @@ Finally, add this to `Views\_ViewImports.cshtml`: ### Create basic controller and view -Since this tutorial focuses mainly on ReactJS.NET itself, we will not cover creation of an MVC controller in much detail. To learn more about ASP.NET MVC, refer to [its official website](http://www.asp.net/mvc). +Since this tutorial focuses mainly on ReactJS.NET itself, we will not cover creation of an MVC controller in much detail. To learn more about ASP.NET MVC, refer to [its official website](https://dotnet.microsoft.com/apps/aspnet/mvc). -1. Right-click on the Controllers folder and select Add → New Item -2. Select .NET Core → ASP.NET → MVC Controller Class +1. Right-click on the Controllers folder and select Add → New Item... +2. Select ASP.NET Core → Controller Class 3. Name the file `HomeController.cs` +4. Click "Add" Once the controller has been created, we also need to create a view -1. Right-click on the Views folder, click "New Folder", and create a "Home" folder -2. Right-click on the Views\Home folder and select Add → New Item -3. Select .NET Core → ASP.NET → MVC View Page -4. Name the file `Index.cshtml` +1. Right-click on the Views folder, select Add → New Folder, and create a "Home" folder +2. Right-click on the Views\Home folder and select Add → View... +3. Name the view file `Index` +4. Click "Add" Replace the contents of the new view file with the following: @@ -154,6 +183,7 @@ Replace the contents of the new view file with the following:

    + @@ -161,7 +191,7 @@ Replace the contents of the new view file with the following: _Note: In a real ASP.NET MVC site, you'd use a layout. However, to keep this tutorial simple, we will keep all HTML in the one view file._ -We also need to create the referenced JavaScript file (`tutorial.jsx`). Right-click on `wwwroot\js` and select Add → New Item. Select .NET Core → Client-side → JavaScript File, enter "tutorial.jsx" as the file name, and click "Add". +We also need to create the referenced JavaScript file (`tutorial.jsx`). Right-click on `wwwroot\js` and select Add → New Item. Select ASP.NET Core → Web → Scripts → JavaScript File, enter "tutorial.jsx" as the file name, and click "Add". For the remainder of this tutorial, we'll be writing our JavaScript code in this file. @@ -176,7 +206,7 @@ React is all about modular, composable components. For our comment box example, - CommentForm ``` -Let's build the `CommentBox` component, which just displays a simple `
    `. Add this code to `Tutorial.jsx`: +Let's build the `CommentBox` component, which displays a simple `
    `. Add this code to `Tutorial.jsx`: ```javascript class CommentBox extends React.Component { @@ -194,7 +224,7 @@ Note that native HTML element names start with a lowercase letter, while custom At this point, run your application by clicking the "Play" button in Visual Studio. If successful, your default browser should start and you should see "Hello, world! I am a CommentBox." -Screenshot: Hello ReactJS.NET World! +Screenshot: Hello ReactJS.NET World! If you see this, congratulations! You've just built your first React component. You can leave the application running while you continue this tutorial. Simply change the JSX file and refresh to see your changes. @@ -320,12 +350,21 @@ Note that we have passed some data from the parent `CommentList` component to th Markdown is a simple way to format your text inline. For example, surrounding text with asterisks will make it emphasized. -In this tutorial we use a third-party library called [remarkable](https://github.com/jonschlinkert/remarkable) which takes Markdown text and converts it to raw HTML. We already included this library with the original markup for the page, so we can just start using it. Let's convert the comment text to Markdown and output it: +In this tutorial we use a third-party library called [remarkable](https://github.com/jonschlinkert/remarkable) which takes Markdown text and converts it to raw HTML. We already included this library with the original markup for the page, so we can start using it right away. Let's convert the comment text to Markdown and output it: + +```javascript{12,18} +function createRemarkable() { + var remarkable = + 'undefined' != typeof global && global.Remarkable + ? global.Remarkable + : window.Remarkable; + + return new remarkable(); +} -```javascript{3,9} class Comment extends React.Component { render() { - const md = new Remarkable(); + const md = createRemarkable(); return (

    {this.props.author}

    @@ -336,7 +375,7 @@ class Comment extends React.Component { } ``` -All we're doing here is calling the remarkable library. We need to convert `this.props.children` from React's wrapped text to a raw string that remarkable will understand so we explicitly call `toString()`. +All we're doing here is finding and calling the remarkable library. We need to convert `this.props.children` from React's wrapped text to a raw string that remarkable will understand so we explicitly call `toString()`. But there's a problem! Our rendered comments look like this in the browser: "`

    `This is ``another`` comment`

    `". We want those tags to actually render as HTML. @@ -370,15 +409,15 @@ So far we've been inserting the comments directly in the source code. Instead, l ```javascript const data = [ - { Id: 1, Author: 'Daniel Lo Nigro', Text: 'Hello ReactJS.NET World!' }, - { Id: 2, Author: 'Pete Hunt', Text: 'This is one comment' }, - { Id: 3, Author: 'Jordan Walke', Text: 'This is *another* comment' }, + { id: 1, author: 'Daniel Lo Nigro', text: 'Hello ReactJS.NET World!' }, + { id: 2, author: 'Pete Hunt', text: 'This is one comment' }, + { id: 3, author: 'Jordan Walke', text: 'This is *another* comment' }, ]; ``` We need to get this data into `CommentList` in a modular way. Modify `CommentBox` and the `ReactDOM.render()` call to pass this data into the `CommentList` via props: -```javascript{6,14} +```javascript{6,13} class CommentBox extends React.Component { render() { return ( @@ -396,12 +435,12 @@ ReactDOM.render(, document.getElementById('content')); Now that the data is available in the `CommentList`, let's render the comments dynamically: -```javascript{3-7,10} +```javascript{3-8} class CommentList extends React.Component { render() { const commentNodes = this.props.data.map(comment => ( - - {comment.Text} + + {comment.text} )); return
    {commentNodes}
    ; @@ -413,7 +452,7 @@ That's it! ### Server-side Data -Let's return some data from the server. To do so, we need to first create a C# class to represent our comments. Right-click on ReactDemo and select Add → New Folder and name the folder "Models". Once the models folder has been created, right click on it, select Add → Class, and enter "CommentModel.cs" as the file name. We'll create a basic comment model: +Let's return some data from the server. If you are still debugging, end it by pressing the Stop button. To do so, we need to first create a C# class to represent our comments. You should have a "Models" folder, but if not, right-click on ReactDemo and select Add → New Folder and name the folder "Models". Once the models folder exists, right click on it, select Add → Class..., and enter "CommentModel.cs" as the file name. We'll create a basic comment model: ```csharp namespace ReactDemo.Models @@ -427,7 +466,7 @@ namespace ReactDemo.Models } ``` -In a real application, you'd use the repository pattern here, and retrieve the comments from a database. For simplicity, we'll just modify our controller to have a hard-coded list of comments. +In a real application, you'd use the repository pattern here, and retrieve the comments from a database. For simplicity, we'll modify our controller to have a hard-coded list of comments. ```csharp{9,13-33} using System.Collections.Generic; @@ -488,7 +527,7 @@ The `Route` attribute specifies that this action should be used when `/comments` The `ResponseCache` attribute is used here to prevent browsers from caching the response. When designing a real world API, caching of API requests should be considered more carefully. For this tutorial it is easiest to simply disable caching. -If you hit `/comments` in your browser, you should now see the data encoded as JSON: +Let's restart debugging (press the play button) and hit `/comments` in your browser, you should now see the data encoded as JSON: Screenshot: JSON data source @@ -499,7 +538,7 @@ Now that we have a data source, we can replace the hard-coded data with the dyna ```javascript{2} ReactDOM.render( , - document.getElementById('content'), + document.getElementById('content') ); ``` @@ -570,7 +609,7 @@ Below, we're using `componentDidMount()`, a method called automatically by React The key to these dynamic updates is the call to `this.setState()`. We replace the old array of comments with the new one from the server and the UI automatically updates itself. Because of this reactivity, it is only a minor change to add live updates. We will use simple polling here but you could easily use [SignalR](http://signalr.net/) or other technologies. -```javascript{6,15-18,31} +```javascript{6,15-21,34} class CommentBox extends React.Component { constructor(props) { super(props); @@ -613,7 +652,7 @@ All we have done here is move the AJAX call to a separate method and call it whe ### Adding new comments -To accept new comments, we need to first add a controller action to handle it. This will just be some simple C# code that appends the new comment to the static list of comments: +To accept new comments, we need to first add a controller action to handle it. This will be some simple C# code that appends the new comment to the static list of comments: ```csharp [Route("comments/new")] @@ -651,7 +690,7 @@ With the traditional DOM, `input` elements are rendered and the browser manages Hence, we will be using `this.state` to save the user's input as it is entered. We define an initial `state` with two properties `author` and `text` and set them to be empty strings. In our `` elements, we set the `value` prop to reflect the `state` of the component and attach `onChange` handlers to them. These `` elements with a `value` set are called controlled components. Read more about controlled components on the [Forms article](https://reactjs.org/docs/forms.html#controlled-components). -```javascript{2-13,16-28} +```javascript{2-13,17-28} class CommentForm extends React.Component { constructor(props) { super(props); @@ -754,7 +793,7 @@ When a user submits a comment, we will need to refresh the list of comments to i We need to pass data from the child component back up to its parent. We do this in our parent's `render` method by passing a new callback (`handleCommentSubmit`) into the child, binding it to the child's `onCommentSubmit` event. Whenever the event is triggered, the callback will be invoked: -```javascript{5,16-18,28} +```javascript{5,16-18,31} class CommentBox extends React.Component { constructor(props) { super(props); @@ -816,7 +855,7 @@ class CommentForm extends React.Component { if (!text || !author) { return; } - this.props.onCommentSubmit({ Author: author, Text: text }); + this.props.onCommentSubmit({ author: author, text: text }); this.setState({ author: '', text: '' }); } render() { @@ -843,7 +882,7 @@ class CommentForm extends React.Component { Now that the callbacks are in place, all we have to do is submit to the server and refresh the list: -```javascript{16-25,42} +```javascript{16-25,45-49} class CommentBox extends React.Component { constructor(props) { super(props); @@ -861,8 +900,8 @@ class CommentBox extends React.Component { } handleCommentSubmit(comment) { const data = new FormData(); - data.append('author', comment.Author); - data.append('text', comment.Text); + data.append('author', comment.author); + data.append('text', comment.text); const xhr = new XMLHttpRequest(); xhr.open('post', this.props.submitUrl, true); @@ -930,13 +969,13 @@ class CommentBox extends React.Component { // Optimistically set an id on the new comment. It will be replaced by an // id generated by the server. In a production application you would likely // use a more robust system for ID generation. - comment.Id = comments.length + 1; + comment.id = comments.length + 1; const newComments = comments.concat([comment]); this.setState({ data: newComments }); const data = new FormData(); - data.append('Author', comment.Author); - data.append('Text', comment.Text); + data.append('Author', comment.author); + data.append('Text', comment.text); const xhr = new XMLHttpRequest(); xhr.open('post', this.props.submitUrl, true); @@ -972,7 +1011,7 @@ There used to be a section on bundling and minification in this tutorial, but un Server-side rendering means that your application initially renders the components on the server-side, rather than fetching data from the server and rendering using the client. Server-side rendering enhances the performance of your application since the user will see the initial state immediately. -We need to make some modifications to `CommentBox` to support server-side rendering. Firstly, we need to accept an `initialData` prop, which will be used to set the initial state of the component, rather than doing an AJAX request. We also need to remove the `loadCommentsFromServer` call from `componentDidMount`, since it is no longer required. Also, we need to remove the `ReactDOM.render` call from the JSX file, as server-side rendering automatically outputs the correct `ReactDOM.render` call for you. +We need to make some modifications to `CommentBox` to support server-side rendering. Firstly, we need to accept an `initialData` prop, which will be used to set the initial state of the component, rather than doing an AJAX request. We also need to remove the initial `loadCommentsFromServer` call from `componentDidMount`, since it is no longer required. ```javascript{4,31-33} class CommentBox extends React.Component { @@ -1023,33 +1062,28 @@ class CommentBox extends React.Component { } ``` -We also need to update the `Comment` component to use `Remarkable` from either `global` or `window`, due to a bug in Remarkable: +Also, we need to remove the `ReactDOM.render` call from the JSX file, as server-side rendering automatically outputs the correct `ReactDOM.render` call for you. -```javascript{3} -function createRemarkable() { - var remarkable = - 'undefined' != typeof global && global.Remarkable - ? global.Remarkable - : window.Remarkable; +```csharp +// ReactDOM.render( +// , +// document.getElementById('content') +// ); +``` - return new remarkable(); -} +We need to update the Comment component to use Remarkable from either global or window, due to a bug in Remarkable. A utility function was provided earlier in the tutorial. +```javascript{3} class Comment extends React.Component { - rawMarkup() { - const md = createRemarkable(); - const rawMarkup = md.render(this.props.children.toString()); - return { __html: rawMarkup }; - } - render() { - return ( -
    -

    {this.props.author}

    - -
    - ); - } -} + rawMarkup() { + const md = createRemarkable(); + const rawMarkup = md.render(this.props.children.toString()); + return { __html: rawMarkup }; + } ``` In the view, we will accept the list of comments as the model, and use `Html.React` to render the component. This will replace the `ReactDOM.render` call that currently exists in Tutorial.jsx. All the props from the current `ReactDOM.render` call should be moved here, and the `ReactDOM.render` call should be deleted. @@ -1091,7 +1125,7 @@ public ActionResult Index() We also need to modify `Startup.cs` to tell ReactJS.NET which JavaScript files it requires for the server-side rendering: -```csharp{4-10} +```csharp{4-6} // Initialise ReactJS.NET. Must be before static files. app.UseReact(config => { @@ -1101,7 +1135,7 @@ app.UseReact(config => }); ``` -Note that we need a copy of Remarkable in order to load it for server-side rendering. In a production app you'd probably use Bower or npm for this, but for our tutorial you can just [download the file from CDNJS](https://cdnjs.cloudflare.com/ajax/libs/remarkable/1.7.1/remarkable.min.js) and save it into `~/js`. +Note that we need a copy of Remarkable in order to load it for server-side rendering. In a production app you'd probably use Bower or npm for this, but for our tutorial you can [download the file from CDNJS](https://cdnjs.cloudflare.com/ajax/libs/remarkable/1.7.1/remarkable.min.js) and save it into `~/js`. That's it! Now if you build and refresh your application, you should notice that the comments box is rendered immediately rather than having a slight delay. If you view the source of the page, you will see the initial comments directly in the HTML itself: @@ -1111,13 +1145,12 @@ That's it! Now if you build and refresh your application, you should notice that Hello React -
    -
    -

    Comments

    -
    -
    -

    Daniel Lo Nigro

    -

    Hello ReactJS.NET World!

    +
    +
    Comments +
    +
    +

    Daniel Lo Nigro

    +

    Hello ReactJS.NET World!

    From e66f5e3b3f61e4a22c69d871651b000f3e448b81 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Tue, 18 Feb 2020 01:27:20 +0000 Subject: [PATCH 370/530] Update dependency @types/react to v16.9.20 --- src/React.Sample.Mvc4/package-lock.json | 12 ++++++------ src/React.Sample.Mvc4/package.json | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/React.Sample.Mvc4/package-lock.json b/src/React.Sample.Mvc4/package-lock.json index cf1ce459a..63b52750e 100644 --- a/src/React.Sample.Mvc4/package-lock.json +++ b/src/React.Sample.Mvc4/package-lock.json @@ -11,9 +11,9 @@ "dev": true }, "@types/react": { - "version": "16.9.19", - "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.19.tgz", - "integrity": "sha512-LJV97//H+zqKWMms0kvxaKYJDG05U2TtQB3chRLF8MPNs+MQh/H1aGlyDUxjaHvu08EAGerdX2z4LTBc7ns77A==", + "version": "16.9.20", + "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.20.tgz", + "integrity": "sha512-jRrWBr25zzEVNa4QbESKLPluvrZ3W6Odfwrfe2F5vzbrDuNvlpnHa/xbZcXg8RH5D4CE181J5VxrRrLvzRH+5A==", "dev": true, "requires": { "@types/prop-types": "*", @@ -40,9 +40,9 @@ } }, "csstype": { - "version": "2.6.8", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.8.tgz", - "integrity": "sha512-msVS9qTuMT5zwAGCVm4mxfrZ18BNc6Csd0oJAtiFMZ1FAx1CCvy2+5MDmYoix63LM/6NDbNtodCiGYGmFgO0dA==", + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.9.tgz", + "integrity": "sha512-xz39Sb4+OaTsULgUERcCk+TJj8ylkL4aSVDQiX/ksxbELSqwkgt4d4RD7fovIdgJGSuNYqwZEiVjYY5l0ask+Q==", "dev": true }, "popper.js": { diff --git a/src/React.Sample.Mvc4/package.json b/src/React.Sample.Mvc4/package.json index 1daa6962e..cbdfdfb76 100644 --- a/src/React.Sample.Mvc4/package.json +++ b/src/React.Sample.Mvc4/package.json @@ -7,7 +7,7 @@ "lint:ts": "tsc" }, "devDependencies": { - "@types/react": "16.9.19", + "@types/react": "16.9.20", "@types/react-dom": "16.9.5", "@types/reactstrap": "8.0.6", "typescript": "3.7.5" From 7b3db24dd7fe0d80d228a1285f31e90ab5c860db Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Tue, 18 Feb 2020 07:42:16 +0000 Subject: [PATCH 371/530] Update dependency prop-types to v15.6.2 --- src/React.Sample.Owin/Content/Index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/React.Sample.Owin/Content/Index.html b/src/React.Sample.Owin/Content/Index.html index 86969c695..e565dfcfc 100644 --- a/src/React.Sample.Owin/Content/Index.html +++ b/src/React.Sample.Owin/Content/Index.html @@ -18,7 +18,7 @@ > -@Html.ReactInitJavaScript(); +// at the top of your layout +@using React.AspNet + +// before the closing tag + + + +@Html.ReactInitJavaScript() ``` A full example is available in [the ReactJS.NET repository](https://github.com/reactjs/React.NET/tree/master/src/React.Sample.Webpack.CoreMvc). - -### Migrating from expose-loader - -Mixing ES6 class syntax with CommonJS `require` has been the source of a lot of confusion, so we no longer recommend using `expose-loader`, `module.exports`, or `require`. Instead, use `import` and `export` statements throughout your whole React codebase when using Webpack. It is still fine to use `require` in webpack's config directly. diff --git a/src/React.Sample.Webpack.CoreMvc/Content/components/expose-components.js b/src/React.Sample.Webpack.CoreMvc/Content/components/expose-components.js index afb2aa458..b89f85baf 100644 --- a/src/React.Sample.Webpack.CoreMvc/Content/components/expose-components.js +++ b/src/React.Sample.Webpack.CoreMvc/Content/components/expose-components.js @@ -17,4 +17,4 @@ global.ReactJss = { JssProvider, SheetsRegistry }; global.EmotionServer = { renderStylesToString }; global.Helmet = Helmet; -global.RootComponent = RootComponent; +global.Components = { RootComponent }; diff --git a/src/React.Sample.Webpack.CoreMvc/Views/Home/Index.cshtml b/src/React.Sample.Webpack.CoreMvc/Views/Home/Index.cshtml index 0ec8280d6..05947b737 100644 --- a/src/React.Sample.Webpack.CoreMvc/Views/Home/Index.cshtml +++ b/src/React.Sample.Webpack.CoreMvc/Views/Home/Index.cshtml @@ -12,12 +12,8 @@ var chainedFunctions = new ChainedRenderFunctions(emotionFunctions, styledComponentsFunctions, reactJssFunctions, helmetFunctions); } -@Html.ReactRouter("RootComponent", new { initialComments = Model.Comments, page = Model.Page }, renderFunctions: chainedFunctions) +@Html.ReactRouter("Components.RootComponent", new { initialComments = Model.Comments, page = Model.Page }, renderFunctions: chainedFunctions) @{ ViewBag.ServerStyles = styledComponentsFunctions.RenderedStyles + reactJssFunctions.RenderedStyles; ViewBag.HelmetTitle = helmetFunctions.RenderedHelmet?.GetValueOrDefault("title"); } - - - -@Html.ReactInitJavaScript() diff --git a/src/React.Sample.Webpack.CoreMvc/Views/Shared/_Layout.cshtml b/src/React.Sample.Webpack.CoreMvc/Views/Shared/_Layout.cshtml index 1a84c879b..85c560a96 100644 --- a/src/React.Sample.Webpack.CoreMvc/Views/Shared/_Layout.cshtml +++ b/src/React.Sample.Webpack.CoreMvc/Views/Shared/_Layout.cshtml @@ -1,3 +1,4 @@ +@using React.AspNet @@ -9,5 +10,9 @@ @RenderBody() + + + + @Html.ReactInitJavaScript() From fa52829d513a8e1acfb0d4f8e0b792316945b0b7 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 23 Feb 2020 00:21:30 -0500 Subject: [PATCH 383/530] Update dependency @types/reactstrap to v8.4.1 (#983) Co-authored-by: WhiteSource Renovate --- src/React.Sample.Mvc4/package-lock.json | 12 ++++++------ src/React.Sample.Mvc4/package.json | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/React.Sample.Mvc4/package-lock.json b/src/React.Sample.Mvc4/package-lock.json index a3de89d50..891c439d0 100644 --- a/src/React.Sample.Mvc4/package-lock.json +++ b/src/React.Sample.Mvc4/package-lock.json @@ -30,9 +30,9 @@ } }, "@types/reactstrap": { - "version": "8.0.6", - "resolved": "https://registry.npmjs.org/@types/reactstrap/-/reactstrap-8.0.6.tgz", - "integrity": "sha512-H4S9hg13q2gPLDcVIiow/hQ6Vahgwl9hs3wX5Kp481nJbG/dbx+sWAa3inLgktE5ESKcy6ww16sDfTt1s1Cgow==", + "version": "8.4.1", + "resolved": "https://registry.npmjs.org/@types/reactstrap/-/reactstrap-8.4.1.tgz", + "integrity": "sha512-7c0JDBTizNmKbf9yeqqO8eTmuqEW/RKuhJXnp7bDhF1SVfairXaHI69xRFT0GNHRuXrBkWQV4V+9BduNq6MJjg==", "dev": true, "requires": { "@types/react": "*", @@ -46,9 +46,9 @@ "dev": true }, "popper.js": { - "version": "1.16.0", - "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.16.0.tgz", - "integrity": "sha512-+G+EkOPoE5S/zChTpmBSSDYmhXJ5PsW8eMhH8cP/CQHMFPBG/kC9Y5IIw6qNYgdJ+/COf0ddY2li28iHaZRSjw==", + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.16.1.tgz", + "integrity": "sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ==", "dev": true }, "typescript": { diff --git a/src/React.Sample.Mvc4/package.json b/src/React.Sample.Mvc4/package.json index 4aec42c81..8a4a49841 100644 --- a/src/React.Sample.Mvc4/package.json +++ b/src/React.Sample.Mvc4/package.json @@ -9,7 +9,7 @@ "devDependencies": { "@types/react": "16.9.22", "@types/react-dom": "16.9.5", - "@types/reactstrap": "8.0.6", + "@types/reactstrap": "8.4.1", "typescript": "3.8.2" } } From 1f04c034ab4cb615d79ba72501b6f648090b49d3 Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Sun, 23 Feb 2020 20:33:03 -0800 Subject: [PATCH 384/530] Add support for webpack app manifest (#1028) * Add support for webpack app manifest * Implement automatic manifest reloading * Flag asset manifest feature as a beta --- site/jekyll/bundling/cassette.md | 2 +- site/jekyll/bundling/msbuild.md | 2 +- site/jekyll/bundling/weboptimizer.md | 2 +- site/jekyll/bundling/webpack.md | 47 +++++- src/React.AspNet/HtmlHelperExtensions.cs | 27 ++++ src/React.Core/IReactEnvironment.cs | 23 ++- src/React.Core/IReactSiteConfiguration.cs | 38 +++-- src/React.Core/JavaScriptEngineFactory.cs | 26 ++- src/React.Core/ReactAppAssetManifest.cs | 37 +++++ src/React.Core/ReactEnvironment.cs | 25 ++- src/React.Core/ReactSiteConfiguration.cs | 42 +++-- src/React.Sample.Webpack.CoreMvc/Startup.cs | 4 +- .../Views/Shared/_Layout.cshtml | 4 +- .../package-lock.json | 153 ++++++++++++++++++ src/React.Sample.Webpack.CoreMvc/package.json | 3 +- .../webpack.config.js | 25 ++- .../React.Tests/Core/ReactEnvironmentTest.cs | 48 ++++++ .../Mvc/HtmlHelperExtensionsTests.cs | 39 +++++ 18 files changed, 495 insertions(+), 52 deletions(-) create mode 100644 src/React.Core/ReactAppAssetManifest.cs diff --git a/site/jekyll/bundling/cassette.md b/site/jekyll/bundling/cassette.md index 3a1ab7e67..5de6acb92 100644 --- a/site/jekyll/bundling/cassette.md +++ b/site/jekyll/bundling/cassette.md @@ -5,7 +5,7 @@ title: Cassette (ASP.NET 4.x) > **Note:** > -> This guide applies only to ASP.NET 4.x +> This guide applies only to ASP.NET 4.x. Please consider using [webpack](/bundling/webpack.html) if possible. Just want to see the code? Check out the [sample project](https://github.com/reactjs/React.NET/tree/master/src/React.Sample.Cassette). diff --git a/site/jekyll/bundling/msbuild.md b/site/jekyll/bundling/msbuild.md index 3528c99b1..698a470a9 100644 --- a/site/jekyll/bundling/msbuild.md +++ b/site/jekyll/bundling/msbuild.md @@ -5,7 +5,7 @@ title: MSBuild (ASP.NET 4.x) > **Note:** > -> This guide applies only to ASP.NET 4.x +> This guide applies only to ASP.NET 4.x. Please consider using [webpack](/bundling/webpack.html) if possible. Just want to see the code? Check out the [sample project](https://github.com/reactjs/React.NET/tree/master/src/React.Sample.Mvc4). diff --git a/site/jekyll/bundling/weboptimizer.md b/site/jekyll/bundling/weboptimizer.md index 3d34575fd..71d321bbb 100644 --- a/site/jekyll/bundling/weboptimizer.md +++ b/site/jekyll/bundling/weboptimizer.md @@ -5,7 +5,7 @@ title: Bundling and Minification (ASP.NET 4.x) > **Note:** > -> This guide applies only to ASP.NET 4.x +> This guide applies only to ASP.NET 4.x. Please consider using [webpack](/bundling/webpack.html) if possible. Just want to see the code? Check out the [sample project](https://github.com/reactjs/React.NET/tree/master/src/React.Sample.Mvc4). diff --git a/site/jekyll/bundling/webpack.md b/site/jekyll/bundling/webpack.md index 5a942cd58..34e439589 100644 --- a/site/jekyll/bundling/webpack.md +++ b/site/jekyll/bundling/webpack.md @@ -45,13 +45,15 @@ global.Components = { RootComponent }; Once Webpack has been configured, run `npm run build` to build the bundles. Once you have verified that the bundle is being created correctly, you can modify your ReactJS.NET configuration (normally `App_Start\ReactConfig.cs`) to load the newly-created bundle. +Reference the runtime, vendor, and main app bundles that were generated: + ```csharp ReactSiteConfiguration.Configuration .SetLoadBabel(false) .SetLoadReact(false) .AddScriptWithoutTransform("~/dist/runtime.js") .AddScriptWithoutTransform("~/dist/vendor.js") - .AddScriptWithoutTransform("~/dist/components.js"); + .AddScriptWithoutTransform("~/dist/main.js"); ``` This will load all your components into the `Components` global, which can be used from `Html.React` to render any of the components: @@ -71,11 +73,44 @@ Reference the built bundle directly in a script tag at the end of the page in `_ // at the top of your layout @using React.AspNet -// before the closing tag - - - -@Html.ReactInitJavaScript() + + + + + @RenderBody() + + + + @Html.ReactInitJavascript() + ``` A full example is available in [the ReactJS.NET repository](https://github.com/reactjs/React.NET/tree/master/src/React.Sample.Webpack.CoreMvc). + +### 💡 Beta feature: Asset manifest handling + +An asset manifest is generated by the `webpack-asset-manifest` plugin, written to `asset-manifest.json`. See the webpack config example above for details on how to set this up. This manifest file contains a list of all of the bundles required to run your app. To use it, call `.SetReactAppBuildPath("~/dist")`. You may still provide exact paths to additional scripts by calling `AddScriptWithoutTransform("~/dist/path-to-your-file.js")`. + +```csharp +ReactSiteConfiguration.Configuration + .SetLoadBabel(false) + .SetLoadReact(false) + .SetReactAppBuildPath("~/dist"); +``` + +Then, make calls to `@Html.ReactGetScriptPaths()` and `@Html.ReactGetStylePaths()` where you would normally reference styles and scripts from your layout. + +```html +// at the top of your layout +@using React.AspNet + + + @Html.ReactGetStylePaths() + + + @RenderBody() + + @Html.ReactGetScriptPaths() + @Html.ReactInitJavascript() + +``` diff --git a/src/React.AspNet/HtmlHelperExtensions.cs b/src/React.AspNet/HtmlHelperExtensions.cs index d40fb32ef..cb33e4cae 100644 --- a/src/React.AspNet/HtmlHelperExtensions.cs +++ b/src/React.AspNet/HtmlHelperExtensions.cs @@ -7,6 +7,7 @@ using System; using System.IO; +using System.Linq; using System.Text; #if LEGACYASPNET @@ -169,6 +170,32 @@ public static IHtmlString ReactInitJavaScript(this IHtmlHelper htmlHelper, bool } } + /// + /// Returns script tags based on the webpack asset manifest + /// + /// + /// + public static IHtmlString ReactGetScriptPaths(this IHtmlHelper htmlHelper) + { + string nonce = Environment.Configuration.ScriptNonceProvider != null + ? $" nonce=\"{Environment.Configuration.ScriptNonceProvider()}\"" + : ""; + + return new HtmlString(string.Join("", Environment.GetScriptPaths() + .Select(scriptPath => $""))); + } + + /// + /// Returns style tags based on the webpack asset manifest + /// + /// + /// + public static IHtmlString ReactGetStylePaths(this IHtmlHelper htmlHelper) + { + return new HtmlString(string.Join("", Environment.GetStylePaths() + .Select(stylePath => $""))); + } + private static IHtmlString RenderToString(Action withWriter) { var stringWriter = _sharedStringWriter; diff --git a/src/React.Core/IReactEnvironment.cs b/src/React.Core/IReactEnvironment.cs index 648a989ed..2b8d0927d 100644 --- a/src/React.Core/IReactEnvironment.cs +++ b/src/React.Core/IReactEnvironment.cs @@ -6,12 +6,13 @@ */ +using System.Collections.Generic; using System.IO; namespace React { /// - /// Request-specific ReactJS.NET environment. This is unique to the individual request and is + /// Request-specific ReactJS.NET environment. This is unique to the individual request and is /// not shared. /// public interface IReactEnvironment @@ -51,12 +52,12 @@ public interface IReactEnvironment /// /// Attempts to execute the provided JavaScript code using a non-pooled JavaScript engine (ie. - /// creates a new JS engine per-thread). This is because Babel uses a LOT of memory, so we + /// creates a new JS engine per-thread). This is because Babel uses a LOT of memory, so we /// should completely dispose any engines that have loaded Babel in order to conserve memory. - /// + /// /// If an exception is thrown, retries the execution using a new thread (and hence a new engine) /// with a larger maximum stack size. - /// This is required because JSXTransformer uses a huge stack which ends up being larger + /// This is required because JSXTransformer uses a huge stack which ends up being larger /// than what ASP.NET allows by default (256 KB). /// /// Type to return from JavaScript call @@ -93,7 +94,7 @@ public interface IReactEnvironment IReactComponent CreateComponent(IReactComponent component, bool clientOnly = false); /// - /// Renders the JavaScript required to initialise all components client-side. This will + /// Renders the JavaScript required to initialise all components client-side. This will /// attach event handlers to the server-rendered HTML. /// /// True if server-side rendering will be bypassed. Defaults to false. @@ -116,12 +117,22 @@ public interface IReactEnvironment IReactSiteConfiguration Configuration { get; } /// - /// Renders the JavaScript required to initialise all components client-side. This will + /// Renders the JavaScript required to initialise all components client-side. This will /// attach event handlers to the server-rendered HTML. /// /// The to which the content is written /// True if server-side rendering will be bypassed. Defaults to false. /// JavaScript for all components void GetInitJavaScript(TextWriter writer, bool clientOnly = false); + + /// + /// Returns a list of paths to scripts generated by the React app + /// + IEnumerable GetScriptPaths(); + + /// + /// Returns a list of paths to stylesheets generated by the React app + /// + IEnumerable GetStylePaths(); } } diff --git a/src/React.Core/IReactSiteConfiguration.cs b/src/React.Core/IReactSiteConfiguration.cs index cd4357d7a..5bd18d0b4 100644 --- a/src/React.Core/IReactSiteConfiguration.cs +++ b/src/React.Core/IReactSiteConfiguration.cs @@ -19,11 +19,11 @@ public interface IReactSiteConfiguration /// /// Adds a script to the list of scripts that are executed. This should be called for all /// React components and their dependencies. If the script does not have any JSX in it - /// (for example, it's built using Webpack or Gulp), use + /// (for example, it's built using Webpack or Gulp), use /// instead. /// /// - /// Name of the file to execute. Should be a server relative path starting with ~ (eg. + /// Name of the file to execute. Should be a server relative path starting with ~ (eg. /// ~/Scripts/Awesome.js) /// /// This configuration, for chaining @@ -35,7 +35,7 @@ public interface IReactSiteConfiguration /// more efficient. /// /// - /// Name of the file to execute. Should be a server relative path starting with ~ (eg. + /// Name of the file to execute. Should be a server relative path starting with ~ (eg. /// ~/Scripts/Awesome.js) /// /// The configuration, for chaining @@ -48,15 +48,15 @@ public interface IReactSiteConfiguration IEnumerable Scripts { get; } /// - /// Gets a list of all the scripts that have been added to this configuration and do not + /// Gets a list of all the scripts that have been added to this configuration and do not /// require JSX transformation to be run. /// - IEnumerable ScriptsWithoutTransform { get; } + IEnumerable ScriptsWithoutTransform { get; } /// /// Gets or sets whether JavaScript engines should be reused across requests. /// - /// + /// bool ReuseJavaScriptEngines { get; set; } /// /// Sets whether JavaScript engines should be reused across requests. @@ -79,23 +79,23 @@ public interface IReactSiteConfiguration IReactSiteConfiguration SetJsonSerializerSettings(JsonSerializerSettings settings); /// - /// Gets or sets the number of engines to initially start when a pool is created. + /// Gets or sets the number of engines to initially start when a pool is created. /// Defaults to 10. /// int? StartEngines { get; set; } /// - /// Sets the number of engines to initially start when a pool is created. + /// Sets the number of engines to initially start when a pool is created. /// Defaults to 10. /// IReactSiteConfiguration SetStartEngines(int? startEngines); /// - /// Gets or sets the maximum number of engines that will be created in the pool. + /// Gets or sets the maximum number of engines that will be created in the pool. /// Defaults to 25. /// int? MaxEngines { get; set; } /// - /// Sets the maximum number of engines that will be created in the pool. + /// Sets the maximum number of engines that will be created in the pool. /// Defaults to 25. /// IReactSiteConfiguration SetMaxEngines(int? maxEngines); @@ -129,7 +129,7 @@ public interface IReactSiteConfiguration /// bool LoadReact { get; set; } /// - /// Sets whether the built-in version of React is loaded. If false, you must + /// Sets whether the built-in version of React is loaded. If false, you must /// provide your own version of React. /// /// The configuration, for chaining @@ -204,17 +204,29 @@ public interface IReactSiteConfiguration IReactSiteConfiguration SetExceptionHandler(Action handler); /// - /// A provider that returns a nonce to be used on any script tags on the page. + /// A provider that returns a nonce to be used on any script tags on the page. /// This value must match the nonce used in the Content Security Policy header on the response. /// Func ScriptNonceProvider { get; set; } /// - /// Sets a provider that returns a nonce to be used on any script tags on the page. + /// Sets a provider that returns a nonce to be used on any script tags on the page. /// This value must match the nonce used in the Content Security Policy header on the response. /// /// /// IReactSiteConfiguration SetScriptNonceProvider(Func provider); + + /// + /// The path to the application bundles built by webpack or create-react-app + /// + string ReactAppBuildPath { get; set; } + + /// + /// Sets the path to the application bundles built by webpack or create-react-app + /// + /// + /// + IReactSiteConfiguration SetReactAppBuildPath(string reactAppBuildPath); } } diff --git a/src/React.Core/JavaScriptEngineFactory.cs b/src/React.Core/JavaScriptEngineFactory.cs index d60956264..06b044f90 100644 --- a/src/React.Core/JavaScriptEngineFactory.cs +++ b/src/React.Core/JavaScriptEngineFactory.cs @@ -84,8 +84,11 @@ IFileSystem fileSystem protected virtual IJsPool CreatePool() { var allFiles = _config.Scripts - .Concat(_config.ScriptsWithoutTransform) - .Select(_fileSystem.MapPath); + .Concat(_config.ScriptsWithoutTransform) + .Concat(_config.ReactAppBuildPath != null + ? new[] { $"{_config.ReactAppBuildPath}/asset-manifest.json"} + : Enumerable.Empty()) + .Select(_fileSystem.MapPath); var poolConfig = new JsPoolConfig { @@ -140,7 +143,7 @@ protected virtual void InitialiseEngine(IJsEngine engine) if (!_config.LoadReact && _scriptLoadException == null) { // We expect the user to have loaded their own version of React in the scripts that - // were loaded above, let's ensure that's the case. + // were loaded above, let's ensure that's the case. EnsureReactLoaded(engine); } } @@ -171,6 +174,23 @@ private void LoadResource(IJsEngine engine, string resourceName, Assembly assemb /// Engine to load scripts into private void LoadUserScripts(IJsEngine engine) { + if (_config.ReactAppBuildPath != null) + { + var manifest = ReactAppAssetManifest.LoadManifest(_config, _fileSystem, _cache, useCacheRead: false); + foreach (var file in manifest.Entrypoints?.Where(x => x != null && x.EndsWith(".js"))) + { + if (_config.AllowJavaScriptPrecompilation + && engine.TryExecuteFileWithPrecompilation(_cache, _fileSystem, file)) + { + // Do nothing. + } + else + { + engine.ExecuteFile(_fileSystem, file); + } + } + } + foreach (var file in _config.ScriptsWithoutTransform) { try diff --git a/src/React.Core/ReactAppAssetManifest.cs b/src/React.Core/ReactAppAssetManifest.cs new file mode 100644 index 000000000..1bd9a8453 --- /dev/null +++ b/src/React.Core/ReactAppAssetManifest.cs @@ -0,0 +1,37 @@ +/* + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +using System; +using System.Collections.Generic; +using Newtonsoft.Json; + +namespace React +{ + internal class ReactAppAssetManifest + { + public Dictionary Files { get; set; } + public List Entrypoints { get; set; } + + public static ReactAppAssetManifest LoadManifest(IReactSiteConfiguration config, IFileSystem fileSystem, ICache cache, bool useCacheRead) + { + string cacheKey = "REACT_APP_MANIFEST"; + + if (useCacheRead) + { + var cachedManifest = cache.Get(cacheKey); + if (cachedManifest != null) + return cachedManifest; + } + + var manifestString = fileSystem.ReadAsString($"{config.ReactAppBuildPath}/asset-manifest.json"); + var manifest = JsonConvert.DeserializeObject(manifestString); + + cache.Set(cacheKey, manifest, TimeSpan.FromHours(1)); + return manifest; + } + } +} diff --git a/src/React.Core/ReactEnvironment.cs b/src/React.Core/ReactEnvironment.cs index 9c1a10db5..eab1dbf94 100644 --- a/src/React.Core/ReactEnvironment.cs +++ b/src/React.Core/ReactEnvironment.cs @@ -9,8 +9,8 @@ using System.Collections.Generic; using System.Diagnostics; using System.IO; +using System.Linq; using System.Reflection; -using System.Text; using System.Threading; using JavaScriptEngineSwitcher.Core; using JSPool; @@ -67,6 +67,7 @@ public class ReactEnvironment : IReactEnvironment, IDisposable /// Version number of ReactJS.NET /// protected readonly Lazy _version = new Lazy(GetVersion); + /// /// Contains an engine acquired from a pool of engines. Only used if /// is enabled. @@ -348,6 +349,28 @@ public virtual void GetInitJavaScript(TextWriter writer, bool clientOnly = false } } + private ReactAppAssetManifest GetAppManifest() => ReactAppAssetManifest.LoadManifest(_config, _fileSystem, _cache, useCacheRead: true); + + /// + /// Returns a list of paths to scripts generated by the React app + /// + public virtual IEnumerable GetScriptPaths() + { + return GetAppManifest().Entrypoints + .Where(path => path.EndsWith(".js")) + .Select(file => $"{_config.ReactAppBuildPath.Replace("~/", "/")}/{file}"); + } + + /// + /// Returns a list of paths to stylesheets generated by the React app + /// + public virtual IEnumerable GetStylePaths() + { + return GetAppManifest().Entrypoints + .Where(path => path.EndsWith(".css")) + .Select(file => $"{_config.ReactAppBuildPath.Replace("~/", "/")}/{file}"); + } + /// /// Attempts to execute the provided JavaScript code using a non-pooled JavaScript engine (ie. /// creates a new JS engine per-thread). This is because Babel uses a LOT of memory, so we diff --git a/src/React.Core/ReactSiteConfiguration.cs b/src/React.Core/ReactSiteConfiguration.cs index ef929750a..e4b36d29c 100644 --- a/src/React.Core/ReactSiteConfiguration.cs +++ b/src/React.Core/ReactSiteConfiguration.cs @@ -44,7 +44,7 @@ public ReactSiteConfiguration() }; UseDebugReact = false; UseServerSideRendering = true; - ExceptionHandler = (Exception ex, string ComponentName, string ContainerId) => + ExceptionHandler = (Exception ex, string ComponentName, string ContainerId) => throw new ReactServerRenderingException(string.Format( "Error while rendering \"{0}\" to \"{2}\": {1}", ComponentName, @@ -54,7 +54,7 @@ public ReactSiteConfiguration() } /// - /// All the scripts that have been added to this configuration and require JSX + /// All the scripts that have been added to this configuration and require JSX /// transformation to be run. /// private readonly IList _scriptFiles = new List(); @@ -67,11 +67,11 @@ public ReactSiteConfiguration() /// /// Adds a script to the list of scripts that are executed. This should be called for all /// React components and their dependencies. If the script does not have any JSX in it - /// (for example, it's built using Webpack or Gulp), use + /// (for example, it's built using Webpack or Gulp), use /// instead. /// /// - /// Name of the file to execute. Should be a server relative path starting with ~ (eg. + /// Name of the file to execute. Should be a server relative path starting with ~ (eg. /// ~/Scripts/Awesome.js) /// /// This configuration, for chaining @@ -87,7 +87,7 @@ public IReactSiteConfiguration AddScript(string filename) /// more efficient. /// /// - /// Name of the file to execute. Should be a server relative path starting with ~ (eg. + /// Name of the file to execute. Should be a server relative path starting with ~ (eg. /// ~/Scripts/Awesome.js) /// /// The configuration, for chaining @@ -169,12 +169,12 @@ public IReactSiteConfiguration SetReuseJavaScriptEngines(bool value) } /// - /// Gets or sets the number of engines to initially start when a pool is created. + /// Gets or sets the number of engines to initially start when a pool is created. /// Defaults to 10. /// public int? StartEngines { get; set; } /// - /// Sets the number of engines to initially start when a pool is created. + /// Sets the number of engines to initially start when a pool is created. /// Defaults to 10. /// public IReactSiteConfiguration SetStartEngines(int? startEngines) @@ -184,12 +184,12 @@ public IReactSiteConfiguration SetStartEngines(int? startEngines) } /// - /// Gets or sets the maximum number of engines that will be created in the pool. + /// Gets or sets the maximum number of engines that will be created in the pool. /// Defaults to 25. /// public int? MaxEngines { get; set; } /// - /// Sets the maximum number of engines that will be created in the pool. + /// Sets the maximum number of engines that will be created in the pool. /// Defaults to 25. /// public IReactSiteConfiguration SetMaxEngines(int? maxEngines) @@ -237,7 +237,7 @@ public IReactSiteConfiguration SetAllowJavaScriptPrecompilation(bool allowJavaSc public bool LoadReact { get; set; } /// - /// Sets whether the built-in version of React is loaded. If false, you must + /// Sets whether the built-in version of React is loaded. If false, you must /// provide your own version of React. /// /// The configuration, for chaining @@ -332,7 +332,7 @@ public IReactSiteConfiguration DisableServerSideRendering() public Action ExceptionHandler { get; set; } /// - /// + /// /// /// /// @@ -343,13 +343,13 @@ public IReactSiteConfiguration SetExceptionHandler(Action - /// A provider that returns a nonce to be used on any script tags on the page. + /// A provider that returns a nonce to be used on any script tags on the page. /// This value must match the nonce used in the Content Security Policy header on the response. /// public Func ScriptNonceProvider { get; set; } /// - /// Sets a provider that returns a nonce to be used on any script tags on the page. + /// Sets a provider that returns a nonce to be used on any script tags on the page. /// This value must match the nonce used in the Content Security Policy header on the response. /// /// @@ -359,5 +359,21 @@ public IReactSiteConfiguration SetScriptNonceProvider(Func provider) ScriptNonceProvider = provider; return this; } + + /// + /// The path to the application bundles built by webpack or create-react-app + /// + public string ReactAppBuildPath { get; set; } + + /// + /// Sets the path to the application bundles built by webpack or create-react-app + /// + /// + /// + public IReactSiteConfiguration SetReactAppBuildPath(string reactAppBuildPath) + { + ReactAppBuildPath = reactAppBuildPath; + return this; + } } } diff --git a/src/React.Sample.Webpack.CoreMvc/Startup.cs b/src/React.Sample.Webpack.CoreMvc/Startup.cs index e20fe016b..10766714e 100644 --- a/src/React.Sample.Webpack.CoreMvc/Startup.cs +++ b/src/React.Sample.Webpack.CoreMvc/Startup.cs @@ -44,7 +44,9 @@ public void Configure(IApplicationBuilder app) .SetLoadReact(false) .AddScriptWithoutTransform("~/dist/runtime.js") .AddScriptWithoutTransform("~/dist/vendor.js") - .AddScriptWithoutTransform("~/dist/components.js"); + .AddScriptWithoutTransform("~/dist/main.js"); + + // Beta feature: Call .SetReactAppBuildPath("~/dist") to use the asset manifest instead of listing each file }); app.UseStaticFiles(); diff --git a/src/React.Sample.Webpack.CoreMvc/Views/Shared/_Layout.cshtml b/src/React.Sample.Webpack.CoreMvc/Views/Shared/_Layout.cshtml index 85c560a96..effaee6de 100644 --- a/src/React.Sample.Webpack.CoreMvc/Views/Shared/_Layout.cshtml +++ b/src/React.Sample.Webpack.CoreMvc/Views/Shared/_Layout.cshtml @@ -7,12 +7,14 @@ @Html.Raw(ViewBag.ServerStyles) + @* Beta feature: call @Html.ReactGetStylePaths() to get all style tags *@ @RenderBody() + @* Beta feature: call @Html.ReactGetScriptPaths() to get all style tags *@ - + @Html.ReactInitJavaScript() diff --git a/src/React.Sample.Webpack.CoreMvc/package-lock.json b/src/React.Sample.Webpack.CoreMvc/package-lock.json index e50cf6f59..a45c4a3ec 100644 --- a/src/React.Sample.Webpack.CoreMvc/package-lock.json +++ b/src/React.Sample.Webpack.CoreMvc/package-lock.json @@ -2984,6 +2984,44 @@ "is-arrayish": "^0.2.1" } }, + "es-abstract": { + "version": "1.17.4", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.4.tgz", + "integrity": "sha512-Ae3um/gb8F0mui/jPL+QiqmglkUsaQf7FwBEHYIFkztkneosu9imhqHpBzQ3h1vit8t5iQ74t6PEVvphBZiuiQ==", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.1.5", + "is-regex": "^1.0.5", + "object-inspect": "^1.7.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.0", + "string.prototype.trimleft": "^2.1.1", + "string.prototype.trimright": "^2.1.1" + }, + "dependencies": { + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true + } + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", @@ -3369,6 +3407,17 @@ "readable-stream": "^2.0.0" } }, + "fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, "fs-write-stream-atomic": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", @@ -4059,6 +4108,15 @@ "resolved": "https://registry.npmjs.org/gud/-/gud-1.0.0.tgz", "integrity": "sha512-zGEOVKFM5sVPPrYs7J5/hYEw2Pof8KCyOwyhG8sAF26mCAeUFAcYPu1mwB7hhpIP29zOIBaDqwuHdLp0jvZXjw==" }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } + }, "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", @@ -4332,6 +4390,12 @@ "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", "dev": true }, + "is-callable": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", + "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==", + "dev": true + }, "is-data-descriptor": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", @@ -4352,6 +4416,12 @@ } } }, + "is-date-object": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", + "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==", + "dev": true + }, "is-descriptor": { "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", @@ -4448,11 +4518,29 @@ } } }, + "is-regex": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", + "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, "is-stream": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" }, + "is-symbol": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", + "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", + "dev": true, + "requires": { + "has-symbols": "^1.0.1" + } + }, "is-windows": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", @@ -4534,6 +4622,15 @@ "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", "dev": true }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + }, "jss": { "version": "9.8.7", "resolved": "https://registry.npmjs.org/jss/-/jss-9.8.7.tgz", @@ -5141,6 +5238,12 @@ } } }, + "object-inspect": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz", + "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==", + "dev": true + }, "object-keys": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz", @@ -5175,6 +5278,18 @@ } } }, + "object.entries": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.1.tgz", + "integrity": "sha512-ilqR7BgdyZetJutmDPfXCDffGa0/Yzl2ivVNpbx/g4UeWrCdRnFDUBrKJGLhGieRHDATnyZXWBeCb29k9CJysQ==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1", + "function-bind": "^1.1.1", + "has": "^1.0.3" + } + }, "object.pick": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", @@ -6530,6 +6645,26 @@ "strip-ansi": "^5.1.0" } }, + "string.prototype.trimleft": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.1.tgz", + "integrity": "sha512-iu2AGd3PuP5Rp7x2kEZCrB2Nf41ehzh+goo8TV7z8/XDBbsvc6HQIlUl9RjkZ4oyrW1XM5UwlGl1oVEaDjg6Ag==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "function-bind": "^1.1.1" + } + }, + "string.prototype.trimright": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.1.tgz", + "integrity": "sha512-qFvWL3/+QIgZXVmJBfpHmxLB7xsUXz6HsUmP8+5dRaC3Q7oKUv9Vo6aMCRZC1smrtyECFsIT30PqBJ1gTjAs+g==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "function-bind": "^1.1.1" + } + }, "string_decoder": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", @@ -6915,6 +7050,12 @@ "imurmurhash": "^0.1.4" } }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true + }, "unset-value": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", @@ -7189,6 +7330,18 @@ } } }, + "webpack-manifest-plugin": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/webpack-manifest-plugin/-/webpack-manifest-plugin-2.2.0.tgz", + "integrity": "sha512-9S6YyKKKh/Oz/eryM1RyLVDVmy3NSPV0JXMRhZ18fJsq+AwGxUY34X54VNwkzYcEmEkDwNxuEOboCZEebJXBAQ==", + "dev": true, + "requires": { + "fs-extra": "^7.0.0", + "lodash": ">=3.5 <5", + "object.entries": "^1.1.0", + "tapable": "^1.0.0" + } + }, "webpack-sources": { "version": "1.4.3", "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", diff --git a/src/React.Sample.Webpack.CoreMvc/package.json b/src/React.Sample.Webpack.CoreMvc/package.json index f7cddd577..ce33ae95f 100644 --- a/src/React.Sample.Webpack.CoreMvc/package.json +++ b/src/React.Sample.Webpack.CoreMvc/package.json @@ -29,6 +29,7 @@ "babel-loader": "8.0.6", "babel-runtime": "6.26.0", "webpack": "4.41.6", - "webpack-cli": "3.3.11" + "webpack-cli": "3.3.11", + "webpack-manifest-plugin": "^2.2.0" } } diff --git a/src/React.Sample.Webpack.CoreMvc/webpack.config.js b/src/React.Sample.Webpack.CoreMvc/webpack.config.js index 9b7f9632c..0b4427a63 100644 --- a/src/React.Sample.Webpack.CoreMvc/webpack.config.js +++ b/src/React.Sample.Webpack.CoreMvc/webpack.config.js @@ -1,11 +1,10 @@ const path = require('path'); +const ManifestPlugin = require('webpack-manifest-plugin'); module.exports = { - entry: { - components: './Content/components/expose-components.js', - }, + entry: './Content/components/expose-components.js', output: { - filename: '[name].js', + filename: '[name].js', // change this to '[name].[contenthash:8].js' if using the asset manifest for better caching globalObject: 'this', path: path.resolve(__dirname, 'wwwroot/dist'), publicPath: 'dist/' @@ -34,4 +33,22 @@ module.exports = { }, ], }, + plugins: [ + new ManifestPlugin({ + fileName: 'asset-manifest.json', + generate: (seed, files) => { + const manifestFiles = files.reduce((manifest, file) => { + manifest[file.name] = file.path; + return manifest; + }, seed); + + const entrypointFiles = files.filter(x => x.isInitial && !x.name.endsWith('.map')).map(x => x.path); + + return { + files: manifestFiles, + entrypoints: entrypointFiles, + }; + }, + }), + ] }; diff --git a/tests/React.Tests/Core/ReactEnvironmentTest.cs b/tests/React.Tests/Core/ReactEnvironmentTest.cs index 4eab8bf5d..9f50b3df6 100644 --- a/tests/React.Tests/Core/ReactEnvironmentTest.cs +++ b/tests/React.Tests/Core/ReactEnvironmentTest.cs @@ -19,6 +19,26 @@ namespace React.Tests.Core { public class ReactEnvironmentTest { + private const string _testAppManifest = @" + { + ""files"": { + ""main.css"": ""/static/css/main.43b75f57.chunk.css"", + ""main.js"": ""/static/js/main.04394e4f.chunk.js"", + ""main.js.map"": ""/static/js/main.04394e4f.chunk.js.map"", + ""runtime-main.js"": ""/static/js/runtime-main.62ca1b0d.js"", + ""runtime-main.js.map"": ""/static/js/runtime-main.62ca1b0d.js.map"", + ""another-stylesheet.css"": ""/static/css/another-stylesheet.css"", + ""static/js/2.a49d4355.chunk.js"": ""/static/js/2.a49d4355.chunk.js"", + ""static/js/2.a49d4355.chunk.js.map"": ""/static/js/2.a49d4355.chunk.js.map"", + }, + ""entrypoints"": [ + ""static/js/runtime-main.62ca1b0d.js"", + ""static/css/main.43b75f57.chunk.css"", + ""static/js/main.04394e4f.chunk.js"", + ""static/css/another-stylesheet.css"" + ] +}"; + [Fact] public void ExecuteWithBabelWithNoNewThread() { @@ -170,6 +190,34 @@ public void SSRInitSkippedIfNoComponents(bool renderComponent, int ssrTimes) mocks.Engine.Verify(x => x.Evaluate("console.getCalls()"), Times.Exactly(ssrTimes)); } + [Fact] + public void ScriptTagsReturned() + { + var mocks = new Mocks(); + mocks.Config.SetupGet(x => x.ReactAppBuildPath).Returns("~/dist"); + mocks.FileSystem.Setup(x => x.ReadAsString("~/dist/asset-manifest.json")).Returns(_testAppManifest); + var environment = mocks.CreateReactEnvironment(); + + var scripts = environment.GetScriptPaths().ToList(); + Assert.Equal(2, scripts.Count); + Assert.Equal("/dist/static/js/runtime-main.62ca1b0d.js", scripts[0]); + Assert.Equal("/dist/static/js/main.04394e4f.chunk.js", scripts[1]); + } + + [Fact] + public void StyleTagsReturned() + { + var mocks = new Mocks(); + mocks.Config.SetupGet(x => x.ReactAppBuildPath).Returns("~/dist"); + mocks.FileSystem.Setup(x => x.ReadAsString("~/dist/asset-manifest.json")).Returns(_testAppManifest); + var environment = mocks.CreateReactEnvironment(); + + var styles = environment.GetStylePaths().ToList(); + Assert.Equal(2, styles.Count); + Assert.Equal("/dist/static/css/main.43b75f57.chunk.css", styles[0]); + Assert.Equal("/dist/static/css/another-stylesheet.css", styles[1]); + } + public class Mocks { public Mock Engine { get; private set; } diff --git a/tests/React.Tests/Mvc/HtmlHelperExtensionsTests.cs b/tests/React.Tests/Mvc/HtmlHelperExtensionsTests.cs index 696804917..4bdfdbace 100644 --- a/tests/React.Tests/Mvc/HtmlHelperExtensionsTests.cs +++ b/tests/React.Tests/Mvc/HtmlHelperExtensionsTests.cs @@ -270,5 +270,44 @@ public void RenderFunctionsCalledNonLazily() Assert.Equal("HTML", result.ToHtmlString()); } + + [Theory] + [InlineData(false)] + [InlineData(true)] + public void ReactGetScriptPaths(bool withNonce) + { + var config = new Mock(); + var environment = ConfigureMockEnvironment(config.Object); + + if (withNonce) + { + config.Setup(x => x.ScriptNonceProvider).Returns(() => "test1234"); + } + + environment.Setup(x => x.GetScriptPaths()).Returns(new[] { "/dist/vendor.js", "/dist/app.js" }); + + var result = HtmlHelperExtensions.ReactGetScriptPaths(null); + + if (withNonce) + { + Assert.Equal("", result.ToHtmlString()); + } + else + { + Assert.Equal("", result.ToHtmlString()); + } + } + + [Fact] + public void ReactGetStylePaths() + { + var environment = ConfigureMockEnvironment(); + + environment.Setup(x => x.GetStylePaths()).Returns(new[] { "/dist/vendor.css", "/dist/app.css" }); + + var result = HtmlHelperExtensions.ReactGetStylePaths(null); + + Assert.Equal("", result.ToHtmlString()); + } } } From dd73a433141cd618b99bc9e870687a6091ed13ab Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Sun, 23 Feb 2020 23:33:41 -0500 Subject: [PATCH 385/530] 5.2.0-beta1 --- build.proj | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.proj b/build.proj index 400d3ae8d..f6be88cd6 100644 --- a/build.proj +++ b/build.proj @@ -10,8 +10,8 @@ of patent rights can be found in the PATENTS file in the same directory. 5 - 1 - 2 + 2 + 0-beta1 0 http://reactjs.net/packages/ $(MSBuildProjectDirectory)\tools\MSBuildTasks From a8056701dc5035e9a871000e47dc9506ea6133b2 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 23 Feb 2020 23:34:37 -0500 Subject: [PATCH 386/530] Pin dependency webpack-manifest-plugin to 2.2.0 (#1039) Co-authored-by: WhiteSource Renovate --- src/React.Sample.Webpack.CoreMvc/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/React.Sample.Webpack.CoreMvc/package.json b/src/React.Sample.Webpack.CoreMvc/package.json index ce33ae95f..75633fd50 100644 --- a/src/React.Sample.Webpack.CoreMvc/package.json +++ b/src/React.Sample.Webpack.CoreMvc/package.json @@ -30,6 +30,6 @@ "babel-runtime": "6.26.0", "webpack": "4.41.6", "webpack-cli": "3.3.11", - "webpack-manifest-plugin": "^2.2.0" + "webpack-manifest-plugin": "2.2.0" } } From 4cef262144f753ce1cb18be1742c59dea1bb5ae4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 25 Feb 2020 05:41:38 -0800 Subject: [PATCH 387/530] Bump nokogiri from 1.10.4 to 1.10.8 in /site/jekyll (#1041) Bumps [nokogiri](https://github.com/sparklemotion/nokogiri) from 1.10.4 to 1.10.8. - [Release notes](https://github.com/sparklemotion/nokogiri/releases) - [Changelog](https://github.com/sparklemotion/nokogiri/blob/master/CHANGELOG.md) - [Commits](https://github.com/sparklemotion/nokogiri/compare/v1.10.4...v1.10.8) Signed-off-by: dependabot[bot] --- site/jekyll/Gemfile.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/site/jekyll/Gemfile.lock b/site/jekyll/Gemfile.lock index 8392e8af8..aba6c494e 100644 --- a/site/jekyll/Gemfile.lock +++ b/site/jekyll/Gemfile.lock @@ -41,9 +41,9 @@ GEM maruku (0.7.0) mini_portile2 (2.4.0) multi_json (1.12.1) - nokogiri (1.10.4) + nokogiri (1.10.8) mini_portile2 (~> 2.4.0) - nokogiri (1.10.4-x64-mingw32) + nokogiri (1.10.8-x64-mingw32) mini_portile2 (~> 2.4.0) nokogumbo (1.4.10) nokogiri From d5fd0ac1dbfe9b9520a26f5a6c80e40ef77f8d4e Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Tue, 25 Feb 2020 19:44:32 +0000 Subject: [PATCH 388/530] Update dependency @types/react to v16.9.23 --- src/React.Sample.Mvc4/package-lock.json | 6 +++--- src/React.Sample.Mvc4/package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/React.Sample.Mvc4/package-lock.json b/src/React.Sample.Mvc4/package-lock.json index 891c439d0..55b219adf 100644 --- a/src/React.Sample.Mvc4/package-lock.json +++ b/src/React.Sample.Mvc4/package-lock.json @@ -11,9 +11,9 @@ "dev": true }, "@types/react": { - "version": "16.9.22", - "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.22.tgz", - "integrity": "sha512-7OSt4EGiLvy0h5R7X+r0c7S739TCU/LvWbkNOrm10lUwNHe7XPz5OLhLOSZeCkqO9JSCly1NkYJ7ODTUqVnHJQ==", + "version": "16.9.23", + "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.23.tgz", + "integrity": "sha512-SsGVT4E7L2wLN3tPYLiF20hmZTPGuzaayVunfgXzUn1x4uHVsKH6QDJQ/TdpHqwsTLd4CwrmQ2vOgxN7gE24gw==", "dev": true, "requires": { "@types/prop-types": "*", diff --git a/src/React.Sample.Mvc4/package.json b/src/React.Sample.Mvc4/package.json index 8a4a49841..8893566fa 100644 --- a/src/React.Sample.Mvc4/package.json +++ b/src/React.Sample.Mvc4/package.json @@ -7,7 +7,7 @@ "lint:ts": "tsc" }, "devDependencies": { - "@types/react": "16.9.22", + "@types/react": "16.9.23", "@types/react-dom": "16.9.5", "@types/reactstrap": "8.4.1", "typescript": "3.8.2" From 3197e1bc1ed4bba2a2dae3507afa759545a43be9 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Wed, 26 Feb 2020 19:41:10 +0000 Subject: [PATCH 389/530] Update dependency @types/reactstrap to v8.4.2 --- src/React.Sample.Mvc4/package-lock.json | 6 +++--- src/React.Sample.Mvc4/package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/React.Sample.Mvc4/package-lock.json b/src/React.Sample.Mvc4/package-lock.json index 55b219adf..6df7d3d83 100644 --- a/src/React.Sample.Mvc4/package-lock.json +++ b/src/React.Sample.Mvc4/package-lock.json @@ -30,9 +30,9 @@ } }, "@types/reactstrap": { - "version": "8.4.1", - "resolved": "https://registry.npmjs.org/@types/reactstrap/-/reactstrap-8.4.1.tgz", - "integrity": "sha512-7c0JDBTizNmKbf9yeqqO8eTmuqEW/RKuhJXnp7bDhF1SVfairXaHI69xRFT0GNHRuXrBkWQV4V+9BduNq6MJjg==", + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/@types/reactstrap/-/reactstrap-8.4.2.tgz", + "integrity": "sha512-ag4hfFqBZaeoNSSTKjCtedvdcO68QqqlBrFd3obg94JSmhgNTmHz50BvNJkf9NjSzx1yGTW4l/OyP/khLPKqww==", "dev": true, "requires": { "@types/react": "*", diff --git a/src/React.Sample.Mvc4/package.json b/src/React.Sample.Mvc4/package.json index 8893566fa..3a55dae00 100644 --- a/src/React.Sample.Mvc4/package.json +++ b/src/React.Sample.Mvc4/package.json @@ -9,7 +9,7 @@ "devDependencies": { "@types/react": "16.9.23", "@types/react-dom": "16.9.5", - "@types/reactstrap": "8.4.1", + "@types/reactstrap": "8.4.2", "typescript": "3.8.2" } } From 565eb10b7f0bf5521f88d46faca15957d4cd95c2 Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Thu, 27 Feb 2020 21:13:45 -0800 Subject: [PATCH 390/530] Drop netstandard1.6 support (#1046) --- src/React.Core/Exceptions/BabelException.cs | 6 +----- src/React.Core/Exceptions/BabelNotLoadedException.cs | 4 ---- src/React.Core/Exceptions/ReactConfigurationException.cs | 6 +----- .../Exceptions/ReactEngineNotFoundException.cs | 4 ---- src/React.Core/Exceptions/ReactException.cs | 6 +----- .../Exceptions/ReactInvalidComponentException.cs | 6 +----- .../Exceptions/ReactNotInitialisedException.cs | 4 ---- src/React.Core/Exceptions/ReactScriptLoadException.cs | 4 ---- .../ReactScriptPrecompilationNotAvailableException.cs | 4 ---- .../Exceptions/ReactServerRenderingException.cs | 4 ---- src/React.Core/JavaScriptWithSourceMap.cs | 2 -- src/React.Core/React.Core.csproj | 9 ++------- src/React.Core/SourceMap.cs | 8 +++----- .../React.Sample.ConsoleApp.csproj | 5 ++--- 14 files changed, 11 insertions(+), 61 deletions(-) diff --git a/src/React.Core/Exceptions/BabelException.cs b/src/React.Core/Exceptions/BabelException.cs index 32e51a26c..fb4e7967a 100644 --- a/src/React.Core/Exceptions/BabelException.cs +++ b/src/React.Core/Exceptions/BabelException.cs @@ -13,9 +13,7 @@ namespace React.Exceptions /// /// Thrown when an error occurs when transforming a JavaScript file via Babel. /// -#if !NETSTANDARD1_6 [Serializable] -#endif public class BabelException : ReactException { ///
    @@ -31,12 +29,10 @@ public BabelException(string message) : base(message) { } public BabelException(string message, Exception innerException) : base(message, innerException) { } -#if !NETSTANDARD1_6 /// /// Used by deserialization /// - protected BabelException(SerializationInfo info, StreamingContext context) + protected BabelException(SerializationInfo info, StreamingContext context) : base(info, context) { } -#endif } } diff --git a/src/React.Core/Exceptions/BabelNotLoadedException.cs b/src/React.Core/Exceptions/BabelNotLoadedException.cs index ae540e69b..5e3e19a80 100644 --- a/src/React.Core/Exceptions/BabelNotLoadedException.cs +++ b/src/React.Core/Exceptions/BabelNotLoadedException.cs @@ -13,9 +13,7 @@ namespace React.Exceptions /// /// Thrown when Babel is required but has not been loaded. /// -#if !NETSTANDARD1_6 [Serializable] -#endif public class BabelNotLoadedException : ReactException { /// @@ -23,14 +21,12 @@ public class BabelNotLoadedException : ReactException /// public BabelNotLoadedException() : base(GetMessage()) { } -#if !NETSTANDARD1_6 /// /// Used by deserialization /// protected BabelNotLoadedException(SerializationInfo info, StreamingContext context) : base(info, context) { } -#endif /// /// Gets a message that describes the current exception. diff --git a/src/React.Core/Exceptions/ReactConfigurationException.cs b/src/React.Core/Exceptions/ReactConfigurationException.cs index c1e03f964..3f7242826 100644 --- a/src/React.Core/Exceptions/ReactConfigurationException.cs +++ b/src/React.Core/Exceptions/ReactConfigurationException.cs @@ -13,9 +13,7 @@ namespace React.Exceptions /// /// Thrown when an error occurs while reading a site configuration file. /// -#if !NETSTANDARD1_6 [Serializable] -#endif public class ReactConfigurationException : ReactException { /// @@ -31,12 +29,10 @@ public ReactConfigurationException(string message) : base(message) { } public ReactConfigurationException(string message, Exception innerException) : base(message, innerException) { } -#if !NETSTANDARD1_6 /// /// Used by deserialization /// - protected ReactConfigurationException(SerializationInfo info, StreamingContext context) + protected ReactConfigurationException(SerializationInfo info, StreamingContext context) : base(info, context) { } -#endif } } diff --git a/src/React.Core/Exceptions/ReactEngineNotFoundException.cs b/src/React.Core/Exceptions/ReactEngineNotFoundException.cs index ef005561b..3e2f161dc 100644 --- a/src/React.Core/Exceptions/ReactEngineNotFoundException.cs +++ b/src/React.Core/Exceptions/ReactEngineNotFoundException.cs @@ -13,9 +13,7 @@ namespace React.Exceptions /// /// Thrown when no valid JavaScript engine is found. /// -#if !NETSTANDARD1_6 [Serializable] -#endif public class ReactEngineNotFoundException : ReactException { /// @@ -24,12 +22,10 @@ public class ReactEngineNotFoundException : ReactException /// The message that describes the error. public ReactEngineNotFoundException(string message) : base(message) { } -#if !NETSTANDARD1_6 /// /// Used by deserialization /// protected ReactEngineNotFoundException(SerializationInfo info, StreamingContext context) : base(info, context) { } -#endif } } diff --git a/src/React.Core/Exceptions/ReactException.cs b/src/React.Core/Exceptions/ReactException.cs index b3a2708b0..20de0b70a 100644 --- a/src/React.Core/Exceptions/ReactException.cs +++ b/src/React.Core/Exceptions/ReactException.cs @@ -13,9 +13,7 @@ namespace React.Exceptions /// /// Base class for all ReactJS.NET exceptions /// -#if !NETSTANDARD1_6 [Serializable] -#endif public class ReactException : Exception { /// @@ -35,13 +33,11 @@ public ReactException(string message) : base(message) { } public ReactException(string message, Exception innerException) : base(message, innerException) { } -#if !NETSTANDARD1_6 /// /// Used by deserialization /// - protected ReactException(SerializationInfo info, StreamingContext context) + protected ReactException(SerializationInfo info, StreamingContext context) : base(info, context) { } -#endif } } diff --git a/src/React.Core/Exceptions/ReactInvalidComponentException.cs b/src/React.Core/Exceptions/ReactInvalidComponentException.cs index fb58f4744..e93ae92fc 100644 --- a/src/React.Core/Exceptions/ReactInvalidComponentException.cs +++ b/src/React.Core/Exceptions/ReactInvalidComponentException.cs @@ -13,9 +13,7 @@ namespace React.Exceptions /// /// Thrown when a non-existent component is rendered. /// -#if !NETSTANDARD1_6 [Serializable] -#endif public class ReactInvalidComponentException : ReactException { /// @@ -31,12 +29,10 @@ public ReactInvalidComponentException(string message) : base(message) { } public ReactInvalidComponentException(string message, Exception innerException) : base(message, innerException) { } -#if !NETSTANDARD1_6 /// /// Used by deserialization /// - protected ReactInvalidComponentException(SerializationInfo info, StreamingContext context) + protected ReactInvalidComponentException(SerializationInfo info, StreamingContext context) : base(info, context) { } -#endif } } diff --git a/src/React.Core/Exceptions/ReactNotInitialisedException.cs b/src/React.Core/Exceptions/ReactNotInitialisedException.cs index d346a4a4f..8a83eb700 100644 --- a/src/React.Core/Exceptions/ReactNotInitialisedException.cs +++ b/src/React.Core/Exceptions/ReactNotInitialisedException.cs @@ -13,9 +13,7 @@ namespace React.Exceptions /// /// Thrown when React has not been initialised correctly. /// -#if !NETSTANDARD1_6 [Serializable] -#endif public class ReactNotInitialisedException : ReactException { /// @@ -32,12 +30,10 @@ public ReactNotInitialisedException(string message) : base(message) { } public ReactNotInitialisedException(string message, Exception innerException) : base(message, innerException) { } -#if !NETSTANDARD1_6 /// /// Used by deserialization /// protected ReactNotInitialisedException(SerializationInfo info, StreamingContext context) : base(info, context) { } -#endif } } diff --git a/src/React.Core/Exceptions/ReactScriptLoadException.cs b/src/React.Core/Exceptions/ReactScriptLoadException.cs index b7b6a2b55..71817183c 100644 --- a/src/React.Core/Exceptions/ReactScriptLoadException.cs +++ b/src/React.Core/Exceptions/ReactScriptLoadException.cs @@ -13,9 +13,7 @@ namespace React.Exceptions /// /// Thrown when an error is encountered while loading a JavaScript file. /// -#if !NETSTANDARD1_6 [Serializable] -#endif public class ReactScriptLoadException : ReactException { /// @@ -32,12 +30,10 @@ public ReactScriptLoadException(string message) : base(message) { } public ReactScriptLoadException(string message, Exception innerException) : base(message, innerException) { } -#if !NETSTANDARD1_6 /// /// Used by deserialization /// protected ReactScriptLoadException(SerializationInfo info, StreamingContext context) : base(info, context) { } -#endif } } diff --git a/src/React.Core/Exceptions/ReactScriptPrecompilationNotAvailableException.cs b/src/React.Core/Exceptions/ReactScriptPrecompilationNotAvailableException.cs index bc15a1f24..d8464ab87 100644 --- a/src/React.Core/Exceptions/ReactScriptPrecompilationNotAvailableException.cs +++ b/src/React.Core/Exceptions/ReactScriptPrecompilationNotAvailableException.cs @@ -13,9 +13,7 @@ namespace React.Exceptions /// /// Thrown when the script pre-compilation is not available. /// -#if !NETSTANDARD1_6 [Serializable] -#endif public class ReactScriptPrecompilationNotAvailableException : ReactException { /// @@ -24,12 +22,10 @@ public class ReactScriptPrecompilationNotAvailableException : ReactException /// The message that describes the error. public ReactScriptPrecompilationNotAvailableException(string message) : base(message) { } -#if !NETSTANDARD1_6 /// /// Used by deserialization /// protected ReactScriptPrecompilationNotAvailableException(SerializationInfo info, StreamingContext context) : base(info, context) { } -#endif } } diff --git a/src/React.Core/Exceptions/ReactServerRenderingException.cs b/src/React.Core/Exceptions/ReactServerRenderingException.cs index 70745fadb..f06975cc3 100644 --- a/src/React.Core/Exceptions/ReactServerRenderingException.cs +++ b/src/React.Core/Exceptions/ReactServerRenderingException.cs @@ -13,9 +13,7 @@ namespace React.Exceptions /// /// Thrown when an error occurs during server rendering of a React component. /// -#if !NETSTANDARD1_6 [Serializable] -#endif public class ReactServerRenderingException : ReactException { /// @@ -32,12 +30,10 @@ public ReactServerRenderingException(string message) : base(message) { } public ReactServerRenderingException(string message, Exception innerException) : base(message, innerException) { } -#if !NETSTANDARD1_6 /// /// Used by deserialization /// protected ReactServerRenderingException(SerializationInfo info, StreamingContext context) : base(info, context) { } -#endif } } diff --git a/src/React.Core/JavaScriptWithSourceMap.cs b/src/React.Core/JavaScriptWithSourceMap.cs index d4ebf5bac..6f2989565 100644 --- a/src/React.Core/JavaScriptWithSourceMap.cs +++ b/src/React.Core/JavaScriptWithSourceMap.cs @@ -13,9 +13,7 @@ namespace React /// Represents the result of a Babel transformation along with its /// corresponding source map. /// -#if !NETSTANDARD1_6 [Serializable] -#endif public class JavaScriptWithSourceMap { /// diff --git a/src/React.Core/React.Core.csproj b/src/React.Core/React.Core.csproj index c9d0f2d95..08ec0a3c6 100644 --- a/src/React.Core/React.Core.csproj +++ b/src/React.Core/React.Core.csproj @@ -1,11 +1,11 @@ - + ReactJS and Babel tools for .NET. Important: This package does not do much on its own; you probably want an integration package (like React.Web.Mvc4) as well. Please refer to project site (http://reactjs.net/) for more details, usage examples and sample code. Copyright 2014-Present Facebook, Inc ReactJS.NET Core Daniel Lo Nigro - net40;net45;netstandard1.6;netstandard2.0 + net40;net45;netstandard2.0 true React.Core ../key.snk @@ -58,11 +58,6 @@ - - - - - diff --git a/src/React.Core/SourceMap.cs b/src/React.Core/SourceMap.cs index e350aebc2..dbcfa241f 100644 --- a/src/React.Core/SourceMap.cs +++ b/src/React.Core/SourceMap.cs @@ -15,9 +15,7 @@ namespace React /// /// Represents the data contained in a source map /// -#if !NETSTANDARD1_6 [Serializable] -#endif public class SourceMap { /// @@ -33,7 +31,7 @@ public class SourceMap /// /// An optional source root, useful for relocating source files on a server or - /// removing repeated values in the entry. This value is + /// removing repeated values in the entry. This value is /// prepended to the individual entries in the field. /// public string SourceRoot { get; set; } @@ -44,8 +42,8 @@ public class SourceMap public IList Sources { get; set; } /// - /// An optional list of source content, useful when the can't - /// be hosted. The contents are listed in the same order as the . + /// An optional list of source content, useful when the can't + /// be hosted. The contents are listed in the same order as the . /// null may be used if some original sources should be retrieved by name. /// public IList SourcesContent { get; set; } diff --git a/src/React.Sample.ConsoleApp/React.Sample.ConsoleApp.csproj b/src/React.Sample.ConsoleApp/React.Sample.ConsoleApp.csproj index 34b84ff1d..cc8612e85 100644 --- a/src/React.Sample.ConsoleApp/React.Sample.ConsoleApp.csproj +++ b/src/React.Sample.ConsoleApp/React.Sample.ConsoleApp.csproj @@ -1,15 +1,14 @@ - + Copyright 2014-Present Facebook, Inc ReactJS.NET Console Sample Daniel Lo Nigro - net40;netcoreapp1.1;netcoreapp2.0 + net40;netcoreapp2.0 React.Sample.ConsoleApp Exe React.Sample.ConsoleApp 1701 - 1.1 false From 73e8d277ac1f07c3d9054b5656842b6905770f87 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Fri, 28 Feb 2020 22:36:38 +0000 Subject: [PATCH 391/530] Update dependency typescript to v3.8.3 --- src/React.Sample.Mvc4/package-lock.json | 6 +++--- src/React.Sample.Mvc4/package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/React.Sample.Mvc4/package-lock.json b/src/React.Sample.Mvc4/package-lock.json index 6df7d3d83..cb813612e 100644 --- a/src/React.Sample.Mvc4/package-lock.json +++ b/src/React.Sample.Mvc4/package-lock.json @@ -52,9 +52,9 @@ "dev": true }, "typescript": { - "version": "3.8.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.8.2.tgz", - "integrity": "sha512-EgOVgL/4xfVrCMbhYKUQTdF37SQn4Iw73H5BgCrF1Abdun7Kwy/QZsE/ssAy0y4LxBbvua3PIbFsbRczWWnDdQ==", + "version": "3.8.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.8.3.tgz", + "integrity": "sha512-MYlEfn5VrLNsgudQTVJeNaQFUAI7DkhnOjdpAp4T+ku1TfQClewlbSuTVHiA+8skNBgaf02TL/kLOvig4y3G8w==", "dev": true } } diff --git a/src/React.Sample.Mvc4/package.json b/src/React.Sample.Mvc4/package.json index 3a55dae00..14fb23791 100644 --- a/src/React.Sample.Mvc4/package.json +++ b/src/React.Sample.Mvc4/package.json @@ -10,6 +10,6 @@ "@types/react": "16.9.23", "@types/react-dom": "16.9.5", "@types/reactstrap": "8.4.2", - "typescript": "3.8.2" + "typescript": "3.8.3" } } From 0dc333414f5753c30217a61cb3fdac86d0896020 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Sat, 29 Feb 2020 21:19:41 +0000 Subject: [PATCH 392/530] Update dependency Microsoft.NET.Sdk.Functions to v1.0.33 --- webhooks/React.Site.Hooks.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/webhooks/React.Site.Hooks.csproj b/webhooks/React.Site.Hooks.csproj index e62f3e883..b86515408 100644 --- a/webhooks/React.Site.Hooks.csproj +++ b/webhooks/React.Site.Hooks.csproj @@ -3,7 +3,7 @@ net461 - + From ba1facc2cff9f8090e0574e23adc26e777baf039 Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Sat, 29 Feb 2020 22:12:42 -0800 Subject: [PATCH 393/530] Move tutorial source into installable template (#1049) * Move tutorial source into installable template * Add template to getting started pages * Fix template package versioning --- build.proj | 1 + .../jekyll/_posts/2016-10-09-3.0.0-release.md | 2 +- .../jekyll/_posts/2019-11-24-5.1.2-release.md | 2 +- site/jekyll/getting-started/aspnetcore.md | 10 ++++++++ site/jekyll/index.md | 2 +- site/jekyll/tutorials/aspnetcore.md | 14 +++++++++-- src/React.Template/React.Template.csproj | 25 +++++++++++++++++++ .../.template.config/template.json | 13 ++++++++++ .../Controllers/HomeController.cs | 0 .../reactnet-vanilla}/Models/CommentModel.cs | 0 .../reactnet-vanilla}/Program.cs | 0 .../Properties/launchSettings.json | 0 src/React.Template/reactnet-vanilla/README.md | 1 + .../reactnet-vanilla}/ReactDemo.sln | 0 .../reactnet-vanilla}/Startup.cs | 0 .../reactnet-vanilla}/Views/Home/Index.cshtml | 0 .../Views/_ViewImports.cshtml | 0 .../reactnet-vanilla}/app.config | 0 .../reactnet-vanilla}/appsettings.json | 0 .../reactnet-vanilla}/tutorial-code.csproj | 0 .../reactnet-vanilla}/web.config | 0 .../wwwroot/js/remarkable.min.js | 0 .../reactnet-vanilla}/wwwroot/js/tutorial.jsx | 0 src/React.sln | 8 +++++- tutorial-code/README.md | 2 +- 25 files changed, 73 insertions(+), 7 deletions(-) create mode 100644 src/React.Template/React.Template.csproj create mode 100644 src/React.Template/reactnet-vanilla/.template.config/template.json rename {tutorial-code => src/React.Template/reactnet-vanilla}/Controllers/HomeController.cs (100%) rename {tutorial-code => src/React.Template/reactnet-vanilla}/Models/CommentModel.cs (100%) rename {tutorial-code => src/React.Template/reactnet-vanilla}/Program.cs (100%) rename {tutorial-code => src/React.Template/reactnet-vanilla}/Properties/launchSettings.json (100%) create mode 100644 src/React.Template/reactnet-vanilla/README.md rename {tutorial-code => src/React.Template/reactnet-vanilla}/ReactDemo.sln (100%) rename {tutorial-code => src/React.Template/reactnet-vanilla}/Startup.cs (100%) rename {tutorial-code => src/React.Template/reactnet-vanilla}/Views/Home/Index.cshtml (100%) rename {tutorial-code => src/React.Template/reactnet-vanilla}/Views/_ViewImports.cshtml (100%) rename {tutorial-code => src/React.Template/reactnet-vanilla}/app.config (100%) rename {tutorial-code => src/React.Template/reactnet-vanilla}/appsettings.json (100%) rename {tutorial-code => src/React.Template/reactnet-vanilla}/tutorial-code.csproj (100%) rename {tutorial-code => src/React.Template/reactnet-vanilla}/web.config (100%) rename {tutorial-code => src/React.Template/reactnet-vanilla}/wwwroot/js/remarkable.min.js (100%) rename {tutorial-code => src/React.Template/reactnet-vanilla}/wwwroot/js/tutorial.jsx (100%) diff --git a/build.proj b/build.proj index f6be88cd6..0f13e4d09 100644 --- a/build.proj +++ b/build.proj @@ -31,6 +31,7 @@ of patent rights can be found in the PATENTS file in the same directory. + diff --git a/site/jekyll/_posts/2016-10-09-3.0.0-release.md b/site/jekyll/_posts/2016-10-09-3.0.0-release.md index bbf3a7746..e8aa357d2 100644 --- a/site/jekyll/_posts/2016-10-09-3.0.0-release.md +++ b/site/jekyll/_posts/2016-10-09-3.0.0-release.md @@ -4,7 +4,7 @@ layout: post author: Daniel Lo Nigro --- -I'm happy to announce the release of ReactJS.NET 3.0! The major change in this release is the addition of support for .NET Core! [The tutorial](/tutorials/aspnetcore.html) has also been totally revamped for ASP.NET Core, and a completed version of the tutorial code is now [available in the ReactJS.NET Git repository](https://github.com/reactjs/React.NET/tree/master/tutorial-code) +I'm happy to announce the release of ReactJS.NET 3.0! The major change in this release is the addition of support for .NET Core! [The tutorial](/tutorials/aspnetcore.html) has also been totally revamped for ASP.NET Core, and a completed version of the tutorial code is now [available in the ReactJS.NET Git repository](https://github.com/reactjs/React.NET/tree/master/src/React.Template/reactnet-vanilla) **Major Changes**: diff --git a/site/jekyll/_posts/2019-11-24-5.1.2-release.md b/site/jekyll/_posts/2019-11-24-5.1.2-release.md index 7a61f34b2..7266d1298 100644 --- a/site/jekyll/_posts/2019-11-24-5.1.2-release.md +++ b/site/jekyll/_posts/2019-11-24-5.1.2-release.md @@ -6,7 +6,7 @@ author: Dustin Masters 🚀 We're pleased to announce the release of ReactJS.NET 5.1.2. A few small updates in this release: -- .NET Core 3.0 support. The [tutorial project](https://github.com/reactjs/React.NET/tree/master/tutorial-code) has also been updated to demonstrate the (simple!) migration path. +- .NET Core 3.0 support. The [tutorial project](https://github.com/reactjs/React.NET/tree/master/src/React.Template/reactnet-vanilla) has also been updated to demonstrate the (simple!) migration path. - React and ReactDOM updated to 16.12.0 - Fix missing query parameter mapping for React.Router - thanks [@mattywong](https://github.com/mattywong) diff --git a/site/jekyll/getting-started/aspnetcore.md b/site/jekyll/getting-started/aspnetcore.md index 0b2cb2a2d..782d7c409 100644 --- a/site/jekyll/getting-started/aspnetcore.md +++ b/site/jekyll/getting-started/aspnetcore.md @@ -6,6 +6,16 @@ title: Getting Started (ASP.NET Core) #### 👀 Just want to see the code? Check out the [sample project](https://github.com/reactjs/React.NET/tree/master/src/React.Sample.Webpack.CoreMvc). +## For new projects: + +``` +dotnet new -i React.Template +dotnet new reactnet-vanilla +dotnet run +``` + +## For existing projects: + This guide covers enabling server-side rendering and Babel compilation. Getting started with ReactJS.NET on ASP.NET Core requires a few more steps compared to previous versions of ASP.NET and MVC. If you want a step-by-step guide on configuring a brand new site, see [the ReactJS.NET tutorial for ASP.NET Core](/tutorials/aspnetcore.html). ReactJS.NET requires at least Visual Studio 2015 and ASP.NET Core 1.0, but has also been tested with VS 2017 and .NET Core 2.1. diff --git a/site/jekyll/index.md b/site/jekyll/index.md index 10fc7730b..c37ac6f30 100644 --- a/site/jekyll/index.md +++ b/site/jekyll/index.md @@ -131,7 +131,7 @@ bundles.Add(new JsxBundle("~/bundles/main").Include(
    diff --git a/site/jekyll/tutorials/aspnetcore.md b/site/jekyll/tutorials/aspnetcore.md index aacb75e13..d5d9ac1c4 100644 --- a/site/jekyll/tutorials/aspnetcore.md +++ b/site/jekyll/tutorials/aspnetcore.md @@ -8,6 +8,16 @@ layout: docs > > This tutorial is for Visual Studio 2019 and ASP.NET Core MVC. If you're still using ASP.NET 4 and ASP.NET MVC 5, you can [follow the ASP.NET 4 tutorial instead](/tutorials/aspnet4.html) +## Quick start + +``` +dotnet new -i React.Template +dotnet new reactnet-vanilla +dotnet run +``` + +## Step by step version + This tutorial covers the end-to-end process of creating a brand new ASP.NET MVC website and adding a React component in it. We will start from scratch and end with a fully functioning component. It assumes you have basic knowledge of ASP.NET MVC and using Visual Studio. This tutorial is based off the [original React tutorial](https://reactjs.org/tutorial/tutorial.html) but has been modified specifically for ReactJS.NET. We'll be building a simple, but realistic comments box that you can drop into a blog, a basic version of the realtime comments offered by Disqus, LiveFyre or Facebook comments. @@ -26,7 +36,7 @@ It'll also have a few neat features: ## Want to skip all this and see the source? -[It's all on GitHub](https://github.com/reactjs/React.NET/tree/master/tutorial-code). +[It's all on GitHub](https://github.com/reactjs/React.NET/tree/master/src/React.Template/reactnet-vanilla). ## Getting started @@ -1011,7 +1021,7 @@ There used to be a section on bundling and minification in this tutorial, but un Server-side rendering means that your application initially renders the components on the server-side, rather than fetching data from the server and rendering using the client. Server-side rendering enhances the performance of your application since the user will see the initial state immediately. -We need to make some modifications to `CommentBox` to support server-side rendering. Firstly, we need to accept an `initialData` prop, which will be used to set the initial state of the component, rather than doing an AJAX request. We also need to remove the initial `loadCommentsFromServer` call from `componentDidMount`, since it is no longer required. +We need to make some modifications to `CommentBox` to support server-side rendering. Firstly, we need to accept an `initialData` prop, which will be used to set the initial state of the component, rather than doing an AJAX request. We also need to remove the initial `loadCommentsFromServer` call from `componentDidMount`, since it is no longer required. ```javascript{4,31-33} class CommentBox extends React.Component { diff --git a/src/React.Template/React.Template.csproj b/src/React.Template/React.Template.csproj new file mode 100644 index 000000000..c2bcf1831 --- /dev/null +++ b/src/React.Template/React.Template.csproj @@ -0,0 +1,25 @@ + + + + Template + React.Template + https://github.com/reactjs/react.net + https://github.com/reactjs/React.NET#licence + ReactJS.NET Template Pack + ReactJS.NET contributors + Templates to use for bootstrapping new ReactJS.NET applications. + dotnet-new;templates;react + + netstandard2.0 + + true + false + content + + + + + + + + \ No newline at end of file diff --git a/src/React.Template/reactnet-vanilla/.template.config/template.json b/src/React.Template/reactnet-vanilla/.template.config/template.json new file mode 100644 index 000000000..18e9c5df8 --- /dev/null +++ b/src/React.Template/reactnet-vanilla/.template.config/template.json @@ -0,0 +1,13 @@ +{ + "author": "ReactJS.NET contributors", + "classifications": [ + "Web" + ], + "name": "React.NET Starter Template", + "identity": "React.Template.NetCore", + "shortName": "reactnet-vanilla", + "tags": { + "language": "C#" + }, + "preferNameDirectory": "true" +} diff --git a/tutorial-code/Controllers/HomeController.cs b/src/React.Template/reactnet-vanilla/Controllers/HomeController.cs similarity index 100% rename from tutorial-code/Controllers/HomeController.cs rename to src/React.Template/reactnet-vanilla/Controllers/HomeController.cs diff --git a/tutorial-code/Models/CommentModel.cs b/src/React.Template/reactnet-vanilla/Models/CommentModel.cs similarity index 100% rename from tutorial-code/Models/CommentModel.cs rename to src/React.Template/reactnet-vanilla/Models/CommentModel.cs diff --git a/tutorial-code/Program.cs b/src/React.Template/reactnet-vanilla/Program.cs similarity index 100% rename from tutorial-code/Program.cs rename to src/React.Template/reactnet-vanilla/Program.cs diff --git a/tutorial-code/Properties/launchSettings.json b/src/React.Template/reactnet-vanilla/Properties/launchSettings.json similarity index 100% rename from tutorial-code/Properties/launchSettings.json rename to src/React.Template/reactnet-vanilla/Properties/launchSettings.json diff --git a/src/React.Template/reactnet-vanilla/README.md b/src/React.Template/reactnet-vanilla/README.md new file mode 100644 index 000000000..c7e9cab59 --- /dev/null +++ b/src/React.Template/reactnet-vanilla/README.md @@ -0,0 +1 @@ +This is the source code from the [tutorial on the ReactJS.NET site](https://reactjs.net/getting-started/tutorial.html). \ No newline at end of file diff --git a/tutorial-code/ReactDemo.sln b/src/React.Template/reactnet-vanilla/ReactDemo.sln similarity index 100% rename from tutorial-code/ReactDemo.sln rename to src/React.Template/reactnet-vanilla/ReactDemo.sln diff --git a/tutorial-code/Startup.cs b/src/React.Template/reactnet-vanilla/Startup.cs similarity index 100% rename from tutorial-code/Startup.cs rename to src/React.Template/reactnet-vanilla/Startup.cs diff --git a/tutorial-code/Views/Home/Index.cshtml b/src/React.Template/reactnet-vanilla/Views/Home/Index.cshtml similarity index 100% rename from tutorial-code/Views/Home/Index.cshtml rename to src/React.Template/reactnet-vanilla/Views/Home/Index.cshtml diff --git a/tutorial-code/Views/_ViewImports.cshtml b/src/React.Template/reactnet-vanilla/Views/_ViewImports.cshtml similarity index 100% rename from tutorial-code/Views/_ViewImports.cshtml rename to src/React.Template/reactnet-vanilla/Views/_ViewImports.cshtml diff --git a/tutorial-code/app.config b/src/React.Template/reactnet-vanilla/app.config similarity index 100% rename from tutorial-code/app.config rename to src/React.Template/reactnet-vanilla/app.config diff --git a/tutorial-code/appsettings.json b/src/React.Template/reactnet-vanilla/appsettings.json similarity index 100% rename from tutorial-code/appsettings.json rename to src/React.Template/reactnet-vanilla/appsettings.json diff --git a/tutorial-code/tutorial-code.csproj b/src/React.Template/reactnet-vanilla/tutorial-code.csproj similarity index 100% rename from tutorial-code/tutorial-code.csproj rename to src/React.Template/reactnet-vanilla/tutorial-code.csproj diff --git a/tutorial-code/web.config b/src/React.Template/reactnet-vanilla/web.config similarity index 100% rename from tutorial-code/web.config rename to src/React.Template/reactnet-vanilla/web.config diff --git a/tutorial-code/wwwroot/js/remarkable.min.js b/src/React.Template/reactnet-vanilla/wwwroot/js/remarkable.min.js similarity index 100% rename from tutorial-code/wwwroot/js/remarkable.min.js rename to src/React.Template/reactnet-vanilla/wwwroot/js/remarkable.min.js diff --git a/tutorial-code/wwwroot/js/tutorial.jsx b/src/React.Template/reactnet-vanilla/wwwroot/js/tutorial.jsx similarity index 100% rename from tutorial-code/wwwroot/js/tutorial.jsx rename to src/React.Template/reactnet-vanilla/wwwroot/js/tutorial.jsx diff --git a/src/React.sln b/src/React.sln index 37a174e2b..b81edab0c 100644 --- a/src/React.sln +++ b/src/React.sln @@ -1,4 +1,4 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 +Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 15 VisualStudioVersion = 15.0.27004.2002 MinimumVisualStudioVersion = 10.0.40219.1 @@ -70,6 +70,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "React.Tests.Integration", " EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "React.Tests.Common", "..\tests\React.Tests.Common\React.Tests.Common.csproj", "{29F7122F-ECBB-4EBE-A2BB-3A00CED73C19}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "React.Template", "React.Template\React.Template.csproj", "{FE067035-C82A-49D4-BFBE-4B0AF82F0817}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -156,6 +158,10 @@ Global {29F7122F-ECBB-4EBE-A2BB-3A00CED73C19}.Debug|Any CPU.Build.0 = Debug|Any CPU {29F7122F-ECBB-4EBE-A2BB-3A00CED73C19}.Release|Any CPU.ActiveCfg = Release|Any CPU {29F7122F-ECBB-4EBE-A2BB-3A00CED73C19}.Release|Any CPU.Build.0 = Release|Any CPU + {FE067035-C82A-49D4-BFBE-4B0AF82F0817}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FE067035-C82A-49D4-BFBE-4B0AF82F0817}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FE067035-C82A-49D4-BFBE-4B0AF82F0817}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FE067035-C82A-49D4-BFBE-4B0AF82F0817}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/tutorial-code/README.md b/tutorial-code/README.md index c7e9cab59..e58a4c70a 100644 --- a/tutorial-code/README.md +++ b/tutorial-code/README.md @@ -1 +1 @@ -This is the source code from the [tutorial on the ReactJS.NET site](https://reactjs.net/getting-started/tutorial.html). \ No newline at end of file +The tutorial source has been moved to .NET Core templates [here](../src/React.Templates) \ No newline at end of file From ea973d3fdb25054f95c2b53c7b01da5bd00ca4aa Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Sun, 1 Mar 2020 01:13:09 -0500 Subject: [PATCH 394/530] 5.2.0-beta2 --- build.proj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.proj b/build.proj index 0f13e4d09..98f4bf021 100644 --- a/build.proj +++ b/build.proj @@ -11,7 +11,7 @@ of patent rights can be found in the PATENTS file in the same directory. 5 2 - 0-beta1 + 0-beta2 0 http://reactjs.net/packages/ $(MSBuildProjectDirectory)\tools\MSBuildTasks From f896113246ba098eb38f490bb32abb5fac4355fc Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Sun, 1 Mar 2020 01:30:19 -0500 Subject: [PATCH 395/530] Update tutorial-code readme Fixed a typo --- tutorial-code/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tutorial-code/README.md b/tutorial-code/README.md index e58a4c70a..0e745ceff 100644 --- a/tutorial-code/README.md +++ b/tutorial-code/README.md @@ -1 +1 @@ -The tutorial source has been moved to .NET Core templates [here](../src/React.Templates) \ No newline at end of file +The tutorial source has been moved to .NET Core templates [here](../src/React.Template) From c0a0ed7c0df25290c62c5708aafe588f815ba9dc Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Sun, 1 Mar 2020 01:44:45 -0500 Subject: [PATCH 396/530] 5.2.0 --- build.proj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.proj b/build.proj index 98f4bf021..a029d806c 100644 --- a/build.proj +++ b/build.proj @@ -11,7 +11,7 @@ of patent rights can be found in the PATENTS file in the same directory. 5 2 - 0-beta2 + 0 0 http://reactjs.net/packages/ $(MSBuildProjectDirectory)\tools\MSBuildTasks From 40a34cb83a9780880d1d03e1a6606e0fc219240d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 1 Mar 2020 14:23:59 -0800 Subject: [PATCH 397/530] Update react monorepo to v16.13.0 (#1045) Co-authored-by: WhiteSource Renovate --- src/React.Core/package-lock.json | 20 ++++++++++---------- src/React.Core/package.json | 4 ++-- src/React.Sample.Owin/Content/Index.html | 4 ++-- 3 files changed, 14 insertions(+), 14 deletions(-) diff --git a/src/React.Core/package-lock.json b/src/React.Core/package-lock.json index 7d9e9b84a..12e5bb9b6 100644 --- a/src/React.Core/package-lock.json +++ b/src/React.Core/package-lock.json @@ -3467,9 +3467,9 @@ } }, "react": { - "version": "16.12.0", - "resolved": "https://registry.npmjs.org/react/-/react-16.12.0.tgz", - "integrity": "sha512-fglqy3k5E+81pA8s+7K0/T3DBCF0ZDOher1elBFzF7O6arXJgzyu/FW+COxFvAWXJoJN9KIZbT2LXlukwphYTA==", + "version": "16.13.0", + "resolved": "https://registry.npmjs.org/react/-/react-16.13.0.tgz", + "integrity": "sha512-TSavZz2iSLkq5/oiE7gnFzmURKZMltmi193rm5HEoUDAXpzT9Kzw6oNZnGoai/4+fUnm7FqS5dwgUL34TujcWQ==", "dev": true, "requires": { "loose-envify": "^1.1.0", @@ -3478,15 +3478,15 @@ } }, "react-dom": { - "version": "16.12.0", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.12.0.tgz", - "integrity": "sha512-LMxFfAGrcS3kETtQaCkTKjMiifahaMySFDn71fZUNpPHZQEzmk/GiAeIT8JSOrHB23fnuCOMruL2a8NYlw+8Gw==", + "version": "16.13.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.13.0.tgz", + "integrity": "sha512-y09d2c4cG220DzdlFkPTnVvGTszVvNpC73v+AaLGLHbkpy3SSgvYq8x0rNwPJ/Rk/CicTNgk0hbHNw1gMEZAXg==", "dev": true, "requires": { "loose-envify": "^1.1.0", "object-assign": "^4.1.1", "prop-types": "^15.6.2", - "scheduler": "^0.18.0" + "scheduler": "^0.19.0" } }, "react-is": { @@ -3664,9 +3664,9 @@ } }, "scheduler": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.18.0.tgz", - "integrity": "sha512-agTSHR1Nbfi6ulI0kYNK0203joW2Y5W4po4l+v03tOoiJKpTBbxpNhWDvqc/4IcOw+KLmSiQLTasZ4cab2/UWQ==", + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.19.0.tgz", + "integrity": "sha512-xowbVaTPe9r7y7RUejcK73/j8tt2jfiyTednOvHbA8JoClvMYCp+r8QegLwK/n8zWQAtZb1fFnER4XLBZXrCxA==", "dev": true, "requires": { "loose-envify": "^1.1.0", diff --git a/src/React.Core/package.json b/src/React.Core/package.json index b1377a1e5..77ff6a722 100644 --- a/src/React.Core/package.json +++ b/src/React.Core/package.json @@ -9,8 +9,8 @@ "@babel/core": "7.7.7", "@babel/standalone": "7.7.7", "prop-types": "15.7.2", - "react": "16.12.0", - "react-dom": "16.12.0", + "react": "16.13.0", + "react-dom": "16.13.0", "webpack": "4.41.6", "webpack-cli": "3.3.11" } diff --git a/src/React.Sample.Owin/Content/Index.html b/src/React.Sample.Owin/Content/Index.html index d0b21ba37..e222c6ae3 100644 --- a/src/React.Sample.Owin/Content/Index.html +++ b/src/React.Sample.Owin/Content/Index.html @@ -10,11 +10,11 @@
    - + + @Bundles.RenderScripts() ``` diff --git a/site/jekyll/features/server-side-rendering.md b/site/jekyll/features/server-side-rendering.md index abeac924a..7b94e4489 100644 --- a/site/jekyll/features/server-side-rendering.md +++ b/site/jekyll/features/server-side-rendering.md @@ -49,8 +49,8 @@ code. ```html - - + + @Scripts.Render("~/bundles/main") @Html.ReactInitJavaScript() ``` @@ -65,8 +65,8 @@ code.
    - - + + ``` diff --git a/site/jekyll/index.md b/site/jekyll/index.md index c37ac6f30..610121f92 100644 --- a/site/jekyll/index.md +++ b/site/jekyll/index.md @@ -117,8 +117,8 @@ bundles.Add(new JsxBundle("~/bundles/main").Include( }) - - + + @Scripts.Render("~/bundles/main") @Html.ReactInitJavaScript() diff --git a/site/jekyll/tutorials/aspnet4.md b/site/jekyll/tutorials/aspnet4.md index 1ec64369c..375d6e518 100644 --- a/site/jekyll/tutorials/aspnet4.md +++ b/site/jekyll/tutorials/aspnet4.md @@ -101,8 +101,8 @@ Replace the contents of the new view file with the following:
    - - + + @@ -991,8 +991,8 @@ Now that the bundle has been registered, we need to reference it from the view:
    - - + + @Scripts.Render("~/bundles/main") @Html.ReactInitJavaScript() @@ -1111,8 +1111,8 @@ In the view, we will accept the list of comments as the model, and use `Html.Rea submitUrl = Url.Action("AddComment"), pollInterval = 2000 }) - - + + @Html.ReactInitJavaScript() diff --git a/site/jekyll/tutorials/aspnetcore.md b/site/jekyll/tutorials/aspnetcore.md index d5d9ac1c4..0fb3163e9 100644 --- a/site/jekyll/tutorials/aspnetcore.md +++ b/site/jekyll/tutorials/aspnetcore.md @@ -191,8 +191,8 @@ Replace the contents of the new view file with the following:
    - - + + @@ -1115,8 +1115,8 @@ In the view, we will accept the list of comments as the model, and use `Html.Rea submitUrl = Url.Action("AddComment"), pollInterval = 2000, }) - - + + @Html.ReactInitJavaScript() diff --git a/src/React.Sample.Cassette/Views/Home/Index.cshtml b/src/React.Sample.Cassette/Views/Home/Index.cshtml index aff7baf8a..c7a17f1ed 100644 --- a/src/React.Sample.Cassette/Views/Home/Index.cshtml +++ b/src/React.Sample.Cassette/Views/Home/Index.cshtml @@ -20,8 +20,8 @@ @Html.React("CommentsBox", new { initialComments = Model.Comments }) - - + + @Bundles.RenderScripts() diff --git a/src/React.Template/reactnet-vanilla/Views/Home/Index.cshtml b/src/React.Template/reactnet-vanilla/Views/Home/Index.cshtml index 8615baa7c..e4b22b283 100644 --- a/src/React.Template/reactnet-vanilla/Views/Home/Index.cshtml +++ b/src/React.Template/reactnet-vanilla/Views/Home/Index.cshtml @@ -14,8 +14,8 @@ submitUrl = Url.Action("AddComment"), pollInterval = 2000, }) - - + + From e0877f953cd9967a641e506373800a583c7683a1 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 1 Mar 2020 14:30:23 -0800 Subject: [PATCH 401/530] Update babel monorepo (#1006) Co-authored-by: WhiteSource Renovate --- src/React.Core/package-lock.json | 147 +- src/React.Core/package.json | 4 +- .../package-lock.json | 1271 +++++++++-------- src/React.Sample.Webpack.CoreMvc/package.json | 12 +- 4 files changed, 766 insertions(+), 668 deletions(-) diff --git a/src/React.Core/package-lock.json b/src/React.Core/package-lock.json index 12e5bb9b6..9726ae1ac 100644 --- a/src/React.Core/package-lock.json +++ b/src/React.Core/package-lock.json @@ -5,29 +5,30 @@ "requires": true, "dependencies": { "@babel/code-frame": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz", - "integrity": "sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", + "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", "dev": true, "requires": { - "@babel/highlight": "^7.0.0" + "@babel/highlight": "^7.8.3" } }, "@babel/core": { - "version": "7.7.7", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.7.7.tgz", - "integrity": "sha512-jlSjuj/7z138NLZALxVgrx13AOtqip42ATZP7+kYl53GvDV6+4dCek1mVUo8z8c8Xnw/mx2q3d9HWh3griuesQ==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.5.5", - "@babel/generator": "^7.7.7", - "@babel/helpers": "^7.7.4", - "@babel/parser": "^7.7.7", - "@babel/template": "^7.7.4", - "@babel/traverse": "^7.7.4", - "@babel/types": "^7.7.4", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.8.6.tgz", + "integrity": "sha512-Sheg7yEJD51YHAvLEV/7Uvw95AeWqYPL3Vk3zGujJKIhJ+8oLw2ALaf3hbucILhKsgSoADOvtKRJuNVdcJkOrg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.8.6", + "@babel/helpers": "^7.8.4", + "@babel/parser": "^7.8.6", + "@babel/template": "^7.8.6", + "@babel/traverse": "^7.8.6", + "@babel/types": "^7.8.6", "convert-source-map": "^1.7.0", "debug": "^4.1.0", + "gensync": "^1.0.0-beta.1", "json5": "^2.1.0", "lodash": "^4.17.13", "resolve": "^1.3.2", @@ -53,61 +54,61 @@ } }, "@babel/generator": { - "version": "7.7.7", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.7.7.tgz", - "integrity": "sha512-/AOIBpHh/JU1l0ZFS4kiRCBnLi6OTHzh0RPk3h9isBxkkqELtQNFi1Vr/tiG9p1yfoUdKVwISuXWQR+hwwM4VQ==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.6.tgz", + "integrity": "sha512-4bpOR5ZBz+wWcMeVtcf7FbjcFzCp+817z2/gHNncIRcM9MmKzUhtWCYAq27RAfUrAFwb+OCG1s9WEaVxfi6cjg==", "dev": true, "requires": { - "@babel/types": "^7.7.4", + "@babel/types": "^7.8.6", "jsesc": "^2.5.1", "lodash": "^4.17.13", "source-map": "^0.5.0" } }, "@babel/helper-function-name": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.7.4.tgz", - "integrity": "sha512-AnkGIdiBhEuiwdoMnKm7jfPfqItZhgRaZfMg1XX3bS25INOnLPjPG1Ppnajh8eqgt5kPJnfqrRHqFqmjKDZLzQ==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz", + "integrity": "sha512-BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA==", "dev": true, "requires": { - "@babel/helper-get-function-arity": "^7.7.4", - "@babel/template": "^7.7.4", - "@babel/types": "^7.7.4" + "@babel/helper-get-function-arity": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/types": "^7.8.3" } }, "@babel/helper-get-function-arity": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.7.4.tgz", - "integrity": "sha512-QTGKEdCkjgzgfJ3bAyRwF4yyT3pg+vDgan8DSivq1eS0gwi+KGKE5x8kRcbeFTb/673mkO5SN1IZfmCfA5o+EA==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz", + "integrity": "sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==", "dev": true, "requires": { - "@babel/types": "^7.7.4" + "@babel/types": "^7.8.3" } }, "@babel/helper-split-export-declaration": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.7.4.tgz", - "integrity": "sha512-guAg1SXFcVr04Guk9eq0S4/rWS++sbmyqosJzVs8+1fH5NI+ZcmkaSkc7dmtAFbHFva6yRJnjW3yAcGxjueDug==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz", + "integrity": "sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA==", "dev": true, "requires": { - "@babel/types": "^7.7.4" + "@babel/types": "^7.8.3" } }, "@babel/helpers": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.7.4.tgz", - "integrity": "sha512-ak5NGZGJ6LV85Q1Zc9gn2n+ayXOizryhjSUBTdu5ih1tlVCJeuQENzc4ItyCVhINVXvIT/ZQ4mheGIsfBkpskg==", + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.8.4.tgz", + "integrity": "sha512-VPbe7wcQ4chu4TDQjimHv/5tj73qz88o12EPkO2ValS2QiQS/1F2SsjyIGNnAD0vF/nZS6Cf9i+vW6HIlnaR8w==", "dev": true, "requires": { - "@babel/template": "^7.7.4", - "@babel/traverse": "^7.7.4", - "@babel/types": "^7.7.4" + "@babel/template": "^7.8.3", + "@babel/traverse": "^7.8.4", + "@babel/types": "^7.8.3" } }, "@babel/highlight": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.5.0.tgz", - "integrity": "sha512-7dV4eu9gBxoM0dAnj/BCFDW9LFU0zvTrkq0ugM7pnHEgguOEeOz1so2ZghEdzviYzQEED0r4EAgpsBChKy1TRQ==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", + "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", "dev": true, "requires": { "chalk": "^2.0.0", @@ -124,40 +125,40 @@ } }, "@babel/parser": { - "version": "7.7.7", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.7.7.tgz", - "integrity": "sha512-WtTZMZAZLbeymhkd/sEaPD8IQyGAhmuTuvTzLiCFM7iXiVdY0gc0IaI+cW0fh1BnSMbJSzXX6/fHllgHKwHhXw==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.6.tgz", + "integrity": "sha512-trGNYSfwq5s0SgM1BMEB8hX3NDmO7EP2wsDGDexiaKMB92BaRpS+qZfpkMqUBhcsOTBwNy9B/jieo4ad/t/z2g==", "dev": true }, "@babel/standalone": { - "version": "7.7.7", - "resolved": "https://registry.npmjs.org/@babel/standalone/-/standalone-7.7.7.tgz", - "integrity": "sha512-nlhwSzfCVWFxIfY0wL1DJkHyyDbqHNTldCAaAljzPHJ/ppYziziSoM0HJn919e54uUxtO3AAdp8CWqOn8CON/w==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/standalone/-/standalone-7.8.6.tgz", + "integrity": "sha512-GkzSsxrnn3NbL0XwY7oVa1frbl71NmYf73C3xdpt59W056Sm9ohZghuoC2W1NLKAOVztghoyFmtQCKc/7qjSDg==", "dev": true }, "@babel/template": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.7.4.tgz", - "integrity": "sha512-qUzihgVPguAzXCK7WXw8pqs6cEwi54s3E+HrejlkuWO6ivMKx9hZl3Y2fSXp9i5HgyWmj7RKP+ulaYnKM4yYxw==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz", + "integrity": "sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg==", "dev": true, "requires": { - "@babel/code-frame": "^7.0.0", - "@babel/parser": "^7.7.4", - "@babel/types": "^7.7.4" + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.6", + "@babel/types": "^7.8.6" } }, "@babel/traverse": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.7.4.tgz", - "integrity": "sha512-P1L58hQyupn8+ezVA2z5KBm4/Zr4lCC8dwKCMYzsa5jFMDMQAzaBNy9W5VjB+KAmBjb40U7a/H6ao+Xo+9saIw==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.6.tgz", + "integrity": "sha512-2B8l0db/DPi8iinITKuo7cbPznLCEk0kCxDoB9/N6gGNg/gxOXiR/IcymAFPiBwk5w6TtQ27w4wpElgp9btR9A==", "dev": true, "requires": { - "@babel/code-frame": "^7.5.5", - "@babel/generator": "^7.7.4", - "@babel/helper-function-name": "^7.7.4", - "@babel/helper-split-export-declaration": "^7.7.4", - "@babel/parser": "^7.7.4", - "@babel/types": "^7.7.4", + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.8.6", + "@babel/helper-function-name": "^7.8.3", + "@babel/helper-split-export-declaration": "^7.8.3", + "@babel/parser": "^7.8.6", + "@babel/types": "^7.8.6", "debug": "^4.1.0", "globals": "^11.1.0", "lodash": "^4.17.13" @@ -181,9 +182,9 @@ } }, "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.6.tgz", + "integrity": "sha512-wqz7pgWMIrht3gquyEFPVXeXCti72Rm8ep9b5tQKz9Yg9LzJA3HxosF1SB3Kc81KD1A3XBkkVYtJvCKS2Z/QrA==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -2221,6 +2222,12 @@ } } }, + "gensync": { + "version": "1.0.0-beta.1", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.1.tgz", + "integrity": "sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg==", + "dev": true + }, "get-caller-file": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", @@ -3562,9 +3569,9 @@ "dev": true }, "resolve": { - "version": "1.14.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.14.0.tgz", - "integrity": "sha512-uviWSi5N67j3t3UKFxej1loCH0VZn5XuqdNxoLShPcYPw6cUZn74K1VRj+9myynRX03bxIBEkwlkob/ujLsJVw==", + "version": "1.15.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.15.1.tgz", + "integrity": "sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w==", "dev": true, "requires": { "path-parse": "^1.0.6" diff --git a/src/React.Core/package.json b/src/React.Core/package.json index 77ff6a722..d555cc02b 100644 --- a/src/React.Core/package.json +++ b/src/React.Core/package.json @@ -6,8 +6,8 @@ "build": "webpack" }, "devDependencies": { - "@babel/core": "7.7.7", - "@babel/standalone": "7.7.7", + "@babel/core": "7.8.6", + "@babel/standalone": "7.8.6", "prop-types": "15.7.2", "react": "16.13.0", "react-dom": "16.13.0", diff --git a/src/React.Sample.Webpack.CoreMvc/package-lock.json b/src/React.Sample.Webpack.CoreMvc/package-lock.json index a45c4a3ec..a7d592bb0 100644 --- a/src/React.Sample.Webpack.CoreMvc/package-lock.json +++ b/src/React.Sample.Webpack.CoreMvc/package-lock.json @@ -5,29 +5,41 @@ "requires": true, "dependencies": { "@babel/code-frame": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz", - "integrity": "sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", + "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", "dev": true, "requires": { - "@babel/highlight": "^7.0.0" + "@babel/highlight": "^7.8.3" + } + }, + "@babel/compat-data": { + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.8.6.tgz", + "integrity": "sha512-CurCIKPTkS25Mb8mz267vU95vy+TyUpnctEX2lV33xWNmHAfjruztgiPBbXZRh3xZZy1CYvGx6XfxyTVS+sk7Q==", + "dev": true, + "requires": { + "browserslist": "^4.8.5", + "invariant": "^2.2.4", + "semver": "^5.5.0" } }, "@babel/core": { - "version": "7.7.7", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.7.7.tgz", - "integrity": "sha512-jlSjuj/7z138NLZALxVgrx13AOtqip42ATZP7+kYl53GvDV6+4dCek1mVUo8z8c8Xnw/mx2q3d9HWh3griuesQ==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.5.5", - "@babel/generator": "^7.7.7", - "@babel/helpers": "^7.7.4", - "@babel/parser": "^7.7.7", - "@babel/template": "^7.7.4", - "@babel/traverse": "^7.7.4", - "@babel/types": "^7.7.4", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.8.6.tgz", + "integrity": "sha512-Sheg7yEJD51YHAvLEV/7Uvw95AeWqYPL3Vk3zGujJKIhJ+8oLw2ALaf3hbucILhKsgSoADOvtKRJuNVdcJkOrg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.8.6", + "@babel/helpers": "^7.8.4", + "@babel/parser": "^7.8.6", + "@babel/template": "^7.8.6", + "@babel/traverse": "^7.8.6", + "@babel/types": "^7.8.6", "convert-source-map": "^1.7.0", "debug": "^4.1.0", + "gensync": "^1.0.0-beta.1", "json5": "^2.1.0", "lodash": "^4.17.13", "resolve": "^1.3.2", @@ -35,28 +47,10 @@ "source-map": "^0.5.0" }, "dependencies": { - "@babel/generator": { - "version": "7.7.7", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.7.7.tgz", - "integrity": "sha512-/AOIBpHh/JU1l0ZFS4kiRCBnLi6OTHzh0RPk3h9isBxkkqELtQNFi1Vr/tiG9p1yfoUdKVwISuXWQR+hwwM4VQ==", - "dev": true, - "requires": { - "@babel/types": "^7.7.4", - "jsesc": "^2.5.1", - "lodash": "^4.17.13", - "source-map": "^0.5.0" - } - }, - "@babel/parser": { - "version": "7.7.7", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.7.7.tgz", - "integrity": "sha512-WtTZMZAZLbeymhkd/sEaPD8IQyGAhmuTuvTzLiCFM7iXiVdY0gc0IaI+cW0fh1BnSMbJSzXX6/fHllgHKwHhXw==", - "dev": true - }, "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.6.tgz", + "integrity": "sha512-wqz7pgWMIrht3gquyEFPVXeXCti72Rm8ep9b5tQKz9Yg9LzJA3HxosF1SB3Kc81KD1A3XBkkVYtJvCKS2Z/QrA==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -106,21 +100,21 @@ } }, "@babel/generator": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.7.4.tgz", - "integrity": "sha512-m5qo2WgdOJeyYngKImbkyQrnUN1mPceaG5BV+G0E3gWsa4l/jCSryWJdM2x8OuGAOyh+3d5pVYfZWCiNFtynxg==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.6.tgz", + "integrity": "sha512-4bpOR5ZBz+wWcMeVtcf7FbjcFzCp+817z2/gHNncIRcM9MmKzUhtWCYAq27RAfUrAFwb+OCG1s9WEaVxfi6cjg==", "dev": true, "requires": { - "@babel/types": "^7.7.4", + "@babel/types": "^7.8.6", "jsesc": "^2.5.1", "lodash": "^4.17.13", "source-map": "^0.5.0" }, "dependencies": { "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.6.tgz", + "integrity": "sha512-wqz7pgWMIrht3gquyEFPVXeXCti72Rm8ep9b5tQKz9Yg9LzJA3HxosF1SB3Kc81KD1A3XBkkVYtJvCKS2Z/QrA==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -139,19 +133,19 @@ } }, "@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.7.4.tgz", - "integrity": "sha512-Biq/d/WtvfftWZ9Uf39hbPBYDUo986m5Bb4zhkeYDGUllF43D+nUe5M6Vuo6/8JDK/0YX/uBdeoQpyaNhNugZQ==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.8.3.tgz", + "integrity": "sha512-5eFOm2SyFPK4Rh3XMMRDjN7lBH0orh3ss0g3rTYZnBQ+r6YPj7lgDyCvPphynHvUrobJmeMignBr6Acw9mAPlw==", "dev": true, "requires": { - "@babel/helper-explode-assignable-expression": "^7.7.4", - "@babel/types": "^7.7.4" + "@babel/helper-explode-assignable-expression": "^7.8.3", + "@babel/types": "^7.8.3" }, "dependencies": { "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.6.tgz", + "integrity": "sha512-wqz7pgWMIrht3gquyEFPVXeXCti72Rm8ep9b5tQKz9Yg9LzJA3HxosF1SB3Kc81KD1A3XBkkVYtJvCKS2Z/QrA==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -162,19 +156,19 @@ } }, "@babel/helper-builder-react-jsx": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.7.4.tgz", - "integrity": "sha512-kvbfHJNN9dg4rkEM4xn1s8d1/h6TYNvajy9L1wx4qLn9HFg0IkTsQi4rfBe92nxrPUFcMsHoMV+8rU7MJb3fCA==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.8.3.tgz", + "integrity": "sha512-JT8mfnpTkKNCboTqZsQTdGo3l3Ik3l7QIt9hh0O9DYiwVel37VoJpILKM4YFbP2euF32nkQSb+F9cUk9b7DDXQ==", "dev": true, "requires": { - "@babel/types": "^7.7.4", + "@babel/types": "^7.8.3", "esutils": "^2.0.0" }, "dependencies": { "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.6.tgz", + "integrity": "sha512-wqz7pgWMIrht3gquyEFPVXeXCti72Rm8ep9b5tQKz9Yg9LzJA3HxosF1SB3Kc81KD1A3XBkkVYtJvCKS2Z/QrA==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -185,20 +179,20 @@ } }, "@babel/helper-call-delegate": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-call-delegate/-/helper-call-delegate-7.7.4.tgz", - "integrity": "sha512-8JH9/B7J7tCYJ2PpWVpw9JhPuEVHztagNVuQAFBVFYluRMlpG7F1CgKEgGeL6KFqcsIa92ZYVj6DSc0XwmN1ZA==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-call-delegate/-/helper-call-delegate-7.8.3.tgz", + "integrity": "sha512-6Q05px0Eb+N4/GTyKPPvnkig7Lylw+QzihMpws9iiZQv7ZImf84ZsZpQH7QoWN4n4tm81SnSzPgHw2qtO0Zf3A==", "dev": true, "requires": { - "@babel/helper-hoist-variables": "^7.7.4", - "@babel/traverse": "^7.7.4", - "@babel/types": "^7.7.4" + "@babel/helper-hoist-variables": "^7.8.3", + "@babel/traverse": "^7.8.3", + "@babel/types": "^7.8.3" }, "dependencies": { "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.6.tgz", + "integrity": "sha512-wqz7pgWMIrht3gquyEFPVXeXCti72Rm8ep9b5tQKz9Yg9LzJA3HxosF1SB3Kc81KD1A3XBkkVYtJvCKS2Z/QrA==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -208,45 +202,81 @@ } } }, + "@babel/helper-compilation-targets": { + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.8.6.tgz", + "integrity": "sha512-UrJdk27hKVJSnibFcUWYLkCL0ZywTUoot8yii1lsHJcvwrypagmYKjHLMWivQPm4s6GdyygCL8fiH5EYLxhQwQ==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.8.6", + "browserslist": "^4.8.5", + "invariant": "^2.2.4", + "levenary": "^1.1.1", + "semver": "^5.5.0" + } + }, "@babel/helper-create-class-features-plugin": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.7.4.tgz", - "integrity": "sha512-l+OnKACG4uiDHQ/aJT8dwpR+LhCJALxL0mJ6nzjB25e5IPwqV1VOsY7ah6UB1DG+VOXAIMtuC54rFJGiHkxjgA==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.8.6.tgz", + "integrity": "sha512-klTBDdsr+VFFqaDHm5rR69OpEQtO2Qv8ECxHS1mNhJJvaHArR6a1xTf5K/eZW7eZpJbhCx3NW1Yt/sKsLXLblg==", "dev": true, "requires": { - "@babel/helper-function-name": "^7.7.4", - "@babel/helper-member-expression-to-functions": "^7.7.4", - "@babel/helper-optimise-call-expression": "^7.7.4", - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-replace-supers": "^7.7.4", - "@babel/helper-split-export-declaration": "^7.7.4" + "@babel/helper-function-name": "^7.8.3", + "@babel/helper-member-expression-to-functions": "^7.8.3", + "@babel/helper-optimise-call-expression": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-replace-supers": "^7.8.6", + "@babel/helper-split-export-declaration": "^7.8.3" } }, "@babel/helper-create-regexp-features-plugin": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.7.4.tgz", - "integrity": "sha512-Mt+jBKaxL0zfOIWrfQpnfYCN7/rS6GKx6CCCfuoqVVd+17R8zNDlzVYmIi9qyb2wOk002NsmSTDymkIygDUH7A==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.8.6.tgz", + "integrity": "sha512-bPyujWfsHhV/ztUkwGHz/RPV1T1TDEsSZDsN42JPehndA+p1KKTh3npvTadux0ZhCrytx9tvjpWNowKby3tM6A==", "dev": true, "requires": { - "@babel/helper-regex": "^7.4.4", + "@babel/helper-annotate-as-pure": "^7.8.3", + "@babel/helper-regex": "^7.8.3", "regexpu-core": "^4.6.0" + }, + "dependencies": { + "@babel/helper-annotate-as-pure": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.8.3.tgz", + "integrity": "sha512-6o+mJrZBxOoEX77Ezv9zwW7WV8DdluouRKNY/IR5u/YTMuKHgugHOzYWlYvYLpLA9nPsQCAAASpCIbjI9Mv+Uw==", + "dev": true, + "requires": { + "@babel/types": "^7.8.3" + } + }, + "@babel/types": { + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.6.tgz", + "integrity": "sha512-wqz7pgWMIrht3gquyEFPVXeXCti72Rm8ep9b5tQKz9Yg9LzJA3HxosF1SB3Kc81KD1A3XBkkVYtJvCKS2Z/QrA==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/helper-define-map": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.7.4.tgz", - "integrity": "sha512-v5LorqOa0nVQUvAUTUF3KPastvUt/HzByXNamKQ6RdJRTV7j8rLL+WB5C/MzzWAwOomxDhYFb1wLLxHqox86lg==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.8.3.tgz", + "integrity": "sha512-PoeBYtxoZGtct3md6xZOCWPcKuMuk3IHhgxsRRNtnNShebf4C8YonTSblsK4tvDbm+eJAw2HAPOfCr+Q/YRG/g==", "dev": true, "requires": { - "@babel/helper-function-name": "^7.7.4", - "@babel/types": "^7.7.4", + "@babel/helper-function-name": "^7.8.3", + "@babel/types": "^7.8.3", "lodash": "^4.17.13" }, "dependencies": { "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.6.tgz", + "integrity": "sha512-wqz7pgWMIrht3gquyEFPVXeXCti72Rm8ep9b5tQKz9Yg9LzJA3HxosF1SB3Kc81KD1A3XBkkVYtJvCKS2Z/QrA==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -257,19 +287,19 @@ } }, "@babel/helper-explode-assignable-expression": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.7.4.tgz", - "integrity": "sha512-2/SicuFrNSXsZNBxe5UGdLr+HZg+raWBLE9vC98bdYOKX/U6PY0mdGlYUJdtTDPSU0Lw0PNbKKDpwYHJLn2jLg==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.8.3.tgz", + "integrity": "sha512-N+8eW86/Kj147bO9G2uclsg5pwfs/fqqY5rwgIL7eTBklgXjcOJ3btzS5iM6AitJcftnY7pm2lGsrJVYLGjzIw==", "dev": true, "requires": { - "@babel/traverse": "^7.7.4", - "@babel/types": "^7.7.4" + "@babel/traverse": "^7.8.3", + "@babel/types": "^7.8.3" }, "dependencies": { "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.6.tgz", + "integrity": "sha512-wqz7pgWMIrht3gquyEFPVXeXCti72Rm8ep9b5tQKz9Yg9LzJA3HxosF1SB3Kc81KD1A3XBkkVYtJvCKS2Z/QrA==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -280,20 +310,20 @@ } }, "@babel/helper-function-name": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.7.4.tgz", - "integrity": "sha512-AnkGIdiBhEuiwdoMnKm7jfPfqItZhgRaZfMg1XX3bS25INOnLPjPG1Ppnajh8eqgt5kPJnfqrRHqFqmjKDZLzQ==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz", + "integrity": "sha512-BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA==", "dev": true, "requires": { - "@babel/helper-get-function-arity": "^7.7.4", - "@babel/template": "^7.7.4", - "@babel/types": "^7.7.4" + "@babel/helper-get-function-arity": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/types": "^7.8.3" }, "dependencies": { "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.6.tgz", + "integrity": "sha512-wqz7pgWMIrht3gquyEFPVXeXCti72Rm8ep9b5tQKz9Yg9LzJA3HxosF1SB3Kc81KD1A3XBkkVYtJvCKS2Z/QrA==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -304,18 +334,18 @@ } }, "@babel/helper-get-function-arity": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.7.4.tgz", - "integrity": "sha512-QTGKEdCkjgzgfJ3bAyRwF4yyT3pg+vDgan8DSivq1eS0gwi+KGKE5x8kRcbeFTb/673mkO5SN1IZfmCfA5o+EA==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz", + "integrity": "sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==", "dev": true, "requires": { - "@babel/types": "^7.7.4" + "@babel/types": "^7.8.3" }, "dependencies": { "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.6.tgz", + "integrity": "sha512-wqz7pgWMIrht3gquyEFPVXeXCti72Rm8ep9b5tQKz9Yg9LzJA3HxosF1SB3Kc81KD1A3XBkkVYtJvCKS2Z/QrA==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -326,18 +356,18 @@ } }, "@babel/helper-hoist-variables": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.7.4.tgz", - "integrity": "sha512-wQC4xyvc1Jo/FnLirL6CEgPgPCa8M74tOdjWpRhQYapz5JC7u3NYU1zCVoVAGCE3EaIP9T1A3iW0WLJ+reZlpQ==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.8.3.tgz", + "integrity": "sha512-ky1JLOjcDUtSc+xkt0xhYff7Z6ILTAHKmZLHPxAhOP0Nd77O+3nCsd6uSVYur6nJnCI029CrNbYlc0LoPfAPQg==", "dev": true, "requires": { - "@babel/types": "^7.7.4" + "@babel/types": "^7.8.3" }, "dependencies": { "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.6.tgz", + "integrity": "sha512-wqz7pgWMIrht3gquyEFPVXeXCti72Rm8ep9b5tQKz9Yg9LzJA3HxosF1SB3Kc81KD1A3XBkkVYtJvCKS2Z/QrA==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -348,18 +378,18 @@ } }, "@babel/helper-member-expression-to-functions": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.7.4.tgz", - "integrity": "sha512-9KcA1X2E3OjXl/ykfMMInBK+uVdfIVakVe7W7Lg3wfXUNyS3Q1HWLFRwZIjhqiCGbslummPDnmb7vIekS0C1vw==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.8.3.tgz", + "integrity": "sha512-fO4Egq88utkQFjbPrSHGmGLFqmrshs11d46WI+WZDESt7Wu7wN2G2Iu+NMMZJFDOVRHAMIkB5SNh30NtwCA7RA==", "dev": true, "requires": { - "@babel/types": "^7.7.4" + "@babel/types": "^7.8.3" }, "dependencies": { "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.6.tgz", + "integrity": "sha512-wqz7pgWMIrht3gquyEFPVXeXCti72Rm8ep9b5tQKz9Yg9LzJA3HxosF1SB3Kc81KD1A3XBkkVYtJvCKS2Z/QrA==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -378,32 +408,33 @@ } }, "@babel/helper-module-transforms": { - "version": "7.7.5", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.7.5.tgz", - "integrity": "sha512-A7pSxyJf1gN5qXVcidwLWydjftUN878VkalhXX5iQDuGyiGK3sOrrKKHF4/A4fwHtnsotv/NipwAeLzY4KQPvw==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.8.6.tgz", + "integrity": "sha512-RDnGJSR5EFBJjG3deY0NiL0K9TO8SXxS9n/MPsbPK/s9LbQymuLNtlzvDiNS7IpecuL45cMeLVkA+HfmlrnkRg==", "dev": true, "requires": { - "@babel/helper-module-imports": "^7.7.4", - "@babel/helper-simple-access": "^7.7.4", - "@babel/helper-split-export-declaration": "^7.7.4", - "@babel/template": "^7.7.4", - "@babel/types": "^7.7.4", + "@babel/helper-module-imports": "^7.8.3", + "@babel/helper-replace-supers": "^7.8.6", + "@babel/helper-simple-access": "^7.8.3", + "@babel/helper-split-export-declaration": "^7.8.3", + "@babel/template": "^7.8.6", + "@babel/types": "^7.8.6", "lodash": "^4.17.13" }, "dependencies": { "@babel/helper-module-imports": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.7.4.tgz", - "integrity": "sha512-dGcrX6K9l8258WFjyDLJwuVKxR4XZfU0/vTUgOQYWEnRD8mgr+p4d6fCUMq/ys0h4CCt/S5JhbvtyErjWouAUQ==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.8.3.tgz", + "integrity": "sha512-R0Bx3jippsbAEtzkpZ/6FIiuzOURPcMjHp+Z6xPe6DtApDJx+w7UYyOLanZqO8+wKR9G10s/FmHXvxaMd9s6Kg==", "dev": true, "requires": { - "@babel/types": "^7.7.4" + "@babel/types": "^7.8.3" } }, "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.6.tgz", + "integrity": "sha512-wqz7pgWMIrht3gquyEFPVXeXCti72Rm8ep9b5tQKz9Yg9LzJA3HxosF1SB3Kc81KD1A3XBkkVYtJvCKS2Z/QrA==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -414,18 +445,18 @@ } }, "@babel/helper-optimise-call-expression": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.7.4.tgz", - "integrity": "sha512-VB7gWZ2fDkSuqW6b1AKXkJWO5NyNI3bFL/kK79/30moK57blr6NbH8xcl2XcKCwOmJosftWunZqfO84IGq3ZZg==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.8.3.tgz", + "integrity": "sha512-Kag20n86cbO2AvHca6EJsvqAd82gc6VMGule4HwebwMlwkpXuVqrNRj6CkCV2sKxgi9MyAUnZVnZ6lJ1/vKhHQ==", "dev": true, "requires": { - "@babel/types": "^7.7.4" + "@babel/types": "^7.8.3" }, "dependencies": { "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.6.tgz", + "integrity": "sha512-wqz7pgWMIrht3gquyEFPVXeXCti72Rm8ep9b5tQKz9Yg9LzJA3HxosF1SB3Kc81KD1A3XBkkVYtJvCKS2Z/QrA==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -436,46 +467,46 @@ } }, "@babel/helper-plugin-utils": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz", - "integrity": "sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", + "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==", "dev": true }, "@babel/helper-regex": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.5.5.tgz", - "integrity": "sha512-CkCYQLkfkiugbRDO8eZn6lRuR8kzZoGXCg3149iTk5se7g6qykSpy3+hELSwquhu+TgHn8nkLiBwHvNX8Hofcw==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.8.3.tgz", + "integrity": "sha512-BWt0QtYv/cg/NecOAZMdcn/waj/5P26DR4mVLXfFtDokSR6fyuG0Pj+e2FqtSME+MqED1khnSMulkmGl8qWiUQ==", "dev": true, "requires": { "lodash": "^4.17.13" } }, "@babel/helper-remap-async-to-generator": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.7.4.tgz", - "integrity": "sha512-Sk4xmtVdM9sA/jCI80f+KS+Md+ZHIpjuqmYPk1M7F/upHou5e4ReYmExAiu6PVe65BhJPZA2CY9x9k4BqE5klw==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.8.3.tgz", + "integrity": "sha512-kgwDmw4fCg7AVgS4DukQR/roGp+jP+XluJE5hsRZwxCYGg+Rv9wSGErDWhlI90FODdYfd4xG4AQRiMDjjN0GzA==", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.7.4", - "@babel/helper-wrap-function": "^7.7.4", - "@babel/template": "^7.7.4", - "@babel/traverse": "^7.7.4", - "@babel/types": "^7.7.4" + "@babel/helper-annotate-as-pure": "^7.8.3", + "@babel/helper-wrap-function": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/traverse": "^7.8.3", + "@babel/types": "^7.8.3" }, "dependencies": { "@babel/helper-annotate-as-pure": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.7.4.tgz", - "integrity": "sha512-2BQmQgECKzYKFPpiycoF9tlb5HA4lrVyAmLLVK177EcQAqjVLciUb2/R+n1boQ9y5ENV3uz2ZqiNw7QMBBw1Og==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.8.3.tgz", + "integrity": "sha512-6o+mJrZBxOoEX77Ezv9zwW7WV8DdluouRKNY/IR5u/YTMuKHgugHOzYWlYvYLpLA9nPsQCAAASpCIbjI9Mv+Uw==", "dev": true, "requires": { - "@babel/types": "^7.7.4" + "@babel/types": "^7.8.3" } }, "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.6.tgz", + "integrity": "sha512-wqz7pgWMIrht3gquyEFPVXeXCti72Rm8ep9b5tQKz9Yg9LzJA3HxosF1SB3Kc81KD1A3XBkkVYtJvCKS2Z/QrA==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -486,21 +517,21 @@ } }, "@babel/helper-replace-supers": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.7.4.tgz", - "integrity": "sha512-pP0tfgg9hsZWo5ZboYGuBn/bbYT/hdLPVSS4NMmiRJdwWhP0IznPwN9AE1JwyGsjSPLC364I0Qh5p+EPkGPNpg==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.8.6.tgz", + "integrity": "sha512-PeMArdA4Sv/Wf4zXwBKPqVj7n9UF/xg6slNRtZW84FM7JpE1CbG8B612FyM4cxrf4fMAMGO0kR7voy1ForHHFA==", "dev": true, "requires": { - "@babel/helper-member-expression-to-functions": "^7.7.4", - "@babel/helper-optimise-call-expression": "^7.7.4", - "@babel/traverse": "^7.7.4", - "@babel/types": "^7.7.4" + "@babel/helper-member-expression-to-functions": "^7.8.3", + "@babel/helper-optimise-call-expression": "^7.8.3", + "@babel/traverse": "^7.8.6", + "@babel/types": "^7.8.6" }, "dependencies": { "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.6.tgz", + "integrity": "sha512-wqz7pgWMIrht3gquyEFPVXeXCti72Rm8ep9b5tQKz9Yg9LzJA3HxosF1SB3Kc81KD1A3XBkkVYtJvCKS2Z/QrA==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -511,19 +542,19 @@ } }, "@babel/helper-simple-access": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.7.4.tgz", - "integrity": "sha512-zK7THeEXfan7UlWsG2A6CI/L9jVnI5+xxKZOdej39Y0YtDYKx9raHk5F2EtK9K8DHRTihYwg20ADt9S36GR78A==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.8.3.tgz", + "integrity": "sha512-VNGUDjx5cCWg4vvCTR8qQ7YJYZ+HBjxOgXEl7ounz+4Sn7+LMD3CFrCTEU6/qXKbA2nKg21CwhhBzO0RpRbdCw==", "dev": true, "requires": { - "@babel/template": "^7.7.4", - "@babel/types": "^7.7.4" + "@babel/template": "^7.8.3", + "@babel/types": "^7.8.3" }, "dependencies": { "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.6.tgz", + "integrity": "sha512-wqz7pgWMIrht3gquyEFPVXeXCti72Rm8ep9b5tQKz9Yg9LzJA3HxosF1SB3Kc81KD1A3XBkkVYtJvCKS2Z/QrA==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -534,18 +565,18 @@ } }, "@babel/helper-split-export-declaration": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.7.4.tgz", - "integrity": "sha512-guAg1SXFcVr04Guk9eq0S4/rWS++sbmyqosJzVs8+1fH5NI+ZcmkaSkc7dmtAFbHFva6yRJnjW3yAcGxjueDug==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz", + "integrity": "sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA==", "dev": true, "requires": { - "@babel/types": "^7.7.4" + "@babel/types": "^7.8.3" }, "dependencies": { "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.6.tgz", + "integrity": "sha512-wqz7pgWMIrht3gquyEFPVXeXCti72Rm8ep9b5tQKz9Yg9LzJA3HxosF1SB3Kc81KD1A3XBkkVYtJvCKS2Z/QrA==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -556,21 +587,21 @@ } }, "@babel/helper-wrap-function": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.7.4.tgz", - "integrity": "sha512-VsfzZt6wmsocOaVU0OokwrIytHND55yvyT4BPB9AIIgwr8+x7617hetdJTsuGwygN5RC6mxA9EJztTjuwm2ofg==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.8.3.tgz", + "integrity": "sha512-LACJrbUET9cQDzb6kG7EeD7+7doC3JNvUgTEQOx2qaO1fKlzE/Bf05qs9w1oXQMmXlPO65lC3Tq9S6gZpTErEQ==", "dev": true, "requires": { - "@babel/helper-function-name": "^7.7.4", - "@babel/template": "^7.7.4", - "@babel/traverse": "^7.7.4", - "@babel/types": "^7.7.4" + "@babel/helper-function-name": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/traverse": "^7.8.3", + "@babel/types": "^7.8.3" }, "dependencies": { "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.6.tgz", + "integrity": "sha512-wqz7pgWMIrht3gquyEFPVXeXCti72Rm8ep9b5tQKz9Yg9LzJA3HxosF1SB3Kc81KD1A3XBkkVYtJvCKS2Z/QrA==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -581,20 +612,20 @@ } }, "@babel/helpers": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.7.4.tgz", - "integrity": "sha512-ak5NGZGJ6LV85Q1Zc9gn2n+ayXOizryhjSUBTdu5ih1tlVCJeuQENzc4ItyCVhINVXvIT/ZQ4mheGIsfBkpskg==", + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.8.4.tgz", + "integrity": "sha512-VPbe7wcQ4chu4TDQjimHv/5tj73qz88o12EPkO2ValS2QiQS/1F2SsjyIGNnAD0vF/nZS6Cf9i+vW6HIlnaR8w==", "dev": true, "requires": { - "@babel/template": "^7.7.4", - "@babel/traverse": "^7.7.4", - "@babel/types": "^7.7.4" + "@babel/template": "^7.8.3", + "@babel/traverse": "^7.8.4", + "@babel/types": "^7.8.3" }, "dependencies": { "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.6.tgz", + "integrity": "sha512-wqz7pgWMIrht3gquyEFPVXeXCti72Rm8ep9b5tQKz9Yg9LzJA3HxosF1SB3Kc81KD1A3XBkkVYtJvCKS2Z/QrA==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -605,9 +636,9 @@ } }, "@babel/highlight": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.5.0.tgz", - "integrity": "sha512-7dV4eu9gBxoM0dAnj/BCFDW9LFU0zvTrkq0ugM7pnHEgguOEeOz1so2ZghEdzviYzQEED0r4EAgpsBChKy1TRQ==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", + "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", "dev": true, "requires": { "chalk": "^2.0.0", @@ -624,178 +655,216 @@ } }, "@babel/parser": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.7.4.tgz", - "integrity": "sha512-jIwvLO0zCL+O/LmEJQjWA75MQTWwx3c3u2JOTDK5D3/9egrWRRA0/0hk9XXywYnXZVVpzrBYeIQTmhwUaePI9g==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.6.tgz", + "integrity": "sha512-trGNYSfwq5s0SgM1BMEB8hX3NDmO7EP2wsDGDexiaKMB92BaRpS+qZfpkMqUBhcsOTBwNy9B/jieo4ad/t/z2g==", "dev": true }, "@babel/plugin-proposal-async-generator-functions": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.7.4.tgz", - "integrity": "sha512-1ypyZvGRXriY/QP668+s8sFr2mqinhkRDMPSQLNghCQE+GAkFtp+wkHVvg2+Hdki8gwP+NFzJBJ/N1BfzCCDEw==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.8.3.tgz", + "integrity": "sha512-NZ9zLv848JsV3hs8ryEh7Uaz/0KsmPLqv0+PdkDJL1cJy0K4kOCFa8zc1E3mp+RHPQcpdfb/6GovEsW4VDrOMw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-remap-async-to-generator": "^7.7.4", - "@babel/plugin-syntax-async-generators": "^7.7.4" + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-remap-async-to-generator": "^7.8.3", + "@babel/plugin-syntax-async-generators": "^7.8.0" } }, "@babel/plugin-proposal-class-properties": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.7.4.tgz", - "integrity": "sha512-EcuXeV4Hv1X3+Q1TsuOmyyxeTRiSqurGJ26+I/FW1WbymmRRapVORm6x1Zl3iDIHyRxEs+VXWp6qnlcfcJSbbw==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.8.3.tgz", + "integrity": "sha512-EqFhbo7IosdgPgZggHaNObkmO1kNUe3slaKu54d5OWvy+p9QIKOzK1GAEpAIsZtWVtPXUHSMcT4smvDrCfY4AA==", "dev": true, "requires": { - "@babel/helper-create-class-features-plugin": "^7.7.4", - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-create-class-features-plugin": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-proposal-dynamic-import": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.7.4.tgz", - "integrity": "sha512-StH+nGAdO6qDB1l8sZ5UBV8AC3F2VW2I8Vfld73TMKyptMU9DY5YsJAS8U81+vEtxcH3Y/La0wG0btDrhpnhjQ==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.8.3.tgz", + "integrity": "sha512-NyaBbyLFXFLT9FP+zk0kYlUlA8XtCUbehs67F0nnEg7KICgMc2mNkIeu9TYhKzyXMkrapZFwAhXLdnt4IYHy1w==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-syntax-dynamic-import": "^7.7.4" + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-dynamic-import": "^7.8.0" } }, "@babel/plugin-proposal-json-strings": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.7.4.tgz", - "integrity": "sha512-wQvt3akcBTfLU/wYoqm/ws7YOAQKu8EVJEvHip/mzkNtjaclQoCCIqKXFP5/eyfnfbQCDV3OLRIK3mIVyXuZlw==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.8.3.tgz", + "integrity": "sha512-KGhQNZ3TVCQG/MjRbAUwuH+14y9q0tpxs1nWWs3pbSleRdDro9SAMMDyye8HhY1gqZ7/NqIc8SKhya0wRDgP1Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.0" + } + }, + "@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-TS9MlfzXpXKt6YYomudb/KU7nQI6/xnapG6in1uZxoxDghuSMZsPb6D2fyUwNYSAp4l1iR7QtFOjkqcRYcUsfw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-syntax-json-strings": "^7.7.4" + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0" } }, "@babel/plugin-proposal-object-rest-spread": { - "version": "7.7.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.7.7.tgz", - "integrity": "sha512-3qp9I8lelgzNedI3hrhkvhaEYree6+WHnyA/q4Dza9z7iEIs1eyhWyJnetk3jJ69RT0AT4G0UhEGwyGFJ7GUuQ==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-8qvuPwU/xxUCt78HocNlv0mXXo0wdh9VT1R04WU8HGOfaOob26pF+9P5/lYjN/q7DHOX1bvX60hnhOvuQUJdbA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-syntax-object-rest-spread": "^7.7.4" + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0" } }, "@babel/plugin-proposal-optional-catch-binding": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.7.4.tgz", - "integrity": "sha512-DyM7U2bnsQerCQ+sejcTNZh8KQEUuC3ufzdnVnSiUv/qoGJp2Z3hanKL18KDhsBT5Wj6a7CMT5mdyCNJsEaA9w==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-0gkX7J7E+AtAw9fcwlVQj8peP61qhdg/89D5swOkjYbkboA2CVckn3kiyum1DE0wskGb7KJJxBdyEBApDLLVdw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.0" + } + }, + "@babel/plugin-proposal-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.8.3.tgz", + "integrity": "sha512-QIoIR9abkVn+seDE3OjA08jWcs3eZ9+wJCKSRgo3WdEU2csFYgdScb+8qHB3+WXsGJD55u+5hWCISI7ejXS+kg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-syntax-optional-catch-binding": "^7.7.4" + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.0" } }, "@babel/plugin-proposal-unicode-property-regex": { - "version": "7.7.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.7.7.tgz", - "integrity": "sha512-80PbkKyORBUVm1fbTLrHpYdJxMThzM1UqFGh0ALEhO9TYbG86Ah9zQYAB/84axz2vcxefDLdZwWwZNlYARlu9w==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.8.3.tgz", + "integrity": "sha512-1/1/rEZv2XGweRwwSkLpY+s60za9OZ1hJs4YDqFHCw0kYWYwL5IFljVY1MYBL+weT1l9pokDO2uhSTLVxzoHkQ==", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.7.4", - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-create-regexp-features-plugin": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-syntax-async-generators": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.7.4.tgz", - "integrity": "sha512-Li4+EjSpBgxcsmeEF8IFcfV/+yJGxHXDirDkEoyFjumuwbmfCVHUt0HuowD/iGM7OhIRyXJH9YXxqiH6N815+g==", + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.8.0" } }, "@babel/plugin-syntax-dynamic-import": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.7.4.tgz", - "integrity": "sha512-jHQW0vbRGvwQNgyVxwDh4yuXu4bH1f5/EICJLAhl1SblLs2CDhrsmCk+v5XLdE9wxtAFRyxx+P//Iw+a5L/tTg==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.8.0" } }, "@babel/plugin-syntax-json-strings": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.7.4.tgz", - "integrity": "sha512-QpGupahTQW1mHRXddMG5srgpHWqRLwJnJZKXTigB9RPFCCGbDGCgBeM/iC82ICXp414WeYx/tD54w7M2qRqTMg==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.8.0" } }, "@babel/plugin-syntax-jsx": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.7.4.tgz", - "integrity": "sha512-wuy6fiMe9y7HeZBWXYCGt2RGxZOj0BImZ9EyXJVnVGBKO/Br592rbR3rtIQn0eQhAk9vqaKP5n8tVqEFBQMfLg==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.8.3.tgz", + "integrity": "sha512-WxdW9xyLgBdefoo0Ynn3MRSkhe5tFVxxKNVdnZSh318WrG2e2jH+E9wd/++JsqcLJZPfz87njQJ8j2Upjm0M0A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.8.0" } }, "@babel/plugin-syntax-object-rest-spread": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.7.4.tgz", - "integrity": "sha512-mObR+r+KZq0XhRVS2BrBKBpr5jqrqzlPvS9C9vuOf5ilSwzloAl7RPWLrgKdWS6IreaVrjHxTjtyqFiOisaCwg==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.8.0" } }, "@babel/plugin-syntax-optional-catch-binding": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.7.4.tgz", - "integrity": "sha512-4ZSuzWgFxqHRE31Glu+fEr/MirNZOMYmD/0BhBWyLyOOQz/gTAl7QmWm2hX1QxEIXsr2vkdlwxIzTyiYRC4xcQ==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" } }, "@babel/plugin-syntax-top-level-await": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.7.4.tgz", - "integrity": "sha512-wdsOw0MvkL1UIgiQ/IFr3ETcfv1xb8RMM0H9wbiDyLaJFyiDg5oZvDLCXosIXmFeIlweML5iOBXAkqddkYNizg==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.8.3.tgz", + "integrity": "sha512-kwj1j9lL/6Wd0hROD3b/OZZ7MSrZLqqn9RAZ5+cYYsflQ9HZBIKCUkr3+uL1MEJ1NePiUbf98jjiMQSv0NMR9g==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-transform-arrow-functions": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.7.4.tgz", - "integrity": "sha512-zUXy3e8jBNPiffmqkHRNDdZM2r8DWhCB7HhcoyZjiK1TxYEluLHAvQuYnTT+ARqRpabWqy/NHkO6e3MsYB5YfA==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.8.3.tgz", + "integrity": "sha512-0MRF+KC8EqH4dbuITCWwPSzsyO3HIWWlm30v8BbbpOrS1B++isGxPnnuq/IZvOX5J2D/p7DQalQm+/2PnlKGxg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-transform-async-to-generator": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.7.4.tgz", - "integrity": "sha512-zpUTZphp5nHokuy8yLlyafxCJ0rSlFoSHypTUWgpdwoDXWQcseaect7cJ8Ppk6nunOM6+5rPMkod4OYKPR5MUg==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.8.3.tgz", + "integrity": "sha512-imt9tFLD9ogt56Dd5CI/6XgpukMwd/fLGSrix2httihVe7LOGVPhyhMh1BU5kDM7iHD08i8uUtmV2sWaBFlHVQ==", "dev": true, "requires": { - "@babel/helper-module-imports": "^7.7.4", - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-remap-async-to-generator": "^7.7.4" + "@babel/helper-module-imports": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-remap-async-to-generator": "^7.8.3" }, "dependencies": { "@babel/helper-module-imports": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.7.4.tgz", - "integrity": "sha512-dGcrX6K9l8258WFjyDLJwuVKxR4XZfU0/vTUgOQYWEnRD8mgr+p4d6fCUMq/ys0h4CCt/S5JhbvtyErjWouAUQ==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.8.3.tgz", + "integrity": "sha512-R0Bx3jippsbAEtzkpZ/6FIiuzOURPcMjHp+Z6xPe6DtApDJx+w7UYyOLanZqO8+wKR9G10s/FmHXvxaMd9s6Kg==", "dev": true, "requires": { - "@babel/types": "^7.7.4" + "@babel/types": "^7.8.3" } }, "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.6.tgz", + "integrity": "sha512-wqz7pgWMIrht3gquyEFPVXeXCti72Rm8ep9b5tQKz9Yg9LzJA3HxosF1SB3Kc81KD1A3XBkkVYtJvCKS2Z/QrA==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -806,53 +875,53 @@ } }, "@babel/plugin-transform-block-scoped-functions": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.7.4.tgz", - "integrity": "sha512-kqtQzwtKcpPclHYjLK//3lH8OFsCDuDJBaFhVwf8kqdnF6MN4l618UDlcA7TfRs3FayrHj+svYnSX8MC9zmUyQ==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.8.3.tgz", + "integrity": "sha512-vo4F2OewqjbB1+yaJ7k2EJFHlTP3jR634Z9Cj9itpqNjuLXvhlVxgnjsHsdRgASR8xYDrx6onw4vW5H6We0Jmg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-transform-block-scoping": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.7.4.tgz", - "integrity": "sha512-2VBe9u0G+fDt9B5OV5DQH4KBf5DoiNkwFKOz0TCvBWvdAN2rOykCTkrL+jTLxfCAm76l9Qo5OqL7HBOx2dWggg==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.8.3.tgz", + "integrity": "sha512-pGnYfm7RNRgYRi7bids5bHluENHqJhrV4bCZRwc5GamaWIIs07N4rZECcmJL6ZClwjDz1GbdMZFtPs27hTB06w==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-plugin-utils": "^7.8.3", "lodash": "^4.17.13" } }, "@babel/plugin-transform-classes": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.7.4.tgz", - "integrity": "sha512-sK1mjWat7K+buWRuImEzjNf68qrKcrddtpQo3swi9j7dUcG6y6R6+Di039QN2bD1dykeswlagupEmpOatFHHUg==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.7.4", - "@babel/helper-define-map": "^7.7.4", - "@babel/helper-function-name": "^7.7.4", - "@babel/helper-optimise-call-expression": "^7.7.4", - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-replace-supers": "^7.7.4", - "@babel/helper-split-export-declaration": "^7.7.4", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.8.6.tgz", + "integrity": "sha512-k9r8qRay/R6v5aWZkrEclEhKO6mc1CCQr2dLsVHBmOQiMpN6I2bpjX3vgnldUWeEI1GHVNByULVxZ4BdP4Hmdg==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.8.3", + "@babel/helper-define-map": "^7.8.3", + "@babel/helper-function-name": "^7.8.3", + "@babel/helper-optimise-call-expression": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-replace-supers": "^7.8.6", + "@babel/helper-split-export-declaration": "^7.8.3", "globals": "^11.1.0" }, "dependencies": { "@babel/helper-annotate-as-pure": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.7.4.tgz", - "integrity": "sha512-2BQmQgECKzYKFPpiycoF9tlb5HA4lrVyAmLLVK177EcQAqjVLciUb2/R+n1boQ9y5ENV3uz2ZqiNw7QMBBw1Og==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.8.3.tgz", + "integrity": "sha512-6o+mJrZBxOoEX77Ezv9zwW7WV8DdluouRKNY/IR5u/YTMuKHgugHOzYWlYvYLpLA9nPsQCAAASpCIbjI9Mv+Uw==", "dev": true, "requires": { - "@babel/types": "^7.7.4" + "@babel/types": "^7.8.3" } }, "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.6.tgz", + "integrity": "sha512-wqz7pgWMIrht3gquyEFPVXeXCti72Rm8ep9b5tQKz9Yg9LzJA3HxosF1SB3Kc81KD1A3XBkkVYtJvCKS2Z/QrA==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -863,290 +932,291 @@ } }, "@babel/plugin-transform-computed-properties": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.7.4.tgz", - "integrity": "sha512-bSNsOsZnlpLLyQew35rl4Fma3yKWqK3ImWMSC/Nc+6nGjC9s5NFWAer1YQ899/6s9HxO2zQC1WoFNfkOqRkqRQ==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.8.3.tgz", + "integrity": "sha512-O5hiIpSyOGdrQZRQ2ccwtTVkgUDBBiCuK//4RJ6UfePllUTCENOzKxfh6ulckXKc0DixTFLCfb2HVkNA7aDpzA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-transform-destructuring": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.7.4.tgz", - "integrity": "sha512-4jFMXI1Cu2aXbcXXl8Lr6YubCn6Oc7k9lLsu8v61TZh+1jny2BWmdtvY9zSUlLdGUvcy9DMAWyZEOqjsbeg/wA==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.8.3.tgz", + "integrity": "sha512-H4X646nCkiEcHZUZaRkhE2XVsoz0J/1x3VVujnn96pSoGCtKPA99ZZA+va+gK+92Zycd6OBKCD8tDb/731bhgQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-transform-dotall-regex": { - "version": "7.7.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.7.7.tgz", - "integrity": "sha512-b4in+YlTeE/QmTgrllnb3bHA0HntYvjz8O3Mcbx75UBPJA2xhb5A8nle498VhxSXJHQefjtQxpnLPehDJ4TRlg==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.8.3.tgz", + "integrity": "sha512-kLs1j9Nn4MQoBYdRXH6AeaXMbEJFaFu/v1nQkvib6QzTj8MZI5OQzqmD83/2jEM1z0DLilra5aWO5YpyC0ALIw==", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.7.4", - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-create-regexp-features-plugin": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-transform-duplicate-keys": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.7.4.tgz", - "integrity": "sha512-g1y4/G6xGWMD85Tlft5XedGaZBCIVN+/P0bs6eabmcPP9egFleMAo65OOjlhcz1njpwagyY3t0nsQC9oTFegJA==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.8.3.tgz", + "integrity": "sha512-s8dHiBUbcbSgipS4SMFuWGqCvyge5V2ZeAWzR6INTVC3Ltjig/Vw1G2Gztv0vU/hRG9X8IvKvYdoksnUfgXOEQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-transform-exponentiation-operator": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.7.4.tgz", - "integrity": "sha512-MCqiLfCKm6KEA1dglf6Uqq1ElDIZwFuzz1WH5mTf8k2uQSxEJMbOIEh7IZv7uichr7PMfi5YVSrr1vz+ipp7AQ==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.8.3.tgz", + "integrity": "sha512-zwIpuIymb3ACcInbksHaNcR12S++0MDLKkiqXHl3AzpgdKlFNhog+z/K0+TGW+b0w5pgTq4H6IwV/WhxbGYSjQ==", "dev": true, "requires": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.7.4", - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-transform-for-of": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.7.4.tgz", - "integrity": "sha512-zZ1fD1B8keYtEcKF+M1TROfeHTKnijcVQm0yO/Yu1f7qoDoxEIc/+GX6Go430Bg84eM/xwPFp0+h4EbZg7epAA==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.8.6.tgz", + "integrity": "sha512-M0pw4/1/KI5WAxPsdcUL/w2LJ7o89YHN3yLkzNjg7Yl15GlVGgzHyCU+FMeAxevHGsLVmUqbirlUIKTafPmzdw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-transform-function-name": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.7.4.tgz", - "integrity": "sha512-E/x09TvjHNhsULs2IusN+aJNRV5zKwxu1cpirZyRPw+FyyIKEHPXTsadj48bVpc1R5Qq1B5ZkzumuFLytnbT6g==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.8.3.tgz", + "integrity": "sha512-rO/OnDS78Eifbjn5Py9v8y0aR+aSYhDhqAwVfsTl0ERuMZyr05L1aFSCJnbv2mmsLkit/4ReeQ9N2BgLnOcPCQ==", "dev": true, "requires": { - "@babel/helper-function-name": "^7.7.4", - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-function-name": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-transform-literals": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.7.4.tgz", - "integrity": "sha512-X2MSV7LfJFm4aZfxd0yLVFrEXAgPqYoDG53Br/tCKiKYfX0MjVjQeWPIhPHHsCqzwQANq+FLN786fF5rgLS+gw==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.8.3.tgz", + "integrity": "sha512-3Tqf8JJ/qB7TeldGl+TT55+uQei9JfYaregDcEAyBZ7akutriFrt6C/wLYIer6OYhleVQvH/ntEhjE/xMmy10A==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-transform-member-expression-literals": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.7.4.tgz", - "integrity": "sha512-9VMwMO7i69LHTesL0RdGy93JU6a+qOPuvB4F4d0kR0zyVjJRVJRaoaGjhtki6SzQUu8yen/vxPKN6CWnCUw6bA==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.8.3.tgz", + "integrity": "sha512-3Wk2EXhnw+rP+IDkK6BdtPKsUE5IeZ6QOGrPYvw52NwBStw9V1ZVzxgK6fSKSxqUvH9eQPR3tm3cOq79HlsKYA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-transform-modules-amd": { - "version": "7.7.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.7.5.tgz", - "integrity": "sha512-CT57FG4A2ZUNU1v+HdvDSDrjNWBrtCmSH6YbbgN3Lrf0Di/q/lWRxZrE72p3+HCCz9UjfZOEBdphgC0nzOS6DQ==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.8.3.tgz", + "integrity": "sha512-MadJiU3rLKclzT5kBH4yxdry96odTUwuqrZM+GllFI/VhxfPz+k9MshJM+MwhfkCdxxclSbSBbUGciBngR+kEQ==", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.7.5", - "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-module-transforms": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3", "babel-plugin-dynamic-import-node": "^2.3.0" } }, "@babel/plugin-transform-modules-commonjs": { - "version": "7.7.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.7.5.tgz", - "integrity": "sha512-9Cq4zTFExwFhQI6MT1aFxgqhIsMWQWDVwOgLzl7PTWJHsNaqFvklAU+Oz6AQLAS0dJKTwZSOCo20INwktxpi3Q==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.8.3.tgz", + "integrity": "sha512-JpdMEfA15HZ/1gNuB9XEDlZM1h/gF/YOH7zaZzQu2xCFRfwc01NXBMHHSTT6hRjlXJJs5x/bfODM3LiCk94Sxg==", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.7.5", - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-simple-access": "^7.7.4", + "@babel/helper-module-transforms": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-simple-access": "^7.8.3", "babel-plugin-dynamic-import-node": "^2.3.0" } }, "@babel/plugin-transform-modules-systemjs": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.7.4.tgz", - "integrity": "sha512-y2c96hmcsUi6LrMqvmNDPBBiGCiQu0aYqpHatVVu6kD4mFEXKjyNxd/drc18XXAf9dv7UXjrZwBVmTTGaGP8iw==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.8.3.tgz", + "integrity": "sha512-8cESMCJjmArMYqa9AO5YuMEkE4ds28tMpZcGZB/jl3n0ZzlsxOAi3mC+SKypTfT8gjMupCnd3YiXCkMjj2jfOg==", "dev": true, "requires": { - "@babel/helper-hoist-variables": "^7.7.4", - "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-hoist-variables": "^7.8.3", + "@babel/helper-module-transforms": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3", "babel-plugin-dynamic-import-node": "^2.3.0" } }, "@babel/plugin-transform-modules-umd": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.7.4.tgz", - "integrity": "sha512-u2B8TIi0qZI4j8q4C51ktfO7E3cQ0qnaXFI1/OXITordD40tt17g/sXqgNNCcMTcBFKrUPcGDx+TBJuZxLx7tw==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.8.3.tgz", + "integrity": "sha512-evhTyWhbwbI3/U6dZAnx/ePoV7H6OUG+OjiJFHmhr9FPn0VShjwC2kdxqIuQ/+1P50TMrneGzMeyMTFOjKSnAw==", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.7.4", - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-module-transforms": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.7.4.tgz", - "integrity": "sha512-jBUkiqLKvUWpv9GLSuHUFYdmHg0ujC1JEYoZUfeOOfNydZXp1sXObgyPatpcwjWgsdBGsagWW0cdJpX/DO2jMw==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.8.3.tgz", + "integrity": "sha512-f+tF/8UVPU86TrCb06JoPWIdDpTNSGGcAtaD9mLP0aYGA0OS0j7j7DHJR0GTFrUZPUU6loZhbsVZgTh0N+Qdnw==", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.7.4" + "@babel/helper-create-regexp-features-plugin": "^7.8.3" } }, "@babel/plugin-transform-new-target": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.7.4.tgz", - "integrity": "sha512-CnPRiNtOG1vRodnsyGX37bHQleHE14B9dnnlgSeEs3ek3fHN1A1SScglTCg1sfbe7sRQ2BUcpgpTpWSfMKz3gg==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.8.3.tgz", + "integrity": "sha512-QuSGysibQpyxexRyui2vca+Cmbljo8bcRckgzYV4kRIsHpVeyeC3JDO63pY+xFZ6bWOBn7pfKZTqV4o/ix9sFw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-transform-object-super": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.7.4.tgz", - "integrity": "sha512-ho+dAEhC2aRnff2JCA0SAK7V2R62zJd/7dmtoe7MHcso4C2mS+vZjn1Pb1pCVZvJs1mgsvv5+7sT+m3Bysb6eg==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.8.3.tgz", + "integrity": "sha512-57FXk+gItG/GejofIyLIgBKTas4+pEU47IXKDBWFTxdPd7F80H8zybyAY7UoblVfBhBGs2EKM+bJUu2+iUYPDQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-replace-supers": "^7.7.4" + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-replace-supers": "^7.8.3" } }, "@babel/plugin-transform-parameters": { - "version": "7.7.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.7.7.tgz", - "integrity": "sha512-OhGSrf9ZBrr1fw84oFXj5hgi8Nmg+E2w5L7NhnG0lPvpDtqd7dbyilM2/vR8CKbJ907RyxPh2kj6sBCSSfI9Ew==", + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.8.4.tgz", + "integrity": "sha512-IsS3oTxeTsZlE5KqzTbcC2sV0P9pXdec53SU+Yxv7o/6dvGM5AkTotQKhoSffhNgZ/dftsSiOoxy7evCYJXzVA==", "dev": true, "requires": { - "@babel/helper-call-delegate": "^7.7.4", - "@babel/helper-get-function-arity": "^7.7.4", - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-call-delegate": "^7.8.3", + "@babel/helper-get-function-arity": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-transform-property-literals": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.7.4.tgz", - "integrity": "sha512-MatJhlC4iHsIskWYyawl53KuHrt+kALSADLQQ/HkhTjX954fkxIEh4q5slL4oRAnsm/eDoZ4q0CIZpcqBuxhJQ==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.8.3.tgz", + "integrity": "sha512-uGiiXAZMqEoQhRWMK17VospMZh5sXWg+dlh2soffpkAl96KAm+WZuJfa6lcELotSRmooLqg0MWdH6UUq85nmmg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-transform-react-display-name": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.7.4.tgz", - "integrity": "sha512-sBbIvqYkthai0X0vkD2xsAwluBp+LtNHH+/V4a5ydifmTtb8KOVOlrMIk/MYmIc4uTYDnjZUHQildYNo36SRJw==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.8.3.tgz", + "integrity": "sha512-3Jy/PCw8Fe6uBKtEgz3M82ljt+lTg+xJaM4og+eyu83qLT87ZUSckn0wy7r31jflURWLO83TW6Ylf7lyXj3m5A==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-transform-react-jsx": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.7.4.tgz", - "integrity": "sha512-LixU4BS95ZTEAZdPaIuyg/k8FiiqN9laQ0dMHB4MlpydHY53uQdWCUrwjLr5o6ilS6fAgZey4Q14XBjl5tL6xw==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.8.3.tgz", + "integrity": "sha512-r0h+mUiyL595ikykci+fbwm9YzmuOrUBi0b+FDIKmi3fPQyFokWVEMJnRWHJPPQEjyFJyna9WZC6Viv6UHSv1g==", "dev": true, "requires": { - "@babel/helper-builder-react-jsx": "^7.7.4", - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-syntax-jsx": "^7.7.4" + "@babel/helper-builder-react-jsx": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-jsx": "^7.8.3" } }, "@babel/plugin-transform-react-jsx-self": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.7.4.tgz", - "integrity": "sha512-PWYjSfqrO273mc1pKCRTIJXyqfc9vWYBax88yIhQb+bpw3XChVC7VWS4VwRVs63wFHKxizvGSd00XEr+YB9Q2A==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.8.3.tgz", + "integrity": "sha512-01OT7s5oa0XTLf2I8XGsL8+KqV9lx3EZV+jxn/L2LQ97CGKila2YMroTkCEIE0HV/FF7CMSRsIAybopdN9NTdg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-syntax-jsx": "^7.7.4" + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-jsx": "^7.8.3" } }, "@babel/plugin-transform-react-jsx-source": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.7.4.tgz", - "integrity": "sha512-5ZU9FnPhqtHsOXxutRtXZAzoEJwDaP32QcobbMP1/qt7NYcsCNK8XgzJcJfoEr/ZnzVvUNInNjIW22Z6I8p9mg==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.8.3.tgz", + "integrity": "sha512-PLMgdMGuVDtRS/SzjNEQYUT8f4z1xb2BAT54vM1X5efkVuYBf5WyGUMbpmARcfq3NaglIwz08UVQK4HHHbC6ag==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-syntax-jsx": "^7.7.4" + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-jsx": "^7.8.3" } }, "@babel/plugin-transform-regenerator": { - "version": "7.7.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.7.5.tgz", - "integrity": "sha512-/8I8tPvX2FkuEyWbjRCt4qTAgZK0DVy8QRguhA524UH48RfGJy94On2ri+dCuwOpcerPRl9O4ebQkRcVzIaGBw==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.8.3.tgz", + "integrity": "sha512-qt/kcur/FxrQrzFR432FGZznkVAjiyFtCOANjkAKwCbt465L6ZCiUQh2oMYGU3Wo8LRFJxNDFwWn106S5wVUNA==", "dev": true, "requires": { "regenerator-transform": "^0.14.0" } }, "@babel/plugin-transform-reserved-words": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.7.4.tgz", - "integrity": "sha512-OrPiUB5s5XvkCO1lS7D8ZtHcswIC57j62acAnJZKqGGnHP+TIc/ljQSrgdX/QyOTdEK5COAhuc820Hi1q2UgLQ==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.8.3.tgz", + "integrity": "sha512-mwMxcycN3omKFDjDQUl+8zyMsBfjRFr0Zn/64I41pmjv4NJuqcYlEtezwYtw9TFd9WR1vN5kiM+O0gMZzO6L0A==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-transform-shorthand-properties": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.7.4.tgz", - "integrity": "sha512-q+suddWRfIcnyG5YiDP58sT65AJDZSUhXQDZE3r04AuqD6d/XLaQPPXSBzP2zGerkgBivqtQm9XKGLuHqBID6Q==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.8.3.tgz", + "integrity": "sha512-I9DI6Odg0JJwxCHzbzW08ggMdCezoWcuQRz3ptdudgwaHxTjxw5HgdFJmZIkIMlRymL6YiZcped4TTCB0JcC8w==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-transform-spread": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.7.4.tgz", - "integrity": "sha512-8OSs0FLe5/80cndziPlg4R0K6HcWSM0zyNhHhLsmw/Nc5MaA49cAsnoJ/t/YZf8qkG7fD+UjTRaApVDB526d7Q==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.8.3.tgz", + "integrity": "sha512-CkuTU9mbmAoFOI1tklFWYYbzX5qCIZVXPVy0jpXgGwkplCndQAa58s2jr66fTeQnA64bDox0HL4U56CFYoyC7g==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-transform-sticky-regex": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.7.4.tgz", - "integrity": "sha512-Ls2NASyL6qtVe1H1hXts9yuEeONV2TJZmplLONkMPUG158CtmnrzW5Q5teibM5UVOFjG0D3IC5mzXR6pPpUY7A==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.8.3.tgz", + "integrity": "sha512-9Spq0vGCD5Bb4Z/ZXXSK5wbbLFMG085qd2vhL1JYu1WcQ5bXqZBAYRzU1d+p79GcHs2szYv5pVQCX13QgldaWw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-regex": "^7.0.0" + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-regex": "^7.8.3" } }, "@babel/plugin-transform-template-literals": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.7.4.tgz", - "integrity": "sha512-sA+KxLwF3QwGj5abMHkHgshp9+rRz+oY9uoRil4CyLtgEuE/88dpkeWgNk5qKVsJE9iSfly3nvHapdRiIS2wnQ==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.8.3.tgz", + "integrity": "sha512-820QBtykIQOLFT8NZOcTRJ1UNuztIELe4p9DCgvj4NK+PwluSJ49we7s9FB1HIGNIYT7wFUJ0ar2QpCDj0escQ==", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.7.4", - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-annotate-as-pure": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" }, "dependencies": { "@babel/helper-annotate-as-pure": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.7.4.tgz", - "integrity": "sha512-2BQmQgECKzYKFPpiycoF9tlb5HA4lrVyAmLLVK177EcQAqjVLciUb2/R+n1boQ9y5ENV3uz2ZqiNw7QMBBw1Og==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.8.3.tgz", + "integrity": "sha512-6o+mJrZBxOoEX77Ezv9zwW7WV8DdluouRKNY/IR5u/YTMuKHgugHOzYWlYvYLpLA9nPsQCAAASpCIbjI9Mv+Uw==", "dev": true, "requires": { - "@babel/types": "^7.7.4" + "@babel/types": "^7.8.3" } }, "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.6.tgz", + "integrity": "sha512-wqz7pgWMIrht3gquyEFPVXeXCti72Rm8ep9b5tQKz9Yg9LzJA3HxosF1SB3Kc81KD1A3XBkkVYtJvCKS2Z/QrA==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -1157,96 +1227,102 @@ } }, "@babel/plugin-transform-typeof-symbol": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.7.4.tgz", - "integrity": "sha512-KQPUQ/7mqe2m0B8VecdyaW5XcQYaePyl9R7IsKd+irzj6jvbhoGnRE+M0aNkyAzI07VfUQ9266L5xMARitV3wg==", + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.8.4.tgz", + "integrity": "sha512-2QKyfjGdvuNfHsb7qnBBlKclbD4CfshH2KvDabiijLMGXPHJXGxtDzwIF7bQP+T0ysw8fYTtxPafgfs/c1Lrqg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-transform-unicode-regex": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.7.4.tgz", - "integrity": "sha512-N77UUIV+WCvE+5yHw+oks3m18/umd7y392Zv7mYTpFqHtkpcc+QUz+gLJNTWVlWROIWeLqY0f3OjZxV5TcXnRw==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.8.3.tgz", + "integrity": "sha512-+ufgJjYdmWfSQ+6NS9VGUR2ns8cjJjYbrbi11mZBTaWm+Fui/ncTLFF28Ei1okavY+xkojGr1eJxNsWYeA5aZw==", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.7.4", - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-create-regexp-features-plugin": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/preset-env": { - "version": "7.7.7", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.7.7.tgz", - "integrity": "sha512-pCu0hrSSDVI7kCVUOdcMNQEbOPJ52E+LrQ14sN8uL2ALfSqePZQlKrOy+tM4uhEdYlCHi4imr8Zz2cZe9oSdIg==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.7.4", - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-proposal-async-generator-functions": "^7.7.4", - "@babel/plugin-proposal-dynamic-import": "^7.7.4", - "@babel/plugin-proposal-json-strings": "^7.7.4", - "@babel/plugin-proposal-object-rest-spread": "^7.7.7", - "@babel/plugin-proposal-optional-catch-binding": "^7.7.4", - "@babel/plugin-proposal-unicode-property-regex": "^7.7.7", - "@babel/plugin-syntax-async-generators": "^7.7.4", - "@babel/plugin-syntax-dynamic-import": "^7.7.4", - "@babel/plugin-syntax-json-strings": "^7.7.4", - "@babel/plugin-syntax-object-rest-spread": "^7.7.4", - "@babel/plugin-syntax-optional-catch-binding": "^7.7.4", - "@babel/plugin-syntax-top-level-await": "^7.7.4", - "@babel/plugin-transform-arrow-functions": "^7.7.4", - "@babel/plugin-transform-async-to-generator": "^7.7.4", - "@babel/plugin-transform-block-scoped-functions": "^7.7.4", - "@babel/plugin-transform-block-scoping": "^7.7.4", - "@babel/plugin-transform-classes": "^7.7.4", - "@babel/plugin-transform-computed-properties": "^7.7.4", - "@babel/plugin-transform-destructuring": "^7.7.4", - "@babel/plugin-transform-dotall-regex": "^7.7.7", - "@babel/plugin-transform-duplicate-keys": "^7.7.4", - "@babel/plugin-transform-exponentiation-operator": "^7.7.4", - "@babel/plugin-transform-for-of": "^7.7.4", - "@babel/plugin-transform-function-name": "^7.7.4", - "@babel/plugin-transform-literals": "^7.7.4", - "@babel/plugin-transform-member-expression-literals": "^7.7.4", - "@babel/plugin-transform-modules-amd": "^7.7.5", - "@babel/plugin-transform-modules-commonjs": "^7.7.5", - "@babel/plugin-transform-modules-systemjs": "^7.7.4", - "@babel/plugin-transform-modules-umd": "^7.7.4", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.7.4", - "@babel/plugin-transform-new-target": "^7.7.4", - "@babel/plugin-transform-object-super": "^7.7.4", - "@babel/plugin-transform-parameters": "^7.7.7", - "@babel/plugin-transform-property-literals": "^7.7.4", - "@babel/plugin-transform-regenerator": "^7.7.5", - "@babel/plugin-transform-reserved-words": "^7.7.4", - "@babel/plugin-transform-shorthand-properties": "^7.7.4", - "@babel/plugin-transform-spread": "^7.7.4", - "@babel/plugin-transform-sticky-regex": "^7.7.4", - "@babel/plugin-transform-template-literals": "^7.7.4", - "@babel/plugin-transform-typeof-symbol": "^7.7.4", - "@babel/plugin-transform-unicode-regex": "^7.7.4", - "@babel/types": "^7.7.4", - "browserslist": "^4.6.0", - "core-js-compat": "^3.6.0", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.8.6.tgz", + "integrity": "sha512-M5u8llV9DIVXBFB/ArIpqJuvXpO+ymxcJ6e8ZAmzeK3sQeBNOD1y+rHvHCGG4TlEmsNpIrdecsHGHT8ZCoOSJg==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.8.6", + "@babel/helper-compilation-targets": "^7.8.6", + "@babel/helper-module-imports": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-proposal-async-generator-functions": "^7.8.3", + "@babel/plugin-proposal-dynamic-import": "^7.8.3", + "@babel/plugin-proposal-json-strings": "^7.8.3", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-proposal-object-rest-spread": "^7.8.3", + "@babel/plugin-proposal-optional-catch-binding": "^7.8.3", + "@babel/plugin-proposal-optional-chaining": "^7.8.3", + "@babel/plugin-proposal-unicode-property-regex": "^7.8.3", + "@babel/plugin-syntax-async-generators": "^7.8.0", + "@babel/plugin-syntax-dynamic-import": "^7.8.0", + "@babel/plugin-syntax-json-strings": "^7.8.0", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.0", + "@babel/plugin-syntax-top-level-await": "^7.8.3", + "@babel/plugin-transform-arrow-functions": "^7.8.3", + "@babel/plugin-transform-async-to-generator": "^7.8.3", + "@babel/plugin-transform-block-scoped-functions": "^7.8.3", + "@babel/plugin-transform-block-scoping": "^7.8.3", + "@babel/plugin-transform-classes": "^7.8.6", + "@babel/plugin-transform-computed-properties": "^7.8.3", + "@babel/plugin-transform-destructuring": "^7.8.3", + "@babel/plugin-transform-dotall-regex": "^7.8.3", + "@babel/plugin-transform-duplicate-keys": "^7.8.3", + "@babel/plugin-transform-exponentiation-operator": "^7.8.3", + "@babel/plugin-transform-for-of": "^7.8.6", + "@babel/plugin-transform-function-name": "^7.8.3", + "@babel/plugin-transform-literals": "^7.8.3", + "@babel/plugin-transform-member-expression-literals": "^7.8.3", + "@babel/plugin-transform-modules-amd": "^7.8.3", + "@babel/plugin-transform-modules-commonjs": "^7.8.3", + "@babel/plugin-transform-modules-systemjs": "^7.8.3", + "@babel/plugin-transform-modules-umd": "^7.8.3", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.8.3", + "@babel/plugin-transform-new-target": "^7.8.3", + "@babel/plugin-transform-object-super": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.8.4", + "@babel/plugin-transform-property-literals": "^7.8.3", + "@babel/plugin-transform-regenerator": "^7.8.3", + "@babel/plugin-transform-reserved-words": "^7.8.3", + "@babel/plugin-transform-shorthand-properties": "^7.8.3", + "@babel/plugin-transform-spread": "^7.8.3", + "@babel/plugin-transform-sticky-regex": "^7.8.3", + "@babel/plugin-transform-template-literals": "^7.8.3", + "@babel/plugin-transform-typeof-symbol": "^7.8.4", + "@babel/plugin-transform-unicode-regex": "^7.8.3", + "@babel/types": "^7.8.6", + "browserslist": "^4.8.5", + "core-js-compat": "^3.6.2", "invariant": "^2.2.2", - "js-levenshtein": "^1.1.3", + "levenary": "^1.1.1", "semver": "^5.5.0" }, "dependencies": { "@babel/helper-module-imports": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.7.4.tgz", - "integrity": "sha512-dGcrX6K9l8258WFjyDLJwuVKxR4XZfU0/vTUgOQYWEnRD8mgr+p4d6fCUMq/ys0h4CCt/S5JhbvtyErjWouAUQ==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.8.3.tgz", + "integrity": "sha512-R0Bx3jippsbAEtzkpZ/6FIiuzOURPcMjHp+Z6xPe6DtApDJx+w7UYyOLanZqO8+wKR9G10s/FmHXvxaMd9s6Kg==", "dev": true, "requires": { - "@babel/types": "^7.7.4" + "@babel/types": "^7.8.3" } }, "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.6.tgz", + "integrity": "sha512-wqz7pgWMIrht3gquyEFPVXeXCti72Rm8ep9b5tQKz9Yg9LzJA3HxosF1SB3Kc81KD1A3XBkkVYtJvCKS2Z/QrA==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -1257,16 +1333,16 @@ } }, "@babel/preset-react": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.7.4.tgz", - "integrity": "sha512-j+vZtg0/8pQr1H8wKoaJyGL2IEk3rG/GIvua7Sec7meXVIvGycihlGMx5xcU00kqCJbwzHs18xTu3YfREOqQ+g==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.8.3.tgz", + "integrity": "sha512-9hx0CwZg92jGb7iHYQVgi0tOEHP/kM60CtWJQnmbATSPIQQ2xYzfoCI3EdqAhFBeeJwYMdWQuDUHMsuDbH9hyQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-transform-react-display-name": "^7.7.4", - "@babel/plugin-transform-react-jsx": "^7.7.4", - "@babel/plugin-transform-react-jsx-self": "^7.7.4", - "@babel/plugin-transform-react-jsx-source": "^7.7.4" + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-transform-react-display-name": "^7.8.3", + "@babel/plugin-transform-react-jsx": "^7.8.3", + "@babel/plugin-transform-react-jsx-self": "^7.8.3", + "@babel/plugin-transform-react-jsx-source": "^7.8.3" } }, "@babel/runtime": { @@ -1285,20 +1361,20 @@ } }, "@babel/template": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.7.4.tgz", - "integrity": "sha512-qUzihgVPguAzXCK7WXw8pqs6cEwi54s3E+HrejlkuWO6ivMKx9hZl3Y2fSXp9i5HgyWmj7RKP+ulaYnKM4yYxw==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz", + "integrity": "sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg==", "dev": true, "requires": { - "@babel/code-frame": "^7.0.0", - "@babel/parser": "^7.7.4", - "@babel/types": "^7.7.4" + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.6", + "@babel/types": "^7.8.6" }, "dependencies": { "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.6.tgz", + "integrity": "sha512-wqz7pgWMIrht3gquyEFPVXeXCti72Rm8ep9b5tQKz9Yg9LzJA3HxosF1SB3Kc81KD1A3XBkkVYtJvCKS2Z/QrA==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -1309,26 +1385,26 @@ } }, "@babel/traverse": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.7.4.tgz", - "integrity": "sha512-P1L58hQyupn8+ezVA2z5KBm4/Zr4lCC8dwKCMYzsa5jFMDMQAzaBNy9W5VjB+KAmBjb40U7a/H6ao+Xo+9saIw==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.6.tgz", + "integrity": "sha512-2B8l0db/DPi8iinITKuo7cbPznLCEk0kCxDoB9/N6gGNg/gxOXiR/IcymAFPiBwk5w6TtQ27w4wpElgp9btR9A==", "dev": true, "requires": { - "@babel/code-frame": "^7.5.5", - "@babel/generator": "^7.7.4", - "@babel/helper-function-name": "^7.7.4", - "@babel/helper-split-export-declaration": "^7.7.4", - "@babel/parser": "^7.7.4", - "@babel/types": "^7.7.4", + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.8.6", + "@babel/helper-function-name": "^7.8.3", + "@babel/helper-split-export-declaration": "^7.8.3", + "@babel/parser": "^7.8.6", + "@babel/types": "^7.8.6", "debug": "^4.1.0", "globals": "^11.1.0", "lodash": "^4.17.13" }, "dependencies": { "@babel/types": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", - "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.6.tgz", + "integrity": "sha512-wqz7pgWMIrht3gquyEFPVXeXCti72Rm8ep9b5tQKz9Yg9LzJA3HxosF1SB3Kc81KD1A3XBkkVYtJvCKS2Z/QrA==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -2246,14 +2322,14 @@ } }, "browserslist": { - "version": "4.8.2", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.8.2.tgz", - "integrity": "sha512-+M4oeaTplPm/f1pXDw84YohEv7B1i/2Aisei8s4s6k3QsoSHa7i5sz8u/cGQkkatCPxMASKxPualR4wwYgVboA==", + "version": "4.9.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.9.0.tgz", + "integrity": "sha512-seffIXhwgB84+OCeT/aMjpZnsAsYDiMSC+CEs3UkF8iU64BZGYcu+TZYs/IBpo4nRi0vJywUJWYdbTsOhFTweg==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30001015", - "electron-to-chromium": "^1.3.322", - "node-releases": "^1.1.42" + "caniuse-lite": "^1.0.30001030", + "electron-to-chromium": "^1.3.361", + "node-releases": "^1.1.50" } }, "buffer": { @@ -2344,9 +2420,9 @@ "integrity": "sha1-FkpUg+Yw+kMh5a8HAg5TGDGyYJs=" }, "caniuse-lite": { - "version": "1.0.30001016", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001016.tgz", - "integrity": "sha512-yYQ2QfotceRiH4U+h1Us86WJXtVHDmy3nEKIdYPsZCYnOV5/tMgGbmoIlrMzmh2VXlproqYtVaKeGDBkMZifFA==", + "version": "1.0.30001030", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001030.tgz", + "integrity": "sha512-QGK0W4Ft/Ac+zTjEiRJfwDNATvS3fodDczBXrH42784kcfqcDKpEPfN08N0HQjrAp8He/Jw8QiSS9QRn7XAbUw==", "dev": true }, "chalk": { @@ -2557,12 +2633,12 @@ "dev": true }, "core-js-compat": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.6.0.tgz", - "integrity": "sha512-Z3eCNjGgoYluH89Jt4wVkfYsc/VdLrA2/woX5lm0isO/pCT+P+Y+o65bOuEnjDJLthdwTBxbCVzptTXtc18fJg==", + "version": "3.6.4", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.6.4.tgz", + "integrity": "sha512-zAa3IZPvsJ0slViBQ2z+vgyyTuhd3MFn1rBQjZSKVEgB0UMYhUkCj9jJUVPgGTGqWvsBVmfnruXgTcNyTlEiSA==", "dev": true, "requires": { - "browserslist": "^4.8.2", + "browserslist": "^4.8.3", "semver": "7.0.0" }, "dependencies": { @@ -2890,9 +2966,9 @@ } }, "electron-to-chromium": { - "version": "1.3.322", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.322.tgz", - "integrity": "sha512-Tc8JQEfGQ1MzfSzI/bTlSr7btJv/FFO7Yh6tanqVmIWOuNCu6/D1MilIEgLtmWqIrsv+o4IjpLAhgMBr/ncNAA==", + "version": "1.3.362", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.362.tgz", + "integrity": "sha512-xdU5VCoZyMPMOWtCaMgbr48OwWZHrMLbGnAOlEqibXiIGsb4kiCGWEHK5NOghcVLdBVIbr/BW+yuKxVuGTtzEg==", "dev": true }, "elliptic": { @@ -4000,6 +4076,12 @@ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", "dev": true }, + "gensync": { + "version": "1.0.0-beta.1", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.1.tgz", + "integrity": "sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg==", + "dev": true + }, "get-caller-file": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", @@ -4579,12 +4661,6 @@ "whatwg-fetch": ">=0.10.0" } }, - "js-levenshtein": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/js-levenshtein/-/js-levenshtein-1.1.6.tgz", - "integrity": "sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g==", - "dev": true - }, "js-tokens": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", @@ -4741,6 +4817,21 @@ "invert-kv": "^2.0.0" } }, + "leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true + }, + "levenary": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/levenary/-/levenary-1.1.1.tgz", + "integrity": "sha512-mkAdOIt79FD6irqjYSs4rdbnlT5vRonMEvBVPVb3XmevfS8kgRXwfes0dhPdEtzTWD/1eNE/Bm/G1iRt6DcnQQ==", + "dev": true, + "requires": { + "leven": "^3.1.0" + } + }, "loader-runner": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", @@ -5163,9 +5254,9 @@ } }, "node-releases": { - "version": "1.1.43", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.43.tgz", - "integrity": "sha512-Rmfnj52WNhvr83MvuAWHEqXVoZXCcDQssSOffU4n4XOL9sPrP61mSZ88g25NqmABDvH7PiAlFCzoSCSdzA293w==", + "version": "1.1.50", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.50.tgz", + "integrity": "sha512-lgAmPv9eYZ0bGwUYAKlr8MG6K4CvWliWqnkcT2P8mMAgVrH3lqfBPorFlxiG1pHQnqmavJZ9vbMXUTNyMLbrgQ==", "dev": true, "requires": { "semver": "^6.3.0" @@ -6099,9 +6190,9 @@ "dev": true }, "regjsparser": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.1.tgz", - "integrity": "sha512-7LutE94sz/NKSYegK+/4E77+8DipxF+Qn2Tmu362AcmsF2NYq/wx3+ObvU90TKEhjf7hQoFXo23ajjrXP7eUgg==", + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.3.tgz", + "integrity": "sha512-8uZvYbnfAtEm9Ab8NTb3hdLwL4g/LQzEYP7Xs27T96abJCCE2d6r3cPZPQEsLKy0vRSGVNG+/zVGtLr86HQduA==", "dev": true, "requires": { "jsesc": "~0.5.0" diff --git a/src/React.Sample.Webpack.CoreMvc/package.json b/src/React.Sample.Webpack.CoreMvc/package.json index 75633fd50..e9855432c 100644 --- a/src/React.Sample.Webpack.CoreMvc/package.json +++ b/src/React.Sample.Webpack.CoreMvc/package.json @@ -20,12 +20,12 @@ "styled-components": "^4.0.0" }, "devDependencies": { - "@babel/core": "7.7.7", - "@babel/plugin-proposal-class-properties": "7.7.4", - "@babel/plugin-proposal-object-rest-spread": "7.7.7", - "@babel/plugin-syntax-dynamic-import": "7.7.4", - "@babel/preset-env": "7.7.7", - "@babel/preset-react": "7.7.4", + "@babel/core": "7.8.6", + "@babel/plugin-proposal-class-properties": "7.8.3", + "@babel/plugin-proposal-object-rest-spread": "7.8.3", + "@babel/plugin-syntax-dynamic-import": "7.8.3", + "@babel/preset-env": "7.8.6", + "@babel/preset-react": "7.8.3", "babel-loader": "8.0.6", "babel-runtime": "6.26.0", "webpack": "4.41.6", From 72a2dee6dd956c9cb6423769c6708cc0f192b876 Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Sun, 1 Mar 2020 15:37:09 -0800 Subject: [PATCH 402/530] Fix template validation during build (#1052) --- build.proj | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/build.proj b/build.proj index bb76cb4c2..461dd89c8 100644 --- a/build.proj +++ b/build.proj @@ -118,14 +118,15 @@ of patent rights can be found in the PATENTS file in the same directory. /> - + + - + - + - + @@ -137,6 +138,11 @@ of patent rights can be found in the PATENTS file in the same directory. /> + + + + + From f205e0c57f619ad14482f9a0c6a11eaf2a1fe3ae Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Sun, 1 Mar 2020 16:09:14 -0800 Subject: [PATCH 403/530] Move Webpack sample into installable template (#1050) * Move Webpack sample into installable template * Update webpack sample: Run webpack automatically during build * Remove webpack sample from solution * Add template manifest to webpack sample * Update markdown links * Add template to webpack docs * Add webpack template to build * Clarification edit to webpack docs * Add reactnet-webpack to template bundle --- build.proj | 12 +++--- .../jekyll/_posts/2019-03-14-4.1.1-release.md | 2 +- site/jekyll/bundling/webpack.md | 22 ++++++++--- site/jekyll/features/css-in-js.md | 8 ++-- site/jekyll/features/es6.md | 2 +- site/jekyll/features/react-helmet.md | 2 +- site/jekyll/features/react-router.md | 2 +- site/jekyll/features/server-side-rendering.md | 2 +- site/jekyll/getting-started/aspnetcore.md | 4 +- site/jekyll/getting-started/chakracore.md | 2 +- src/React.Sample.Webpack.CoreMvc/README.md | 1 + src/React.Template/React.Template.csproj | 3 +- .../reactnet-webpack}/.babelrc | 0 .../.template.config/template.json | 13 +++++++ .../Content/components/comments/Sample.jsx | 0 .../Content/components/emotion.jsx | 0 .../Content/components/expose-components.js | 0 .../Content/components/home.jsx | 0 .../Content/components/lazy-load.jsx | 0 .../Content/components/react-jss.jsx | 0 .../Content/components/styled-components.jsx | 0 .../Controllers/HomeController.cs | 0 .../reactnet-webpack}/Program.cs | 0 .../Properties/launchSettings.json | 0 .../reactnet-webpack/SampleApp.csproj} | 12 +++--- .../reactnet-webpack}/Startup.cs | 0 .../reactnet-webpack}/Views/Home/Index.cshtml | 0 .../Views/Shared/_Layout.cshtml | 0 .../appsettings.Development.json | 0 .../reactnet-webpack}/appsettings.json | 0 .../reactnet-webpack}/package-lock.json | 39 +++++++++++++++++-- .../reactnet-webpack}/package.json | 3 +- .../reactnet-webpack}/webpack.config.js | 0 .../reactnet-webpack}/wwwroot/Sample.css | 0 src/React.sln | 7 ---- 35 files changed, 95 insertions(+), 41 deletions(-) create mode 100644 src/React.Sample.Webpack.CoreMvc/README.md rename src/{React.Sample.Webpack.CoreMvc => React.Template/reactnet-webpack}/.babelrc (100%) create mode 100644 src/React.Template/reactnet-webpack/.template.config/template.json rename src/{React.Sample.Webpack.CoreMvc => React.Template/reactnet-webpack}/Content/components/comments/Sample.jsx (100%) rename src/{React.Sample.Webpack.CoreMvc => React.Template/reactnet-webpack}/Content/components/emotion.jsx (100%) rename src/{React.Sample.Webpack.CoreMvc => React.Template/reactnet-webpack}/Content/components/expose-components.js (100%) rename src/{React.Sample.Webpack.CoreMvc => React.Template/reactnet-webpack}/Content/components/home.jsx (100%) rename src/{React.Sample.Webpack.CoreMvc => React.Template/reactnet-webpack}/Content/components/lazy-load.jsx (100%) rename src/{React.Sample.Webpack.CoreMvc => React.Template/reactnet-webpack}/Content/components/react-jss.jsx (100%) rename src/{React.Sample.Webpack.CoreMvc => React.Template/reactnet-webpack}/Content/components/styled-components.jsx (100%) rename src/{React.Sample.Webpack.CoreMvc => React.Template/reactnet-webpack}/Controllers/HomeController.cs (100%) rename src/{React.Sample.Webpack.CoreMvc => React.Template/reactnet-webpack}/Program.cs (100%) rename src/{React.Sample.Webpack.CoreMvc => React.Template/reactnet-webpack}/Properties/launchSettings.json (100%) rename src/{React.Sample.Webpack.CoreMvc/React.Sample.Webpack.CoreMvc.csproj => React.Template/reactnet-webpack/SampleApp.csproj} (73%) rename src/{React.Sample.Webpack.CoreMvc => React.Template/reactnet-webpack}/Startup.cs (100%) rename src/{React.Sample.Webpack.CoreMvc => React.Template/reactnet-webpack}/Views/Home/Index.cshtml (100%) rename src/{React.Sample.Webpack.CoreMvc => React.Template/reactnet-webpack}/Views/Shared/_Layout.cshtml (100%) rename src/{React.Sample.Webpack.CoreMvc => React.Template/reactnet-webpack}/appsettings.Development.json (100%) rename src/{React.Sample.Webpack.CoreMvc => React.Template/reactnet-webpack}/appsettings.json (100%) rename src/{React.Sample.Webpack.CoreMvc => React.Template/reactnet-webpack}/package-lock.json (99%) rename src/{React.Sample.Webpack.CoreMvc => React.Template/reactnet-webpack}/package.json (92%) rename src/{React.Sample.Webpack.CoreMvc => React.Template/reactnet-webpack}/webpack.config.js (100%) rename src/{React.Sample.Webpack.CoreMvc => React.Template/reactnet-webpack}/wwwroot/Sample.css (100%) diff --git a/build.proj b/build.proj index 461dd89c8..0ca20aee4 100644 --- a/build.proj +++ b/build.proj @@ -61,10 +61,6 @@ of patent rights can be found in the PATENTS file in the same directory. WorkingDirectory="src/React.Sample.Mvc4" Command="npm install" /> - @@ -104,7 +100,6 @@ of patent rights can be found in the PATENTS file in the same directory. - @@ -123,6 +118,13 @@ of patent rights can be found in the PATENTS file in the same directory. + + + + + + + diff --git a/site/jekyll/_posts/2019-03-14-4.1.1-release.md b/site/jekyll/_posts/2019-03-14-4.1.1-release.md index e46c4de05..34167d1b4 100644 --- a/site/jekyll/_posts/2019-03-14-4.1.1-release.md +++ b/site/jekyll/_posts/2019-03-14-4.1.1-release.md @@ -8,7 +8,7 @@ We're pleased to announce that ReactJS.NET 4.1.1 is now available for download. - Updated bundled version of React to 16.8.4, which brings support for hooks - Updated babel to 6.26.3. We're working on enabling opt-in support for Babel 7 as well, but if you need this today, please use the webpack integration. -- Updated the [ASP.NET](https://github.com/reactjs/React.NET/tree/master/src/React.Web.Mvc4) and [.NET Core](https://github.com/reactjs/React.NET/tree/master/src/React.Sample.Webpack.CoreMvc) samples to demonstrate integrating third party libraries, such as Reactstrap. +- Updated the [ASP.NET](https://github.com/reactjs/React.NET/tree/master/src/React.Web.Mvc4) and [.NET Core](https://github.com/reactjs/React.NET/tree/master/src/React.Template/reactnet-webpack) samples to demonstrate integrating third party libraries, such as Reactstrap. We'd like to hear from you! If there are things you'd like to see added, please send feedback via [Github Issues](https://github.com/reactjs/React.NET/issues). We're a limited team and may not be able to implement what you'd like to see, but still want to hear how this project is being used and where it could be improved. diff --git a/site/jekyll/bundling/webpack.md b/site/jekyll/bundling/webpack.md index 34e439589..83771deae 100644 --- a/site/jekyll/bundling/webpack.md +++ b/site/jekyll/bundling/webpack.md @@ -3,17 +3,27 @@ layout: docs title: Webpack --- -#### 👀 Just want to see the code? Check out the [sample project](https://github.com/reactjs/React.NET/tree/master/src/React.Sample.Webpack.CoreMvc). +#### 👀 Just want to see the code? Check out the [sample project](https://github.com/reactjs/React.NET/tree/master/src/React.Template/reactnet-webpack). + +## For new projects: + +``` +dotnet new -i React.Template +dotnet new reactnet-webpack +dotnet run +``` + +## For existing projects: [Webpack](https://webpack.js.org/) is a popular module bundling system built on top of Node.js. It can handle not only combination and minification of JavaScript and CSS files, but also other assets such as image files (spriting) through the use of plugins. Webpack is the recommended bundling solution and should be preferred over Cassette or ASP.NET Bundling. Your project will bundle its own copy of react and react-dom with webpack, and ReactJS.NET will be used only for server-side rendering. -For new projects, copy from the sample project to the root of your project: +Copy from the sample project to the root of your project: -- [package.json](https://github.com/reactjs/React.NET/blob/master/src/React.Sample.Webpack.CoreMvc/package.json), which includes everything you need to bundle with webpack -- [webpack.config.js](https://github.com/reactjs/React.NET/blob/master/src/React.Sample.Webpack.CoreMvc/webpack.config.js), which contains the configuration needed for webpack to create the bundles -- [.babelrc](https://github.com/reactjs/React.NET/blob/master/src/React.Sample.Webpack.CoreMvc/.babelrc), which contains the Babel settings needed to compile JSX files +- [package.json](https://github.com/reactjs/React.NET/blob/master/src/React.Template/reactnet-webpack/package.json), which includes everything you need to bundle with webpack +- [webpack.config.js](https://github.com/reactjs/React.NET/blob/master/src/React.Template/reactnet-webpack/webpack.config.js), which contains the configuration needed for webpack to create the bundles +- [.babelrc](https://github.com/reactjs/React.NET/blob/master/src/React.Template/reactnet-webpack/.babelrc), which contains the Babel settings needed to compile JSX files Run `npm install` to start the package restore process. @@ -85,7 +95,7 @@ Reference the built bundle directly in a script tag at the end of the page in `_ ``` -A full example is available in [the ReactJS.NET repository](https://github.com/reactjs/React.NET/tree/master/src/React.Sample.Webpack.CoreMvc). +A full example is available in [the ReactJS.NET repository](https://github.com/reactjs/React.NET/tree/master/src/React.Template/reactnet-webpack). ### 💡 Beta feature: Asset manifest handling diff --git a/site/jekyll/features/css-in-js.md b/site/jekyll/features/css-in-js.md index 54605080f..d6501c94d 100644 --- a/site/jekyll/features/css-in-js.md +++ b/site/jekyll/features/css-in-js.md @@ -3,7 +3,7 @@ layout: docs title: CSS-in-JS --- -Just want to see the code? Check out the [sample project](https://github.com/reactjs/React.NET/tree/master/src/React.Sample.Webpack.CoreMvc). +Just want to see the code? Check out the [sample project](https://github.com/reactjs/React.NET/tree/master/src/React.Template/reactnet-webpack). CSS-in-JS is a technique for declaring styles within components. ReactJS.NET supports server-rendered stylesheets for several libraries (pull requests welcome to add support for more!). Your project must be using a Javascript bundler such as webpack already. @@ -13,7 +13,7 @@ If you're using more than one CSS-in-JS library in your project, we've got you c ### [Styled Components](https://github.com/styled-components/styled-components) -#### ⚠️ This may break when styled-components publishes a major update, please look at the [webpack sample](https://github.com/reactjs/React.NET/blob/master/src/React.Sample.Webpack.CoreMvc/package.json) for the currently known compatible version. +#### ⚠️ This may break when styled-components publishes a major update, please look at the [webpack sample](https://github.com/reactjs/React.NET/blob/master/src/React.Template/reactnet-webpack/package.json) for the currently known compatible version. Expose styled-components in your server bundle: @@ -93,7 +93,7 @@ export function StyledComponentsDemo() { ### [React-JSS](https://github.com/cssinjs/react-jss) -#### ⚠️ This may break when react-jss publishes a major update, please look at the [webpack sample](https://github.com/reactjs/React.NET/blob/master/src/React.Sample.Webpack.CoreMvc/package.json) for the currently known compatible version. +#### ⚠️ This may break when react-jss publishes a major update, please look at the [webpack sample](https://github.com/reactjs/React.NET/blob/master/src/React.Template/reactnet-webpack/package.json) for the currently known compatible version. Expose react-jss in your server bundle: @@ -183,7 +183,7 @@ export class ReactJssDemo extends React.Component { ### Emotion -#### ⚠️ This may break when emotion publishes a major update, please look at the [webpack sample](https://github.com/reactjs/React.NET/blob/master/src/React.Sample.Webpack.CoreMvc/package.json) for the currently known compatible version. +#### ⚠️ This may break when emotion publishes a major update, please look at the [webpack sample](https://github.com/reactjs/React.NET/blob/master/src/React.Template/reactnet-webpack/package.json) for the currently known compatible version. Emotion's integration with ReactJS.NET only supports rendering inline styles (instead of rendering them in the document head). diff --git a/site/jekyll/features/es6.md b/site/jekyll/features/es6.md index e9ffa73e9..c18c4a660 100644 --- a/site/jekyll/features/es6.md +++ b/site/jekyll/features/es6.md @@ -3,7 +3,7 @@ layout: docs title: Babel compilation (ES6+) --- -Just want to see the code? Check out the [webpack](https://github.com/reactjs/React.NET/tree/master/src/React.Sample.Webpack.CoreMvc) and [on-the-fly JSX compliation](https://github.com/reactjs/React.NET/tree/master/src/React.Sample.Mvc4) sample projects. +Just want to see the code? Check out the [webpack](https://github.com/reactjs/React.NET/tree/master/src/React.Template/reactnet-webpack) and [on-the-fly JSX compliation](https://github.com/reactjs/React.NET/tree/master/src/React.Sample.Mvc4) sample projects. ReactJS.NET supports the use of ES6+ features, thanks to [Babel](http://babeljs.io/). These features include: diff --git a/site/jekyll/features/react-helmet.md b/site/jekyll/features/react-helmet.md index d7aab1a62..2250e478d 100644 --- a/site/jekyll/features/react-helmet.md +++ b/site/jekyll/features/react-helmet.md @@ -3,7 +3,7 @@ layout: docs title: React Helmet --- -Just want to see the code? Check out the [sample project](https://github.com/reactjs/React.NET/tree/master/src/React.Sample.Webpack.CoreMvc). +Just want to see the code? Check out the [sample project](https://github.com/reactjs/React.NET/tree/master/src/React.Template/reactnet-webpack). React Helmet is a library that allows setting elements inside the `` tag from anywhere in the render tree. diff --git a/site/jekyll/features/react-router.md b/site/jekyll/features/react-router.md index 64d172cf9..d6eeb05d7 100644 --- a/site/jekyll/features/react-router.md +++ b/site/jekyll/features/react-router.md @@ -3,7 +3,7 @@ layout: docs title: React Router --- -Just want to see the code? Check out the [sample project](https://github.com/reactjs/React.NET/tree/master/src/React.Sample.Webpack.CoreMvc). +Just want to see the code? Check out the [sample project](https://github.com/reactjs/React.NET/tree/master/src/React.Template/reactnet-webpack). [React Router](https://github.com/ReactTraining/react-router) is a Javascript routing library. By using the `React.Router` package, you can add server-side route resolution by deferring to React Router. diff --git a/site/jekyll/features/server-side-rendering.md b/site/jekyll/features/server-side-rendering.md index 7b94e4489..eea3fe797 100644 --- a/site/jekyll/features/server-side-rendering.md +++ b/site/jekyll/features/server-side-rendering.md @@ -3,7 +3,7 @@ layout: docs title: Server-Side Rendering --- -Just want to see the code? Check out the [sample project](https://github.com/reactjs/React.NET/tree/master/src/React.Sample.Webpack.CoreMvc). +Just want to see the code? Check out the [sample project](https://github.com/reactjs/React.NET/tree/master/src/React.Template/reactnet-webpack). Server-side rendering allows you to pre-render the initial state of your React components server-side. This speeds up initial page loads as users do not need diff --git a/site/jekyll/getting-started/aspnetcore.md b/site/jekyll/getting-started/aspnetcore.md index 782d7c409..699ae02a2 100644 --- a/site/jekyll/getting-started/aspnetcore.md +++ b/site/jekyll/getting-started/aspnetcore.md @@ -4,7 +4,7 @@ layout: docs title: Getting Started (ASP.NET Core) --- -#### 👀 Just want to see the code? Check out the [sample project](https://github.com/reactjs/React.NET/tree/master/src/React.Sample.Webpack.CoreMvc). +#### 👀 Just want to see the code? Check out the [sample project](https://github.com/reactjs/React.NET/tree/master/src/React.Template/reactnet-webpack). ## For new projects: @@ -100,4 +100,4 @@ You're done! You can now call `Html.React` from within Razor files: If you need support for non-Windows platforms, please see the [Linux/macOS guide](/getting-started/chakracore.html) -Check out the [sample project](https://github.com/reactjs/React.NET/tree/master/src/React.Sample.Webpack.CoreMvc) for a working demo. +Check out the [sample project](https://github.com/reactjs/React.NET/tree/master/src/React.Template/reactnet-webpack) for a working demo. diff --git a/site/jekyll/getting-started/chakracore.md b/site/jekyll/getting-started/chakracore.md index 2eb66d642..585d38c0e 100644 --- a/site/jekyll/getting-started/chakracore.md +++ b/site/jekyll/getting-started/chakracore.md @@ -5,7 +5,7 @@ title: macOS/Linux ReactJS.NET supports running on non-Windows platforms via both Mono and .NET Core. This guide focuses on Linux / macOS support via the ChakraCore engine and .NET Core, which uses precompiled binaries. To use the full .NET Framework with Mono, please see the [Mono guide](/guides/mono.html). -Add `React.AspNet` as a dependency to your .NET Core project. Check out the [sample project](https://github.com/reactjs/React.NET/tree/master/src/React.Sample.Webpack.CoreMvc) or the [documentation](https://reactjs.net/getting-started/aspnetcore.html) if you need more details on that. +Add `React.AspNet` as a dependency to your .NET Core project. Check out the [sample project](https://github.com/reactjs/React.NET/tree/master/src/React.Template/reactnet-webpack) or the [documentation](https://reactjs.net/getting-started/aspnetcore.html) if you need more details on that. Next, install the `JavascriptEngineSwitcher.ChakraCore` and `JavaScriptEngineSwitcher.Extensions.MsDependencyInjection` NuGet packages. Depending on the platform(s) you want to support, also install one or more of these NuGet packages: diff --git a/src/React.Sample.Webpack.CoreMvc/README.md b/src/React.Sample.Webpack.CoreMvc/README.md new file mode 100644 index 000000000..159929543 --- /dev/null +++ b/src/React.Sample.Webpack.CoreMvc/README.md @@ -0,0 +1 @@ +The sample has been moved to .NET Core templates [here](../React.Template) \ No newline at end of file diff --git a/src/React.Template/React.Template.csproj b/src/React.Template/React.Template.csproj index c2bcf1831..6ec90c40c 100644 --- a/src/React.Template/React.Template.csproj +++ b/src/React.Template/React.Template.csproj @@ -19,7 +19,8 @@ + - \ No newline at end of file + diff --git a/src/React.Sample.Webpack.CoreMvc/.babelrc b/src/React.Template/reactnet-webpack/.babelrc similarity index 100% rename from src/React.Sample.Webpack.CoreMvc/.babelrc rename to src/React.Template/reactnet-webpack/.babelrc diff --git a/src/React.Template/reactnet-webpack/.template.config/template.json b/src/React.Template/reactnet-webpack/.template.config/template.json new file mode 100644 index 000000000..2eb228838 --- /dev/null +++ b/src/React.Template/reactnet-webpack/.template.config/template.json @@ -0,0 +1,13 @@ +{ + "author": "ReactJS.NET contributors", + "classifications": [ + "Web" + ], + "name": "React.NET Webpack Starter Template", + "identity": "React.Template.NetCore.Webpack", + "shortName": "reactnet-webpack", + "tags": { + "language": "C#" + }, + "preferNameDirectory": "true" +} diff --git a/src/React.Sample.Webpack.CoreMvc/Content/components/comments/Sample.jsx b/src/React.Template/reactnet-webpack/Content/components/comments/Sample.jsx similarity index 100% rename from src/React.Sample.Webpack.CoreMvc/Content/components/comments/Sample.jsx rename to src/React.Template/reactnet-webpack/Content/components/comments/Sample.jsx diff --git a/src/React.Sample.Webpack.CoreMvc/Content/components/emotion.jsx b/src/React.Template/reactnet-webpack/Content/components/emotion.jsx similarity index 100% rename from src/React.Sample.Webpack.CoreMvc/Content/components/emotion.jsx rename to src/React.Template/reactnet-webpack/Content/components/emotion.jsx diff --git a/src/React.Sample.Webpack.CoreMvc/Content/components/expose-components.js b/src/React.Template/reactnet-webpack/Content/components/expose-components.js similarity index 100% rename from src/React.Sample.Webpack.CoreMvc/Content/components/expose-components.js rename to src/React.Template/reactnet-webpack/Content/components/expose-components.js diff --git a/src/React.Sample.Webpack.CoreMvc/Content/components/home.jsx b/src/React.Template/reactnet-webpack/Content/components/home.jsx similarity index 100% rename from src/React.Sample.Webpack.CoreMvc/Content/components/home.jsx rename to src/React.Template/reactnet-webpack/Content/components/home.jsx diff --git a/src/React.Sample.Webpack.CoreMvc/Content/components/lazy-load.jsx b/src/React.Template/reactnet-webpack/Content/components/lazy-load.jsx similarity index 100% rename from src/React.Sample.Webpack.CoreMvc/Content/components/lazy-load.jsx rename to src/React.Template/reactnet-webpack/Content/components/lazy-load.jsx diff --git a/src/React.Sample.Webpack.CoreMvc/Content/components/react-jss.jsx b/src/React.Template/reactnet-webpack/Content/components/react-jss.jsx similarity index 100% rename from src/React.Sample.Webpack.CoreMvc/Content/components/react-jss.jsx rename to src/React.Template/reactnet-webpack/Content/components/react-jss.jsx diff --git a/src/React.Sample.Webpack.CoreMvc/Content/components/styled-components.jsx b/src/React.Template/reactnet-webpack/Content/components/styled-components.jsx similarity index 100% rename from src/React.Sample.Webpack.CoreMvc/Content/components/styled-components.jsx rename to src/React.Template/reactnet-webpack/Content/components/styled-components.jsx diff --git a/src/React.Sample.Webpack.CoreMvc/Controllers/HomeController.cs b/src/React.Template/reactnet-webpack/Controllers/HomeController.cs similarity index 100% rename from src/React.Sample.Webpack.CoreMvc/Controllers/HomeController.cs rename to src/React.Template/reactnet-webpack/Controllers/HomeController.cs diff --git a/src/React.Sample.Webpack.CoreMvc/Program.cs b/src/React.Template/reactnet-webpack/Program.cs similarity index 100% rename from src/React.Sample.Webpack.CoreMvc/Program.cs rename to src/React.Template/reactnet-webpack/Program.cs diff --git a/src/React.Sample.Webpack.CoreMvc/Properties/launchSettings.json b/src/React.Template/reactnet-webpack/Properties/launchSettings.json similarity index 100% rename from src/React.Sample.Webpack.CoreMvc/Properties/launchSettings.json rename to src/React.Template/reactnet-webpack/Properties/launchSettings.json diff --git a/src/React.Sample.Webpack.CoreMvc/React.Sample.Webpack.CoreMvc.csproj b/src/React.Template/reactnet-webpack/SampleApp.csproj similarity index 73% rename from src/React.Sample.Webpack.CoreMvc/React.Sample.Webpack.CoreMvc.csproj rename to src/React.Template/reactnet-webpack/SampleApp.csproj index 08b52be7a..cb56e1e85 100644 --- a/src/React.Sample.Webpack.CoreMvc/React.Sample.Webpack.CoreMvc.csproj +++ b/src/React.Template/reactnet-webpack/SampleApp.csproj @@ -14,11 +14,11 @@ + + - - - - - - + + + + diff --git a/src/React.Sample.Webpack.CoreMvc/Startup.cs b/src/React.Template/reactnet-webpack/Startup.cs similarity index 100% rename from src/React.Sample.Webpack.CoreMvc/Startup.cs rename to src/React.Template/reactnet-webpack/Startup.cs diff --git a/src/React.Sample.Webpack.CoreMvc/Views/Home/Index.cshtml b/src/React.Template/reactnet-webpack/Views/Home/Index.cshtml similarity index 100% rename from src/React.Sample.Webpack.CoreMvc/Views/Home/Index.cshtml rename to src/React.Template/reactnet-webpack/Views/Home/Index.cshtml diff --git a/src/React.Sample.Webpack.CoreMvc/Views/Shared/_Layout.cshtml b/src/React.Template/reactnet-webpack/Views/Shared/_Layout.cshtml similarity index 100% rename from src/React.Sample.Webpack.CoreMvc/Views/Shared/_Layout.cshtml rename to src/React.Template/reactnet-webpack/Views/Shared/_Layout.cshtml diff --git a/src/React.Sample.Webpack.CoreMvc/appsettings.Development.json b/src/React.Template/reactnet-webpack/appsettings.Development.json similarity index 100% rename from src/React.Sample.Webpack.CoreMvc/appsettings.Development.json rename to src/React.Template/reactnet-webpack/appsettings.Development.json diff --git a/src/React.Sample.Webpack.CoreMvc/appsettings.json b/src/React.Template/reactnet-webpack/appsettings.json similarity index 100% rename from src/React.Sample.Webpack.CoreMvc/appsettings.json rename to src/React.Template/reactnet-webpack/appsettings.json diff --git a/src/React.Sample.Webpack.CoreMvc/package-lock.json b/src/React.Template/reactnet-webpack/package-lock.json similarity index 99% rename from src/React.Sample.Webpack.CoreMvc/package-lock.json rename to src/React.Template/reactnet-webpack/package-lock.json index a7d592bb0..3d7d2b9fa 100644 --- a/src/React.Sample.Webpack.CoreMvc/package-lock.json +++ b/src/React.Template/reactnet-webpack/package-lock.json @@ -2389,6 +2389,17 @@ "ssri": "^6.0.1", "unique-filename": "^1.1.1", "y18n": "^4.0.0" + }, + "dependencies": { + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + } } }, "cache-base": { @@ -2618,6 +2629,17 @@ "mkdirp": "^0.5.1", "rimraf": "^2.5.4", "run-queue": "^1.0.0" + }, + "dependencies": { + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + } } }, "copy-descriptor": { @@ -5150,6 +5172,17 @@ "mkdirp": "^0.5.1", "rimraf": "^2.5.4", "run-queue": "^1.0.3" + }, + "dependencies": { + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + } } }, "ms": { @@ -6300,9 +6333,9 @@ "dev": true }, "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "dev": true, "requires": { "glob": "^7.1.3" diff --git a/src/React.Sample.Webpack.CoreMvc/package.json b/src/React.Template/reactnet-webpack/package.json similarity index 92% rename from src/React.Sample.Webpack.CoreMvc/package.json rename to src/React.Template/reactnet-webpack/package.json index e9855432c..9cffc93bb 100644 --- a/src/React.Sample.Webpack.CoreMvc/package.json +++ b/src/React.Template/reactnet-webpack/package.json @@ -4,7 +4,7 @@ "main": "index.js", "license": "MIT", "scripts": { - "build": "webpack" + "build": "rimraf wwwroot/dist && webpack" }, "dependencies": { "emotion": "^9.2.12", @@ -28,6 +28,7 @@ "@babel/preset-react": "7.8.3", "babel-loader": "8.0.6", "babel-runtime": "6.26.0", + "rimraf": "^3.0.2", "webpack": "4.41.6", "webpack-cli": "3.3.11", "webpack-manifest-plugin": "2.2.0" diff --git a/src/React.Sample.Webpack.CoreMvc/webpack.config.js b/src/React.Template/reactnet-webpack/webpack.config.js similarity index 100% rename from src/React.Sample.Webpack.CoreMvc/webpack.config.js rename to src/React.Template/reactnet-webpack/webpack.config.js diff --git a/src/React.Sample.Webpack.CoreMvc/wwwroot/Sample.css b/src/React.Template/reactnet-webpack/wwwroot/Sample.css similarity index 100% rename from src/React.Sample.Webpack.CoreMvc/wwwroot/Sample.css rename to src/React.Template/reactnet-webpack/wwwroot/Sample.css diff --git a/src/React.sln b/src/React.sln index b81edab0c..594916e8e 100644 --- a/src/React.sln +++ b/src/React.sln @@ -62,8 +62,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "React.AspNet.Middleware", " EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "React.Router.Mvc4", "React.Router.Mvc4\React.Router.Mvc4.csproj", "{2170D912-86E9-4CE3-8DA4-E1DE8D958E63}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "React.Sample.Webpack.CoreMvc", "React.Sample.Webpack.CoreMvc\React.Sample.Webpack.CoreMvc.csproj", "{5BFA69C8-2E66-4112-AC30-CE31503F4175}" -EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "React.Tests.Benchmarks", "..\tests\React.Tests.Benchmarks\React.Tests.Benchmarks.csproj", "{083462CB-2FC0-4508-A7ED-4B77B44C3E23}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "React.Tests.Integration", "..\tests\React.Tests.Integration\React.Tests.Integration.csproj", "{5EBC5EA6-7234-40E0-A07B-75D01385FAD2}" @@ -142,10 +140,6 @@ Global {2170D912-86E9-4CE3-8DA4-E1DE8D958E63}.Debug|Any CPU.Build.0 = Debug|Any CPU {2170D912-86E9-4CE3-8DA4-E1DE8D958E63}.Release|Any CPU.ActiveCfg = Release|Any CPU {2170D912-86E9-4CE3-8DA4-E1DE8D958E63}.Release|Any CPU.Build.0 = Release|Any CPU - {5BFA69C8-2E66-4112-AC30-CE31503F4175}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {5BFA69C8-2E66-4112-AC30-CE31503F4175}.Debug|Any CPU.Build.0 = Debug|Any CPU - {5BFA69C8-2E66-4112-AC30-CE31503F4175}.Release|Any CPU.ActiveCfg = Release|Any CPU - {5BFA69C8-2E66-4112-AC30-CE31503F4175}.Release|Any CPU.Build.0 = Release|Any CPU {083462CB-2FC0-4508-A7ED-4B77B44C3E23}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {083462CB-2FC0-4508-A7ED-4B77B44C3E23}.Debug|Any CPU.Build.0 = Debug|Any CPU {083462CB-2FC0-4508-A7ED-4B77B44C3E23}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -183,7 +177,6 @@ Global {D076273B-C5EA-47C7-923D-523E4C5EE30D} = {681C45FB-103C-48BC-B992-20C5B6B78F92} {7E1C3999-1982-476D-9307-12B30737B41E} = {681C45FB-103C-48BC-B992-20C5B6B78F92} {2170D912-86E9-4CE3-8DA4-E1DE8D958E63} = {681C45FB-103C-48BC-B992-20C5B6B78F92} - {5BFA69C8-2E66-4112-AC30-CE31503F4175} = {A51CE5B6-294F-4D39-B32B-BF08DAF9B40B} {083462CB-2FC0-4508-A7ED-4B77B44C3E23} = {F567B25C-E869-4C93-9C96-077761250F87} {5EBC5EA6-7234-40E0-A07B-75D01385FAD2} = {F567B25C-E869-4C93-9C96-077761250F87} {29F7122F-ECBB-4EBE-A2BB-3A00CED73C19} = {F567B25C-E869-4C93-9C96-077761250F87} From b36c2022fda324d47170778d8269795d944c5a2c Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Sun, 1 Mar 2020 15:17:14 -0800 Subject: [PATCH 404/530] Reference starter template in readme --- README.md | 54 ++++++------------------------------------------------ 1 file changed, 6 insertions(+), 48 deletions(-) diff --git a/README.md b/README.md index 46f7b1b7b..d6c692ace 100644 --- a/README.md +++ b/README.md @@ -27,58 +27,16 @@ ReactJS.NET is a library that makes it easier to use [Babel](http://babeljs.io/) # Quick Start -Install the package - -```powershell -Install-Package React.Web.Mvc4 # For ASP.NET MVC 4 or 5 -Install-Package React.AspNet   # For ASP.NET Core MVC -``` - -Install a Javascript engine and configure as the default (more info [here](https://reactjs.net/getting-started/aspnet.html) on how this works) - -```powershell -Install-Package JavaScriptEngineSwitcher.V8 -Install-Package JavaScriptEngineSwitcher.V8.Native.win-x64 -``` - -```csharp -public static class ReactConfig -{ - public static void Configure() - { - ReactSiteConfiguration.Configuration - .AddScript("~/Content/HelloWorld.jsx"); - - JsEngineSwitcher.Current.DefaultEngineName = V8JsEngine.EngineName; - JsEngineSwitcher.Current.EngineFactories.AddV8(); - } -} ``` - -Create JSX files - -```javascript -// /Scripts/HelloWorld.jsx -const HelloWorld = props => { - return
    Hello {props.greeting}
    ; -}; -``` - -Reference the JSX files from your HTML - -```html - -@Html.React("HelloWorld", new { Greeting = "friends!" }); - - - -@Html.ReactInitJavaScript(); +dotnet new -i React.Template +dotnet new reactnet-vanilla +dotnet run ``` -Now you can use the `HelloWorld` component. +See also: -For information on more advanced topics (including precompilation and -server-side rendering), check out [the documentation](http://reactjs.net/docs) +- [Getting Started](https://reactjs.net/getting-started/aspnetcore.html) +- [Tutorial](https://reactjs.net/tutorials/aspnetcore.html) ## Building Manually and Contributing From c08053ef956f51cb5900236a2c5199e52437bed0 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 1 Mar 2020 16:16:39 -0800 Subject: [PATCH 405/530] Pin dependency rimraf to 3.0.2 (#1053) Co-authored-by: WhiteSource Renovate --- src/React.Template/reactnet-webpack/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/React.Template/reactnet-webpack/package.json b/src/React.Template/reactnet-webpack/package.json index 9cffc93bb..f9d2abc36 100644 --- a/src/React.Template/reactnet-webpack/package.json +++ b/src/React.Template/reactnet-webpack/package.json @@ -28,7 +28,7 @@ "@babel/preset-react": "7.8.3", "babel-loader": "8.0.6", "babel-runtime": "6.26.0", - "rimraf": "^3.0.2", + "rimraf": "3.0.2", "webpack": "4.41.6", "webpack-cli": "3.3.11", "webpack-manifest-plugin": "2.2.0" From fa68a84509d02edafefbc78f84ea3466b129af59 Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Sun, 1 Mar 2020 18:00:22 -0800 Subject: [PATCH 406/530] 5.2.1-beta1 --- build.proj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.proj b/build.proj index 0ca20aee4..cf342d526 100644 --- a/build.proj +++ b/build.proj @@ -11,7 +11,7 @@ of patent rights can be found in the PATENTS file in the same directory. 5 2 - 0 + 1-beta1 0 http://reactjs.net/packages/ $(MSBuildProjectDirectory)\tools\MSBuildTasks From ce4796f7ff5e9c318ddc919fc85f4e55e25c1138 Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Sun, 1 Mar 2020 18:17:45 -0800 Subject: [PATCH 407/530] Add .gitignore and .gitattributes to webpack template --- .../reactnet-webpack/.gitattributes | 4 + .../reactnet-webpack/.gitignore | 232 ++++++++++++++++++ 2 files changed, 236 insertions(+) create mode 100644 src/React.Template/reactnet-webpack/.gitattributes create mode 100644 src/React.Template/reactnet-webpack/.gitignore diff --git a/src/React.Template/reactnet-webpack/.gitattributes b/src/React.Template/reactnet-webpack/.gitattributes new file mode 100644 index 000000000..c7e67bc5d --- /dev/null +++ b/src/React.Template/reactnet-webpack/.gitattributes @@ -0,0 +1,4 @@ +* text eol=lf +*.png binary +*.exe binary +*.dll binary diff --git a/src/React.Template/reactnet-webpack/.gitignore b/src/React.Template/reactnet-webpack/.gitignore new file mode 100644 index 000000000..8f8b43bb1 --- /dev/null +++ b/src/React.Template/reactnet-webpack/.gitignore @@ -0,0 +1,232 @@ +## Ignore Visual Studio temporary files, build results, and +## files generated by popular Visual Studio add-ons. + +# User-specific files +*.suo +*.user +*.userosscache +*.sln.docstates + +# User-specific files (MonoDevelop/Xamarin Studio) +*.userprefs + +# Build results +[Dd]ebug/ +[Dd]ebugPublic/ +[Rr]elease/ +[Rr]eleases/ +x64/ +x86/ +build/ +bld/ +bin/ +Bin/ +obj/ +Obj/ + +# Visual Studio 2015 cache/options directory +.vs/ +/wwwroot/dist/ + +# MSTest test Results +[Tt]est[Rr]esult*/ +[Bb]uild[Ll]og.* + +# NUNIT +*.VisualState.xml +TestResult.xml + +# Build Results of an ATL Project +[Dd]ebugPS/ +[Rr]eleasePS/ +dlldata.c + +*_i.c +*_p.c +*_i.h +*.ilk +*.meta +*.obj +*.pch +*.pdb +*.pgc +*.pgd +*.rsp +*.sbr +*.tlb +*.tli +*.tlh +*.tmp +*.tmp_proj +*.log +*.vspscc +*.vssscc +.builds +*.pidb +*.svclog +*.scc + +# Chutzpah Test files +_Chutzpah* + +# Visual C++ cache files +ipch/ +*.aps +*.ncb +*.opendb +*.opensdf +*.sdf +*.cachefile + +# Visual Studio profiler +*.psess +*.vsp +*.vspx +*.sap + +# TFS 2012 Local Workspace +$tf/ + +# Guidance Automation Toolkit +*.gpState + +# ReSharper is a .NET coding add-in +_ReSharper*/ +*.[Rr]e[Ss]harper +*.DotSettings.user + +# JustCode is a .NET coding add-in +.JustCode + +# TeamCity is a build add-in +_TeamCity* + +# DotCover is a Code Coverage Tool +*.dotCover + +# NCrunch +_NCrunch_* +.*crunch*.local.xml +nCrunchTemp_* + +# MightyMoose +*.mm.* +AutoTest.Net/ + +# Web workbench (sass) +.sass-cache/ + +# Installshield output folder +[Ee]xpress/ + +# DocProject is a documentation generator add-in +DocProject/buildhelp/ +DocProject/Help/*.HxT +DocProject/Help/*.HxC +DocProject/Help/*.hhc +DocProject/Help/*.hhk +DocProject/Help/*.hhp +DocProject/Help/Html2 +DocProject/Help/html + +# Click-Once directory +publish/ + +# Publish Web Output +*.[Pp]ublish.xml +*.azurePubxml +# TODO: Comment the next line if you want to checkin your web deploy settings +# but database connection strings (with potential passwords) will be unencrypted +*.pubxml +*.publishproj + +# NuGet Packages +*.nupkg +# The packages folder can be ignored because of Package Restore +**/packages/* +# except build/, which is used as an MSBuild target. +!**/packages/build/ +# Uncomment if necessary however generally it will be regenerated when needed +#!**/packages/repositories.config + +# Microsoft Azure Build Output +csx/ +*.build.csdef + +# Microsoft Azure Emulator +ecf/ +rcf/ + +# Microsoft Azure ApplicationInsights config file +ApplicationInsights.config + +# Windows Store app package directory +AppPackages/ +BundleArtifacts/ + +# Visual Studio cache files +# files ending in .cache can be ignored +*.[Cc]ache +# but keep track of directories ending in .cache +!*.[Cc]ache/ + +# Others +ClientBin/ +~$* +*~ +*.dbmdl +*.dbproj.schemaview +*.pfx +*.publishsettings +orleans.codegen.cs + +/node_modules + +# RIA/Silverlight projects +Generated_Code/ + +# Backup & report files from converting an old project file +# to a newer Visual Studio version. Backup files are not needed, +# because we have git ;-) +_UpgradeReport_Files/ +Backup*/ +UpgradeLog*.XML +UpgradeLog*.htm + +# SQL Server files +*.mdf +*.ldf + +# Business Intelligence projects +*.rdl.data +*.bim.layout +*.bim_*.settings + +# Microsoft Fakes +FakesAssemblies/ + +# GhostDoc plugin setting file +*.GhostDoc.xml + +# Node.js Tools for Visual Studio +.ntvs_analysis.dat + +# Visual Studio 6 build log +*.plg + +# Visual Studio 6 workspace options file +*.opt + +# Visual Studio LightSwitch build output +**/*.HTMLClient/GeneratedArtifacts +**/*.DesktopClient/GeneratedArtifacts +**/*.DesktopClient/ModelManifest.xml +**/*.Server/GeneratedArtifacts +**/*.Server/ModelManifest.xml +_Pvt_Extensions + +# Paket dependency manager +.paket/paket.exe + +# FAKE - F# Make +.fake/ From c8e34f4a70b02eb43fd89a88cb3a101977a91688 Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Sun, 1 Mar 2020 18:38:19 -0800 Subject: [PATCH 408/530] Add hint about webpack template --- README.md | 2 ++ site/jekyll/getting-started/aspnetcore.md | 2 ++ site/jekyll/tutorials/aspnetcore.md | 2 ++ 3 files changed, 6 insertions(+) diff --git a/README.md b/README.md index d6c692ace..f4935a606 100644 --- a/README.md +++ b/README.md @@ -33,6 +33,8 @@ dotnet new reactnet-vanilla dotnet run ``` +#### Planning on using `require` or `import` module syntax in your application? Use the `reactnet-webpack` template instead for webpack support. + See also: - [Getting Started](https://reactjs.net/getting-started/aspnetcore.html) diff --git a/site/jekyll/getting-started/aspnetcore.md b/site/jekyll/getting-started/aspnetcore.md index 699ae02a2..3bf34f1c9 100644 --- a/site/jekyll/getting-started/aspnetcore.md +++ b/site/jekyll/getting-started/aspnetcore.md @@ -14,6 +14,8 @@ dotnet new reactnet-vanilla dotnet run ``` +#### Heads up! This configuration only supports globally-scoped modules. If you're planning on using `require` or `import` module syntax in your application, use the `reactnet-webpack` template instead for webpack support. + ## For existing projects: This guide covers enabling server-side rendering and Babel compilation. Getting started with ReactJS.NET on ASP.NET Core requires a few more steps compared to previous versions of ASP.NET and MVC. If you want a step-by-step guide on configuring a brand new site, see [the ReactJS.NET tutorial for ASP.NET Core](/tutorials/aspnetcore.html). diff --git a/site/jekyll/tutorials/aspnetcore.md b/site/jekyll/tutorials/aspnetcore.md index 0fb3163e9..5c1478b90 100644 --- a/site/jekyll/tutorials/aspnetcore.md +++ b/site/jekyll/tutorials/aspnetcore.md @@ -16,6 +16,8 @@ dotnet new reactnet-vanilla dotnet run ``` +#### Heads up! This configuration only supports globally-scoped modules. If you're planning on using `require` or `import` module syntax in your application, use the `reactnet-webpack` template instead for webpack support. + ## Step by step version This tutorial covers the end-to-end process of creating a brand new ASP.NET MVC website and adding a React component in it. We will start from scratch and end with a fully functioning component. It assumes you have basic knowledge of ASP.NET MVC and using Visual Studio. This tutorial is based off the [original React tutorial](https://reactjs.org/tutorial/tutorial.html) but has been modified specifically for ReactJS.NET. From ee4bed0d9af9d768470b46105c7ce4d6f57c81c1 Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Sun, 1 Mar 2020 18:38:43 -0800 Subject: [PATCH 409/530] 5.2.1 --- build.proj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.proj b/build.proj index cf342d526..c750e00b3 100644 --- a/build.proj +++ b/build.proj @@ -11,7 +11,7 @@ of patent rights can be found in the PATENTS file in the same directory. 5 2 - 1-beta1 + 1 0 http://reactjs.net/packages/ $(MSBuildProjectDirectory)\tools\MSBuildTasks From c60268a92981f12a4723772cbde1baf9970d59d9 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Thu, 5 Mar 2020 02:08:53 +0000 Subject: [PATCH 410/530] Update babel monorepo to v7.8.7 --- src/React.Core/package-lock.json | 38 +-- src/React.Core/package.json | 4 +- .../reactnet-webpack/package-lock.json | 218 ++++++++++-------- .../reactnet-webpack/package.json | 4 +- 4 files changed, 150 insertions(+), 114 deletions(-) diff --git a/src/React.Core/package-lock.json b/src/React.Core/package-lock.json index 9726ae1ac..2dc781287 100644 --- a/src/React.Core/package-lock.json +++ b/src/React.Core/package-lock.json @@ -14,18 +14,18 @@ } }, "@babel/core": { - "version": "7.8.6", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.8.6.tgz", - "integrity": "sha512-Sheg7yEJD51YHAvLEV/7Uvw95AeWqYPL3Vk3zGujJKIhJ+8oLw2ALaf3hbucILhKsgSoADOvtKRJuNVdcJkOrg==", + "version": "7.8.7", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.8.7.tgz", + "integrity": "sha512-rBlqF3Yko9cynC5CCFy6+K/w2N+Sq/ff2BPy+Krp7rHlABIr5epbA7OxVeKoMHB39LZOp1UY5SuLjy6uWi35yA==", "dev": true, "requires": { "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.8.6", + "@babel/generator": "^7.8.7", "@babel/helpers": "^7.8.4", - "@babel/parser": "^7.8.6", + "@babel/parser": "^7.8.7", "@babel/template": "^7.8.6", "@babel/traverse": "^7.8.6", - "@babel/types": "^7.8.6", + "@babel/types": "^7.8.7", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.1", @@ -54,12 +54,12 @@ } }, "@babel/generator": { - "version": "7.8.6", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.6.tgz", - "integrity": "sha512-4bpOR5ZBz+wWcMeVtcf7FbjcFzCp+817z2/gHNncIRcM9MmKzUhtWCYAq27RAfUrAFwb+OCG1s9WEaVxfi6cjg==", + "version": "7.8.7", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.7.tgz", + "integrity": "sha512-DQwjiKJqH4C3qGiyQCAExJHoZssn49JTMJgZ8SANGgVFdkupcUhLOdkAeoC6kmHZCPfoDG5M0b6cFlSN5wW7Ew==", "dev": true, "requires": { - "@babel/types": "^7.8.6", + "@babel/types": "^7.8.7", "jsesc": "^2.5.1", "lodash": "^4.17.13", "source-map": "^0.5.0" @@ -125,15 +125,15 @@ } }, "@babel/parser": { - "version": "7.8.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.6.tgz", - "integrity": "sha512-trGNYSfwq5s0SgM1BMEB8hX3NDmO7EP2wsDGDexiaKMB92BaRpS+qZfpkMqUBhcsOTBwNy9B/jieo4ad/t/z2g==", + "version": "7.8.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.7.tgz", + "integrity": "sha512-9JWls8WilDXFGxs0phaXAZgpxTZhSk/yOYH2hTHC0X1yC7Z78IJfvR1vJ+rmJKq3I35td2XzXzN6ZLYlna+r/A==", "dev": true }, "@babel/standalone": { - "version": "7.8.6", - "resolved": "https://registry.npmjs.org/@babel/standalone/-/standalone-7.8.6.tgz", - "integrity": "sha512-GkzSsxrnn3NbL0XwY7oVa1frbl71NmYf73C3xdpt59W056Sm9ohZghuoC2W1NLKAOVztghoyFmtQCKc/7qjSDg==", + "version": "7.8.7", + "resolved": "https://registry.npmjs.org/@babel/standalone/-/standalone-7.8.7.tgz", + "integrity": "sha512-tI9NO4Wz5CfVdnjGs4O9hIN0bOuUeLFeMBGOzmEP19MiAFmCi6GFRf+EELE8ZPJQ+OqherJMLnszN4ALPF2ahA==", "dev": true }, "@babel/template": { @@ -182,9 +182,9 @@ } }, "@babel/types": { - "version": "7.8.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.6.tgz", - "integrity": "sha512-wqz7pgWMIrht3gquyEFPVXeXCti72Rm8ep9b5tQKz9Yg9LzJA3HxosF1SB3Kc81KD1A3XBkkVYtJvCKS2Z/QrA==", + "version": "7.8.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.7.tgz", + "integrity": "sha512-k2TreEHxFA4CjGkL+GYjRyx35W0Mr7DP5+9q6WMkyKXB+904bYmG40syjMFV0oLlhhFCwWl0vA0DyzTDkwAiJw==", "dev": true, "requires": { "esutils": "^2.0.2", diff --git a/src/React.Core/package.json b/src/React.Core/package.json index d555cc02b..7440696d7 100644 --- a/src/React.Core/package.json +++ b/src/React.Core/package.json @@ -6,8 +6,8 @@ "build": "webpack" }, "devDependencies": { - "@babel/core": "7.8.6", - "@babel/standalone": "7.8.6", + "@babel/core": "7.8.7", + "@babel/standalone": "7.8.7", "prop-types": "15.7.2", "react": "16.13.0", "react-dom": "16.13.0", diff --git a/src/React.Template/reactnet-webpack/package-lock.json b/src/React.Template/reactnet-webpack/package-lock.json index 3d7d2b9fa..65ab04119 100644 --- a/src/React.Template/reactnet-webpack/package-lock.json +++ b/src/React.Template/reactnet-webpack/package-lock.json @@ -25,18 +25,18 @@ } }, "@babel/core": { - "version": "7.8.6", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.8.6.tgz", - "integrity": "sha512-Sheg7yEJD51YHAvLEV/7Uvw95AeWqYPL3Vk3zGujJKIhJ+8oLw2ALaf3hbucILhKsgSoADOvtKRJuNVdcJkOrg==", + "version": "7.8.7", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.8.7.tgz", + "integrity": "sha512-rBlqF3Yko9cynC5CCFy6+K/w2N+Sq/ff2BPy+Krp7rHlABIr5epbA7OxVeKoMHB39LZOp1UY5SuLjy6uWi35yA==", "dev": true, "requires": { "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.8.6", + "@babel/generator": "^7.8.7", "@babel/helpers": "^7.8.4", - "@babel/parser": "^7.8.6", + "@babel/parser": "^7.8.7", "@babel/template": "^7.8.6", "@babel/traverse": "^7.8.6", - "@babel/types": "^7.8.6", + "@babel/types": "^7.8.7", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.1", @@ -47,10 +47,28 @@ "source-map": "^0.5.0" }, "dependencies": { + "@babel/generator": { + "version": "7.8.7", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.7.tgz", + "integrity": "sha512-DQwjiKJqH4C3qGiyQCAExJHoZssn49JTMJgZ8SANGgVFdkupcUhLOdkAeoC6kmHZCPfoDG5M0b6cFlSN5wW7Ew==", + "dev": true, + "requires": { + "@babel/types": "^7.8.7", + "jsesc": "^2.5.1", + "lodash": "^4.17.13", + "source-map": "^0.5.0" + } + }, + "@babel/parser": { + "version": "7.8.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.7.tgz", + "integrity": "sha512-9JWls8WilDXFGxs0phaXAZgpxTZhSk/yOYH2hTHC0X1yC7Z78IJfvR1vJ+rmJKq3I35td2XzXzN6ZLYlna+r/A==", + "dev": true + }, "@babel/types": { - "version": "7.8.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.6.tgz", - "integrity": "sha512-wqz7pgWMIrht3gquyEFPVXeXCti72Rm8ep9b5tQKz9Yg9LzJA3HxosF1SB3Kc81KD1A3XBkkVYtJvCKS2Z/QrA==", + "version": "7.8.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.7.tgz", + "integrity": "sha512-k2TreEHxFA4CjGkL+GYjRyx35W0Mr7DP5+9q6WMkyKXB+904bYmG40syjMFV0oLlhhFCwWl0vA0DyzTDkwAiJw==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -143,9 +161,9 @@ }, "dependencies": { "@babel/types": { - "version": "7.8.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.6.tgz", - "integrity": "sha512-wqz7pgWMIrht3gquyEFPVXeXCti72Rm8ep9b5tQKz9Yg9LzJA3HxosF1SB3Kc81KD1A3XBkkVYtJvCKS2Z/QrA==", + "version": "7.8.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.7.tgz", + "integrity": "sha512-k2TreEHxFA4CjGkL+GYjRyx35W0Mr7DP5+9q6WMkyKXB+904bYmG40syjMFV0oLlhhFCwWl0vA0DyzTDkwAiJw==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -179,20 +197,20 @@ } }, "@babel/helper-call-delegate": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-call-delegate/-/helper-call-delegate-7.8.3.tgz", - "integrity": "sha512-6Q05px0Eb+N4/GTyKPPvnkig7Lylw+QzihMpws9iiZQv7ZImf84ZsZpQH7QoWN4n4tm81SnSzPgHw2qtO0Zf3A==", + "version": "7.8.7", + "resolved": "https://registry.npmjs.org/@babel/helper-call-delegate/-/helper-call-delegate-7.8.7.tgz", + "integrity": "sha512-doAA5LAKhsFCR0LAFIf+r2RSMmC+m8f/oQ+URnUET/rWeEzC0yTRmAGyWkD4sSu3xwbS7MYQ2u+xlt1V5R56KQ==", "dev": true, "requires": { "@babel/helper-hoist-variables": "^7.8.3", "@babel/traverse": "^7.8.3", - "@babel/types": "^7.8.3" + "@babel/types": "^7.8.7" }, "dependencies": { "@babel/types": { - "version": "7.8.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.6.tgz", - "integrity": "sha512-wqz7pgWMIrht3gquyEFPVXeXCti72Rm8ep9b5tQKz9Yg9LzJA3HxosF1SB3Kc81KD1A3XBkkVYtJvCKS2Z/QrA==", + "version": "7.8.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.7.tgz", + "integrity": "sha512-k2TreEHxFA4CjGkL+GYjRyx35W0Mr7DP5+9q6WMkyKXB+904bYmG40syjMFV0oLlhhFCwWl0vA0DyzTDkwAiJw==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -203,13 +221,13 @@ } }, "@babel/helper-compilation-targets": { - "version": "7.8.6", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.8.6.tgz", - "integrity": "sha512-UrJdk27hKVJSnibFcUWYLkCL0ZywTUoot8yii1lsHJcvwrypagmYKjHLMWivQPm4s6GdyygCL8fiH5EYLxhQwQ==", + "version": "7.8.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.8.7.tgz", + "integrity": "sha512-4mWm8DCK2LugIS+p1yArqvG1Pf162upsIsjE7cNBjez+NjliQpVhj20obE520nao0o14DaTnFJv+Fw5a0JpoUw==", "dev": true, "requires": { "@babel/compat-data": "^7.8.6", - "browserslist": "^4.8.5", + "browserslist": "^4.9.1", "invariant": "^2.2.4", "levenary": "^1.1.1", "semver": "^5.5.0" @@ -250,9 +268,9 @@ } }, "@babel/types": { - "version": "7.8.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.6.tgz", - "integrity": "sha512-wqz7pgWMIrht3gquyEFPVXeXCti72Rm8ep9b5tQKz9Yg9LzJA3HxosF1SB3Kc81KD1A3XBkkVYtJvCKS2Z/QrA==", + "version": "7.8.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.7.tgz", + "integrity": "sha512-k2TreEHxFA4CjGkL+GYjRyx35W0Mr7DP5+9q6WMkyKXB+904bYmG40syjMFV0oLlhhFCwWl0vA0DyzTDkwAiJw==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -274,9 +292,9 @@ }, "dependencies": { "@babel/types": { - "version": "7.8.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.6.tgz", - "integrity": "sha512-wqz7pgWMIrht3gquyEFPVXeXCti72Rm8ep9b5tQKz9Yg9LzJA3HxosF1SB3Kc81KD1A3XBkkVYtJvCKS2Z/QrA==", + "version": "7.8.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.7.tgz", + "integrity": "sha512-k2TreEHxFA4CjGkL+GYjRyx35W0Mr7DP5+9q6WMkyKXB+904bYmG40syjMFV0oLlhhFCwWl0vA0DyzTDkwAiJw==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -297,9 +315,9 @@ }, "dependencies": { "@babel/types": { - "version": "7.8.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.6.tgz", - "integrity": "sha512-wqz7pgWMIrht3gquyEFPVXeXCti72Rm8ep9b5tQKz9Yg9LzJA3HxosF1SB3Kc81KD1A3XBkkVYtJvCKS2Z/QrA==", + "version": "7.8.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.7.tgz", + "integrity": "sha512-k2TreEHxFA4CjGkL+GYjRyx35W0Mr7DP5+9q6WMkyKXB+904bYmG40syjMFV0oLlhhFCwWl0vA0DyzTDkwAiJw==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -365,9 +383,9 @@ }, "dependencies": { "@babel/types": { - "version": "7.8.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.6.tgz", - "integrity": "sha512-wqz7pgWMIrht3gquyEFPVXeXCti72Rm8ep9b5tQKz9Yg9LzJA3HxosF1SB3Kc81KD1A3XBkkVYtJvCKS2Z/QrA==", + "version": "7.8.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.7.tgz", + "integrity": "sha512-k2TreEHxFA4CjGkL+GYjRyx35W0Mr7DP5+9q6WMkyKXB+904bYmG40syjMFV0oLlhhFCwWl0vA0DyzTDkwAiJw==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -432,9 +450,9 @@ } }, "@babel/types": { - "version": "7.8.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.6.tgz", - "integrity": "sha512-wqz7pgWMIrht3gquyEFPVXeXCti72Rm8ep9b5tQKz9Yg9LzJA3HxosF1SB3Kc81KD1A3XBkkVYtJvCKS2Z/QrA==", + "version": "7.8.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.7.tgz", + "integrity": "sha512-k2TreEHxFA4CjGkL+GYjRyx35W0Mr7DP5+9q6WMkyKXB+904bYmG40syjMFV0oLlhhFCwWl0vA0DyzTDkwAiJw==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -504,9 +522,9 @@ } }, "@babel/types": { - "version": "7.8.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.6.tgz", - "integrity": "sha512-wqz7pgWMIrht3gquyEFPVXeXCti72Rm8ep9b5tQKz9Yg9LzJA3HxosF1SB3Kc81KD1A3XBkkVYtJvCKS2Z/QrA==", + "version": "7.8.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.7.tgz", + "integrity": "sha512-k2TreEHxFA4CjGkL+GYjRyx35W0Mr7DP5+9q6WMkyKXB+904bYmG40syjMFV0oLlhhFCwWl0vA0DyzTDkwAiJw==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -552,9 +570,9 @@ }, "dependencies": { "@babel/types": { - "version": "7.8.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.6.tgz", - "integrity": "sha512-wqz7pgWMIrht3gquyEFPVXeXCti72Rm8ep9b5tQKz9Yg9LzJA3HxosF1SB3Kc81KD1A3XBkkVYtJvCKS2Z/QrA==", + "version": "7.8.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.7.tgz", + "integrity": "sha512-k2TreEHxFA4CjGkL+GYjRyx35W0Mr7DP5+9q6WMkyKXB+904bYmG40syjMFV0oLlhhFCwWl0vA0DyzTDkwAiJw==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -599,9 +617,9 @@ }, "dependencies": { "@babel/types": { - "version": "7.8.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.6.tgz", - "integrity": "sha512-wqz7pgWMIrht3gquyEFPVXeXCti72Rm8ep9b5tQKz9Yg9LzJA3HxosF1SB3Kc81KD1A3XBkkVYtJvCKS2Z/QrA==", + "version": "7.8.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.7.tgz", + "integrity": "sha512-k2TreEHxFA4CjGkL+GYjRyx35W0Mr7DP5+9q6WMkyKXB+904bYmG40syjMFV0oLlhhFCwWl0vA0DyzTDkwAiJw==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -623,9 +641,9 @@ }, "dependencies": { "@babel/types": { - "version": "7.8.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.6.tgz", - "integrity": "sha512-wqz7pgWMIrht3gquyEFPVXeXCti72Rm8ep9b5tQKz9Yg9LzJA3HxosF1SB3Kc81KD1A3XBkkVYtJvCKS2Z/QrA==", + "version": "7.8.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.7.tgz", + "integrity": "sha512-k2TreEHxFA4CjGkL+GYjRyx35W0Mr7DP5+9q6WMkyKXB+904bYmG40syjMFV0oLlhhFCwWl0vA0DyzTDkwAiJw==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -862,9 +880,9 @@ } }, "@babel/types": { - "version": "7.8.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.6.tgz", - "integrity": "sha512-wqz7pgWMIrht3gquyEFPVXeXCti72Rm8ep9b5tQKz9Yg9LzJA3HxosF1SB3Kc81KD1A3XBkkVYtJvCKS2Z/QrA==", + "version": "7.8.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.7.tgz", + "integrity": "sha512-k2TreEHxFA4CjGkL+GYjRyx35W0Mr7DP5+9q6WMkyKXB+904bYmG40syjMFV0oLlhhFCwWl0vA0DyzTDkwAiJw==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -919,9 +937,9 @@ } }, "@babel/types": { - "version": "7.8.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.6.tgz", - "integrity": "sha512-wqz7pgWMIrht3gquyEFPVXeXCti72Rm8ep9b5tQKz9Yg9LzJA3HxosF1SB3Kc81KD1A3XBkkVYtJvCKS2Z/QrA==", + "version": "7.8.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.7.tgz", + "integrity": "sha512-k2TreEHxFA4CjGkL+GYjRyx35W0Mr7DP5+9q6WMkyKXB+904bYmG40syjMFV0oLlhhFCwWl0vA0DyzTDkwAiJw==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -1089,12 +1107,12 @@ } }, "@babel/plugin-transform-parameters": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.8.4.tgz", - "integrity": "sha512-IsS3oTxeTsZlE5KqzTbcC2sV0P9pXdec53SU+Yxv7o/6dvGM5AkTotQKhoSffhNgZ/dftsSiOoxy7evCYJXzVA==", + "version": "7.8.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.8.7.tgz", + "integrity": "sha512-brYWaEPTRimOctz2NDA3jnBbDi7SVN2T4wYuu0aqSzxC3nozFZngGaw29CJ9ZPweB7k+iFmZuoG3IVPIcXmD2g==", "dev": true, "requires": { - "@babel/helper-call-delegate": "^7.8.3", + "@babel/helper-call-delegate": "^7.8.7", "@babel/helper-get-function-arity": "^7.8.3", "@babel/helper-plugin-utils": "^7.8.3" } @@ -1149,12 +1167,12 @@ } }, "@babel/plugin-transform-regenerator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.8.3.tgz", - "integrity": "sha512-qt/kcur/FxrQrzFR432FGZznkVAjiyFtCOANjkAKwCbt465L6ZCiUQh2oMYGU3Wo8LRFJxNDFwWn106S5wVUNA==", + "version": "7.8.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.8.7.tgz", + "integrity": "sha512-TIg+gAl4Z0a3WmD3mbYSk+J9ZUH6n/Yc57rtKRnlA/7rcCvpekHXe0CMZHP1gYp7/KLe9GHTuIba0vXmls6drA==", "dev": true, "requires": { - "regenerator-transform": "^0.14.0" + "regenerator-transform": "^0.14.2" } }, "@babel/plugin-transform-reserved-words": { @@ -1214,9 +1232,9 @@ } }, "@babel/types": { - "version": "7.8.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.6.tgz", - "integrity": "sha512-wqz7pgWMIrht3gquyEFPVXeXCti72Rm8ep9b5tQKz9Yg9LzJA3HxosF1SB3Kc81KD1A3XBkkVYtJvCKS2Z/QrA==", + "version": "7.8.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.7.tgz", + "integrity": "sha512-k2TreEHxFA4CjGkL+GYjRyx35W0Mr7DP5+9q6WMkyKXB+904bYmG40syjMFV0oLlhhFCwWl0vA0DyzTDkwAiJw==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -1246,13 +1264,13 @@ } }, "@babel/preset-env": { - "version": "7.8.6", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.8.6.tgz", - "integrity": "sha512-M5u8llV9DIVXBFB/ArIpqJuvXpO+ymxcJ6e8ZAmzeK3sQeBNOD1y+rHvHCGG4TlEmsNpIrdecsHGHT8ZCoOSJg==", + "version": "7.8.7", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.8.7.tgz", + "integrity": "sha512-BYftCVOdAYJk5ASsznKAUl53EMhfBbr8CJ1X+AJLfGPscQkwJFiaV/Wn9DPH/7fzm2v6iRYJKYHSqyynTGw0nw==", "dev": true, "requires": { "@babel/compat-data": "^7.8.6", - "@babel/helper-compilation-targets": "^7.8.6", + "@babel/helper-compilation-targets": "^7.8.7", "@babel/helper-module-imports": "^7.8.3", "@babel/helper-plugin-utils": "^7.8.3", "@babel/plugin-proposal-async-generator-functions": "^7.8.3", @@ -1292,9 +1310,9 @@ "@babel/plugin-transform-named-capturing-groups-regex": "^7.8.3", "@babel/plugin-transform-new-target": "^7.8.3", "@babel/plugin-transform-object-super": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.8.4", + "@babel/plugin-transform-parameters": "^7.8.7", "@babel/plugin-transform-property-literals": "^7.8.3", - "@babel/plugin-transform-regenerator": "^7.8.3", + "@babel/plugin-transform-regenerator": "^7.8.7", "@babel/plugin-transform-reserved-words": "^7.8.3", "@babel/plugin-transform-shorthand-properties": "^7.8.3", "@babel/plugin-transform-spread": "^7.8.3", @@ -1302,7 +1320,7 @@ "@babel/plugin-transform-template-literals": "^7.8.3", "@babel/plugin-transform-typeof-symbol": "^7.8.4", "@babel/plugin-transform-unicode-regex": "^7.8.3", - "@babel/types": "^7.8.6", + "@babel/types": "^7.8.7", "browserslist": "^4.8.5", "core-js-compat": "^3.6.2", "invariant": "^2.2.2", @@ -1320,9 +1338,9 @@ } }, "@babel/types": { - "version": "7.8.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.6.tgz", - "integrity": "sha512-wqz7pgWMIrht3gquyEFPVXeXCti72Rm8ep9b5tQKz9Yg9LzJA3HxosF1SB3Kc81KD1A3XBkkVYtJvCKS2Z/QrA==", + "version": "7.8.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.7.tgz", + "integrity": "sha512-k2TreEHxFA4CjGkL+GYjRyx35W0Mr7DP5+9q6WMkyKXB+904bYmG40syjMFV0oLlhhFCwWl0vA0DyzTDkwAiJw==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -2322,13 +2340,13 @@ } }, "browserslist": { - "version": "4.9.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.9.0.tgz", - "integrity": "sha512-seffIXhwgB84+OCeT/aMjpZnsAsYDiMSC+CEs3UkF8iU64BZGYcu+TZYs/IBpo4nRi0vJywUJWYdbTsOhFTweg==", + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.9.1.tgz", + "integrity": "sha512-Q0DnKq20End3raFulq6Vfp1ecB9fh8yUNV55s8sekaDDeqBaCtWlRHCUdaWyUeSSBJM7IbM6HcsyaeYqgeDhnw==", "dev": true, "requires": { "caniuse-lite": "^1.0.30001030", - "electron-to-chromium": "^1.3.361", + "electron-to-chromium": "^1.3.363", "node-releases": "^1.1.50" } }, @@ -2431,9 +2449,9 @@ "integrity": "sha1-FkpUg+Yw+kMh5a8HAg5TGDGyYJs=" }, "caniuse-lite": { - "version": "1.0.30001030", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001030.tgz", - "integrity": "sha512-QGK0W4Ft/Ac+zTjEiRJfwDNATvS3fodDczBXrH42784kcfqcDKpEPfN08N0HQjrAp8He/Jw8QiSS9QRn7XAbUw==", + "version": "1.0.30001031", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001031.tgz", + "integrity": "sha512-DpAP5a1NGRLgYfaNCaXIRyGARi+3tJA2quZXNNA1Du26VyVkqvy2tznNu5ANyN1Y5aX44QDotZSVSUSi2uMGjg==", "dev": true }, "chalk": { @@ -2988,9 +3006,9 @@ } }, "electron-to-chromium": { - "version": "1.3.362", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.362.tgz", - "integrity": "sha512-xdU5VCoZyMPMOWtCaMgbr48OwWZHrMLbGnAOlEqibXiIGsb4kiCGWEHK5NOghcVLdBVIbr/BW+yuKxVuGTtzEg==", + "version": "1.3.368", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.368.tgz", + "integrity": "sha512-fqzDipW3p+uDkHUHFPrdW3wINRKcJsbnJwBD7hgaQEQwcuLSvNLw6SeUp5gKDpTbmTl7zri7IZfhsdTUTnygJg==", "dev": true }, "elliptic": { @@ -6184,12 +6202,30 @@ "dev": true }, "regenerator-transform": { - "version": "0.14.1", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.1.tgz", - "integrity": "sha512-flVuee02C3FKRISbxhXl9mGzdbWUVHubl1SMaknjxkFB1/iqpJhArQUvRxOOPEc/9tAiX0BaQ28FJH10E4isSQ==", + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.2.tgz", + "integrity": "sha512-V4+lGplCM/ikqi5/mkkpJ06e9Bujq1NFmNLvsCs56zg3ZbzrnUzAtizZ24TXxtRX/W2jcdScwQCnbL0CICTFkQ==", "dev": true, "requires": { - "private": "^0.1.6" + "@babel/runtime": "^7.8.4", + "private": "^0.1.8" + }, + "dependencies": { + "@babel/runtime": { + "version": "7.8.7", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.8.7.tgz", + "integrity": "sha512-+AATMUFppJDw6aiR5NVPHqIQBlV/Pj8wY/EZH+lmvRdUo9xBaz/rF3alAwFJQavvKfeOlPE7oaaDHVbcySbCsg==", + "dev": true, + "requires": { + "regenerator-runtime": "^0.13.4" + } + }, + "regenerator-runtime": { + "version": "0.13.4", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.4.tgz", + "integrity": "sha512-plpwicqEzfEyTQohIKktWigcLzmNStMGwbOUbykx51/29Z3JOGYldaaNGK7ngNXV+UcoqvIMmloZ48Sr74sd+g==", + "dev": true + } } }, "regex-not": { diff --git a/src/React.Template/reactnet-webpack/package.json b/src/React.Template/reactnet-webpack/package.json index f9d2abc36..a140b289e 100644 --- a/src/React.Template/reactnet-webpack/package.json +++ b/src/React.Template/reactnet-webpack/package.json @@ -20,11 +20,11 @@ "styled-components": "^4.0.0" }, "devDependencies": { - "@babel/core": "7.8.6", + "@babel/core": "7.8.7", "@babel/plugin-proposal-class-properties": "7.8.3", "@babel/plugin-proposal-object-rest-spread": "7.8.3", "@babel/plugin-syntax-dynamic-import": "7.8.3", - "@babel/preset-env": "7.8.6", + "@babel/preset-env": "7.8.7", "@babel/preset-react": "7.8.3", "babel-loader": "8.0.6", "babel-runtime": "6.26.0", From 25b6c8923fafaf282298a7ab8a7db87958e18cdd Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Thu, 5 Mar 2020 22:56:16 +0000 Subject: [PATCH 411/530] Update dependency Microsoft.NET.Sdk.Functions to v1.0.34 --- webhooks/React.Site.Hooks.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/webhooks/React.Site.Hooks.csproj b/webhooks/React.Site.Hooks.csproj index b86515408..170f3168f 100644 --- a/webhooks/React.Site.Hooks.csproj +++ b/webhooks/React.Site.Hooks.csproj @@ -3,7 +3,7 @@ net461 - + From cd67723be3a5b5564c15d9772689a5d7313fb481 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 8 Mar 2020 00:19:24 -0500 Subject: [PATCH 412/530] Update dependency Octokit to v0.43.0 (#1057) Co-authored-by: Renovate Bot --- webhooks/React.Site.Hooks.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/webhooks/React.Site.Hooks.csproj b/webhooks/React.Site.Hooks.csproj index 170f3168f..366240f5d 100644 --- a/webhooks/React.Site.Hooks.csproj +++ b/webhooks/React.Site.Hooks.csproj @@ -4,7 +4,7 @@ - + From bc5f261746857e7447076f871476b6651401a397 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 8 Mar 2020 00:19:46 -0500 Subject: [PATCH 413/530] Update dependency webpack to v4.42.0 (#1055) Co-authored-by: Renovate Bot --- .../Resources/babel-legacy/package-lock.json | 30 ++++++------- .../Resources/babel-legacy/package.json | 2 +- src/React.Core/package-lock.json | 30 ++++++------- src/React.Core/package.json | 2 +- .../reactnet-webpack/package-lock.json | 44 +++++++++++-------- .../reactnet-webpack/package.json | 2 +- 6 files changed, 58 insertions(+), 52 deletions(-) diff --git a/src/React.Core/Resources/babel-legacy/package-lock.json b/src/React.Core/Resources/babel-legacy/package-lock.json index d0f593bb4..7121f109f 100644 --- a/src/React.Core/Resources/babel-legacy/package-lock.json +++ b/src/React.Core/Resources/babel-legacy/package-lock.json @@ -199,9 +199,9 @@ "dev": true }, "ajv": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.11.0.tgz", - "integrity": "sha512-nCprB/0syFYy9fVYU1ox1l2KN8S9I+tziH8D4zdZuLT3N6RMlGSGt5FSTpAiHB/Whv8Qs1cWHma1aMKZyaHRKA==", + "version": "6.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz", + "integrity": "sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw==", "dev": true, "requires": { "fast-deep-equal": "^3.1.1", @@ -1655,9 +1655,9 @@ } }, "chownr": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.3.tgz", - "integrity": "sha512-i70fVHhmV3DtTl6nqvZOnIjbY0Pe4kAUjwHj8z0zAdgBtYrJyYwLKCCuRBQ5ppkyL0AkN7HKRnETdmdp1zqNXw==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", "dev": true }, "chrome-trace-event": { @@ -4799,9 +4799,9 @@ "dev": true }, "terser": { - "version": "4.6.3", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.6.3.tgz", - "integrity": "sha512-Lw+ieAXmY69d09IIc/yqeBqXpEQIpDGZqT34ui1QWXIUpR2RjbqEkT8X7Lgex19hslSqcWM5iMN2kM11eMsESQ==", + "version": "4.6.4", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.6.4.tgz", + "integrity": "sha512-5fqgBPLgVHZ/fVvqRhhUp9YUiGXhFJ9ZkrZWD9vQtFBR4QIGTnbsb+/kKqSqfgp3WnBwGWAFnedGTtmX1YTn0w==", "dev": true, "requires": { "commander": "^2.20.0", @@ -4922,9 +4922,9 @@ "dev": true }, "tslib": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz", - "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.11.1.tgz", + "integrity": "sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA==", "dev": true }, "tty-browserify": { @@ -5116,9 +5116,9 @@ } }, "webpack": { - "version": "4.41.6", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.41.6.tgz", - "integrity": "sha512-yxXfV0Zv9WMGRD+QexkZzmGIh54bsvEs+9aRWxnN8erLWEOehAKUTeNBoUbA6HPEZPlRo7KDi2ZcNveoZgK9MA==", + "version": "4.42.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.42.0.tgz", + "integrity": "sha512-EzJRHvwQyBiYrYqhyjW9AqM90dE4+s1/XtCfn7uWg6cS72zH+2VPFAlsnW0+W0cDi0XRjNKUMoJtpSi50+Ph6w==", "dev": true, "requires": { "@webassemblyjs/ast": "1.8.5", diff --git a/src/React.Core/Resources/babel-legacy/package.json b/src/React.Core/Resources/babel-legacy/package.json index 94b6edf83..9ee488958 100644 --- a/src/React.Core/Resources/babel-legacy/package.json +++ b/src/React.Core/Resources/babel-legacy/package.json @@ -12,7 +12,7 @@ "babel-preset-es2015": "6.24.1", "babel-preset-stage-0": "6.24.1", "babel-standalone": "6.26.0", - "webpack": "4.41.6", + "webpack": "4.42.0", "webpack-cli": "3.3.11" }, "author": "", diff --git a/src/React.Core/package-lock.json b/src/React.Core/package-lock.json index 2dc781287..8ff73d181 100644 --- a/src/React.Core/package-lock.json +++ b/src/React.Core/package-lock.json @@ -387,9 +387,9 @@ "dev": true }, "ajv": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.11.0.tgz", - "integrity": "sha512-nCprB/0syFYy9fVYU1ox1l2KN8S9I+tziH8D4zdZuLT3N6RMlGSGt5FSTpAiHB/Whv8Qs1cWHma1aMKZyaHRKA==", + "version": "6.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz", + "integrity": "sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw==", "dev": true, "requires": { "fast-deep-equal": "^3.1.1", @@ -864,9 +864,9 @@ } }, "chownr": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.3.tgz", - "integrity": "sha512-i70fVHhmV3DtTl6nqvZOnIjbY0Pe4kAUjwHj8z0zAdgBtYrJyYwLKCCuRBQ5ppkyL0AkN7HKRnETdmdp1zqNXw==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", "dev": true }, "chrome-trace-event": { @@ -4054,9 +4054,9 @@ "dev": true }, "terser": { - "version": "4.6.3", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.6.3.tgz", - "integrity": "sha512-Lw+ieAXmY69d09IIc/yqeBqXpEQIpDGZqT34ui1QWXIUpR2RjbqEkT8X7Lgex19hslSqcWM5iMN2kM11eMsESQ==", + "version": "4.6.4", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.6.4.tgz", + "integrity": "sha512-5fqgBPLgVHZ/fVvqRhhUp9YUiGXhFJ9ZkrZWD9vQtFBR4QIGTnbsb+/kKqSqfgp3WnBwGWAFnedGTtmX1YTn0w==", "dev": true, "requires": { "commander": "^2.20.0", @@ -4171,9 +4171,9 @@ } }, "tslib": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz", - "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.11.1.tgz", + "integrity": "sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA==", "dev": true }, "tty-browserify": { @@ -4348,9 +4348,9 @@ } }, "webpack": { - "version": "4.41.6", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.41.6.tgz", - "integrity": "sha512-yxXfV0Zv9WMGRD+QexkZzmGIh54bsvEs+9aRWxnN8erLWEOehAKUTeNBoUbA6HPEZPlRo7KDi2ZcNveoZgK9MA==", + "version": "4.42.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.42.0.tgz", + "integrity": "sha512-EzJRHvwQyBiYrYqhyjW9AqM90dE4+s1/XtCfn7uWg6cS72zH+2VPFAlsnW0+W0cDi0XRjNKUMoJtpSi50+Ph6w==", "dev": true, "requires": { "@webassemblyjs/ast": "1.8.5", diff --git a/src/React.Core/package.json b/src/React.Core/package.json index 7440696d7..707237f00 100644 --- a/src/React.Core/package.json +++ b/src/React.Core/package.json @@ -11,7 +11,7 @@ "prop-types": "15.7.2", "react": "16.13.0", "react-dom": "16.13.0", - "webpack": "4.41.6", + "webpack": "4.42.0", "webpack-cli": "3.3.11" } } diff --git a/src/React.Template/reactnet-webpack/package-lock.json b/src/React.Template/reactnet-webpack/package-lock.json index 65ab04119..2b622e77e 100644 --- a/src/React.Template/reactnet-webpack/package-lock.json +++ b/src/React.Template/reactnet-webpack/package-lock.json @@ -1868,9 +1868,9 @@ "dev": true }, "ajv": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.11.0.tgz", - "integrity": "sha512-nCprB/0syFYy9fVYU1ox1l2KN8S9I+tziH8D4zdZuLT3N6RMlGSGt5FSTpAiHB/Whv8Qs1cWHma1aMKZyaHRKA==", + "version": "6.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz", + "integrity": "sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw==", "dev": true, "requires": { "fast-deep-equal": "^3.1.1", @@ -2486,9 +2486,9 @@ } }, "chownr": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.3.tgz", - "integrity": "sha512-i70fVHhmV3DtTl6nqvZOnIjbY0Pe4kAUjwHj8z0zAdgBtYrJyYwLKCCuRBQ5ppkyL0AkN7HKRnETdmdp1zqNXw==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", "dev": true }, "chrome-trace-event": { @@ -6916,9 +6916,9 @@ "dev": true }, "terser": { - "version": "4.6.3", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.6.3.tgz", - "integrity": "sha512-Lw+ieAXmY69d09IIc/yqeBqXpEQIpDGZqT34ui1QWXIUpR2RjbqEkT8X7Lgex19hslSqcWM5iMN2kM11eMsESQ==", + "version": "4.6.4", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.6.4.tgz", + "integrity": "sha512-5fqgBPLgVHZ/fVvqRhhUp9YUiGXhFJ9ZkrZWD9vQtFBR4QIGTnbsb+/kKqSqfgp3WnBwGWAFnedGTtmX1YTn0w==", "dev": true, "requires": { "commander": "^2.20.0", @@ -7125,9 +7125,9 @@ } }, "tslib": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz", - "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.11.1.tgz", + "integrity": "sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA==", "dev": true }, "tty-browserify": { @@ -7358,9 +7358,9 @@ } }, "webpack": { - "version": "4.41.6", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.41.6.tgz", - "integrity": "sha512-yxXfV0Zv9WMGRD+QexkZzmGIh54bsvEs+9aRWxnN8erLWEOehAKUTeNBoUbA6HPEZPlRo7KDi2ZcNveoZgK9MA==", + "version": "4.42.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.42.0.tgz", + "integrity": "sha512-EzJRHvwQyBiYrYqhyjW9AqM90dE4+s1/XtCfn7uWg6cS72zH+2VPFAlsnW0+W0cDi0XRjNKUMoJtpSi50+Ph6w==", "dev": true, "requires": { "@webassemblyjs/ast": "1.8.5", @@ -7394,6 +7394,12 @@ "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", "dev": true }, + "emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true + }, "json5": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", @@ -7404,13 +7410,13 @@ } }, "loader-utils": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz", - "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", "dev": true, "requires": { "big.js": "^5.2.2", - "emojis-list": "^2.0.0", + "emojis-list": "^3.0.0", "json5": "^1.0.1" } }, diff --git a/src/React.Template/reactnet-webpack/package.json b/src/React.Template/reactnet-webpack/package.json index a140b289e..c1b8d9c29 100644 --- a/src/React.Template/reactnet-webpack/package.json +++ b/src/React.Template/reactnet-webpack/package.json @@ -29,7 +29,7 @@ "babel-loader": "8.0.6", "babel-runtime": "6.26.0", "rimraf": "3.0.2", - "webpack": "4.41.6", + "webpack": "4.42.0", "webpack-cli": "3.3.11", "webpack-manifest-plugin": "2.2.0" } From 82c486d766e562ca67035c32748d91595117be00 Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Sat, 7 Mar 2020 22:00:01 -0800 Subject: [PATCH 414/530] Bump template packages --- src/React.Template/reactnet-vanilla/tutorial-code.csproj | 2 +- src/React.Template/reactnet-webpack/SampleApp.csproj | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/React.Template/reactnet-vanilla/tutorial-code.csproj b/src/React.Template/reactnet-vanilla/tutorial-code.csproj index cba3bf7bc..28d8f51a6 100644 --- a/src/React.Template/reactnet-vanilla/tutorial-code.csproj +++ b/src/React.Template/reactnet-vanilla/tutorial-code.csproj @@ -20,7 +20,7 @@ - + diff --git a/src/React.Template/reactnet-webpack/SampleApp.csproj b/src/React.Template/reactnet-webpack/SampleApp.csproj index cb56e1e85..54de35b9e 100644 --- a/src/React.Template/reactnet-webpack/SampleApp.csproj +++ b/src/React.Template/reactnet-webpack/SampleApp.csproj @@ -14,8 +14,8 @@ - - + + From 91f56305b0faee73198d5ab102dd8ed756a6a8c2 Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Sat, 7 Mar 2020 22:15:56 -0800 Subject: [PATCH 415/530] Fix path to files listed in asset manifest --- src/React.Core/ReactEnvironment.cs | 6 ++---- tests/React.Tests/Core/ReactEnvironmentTest.cs | 8 ++++---- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/src/React.Core/ReactEnvironment.cs b/src/React.Core/ReactEnvironment.cs index eab1dbf94..5dc043562 100644 --- a/src/React.Core/ReactEnvironment.cs +++ b/src/React.Core/ReactEnvironment.cs @@ -357,8 +357,7 @@ public virtual void GetInitJavaScript(TextWriter writer, bool clientOnly = false public virtual IEnumerable GetScriptPaths() { return GetAppManifest().Entrypoints - .Where(path => path.EndsWith(".js")) - .Select(file => $"{_config.ReactAppBuildPath.Replace("~/", "/")}/{file}"); + .Where(path => path.EndsWith(".js")); } /// @@ -367,8 +366,7 @@ public virtual IEnumerable GetScriptPaths() public virtual IEnumerable GetStylePaths() { return GetAppManifest().Entrypoints - .Where(path => path.EndsWith(".css")) - .Select(file => $"{_config.ReactAppBuildPath.Replace("~/", "/")}/{file}"); + .Where(path => path.EndsWith(".css")); } /// diff --git a/tests/React.Tests/Core/ReactEnvironmentTest.cs b/tests/React.Tests/Core/ReactEnvironmentTest.cs index 9f50b3df6..9b1242746 100644 --- a/tests/React.Tests/Core/ReactEnvironmentTest.cs +++ b/tests/React.Tests/Core/ReactEnvironmentTest.cs @@ -200,8 +200,8 @@ public void ScriptTagsReturned() var scripts = environment.GetScriptPaths().ToList(); Assert.Equal(2, scripts.Count); - Assert.Equal("/dist/static/js/runtime-main.62ca1b0d.js", scripts[0]); - Assert.Equal("/dist/static/js/main.04394e4f.chunk.js", scripts[1]); + Assert.Equal("static/js/runtime-main.62ca1b0d.js", scripts[0]); + Assert.Equal("static/js/main.04394e4f.chunk.js", scripts[1]); } [Fact] @@ -214,8 +214,8 @@ public void StyleTagsReturned() var styles = environment.GetStylePaths().ToList(); Assert.Equal(2, styles.Count); - Assert.Equal("/dist/static/css/main.43b75f57.chunk.css", styles[0]); - Assert.Equal("/dist/static/css/another-stylesheet.css", styles[1]); + Assert.Equal("static/css/main.43b75f57.chunk.css", styles[0]); + Assert.Equal("static/css/another-stylesheet.css", styles[1]); } public class Mocks From 7f38d85e36159847e430d747931a563449402c23 Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Sat, 7 Mar 2020 22:20:35 -0800 Subject: [PATCH 416/530] Use asset manifest in webpack template --- src/React.Template/reactnet-webpack/Startup.cs | 6 +----- .../reactnet-webpack/Views/Shared/_Layout.cshtml | 7 ++----- 2 files changed, 3 insertions(+), 10 deletions(-) diff --git a/src/React.Template/reactnet-webpack/Startup.cs b/src/React.Template/reactnet-webpack/Startup.cs index 10766714e..a5c92e302 100644 --- a/src/React.Template/reactnet-webpack/Startup.cs +++ b/src/React.Template/reactnet-webpack/Startup.cs @@ -42,11 +42,7 @@ public void Configure(IApplicationBuilder app) .SetReuseJavaScriptEngines(true) .SetLoadBabel(false) .SetLoadReact(false) - .AddScriptWithoutTransform("~/dist/runtime.js") - .AddScriptWithoutTransform("~/dist/vendor.js") - .AddScriptWithoutTransform("~/dist/main.js"); - - // Beta feature: Call .SetReactAppBuildPath("~/dist") to use the asset manifest instead of listing each file + .SetReactAppBuildPath("~/dist"); }); app.UseStaticFiles(); diff --git a/src/React.Template/reactnet-webpack/Views/Shared/_Layout.cshtml b/src/React.Template/reactnet-webpack/Views/Shared/_Layout.cshtml index effaee6de..52307c13f 100644 --- a/src/React.Template/reactnet-webpack/Views/Shared/_Layout.cshtml +++ b/src/React.Template/reactnet-webpack/Views/Shared/_Layout.cshtml @@ -7,14 +7,11 @@ @Html.Raw(ViewBag.ServerStyles) - @* Beta feature: call @Html.ReactGetStylePaths() to get all style tags *@ + @Html.ReactGetStylePaths() @RenderBody() - @* Beta feature: call @Html.ReactGetScriptPaths() to get all style tags *@ - - - + @Html.ReactGetScriptPaths() @Html.ReactInitJavaScript() From 7611a4e5b30979eabbf3f76f506c120115ed3c5a Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Sun, 8 Mar 2020 13:15:25 -0700 Subject: [PATCH 417/530] 5.2.2 --- build.proj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.proj b/build.proj index c750e00b3..bed020c77 100644 --- a/build.proj +++ b/build.proj @@ -11,7 +11,7 @@ of patent rights can be found in the PATENTS file in the same directory. 5 2 - 1 + 2 0 http://reactjs.net/packages/ $(MSBuildProjectDirectory)\tools\MSBuildTasks From b42073aeca42b749c040ee5cb959eaa184caa799 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Sun, 8 Mar 2020 23:28:17 +0000 Subject: [PATCH 418/530] Update dependency React.AspNet to v5.2.2 --- src/React.Template/reactnet-vanilla/tutorial-code.csproj | 2 +- src/React.Template/reactnet-webpack/SampleApp.csproj | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/React.Template/reactnet-vanilla/tutorial-code.csproj b/src/React.Template/reactnet-vanilla/tutorial-code.csproj index 28d8f51a6..478784112 100644 --- a/src/React.Template/reactnet-vanilla/tutorial-code.csproj +++ b/src/React.Template/reactnet-vanilla/tutorial-code.csproj @@ -20,7 +20,7 @@ - + diff --git a/src/React.Template/reactnet-webpack/SampleApp.csproj b/src/React.Template/reactnet-webpack/SampleApp.csproj index 54de35b9e..1dee2641a 100644 --- a/src/React.Template/reactnet-webpack/SampleApp.csproj +++ b/src/React.Template/reactnet-webpack/SampleApp.csproj @@ -14,7 +14,7 @@ - + From 5cba6da209d99ea067662a4ef0ad879f6066ada3 Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Sun, 8 Mar 2020 20:12:23 -0700 Subject: [PATCH 419/530] Renovate: Group template package updates together --- renovate.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/renovate.json b/renovate.json index 7d85e2c8d..f197b0de8 100644 --- a/renovate.json +++ b/renovate.json @@ -25,6 +25,10 @@ "https://github.com/aspnet/AspNetCore" ], "groupName": "ASP.NET Core packages" + }, + { + "packagePatterns": ["^React"], + "groupName": "React.NET packages" } ], "separateMinorPatch": true, From 2943944ef0ec630b692952a77f41541ca0a023ce Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Mon, 9 Mar 2020 03:14:04 +0000 Subject: [PATCH 420/530] Update dependency React.Router to v5.2.2 --- src/React.Template/reactnet-webpack/SampleApp.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/React.Template/reactnet-webpack/SampleApp.csproj b/src/React.Template/reactnet-webpack/SampleApp.csproj index 1dee2641a..7ef294934 100644 --- a/src/React.Template/reactnet-webpack/SampleApp.csproj +++ b/src/React.Template/reactnet-webpack/SampleApp.csproj @@ -15,7 +15,7 @@ - + From 74abd9ea4b5407c9cabd606ed1b6c55c84da0453 Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Sun, 8 Mar 2020 21:53:15 -0700 Subject: [PATCH 421/530] Avoid background crash if JS files in use This can happen if webpack is doing a background rebuild. --- src/React.Core/JavaScriptEngineFactory.cs | 72 +++++++++++------------ 1 file changed, 33 insertions(+), 39 deletions(-) diff --git a/src/React.Core/JavaScriptEngineFactory.cs b/src/React.Core/JavaScriptEngineFactory.cs index 06b044f90..63772c3db 100644 --- a/src/React.Core/JavaScriptEngineFactory.cs +++ b/src/React.Core/JavaScriptEngineFactory.cs @@ -174,53 +174,47 @@ private void LoadResource(IJsEngine engine, string resourceName, Assembly assemb /// Engine to load scripts into private void LoadUserScripts(IJsEngine engine) { - if (_config.ReactAppBuildPath != null) + try { - var manifest = ReactAppAssetManifest.LoadManifest(_config, _fileSystem, _cache, useCacheRead: false); - foreach (var file in manifest.Entrypoints?.Where(x => x != null && x.EndsWith(".js"))) + IEnumerable manifestFiles = Enumerable.Empty(); + if (_config.ReactAppBuildPath != null) { - if (_config.AllowJavaScriptPrecompilation - && engine.TryExecuteFileWithPrecompilation(_cache, _fileSystem, file)) - { - // Do nothing. - } - else - { - engine.ExecuteFile(_fileSystem, file); - } + var manifest = ReactAppAssetManifest.LoadManifest(_config, _fileSystem, _cache, useCacheRead: false); + manifestFiles = (manifest?.Entrypoints?.Where(x => x != null && x.EndsWith(".js"))) ?? Enumerable.Empty(); } - } - foreach (var file in _config.ScriptsWithoutTransform) - { - try + foreach (var file in _config.ScriptsWithoutTransform.Concat(manifestFiles)) { - if (_config.AllowJavaScriptPrecompilation - && engine.TryExecuteFileWithPrecompilation(_cache, _fileSystem, file)) + try { - // Do nothing. + if (_config.AllowJavaScriptPrecompilation + && engine.TryExecuteFileWithPrecompilation(_cache, _fileSystem, file)) + { + // Do nothing. + } + else + { + engine.ExecuteFile(_fileSystem, file); + } } - else + catch (JsException ex) { - engine.ExecuteFile(_fileSystem, file); + // We can't simply rethrow the exception here, as it's possible this is running + // on a background thread (ie. as a response to a file changing). If we did + // throw the exception here, it would terminate the entire process. Instead, + // save the exception, and then just rethrow it later when getting the engine. + _scriptLoadException = new ReactScriptLoadException(string.Format( + "Error while loading \"{0}\": {1}", + file, + ex.Message + ), ex); } } - catch (JsException ex) - { - // We can't simply rethrow the exception here, as it's possible this is running - // on a background thread (ie. as a response to a file changing). If we did - // throw the exception here, it would terminate the entire process. Instead, - // save the exception, and then just rethrow it later when getting the engine. - _scriptLoadException = new ReactScriptLoadException(string.Format( - "Error while loading \"{0}\": {1}", - file, - ex.Message - ), ex); - } - catch (IOException ex) - { - _scriptLoadException = new ReactScriptLoadException(ex.Message, ex); - } + } + catch (IOException ex) + { + // Files could be in the process of being rebuilt by JS build tooling + _scriptLoadException = new ReactScriptLoadException(ex.Message, ex);; } } @@ -228,14 +222,14 @@ private void LoadUserScripts(IJsEngine engine) /// Ensures that React has been correctly loaded into the specified engine. /// /// Engine to check - private static void EnsureReactLoaded(IJsEngine engine) + private void EnsureReactLoaded(IJsEngine engine) { var globalsString = engine.CallFunction("ReactNET_initReact"); string[] globals = globalsString.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries); if (globals.Length != 0) { - throw new ReactNotInitialisedException( + _scriptLoadException = new ReactNotInitialisedException( $"React has not been loaded correctly: missing ({string.Join(", ", globals)})." + "Please expose your version of React as global variables named " + "'React', 'ReactDOM', and 'ReactDOMServer', or enable the 'LoadReact'" + From 2a1cfabeb9d3aca477fdb831cbcf84b49a34fb69 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Thu, 12 Mar 2020 18:52:00 +0000 Subject: [PATCH 422/530] Update dependency @babel/standalone to v7.8.8 --- src/React.Core/package-lock.json | 6 +++--- src/React.Core/package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/React.Core/package-lock.json b/src/React.Core/package-lock.json index 8ff73d181..d370198f1 100644 --- a/src/React.Core/package-lock.json +++ b/src/React.Core/package-lock.json @@ -131,9 +131,9 @@ "dev": true }, "@babel/standalone": { - "version": "7.8.7", - "resolved": "https://registry.npmjs.org/@babel/standalone/-/standalone-7.8.7.tgz", - "integrity": "sha512-tI9NO4Wz5CfVdnjGs4O9hIN0bOuUeLFeMBGOzmEP19MiAFmCi6GFRf+EELE8ZPJQ+OqherJMLnszN4ALPF2ahA==", + "version": "7.8.8", + "resolved": "https://registry.npmjs.org/@babel/standalone/-/standalone-7.8.8.tgz", + "integrity": "sha512-TeUxX+DYxNWliyU71gF4ti5NGrEheuB6NrxOumGRX/07EZXBBM90UljRzC9XjiP9f0NsEQYLQVmjd2Pu7NNARA==", "dev": true }, "@babel/template": { diff --git a/src/React.Core/package.json b/src/React.Core/package.json index 707237f00..df3a2e67b 100644 --- a/src/React.Core/package.json +++ b/src/React.Core/package.json @@ -7,7 +7,7 @@ }, "devDependencies": { "@babel/core": "7.8.7", - "@babel/standalone": "7.8.7", + "@babel/standalone": "7.8.8", "prop-types": "15.7.2", "react": "16.13.0", "react-dom": "16.13.0", From a8cb479f1c5b61529b56eab092ed9235aaecd0cc Mon Sep 17 00:00:00 2001 From: Aloc <22265332+alochaus@users.noreply.github.com> Date: Sun, 15 Mar 2020 13:38:01 -0400 Subject: [PATCH 423/530] Fix typo in tutorial-code.csproj (#1067) This typo was causing build failure because it points to a non-existent file. --- src/React.Template/reactnet-vanilla/tutorial-code.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/React.Template/reactnet-vanilla/tutorial-code.csproj b/src/React.Template/reactnet-vanilla/tutorial-code.csproj index 478784112..c67e40b4f 100644 --- a/src/React.Template/reactnet-vanilla/tutorial-code.csproj +++ b/src/React.Template/reactnet-vanilla/tutorial-code.csproj @@ -7,7 +7,7 @@ tutorial-code - + PreserveNewest From 7554ce7e17cf1e44919d4efa827a3e7b39452203 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 15 Mar 2020 10:38:24 -0700 Subject: [PATCH 424/530] Bump acorn from 6.4.0 to 6.4.1 in /src/React.Core (#1066) Bumps [acorn](https://github.com/acornjs/acorn) from 6.4.0 to 6.4.1. - [Release notes](https://github.com/acornjs/acorn/releases) - [Commits](https://github.com/acornjs/acorn/compare/6.4.0...6.4.1) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- src/React.Core/package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/React.Core/package-lock.json b/src/React.Core/package-lock.json index d370198f1..f723fcd91 100644 --- a/src/React.Core/package-lock.json +++ b/src/React.Core/package-lock.json @@ -381,9 +381,9 @@ "dev": true }, "acorn": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.0.tgz", - "integrity": "sha512-gac8OEcQ2Li1dxIEWGZzsp2BitJxwkwcOm0zHAJLcPJaVvm58FRnk6RkuLRpU1EujipU2ZFODv2P9DLMfnV8mw==", + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.1.tgz", + "integrity": "sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA==", "dev": true }, "ajv": { From 2c0c387cff4d66b9b3ff50ff24c978ae2d861b12 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 15 Mar 2020 10:38:45 -0700 Subject: [PATCH 425/530] Update dependency Octokit to v0.44.0 (#1068) Co-authored-by: Renovate Bot --- webhooks/React.Site.Hooks.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/webhooks/React.Site.Hooks.csproj b/webhooks/React.Site.Hooks.csproj index 366240f5d..f81edbd1e 100644 --- a/webhooks/React.Site.Hooks.csproj +++ b/webhooks/React.Site.Hooks.csproj @@ -4,7 +4,7 @@ - + From 68f3c60127f11019790fa7583a3fb7c7aa794422 Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Sun, 15 Mar 2020 15:55:16 -0700 Subject: [PATCH 426/530] Throw detailed exception if wwwroot folder is missing --- src/React.AspNet.Middleware/AspNetFileSystem.cs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/React.AspNet.Middleware/AspNetFileSystem.cs b/src/React.AspNet.Middleware/AspNetFileSystem.cs index dec4ab94c..33289c792 100644 --- a/src/React.AspNet.Middleware/AspNetFileSystem.cs +++ b/src/React.AspNet.Middleware/AspNetFileSystem.cs @@ -7,6 +7,7 @@ using System.IO; using Microsoft.AspNetCore.Hosting; +using React.Exceptions; #if NETCOREAPP2_0 || NETSTANDARD2_0 using IWebHostEnvironment = Microsoft.AspNetCore.Hosting.IHostingEnvironment; @@ -38,6 +39,11 @@ public AspNetFileSystem(IWebHostEnvironment hostingEnv) /// Full path of the file public override string MapPath(string relativePath) { + if (_hostingEnv.WebRootPath == null) + { + throw new ReactException("WebRootPath was null, has the wwwroot folder been deployed along with your app?"); + } + if (relativePath.StartsWith(_hostingEnv.WebRootPath)) { return relativePath; From f1f382cf3e0af95c04f6f35cdbef97d4f8306ce1 Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Sun, 15 Mar 2020 16:07:32 -0700 Subject: [PATCH 427/530] Add developer exception page to webpack template --- src/React.Template/reactnet-webpack/Startup.cs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/React.Template/reactnet-webpack/Startup.cs b/src/React.Template/reactnet-webpack/Startup.cs index a5c92e302..7bd728db3 100644 --- a/src/React.Template/reactnet-webpack/Startup.cs +++ b/src/React.Template/reactnet-webpack/Startup.cs @@ -4,6 +4,7 @@ using Microsoft.AspNetCore.Http; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Hosting; using React.AspNet; namespace React.Sample.Webpack.CoreMvc @@ -33,7 +34,7 @@ public void ConfigureServices(IServiceCollection services) } // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. - public void Configure(IApplicationBuilder app) + public void Configure(IApplicationBuilder app, IHostEnvironment env) { // Initialise ReactJS.NET. Must be before static files. app.UseReact(config => @@ -45,6 +46,11 @@ public void Configure(IApplicationBuilder app) .SetReactAppBuildPath("~/dist"); }); + if (env.IsDevelopment()) + { + app.UseDeveloperExceptionPage(); + } + app.UseStaticFiles(); app.UseRouting(); From 726794b64d7e908863abca8178ff92f66d16dc73 Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Sun, 15 Mar 2020 21:22:49 -0700 Subject: [PATCH 428/530] 5.2.3 --- build.proj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.proj b/build.proj index bed020c77..6fca8cf9d 100644 --- a/build.proj +++ b/build.proj @@ -11,7 +11,7 @@ of patent rights can be found in the PATENTS file in the same directory. 5 2 - 2 + 3 0 http://reactjs.net/packages/ $(MSBuildProjectDirectory)\tools\MSBuildTasks From dc25c88036a62ae2459c28db8b72e9e8bb2f8967 Mon Sep 17 00:00:00 2001 From: Vishal Jagtap Date: Tue, 17 Mar 2020 18:56:17 +0530 Subject: [PATCH 429/530] Updated links (#1069) * Updated ReactJS home URL link * Updated React Native URL Link --- README.md | 2 +- site/jekyll/_posts/2014-04-04-hello-world.md | 2 +- site/jekyll/_posts/2014-09-14-1.1.2-release.md | 2 +- site/jekyll/_posts/2014-11-02-1.1.3-release.md | 2 +- site/jekyll/_posts/2015-04-13-1.5.0-release.md | 2 +- site/jekyll/index.md | 4 ++-- site/jekyll/tutorials/aspnet4.md | 2 +- site/jekyll/tutorials/aspnetcore.md | 2 +- 8 files changed, 9 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index f4935a606..e7c064464 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # [ReactJS.NET](http://reactjs.net/) -ReactJS.NET is a library that makes it easier to use [Babel](http://babeljs.io/) along with Facebook's [React](http://facebook.github.io/react/) and [JSX](http://facebook.github.io/react/docs/jsx-in-depth.html) from C#. +ReactJS.NET is a library that makes it easier to use [Babel](http://babeljs.io/) along with Facebook's [React](https://reactjs.org/) and [JSX](https://reactjs.org/docs/jsx-in-depth.html) from C#. [![Build status](https://img.shields.io/appveyor/ci/Daniel15/react-net/master.svg)](https://ci.appveyor.com/project/Daniel15/react-net/branch/master)  [![NuGet version](http://img.shields.io/nuget/v/React.Core.svg)](https://www.nuget.org/packages/React.Core/) diff --git a/site/jekyll/_posts/2014-04-04-hello-world.md b/site/jekyll/_posts/2014-04-04-hello-world.md index eed6e1d19..7478fb9e6 100644 --- a/site/jekyll/_posts/2014-04-04-hello-world.md +++ b/site/jekyll/_posts/2014-04-04-hello-world.md @@ -3,7 +3,7 @@ title: "Use React and JSX in ASP.NET MVC" layout: post author: Daniel Lo Nigro --- -*Cross-posted from [the official React blog](http://facebook.github.io/react/blog/2014/04/04/reactnet.html).* +*Cross-posted from [the official React blog](https://reactjs.org/blog/2014/04/04/reactnet.html).* ____ Today we're happy to announce the initial release of diff --git a/site/jekyll/_posts/2014-09-14-1.1.2-release.md b/site/jekyll/_posts/2014-09-14-1.1.2-release.md index f19dde050..4d8de5b48 100644 --- a/site/jekyll/_posts/2014-09-14-1.1.2-release.md +++ b/site/jekyll/_posts/2014-09-14-1.1.2-release.md @@ -7,7 +7,7 @@ author: Daniel Lo Nigro I'm happy to announce the release of ReactJS.NET 1.1.2! This is a minor release and includes a number of changes and fixes since version 1.1.1: * Error messages now contain more details, including file name, component name, line number and column number. This should make debugging a bit easier, especially if you're debugging without Visual Studio attached. ([#17](https://github.com/reactjs/React.NET/issues/17)) - * [JSX Namespacing](http://facebook.github.io/react/blog/2014/07/17/react-v0.11.html#jsx-namespacing) is now supported ([#37](https://github.com/reactjs/React.NET/issues/37)) + * [JSX Namespacing](https://reactjs.org/blog/2014/07/17/react-v0.11.html#jsx-namespacing) is now supported ([#37](https://github.com/reactjs/React.NET/issues/37)) Have fun, and as always, please feel free to send feedback or bug reports [on GitHub](https://github.com/reactjs/React.NET). diff --git a/site/jekyll/_posts/2014-11-02-1.1.3-release.md b/site/jekyll/_posts/2014-11-02-1.1.3-release.md index ae3ad9a51..0cfb0d7d5 100644 --- a/site/jekyll/_posts/2014-11-02-1.1.3-release.md +++ b/site/jekyll/_posts/2014-11-02-1.1.3-release.md @@ -6,7 +6,7 @@ author: Daniel Lo Nigro I'm happy to announce the release of ReactJS.NET 1.1.3! -In this release, the React version has been upgraded from 0.11.1 to 0.12. The main changes in this React release are that `/** @jsx React.DOM */` is no longer required at the top of your JSX files, and `React.renderComponent` is now `React.render`. A few other API methods have changed as well. [See the official announcement](http://facebook.github.io/react/blog/2014/10/28/react-v0.12.html) for more information on all the changes in this version of React. +In this release, the React version has been upgraded from 0.11.1 to 0.12. The main changes in this React release are that `/** @jsx React.DOM */` is no longer required at the top of your JSX files, and `React.renderComponent` is now `React.render`. A few other API methods have changed as well. [See the official announcement](https://reactjs.org/blog/2014/10/28/react-v0.12.html) for more information on all the changes in this version of React. ReactJS.NET 1.1.3 also adds preliminary support for using Google's V8 JavaScript engine on Windows, via Microsoft's [ClearScript](https://clearscript.codeplex.com/) project. Previously ReactJS.NET only supported V8 on Mac OS X and Linux. This should be considered beta quality, in that it works but has not been stress tested in a production environment yet (whereas the Linux implementation has been). Future releases will make the handling of JavaScript engines more efficient. diff --git a/site/jekyll/_posts/2015-04-13-1.5.0-release.md b/site/jekyll/_posts/2015-04-13-1.5.0-release.md index 82ce4a500..c98dd9e64 100644 --- a/site/jekyll/_posts/2015-04-13-1.5.0-release.md +++ b/site/jekyll/_posts/2015-04-13-1.5.0-release.md @@ -6,7 +6,7 @@ author: Daniel Lo Nigro I'm happy to announce the release of ReactJS.NET 1.5! This is a minor release and includes a number of changes and fixes since version 1.4: - * [#93](https://github.com/reactjs/React.NET/issues/93) - Upgraded React to 0.13.1. See the full [changelog on the React site](http://facebook.github.io/react/blog/2015/03/10/react-v0.13.html). + * [#93](https://github.com/reactjs/React.NET/issues/93) - Upgraded React to 0.13.1. See the full [changelog on the React site](https://reactjs.org/blog/2015/03/10/react-v0.13.html). * [#91](https://github.com/reactjs/React.NET/issues/91) - Method to load a script without transforming it. It's becoming more and more common to use external build systems (Gulp, Grunt) or bundlers (Webpack, Browserify) that handle the JSX transformation. The output of these can be loaded directly into ReactJS.NET as it's just vanilla JavaScript. `AddScriptWithoutTransform` makes loading these files more efficient by just loading them directly. * New option to disable the MSIE JavaScript engine and force use of the V8 engine. If V8 can't be initialised for whatever reason, an exception is thrown. * [#103](https://github.com/reactjs/React.NET/pull/103) - Flag for `RenderHtml` to skip server-side rendering and only render the client-side JavaScript. Useful for debugging the JavaScript in a browser. *Thanks [Justin Slattery](https://github.com/jslatts)*. diff --git a/site/jekyll/index.md b/site/jekyll/index.md index 610121f92..5b8ba666d 100644 --- a/site/jekyll/index.md +++ b/site/jekyll/index.md @@ -16,8 +16,8 @@ id: home

    ReactJS.NET makes it easier to use Facebook's - [React](http://facebook.github.io/react/) and - [JSX](http://facebook.github.io/react/docs/jsx-in-depth.html) from C# and + [React](https://reactjs.org/) and + [JSX](https://reactjs.org/docs/jsx-in-depth.html) from C# and other .NET languages, focusing specifically on ASP.NET MVC (although it also works in other environments). It supports both ASP.NET 4 (with MVC 4 or 5), and ASP.NET Core MVC. It is cross-platform and can run on Linux via Mono diff --git a/site/jekyll/tutorials/aspnet4.md b/site/jekyll/tutorials/aspnet4.md index 375d6e518..3190fc941 100644 --- a/site/jekyll/tutorials/aspnet4.md +++ b/site/jekyll/tutorials/aspnet4.md @@ -179,7 +179,7 @@ You do not have to return basic HTML. You can return a tree of components that y `ReactDOM.render()` instantiates the root component, starts the framework, and injects the markup into a raw DOM element, provided as the second argument. -The `ReactDOM` module exposes DOM-specific methods, while `React` has the core tools shared by React on different platforms (e.g., [React Native](https://facebook.github.io/react-native/)). +The `ReactDOM` module exposes DOM-specific methods, while `React` has the core tools shared by React on different platforms (e.g., [React Native](https://reactnative.dev/)). ## Composing components diff --git a/site/jekyll/tutorials/aspnetcore.md b/site/jekyll/tutorials/aspnetcore.md index 5c1478b90..3eb6b5a26 100644 --- a/site/jekyll/tutorials/aspnetcore.md +++ b/site/jekyll/tutorials/aspnetcore.md @@ -273,7 +273,7 @@ You do not have to return basic HTML. You can return a tree of components that y `ReactDOM.render()` instantiates the root component, starts the framework, and injects the markup into a raw DOM element, provided as the second argument. -The `ReactDOM` module exposes DOM-specific methods, while `React` has the core tools shared by React on different platforms (e.g., [React Native](https://facebook.github.io/react-native/)). +The `ReactDOM` module exposes DOM-specific methods, while `React` has the core tools shared by React on different platforms (e.g., [React Native](https://reactnative.dev/)). ## Composing components From b4d0ec54694bf5eb83fb99bc32cc00cf1379106d Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Thu, 19 Mar 2020 20:02:23 +0000 Subject: [PATCH 430/530] Update react monorepo to v16.13.1 --- src/React.Core/package-lock.json | 20 ++++++++++---------- src/React.Core/package.json | 4 ++-- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/React.Core/package-lock.json b/src/React.Core/package-lock.json index f723fcd91..7ef48e405 100644 --- a/src/React.Core/package-lock.json +++ b/src/React.Core/package-lock.json @@ -3474,9 +3474,9 @@ } }, "react": { - "version": "16.13.0", - "resolved": "https://registry.npmjs.org/react/-/react-16.13.0.tgz", - "integrity": "sha512-TSavZz2iSLkq5/oiE7gnFzmURKZMltmi193rm5HEoUDAXpzT9Kzw6oNZnGoai/4+fUnm7FqS5dwgUL34TujcWQ==", + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react/-/react-16.13.1.tgz", + "integrity": "sha512-YMZQQq32xHLX0bz5Mnibv1/LHb3Sqzngu7xstSM+vrkE5Kzr9xE0yMByK5kMoTK30YVJE61WfbxIFFvfeDKT1w==", "dev": true, "requires": { "loose-envify": "^1.1.0", @@ -3485,15 +3485,15 @@ } }, "react-dom": { - "version": "16.13.0", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.13.0.tgz", - "integrity": "sha512-y09d2c4cG220DzdlFkPTnVvGTszVvNpC73v+AaLGLHbkpy3SSgvYq8x0rNwPJ/Rk/CicTNgk0hbHNw1gMEZAXg==", + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.13.1.tgz", + "integrity": "sha512-81PIMmVLnCNLO/fFOQxdQkvEq/+Hfpv24XNJfpyZhTRfO0QcmQIF/PgCa1zCOj2w1hrn12MFLyaJ/G0+Mxtfag==", "dev": true, "requires": { "loose-envify": "^1.1.0", "object-assign": "^4.1.1", "prop-types": "^15.6.2", - "scheduler": "^0.19.0" + "scheduler": "^0.19.1" } }, "react-is": { @@ -3671,9 +3671,9 @@ } }, "scheduler": { - "version": "0.19.0", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.19.0.tgz", - "integrity": "sha512-xowbVaTPe9r7y7RUejcK73/j8tt2jfiyTednOvHbA8JoClvMYCp+r8QegLwK/n8zWQAtZb1fFnER4XLBZXrCxA==", + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.19.1.tgz", + "integrity": "sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA==", "dev": true, "requires": { "loose-envify": "^1.1.0", diff --git a/src/React.Core/package.json b/src/React.Core/package.json index df3a2e67b..37256fe27 100644 --- a/src/React.Core/package.json +++ b/src/React.Core/package.json @@ -9,8 +9,8 @@ "@babel/core": "7.8.7", "@babel/standalone": "7.8.8", "prop-types": "15.7.2", - "react": "16.13.0", - "react-dom": "16.13.0", + "react": "16.13.1", + "react-dom": "16.13.1", "webpack": "4.42.0", "webpack-cli": "3.3.11" } From c4fdacac4989cca3dd9a74a3a8169c60036e2273 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Fri, 20 Mar 2020 08:53:35 +0000 Subject: [PATCH 431/530] Update react monorepo to v16.13.1 --- src/React.Sample.Owin/Content/Index.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/React.Sample.Owin/Content/Index.html b/src/React.Sample.Owin/Content/Index.html index e222c6ae3..68f13d837 100644 --- a/src/React.Sample.Owin/Content/Index.html +++ b/src/React.Sample.Owin/Content/Index.html @@ -10,11 +10,11 @@

    "))); + .Select(scriptPath => $""))); } /// /// Returns style tags based on the webpack asset manifest /// /// + /// Optional IUrlHelper instance. Enables the use of tilde/relative (~/) paths inside the expose-components.js file. /// - public static IHtmlString ReactGetStylePaths(this IHtmlHelper htmlHelper) + public static IHtmlString ReactGetStylePaths(this IHtmlHelper htmlHelper, IUrlHelper urlHelper = null) { return new HtmlString(string.Join("", Environment.GetStylePaths() - .Select(stylePath => $""))); + .Select(stylePath => $""))); } private static IHtmlString RenderToString(Action withWriter) From 7e5c2abff0326e37df41a71642c080f3a0960958 Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Tue, 25 Aug 2020 21:15:32 -0700 Subject: [PATCH 498/530] 5.2.9 --- build.proj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.proj b/build.proj index f363140ed..6ca30e8ff 100644 --- a/build.proj +++ b/build.proj @@ -11,7 +11,7 @@ of patent rights can be found in the PATENTS file in the same directory. 5 2 - 8 + 9 0 http://reactjs.net/packages/ $(MSBuildProjectDirectory)\tools\MSBuildTasks From 5ae4b2ea17ddaaa1c46883eb99fe5fc663d7894b Mon Sep 17 00:00:00 2001 From: Adam Date: Thu, 3 Sep 2020 15:01:38 +0200 Subject: [PATCH 499/530] Changed "Html.ReactInitJavascript" to "Html.ReactInitJavaScript" (#1198) Struggled with this for a while, and I couldn't find a reason why "Html.ReactInitJavascript" didn't work. Saw a post on stackoverflow where "Html.ReactInitJavaScript" was used, and noticed that the S should be uppercase. --- site/jekyll/bundling/webpack.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/site/jekyll/bundling/webpack.md b/site/jekyll/bundling/webpack.md index 29b151ebb..0f39b168e 100644 --- a/site/jekyll/bundling/webpack.md +++ b/site/jekyll/bundling/webpack.md @@ -91,7 +91,7 @@ Reference the built bundle directly in a script tag at the end of the page in `_ - @Html.ReactInitJavascript() + @Html.ReactInitJavaScript() ``` @@ -121,6 +121,6 @@ Then, make calls to `@Html.ReactGetScriptPaths()` and `@Html.ReactGetStylePaths( @RenderBody() @Html.ReactGetScriptPaths() - @Html.ReactInitJavascript() + @Html.ReactInitJavaScript() ``` From a55b8c6ff05ea561c49a9b44db44c98e549a8722 Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Thu, 3 Sep 2020 18:25:07 -0700 Subject: [PATCH 500/530] Update azure-pipelines.yml Use updated sdk --- azure-pipelines.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 916c5894c..d59257036 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -19,7 +19,7 @@ steps: - task: DotNetCoreInstaller@0 inputs: packageType: 'sdk' - version: '3.1.100' + version: '3.1.401' - task: VSBuild@1 inputs: From 495a51163d9a7f6e2e586d47248fe148d93de22d Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Thu, 3 Sep 2020 18:25:47 -0700 Subject: [PATCH 501/530] Update dotnet-core-desktop.yml Use updated sdk --- .github/workflows/dotnet-core-desktop.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/dotnet-core-desktop.yml b/.github/workflows/dotnet-core-desktop.yml index 4ccca5c73..944794f7f 100644 --- a/.github/workflows/dotnet-core-desktop.yml +++ b/.github/workflows/dotnet-core-desktop.yml @@ -39,7 +39,7 @@ jobs: - name: Install .NET Core uses: actions/setup-dotnet@v1 with: - dotnet-version: 3.1.101 + dotnet-version: 3.1.401 - name: Use Node.js 12 uses: actions/setup-node@v1 From ab7bedfb7ffb7c900132f72dcd11536f554b09de Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Sun, 6 Sep 2020 17:07:40 -0700 Subject: [PATCH 502/530] Update dotnet-core-desktop.yml Maybe this will fix it? --- .github/workflows/dotnet-core-desktop.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/dotnet-core-desktop.yml b/.github/workflows/dotnet-core-desktop.yml index 944794f7f..d23eec528 100644 --- a/.github/workflows/dotnet-core-desktop.yml +++ b/.github/workflows/dotnet-core-desktop.yml @@ -39,7 +39,7 @@ jobs: - name: Install .NET Core uses: actions/setup-dotnet@v1 with: - dotnet-version: 3.1.401 + dotnet-version: 3.1.x - name: Use Node.js 12 uses: actions/setup-node@v1 From 7092ae4b89a1fe2741aceead611ceefe478bf5dc Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Sun, 6 Sep 2020 17:08:38 -0700 Subject: [PATCH 503/530] Update azure-pipelines.yml Fix SDK reference --- azure-pipelines.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index d59257036..4263d1d17 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -19,7 +19,7 @@ steps: - task: DotNetCoreInstaller@0 inputs: packageType: 'sdk' - version: '3.1.401' + version: '3.1.x' - task: VSBuild@1 inputs: From 0908329ac61634faf7ea5a40a3e73b65ecc2f3b4 Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Tue, 8 Sep 2020 10:17:28 -0700 Subject: [PATCH 504/530] Ci updates (#1202) * Azure: Try 3.1 sdk * Update azure-pipelines.yml * Target netcoreapp3.1 * Migrate to UseDotNet step * Update azure-pipelines.yml picky, picky * Fix tests --- azure-pipelines.yml | 4 +++- .../React.Tests.Benchmarks.csproj | 2 +- tests/React.Tests.Common/MemoryFileCacheCore.cs | 2 +- tests/React.Tests.Common/React.Tests.Common.csproj | 4 ++-- .../React.Tests.Integration.csproj | 2 +- tests/React.Tests/Core/MiddlewareTests.cs | 4 ++-- tests/React.Tests/Core/ReactEnvironmentTest.cs | 2 +- tests/React.Tests/React.Tests.csproj | 6 +++--- .../Router/ReactEnvironmentExtensionsTest.cs | 2 +- tests/React.Tests/Router/ReactRouterComponentTest.cs | 10 +++++----- 10 files changed, 20 insertions(+), 18 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 4263d1d17..2c176e021 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -1,5 +1,6 @@ trigger: - main + - ci-updates pool: vmImage: 'windows-2019' @@ -16,7 +17,8 @@ steps: - script: npm install --global npm - - task: DotNetCoreInstaller@0 + - task: UseDotNet@2 + displayName: 'Use .NET Core sdk' inputs: packageType: 'sdk' version: '3.1.x' diff --git a/tests/React.Tests.Benchmarks/React.Tests.Benchmarks.csproj b/tests/React.Tests.Benchmarks/React.Tests.Benchmarks.csproj index 0325e491b..6492d7fee 100644 --- a/tests/React.Tests.Benchmarks/React.Tests.Benchmarks.csproj +++ b/tests/React.Tests.Benchmarks/React.Tests.Benchmarks.csproj @@ -2,7 +2,7 @@ Exe - net461;netcoreapp2.0 + net461;netcoreapp3.1 diff --git a/tests/React.Tests.Common/MemoryFileCacheCore.cs b/tests/React.Tests.Common/MemoryFileCacheCore.cs index c170ca39a..ef0ebf75b 100644 --- a/tests/React.Tests.Common/MemoryFileCacheCore.cs +++ b/tests/React.Tests.Common/MemoryFileCacheCore.cs @@ -5,7 +5,7 @@ * LICENSE file in the root directory of this source tree. */ -#if NETCOREAPP2_0 +#if NETCOREAPP using System; using System.Collections.Generic; diff --git a/tests/React.Tests.Common/React.Tests.Common.csproj b/tests/React.Tests.Common/React.Tests.Common.csproj index d6128f105..a34e36235 100644 --- a/tests/React.Tests.Common/React.Tests.Common.csproj +++ b/tests/React.Tests.Common/React.Tests.Common.csproj @@ -1,7 +1,7 @@ - net461;netcoreapp2.0 + net461;netcoreapp3.1 false @@ -9,7 +9,7 @@ - + diff --git a/tests/React.Tests.Integration/React.Tests.Integration.csproj b/tests/React.Tests.Integration/React.Tests.Integration.csproj index e280eb605..1d28bf8c7 100644 --- a/tests/React.Tests.Integration/React.Tests.Integration.csproj +++ b/tests/React.Tests.Integration/React.Tests.Integration.csproj @@ -1,6 +1,6 @@ - net461;netcoreapp2.0 + net461;netcoreapp3.1 false diff --git a/tests/React.Tests/Core/MiddlewareTests.cs b/tests/React.Tests/Core/MiddlewareTests.cs index c6a92e797..c7ef81120 100644 --- a/tests/React.Tests/Core/MiddlewareTests.cs +++ b/tests/React.Tests/Core/MiddlewareTests.cs @@ -1,4 +1,4 @@ -#if NETCOREAPP2_0 +#if NETCOREAPP using System.Runtime.InteropServices; using Microsoft.AspNetCore.Hosting; @@ -13,7 +13,7 @@ public class MiddlewareTests [Fact] public void ForwardSlashesAreTransformed() { - var environment = new Mock(); + var environment = new Mock(); if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) { environment.Setup(x => x.WebRootPath).Returns("c:\\temp"); diff --git a/tests/React.Tests/Core/ReactEnvironmentTest.cs b/tests/React.Tests/Core/ReactEnvironmentTest.cs index 9b1242746..5ae496141 100644 --- a/tests/React.Tests/Core/ReactEnvironmentTest.cs +++ b/tests/React.Tests/Core/ReactEnvironmentTest.cs @@ -48,7 +48,7 @@ public void ExecuteWithBabelWithNoNewThread() environment.ExecuteWithBabel("foo"); mocks.Engine.Verify(x => x.CallFunction("foo"), Times.Exactly(1)); } -#if NET452 || NETCOREAPP2_0 +#if NET452 || NETCOREAPP [Fact] public void ExecuteWithBabelWithNewThread() diff --git a/tests/React.Tests/React.Tests.csproj b/tests/React.Tests/React.Tests.csproj index a93944cea..00e4990b5 100644 --- a/tests/React.Tests/React.Tests.csproj +++ b/tests/React.Tests/React.Tests.csproj @@ -4,7 +4,7 @@ Copyright 2014-Present Facebook, Inc ReactJS.NET Unit Tests Daniel Lo Nigro - net452;netcoreapp2.0 + net452;netcoreapp3.1 React.Tests ../../src/key.snk true @@ -25,11 +25,11 @@ - + - + diff --git a/tests/React.Tests/Router/ReactEnvironmentExtensionsTest.cs b/tests/React.Tests/Router/ReactEnvironmentExtensionsTest.cs index a1327f2f8..ad9bd550d 100644 --- a/tests/React.Tests/Router/ReactEnvironmentExtensionsTest.cs +++ b/tests/React.Tests/Router/ReactEnvironmentExtensionsTest.cs @@ -4,7 +4,7 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ -#if NET452 || NETCOREAPP2_0 +#if NET452 || NETCOREAPP using Moq; using Xunit; diff --git a/tests/React.Tests/Router/ReactRouterComponentTest.cs b/tests/React.Tests/Router/ReactRouterComponentTest.cs index 62f144ec8..f939eaf1d 100644 --- a/tests/React.Tests/Router/ReactRouterComponentTest.cs +++ b/tests/React.Tests/Router/ReactRouterComponentTest.cs @@ -4,7 +4,7 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ -#if NET452 || NETCOREAPP2_0 +#if NET452 || NETCOREAPP using Moq; using Xunit; @@ -39,15 +39,15 @@ public void RenderJavaScriptShouldNotIncludeContextOrPath(bool clientOnly, bool @"ReactDOM.render(React.createElement(Foo, {""hello"":""World""}), document.getElementById(""container""))", result ); - } - else + } + else { Assert.Equal( @"ReactDOM.hydrate(React.createElement(Foo, {""hello"":""World""}), document.getElementById(""container""))", result ); } - + } [Theory] @@ -76,7 +76,7 @@ public void RenderJavaScriptShouldHandleWaitForContentLoad(bool clientOnly, bool result ); } - else + else { Assert.Equal( @"window.addEventListener('DOMContentLoaded', function() {ReactDOM.hydrate(React.createElement(Foo, {""hello"":""World""}), document.getElementById(""container""))});", From 99a94a1363cb237373e6f4d5b79f5edb2ad390f6 Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Sat, 12 Sep 2020 20:53:08 -0700 Subject: [PATCH 505/530] Skip adding to _components during ReactWithInit (#1155) --- src/React.Core/IReactEnvironment.cs | 3 ++- src/React.Core/ReactEnvironment.cs | 9 +++++++-- tests/React.Tests/Core/ReactEnvironmentTest.cs | 10 ++++++++++ tests/React.Tests/Mvc/HtmlHelperExtensionsTests.cs | 10 ++++++++-- 4 files changed, 27 insertions(+), 5 deletions(-) diff --git a/src/React.Core/IReactEnvironment.cs b/src/React.Core/IReactEnvironment.cs index 2b8d0927d..a62437a5b 100644 --- a/src/React.Core/IReactEnvironment.cs +++ b/src/React.Core/IReactEnvironment.cs @@ -82,8 +82,9 @@ public interface IReactEnvironment /// ID to use for the container HTML tag. Defaults to an auto-generated ID /// True if server-side rendering will be bypassed. Defaults to false. /// True if this component only should be rendered server-side. Defaults to false. + /// Skip adding to components list, which is used during GetInitJavascript /// The component - IReactComponent CreateComponent(string componentName, T props, string containerId = null, bool clientOnly = false, bool serverOnly = false); + IReactComponent CreateComponent(string componentName, T props, string containerId = null, bool clientOnly = false, bool serverOnly = false, bool skipLazyInit = false); /// /// Adds the provided to the list of components to render client side. diff --git a/src/React.Core/ReactEnvironment.cs b/src/React.Core/ReactEnvironment.cs index 5dc043562..9ec081d40 100644 --- a/src/React.Core/ReactEnvironment.cs +++ b/src/React.Core/ReactEnvironment.cs @@ -273,8 +273,9 @@ public virtual bool HasVariable(string name) /// ID to use for the container HTML tag. Defaults to an auto-generated ID /// True if server-side rendering will be bypassed. Defaults to false. /// True if this component only should be rendered server-side. Defaults to false. + /// Skip adding to components list, which is used during GetInitJavascript /// The component - public virtual IReactComponent CreateComponent(string componentName, T props, string containerId = null, bool clientOnly = false, bool serverOnly = false) + public virtual IReactComponent CreateComponent(string componentName, T props, string containerId = null, bool clientOnly = false, bool serverOnly = false, bool skipLazyInit = false) { if (!clientOnly) { @@ -287,7 +288,11 @@ public virtual IReactComponent CreateComponent(string componentName, T props, Props = props, ServerOnly = serverOnly }; - _components.Add(component); + + if (!skipLazyInit) + { + _components.Add(component); + } return component; } diff --git a/tests/React.Tests/Core/ReactEnvironmentTest.cs b/tests/React.Tests/Core/ReactEnvironmentTest.cs index 5ae496141..69ffb234d 100644 --- a/tests/React.Tests/Core/ReactEnvironmentTest.cs +++ b/tests/React.Tests/Core/ReactEnvironmentTest.cs @@ -218,6 +218,16 @@ public void StyleTagsReturned() Assert.Equal("static/css/another-stylesheet.css", styles[1]); } + [Fact] + public void SkipLazyInit() + { + var mocks = new Mocks(); + var environment = mocks.CreateReactEnvironment(); + + environment.CreateComponent("ComponentName", new { }, skipLazyInit: true); + Assert.Equal("", environment.GetInitJavaScript()); + } + public class Mocks { public Mock Engine { get; private set; } diff --git a/tests/React.Tests/Mvc/HtmlHelperExtensionsTests.cs b/tests/React.Tests/Mvc/HtmlHelperExtensionsTests.cs index 4bdfdbace..964b26178 100644 --- a/tests/React.Tests/Mvc/HtmlHelperExtensionsTests.cs +++ b/tests/React.Tests/Mvc/HtmlHelperExtensionsTests.cs @@ -49,6 +49,7 @@ public void ReactWithInitShouldReturnHtmlAndScript() new { }, null, false, + false, false )).Returns(component.Object); @@ -109,6 +110,7 @@ public void ScriptNonceIsReturned() new { }, null, false, + false, false )).Returns(component.Object); @@ -154,6 +156,7 @@ public void EngineIsReturnedToPoolAfterRender() new { }, null, true, + false, false )).Returns(component.Object); @@ -184,6 +187,7 @@ public void ReactWithClientOnlyTrueShouldCallRenderHtmlWithTrue() new { }, null, true, + false, false )).Returns(component.Object); @@ -212,7 +216,8 @@ public void ReactWithServerOnlyTrueShouldCallRenderHtmlWithTrue() new { }, null, false, - true + true, + false )).Returns(component.Object); var result = HtmlHelperExtensions.React( @@ -250,7 +255,8 @@ public void RenderFunctionsCalledNonLazily() new { }, null, false, - true + true, + false )).Returns(component.Object); var result = HtmlHelperExtensions.React( From 3285de86b19956555ebfe9f59671054567d2e11e Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Sat, 12 Sep 2020 21:58:16 -0700 Subject: [PATCH 506/530] 5.2.10 --- build.proj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.proj b/build.proj index 6ca30e8ff..68606ceb4 100644 --- a/build.proj +++ b/build.proj @@ -11,7 +11,7 @@ of patent rights can be found in the PATENTS file in the same directory. 5 2 - 9 + 10 0 http://reactjs.net/packages/ $(MSBuildProjectDirectory)\tools\MSBuildTasks From 57c8f6e187fabcb816f9cc357e3c632d870aa31a Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Mon, 14 Sep 2020 04:33:47 +0000 Subject: [PATCH 507/530] Update React.NET packages to v5.2.10 --- src/React.Template/reactnet-vanilla/tutorial-code.csproj | 2 +- src/React.Template/reactnet-webpack/SampleApp.csproj | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/React.Template/reactnet-vanilla/tutorial-code.csproj b/src/React.Template/reactnet-vanilla/tutorial-code.csproj index e7db40c35..ae7810def 100644 --- a/src/React.Template/reactnet-vanilla/tutorial-code.csproj +++ b/src/React.Template/reactnet-vanilla/tutorial-code.csproj @@ -20,7 +20,7 @@ - + diff --git a/src/React.Template/reactnet-webpack/SampleApp.csproj b/src/React.Template/reactnet-webpack/SampleApp.csproj index c8049c268..81f0ad509 100644 --- a/src/React.Template/reactnet-webpack/SampleApp.csproj +++ b/src/React.Template/reactnet-webpack/SampleApp.csproj @@ -14,8 +14,8 @@ - - + + From 0c7f4bb1235de13fb1a190e1ab3aa840e6c6d1e8 Mon Sep 17 00:00:00 2001 From: Ryan Johnson Date: Thu, 17 Sep 2020 13:21:55 -0700 Subject: [PATCH 508/530] Fix typo in file name. (#1206) --- ...thBabelBenchmarks.cs => ComponentRenderWithBabelBenchmarks.cs} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename tests/React.Tests.Benchmarks/{ComponentRenderWIthBabelBenchmarks.cs => ComponentRenderWithBabelBenchmarks.cs} (100%) diff --git a/tests/React.Tests.Benchmarks/ComponentRenderWIthBabelBenchmarks.cs b/tests/React.Tests.Benchmarks/ComponentRenderWithBabelBenchmarks.cs similarity index 100% rename from tests/React.Tests.Benchmarks/ComponentRenderWIthBabelBenchmarks.cs rename to tests/React.Tests.Benchmarks/ComponentRenderWithBabelBenchmarks.cs From 351ee5fe10d0abe512ee2ce1d6b621e4958713ed Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Thu, 1 Oct 2020 23:16:32 +0000 Subject: [PATCH 509/530] Update dependency @types/react to v16.9.50 --- src/React.Sample.Mvc4/package-lock.json | 12 ++++++------ src/React.Sample.Mvc4/package.json | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/React.Sample.Mvc4/package-lock.json b/src/React.Sample.Mvc4/package-lock.json index eef49dc77..c0f6dac24 100644 --- a/src/React.Sample.Mvc4/package-lock.json +++ b/src/React.Sample.Mvc4/package-lock.json @@ -11,9 +11,9 @@ "dev": true }, "@types/react": { - "version": "16.9.46", - "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.46.tgz", - "integrity": "sha512-dbHzO3aAq1lB3jRQuNpuZ/mnu+CdD3H0WVaaBQA8LTT3S33xhVBUj232T8M3tAhSWJs/D/UqORYUlJNl/8VQZg==", + "version": "16.9.50", + "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.50.tgz", + "integrity": "sha512-kPx5YsNnKDJejTk1P+lqThwxN2PczrocwsvqXnjvVvKpFescoY62ZiM3TV7dH1T8lFhlHZF+PE5xUyimUwqEGA==", "dev": true, "requires": { "@types/prop-types": "*", @@ -40,9 +40,9 @@ } }, "csstype": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.2.tgz", - "integrity": "sha512-ofovWglpqoqbfLNOTBNZLSbMuGrblAf1efvvArGKOZMBrIoJeu5UsAipQolkijtyQx5MtAzT/J9IHj/CEY1mJw==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.3.tgz", + "integrity": "sha512-jPl+wbWPOWJ7SXsWyqGRk3lGecbar0Cb0OvZF/r/ZU011R4YqiRehgkQ9p4eQfo9DSDLqLL3wHwfxeJiuIsNag==", "dev": true }, "popper.js": { diff --git a/src/React.Sample.Mvc4/package.json b/src/React.Sample.Mvc4/package.json index dddedfca8..9aeab5c60 100644 --- a/src/React.Sample.Mvc4/package.json +++ b/src/React.Sample.Mvc4/package.json @@ -7,7 +7,7 @@ "lint:ts": "tsc" }, "devDependencies": { - "@types/react": "16.9.46", + "@types/react": "16.9.50", "@types/react-dom": "16.9.8", "@types/reactstrap": "8.5.1", "typescript": "3.9.7" From e4f90da4e2ee5a02687f6cdfc4eea5f298f92292 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Mon, 5 Oct 2020 18:16:07 +0000 Subject: [PATCH 510/530] Update dependency @types/react to v16.9.51 --- src/React.Sample.Mvc4/package-lock.json | 6 +++--- src/React.Sample.Mvc4/package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/React.Sample.Mvc4/package-lock.json b/src/React.Sample.Mvc4/package-lock.json index c0f6dac24..4fe6652c3 100644 --- a/src/React.Sample.Mvc4/package-lock.json +++ b/src/React.Sample.Mvc4/package-lock.json @@ -11,9 +11,9 @@ "dev": true }, "@types/react": { - "version": "16.9.50", - "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.50.tgz", - "integrity": "sha512-kPx5YsNnKDJejTk1P+lqThwxN2PczrocwsvqXnjvVvKpFescoY62ZiM3TV7dH1T8lFhlHZF+PE5xUyimUwqEGA==", + "version": "16.9.51", + "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.51.tgz", + "integrity": "sha512-lQa12IyO+DMlnSZ3+AGHRUiUcpK47aakMMoBG8f7HGxJT8Yfe+WE128HIXaHOHVPReAW0oDS3KAI0JI2DDe1PQ==", "dev": true, "requires": { "@types/prop-types": "*", diff --git a/src/React.Sample.Mvc4/package.json b/src/React.Sample.Mvc4/package.json index 9aeab5c60..ee5669841 100644 --- a/src/React.Sample.Mvc4/package.json +++ b/src/React.Sample.Mvc4/package.json @@ -7,7 +7,7 @@ "lint:ts": "tsc" }, "devDependencies": { - "@types/react": "16.9.50", + "@types/react": "16.9.51", "@types/react-dom": "16.9.8", "@types/reactstrap": "8.5.1", "typescript": "3.9.7" From 9f901b7cb502b5017f0b02421d793e21e80313ca Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Sun, 11 Oct 2020 14:34:32 +0000 Subject: [PATCH 511/530] Update dependency @types/react to v16.9.52 --- src/React.Sample.Mvc4/package-lock.json | 6 +++--- src/React.Sample.Mvc4/package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/React.Sample.Mvc4/package-lock.json b/src/React.Sample.Mvc4/package-lock.json index 4fe6652c3..4c77fc320 100644 --- a/src/React.Sample.Mvc4/package-lock.json +++ b/src/React.Sample.Mvc4/package-lock.json @@ -11,9 +11,9 @@ "dev": true }, "@types/react": { - "version": "16.9.51", - "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.51.tgz", - "integrity": "sha512-lQa12IyO+DMlnSZ3+AGHRUiUcpK47aakMMoBG8f7HGxJT8Yfe+WE128HIXaHOHVPReAW0oDS3KAI0JI2DDe1PQ==", + "version": "16.9.52", + "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.52.tgz", + "integrity": "sha512-EHRjmnxiNivwhGdMh9sz1Yw9AUxTSZFxKqdBWAAzyZx3sufWwx6ogqHYh/WB1m/I4ZpjkoZLExF5QTy2ekVi/Q==", "dev": true, "requires": { "@types/prop-types": "*", diff --git a/src/React.Sample.Mvc4/package.json b/src/React.Sample.Mvc4/package.json index ee5669841..6091016e4 100644 --- a/src/React.Sample.Mvc4/package.json +++ b/src/React.Sample.Mvc4/package.json @@ -7,7 +7,7 @@ "lint:ts": "tsc" }, "devDependencies": { - "@types/react": "16.9.51", + "@types/react": "16.9.52", "@types/react-dom": "16.9.8", "@types/reactstrap": "8.5.1", "typescript": "3.9.7" From 0217d301f58c81519618271baad97d2c8f05eaa7 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Fri, 16 Oct 2020 19:00:02 +0000 Subject: [PATCH 512/530] Update dependency @types/react to v16.9.53 --- src/React.Sample.Mvc4/package-lock.json | 6 +++--- src/React.Sample.Mvc4/package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/React.Sample.Mvc4/package-lock.json b/src/React.Sample.Mvc4/package-lock.json index 4c77fc320..c7ad8b1a4 100644 --- a/src/React.Sample.Mvc4/package-lock.json +++ b/src/React.Sample.Mvc4/package-lock.json @@ -11,9 +11,9 @@ "dev": true }, "@types/react": { - "version": "16.9.52", - "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.52.tgz", - "integrity": "sha512-EHRjmnxiNivwhGdMh9sz1Yw9AUxTSZFxKqdBWAAzyZx3sufWwx6ogqHYh/WB1m/I4ZpjkoZLExF5QTy2ekVi/Q==", + "version": "16.9.53", + "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.53.tgz", + "integrity": "sha512-4nW60Sd4L7+WMXH1D6jCdVftuW7j4Za6zdp6tJ33Rqv0nk1ZAmQKML9ZLD4H0dehA3FZxXR/GM8gXplf82oNGw==", "dev": true, "requires": { "@types/prop-types": "*", diff --git a/src/React.Sample.Mvc4/package.json b/src/React.Sample.Mvc4/package.json index 6091016e4..1dd59e8ed 100644 --- a/src/React.Sample.Mvc4/package.json +++ b/src/React.Sample.Mvc4/package.json @@ -7,7 +7,7 @@ "lint:ts": "tsc" }, "devDependencies": { - "@types/react": "16.9.52", + "@types/react": "16.9.53", "@types/react-dom": "16.9.8", "@types/reactstrap": "8.5.1", "typescript": "3.9.7" From 2746df6a5d232bcce3d731da23ca7afe76611156 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Fri, 23 Oct 2020 06:46:53 +0000 Subject: [PATCH 513/530] Update dependency @types/reactstrap to v8.5.2 --- src/React.Sample.Mvc4/package-lock.json | 6 +++--- src/React.Sample.Mvc4/package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/React.Sample.Mvc4/package-lock.json b/src/React.Sample.Mvc4/package-lock.json index c7ad8b1a4..483e007a0 100644 --- a/src/React.Sample.Mvc4/package-lock.json +++ b/src/React.Sample.Mvc4/package-lock.json @@ -30,9 +30,9 @@ } }, "@types/reactstrap": { - "version": "8.5.1", - "resolved": "https://registry.npmjs.org/@types/reactstrap/-/reactstrap-8.5.1.tgz", - "integrity": "sha512-oEedcEGoX8EqDymsjrjzTnmaf3FuDY9qKLZMA9cH1ZkkqBc2V4i2sJ6ssXEod+GHQ5XH2r52uvbMkjEkjEZHDQ==", + "version": "8.5.2", + "resolved": "https://registry.npmjs.org/@types/reactstrap/-/reactstrap-8.5.2.tgz", + "integrity": "sha512-rmY0YTIivt8nbF9imjqTenuA7QtRwMKT+foETEs96LQhYhsVUeoUCnZiuTipdTa7dRGuXYFMQD7W3XWP3U1WTA==", "dev": true, "requires": { "@types/react": "*", diff --git a/src/React.Sample.Mvc4/package.json b/src/React.Sample.Mvc4/package.json index 1dd59e8ed..6b5daae3f 100644 --- a/src/React.Sample.Mvc4/package.json +++ b/src/React.Sample.Mvc4/package.json @@ -9,7 +9,7 @@ "devDependencies": { "@types/react": "16.9.53", "@types/react-dom": "16.9.8", - "@types/reactstrap": "8.5.1", + "@types/reactstrap": "8.5.2", "typescript": "3.9.7" } } From 2c9ab122c923dff30d5d974f65dd89af0b0e56f4 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Tue, 27 Oct 2020 19:45:56 +0000 Subject: [PATCH 514/530] Update dependency @types/react-dom to v16.9.9 --- src/React.Sample.Mvc4/package-lock.json | 6 +++--- src/React.Sample.Mvc4/package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/React.Sample.Mvc4/package-lock.json b/src/React.Sample.Mvc4/package-lock.json index 483e007a0..769cf1829 100644 --- a/src/React.Sample.Mvc4/package-lock.json +++ b/src/React.Sample.Mvc4/package-lock.json @@ -21,9 +21,9 @@ } }, "@types/react-dom": { - "version": "16.9.8", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-16.9.8.tgz", - "integrity": "sha512-ykkPQ+5nFknnlU6lDd947WbQ6TE3NNzbQAkInC2EKY1qeYdTKp7onFusmYZb+ityzx2YviqT6BXSu+LyWWJwcA==", + "version": "16.9.9", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-16.9.9.tgz", + "integrity": "sha512-jE16FNWO3Logq/Lf+yvEAjKzhpST/Eac8EMd1i4dgZdMczfgqC8EjpxwNgEe3SExHYLliabXDh9DEhhqnlXJhg==", "dev": true, "requires": { "@types/react": "*" diff --git a/src/React.Sample.Mvc4/package.json b/src/React.Sample.Mvc4/package.json index 6b5daae3f..c4c224ddb 100644 --- a/src/React.Sample.Mvc4/package.json +++ b/src/React.Sample.Mvc4/package.json @@ -8,7 +8,7 @@ }, "devDependencies": { "@types/react": "16.9.53", - "@types/react-dom": "16.9.8", + "@types/react-dom": "16.9.9", "@types/reactstrap": "8.5.2", "typescript": "3.9.7" } From 275dc078e045df726d9fa42f1c7ac8b5b074c545 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Tue, 27 Oct 2020 20:50:18 +0000 Subject: [PATCH 515/530] Update dependency @types/react to v16.9.54 --- src/React.Sample.Mvc4/package-lock.json | 12 ++++++------ src/React.Sample.Mvc4/package.json | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/React.Sample.Mvc4/package-lock.json b/src/React.Sample.Mvc4/package-lock.json index 769cf1829..b1e62c565 100644 --- a/src/React.Sample.Mvc4/package-lock.json +++ b/src/React.Sample.Mvc4/package-lock.json @@ -11,9 +11,9 @@ "dev": true }, "@types/react": { - "version": "16.9.53", - "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.53.tgz", - "integrity": "sha512-4nW60Sd4L7+WMXH1D6jCdVftuW7j4Za6zdp6tJ33Rqv0nk1ZAmQKML9ZLD4H0dehA3FZxXR/GM8gXplf82oNGw==", + "version": "16.9.54", + "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.54.tgz", + "integrity": "sha512-GhawhYraQZpGFO2hVMArjPrYbnA/6+DS8SubK8IPhhVClmKqANihsRenOm5E0mvqK0m/BKoqVktA1O1+Xvlz9w==", "dev": true, "requires": { "@types/prop-types": "*", @@ -40,9 +40,9 @@ } }, "csstype": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.3.tgz", - "integrity": "sha512-jPl+wbWPOWJ7SXsWyqGRk3lGecbar0Cb0OvZF/r/ZU011R4YqiRehgkQ9p4eQfo9DSDLqLL3wHwfxeJiuIsNag==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.4.tgz", + "integrity": "sha512-xc8DUsCLmjvCfoD7LTGE0ou2MIWLx0K9RCZwSHMOdynqRsP4MtUcLeqh1HcQ2dInwDTqn+3CE0/FZh1et+p4jA==", "dev": true }, "popper.js": { diff --git a/src/React.Sample.Mvc4/package.json b/src/React.Sample.Mvc4/package.json index c4c224ddb..014f26402 100644 --- a/src/React.Sample.Mvc4/package.json +++ b/src/React.Sample.Mvc4/package.json @@ -7,7 +7,7 @@ "lint:ts": "tsc" }, "devDependencies": { - "@types/react": "16.9.53", + "@types/react": "16.9.54", "@types/react-dom": "16.9.9", "@types/reactstrap": "8.5.2", "typescript": "3.9.7" From 7a022bd0713a30fcad12d802e48fdae86ce0849c Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Wed, 28 Oct 2020 19:16:23 +0000 Subject: [PATCH 516/530] Update dependency @types/react to v16.9.55 --- src/React.Sample.Mvc4/package-lock.json | 6 +++--- src/React.Sample.Mvc4/package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/React.Sample.Mvc4/package-lock.json b/src/React.Sample.Mvc4/package-lock.json index b1e62c565..cbee6ba9f 100644 --- a/src/React.Sample.Mvc4/package-lock.json +++ b/src/React.Sample.Mvc4/package-lock.json @@ -11,9 +11,9 @@ "dev": true }, "@types/react": { - "version": "16.9.54", - "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.54.tgz", - "integrity": "sha512-GhawhYraQZpGFO2hVMArjPrYbnA/6+DS8SubK8IPhhVClmKqANihsRenOm5E0mvqK0m/BKoqVktA1O1+Xvlz9w==", + "version": "16.9.55", + "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.55.tgz", + "integrity": "sha512-6KLe6lkILeRwyyy7yG9rULKJ0sXplUsl98MGoCfpteXf9sPWFWWMknDcsvubcpaTdBuxtsLF6HDUwdApZL/xIg==", "dev": true, "requires": { "@types/prop-types": "*", diff --git a/src/React.Sample.Mvc4/package.json b/src/React.Sample.Mvc4/package.json index 014f26402..263950f78 100644 --- a/src/React.Sample.Mvc4/package.json +++ b/src/React.Sample.Mvc4/package.json @@ -7,7 +7,7 @@ "lint:ts": "tsc" }, "devDependencies": { - "@types/react": "16.9.54", + "@types/react": "16.9.55", "@types/react-dom": "16.9.9", "@types/reactstrap": "8.5.2", "typescript": "3.9.7" From 844ed84d067c6f66c292b4c630ba7e7de8c92ae3 Mon Sep 17 00:00:00 2001 From: Svante Seleborg Date: Thu, 29 Oct 2020 06:53:16 +0100 Subject: [PATCH 517/530] Avoid the exception during Dispose by only calling SetObject() when there is a HttpContext (#1219) --- src/React.Web/TinyIoCAspNetExtensions.cs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/React.Web/TinyIoCAspNetExtensions.cs b/src/React.Web/TinyIoCAspNetExtensions.cs index 303749461..584b93f9d 100644 --- a/src/React.Web/TinyIoCAspNetExtensions.cs +++ b/src/React.Web/TinyIoCAspNetExtensions.cs @@ -63,9 +63,10 @@ public void ReleaseObject() var item = GetObject() as IDisposable; if (item != null) + { item.Dispose(); - - SetObject(null); + SetObject(null); + } } /// From 751012117318f5b0115069cad721c8384a67617a Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Thu, 29 Oct 2020 11:37:51 -0400 Subject: [PATCH 518/530] 5.2.11 --- build.proj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.proj b/build.proj index 68606ceb4..f702ce175 100644 --- a/build.proj +++ b/build.proj @@ -11,7 +11,7 @@ of patent rights can be found in the PATENTS file in the same directory. 5 2 - 10 + 11 0 http://reactjs.net/packages/ $(MSBuildProjectDirectory)\tools\MSBuildTasks From 862b0f4954f91628b9d70da7d71c5c167572bb3f Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Thu, 29 Oct 2020 16:28:16 +0000 Subject: [PATCH 519/530] Update React.NET packages to v5.2.11 --- src/React.Template/reactnet-vanilla/tutorial-code.csproj | 2 +- src/React.Template/reactnet-webpack/SampleApp.csproj | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/React.Template/reactnet-vanilla/tutorial-code.csproj b/src/React.Template/reactnet-vanilla/tutorial-code.csproj index ae7810def..26f0680f3 100644 --- a/src/React.Template/reactnet-vanilla/tutorial-code.csproj +++ b/src/React.Template/reactnet-vanilla/tutorial-code.csproj @@ -20,7 +20,7 @@ - + diff --git a/src/React.Template/reactnet-webpack/SampleApp.csproj b/src/React.Template/reactnet-webpack/SampleApp.csproj index 81f0ad509..e2675751f 100644 --- a/src/React.Template/reactnet-webpack/SampleApp.csproj +++ b/src/React.Template/reactnet-webpack/SampleApp.csproj @@ -14,8 +14,8 @@ - - + + From 0aeb70dfaafb84852c565c1a3c042fb0e59e9603 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Mon, 2 Nov 2020 18:08:22 +0000 Subject: [PATCH 520/530] Update dependency @types/reactstrap to v8.5.3 --- src/React.Sample.Mvc4/package-lock.json | 6 +++--- src/React.Sample.Mvc4/package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/React.Sample.Mvc4/package-lock.json b/src/React.Sample.Mvc4/package-lock.json index cbee6ba9f..368a105d8 100644 --- a/src/React.Sample.Mvc4/package-lock.json +++ b/src/React.Sample.Mvc4/package-lock.json @@ -30,9 +30,9 @@ } }, "@types/reactstrap": { - "version": "8.5.2", - "resolved": "https://registry.npmjs.org/@types/reactstrap/-/reactstrap-8.5.2.tgz", - "integrity": "sha512-rmY0YTIivt8nbF9imjqTenuA7QtRwMKT+foETEs96LQhYhsVUeoUCnZiuTipdTa7dRGuXYFMQD7W3XWP3U1WTA==", + "version": "8.5.3", + "resolved": "https://registry.npmjs.org/@types/reactstrap/-/reactstrap-8.5.3.tgz", + "integrity": "sha512-B7okIEXUGUL5Ai1vZyqyz6FmILZQUYCK5RABcVY8Mxj94JrFaRlSPmZx4NTIarX+8jhQ3I1ItR5+/LdpE5c4Uw==", "dev": true, "requires": { "@types/react": "*", diff --git a/src/React.Sample.Mvc4/package.json b/src/React.Sample.Mvc4/package.json index 263950f78..557032a9d 100644 --- a/src/React.Sample.Mvc4/package.json +++ b/src/React.Sample.Mvc4/package.json @@ -9,7 +9,7 @@ "devDependencies": { "@types/react": "16.9.55", "@types/react-dom": "16.9.9", - "@types/reactstrap": "8.5.2", + "@types/reactstrap": "8.5.3", "typescript": "3.9.7" } } From 54e0a96b9340f549b433be750f60fdb0200ddaa2 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Fri, 6 Nov 2020 08:47:19 +0000 Subject: [PATCH 521/530] Update dependency @types/react to v16.9.56 --- src/React.Sample.Mvc4/package-lock.json | 6 +++--- src/React.Sample.Mvc4/package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/React.Sample.Mvc4/package-lock.json b/src/React.Sample.Mvc4/package-lock.json index 368a105d8..b2ba51d45 100644 --- a/src/React.Sample.Mvc4/package-lock.json +++ b/src/React.Sample.Mvc4/package-lock.json @@ -11,9 +11,9 @@ "dev": true }, "@types/react": { - "version": "16.9.55", - "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.55.tgz", - "integrity": "sha512-6KLe6lkILeRwyyy7yG9rULKJ0sXplUsl98MGoCfpteXf9sPWFWWMknDcsvubcpaTdBuxtsLF6HDUwdApZL/xIg==", + "version": "16.9.56", + "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.56.tgz", + "integrity": "sha512-gIkl4J44G/qxbuC6r2Xh+D3CGZpJ+NdWTItAPmZbR5mUS+JQ8Zvzpl0ea5qT/ZT3ZNTUcDKUVqV3xBE8wv/DyQ==", "dev": true, "requires": { "@types/prop-types": "*", diff --git a/src/React.Sample.Mvc4/package.json b/src/React.Sample.Mvc4/package.json index 557032a9d..eb41f628c 100644 --- a/src/React.Sample.Mvc4/package.json +++ b/src/React.Sample.Mvc4/package.json @@ -7,7 +7,7 @@ "lint:ts": "tsc" }, "devDependencies": { - "@types/react": "16.9.55", + "@types/react": "16.9.56", "@types/react-dom": "16.9.9", "@types/reactstrap": "8.5.3", "typescript": "3.9.7" From 23222435667e33714363806bd2bb72bf5b4cd5e6 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Mon, 9 Nov 2020 20:42:09 +0000 Subject: [PATCH 522/530] Update dependency Microsoft.NET.Sdk.Functions to v1.0.38 --- webhooks/React.Site.Hooks.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/webhooks/React.Site.Hooks.csproj b/webhooks/React.Site.Hooks.csproj index 3edeb7d52..fd9214a09 100644 --- a/webhooks/React.Site.Hooks.csproj +++ b/webhooks/React.Site.Hooks.csproj @@ -3,7 +3,7 @@ net461 - + From ebb05bae7285c605e749304297025fa0218ca365 Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Mon, 23 Nov 2020 16:32:04 -0500 Subject: [PATCH 523/530] Revert "Port banner and grayscale filter from reactjs.org (#1115)" This reverts commit febf1a408606afb21180010b1d07a0e38f3eb7d3. --- site/jekyll/_assets/stylesheets/react.scss | 15 ++------------- site/jekyll/_layouts/default.html | 5 +---- 2 files changed, 3 insertions(+), 17 deletions(-) diff --git a/site/jekyll/_assets/stylesheets/react.scss b/site/jekyll/_assets/stylesheets/react.scss index e87a01ccd..36ea1f560 100644 --- a/site/jekyll/_assets/stylesheets/react.scss +++ b/site/jekyll/_assets/stylesheets/react.scss @@ -52,17 +52,6 @@ html { background: $pageBg; } -.grayscale { - filter:grayscale(100%); - -webkit-filter:grayscale(100%); -} - -.top-banner { - font-size: 20px; - height: 60px; - text-align: center; - padding: 20px; -} .left { @@ -75,7 +64,7 @@ html { .container { - padding-top: 110px; + padding-top: $navHeight; min-width: $contentWidth + (2 * $contentPadding); } @@ -131,7 +120,7 @@ h1, h2, h3, h4, h5, h6 { color: $lightTextColor; position: fixed; top: 0; - height: 110px; + height: $navHeight; box-shadow: 0 0 5px rgba(0, 0, 0, .5); width: 100%; z-index: 100; diff --git a/site/jekyll/_layouts/default.html b/site/jekyll/_layouts/default.html index d25d19995..d59c8b506 100644 --- a/site/jekyll/_layouts/default.html +++ b/site/jekyll/_layouts/default.html @@ -37,8 +37,7 @@