From 961e6961ed0df977e830176d4d52614534b11404 Mon Sep 17 00:00:00 2001 From: Alan Dipert Date: Wed, 12 Dec 2018 15:53:32 -0800 Subject: [PATCH 01/77] reacttools: Added R constructor and JS runtime, comments. --- DESCRIPTION | 3 +- NAMESPACE | 2 ++ R/dependencies.R | 16 +++++++++ R/reacttools.R | 19 +++++++++++ inst/www/react-tools/react-tools.js | 51 +++++++++++++++++++++++++++++ man/component.Rd | 16 +++++++++ man/html_dependency_reacttools.Rd | 11 +++++++ 7 files changed, 117 insertions(+), 1 deletion(-) create mode 100644 R/reacttools.R create mode 100644 inst/www/react-tools/react-tools.js create mode 100644 man/component.Rd create mode 100644 man/html_dependency_reacttools.Rd diff --git a/DESCRIPTION b/DESCRIPTION index 4bf8d99..48f071d 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -24,6 +24,7 @@ URL: https://github.com/timelyportfolio/reactR BugReports: https://github.com/timelyportfolio/reactR/issues License: MIT + file LICENSE LazyData: TRUE +Encoding: UTF-8 Imports: htmltools Suggests: @@ -32,5 +33,5 @@ Suggests: shiny, V8, knitr -RoxygenNote: 6.0.1 +RoxygenNote: 6.1.1 VignetteBuilder: knitr diff --git a/NAMESPACE b/NAMESPACE index d4330e3..a09d73c 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -1,6 +1,8 @@ # Generated by roxygen2: do not edit by hand export(babel_transform) +export(component) export(html_dependency_corejs) export(html_dependency_react) +export(html_dependency_reacttools) importFrom(htmltools,htmlDependency) diff --git a/R/dependencies.R b/R/dependencies.R index f9b8f69..91349ce 100644 --- a/R/dependencies.R +++ b/R/dependencies.R @@ -70,3 +70,19 @@ html_dependency_corejs <- function() { script = "shim.min.js" ) } + +#' Adds window.reactR.exposeComponents and window.reactR.hydrate +#' +#' @return +#' @export +#' +#' @examples +html_dependency_reacttools <- function(){ + htmltools::htmlDependency( + name = "reactwidget", + src = "www/react-tools", + version = "1.0.0", + package = "reactR", + script = c("react-tools.js") + ) +} diff --git a/R/reacttools.R b/R/reacttools.R new file mode 100644 index 0000000..248d4c4 --- /dev/null +++ b/R/reacttools.R @@ -0,0 +1,19 @@ +isUpper <- function(s) { + grepl("^[[:upper:]]+$", s) +} + +#' Create a React component represented by an htmltools \code{\link[htmltools]{tag}}. +#' +#' @param name Name of the React component, which must start with an upper-case character. +#' @param ... Attributes and children of the element to pass along to \code{\link[htmltools]{tag}} as varArgs. +#' +#' @return +#' @export +#' +#' @examples +component <- function(name, ...) { + if (length(name) == 0 || !isUpper(substring(name, 1, 1))) { + stop("Component name must be specified and start with an upper case character") + } + htmltools::tag(name, list(...)) +} diff --git a/inst/www/react-tools/react-tools.js b/inst/www/react-tools/react-tools.js new file mode 100644 index 0000000..b0229a9 --- /dev/null +++ b/inst/www/react-tools/react-tools.js @@ -0,0 +1,51 @@ +window.reactR = (function () { + /** + * Recursively transforms tag, a JSON representation of an instance of a + * React component and its children, into a React element suitable for + * passing to ReactDOM.render. + * @param {Object} components + * @param {Object} tag + */ + function hydrate(components, tag) { + if (tag.name[0] !== tag.name[0].toUpperCase()) { + throw new Error("Component does not begin with a capital letter: " + tag.name); + } + if (!components.hasOwnProperty(tag.name)) { + throw new Error("Unknown component: " + tag.name); + } + var args = [components[tag.name], tag.attribs]; + for (var i = 0; i < tag.children.length; i++) { + args.push(hydrate(components, tag.children[i])); + } + return React.createElement.apply(null, args); + } + + /** + * Creates an HTMLWidget that is updated by rendering a React component. + * React component constructors are made available by specifying them by + * name in the components object. + * @param {string} name + * @param {string} type + * @param {Object} components + */ + function exposeComponents(name, type, components) { + HTMLWidgets.widget({ + name: name, + type: type, + factory: function (el, width, height) { + return { + renderValue: (function (value) { + ReactDOM.render(hydrate(components, value.tag), el); + }), + resize: function (width, height) { + // TODO: What should happen here? + } + }; + } + }) + } + + return { + exposeComponents: exposeComponents + }; +})() \ No newline at end of file diff --git a/man/component.Rd b/man/component.Rd new file mode 100644 index 0000000..fadfd9e --- /dev/null +++ b/man/component.Rd @@ -0,0 +1,16 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/reacttools.R +\name{component} +\alias{component} +\title{Create a React component represented by an htmltools \code{\link[htmltools]{tag}}.} +\usage{ +component(name, ...) +} +\arguments{ +\item{name}{Name of the React component, which must start with an upper-case character.} + +\item{...}{Attributes and children of the element to pass along to \code{\link[htmltools]{tag}} as varArgs.} +} +\description{ +Create a React component represented by an htmltools \code{\link[htmltools]{tag}}. +} diff --git a/man/html_dependency_reacttools.Rd b/man/html_dependency_reacttools.Rd new file mode 100644 index 0000000..0c7b390 --- /dev/null +++ b/man/html_dependency_reacttools.Rd @@ -0,0 +1,11 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/dependencies.R +\name{html_dependency_reacttools} +\alias{html_dependency_reacttools} +\title{Adds window.reactR.exposeComponents and window.reactR.hydrate} +\usage{ +html_dependency_reacttools() +} +\description{ +Adds window.reactR.exposeComponents and window.reactR.hydrate +} From 438ea9064443746887df862689dd6e4af64c9384 Mon Sep 17 00:00:00 2001 From: Alan Dipert Date: Wed, 12 Dec 2018 23:33:25 -0800 Subject: [PATCH 02/77] Added sparklines example with README and Windows-compat build --- examples/sparklineswidget/.Rbuildignore | 2 + examples/sparklineswidget/.gitignore | 5 + examples/sparklineswidget/DESCRIPTION | 9 + examples/sparklineswidget/Makefile | 34 + examples/sparklineswidget/NAMESPACE | 2 + .../sparklineswidget/R/sparklineswidget.R | 52 + examples/sparklineswidget/README.md | 40 + .../build/sparklineswidget.js | 11 + .../inst/htmlwidgets/sparklineswidget.js | 2237 +++++++++++ .../inst/htmlwidgets/sparklineswidget.yaml | 7 + examples/sparklineswidget/package.json | 15 + .../sparklineswidget/sparklineswidget.Rproj | 16 + .../srcjs/sparklineswidget.js | 3 + examples/sparklineswidget/yarn.lock | 3325 +++++++++++++++++ 14 files changed, 5758 insertions(+) create mode 100644 examples/sparklineswidget/.Rbuildignore create mode 100644 examples/sparklineswidget/.gitignore create mode 100644 examples/sparklineswidget/DESCRIPTION create mode 100644 examples/sparklineswidget/Makefile create mode 100644 examples/sparklineswidget/NAMESPACE create mode 100644 examples/sparklineswidget/R/sparklineswidget.R create mode 100644 examples/sparklineswidget/README.md create mode 100644 examples/sparklineswidget/build/sparklineswidget.js create mode 100644 examples/sparklineswidget/inst/htmlwidgets/sparklineswidget.js create mode 100644 examples/sparklineswidget/inst/htmlwidgets/sparklineswidget.yaml create mode 100644 examples/sparklineswidget/package.json create mode 100644 examples/sparklineswidget/sparklineswidget.Rproj create mode 100644 examples/sparklineswidget/srcjs/sparklineswidget.js create mode 100644 examples/sparklineswidget/yarn.lock diff --git a/examples/sparklineswidget/.Rbuildignore b/examples/sparklineswidget/.Rbuildignore new file mode 100644 index 0000000..1549efe --- /dev/null +++ b/examples/sparklineswidget/.Rbuildignore @@ -0,0 +1,2 @@ +^sparklineswidget\.Rproj$ +^\.Rproj\.user$ diff --git a/examples/sparklineswidget/.gitignore b/examples/sparklineswidget/.gitignore new file mode 100644 index 0000000..ed9a001 --- /dev/null +++ b/examples/sparklineswidget/.gitignore @@ -0,0 +1,5 @@ +.Rproj.user +.Rhistory +.RData +build/ +node_modules/ diff --git a/examples/sparklineswidget/DESCRIPTION b/examples/sparklineswidget/DESCRIPTION new file mode 100644 index 0000000..b0b75bd --- /dev/null +++ b/examples/sparklineswidget/DESCRIPTION @@ -0,0 +1,9 @@ +Package: sparklineswidget +Title: What the Package Does (one line, title case) +Version: 0.0.0.9000 +Authors@R: person("First", "Last", email = "first.last@example.com", role = c("aut", "cre")) +Description: What the package does (one paragraph). +Depends: R (>= 3.5.1) +License: What license is it under? +Encoding: UTF-8 +LazyData: true diff --git a/examples/sparklineswidget/Makefile b/examples/sparklineswidget/Makefile new file mode 100644 index 0000000..d34f358 --- /dev/null +++ b/examples/sparklineswidget/Makefile @@ -0,0 +1,34 @@ +ifeq ($(OS),Windows_NT) +BABEL=$(shell npm.cmd bin)/babel.cmd +BROWSERIFY=$(shell npm.cmd bin)/browserify.cmd +else +BABEL=$(shell npm bin)/babel +BROWSERIFY=$(shell npm bin)/browserify +endif + +MODULES=$(addprefix ./srcjs/,sparklineswidget.js) +BUILT_MODULES=$(MODULES:./srcjs/%=./build/%) + +LIBDIR=./inst/htmlwidgets + +.PHONY: all clean + +all: $(LIBDIR)/sparklineswidget.js + +clean: + rm -rf build + +build/%.js: srcjs/%.js + @mkdir -p build + $(BABEL) --source-maps inline --presets env,react $^ -o $@ + +# Trick browserify +node_modules/react.js: + echo "module.exports=window.React" > node_modules/react.js + +# Trick browserify +node_modules/react-dom.js: + echo "module.exports=window.ReactDOM" > node_modules/react-dom.js + +$(LIBDIR)/sparklineswidget.js: node_modules/react.js node_modules/react-dom.js build/sparklineswidget.js + $(BROWSERIFY) --debug $(BUILT_MODULES:%=-r %) $^ -o $@ diff --git a/examples/sparklineswidget/NAMESPACE b/examples/sparklineswidget/NAMESPACE new file mode 100644 index 0000000..884a631 --- /dev/null +++ b/examples/sparklineswidget/NAMESPACE @@ -0,0 +1,2 @@ +# Generated by roxygen2: fake comment so roxygen2 overwrites silently. +exportPattern("^[^\\.]") diff --git a/examples/sparklineswidget/R/sparklineswidget.R b/examples/sparklineswidget/R/sparklineswidget.R new file mode 100644 index 0000000..75355be --- /dev/null +++ b/examples/sparklineswidget/R/sparklineswidget.R @@ -0,0 +1,52 @@ +#' +#' +#' +#' +#' @import htmlwidgets +#' +#' @export +sparklineswidget <- function(message, width = NULL, height = NULL, elementId = NULL) { + + # forward options using x + x = list( + message = message + ) + + # create widget + htmlwidgets::createWidget( + name = 'sparklineswidget', + x, + width = width, + height = height, + package = 'sparklineswidget', + elementId = elementId + ) +} + +#' Shiny bindings for sparklineswidget +#' +#' Output and render functions for using sparklineswidget within Shiny +#' applications and interactive Rmd documents. +#' +#' @param outputId output variable to read from +#' @param width,height Must be a valid CSS unit (like \code{'100\%'}, +#' \code{'400px'}, \code{'auto'}) or a number, which will be coerced to a +#' string and have \code{'px'} appended. +#' @param expr An expression that generates a sparklineswidget +#' @param env The environment in which to evaluate \code{expr}. +#' @param quoted Is \code{expr} a quoted expression (with \code{quote()})? This +#' is useful if you want to save an expression in a variable. +#' +#' @name sparklineswidget-shiny +#' +#' @export +sparklineswidgetOutput <- function(outputId, width = '100%', height = '400px'){ + htmlwidgets::shinyWidgetOutput(outputId, 'sparklineswidget', width, height, package = 'sparklineswidget') +} + +#' @rdname sparklineswidget-shiny +#' @export +renderSparklineswidget <- function(expr, env = parent.frame(), quoted = FALSE) { + if (!quoted) { expr <- substitute(expr) } # force quoted + htmlwidgets::shinyRenderWidget(expr, sparklineswidgetOutput, env, quoted = TRUE) +} diff --git a/examples/sparklineswidget/README.md b/examples/sparklineswidget/README.md new file mode 100644 index 0000000..f68baf3 --- /dev/null +++ b/examples/sparklineswidget/README.md @@ -0,0 +1,40 @@ +# react-sparklines HTMLWidget + +This project demonstrates creating an [htmlwidget](https://www.htmlwidgets.org/) around the [react-sparklines](http://borisyankov.github.io/react-sparklines/) library. + +A [Makefile](Makefile) is used to orchestrate building the Javascript implementation of the widget. The Javascript implementation file is [sparklineswidget.js](inst/htmlwidgets/sparklineswidget.js). + +[Babel](https://babeljs.io/) is used to compile `sparklineswidget.js` into a Javascript file that should work in most modern browsers including IE11. [browserify](http://browserify.org/) is used to package the `react-sparklines` dependency from npm into the compiled Javascript. + +# Building + +Because this package includes Javascript source code that requires a compilation step, package installation is in two phases: Javascript tools build the Javascript, and the usual R tools build and install the package. The R package includes the built Javascript assets. + +## Javascript Build Requirements + +Building Javascript should work on macOS, Linux, and Windows. The following tools are necessary regardless of your platform: + +- [Node.js](https://nodejs.org/en/) +- [Yarn](https://yarnpkg.com/en/) +- GNU Make: On macOS by default and installed easily on most Linux distributions. On Windows, consider using [chocolately](https://chocolatey.org/packages/make) + +After you've installed Node.js and Yarn, run the following command to resolve dependencies: + +``` +yarn install +``` + +Now, run `make` to build `inst/htmlwidgets/sparklineswidget.js`: + +``` +make +``` + +Now that the Javascript is built, you can install the R package: + +``` +devtools::document() +devtools::install() +``` + +Finally you can try the example app by running [app.R](app.R). diff --git a/examples/sparklineswidget/build/sparklineswidget.js b/examples/sparklineswidget/build/sparklineswidget.js new file mode 100644 index 0000000..ba8055b --- /dev/null +++ b/examples/sparklineswidget/build/sparklineswidget.js @@ -0,0 +1,11 @@ +'use strict'; + +var _reactSparklines = require('react-sparklines'); + +var SparklinesComponents = _interopRequireWildcard(_reactSparklines); + +function _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; } } + +reactR.exposeComponents('reactsparklines', 'output', SparklinesComponents); + +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyY2pzL3NwYXJrbGluZXN3aWRnZXQuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQTs7SUFBWSxvQjs7OztBQUVaLE9BQU8sZ0JBQVAsQ0FBd0IsaUJBQXhCLEVBQTJDLFFBQTNDLEVBQXFELG9CQUFyRCIsImZpbGUiOiJzcGFya2xpbmVzd2lkZ2V0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgU3BhcmtsaW5lc0NvbXBvbmVudHMgZnJvbSAncmVhY3Qtc3BhcmtsaW5lcyc7XHJcblxyXG5yZWFjdFIuZXhwb3NlQ29tcG9uZW50cygncmVhY3RzcGFya2xpbmVzJywgJ291dHB1dCcsIFNwYXJrbGluZXNDb21wb25lbnRzKTtcclxuIl19 \ No newline at end of file diff --git a/examples/sparklineswidget/inst/htmlwidgets/sparklineswidget.js b/examples/sparklineswidget/inst/htmlwidgets/sparklineswidget.js new file mode 100644 index 0000000..970f928 --- /dev/null +++ b/examples/sparklineswidget/inst/htmlwidgets/sparklineswidget.js @@ -0,0 +1,2237 @@ +require=(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i 1) { + for (var i = 1; i < arguments.length; i++) { + args[i - 1] = arguments[i]; + } + } + queue.push(new Item(fun, args)); + if (queue.length === 1 && !draining) { + runTimeout(drainQueue); + } +}; + +// v8 likes predictible objects +function Item(fun, array) { + this.fun = fun; + this.array = array; +} +Item.prototype.run = function () { + this.fun.apply(null, this.array); +}; +process.title = 'browser'; +process.browser = true; +process.env = {}; +process.argv = []; +process.version = ''; // empty string to avoid regexp issues +process.versions = {}; + +function noop() {} + +process.on = noop; +process.addListener = noop; +process.once = noop; +process.off = noop; +process.removeListener = noop; +process.removeAllListeners = noop; +process.emit = noop; +process.prependListener = noop; +process.prependOnceListener = noop; + +process.listeners = function (name) { return [] } + +process.binding = function (name) { + throw new Error('process.binding is not supported'); +}; + +process.cwd = function () { return '/' }; +process.chdir = function (dir) { + throw new Error('process.chdir is not supported'); +}; +process.umask = function() { return 0; }; + + +/***/ }), +/* 3 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +exports.default = function (data) { + return data.reduce(function (a, b) { + return a + b; + }) / data.length; +}; + +/***/ }), +/* 4 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +/** + * Copyright (c) 2013-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. + * + * + */ + +function makeEmptyFunction(arg) { + return function () { + return arg; + }; +} + +/** + * This function accepts and discards inputs; it has no side effects. This is + * primarily useful idiomatically for overridable function endpoints which + * always need to be callable, since JS lacks a null-call idiom ala Cocoa. + */ +var emptyFunction = function emptyFunction() {}; + +emptyFunction.thatReturns = makeEmptyFunction; +emptyFunction.thatReturnsFalse = makeEmptyFunction(false); +emptyFunction.thatReturnsTrue = makeEmptyFunction(true); +emptyFunction.thatReturnsNull = makeEmptyFunction(null); +emptyFunction.thatReturnsThis = function () { + return this; +}; +emptyFunction.thatReturnsArgument = function (arg) { + return arg; +}; + +module.exports = emptyFunction; + +/***/ }), +/* 5 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) {/** + * Copyright (c) 2013-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. + * + */ + + + +/** + * Use invariant() to assert state which your program assumes to be true. + * + * Provide sprintf-style format (only %s is supported) and arguments + * to provide information about what broke and what you were + * expecting. + * + * The invariant message will be stripped in production, but the invariant + * will remain to ensure logic does not differ in production. + */ + +var validateFormat = function validateFormat(format) {}; + +if (process.env.NODE_ENV !== 'production') { + validateFormat = function validateFormat(format) { + if (format === undefined) { + throw new Error('invariant requires an error message argument'); + } + }; +} + +function invariant(condition, format, a, b, c, d, e, f) { + validateFormat(format); + + if (!condition) { + var error; + if (format === undefined) { + error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.'); + } else { + var args = [a, b, c, d, e, f]; + var argIndex = 0; + error = new Error(format.replace(/%s/g, function () { + return args[argIndex++]; + })); + error.name = 'Invariant Violation'; + } + + error.framesToPop = 1; // we don't care about invariant's own frame + throw error; + } +} + +module.exports = invariant; +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(2))) + +/***/ }), +/* 6 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/** + * Copyright 2013-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. + */ + + + +var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED'; + +module.exports = ReactPropTypesSecret; + + +/***/ }), +/* 7 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +exports.default = function (data) { + return Math.min.apply(Math, data); +}; + +/***/ }), +/* 8 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) {/** + * Copyright 2014-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 emptyFunction = __webpack_require__(4); + +/** + * Similar to invariant but only logs a warning if the condition is not met. + * This can be used to log issues in development environments in critical + * paths. Removing the logging code for production environments will keep the + * same logic and follow the same code paths. + */ + +var warning = emptyFunction; + +if (process.env.NODE_ENV !== 'production') { + var printWarning = function printWarning(format) { + for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { + args[_key - 1] = arguments[_key]; + } + + var argIndex = 0; + var message = 'Warning: ' + format.replace(/%s/g, function () { + return args[argIndex++]; + }); + if (typeof console !== 'undefined') { + console.error(message); + } + try { + // --- Welcome to debugging React --- + // This error was thrown as a convenience so that you can use this stack + // to find the callsite that caused this warning to fire. + throw new Error(message); + } catch (x) {} + }; + + warning = function warning(condition, format) { + if (format === undefined) { + throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument'); + } + + if (format.indexOf('Failed Composite propType: ') === 0) { + return; // Ignore CompositeComponent proptype check. + } + + if (!condition) { + for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) { + args[_key2 - 2] = arguments[_key2]; + } + + printWarning.apply(undefined, [format].concat(args)); + } + }; +} + +module.exports = warning; +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(2))) + +/***/ }), +/* 9 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +exports.default = function (data) { + return Math.max.apply(Math, data); +}; + +/***/ }), +/* 10 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _mean = __webpack_require__(3); + +var _mean2 = _interopRequireDefault(_mean); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +exports.default = function (data) { + var dataMean = (0, _mean2.default)(data); + var sqDiff = data.map(function (n) { + return Math.pow(n - dataMean, 2); + }); + var avgSqDiff = (0, _mean2.default)(sqDiff); + return Math.sqrt(avgSqDiff); +}; + +/***/ }), +/* 11 */ +/***/ (function(module, exports, __webpack_require__) { + +module.exports = __webpack_require__(12); + + +/***/ }), +/* 12 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +module.exports = __webpack_require__(13); + +/***/ }), +/* 13 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.SparklinesText = exports.SparklinesNormalBand = exports.SparklinesReferenceLine = exports.SparklinesSpots = exports.SparklinesBars = exports.SparklinesCurve = exports.SparklinesLine = exports.Sparklines = undefined; + +var _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; }; }(); + +var _propTypes = __webpack_require__(0); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _react = __webpack_require__(1); + +var _react2 = _interopRequireDefault(_react); + +var _SparklinesText = __webpack_require__(17); + +var _SparklinesText2 = _interopRequireDefault(_SparklinesText); + +var _SparklinesLine = __webpack_require__(18); + +var _SparklinesLine2 = _interopRequireDefault(_SparklinesLine); + +var _SparklinesCurve = __webpack_require__(19); + +var _SparklinesCurve2 = _interopRequireDefault(_SparklinesCurve); + +var _SparklinesBars = __webpack_require__(20); + +var _SparklinesBars2 = _interopRequireDefault(_SparklinesBars); + +var _SparklinesSpots = __webpack_require__(21); + +var _SparklinesSpots2 = _interopRequireDefault(_SparklinesSpots); + +var _SparklinesReferenceLine = __webpack_require__(22); + +var _SparklinesReferenceLine2 = _interopRequireDefault(_SparklinesReferenceLine); + +var _SparklinesNormalBand = __webpack_require__(27); + +var _SparklinesNormalBand2 = _interopRequireDefault(_SparklinesNormalBand); + +var _dataToPoints = __webpack_require__(28); + +var _dataToPoints2 = _interopRequireDefault(_dataToPoints); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var Sparklines = function (_PureComponent) { + _inherits(Sparklines, _PureComponent); + + function Sparklines(props) { + _classCallCheck(this, Sparklines); + + return _possibleConstructorReturn(this, (Sparklines.__proto__ || Object.getPrototypeOf(Sparklines)).call(this, props)); + } + + _createClass(Sparklines, [{ + key: 'render', + value: function render() { + var _props = this.props, + data = _props.data, + limit = _props.limit, + width = _props.width, + height = _props.height, + svgWidth = _props.svgWidth, + svgHeight = _props.svgHeight, + preserveAspectRatio = _props.preserveAspectRatio, + margin = _props.margin, + style = _props.style, + max = _props.max, + min = _props.min; + + + if (data.length === 0) return null; + + var points = (0, _dataToPoints2.default)({ data: data, limit: limit, width: width, height: height, margin: margin, max: max, min: min }); + + var svgOpts = { style: style, viewBox: '0 0 ' + width + ' ' + height, preserveAspectRatio: preserveAspectRatio }; + if (svgWidth > 0) svgOpts.width = svgWidth; + if (svgHeight > 0) svgOpts.height = svgHeight; + + return _react2.default.createElement( + 'svg', + svgOpts, + _react2.default.Children.map(this.props.children, function (child) { + return _react2.default.cloneElement(child, { data: data, points: points, width: width, height: height, margin: margin }); + }) + ); + } + }]); + + return Sparklines; +}(_react.PureComponent); + +Sparklines.propTypes = { + data: _propTypes2.default.array, + limit: _propTypes2.default.number, + width: _propTypes2.default.number, + height: _propTypes2.default.number, + svgWidth: _propTypes2.default.number, + svgHeight: _propTypes2.default.number, + preserveAspectRatio: _propTypes2.default.string, + margin: _propTypes2.default.number, + style: _propTypes2.default.object, + min: _propTypes2.default.number, + max: _propTypes2.default.number, + onMouseMove: _propTypes2.default.func +}; +Sparklines.defaultProps = { + data: [], + width: 240, + height: 60, + //Scale the graphic content of the given element non-uniformly if necessary such that the element's bounding box exactly matches the viewport rectangle. + preserveAspectRatio: 'none', //https://www.w3.org/TR/SVG/coords.html#PreserveAspectRatioAttribute + margin: 2 +}; +exports.Sparklines = Sparklines; +exports.SparklinesLine = _SparklinesLine2.default; +exports.SparklinesCurve = _SparklinesCurve2.default; +exports.SparklinesBars = _SparklinesBars2.default; +exports.SparklinesSpots = _SparklinesSpots2.default; +exports.SparklinesReferenceLine = _SparklinesReferenceLine2.default; +exports.SparklinesNormalBand = _SparklinesNormalBand2.default; +exports.SparklinesText = _SparklinesText2.default; + +/***/ }), +/* 14 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) {/** + * Copyright 2013-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. + */ + + + +var emptyFunction = __webpack_require__(4); +var invariant = __webpack_require__(5); +var warning = __webpack_require__(8); + +var ReactPropTypesSecret = __webpack_require__(6); +var checkPropTypes = __webpack_require__(15); + +module.exports = function(isValidElement, throwOnDirectAccess) { + /* global Symbol */ + var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator; + var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec. + + /** + * Returns the iterator method function contained on the iterable object. + * + * Be sure to invoke the function with the iterable as context: + * + * var iteratorFn = getIteratorFn(myIterable); + * if (iteratorFn) { + * var iterator = iteratorFn.call(myIterable); + * ... + * } + * + * @param {?object} maybeIterable + * @return {?function} + */ + function getIteratorFn(maybeIterable) { + var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]); + if (typeof iteratorFn === 'function') { + return iteratorFn; + } + } + + /** + * Collection of methods that allow declaration and validation of props that are + * supplied to React components. Example usage: + * + * var Props = require('ReactPropTypes'); + * var MyArticle = React.createClass({ + * propTypes: { + * // An optional string prop named "description". + * description: Props.string, + * + * // A required enum prop named "category". + * category: Props.oneOf(['News','Photos']).isRequired, + * + * // A prop named "dialog" that requires an instance of Dialog. + * dialog: Props.instanceOf(Dialog).isRequired + * }, + * render: function() { ... } + * }); + * + * A more formal specification of how these methods are used: + * + * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...) + * decl := ReactPropTypes.{type}(.isRequired)? + * + * Each and every declaration produces a function with the same signature. This + * allows the creation of custom validation functions. For example: + * + * var MyLink = React.createClass({ + * propTypes: { + * // An optional string or URI prop named "href". + * href: function(props, propName, componentName) { + * var propValue = props[propName]; + * if (propValue != null && typeof propValue !== 'string' && + * !(propValue instanceof URI)) { + * return new Error( + * 'Expected a string or an URI for ' + propName + ' in ' + + * componentName + * ); + * } + * } + * }, + * render: function() {...} + * }); + * + * @internal + */ + + var ANONYMOUS = '<>'; + + // Important! + // Keep this list in sync with production version in `./factoryWithThrowingShims.js`. + var ReactPropTypes = { + array: createPrimitiveTypeChecker('array'), + bool: createPrimitiveTypeChecker('boolean'), + func: createPrimitiveTypeChecker('function'), + number: createPrimitiveTypeChecker('number'), + object: createPrimitiveTypeChecker('object'), + string: createPrimitiveTypeChecker('string'), + symbol: createPrimitiveTypeChecker('symbol'), + + any: createAnyTypeChecker(), + arrayOf: createArrayOfTypeChecker, + element: createElementTypeChecker(), + instanceOf: createInstanceTypeChecker, + node: createNodeChecker(), + objectOf: createObjectOfTypeChecker, + oneOf: createEnumTypeChecker, + oneOfType: createUnionTypeChecker, + shape: createShapeTypeChecker + }; + + /** + * inlined Object.is polyfill to avoid requiring consumers ship their own + * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is + */ + /*eslint-disable no-self-compare*/ + function is(x, y) { + // SameValue algorithm + if (x === y) { + // Steps 1-5, 7-10 + // Steps 6.b-6.e: +0 != -0 + return x !== 0 || 1 / x === 1 / y; + } else { + // Step 6.a: NaN == NaN + return x !== x && y !== y; + } + } + /*eslint-enable no-self-compare*/ + + /** + * We use an Error-like object for backward compatibility as people may call + * PropTypes directly and inspect their output. However, we don't use real + * Errors anymore. We don't inspect their stack anyway, and creating them + * is prohibitively expensive if they are created too often, such as what + * happens in oneOfType() for any type before the one that matched. + */ + function PropTypeError(message) { + this.message = message; + this.stack = ''; + } + // Make `instanceof Error` still work for returned errors. + PropTypeError.prototype = Error.prototype; + + function createChainableTypeChecker(validate) { + if (process.env.NODE_ENV !== 'production') { + var manualPropTypeCallCache = {}; + var manualPropTypeWarningCount = 0; + } + function checkType(isRequired, props, propName, componentName, location, propFullName, secret) { + componentName = componentName || ANONYMOUS; + propFullName = propFullName || propName; + + if (secret !== ReactPropTypesSecret) { + if (throwOnDirectAccess) { + // New behavior only for users of `prop-types` package + invariant( + false, + 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' + + 'Use `PropTypes.checkPropTypes()` to call them. ' + + 'Read more at http://fb.me/use-check-prop-types' + ); + } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') { + // Old behavior for people using React.PropTypes + var cacheKey = componentName + ':' + propName; + if ( + !manualPropTypeCallCache[cacheKey] && + // Avoid spamming the console because they are often not actionable except for lib authors + manualPropTypeWarningCount < 3 + ) { + warning( + false, + 'You are manually calling a React.PropTypes validation ' + + 'function for the `%s` prop on `%s`. This is deprecated ' + + 'and will throw in the standalone `prop-types` package. ' + + 'You may be seeing this warning due to a third-party PropTypes ' + + 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.', + propFullName, + componentName + ); + manualPropTypeCallCache[cacheKey] = true; + manualPropTypeWarningCount++; + } + } + } + if (props[propName] == null) { + if (isRequired) { + if (props[propName] === null) { + return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.')); + } + return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.')); + } + return null; + } else { + return validate(props, propName, componentName, location, propFullName); + } + } + + var chainedCheckType = checkType.bind(null, false); + chainedCheckType.isRequired = checkType.bind(null, true); + + return chainedCheckType; + } + + function createPrimitiveTypeChecker(expectedType) { + function validate(props, propName, componentName, location, propFullName, secret) { + var propValue = props[propName]; + var propType = getPropType(propValue); + if (propType !== expectedType) { + // `propValue` being instance of, say, date/regexp, pass the 'object' + // check, but we can offer a more precise error message here rather than + // 'of type `object`'. + var preciseType = getPreciseType(propValue); + + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.')); + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createAnyTypeChecker() { + return createChainableTypeChecker(emptyFunction.thatReturnsNull); + } + + function createArrayOfTypeChecker(typeChecker) { + function validate(props, propName, componentName, location, propFullName) { + if (typeof typeChecker !== 'function') { + return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.'); + } + var propValue = props[propName]; + if (!Array.isArray(propValue)) { + var propType = getPropType(propValue); + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.')); + } + for (var i = 0; i < propValue.length; i++) { + var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret); + if (error instanceof Error) { + return error; + } + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createElementTypeChecker() { + function validate(props, propName, componentName, location, propFullName) { + var propValue = props[propName]; + if (!isValidElement(propValue)) { + var propType = getPropType(propValue); + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.')); + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createInstanceTypeChecker(expectedClass) { + function validate(props, propName, componentName, location, propFullName) { + if (!(props[propName] instanceof expectedClass)) { + var expectedClassName = expectedClass.name || ANONYMOUS; + var actualClassName = getClassName(props[propName]); + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.')); + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createEnumTypeChecker(expectedValues) { + if (!Array.isArray(expectedValues)) { + process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOf, expected an instance of array.') : void 0; + return emptyFunction.thatReturnsNull; + } + + function validate(props, propName, componentName, location, propFullName) { + var propValue = props[propName]; + for (var i = 0; i < expectedValues.length; i++) { + if (is(propValue, expectedValues[i])) { + return null; + } + } + + var valuesString = JSON.stringify(expectedValues); + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.')); + } + return createChainableTypeChecker(validate); + } + + function createObjectOfTypeChecker(typeChecker) { + function validate(props, propName, componentName, location, propFullName) { + if (typeof typeChecker !== 'function') { + return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.'); + } + var propValue = props[propName]; + var propType = getPropType(propValue); + if (propType !== 'object') { + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.')); + } + for (var key in propValue) { + if (propValue.hasOwnProperty(key)) { + var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret); + if (error instanceof Error) { + return error; + } + } + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createUnionTypeChecker(arrayOfTypeCheckers) { + if (!Array.isArray(arrayOfTypeCheckers)) { + process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOfType, expected an instance of array.') : void 0; + return emptyFunction.thatReturnsNull; + } + + for (var i = 0; i < arrayOfTypeCheckers.length; i++) { + var checker = arrayOfTypeCheckers[i]; + if (typeof checker !== 'function') { + warning( + false, + 'Invalid argument supplid to oneOfType. Expected an array of check functions, but ' + + 'received %s at index %s.', + getPostfixForTypeWarning(checker), + i + ); + return emptyFunction.thatReturnsNull; + } + } + + function validate(props, propName, componentName, location, propFullName) { + for (var i = 0; i < arrayOfTypeCheckers.length; i++) { + var checker = arrayOfTypeCheckers[i]; + if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) { + return null; + } + } + + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.')); + } + return createChainableTypeChecker(validate); + } + + function createNodeChecker() { + function validate(props, propName, componentName, location, propFullName) { + if (!isNode(props[propName])) { + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.')); + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createShapeTypeChecker(shapeTypes) { + function validate(props, propName, componentName, location, propFullName) { + var propValue = props[propName]; + var propType = getPropType(propValue); + if (propType !== 'object') { + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.')); + } + for (var key in shapeTypes) { + var checker = shapeTypes[key]; + if (!checker) { + continue; + } + var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret); + if (error) { + return error; + } + } + return null; + } + return createChainableTypeChecker(validate); + } + + function isNode(propValue) { + switch (typeof propValue) { + case 'number': + case 'string': + case 'undefined': + return true; + case 'boolean': + return !propValue; + case 'object': + if (Array.isArray(propValue)) { + return propValue.every(isNode); + } + if (propValue === null || isValidElement(propValue)) { + return true; + } + + var iteratorFn = getIteratorFn(propValue); + if (iteratorFn) { + var iterator = iteratorFn.call(propValue); + var step; + if (iteratorFn !== propValue.entries) { + while (!(step = iterator.next()).done) { + if (!isNode(step.value)) { + return false; + } + } + } else { + // Iterator will provide entry [k,v] tuples rather than values. + while (!(step = iterator.next()).done) { + var entry = step.value; + if (entry) { + if (!isNode(entry[1])) { + return false; + } + } + } + } + } else { + return false; + } + + return true; + default: + return false; + } + } + + function isSymbol(propType, propValue) { + // Native Symbol. + if (propType === 'symbol') { + return true; + } + + // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol' + if (propValue['@@toStringTag'] === 'Symbol') { + return true; + } + + // Fallback for non-spec compliant Symbols which are polyfilled. + if (typeof Symbol === 'function' && propValue instanceof Symbol) { + return true; + } + + return false; + } + + // Equivalent of `typeof` but with special handling for array and regexp. + function getPropType(propValue) { + var propType = typeof propValue; + if (Array.isArray(propValue)) { + return 'array'; + } + if (propValue instanceof RegExp) { + // Old webkits (at least until Android 4.0) return 'function' rather than + // 'object' for typeof a RegExp. We'll normalize this here so that /bla/ + // passes PropTypes.object. + return 'object'; + } + if (isSymbol(propType, propValue)) { + return 'symbol'; + } + return propType; + } + + // This handles more types than `getPropType`. Only used for error messages. + // See `createPrimitiveTypeChecker`. + function getPreciseType(propValue) { + if (typeof propValue === 'undefined' || propValue === null) { + return '' + propValue; + } + var propType = getPropType(propValue); + if (propType === 'object') { + if (propValue instanceof Date) { + return 'date'; + } else if (propValue instanceof RegExp) { + return 'regexp'; + } + } + return propType; + } + + // Returns a string that is postfixed to a warning about an invalid type. + // For example, "undefined" or "of type array" + function getPostfixForTypeWarning(value) { + var type = getPreciseType(value); + switch (type) { + case 'array': + case 'object': + return 'an ' + type; + case 'boolean': + case 'date': + case 'regexp': + return 'a ' + type; + default: + return type; + } + } + + // Returns class name of the object, if any. + function getClassName(propValue) { + if (!propValue.constructor || !propValue.constructor.name) { + return ANONYMOUS; + } + return propValue.constructor.name; + } + + ReactPropTypes.checkPropTypes = checkPropTypes; + ReactPropTypes.PropTypes = ReactPropTypes; + + return ReactPropTypes; +}; + +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(2))) + +/***/ }), +/* 15 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(process) {/** + * Copyright 2013-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 (process.env.NODE_ENV !== 'production') { + var invariant = __webpack_require__(5); + var warning = __webpack_require__(8); + var ReactPropTypesSecret = __webpack_require__(6); + var loggedTypeFailures = {}; +} + +/** + * Assert that the values match with the type specs. + * Error messages are memorized and will only be shown once. + * + * @param {object} typeSpecs Map of name to a ReactPropType + * @param {object} values Runtime values that need to be type-checked + * @param {string} location e.g. "prop", "context", "child context" + * @param {string} componentName Name of the component for error messages. + * @param {?Function} getStack Returns the component stack. + * @private + */ +function checkPropTypes(typeSpecs, values, location, componentName, getStack) { + if (process.env.NODE_ENV !== 'production') { + for (var typeSpecName in typeSpecs) { + if (typeSpecs.hasOwnProperty(typeSpecName)) { + var error; + // Prop type validation may throw. In case they do, we don't want to + // fail the render phase where it didn't fail before. So we log it. + // After these have been cleaned up, we'll let them throw. + try { + // This is intentionally an invariant that gets caught. It's the same + // behavior as without this statement except with a better message. + invariant(typeof typeSpecs[typeSpecName] === 'function', '%s: %s type `%s` is invalid; it must be a function, usually from ' + 'React.PropTypes.', componentName || 'React class', location, typeSpecName); + error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret); + } catch (ex) { + error = ex; + } + 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); + if (error instanceof Error && !(error.message in loggedTypeFailures)) { + // Only monitor this failure once because there tends to be a lot of the + // same error. + loggedTypeFailures[error.message] = true; + + var stack = getStack ? getStack() : ''; + + warning(false, 'Failed %s type: %s%s', location, error.message, stack != null ? stack : ''); + } + } + } + } +} + +module.exports = checkPropTypes; + +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(2))) + +/***/ }), +/* 16 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/** + * Copyright 2013-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. + */ + + + +var emptyFunction = __webpack_require__(4); +var invariant = __webpack_require__(5); +var ReactPropTypesSecret = __webpack_require__(6); + +module.exports = function() { + function shim(props, propName, componentName, location, propFullName, secret) { + if (secret === ReactPropTypesSecret) { + // It is still safe when called from React. + return; + } + invariant( + false, + 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' + + 'Use PropTypes.checkPropTypes() to call them. ' + + 'Read more at http://fb.me/use-check-prop-types' + ); + }; + shim.isRequired = shim; + function getShim() { + return shim; + }; + // Important! + // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`. + var ReactPropTypes = { + array: shim, + bool: shim, + func: shim, + number: shim, + object: shim, + string: shim, + symbol: shim, + + any: shim, + arrayOf: getShim, + element: shim, + instanceOf: getShim, + node: shim, + objectOf: getShim, + oneOf: getShim, + oneOfType: getShim, + shape: getShim + }; + + ReactPropTypes.checkPropTypes = emptyFunction; + ReactPropTypes.PropTypes = ReactPropTypes; + + return ReactPropTypes; +}; + + +/***/ }), +/* 17 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _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; }; }(); + +var _propTypes = __webpack_require__(0); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _react = __webpack_require__(1); + +var _react2 = _interopRequireDefault(_react); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var SparklinesText = function (_React$Component) { + _inherits(SparklinesText, _React$Component); + + function SparklinesText() { + _classCallCheck(this, SparklinesText); + + return _possibleConstructorReturn(this, (SparklinesText.__proto__ || Object.getPrototypeOf(SparklinesText)).apply(this, arguments)); + } + + _createClass(SparklinesText, [{ + key: 'render', + value: function render() { + var _props = this.props, + point = _props.point, + text = _props.text, + fontSize = _props.fontSize, + fontFamily = _props.fontFamily; + var x = point.x, + y = point.y; + + return _react2.default.createElement( + 'g', + null, + _react2.default.createElement( + 'text', + { x: x, y: y, fontFamily: fontFamily || "Verdana", fontSize: fontSize || 10 }, + text + ) + ); + } + }]); + + return SparklinesText; +}(_react2.default.Component); + +SparklinesText.propTypes = { + text: _propTypes2.default.string, + point: _propTypes2.default.object, + fontSize: _propTypes2.default.number, + fontFamily: _propTypes2.default.string +}; +SparklinesText.defaultProps = { + text: '', + point: { x: 0, y: 0 } +}; +exports.default = SparklinesText; + +/***/ }), +/* 18 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _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; }; }(); + +var _propTypes = __webpack_require__(0); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _react = __webpack_require__(1); + +var _react2 = _interopRequireDefault(_react); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var SparklinesLine = function (_React$Component) { + _inherits(SparklinesLine, _React$Component); + + function SparklinesLine() { + _classCallCheck(this, SparklinesLine); + + return _possibleConstructorReturn(this, (SparklinesLine.__proto__ || Object.getPrototypeOf(SparklinesLine)).apply(this, arguments)); + } + + _createClass(SparklinesLine, [{ + key: 'render', + value: function render() { + var _props = this.props, + data = _props.data, + points = _props.points, + width = _props.width, + height = _props.height, + margin = _props.margin, + color = _props.color, + style = _props.style, + onMouseMove = _props.onMouseMove; + + + var linePoints = points.map(function (p) { + return [p.x, p.y]; + }).reduce(function (a, b) { + return a.concat(b); + }); + + var closePolyPoints = [points[points.length - 1].x, height - margin, margin, height - margin, margin, points[0].y]; + + var fillPoints = linePoints.concat(closePolyPoints); + + var lineStyle = { + stroke: color || style.stroke || 'slategray', + strokeWidth: style.strokeWidth || '1', + strokeLinejoin: style.strokeLinejoin || 'round', + strokeLinecap: style.strokeLinecap || 'round', + fill: 'none' + }; + var fillStyle = { + stroke: style.stroke || 'none', + strokeWidth: '0', + fillOpacity: style.fillOpacity || '.1', + fill: style.fill || color || 'slategray', + pointerEvents: 'auto' + }; + + var tooltips = points.map(function (p, i) { + return _react2.default.createElement('circle', { + key: i, + cx: p.x, + cy: p.y, + r: 2, + style: fillStyle, + onMouseEnter: function onMouseEnter(e) { + return onMouseMove('enter', data[i], p); + }, + onClick: function onClick(e) { + return onMouseMove('click', data[i], p); + } + }); + }); + + return _react2.default.createElement( + 'g', + null, + tooltips, + _react2.default.createElement('polyline', { points: fillPoints.join(' '), style: fillStyle }), + _react2.default.createElement('polyline', { points: linePoints.join(' '), style: lineStyle }) + ); + } + }]); + + return SparklinesLine; +}(_react2.default.Component); + +SparklinesLine.propTypes = { + color: _propTypes2.default.string, + style: _propTypes2.default.object +}; +SparklinesLine.defaultProps = { + style: {}, + onMouseMove: function onMouseMove() {} +}; +exports.default = SparklinesLine; + +/***/ }), +/* 19 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _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; }; }(); + +var _propTypes = __webpack_require__(0); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _react = __webpack_require__(1); + +var _react2 = _interopRequireDefault(_react); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var SparklinesCurve = function (_React$Component) { + _inherits(SparklinesCurve, _React$Component); + + function SparklinesCurve() { + _classCallCheck(this, SparklinesCurve); + + return _possibleConstructorReturn(this, (SparklinesCurve.__proto__ || Object.getPrototypeOf(SparklinesCurve)).apply(this, arguments)); + } + + _createClass(SparklinesCurve, [{ + key: 'render', + value: function render() { + var _props = this.props, + points = _props.points, + width = _props.width, + height = _props.height, + margin = _props.margin, + color = _props.color, + style = _props.style, + _props$divisor = _props.divisor, + divisor = _props$divisor === undefined ? 0.25 : _props$divisor; + + var prev = void 0; + var curve = function curve(p) { + var res = void 0; + if (!prev) { + res = [p.x, p.y]; + } else { + var len = (p.x - prev.x) * divisor; + res = ["C", + //x1 + prev.x + len, + //y1 + prev.y, + //x2, + p.x - len, + //y2, + p.y, + //x, + p.x, + //y + p.y]; + } + prev = p; + return res; + }; + var linePoints = points.map(function (p) { + return curve(p); + }).reduce(function (a, b) { + return a.concat(b); + }); + var closePolyPoints = ["L" + points[points.length - 1].x, height - margin, margin, height - margin, margin, points[0].y]; + var fillPoints = linePoints.concat(closePolyPoints); + + var lineStyle = { + stroke: color || style.stroke || 'slategray', + strokeWidth: style.strokeWidth || '1', + strokeLinejoin: style.strokeLinejoin || 'round', + strokeLinecap: style.strokeLinecap || 'round', + fill: 'none' + }; + var fillStyle = { + stroke: style.stroke || 'none', + strokeWidth: '0', + fillOpacity: style.fillOpacity || '.1', + fill: style.fill || color || 'slategray' + }; + + return _react2.default.createElement( + 'g', + null, + _react2.default.createElement('path', { d: "M" + fillPoints.join(' '), style: fillStyle }), + _react2.default.createElement('path', { d: "M" + linePoints.join(' '), style: lineStyle }) + ); + } + }]); + + return SparklinesCurve; +}(_react2.default.Component); + +SparklinesCurve.propTypes = { + color: _propTypes2.default.string, + style: _propTypes2.default.object +}; +SparklinesCurve.defaultProps = { + style: {} +}; +exports.default = SparklinesCurve; + +/***/ }), +/* 20 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _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; }; }(); + +var _propTypes = __webpack_require__(0); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _react = __webpack_require__(1); + +var _react2 = _interopRequireDefault(_react); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var SparklinesBars = function (_React$Component) { + _inherits(SparklinesBars, _React$Component); + + function SparklinesBars() { + _classCallCheck(this, SparklinesBars); + + return _possibleConstructorReturn(this, (SparklinesBars.__proto__ || Object.getPrototypeOf(SparklinesBars)).apply(this, arguments)); + } + + _createClass(SparklinesBars, [{ + key: 'render', + value: function render() { + var _this2 = this; + + var _props = this.props, + points = _props.points, + height = _props.height, + style = _props.style, + barWidth = _props.barWidth, + margin = _props.margin, + onMouseMove = _props.onMouseMove; + + var strokeWidth = 1 * (style && style.strokeWidth || 0); + var marginWidth = margin ? 2 * margin : 0; + var width = barWidth || (points && points.length >= 2 ? Math.max(0, points[1].x - points[0].x - strokeWidth - marginWidth) : 0); + + return _react2.default.createElement( + 'g', + { transform: 'scale(1,-1)' }, + points.map(function (p, i) { + return _react2.default.createElement('rect', { + key: i, + x: p.x - (width + strokeWidth) / 2, + y: -height, + width: width, + height: Math.max(0, height - p.y), + style: style, + onMouseMove: onMouseMove && onMouseMove.bind(_this2, p) + }); + }) + ); + } + }]); + + return SparklinesBars; +}(_react2.default.Component); + +SparklinesBars.propTypes = { + points: _propTypes2.default.arrayOf(_propTypes2.default.object), + height: _propTypes2.default.number, + style: _propTypes2.default.object, + barWidth: _propTypes2.default.number, + margin: _propTypes2.default.number, + onMouseMove: _propTypes2.default.func +}; +SparklinesBars.defaultProps = { + style: { fill: 'slategray' } +}; +exports.default = SparklinesBars; + +/***/ }), +/* 21 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _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; }; }(); + +var _propTypes = __webpack_require__(0); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _react = __webpack_require__(1); + +var _react2 = _interopRequireDefault(_react); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var SparklinesSpots = function (_React$Component) { + _inherits(SparklinesSpots, _React$Component); + + function SparklinesSpots() { + _classCallCheck(this, SparklinesSpots); + + return _possibleConstructorReturn(this, (SparklinesSpots.__proto__ || Object.getPrototypeOf(SparklinesSpots)).apply(this, arguments)); + } + + _createClass(SparklinesSpots, [{ + key: 'lastDirection', + value: function lastDirection(points) { + + Math.sign = Math.sign || function (x) { + return x > 0 ? 1 : -1; + }; + + return points.length < 2 ? 0 : Math.sign(points[points.length - 2].y - points[points.length - 1].y); + } + }, { + key: 'render', + value: function render() { + var _props = this.props, + points = _props.points, + width = _props.width, + height = _props.height, + size = _props.size, + style = _props.style, + spotColors = _props.spotColors; + + + var startSpot = _react2.default.createElement('circle', { + cx: points[0].x, + cy: points[0].y, + r: size, + style: style }); + + var endSpot = _react2.default.createElement('circle', { + cx: points[points.length - 1].x, + cy: points[points.length - 1].y, + r: size, + style: style || { fill: spotColors[this.lastDirection(points)] } }); + + return _react2.default.createElement( + 'g', + null, + style && startSpot, + endSpot + ); + } + }]); + + return SparklinesSpots; +}(_react2.default.Component); + +SparklinesSpots.propTypes = { + size: _propTypes2.default.number, + style: _propTypes2.default.object, + spotColors: _propTypes2.default.object +}; +SparklinesSpots.defaultProps = { + size: 2, + spotColors: { + '-1': 'red', + '0': 'black', + '1': 'green' + } +}; +exports.default = SparklinesSpots; + +/***/ }), +/* 22 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _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; }; }(); + +var _propTypes = __webpack_require__(0); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _react = __webpack_require__(1); + +var _react2 = _interopRequireDefault(_react); + +var _dataProcessing = __webpack_require__(23); + +var dataProcessing = _interopRequireWildcard(_dataProcessing); + +function _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; } } + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var SparklinesReferenceLine = function (_React$Component) { + _inherits(SparklinesReferenceLine, _React$Component); + + function SparklinesReferenceLine() { + _classCallCheck(this, SparklinesReferenceLine); + + return _possibleConstructorReturn(this, (SparklinesReferenceLine.__proto__ || Object.getPrototypeOf(SparklinesReferenceLine)).apply(this, arguments)); + } + + _createClass(SparklinesReferenceLine, [{ + key: 'render', + value: function render() { + var _props = this.props, + points = _props.points, + margin = _props.margin, + type = _props.type, + style = _props.style, + value = _props.value; + + + var ypoints = points.map(function (p) { + return p.y; + }); + var y = type == 'custom' ? value : dataProcessing[type](ypoints); + + return _react2.default.createElement('line', { + x1: points[0].x, y1: y + margin, + x2: points[points.length - 1].x, y2: y + margin, + style: style }); + } + }]); + + return SparklinesReferenceLine; +}(_react2.default.Component); + +SparklinesReferenceLine.propTypes = { + type: _propTypes2.default.oneOf(['max', 'min', 'mean', 'avg', 'median', 'custom']), + value: _propTypes2.default.number, + style: _propTypes2.default.object +}; +SparklinesReferenceLine.defaultProps = { + type: 'mean', + style: { stroke: 'red', strokeOpacity: .75, strokeDasharray: '2, 2' } +}; +exports.default = SparklinesReferenceLine; + +/***/ }), +/* 23 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.variance = exports.stdev = exports.median = exports.midRange = exports.avg = exports.mean = exports.max = exports.min = undefined; + +var _min2 = __webpack_require__(7); + +var _min3 = _interopRequireDefault(_min2); + +var _mean2 = __webpack_require__(3); + +var _mean3 = _interopRequireDefault(_mean2); + +var _midRange2 = __webpack_require__(24); + +var _midRange3 = _interopRequireDefault(_midRange2); + +var _median2 = __webpack_require__(25); + +var _median3 = _interopRequireDefault(_median2); + +var _stdev2 = __webpack_require__(10); + +var _stdev3 = _interopRequireDefault(_stdev2); + +var _variance2 = __webpack_require__(26); + +var _variance3 = _interopRequireDefault(_variance2); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +exports.min = _min3.default; +exports.max = _min3.default; +exports.mean = _mean3.default; +exports.avg = _mean3.default; +exports.midRange = _midRange3.default; +exports.median = _median3.default; +exports.stdev = _stdev3.default; +exports.variance = _variance3.default; + +/***/ }), +/* 24 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _min = __webpack_require__(7); + +var _min2 = _interopRequireDefault(_min); + +var _max = __webpack_require__(9); + +var _max2 = _interopRequireDefault(_max); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +exports.default = function (data) { + return (0, _max2.default)(data) - (0, _min2.default)(data) / 2; +}; + +/***/ }), +/* 25 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +exports.default = function (data) { + return data.sort(function (a, b) { + return a - b; + })[Math.floor(data.length / 2)]; +}; + +/***/ }), +/* 26 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _mean = __webpack_require__(3); + +var _mean2 = _interopRequireDefault(_mean); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +exports.default = function (data) { + var dataMean = (0, _mean2.default)(data); + var sq = data.map(function (n) { + return Math.pow(n - dataMean, 2); + }); + return (0, _mean2.default)(sq); +}; + +/***/ }), +/* 27 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _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; }; }(); + +var _propTypes = __webpack_require__(0); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _react = __webpack_require__(1); + +var _react2 = _interopRequireDefault(_react); + +var _mean = __webpack_require__(3); + +var _mean2 = _interopRequireDefault(_mean); + +var _stdev = __webpack_require__(10); + +var _stdev2 = _interopRequireDefault(_stdev); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var SparklinesNormalBand = function (_React$Component) { + _inherits(SparklinesNormalBand, _React$Component); + + function SparklinesNormalBand() { + _classCallCheck(this, SparklinesNormalBand); + + return _possibleConstructorReturn(this, (SparklinesNormalBand.__proto__ || Object.getPrototypeOf(SparklinesNormalBand)).apply(this, arguments)); + } + + _createClass(SparklinesNormalBand, [{ + key: 'render', + value: function render() { + var _props = this.props, + points = _props.points, + margin = _props.margin, + style = _props.style; + + + var ypoints = points.map(function (p) { + return p.y; + }); + var dataMean = (0, _mean2.default)(ypoints); + var dataStdev = (0, _stdev2.default)(ypoints); + + return _react2.default.createElement('rect', { x: points[0].x, y: dataMean - dataStdev + margin, + width: points[points.length - 1].x - points[0].x, height: _stdev2.default * 2, + style: style }); + } + }]); + + return SparklinesNormalBand; +}(_react2.default.Component); + +SparklinesNormalBand.propTypes = { + style: _propTypes2.default.object +}; +SparklinesNormalBand.defaultProps = { + style: { fill: 'red', fillOpacity: .1 } +}; +exports.default = SparklinesNormalBand; + +/***/ }), +/* 28 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _min = __webpack_require__(7); + +var _min2 = _interopRequireDefault(_min); + +var _max = __webpack_require__(9); + +var _max2 = _interopRequireDefault(_max); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +exports.default = function (_ref) { + var data = _ref.data, + limit = _ref.limit, + _ref$width = _ref.width, + width = _ref$width === undefined ? 1 : _ref$width, + _ref$height = _ref.height, + height = _ref$height === undefined ? 1 : _ref$height, + _ref$margin = _ref.margin, + margin = _ref$margin === undefined ? 0 : _ref$margin, + _ref$max = _ref.max, + max = _ref$max === undefined ? (0, _max2.default)(data) : _ref$max, + _ref$min = _ref.min, + min = _ref$min === undefined ? (0, _min2.default)(data) : _ref$min; + + + var len = data.length; + + if (limit && limit < len) { + data = data.slice(len - limit); + } + + var vfactor = (height - margin * 2) / (max - min || 2); + var hfactor = (width - margin * 2) / ((limit || len) - (len > 1 ? 1 : 0)); + + return data.map(function (d, i) { + return { + x: i * hfactor + margin, + y: (max === min ? 1 : max - d) * vfactor + margin + }; + }); +}; + +/***/ }) +/******/ ]); +}); +},{"react":3}],3:[function(require,module,exports){ +module.exports=window.React + +},{}]},{},[3,1,"/build/sparklineswidget.js"]) +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9icm93c2VyLXBhY2svX3ByZWx1ZGUuanMiLCJzcmNqcy9zcGFya2xpbmVzd2lkZ2V0LmpzIiwibm9kZV9tb2R1bGVzL3JlYWN0LWRvbS5qcyIsIm5vZGVfbW9kdWxlcy9yZWFjdC1zcGFya2xpbmVzL2J1aWxkL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL3JlYWN0LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7QUNBQTs7SUFBWSxvQjs7OztBQUVaLE9BQU8sZ0JBQVAsQ0FBd0IsaUJBQXhCLEVBQTJDLFFBQTNDLEVBQXFELG9CQUFyRDs7O0FDRkE7QUFDQTs7QUNEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDeHFFQTtBQUNBIiwiZmlsZSI6ImdlbmVyYXRlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIoZnVuY3Rpb24oKXtmdW5jdGlvbiByKGUsbix0KXtmdW5jdGlvbiBvKGksZil7aWYoIW5baV0pe2lmKCFlW2ldKXt2YXIgYz1cImZ1bmN0aW9uXCI9PXR5cGVvZiByZXF1aXJlJiZyZXF1aXJlO2lmKCFmJiZjKXJldHVybiBjKGksITApO2lmKHUpcmV0dXJuIHUoaSwhMCk7dmFyIGE9bmV3IEVycm9yKFwiQ2Fubm90IGZpbmQgbW9kdWxlICdcIitpK1wiJ1wiKTt0aHJvdyBhLmNvZGU9XCJNT0RVTEVfTk9UX0ZPVU5EXCIsYX12YXIgcD1uW2ldPXtleHBvcnRzOnt9fTtlW2ldWzBdLmNhbGwocC5leHBvcnRzLGZ1bmN0aW9uKHIpe3ZhciBuPWVbaV1bMV1bcl07cmV0dXJuIG8obnx8cil9LHAscC5leHBvcnRzLHIsZSxuLHQpfXJldHVybiBuW2ldLmV4cG9ydHN9Zm9yKHZhciB1PVwiZnVuY3Rpb25cIj09dHlwZW9mIHJlcXVpcmUmJnJlcXVpcmUsaT0wO2k8dC5sZW5ndGg7aSsrKW8odFtpXSk7cmV0dXJuIG99cmV0dXJuIHJ9KSgpIiwiaW1wb3J0ICogYXMgU3BhcmtsaW5lc0NvbXBvbmVudHMgZnJvbSAncmVhY3Qtc3BhcmtsaW5lcyc7XHJcblxyXG5yZWFjdFIuZXhwb3NlQ29tcG9uZW50cygncmVhY3RzcGFya2xpbmVzJywgJ291dHB1dCcsIFNwYXJrbGluZXNDb21wb25lbnRzKTtcclxuIiwibW9kdWxlLmV4cG9ydHM9d2luZG93LlJlYWN0RE9NXG4iLCIoZnVuY3Rpb24gd2VicGFja1VuaXZlcnNhbE1vZHVsZURlZmluaXRpb24ocm9vdCwgZmFjdG9yeSkge1xuXHRpZih0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSA9PT0gJ29iamVjdCcpXG5cdFx0bW9kdWxlLmV4cG9ydHMgPSBmYWN0b3J5KHJlcXVpcmUoXCJyZWFjdFwiKSk7XG5cdGVsc2UgaWYodHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kKVxuXHRcdGRlZmluZShbXCJyZWFjdFwiXSwgZmFjdG9yeSk7XG5cdGVsc2UgaWYodHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnKVxuXHRcdGV4cG9ydHNbXCJSZWFjdFNwYXJrbGluZXNcIl0gPSBmYWN0b3J5KHJlcXVpcmUoXCJyZWFjdFwiKSk7XG5cdGVsc2Vcblx0XHRyb290W1wiUmVhY3RTcGFya2xpbmVzXCJdID0gZmFjdG9yeShyb290W1wiUmVhY3RcIl0pO1xufSkodGhpcywgZnVuY3Rpb24oX19XRUJQQUNLX0VYVEVSTkFMX01PRFVMRV8xX18pIHtcbnJldHVybiAvKioqKioqLyAoZnVuY3Rpb24obW9kdWxlcykgeyAvLyB3ZWJwYWNrQm9vdHN0cmFwXG4vKioqKioqLyBcdC8vIFRoZSBtb2R1bGUgY2FjaGVcbi8qKioqKiovIFx0dmFyIGluc3RhbGxlZE1vZHVsZXMgPSB7fTtcbi8qKioqKiovXG4vKioqKioqLyBcdC8vIFRoZSByZXF1aXJlIGZ1bmN0aW9uXG4vKioqKioqLyBcdGZ1bmN0aW9uIF9fd2VicGFja19yZXF1aXJlX18obW9kdWxlSWQpIHtcbi8qKioqKiovXG4vKioqKioqLyBcdFx0Ly8gQ2hlY2sgaWYgbW9kdWxlIGlzIGluIGNhY2hlXG4vKioqKioqLyBcdFx0aWYoaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0pIHtcbi8qKioqKiovIFx0XHRcdHJldHVybiBpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXS5leHBvcnRzO1xuLyoqKioqKi8gXHRcdH1cbi8qKioqKiovIFx0XHQvLyBDcmVhdGUgYSBuZXcgbW9kdWxlIChhbmQgcHV0IGl0IGludG8gdGhlIGNhY2hlKVxuLyoqKioqKi8gXHRcdHZhciBtb2R1bGUgPSBpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXSA9IHtcbi8qKioqKiovIFx0XHRcdGk6IG1vZHVsZUlkLFxuLyoqKioqKi8gXHRcdFx0bDogZmFsc2UsXG4vKioqKioqLyBcdFx0XHRleHBvcnRzOiB7fVxuLyoqKioqKi8gXHRcdH07XG4vKioqKioqL1xuLyoqKioqKi8gXHRcdC8vIEV4ZWN1dGUgdGhlIG1vZHVsZSBmdW5jdGlvblxuLyoqKioqKi8gXHRcdG1vZHVsZXNbbW9kdWxlSWRdLmNhbGwobW9kdWxlLmV4cG9ydHMsIG1vZHVsZSwgbW9kdWxlLmV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pO1xuLyoqKioqKi9cbi8qKioqKiovIFx0XHQvLyBGbGFnIHRoZSBtb2R1bGUgYXMgbG9hZGVkXG4vKioqKioqLyBcdFx0bW9kdWxlLmwgPSB0cnVlO1xuLyoqKioqKi9cbi8qKioqKiovIFx0XHQvLyBSZXR1cm4gdGhlIGV4cG9ydHMgb2YgdGhlIG1vZHVsZVxuLyoqKioqKi8gXHRcdHJldHVybiBtb2R1bGUuZXhwb3J0cztcbi8qKioqKiovIFx0fVxuLyoqKioqKi9cbi8qKioqKiovXG4vKioqKioqLyBcdC8vIGV4cG9zZSB0aGUgbW9kdWxlcyBvYmplY3QgKF9fd2VicGFja19tb2R1bGVzX18pXG4vKioqKioqLyBcdF9fd2VicGFja19yZXF1aXJlX18ubSA9IG1vZHVsZXM7XG4vKioqKioqL1xuLyoqKioqKi8gXHQvLyBleHBvc2UgdGhlIG1vZHVsZSBjYWNoZVxuLyoqKioqKi8gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmMgPSBpbnN0YWxsZWRNb2R1bGVzO1xuLyoqKioqKi9cbi8qKioqKiovIFx0Ly8gZGVmaW5lIGdldHRlciBmdW5jdGlvbiBmb3IgaGFybW9ueSBleHBvcnRzXG4vKioqKioqLyBcdF9fd2VicGFja19yZXF1aXJlX18uZCA9IGZ1bmN0aW9uKGV4cG9ydHMsIG5hbWUsIGdldHRlcikge1xuLyoqKioqKi8gXHRcdGlmKCFfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZXhwb3J0cywgbmFtZSkpIHtcbi8qKioqKiovIFx0XHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBuYW1lLCB7XG4vKioqKioqLyBcdFx0XHRcdGNvbmZpZ3VyYWJsZTogZmFsc2UsXG4vKioqKioqLyBcdFx0XHRcdGVudW1lcmFibGU6IHRydWUsXG4vKioqKioqLyBcdFx0XHRcdGdldDogZ2V0dGVyXG4vKioqKioqLyBcdFx0XHR9KTtcbi8qKioqKiovIFx0XHR9XG4vKioqKioqLyBcdH07XG4vKioqKioqL1xuLyoqKioqKi8gXHQvLyBnZXREZWZhdWx0RXhwb3J0IGZ1bmN0aW9uIGZvciBjb21wYXRpYmlsaXR5IHdpdGggbm9uLWhhcm1vbnkgbW9kdWxlc1xuLyoqKioqKi8gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLm4gPSBmdW5jdGlvbihtb2R1bGUpIHtcbi8qKioqKiovIFx0XHR2YXIgZ2V0dGVyID0gbW9kdWxlICYmIG1vZHVsZS5fX2VzTW9kdWxlID9cbi8qKioqKiovIFx0XHRcdGZ1bmN0aW9uIGdldERlZmF1bHQoKSB7IHJldHVybiBtb2R1bGVbJ2RlZmF1bHQnXTsgfSA6XG4vKioqKioqLyBcdFx0XHRmdW5jdGlvbiBnZXRNb2R1bGVFeHBvcnRzKCkgeyByZXR1cm4gbW9kdWxlOyB9O1xuLyoqKioqKi8gXHRcdF9fd2VicGFja19yZXF1aXJlX18uZChnZXR0ZXIsICdhJywgZ2V0dGVyKTtcbi8qKioqKiovIFx0XHRyZXR1cm4gZ2V0dGVyO1xuLyoqKioqKi8gXHR9O1xuLyoqKioqKi9cbi8qKioqKiovIFx0Ly8gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsXG4vKioqKioqLyBcdF9fd2VicGFja19yZXF1aXJlX18ubyA9IGZ1bmN0aW9uKG9iamVjdCwgcHJvcGVydHkpIHsgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmplY3QsIHByb3BlcnR5KTsgfTtcbi8qKioqKiovXG4vKioqKioqLyBcdC8vIF9fd2VicGFja19wdWJsaWNfcGF0aF9fXG4vKioqKioqLyBcdF9fd2VicGFja19yZXF1aXJlX18ucCA9IFwiL1wiO1xuLyoqKioqKi9cbi8qKioqKiovIFx0Ly8gTG9hZCBlbnRyeSBtb2R1bGUgYW5kIHJldHVybiBleHBvcnRzXG4vKioqKioqLyBcdHJldHVybiBfX3dlYnBhY2tfcmVxdWlyZV9fKF9fd2VicGFja19yZXF1aXJlX18ucyA9IDExKTtcbi8qKioqKiovIH0pXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKi8gKFtcbi8qIDAgKi9cbi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHtcblxuLyogV0VCUEFDSyBWQVIgSU5KRUNUSU9OICovKGZ1bmN0aW9uKHByb2Nlc3MpIHsvKipcbiAqIENvcHlyaWdodCAyMDEzLXByZXNlbnQsIEZhY2Vib29rLCBJbmMuXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEJTRC1zdHlsZSBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLiBBbiBhZGRpdGlvbmFsIGdyYW50XG4gKiBvZiBwYXRlbnQgcmlnaHRzIGNhbiBiZSBmb3VuZCBpbiB0aGUgUEFURU5UUyBmaWxlIGluIHRoZSBzYW1lIGRpcmVjdG9yeS5cbiAqL1xuXG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICB2YXIgUkVBQ1RfRUxFTUVOVF9UWVBFID0gKHR5cGVvZiBTeW1ib2wgPT09ICdmdW5jdGlvbicgJiZcbiAgICBTeW1ib2wuZm9yICYmXG4gICAgU3ltYm9sLmZvcigncmVhY3QuZWxlbWVudCcpKSB8fFxuICAgIDB4ZWFjNztcblxuICB2YXIgaXNWYWxpZEVsZW1lbnQgPSBmdW5jdGlvbihvYmplY3QpIHtcbiAgICByZXR1cm4gdHlwZW9mIG9iamVjdCA9PT0gJ29iamVjdCcgJiZcbiAgICAgIG9iamVjdCAhPT0gbnVsbCAmJlxuICAgICAgb2JqZWN0LiQkdHlwZW9mID09PSBSRUFDVF9FTEVNRU5UX1RZUEU7XG4gIH07XG5cbiAgLy8gQnkgZXhwbGljaXRseSB1c2luZyBgcHJvcC10eXBlc2AgeW91IGFyZSBvcHRpbmcgaW50byBuZXcgZGV2ZWxvcG1lbnQgYmVoYXZpb3IuXG4gIC8vIGh0dHA6Ly9mYi5tZS9wcm9wLXR5cGVzLWluLXByb2RcbiAgdmFyIHRocm93T25EaXJlY3RBY2Nlc3MgPSB0cnVlO1xuICBtb2R1bGUuZXhwb3J0cyA9IF9fd2VicGFja19yZXF1aXJlX18oMTQpKGlzVmFsaWRFbGVtZW50LCB0aHJvd09uRGlyZWN0QWNjZXNzKTtcbn0gZWxzZSB7XG4gIC8vIEJ5IGV4cGxpY2l0bHkgdXNpbmcgYHByb3AtdHlwZXNgIHlvdSBhcmUgb3B0aW5nIGludG8gbmV3IHByb2R1Y3Rpb24gYmVoYXZpb3IuXG4gIC8vIGh0dHA6Ly9mYi5tZS9wcm9wLXR5cGVzLWluLXByb2RcbiAgbW9kdWxlLmV4cG9ydHMgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDE2KSgpO1xufVxuXG4vKiBXRUJQQUNLIFZBUiBJTkpFQ1RJT04gKi99LmNhbGwoZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXygyKSkpXG5cbi8qKiovIH0pLFxuLyogMSAqL1xuLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cykge1xuXG5tb2R1bGUuZXhwb3J0cyA9IF9fV0VCUEFDS19FWFRFUk5BTF9NT0RVTEVfMV9fO1xuXG4vKioqLyB9KSxcbi8qIDIgKi9cbi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMpIHtcblxuLy8gc2hpbSBmb3IgdXNpbmcgcHJvY2VzcyBpbiBicm93c2VyXG52YXIgcHJvY2VzcyA9IG1vZHVsZS5leHBvcnRzID0ge307XG5cbi8vIGNhY2hlZCBmcm9tIHdoYXRldmVyIGdsb2JhbCBpcyBwcmVzZW50IHNvIHRoYXQgdGVzdCBydW5uZXJzIHRoYXQgc3R1YiBpdFxuLy8gZG9uJ3QgYnJlYWsgdGhpbmdzLiAgQnV0IHdlIG5lZWQgdG8gd3JhcCBpdCBpbiBhIHRyeSBjYXRjaCBpbiBjYXNlIGl0IGlzXG4vLyB3cmFwcGVkIGluIHN0cmljdCBtb2RlIGNvZGUgd2hpY2ggZG9lc24ndCBkZWZpbmUgYW55IGdsb2JhbHMuICBJdCdzIGluc2lkZSBhXG4vLyBmdW5jdGlvbiBiZWNhdXNlIHRyeS9jYXRjaGVzIGRlb3B0aW1pemUgaW4gY2VydGFpbiBlbmdpbmVzLlxuXG52YXIgY2FjaGVkU2V0VGltZW91dDtcbnZhciBjYWNoZWRDbGVhclRpbWVvdXQ7XG5cbmZ1bmN0aW9uIGRlZmF1bHRTZXRUaW1vdXQoKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdzZXRUaW1lb3V0IGhhcyBub3QgYmVlbiBkZWZpbmVkJyk7XG59XG5mdW5jdGlvbiBkZWZhdWx0Q2xlYXJUaW1lb3V0ICgpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2NsZWFyVGltZW91dCBoYXMgbm90IGJlZW4gZGVmaW5lZCcpO1xufVxuKGZ1bmN0aW9uICgpIHtcbiAgICB0cnkge1xuICAgICAgICBpZiAodHlwZW9mIHNldFRpbWVvdXQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIGNhY2hlZFNldFRpbWVvdXQgPSBzZXRUaW1lb3V0O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY2FjaGVkU2V0VGltZW91dCA9IGRlZmF1bHRTZXRUaW1vdXQ7XG4gICAgICAgIH1cbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIGNhY2hlZFNldFRpbWVvdXQgPSBkZWZhdWx0U2V0VGltb3V0O1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgICBpZiAodHlwZW9mIGNsZWFyVGltZW91dCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgY2FjaGVkQ2xlYXJUaW1lb3V0ID0gY2xlYXJUaW1lb3V0O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY2FjaGVkQ2xlYXJUaW1lb3V0ID0gZGVmYXVsdENsZWFyVGltZW91dDtcbiAgICAgICAgfVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgY2FjaGVkQ2xlYXJUaW1lb3V0ID0gZGVmYXVsdENsZWFyVGltZW91dDtcbiAgICB9XG59ICgpKVxuZnVuY3Rpb24gcnVuVGltZW91dChmdW4pIHtcbiAgICBpZiAoY2FjaGVkU2V0VGltZW91dCA9PT0gc2V0VGltZW91dCkge1xuICAgICAgICAvL25vcm1hbCBlbnZpcm9tZW50cyBpbiBzYW5lIHNpdHVhdGlvbnNcbiAgICAgICAgcmV0dXJuIHNldFRpbWVvdXQoZnVuLCAwKTtcbiAgICB9XG4gICAgLy8gaWYgc2V0VGltZW91dCB3YXNuJ3QgYXZhaWxhYmxlIGJ1dCB3YXMgbGF0dGVyIGRlZmluZWRcbiAgICBpZiAoKGNhY2hlZFNldFRpbWVvdXQgPT09IGRlZmF1bHRTZXRUaW1vdXQgfHwgIWNhY2hlZFNldFRpbWVvdXQpICYmIHNldFRpbWVvdXQpIHtcbiAgICAgICAgY2FjaGVkU2V0VGltZW91dCA9IHNldFRpbWVvdXQ7XG4gICAgICAgIHJldHVybiBzZXRUaW1lb3V0KGZ1biwgMCk7XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICAgIC8vIHdoZW4gd2hlbiBzb21lYm9keSBoYXMgc2NyZXdlZCB3aXRoIHNldFRpbWVvdXQgYnV0IG5vIEkuRS4gbWFkZG5lc3NcbiAgICAgICAgcmV0dXJuIGNhY2hlZFNldFRpbWVvdXQoZnVuLCAwKTtcbiAgICB9IGNhdGNoKGUpe1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgLy8gV2hlbiB3ZSBhcmUgaW4gSS5FLiBidXQgdGhlIHNjcmlwdCBoYXMgYmVlbiBldmFsZWQgc28gSS5FLiBkb2Vzbid0IHRydXN0IHRoZSBnbG9iYWwgb2JqZWN0IHdoZW4gY2FsbGVkIG5vcm1hbGx5XG4gICAgICAgICAgICByZXR1cm4gY2FjaGVkU2V0VGltZW91dC5jYWxsKG51bGwsIGZ1biwgMCk7XG4gICAgICAgIH0gY2F0Y2goZSl7XG4gICAgICAgICAgICAvLyBzYW1lIGFzIGFib3ZlIGJ1dCB3aGVuIGl0J3MgYSB2ZXJzaW9uIG9mIEkuRS4gdGhhdCBtdXN0IGhhdmUgdGhlIGdsb2JhbCBvYmplY3QgZm9yICd0aGlzJywgaG9wZnVsbHkgb3VyIGNvbnRleHQgY29ycmVjdCBvdGhlcndpc2UgaXQgd2lsbCB0aHJvdyBhIGdsb2JhbCBlcnJvclxuICAgICAgICAgICAgcmV0dXJuIGNhY2hlZFNldFRpbWVvdXQuY2FsbCh0aGlzLCBmdW4sIDApO1xuICAgICAgICB9XG4gICAgfVxuXG5cbn1cbmZ1bmN0aW9uIHJ1bkNsZWFyVGltZW91dChtYXJrZXIpIHtcbiAgICBpZiAoY2FjaGVkQ2xlYXJUaW1lb3V0ID09PSBjbGVhclRpbWVvdXQpIHtcbiAgICAgICAgLy9ub3JtYWwgZW52aXJvbWVudHMgaW4gc2FuZSBzaXR1YXRpb25zXG4gICAgICAgIHJldHVybiBjbGVhclRpbWVvdXQobWFya2VyKTtcbiAgICB9XG4gICAgLy8gaWYgY2xlYXJUaW1lb3V0IHdhc24ndCBhdmFpbGFibGUgYnV0IHdhcyBsYXR0ZXIgZGVmaW5lZFxuICAgIGlmICgoY2FjaGVkQ2xlYXJUaW1lb3V0ID09PSBkZWZhdWx0Q2xlYXJUaW1lb3V0IHx8ICFjYWNoZWRDbGVhclRpbWVvdXQpICYmIGNsZWFyVGltZW91dCkge1xuICAgICAgICBjYWNoZWRDbGVhclRpbWVvdXQgPSBjbGVhclRpbWVvdXQ7XG4gICAgICAgIHJldHVybiBjbGVhclRpbWVvdXQobWFya2VyKTtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgICAgLy8gd2hlbiB3aGVuIHNvbWVib2R5IGhhcyBzY3Jld2VkIHdpdGggc2V0VGltZW91dCBidXQgbm8gSS5FLiBtYWRkbmVzc1xuICAgICAgICByZXR1cm4gY2FjaGVkQ2xlYXJUaW1lb3V0KG1hcmtlcik7XG4gICAgfSBjYXRjaCAoZSl7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICAvLyBXaGVuIHdlIGFyZSBpbiBJLkUuIGJ1dCB0aGUgc2NyaXB0IGhhcyBiZWVuIGV2YWxlZCBzbyBJLkUuIGRvZXNuJ3QgIHRydXN0IHRoZSBnbG9iYWwgb2JqZWN0IHdoZW4gY2FsbGVkIG5vcm1hbGx5XG4gICAgICAgICAgICByZXR1cm4gY2FjaGVkQ2xlYXJUaW1lb3V0LmNhbGwobnVsbCwgbWFya2VyKTtcbiAgICAgICAgfSBjYXRjaCAoZSl7XG4gICAgICAgICAgICAvLyBzYW1lIGFzIGFib3ZlIGJ1dCB3aGVuIGl0J3MgYSB2ZXJzaW9uIG9mIEkuRS4gdGhhdCBtdXN0IGhhdmUgdGhlIGdsb2JhbCBvYmplY3QgZm9yICd0aGlzJywgaG9wZnVsbHkgb3VyIGNvbnRleHQgY29ycmVjdCBvdGhlcndpc2UgaXQgd2lsbCB0aHJvdyBhIGdsb2JhbCBlcnJvci5cbiAgICAgICAgICAgIC8vIFNvbWUgdmVyc2lvbnMgb2YgSS5FLiBoYXZlIGRpZmZlcmVudCBydWxlcyBmb3IgY2xlYXJUaW1lb3V0IHZzIHNldFRpbWVvdXRcbiAgICAgICAgICAgIHJldHVybiBjYWNoZWRDbGVhclRpbWVvdXQuY2FsbCh0aGlzLCBtYXJrZXIpO1xuICAgICAgICB9XG4gICAgfVxuXG5cblxufVxudmFyIHF1ZXVlID0gW107XG52YXIgZHJhaW5pbmcgPSBmYWxzZTtcbnZhciBjdXJyZW50UXVldWU7XG52YXIgcXVldWVJbmRleCA9IC0xO1xuXG5mdW5jdGlvbiBjbGVhblVwTmV4dFRpY2soKSB7XG4gICAgaWYgKCFkcmFpbmluZyB8fCAhY3VycmVudFF1ZXVlKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgZHJhaW5pbmcgPSBmYWxzZTtcbiAgICBpZiAoY3VycmVudFF1ZXVlLmxlbmd0aCkge1xuICAgICAgICBxdWV1ZSA9IGN1cnJlbnRRdWV1ZS5jb25jYXQocXVldWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHF1ZXVlSW5kZXggPSAtMTtcbiAgICB9XG4gICAgaWYgKHF1ZXVlLmxlbmd0aCkge1xuICAgICAgICBkcmFpblF1ZXVlKCk7XG4gICAgfVxufVxuXG5mdW5jdGlvbiBkcmFpblF1ZXVlKCkge1xuICAgIGlmIChkcmFpbmluZykge1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIHZhciB0aW1lb3V0ID0gcnVuVGltZW91dChjbGVhblVwTmV4dFRpY2spO1xuICAgIGRyYWluaW5nID0gdHJ1ZTtcblxuICAgIHZhciBsZW4gPSBxdWV1ZS5sZW5ndGg7XG4gICAgd2hpbGUobGVuKSB7XG4gICAgICAgIGN1cnJlbnRRdWV1ZSA9IHF1ZXVlO1xuICAgICAgICBxdWV1ZSA9IFtdO1xuICAgICAgICB3aGlsZSAoKytxdWV1ZUluZGV4IDwgbGVuKSB7XG4gICAgICAgICAgICBpZiAoY3VycmVudFF1ZXVlKSB7XG4gICAgICAgICAgICAgICAgY3VycmVudFF1ZXVlW3F1ZXVlSW5kZXhdLnJ1bigpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHF1ZXVlSW5kZXggPSAtMTtcbiAgICAgICAgbGVuID0gcXVldWUubGVuZ3RoO1xuICAgIH1cbiAgICBjdXJyZW50UXVldWUgPSBudWxsO1xuICAgIGRyYWluaW5nID0gZmFsc2U7XG4gICAgcnVuQ2xlYXJUaW1lb3V0KHRpbWVvdXQpO1xufVxuXG5wcm9jZXNzLm5leHRUaWNrID0gZnVuY3Rpb24gKGZ1bikge1xuICAgIHZhciBhcmdzID0gbmV3IEFycmF5KGFyZ3VtZW50cy5sZW5ndGggLSAxKTtcbiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGFyZ3NbaSAtIDFdID0gYXJndW1lbnRzW2ldO1xuICAgICAgICB9XG4gICAgfVxuICAgIHF1ZXVlLnB1c2gobmV3IEl0ZW0oZnVuLCBhcmdzKSk7XG4gICAgaWYgKHF1ZXVlLmxlbmd0aCA9PT0gMSAmJiAhZHJhaW5pbmcpIHtcbiAgICAgICAgcnVuVGltZW91dChkcmFpblF1ZXVlKTtcbiAgICB9XG59O1xuXG4vLyB2OCBsaWtlcyBwcmVkaWN0aWJsZSBvYmplY3RzXG5mdW5jdGlvbiBJdGVtKGZ1biwgYXJyYXkpIHtcbiAgICB0aGlzLmZ1biA9IGZ1bjtcbiAgICB0aGlzLmFycmF5ID0gYXJyYXk7XG59XG5JdGVtLnByb3RvdHlwZS5ydW4gPSBmdW5jdGlvbiAoKSB7XG4gICAgdGhpcy5mdW4uYXBwbHkobnVsbCwgdGhpcy5hcnJheSk7XG59O1xucHJvY2Vzcy50aXRsZSA9ICdicm93c2VyJztcbnByb2Nlc3MuYnJvd3NlciA9IHRydWU7XG5wcm9jZXNzLmVudiA9IHt9O1xucHJvY2Vzcy5hcmd2ID0gW107XG5wcm9jZXNzLnZlcnNpb24gPSAnJzsgLy8gZW1wdHkgc3RyaW5nIHRvIGF2b2lkIHJlZ2V4cCBpc3N1ZXNcbnByb2Nlc3MudmVyc2lvbnMgPSB7fTtcblxuZnVuY3Rpb24gbm9vcCgpIHt9XG5cbnByb2Nlc3Mub24gPSBub29wO1xucHJvY2Vzcy5hZGRMaXN0ZW5lciA9IG5vb3A7XG5wcm9jZXNzLm9uY2UgPSBub29wO1xucHJvY2Vzcy5vZmYgPSBub29wO1xucHJvY2Vzcy5yZW1vdmVMaXN0ZW5lciA9IG5vb3A7XG5wcm9jZXNzLnJlbW92ZUFsbExpc3RlbmVycyA9IG5vb3A7XG5wcm9jZXNzLmVtaXQgPSBub29wO1xucHJvY2Vzcy5wcmVwZW5kTGlzdGVuZXIgPSBub29wO1xucHJvY2Vzcy5wcmVwZW5kT25jZUxpc3RlbmVyID0gbm9vcDtcblxucHJvY2Vzcy5saXN0ZW5lcnMgPSBmdW5jdGlvbiAobmFtZSkgeyByZXR1cm4gW10gfVxuXG5wcm9jZXNzLmJpbmRpbmcgPSBmdW5jdGlvbiAobmFtZSkge1xuICAgIHRocm93IG5ldyBFcnJvcigncHJvY2Vzcy5iaW5kaW5nIGlzIG5vdCBzdXBwb3J0ZWQnKTtcbn07XG5cbnByb2Nlc3MuY3dkID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gJy8nIH07XG5wcm9jZXNzLmNoZGlyID0gZnVuY3Rpb24gKGRpcikge1xuICAgIHRocm93IG5ldyBFcnJvcigncHJvY2Vzcy5jaGRpciBpcyBub3Qgc3VwcG9ydGVkJyk7XG59O1xucHJvY2Vzcy51bWFzayA9IGZ1bmN0aW9uKCkgeyByZXR1cm4gMDsgfTtcblxuXG4vKioqLyB9KSxcbi8qIDMgKi9cbi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG5cblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuXG5leHBvcnRzLmRlZmF1bHQgPSBmdW5jdGlvbiAoZGF0YSkge1xuICAgIHJldHVybiBkYXRhLnJlZHVjZShmdW5jdGlvbiAoYSwgYikge1xuICAgICAgICByZXR1cm4gYSArIGI7XG4gICAgfSkgLyBkYXRhLmxlbmd0aDtcbn07XG5cbi8qKiovIH0pLFxuLyogNCAqL1xuLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykge1xuXG5cInVzZSBzdHJpY3RcIjtcblxuXG4vKipcbiAqIENvcHlyaWdodCAoYykgMjAxMy1wcmVzZW50LCBGYWNlYm9vaywgSW5jLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBCU0Qtc3R5bGUgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4gQW4gYWRkaXRpb25hbCBncmFudFxuICogb2YgcGF0ZW50IHJpZ2h0cyBjYW4gYmUgZm91bmQgaW4gdGhlIFBBVEVOVFMgZmlsZSBpbiB0aGUgc2FtZSBkaXJlY3RvcnkuXG4gKlxuICogXG4gKi9cblxuZnVuY3Rpb24gbWFrZUVtcHR5RnVuY3Rpb24oYXJnKSB7XG4gIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIGFyZztcbiAgfTtcbn1cblxuLyoqXG4gKiBUaGlzIGZ1bmN0aW9uIGFjY2VwdHMgYW5kIGRpc2NhcmRzIGlucHV0czsgaXQgaGFzIG5vIHNpZGUgZWZmZWN0cy4gVGhpcyBpc1xuICogcHJpbWFyaWx5IHVzZWZ1bCBpZGlvbWF0aWNhbGx5IGZvciBvdmVycmlkYWJsZSBmdW5jdGlvbiBlbmRwb2ludHMgd2hpY2hcbiAqIGFsd2F5cyBuZWVkIHRvIGJlIGNhbGxhYmxlLCBzaW5jZSBKUyBsYWNrcyBhIG51bGwtY2FsbCBpZGlvbSBhbGEgQ29jb2EuXG4gKi9cbnZhciBlbXB0eUZ1bmN0aW9uID0gZnVuY3Rpb24gZW1wdHlGdW5jdGlvbigpIHt9O1xuXG5lbXB0eUZ1bmN0aW9uLnRoYXRSZXR1cm5zID0gbWFrZUVtcHR5RnVuY3Rpb247XG5lbXB0eUZ1bmN0aW9uLnRoYXRSZXR1cm5zRmFsc2UgPSBtYWtlRW1wdHlGdW5jdGlvbihmYWxzZSk7XG5lbXB0eUZ1bmN0aW9uLnRoYXRSZXR1cm5zVHJ1ZSA9IG1ha2VFbXB0eUZ1bmN0aW9uKHRydWUpO1xuZW1wdHlGdW5jdGlvbi50aGF0UmV0dXJuc051bGwgPSBtYWtlRW1wdHlGdW5jdGlvbihudWxsKTtcbmVtcHR5RnVuY3Rpb24udGhhdFJldHVybnNUaGlzID0gZnVuY3Rpb24gKCkge1xuICByZXR1cm4gdGhpcztcbn07XG5lbXB0eUZ1bmN0aW9uLnRoYXRSZXR1cm5zQXJndW1lbnQgPSBmdW5jdGlvbiAoYXJnKSB7XG4gIHJldHVybiBhcmc7XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IGVtcHR5RnVuY3Rpb247XG5cbi8qKiovIH0pLFxuLyogNSAqL1xuLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykge1xuXG5cInVzZSBzdHJpY3RcIjtcbi8qIFdFQlBBQ0sgVkFSIElOSkVDVElPTiAqLyhmdW5jdGlvbihwcm9jZXNzKSB7LyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTMtcHJlc2VudCwgRmFjZWJvb2ssIEluYy5cbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgQlNELXN0eWxlIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuIEFuIGFkZGl0aW9uYWwgZ3JhbnRcbiAqIG9mIHBhdGVudCByaWdodHMgY2FuIGJlIGZvdW5kIGluIHRoZSBQQVRFTlRTIGZpbGUgaW4gdGhlIHNhbWUgZGlyZWN0b3J5LlxuICpcbiAqL1xuXG5cblxuLyoqXG4gKiBVc2UgaW52YXJpYW50KCkgdG8gYXNzZXJ0IHN0YXRlIHdoaWNoIHlvdXIgcHJvZ3JhbSBhc3N1bWVzIHRvIGJlIHRydWUuXG4gKlxuICogUHJvdmlkZSBzcHJpbnRmLXN0eWxlIGZvcm1hdCAob25seSAlcyBpcyBzdXBwb3J0ZWQpIGFuZCBhcmd1bWVudHNcbiAqIHRvIHByb3ZpZGUgaW5mb3JtYXRpb24gYWJvdXQgd2hhdCBicm9rZSBhbmQgd2hhdCB5b3Ugd2VyZVxuICogZXhwZWN0aW5nLlxuICpcbiAqIFRoZSBpbnZhcmlhbnQgbWVzc2FnZSB3aWxsIGJlIHN0cmlwcGVkIGluIHByb2R1Y3Rpb24sIGJ1dCB0aGUgaW52YXJpYW50XG4gKiB3aWxsIHJlbWFpbiB0byBlbnN1cmUgbG9naWMgZG9lcyBub3QgZGlmZmVyIGluIHByb2R1Y3Rpb24uXG4gKi9cblxudmFyIHZhbGlkYXRlRm9ybWF0ID0gZnVuY3Rpb24gdmFsaWRhdGVGb3JtYXQoZm9ybWF0KSB7fTtcblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgdmFsaWRhdGVGb3JtYXQgPSBmdW5jdGlvbiB2YWxpZGF0ZUZvcm1hdChmb3JtYXQpIHtcbiAgICBpZiAoZm9ybWF0ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignaW52YXJpYW50IHJlcXVpcmVzIGFuIGVycm9yIG1lc3NhZ2UgYXJndW1lbnQnKTtcbiAgICB9XG4gIH07XG59XG5cbmZ1bmN0aW9uIGludmFyaWFudChjb25kaXRpb24sIGZvcm1hdCwgYSwgYiwgYywgZCwgZSwgZikge1xuICB2YWxpZGF0ZUZvcm1hdChmb3JtYXQpO1xuXG4gIGlmICghY29uZGl0aW9uKSB7XG4gICAgdmFyIGVycm9yO1xuICAgIGlmIChmb3JtYXQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgZXJyb3IgPSBuZXcgRXJyb3IoJ01pbmlmaWVkIGV4Y2VwdGlvbiBvY2N1cnJlZDsgdXNlIHRoZSBub24tbWluaWZpZWQgZGV2IGVudmlyb25tZW50ICcgKyAnZm9yIHRoZSBmdWxsIGVycm9yIG1lc3NhZ2UgYW5kIGFkZGl0aW9uYWwgaGVscGZ1bCB3YXJuaW5ncy4nKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdmFyIGFyZ3MgPSBbYSwgYiwgYywgZCwgZSwgZl07XG4gICAgICB2YXIgYXJnSW5kZXggPSAwO1xuICAgICAgZXJyb3IgPSBuZXcgRXJyb3IoZm9ybWF0LnJlcGxhY2UoLyVzL2csIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIGFyZ3NbYXJnSW5kZXgrK107XG4gICAgICB9KSk7XG4gICAgICBlcnJvci5uYW1lID0gJ0ludmFyaWFudCBWaW9sYXRpb24nO1xuICAgIH1cblxuICAgIGVycm9yLmZyYW1lc1RvUG9wID0gMTsgLy8gd2UgZG9uJ3QgY2FyZSBhYm91dCBpbnZhcmlhbnQncyBvd24gZnJhbWVcbiAgICB0aHJvdyBlcnJvcjtcbiAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGludmFyaWFudDtcbi8qIFdFQlBBQ0sgVkFSIElOSkVDVElPTiAqL30uY2FsbChleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKDIpKSlcblxuLyoqKi8gfSksXG4vKiA2ICovXG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7XG5cblwidXNlIHN0cmljdFwiO1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxMy1wcmVzZW50LCBGYWNlYm9vaywgSW5jLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBCU0Qtc3R5bGUgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4gQW4gYWRkaXRpb25hbCBncmFudFxuICogb2YgcGF0ZW50IHJpZ2h0cyBjYW4gYmUgZm91bmQgaW4gdGhlIFBBVEVOVFMgZmlsZSBpbiB0aGUgc2FtZSBkaXJlY3RvcnkuXG4gKi9cblxuXG5cbnZhciBSZWFjdFByb3BUeXBlc1NlY3JldCA9ICdTRUNSRVRfRE9fTk9UX1BBU1NfVEhJU19PUl9ZT1VfV0lMTF9CRV9GSVJFRCc7XG5cbm1vZHVsZS5leHBvcnRzID0gUmVhY3RQcm9wVHlwZXNTZWNyZXQ7XG5cblxuLyoqKi8gfSksXG4vKiA3ICovXG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7XG5cblwidXNlIHN0cmljdFwiO1xuXG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcblxuZXhwb3J0cy5kZWZhdWx0ID0gZnVuY3Rpb24gKGRhdGEpIHtcbiAgICByZXR1cm4gTWF0aC5taW4uYXBwbHkoTWF0aCwgZGF0YSk7XG59O1xuXG4vKioqLyB9KSxcbi8qIDggKi9cbi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG4vKiBXRUJQQUNLIFZBUiBJTkpFQ1RJT04gKi8oZnVuY3Rpb24ocHJvY2Vzcykgey8qKlxuICogQ29weXJpZ2h0IDIwMTQtMjAxNSwgRmFjZWJvb2ssIEluYy5cbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgQlNELXN0eWxlIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuIEFuIGFkZGl0aW9uYWwgZ3JhbnRcbiAqIG9mIHBhdGVudCByaWdodHMgY2FuIGJlIGZvdW5kIGluIHRoZSBQQVRFTlRTIGZpbGUgaW4gdGhlIHNhbWUgZGlyZWN0b3J5LlxuICpcbiAqL1xuXG5cblxudmFyIGVtcHR5RnVuY3Rpb24gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDQpO1xuXG4vKipcbiAqIFNpbWlsYXIgdG8gaW52YXJpYW50IGJ1dCBvbmx5IGxvZ3MgYSB3YXJuaW5nIGlmIHRoZSBjb25kaXRpb24gaXMgbm90IG1ldC5cbiAqIFRoaXMgY2FuIGJlIHVzZWQgdG8gbG9nIGlzc3VlcyBpbiBkZXZlbG9wbWVudCBlbnZpcm9ubWVudHMgaW4gY3JpdGljYWxcbiAqIHBhdGhzLiBSZW1vdmluZyB0aGUgbG9nZ2luZyBjb2RlIGZvciBwcm9kdWN0aW9uIGVudmlyb25tZW50cyB3aWxsIGtlZXAgdGhlXG4gKiBzYW1lIGxvZ2ljIGFuZCBmb2xsb3cgdGhlIHNhbWUgY29kZSBwYXRocy5cbiAqL1xuXG52YXIgd2FybmluZyA9IGVtcHR5RnVuY3Rpb247XG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gIHZhciBwcmludFdhcm5pbmcgPSBmdW5jdGlvbiBwcmludFdhcm5pbmcoZm9ybWF0KSB7XG4gICAgZm9yICh2YXIgX2xlbiA9IGFyZ3VtZW50cy5sZW5ndGgsIGFyZ3MgPSBBcnJheShfbGVuID4gMSA/IF9sZW4gLSAxIDogMCksIF9rZXkgPSAxOyBfa2V5IDwgX2xlbjsgX2tleSsrKSB7XG4gICAgICBhcmdzW19rZXkgLSAxXSA9IGFyZ3VtZW50c1tfa2V5XTtcbiAgICB9XG5cbiAgICB2YXIgYXJnSW5kZXggPSAwO1xuICAgIHZhciBtZXNzYWdlID0gJ1dhcm5pbmc6ICcgKyBmb3JtYXQucmVwbGFjZSgvJXMvZywgZnVuY3Rpb24gKCkge1xuICAgICAgcmV0dXJuIGFyZ3NbYXJnSW5kZXgrK107XG4gICAgfSk7XG4gICAgaWYgKHR5cGVvZiBjb25zb2xlICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgY29uc29sZS5lcnJvcihtZXNzYWdlKTtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgIC8vIC0tLSBXZWxjb21lIHRvIGRlYnVnZ2luZyBSZWFjdCAtLS1cbiAgICAgIC8vIFRoaXMgZXJyb3Igd2FzIHRocm93biBhcyBhIGNvbnZlbmllbmNlIHNvIHRoYXQgeW91IGNhbiB1c2UgdGhpcyBzdGFja1xuICAgICAgLy8gdG8gZmluZCB0aGUgY2FsbHNpdGUgdGhhdCBjYXVzZWQgdGhpcyB3YXJuaW5nIHRvIGZpcmUuXG4gICAgICB0aHJvdyBuZXcgRXJyb3IobWVzc2FnZSk7XG4gICAgfSBjYXRjaCAoeCkge31cbiAgfTtcblxuICB3YXJuaW5nID0gZnVuY3Rpb24gd2FybmluZyhjb25kaXRpb24sIGZvcm1hdCkge1xuICAgIGlmIChmb3JtYXQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdgd2FybmluZyhjb25kaXRpb24sIGZvcm1hdCwgLi4uYXJncylgIHJlcXVpcmVzIGEgd2FybmluZyAnICsgJ21lc3NhZ2UgYXJndW1lbnQnKTtcbiAgICB9XG5cbiAgICBpZiAoZm9ybWF0LmluZGV4T2YoJ0ZhaWxlZCBDb21wb3NpdGUgcHJvcFR5cGU6ICcpID09PSAwKSB7XG4gICAgICByZXR1cm47IC8vIElnbm9yZSBDb21wb3NpdGVDb21wb25lbnQgcHJvcHR5cGUgY2hlY2suXG4gICAgfVxuXG4gICAgaWYgKCFjb25kaXRpb24pIHtcbiAgICAgIGZvciAodmFyIF9sZW4yID0gYXJndW1lbnRzLmxlbmd0aCwgYXJncyA9IEFycmF5KF9sZW4yID4gMiA/IF9sZW4yIC0gMiA6IDApLCBfa2V5MiA9IDI7IF9rZXkyIDwgX2xlbjI7IF9rZXkyKyspIHtcbiAgICAgICAgYXJnc1tfa2V5MiAtIDJdID0gYXJndW1lbnRzW19rZXkyXTtcbiAgICAgIH1cblxuICAgICAgcHJpbnRXYXJuaW5nLmFwcGx5KHVuZGVmaW5lZCwgW2Zvcm1hdF0uY29uY2F0KGFyZ3MpKTtcbiAgICB9XG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gd2FybmluZztcbi8qIFdFQlBBQ0sgVkFSIElOSkVDVElPTiAqL30uY2FsbChleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKDIpKSlcblxuLyoqKi8gfSksXG4vKiA5ICovXG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7XG5cblwidXNlIHN0cmljdFwiO1xuXG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcblxuZXhwb3J0cy5kZWZhdWx0ID0gZnVuY3Rpb24gKGRhdGEpIHtcbiAgICByZXR1cm4gTWF0aC5tYXguYXBwbHkoTWF0aCwgZGF0YSk7XG59O1xuXG4vKioqLyB9KSxcbi8qIDEwICovXG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7XG5cblwidXNlIHN0cmljdFwiO1xuXG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcblxudmFyIF9tZWFuID0gX193ZWJwYWNrX3JlcXVpcmVfXygzKTtcblxudmFyIF9tZWFuMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21lYW4pO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBkZWZhdWx0OiBvYmogfTsgfVxuXG5leHBvcnRzLmRlZmF1bHQgPSBmdW5jdGlvbiAoZGF0YSkge1xuICAgIHZhciBkYXRhTWVhbiA9ICgwLCBfbWVhbjIuZGVmYXVsdCkoZGF0YSk7XG4gICAgdmFyIHNxRGlmZiA9IGRhdGEubWFwKGZ1bmN0aW9uIChuKSB7XG4gICAgICAgIHJldHVybiBNYXRoLnBvdyhuIC0gZGF0YU1lYW4sIDIpO1xuICAgIH0pO1xuICAgIHZhciBhdmdTcURpZmYgPSAoMCwgX21lYW4yLmRlZmF1bHQpKHNxRGlmZik7XG4gICAgcmV0dXJuIE1hdGguc3FydChhdmdTcURpZmYpO1xufTtcblxuLyoqKi8gfSksXG4vKiAxMSAqL1xuLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykge1xuXG5tb2R1bGUuZXhwb3J0cyA9IF9fd2VicGFja19yZXF1aXJlX18oMTIpO1xuXG5cbi8qKiovIH0pLFxuLyogMTIgKi9cbi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG5cblxubW9kdWxlLmV4cG9ydHMgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDEzKTtcblxuLyoqKi8gfSksXG4vKiAxMyAqL1xuLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykge1xuXG5cInVzZSBzdHJpY3RcIjtcblxuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLlNwYXJrbGluZXNUZXh0ID0gZXhwb3J0cy5TcGFya2xpbmVzTm9ybWFsQmFuZCA9IGV4cG9ydHMuU3BhcmtsaW5lc1JlZmVyZW5jZUxpbmUgPSBleHBvcnRzLlNwYXJrbGluZXNTcG90cyA9IGV4cG9ydHMuU3BhcmtsaW5lc0JhcnMgPSBleHBvcnRzLlNwYXJrbGluZXNDdXJ2ZSA9IGV4cG9ydHMuU3BhcmtsaW5lc0xpbmUgPSBleHBvcnRzLlNwYXJrbGluZXMgPSB1bmRlZmluZWQ7XG5cbnZhciBfY3JlYXRlQ2xhc3MgPSBmdW5jdGlvbiAoKSB7IGZ1bmN0aW9uIGRlZmluZVByb3BlcnRpZXModGFyZ2V0LCBwcm9wcykgeyBmb3IgKHZhciBpID0gMDsgaSA8IHByb3BzLmxlbmd0aDsgaSsrKSB7IHZhciBkZXNjcmlwdG9yID0gcHJvcHNbaV07IGRlc2NyaXB0b3IuZW51bWVyYWJsZSA9IGRlc2NyaXB0b3IuZW51bWVyYWJsZSB8fCBmYWxzZTsgZGVzY3JpcHRvci5jb25maWd1cmFibGUgPSB0cnVlOyBpZiAoXCJ2YWx1ZVwiIGluIGRlc2NyaXB0b3IpIGRlc2NyaXB0b3Iud3JpdGFibGUgPSB0cnVlOyBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBkZXNjcmlwdG9yLmtleSwgZGVzY3JpcHRvcik7IH0gfSByZXR1cm4gZnVuY3Rpb24gKENvbnN0cnVjdG9yLCBwcm90b1Byb3BzLCBzdGF0aWNQcm9wcykgeyBpZiAocHJvdG9Qcm9wcykgZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvci5wcm90b3R5cGUsIHByb3RvUHJvcHMpOyBpZiAoc3RhdGljUHJvcHMpIGRlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IsIHN0YXRpY1Byb3BzKTsgcmV0dXJuIENvbnN0cnVjdG9yOyB9OyB9KCk7XG5cbnZhciBfcHJvcFR5cGVzID0gX193ZWJwYWNrX3JlcXVpcmVfXygwKTtcblxudmFyIF9wcm9wVHlwZXMyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfcHJvcFR5cGVzKTtcblxudmFyIF9yZWFjdCA9IF9fd2VicGFja19yZXF1aXJlX18oMSk7XG5cbnZhciBfcmVhY3QyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfcmVhY3QpO1xuXG52YXIgX1NwYXJrbGluZXNUZXh0ID0gX193ZWJwYWNrX3JlcXVpcmVfXygxNyk7XG5cbnZhciBfU3BhcmtsaW5lc1RleHQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfU3BhcmtsaW5lc1RleHQpO1xuXG52YXIgX1NwYXJrbGluZXNMaW5lID0gX193ZWJwYWNrX3JlcXVpcmVfXygxOCk7XG5cbnZhciBfU3BhcmtsaW5lc0xpbmUyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfU3BhcmtsaW5lc0xpbmUpO1xuXG52YXIgX1NwYXJrbGluZXNDdXJ2ZSA9IF9fd2VicGFja19yZXF1aXJlX18oMTkpO1xuXG52YXIgX1NwYXJrbGluZXNDdXJ2ZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9TcGFya2xpbmVzQ3VydmUpO1xuXG52YXIgX1NwYXJrbGluZXNCYXJzID0gX193ZWJwYWNrX3JlcXVpcmVfXygyMCk7XG5cbnZhciBfU3BhcmtsaW5lc0JhcnMyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfU3BhcmtsaW5lc0JhcnMpO1xuXG52YXIgX1NwYXJrbGluZXNTcG90cyA9IF9fd2VicGFja19yZXF1aXJlX18oMjEpO1xuXG52YXIgX1NwYXJrbGluZXNTcG90czIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9TcGFya2xpbmVzU3BvdHMpO1xuXG52YXIgX1NwYXJrbGluZXNSZWZlcmVuY2VMaW5lID0gX193ZWJwYWNrX3JlcXVpcmVfXygyMik7XG5cbnZhciBfU3BhcmtsaW5lc1JlZmVyZW5jZUxpbmUyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfU3BhcmtsaW5lc1JlZmVyZW5jZUxpbmUpO1xuXG52YXIgX1NwYXJrbGluZXNOb3JtYWxCYW5kID0gX193ZWJwYWNrX3JlcXVpcmVfXygyNyk7XG5cbnZhciBfU3BhcmtsaW5lc05vcm1hbEJhbmQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfU3BhcmtsaW5lc05vcm1hbEJhbmQpO1xuXG52YXIgX2RhdGFUb1BvaW50cyA9IF9fd2VicGFja19yZXF1aXJlX18oMjgpO1xuXG52YXIgX2RhdGFUb1BvaW50czIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9kYXRhVG9Qb2ludHMpO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBkZWZhdWx0OiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIik7IH0gfVxuXG5mdW5jdGlvbiBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybihzZWxmLCBjYWxsKSB7IGlmICghc2VsZikgeyB0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoXCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWRcIik7IH0gcmV0dXJuIGNhbGwgJiYgKHR5cGVvZiBjYWxsID09PSBcIm9iamVjdFwiIHx8IHR5cGVvZiBjYWxsID09PSBcImZ1bmN0aW9uXCIpID8gY2FsbCA6IHNlbGY7IH1cblxuZnVuY3Rpb24gX2luaGVyaXRzKHN1YkNsYXNzLCBzdXBlckNsYXNzKSB7IGlmICh0eXBlb2Ygc3VwZXJDbGFzcyAhPT0gXCJmdW5jdGlvblwiICYmIHN1cGVyQ2xhc3MgIT09IG51bGwpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uLCBub3QgXCIgKyB0eXBlb2Ygc3VwZXJDbGFzcyk7IH0gc3ViQ2xhc3MucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShzdXBlckNsYXNzICYmIHN1cGVyQ2xhc3MucHJvdG90eXBlLCB7IGNvbnN0cnVjdG9yOiB7IHZhbHVlOiBzdWJDbGFzcywgZW51bWVyYWJsZTogZmFsc2UsIHdyaXRhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUgfSB9KTsgaWYgKHN1cGVyQ2xhc3MpIE9iamVjdC5zZXRQcm90b3R5cGVPZiA/IE9iamVjdC5zZXRQcm90b3R5cGVPZihzdWJDbGFzcywgc3VwZXJDbGFzcykgOiBzdWJDbGFzcy5fX3Byb3RvX18gPSBzdXBlckNsYXNzOyB9XG5cbnZhciBTcGFya2xpbmVzID0gZnVuY3Rpb24gKF9QdXJlQ29tcG9uZW50KSB7XG4gICAgX2luaGVyaXRzKFNwYXJrbGluZXMsIF9QdXJlQ29tcG9uZW50KTtcblxuICAgIGZ1bmN0aW9uIFNwYXJrbGluZXMocHJvcHMpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFNwYXJrbGluZXMpO1xuXG4gICAgICAgIHJldHVybiBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybih0aGlzLCAoU3BhcmtsaW5lcy5fX3Byb3RvX18gfHwgT2JqZWN0LmdldFByb3RvdHlwZU9mKFNwYXJrbGluZXMpKS5jYWxsKHRoaXMsIHByb3BzKSk7XG4gICAgfVxuXG4gICAgX2NyZWF0ZUNsYXNzKFNwYXJrbGluZXMsIFt7XG4gICAgICAgIGtleTogJ3JlbmRlcicsXG4gICAgICAgIHZhbHVlOiBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICAgICAgICB2YXIgX3Byb3BzID0gdGhpcy5wcm9wcyxcbiAgICAgICAgICAgICAgICBkYXRhID0gX3Byb3BzLmRhdGEsXG4gICAgICAgICAgICAgICAgbGltaXQgPSBfcHJvcHMubGltaXQsXG4gICAgICAgICAgICAgICAgd2lkdGggPSBfcHJvcHMud2lkdGgsXG4gICAgICAgICAgICAgICAgaGVpZ2h0ID0gX3Byb3BzLmhlaWdodCxcbiAgICAgICAgICAgICAgICBzdmdXaWR0aCA9IF9wcm9wcy5zdmdXaWR0aCxcbiAgICAgICAgICAgICAgICBzdmdIZWlnaHQgPSBfcHJvcHMuc3ZnSGVpZ2h0LFxuICAgICAgICAgICAgICAgIHByZXNlcnZlQXNwZWN0UmF0aW8gPSBfcHJvcHMucHJlc2VydmVBc3BlY3RSYXRpbyxcbiAgICAgICAgICAgICAgICBtYXJnaW4gPSBfcHJvcHMubWFyZ2luLFxuICAgICAgICAgICAgICAgIHN0eWxlID0gX3Byb3BzLnN0eWxlLFxuICAgICAgICAgICAgICAgIG1heCA9IF9wcm9wcy5tYXgsXG4gICAgICAgICAgICAgICAgbWluID0gX3Byb3BzLm1pbjtcblxuXG4gICAgICAgICAgICBpZiAoZGF0YS5sZW5ndGggPT09IDApIHJldHVybiBudWxsO1xuXG4gICAgICAgICAgICB2YXIgcG9pbnRzID0gKDAsIF9kYXRhVG9Qb2ludHMyLmRlZmF1bHQpKHsgZGF0YTogZGF0YSwgbGltaXQ6IGxpbWl0LCB3aWR0aDogd2lkdGgsIGhlaWdodDogaGVpZ2h0LCBtYXJnaW46IG1hcmdpbiwgbWF4OiBtYXgsIG1pbjogbWluIH0pO1xuXG4gICAgICAgICAgICB2YXIgc3ZnT3B0cyA9IHsgc3R5bGU6IHN0eWxlLCB2aWV3Qm94OiAnMCAwICcgKyB3aWR0aCArICcgJyArIGhlaWdodCwgcHJlc2VydmVBc3BlY3RSYXRpbzogcHJlc2VydmVBc3BlY3RSYXRpbyB9O1xuICAgICAgICAgICAgaWYgKHN2Z1dpZHRoID4gMCkgc3ZnT3B0cy53aWR0aCA9IHN2Z1dpZHRoO1xuICAgICAgICAgICAgaWYgKHN2Z0hlaWdodCA+IDApIHN2Z09wdHMuaGVpZ2h0ID0gc3ZnSGVpZ2h0O1xuXG4gICAgICAgICAgICByZXR1cm4gX3JlYWN0Mi5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAgICAgJ3N2ZycsXG4gICAgICAgICAgICAgICAgc3ZnT3B0cyxcbiAgICAgICAgICAgICAgICBfcmVhY3QyLmRlZmF1bHQuQ2hpbGRyZW4ubWFwKHRoaXMucHJvcHMuY2hpbGRyZW4sIGZ1bmN0aW9uIChjaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gX3JlYWN0Mi5kZWZhdWx0LmNsb25lRWxlbWVudChjaGlsZCwgeyBkYXRhOiBkYXRhLCBwb2ludHM6IHBvaW50cywgd2lkdGg6IHdpZHRoLCBoZWlnaHQ6IGhlaWdodCwgbWFyZ2luOiBtYXJnaW4gfSk7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XSk7XG5cbiAgICByZXR1cm4gU3BhcmtsaW5lcztcbn0oX3JlYWN0LlB1cmVDb21wb25lbnQpO1xuXG5TcGFya2xpbmVzLnByb3BUeXBlcyA9IHtcbiAgICBkYXRhOiBfcHJvcFR5cGVzMi5kZWZhdWx0LmFycmF5LFxuICAgIGxpbWl0OiBfcHJvcFR5cGVzMi5kZWZhdWx0Lm51bWJlcixcbiAgICB3aWR0aDogX3Byb3BUeXBlczIuZGVmYXVsdC5udW1iZXIsXG4gICAgaGVpZ2h0OiBfcHJvcFR5cGVzMi5kZWZhdWx0Lm51bWJlcixcbiAgICBzdmdXaWR0aDogX3Byb3BUeXBlczIuZGVmYXVsdC5udW1iZXIsXG4gICAgc3ZnSGVpZ2h0OiBfcHJvcFR5cGVzMi5kZWZhdWx0Lm51bWJlcixcbiAgICBwcmVzZXJ2ZUFzcGVjdFJhdGlvOiBfcHJvcFR5cGVzMi5kZWZhdWx0LnN0cmluZyxcbiAgICBtYXJnaW46IF9wcm9wVHlwZXMyLmRlZmF1bHQubnVtYmVyLFxuICAgIHN0eWxlOiBfcHJvcFR5cGVzMi5kZWZhdWx0Lm9iamVjdCxcbiAgICBtaW46IF9wcm9wVHlwZXMyLmRlZmF1bHQubnVtYmVyLFxuICAgIG1heDogX3Byb3BUeXBlczIuZGVmYXVsdC5udW1iZXIsXG4gICAgb25Nb3VzZU1vdmU6IF9wcm9wVHlwZXMyLmRlZmF1bHQuZnVuY1xufTtcblNwYXJrbGluZXMuZGVmYXVsdFByb3BzID0ge1xuICAgIGRhdGE6IFtdLFxuICAgIHdpZHRoOiAyNDAsXG4gICAgaGVpZ2h0OiA2MCxcbiAgICAvL1NjYWxlIHRoZSBncmFwaGljIGNvbnRlbnQgb2YgdGhlIGdpdmVuIGVsZW1lbnQgbm9uLXVuaWZvcm1seSBpZiBuZWNlc3Nhcnkgc3VjaCB0aGF0IHRoZSBlbGVtZW50J3MgYm91bmRpbmcgYm94IGV4YWN0bHkgbWF0Y2hlcyB0aGUgdmlld3BvcnQgcmVjdGFuZ2xlLlxuICAgIHByZXNlcnZlQXNwZWN0UmF0aW86ICdub25lJywgLy9odHRwczovL3d3dy53My5vcmcvVFIvU1ZHL2Nvb3Jkcy5odG1sI1ByZXNlcnZlQXNwZWN0UmF0aW9BdHRyaWJ1dGVcbiAgICBtYXJnaW46IDJcbn07XG5leHBvcnRzLlNwYXJrbGluZXMgPSBTcGFya2xpbmVzO1xuZXhwb3J0cy5TcGFya2xpbmVzTGluZSA9IF9TcGFya2xpbmVzTGluZTIuZGVmYXVsdDtcbmV4cG9ydHMuU3BhcmtsaW5lc0N1cnZlID0gX1NwYXJrbGluZXNDdXJ2ZTIuZGVmYXVsdDtcbmV4cG9ydHMuU3BhcmtsaW5lc0JhcnMgPSBfU3BhcmtsaW5lc0JhcnMyLmRlZmF1bHQ7XG5leHBvcnRzLlNwYXJrbGluZXNTcG90cyA9IF9TcGFya2xpbmVzU3BvdHMyLmRlZmF1bHQ7XG5leHBvcnRzLlNwYXJrbGluZXNSZWZlcmVuY2VMaW5lID0gX1NwYXJrbGluZXNSZWZlcmVuY2VMaW5lMi5kZWZhdWx0O1xuZXhwb3J0cy5TcGFya2xpbmVzTm9ybWFsQmFuZCA9IF9TcGFya2xpbmVzTm9ybWFsQmFuZDIuZGVmYXVsdDtcbmV4cG9ydHMuU3BhcmtsaW5lc1RleHQgPSBfU3BhcmtsaW5lc1RleHQyLmRlZmF1bHQ7XG5cbi8qKiovIH0pLFxuLyogMTQgKi9cbi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG4vKiBXRUJQQUNLIFZBUiBJTkpFQ1RJT04gKi8oZnVuY3Rpb24ocHJvY2Vzcykgey8qKlxuICogQ29weXJpZ2h0IDIwMTMtcHJlc2VudCwgRmFjZWJvb2ssIEluYy5cbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgQlNELXN0eWxlIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuIEFuIGFkZGl0aW9uYWwgZ3JhbnRcbiAqIG9mIHBhdGVudCByaWdodHMgY2FuIGJlIGZvdW5kIGluIHRoZSBQQVRFTlRTIGZpbGUgaW4gdGhlIHNhbWUgZGlyZWN0b3J5LlxuICovXG5cblxuXG52YXIgZW1wdHlGdW5jdGlvbiA9IF9fd2VicGFja19yZXF1aXJlX18oNCk7XG52YXIgaW52YXJpYW50ID0gX193ZWJwYWNrX3JlcXVpcmVfXyg1KTtcbnZhciB3YXJuaW5nID0gX193ZWJwYWNrX3JlcXVpcmVfXyg4KTtcblxudmFyIFJlYWN0UHJvcFR5cGVzU2VjcmV0ID0gX193ZWJwYWNrX3JlcXVpcmVfXyg2KTtcbnZhciBjaGVja1Byb3BUeXBlcyA9IF9fd2VicGFja19yZXF1aXJlX18oMTUpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKGlzVmFsaWRFbGVtZW50LCB0aHJvd09uRGlyZWN0QWNjZXNzKSB7XG4gIC8qIGdsb2JhbCBTeW1ib2wgKi9cbiAgdmFyIElURVJBVE9SX1NZTUJPTCA9IHR5cGVvZiBTeW1ib2wgPT09ICdmdW5jdGlvbicgJiYgU3ltYm9sLml0ZXJhdG9yO1xuICB2YXIgRkFVWF9JVEVSQVRPUl9TWU1CT0wgPSAnQEBpdGVyYXRvcic7IC8vIEJlZm9yZSBTeW1ib2wgc3BlYy5cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgaXRlcmF0b3IgbWV0aG9kIGZ1bmN0aW9uIGNvbnRhaW5lZCBvbiB0aGUgaXRlcmFibGUgb2JqZWN0LlxuICAgKlxuICAgKiBCZSBzdXJlIHRvIGludm9rZSB0aGUgZnVuY3Rpb24gd2l0aCB0aGUgaXRlcmFibGUgYXMgY29udGV4dDpcbiAgICpcbiAgICogICAgIHZhciBpdGVyYXRvckZuID0gZ2V0SXRlcmF0b3JGbihteUl0ZXJhYmxlKTtcbiAgICogICAgIGlmIChpdGVyYXRvckZuKSB7XG4gICAqICAgICAgIHZhciBpdGVyYXRvciA9IGl0ZXJhdG9yRm4uY2FsbChteUl0ZXJhYmxlKTtcbiAgICogICAgICAgLi4uXG4gICAqICAgICB9XG4gICAqXG4gICAqIEBwYXJhbSB7P29iamVjdH0gbWF5YmVJdGVyYWJsZVxuICAgKiBAcmV0dXJuIHs/ZnVuY3Rpb259XG4gICAqL1xuICBmdW5jdGlvbiBnZXRJdGVyYXRvckZuKG1heWJlSXRlcmFibGUpIHtcbiAgICB2YXIgaXRlcmF0b3JGbiA9IG1heWJlSXRlcmFibGUgJiYgKElURVJBVE9SX1NZTUJPTCAmJiBtYXliZUl0ZXJhYmxlW0lURVJBVE9SX1NZTUJPTF0gfHwgbWF5YmVJdGVyYWJsZVtGQVVYX0lURVJBVE9SX1NZTUJPTF0pO1xuICAgIGlmICh0eXBlb2YgaXRlcmF0b3JGbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgcmV0dXJuIGl0ZXJhdG9yRm47XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENvbGxlY3Rpb24gb2YgbWV0aG9kcyB0aGF0IGFsbG93IGRlY2xhcmF0aW9uIGFuZCB2YWxpZGF0aW9uIG9mIHByb3BzIHRoYXQgYXJlXG4gICAqIHN1cHBsaWVkIHRvIFJlYWN0IGNvbXBvbmVudHMuIEV4YW1wbGUgdXNhZ2U6XG4gICAqXG4gICAqICAgdmFyIFByb3BzID0gcmVxdWlyZSgnUmVhY3RQcm9wVHlwZXMnKTtcbiAgICogICB2YXIgTXlBcnRpY2xlID0gUmVhY3QuY3JlYXRlQ2xhc3Moe1xuICAgKiAgICAgcHJvcFR5cGVzOiB7XG4gICAqICAgICAgIC8vIEFuIG9wdGlvbmFsIHN0cmluZyBwcm9wIG5hbWVkIFwiZGVzY3JpcHRpb25cIi5cbiAgICogICAgICAgZGVzY3JpcHRpb246IFByb3BzLnN0cmluZyxcbiAgICpcbiAgICogICAgICAgLy8gQSByZXF1aXJlZCBlbnVtIHByb3AgbmFtZWQgXCJjYXRlZ29yeVwiLlxuICAgKiAgICAgICBjYXRlZ29yeTogUHJvcHMub25lT2YoWydOZXdzJywnUGhvdG9zJ10pLmlzUmVxdWlyZWQsXG4gICAqXG4gICAqICAgICAgIC8vIEEgcHJvcCBuYW1lZCBcImRpYWxvZ1wiIHRoYXQgcmVxdWlyZXMgYW4gaW5zdGFuY2Ugb2YgRGlhbG9nLlxuICAgKiAgICAgICBkaWFsb2c6IFByb3BzLmluc3RhbmNlT2YoRGlhbG9nKS5pc1JlcXVpcmVkXG4gICAqICAgICB9LFxuICAgKiAgICAgcmVuZGVyOiBmdW5jdGlvbigpIHsgLi4uIH1cbiAgICogICB9KTtcbiAgICpcbiAgICogQSBtb3JlIGZvcm1hbCBzcGVjaWZpY2F0aW9uIG9mIGhvdyB0aGVzZSBtZXRob2RzIGFyZSB1c2VkOlxuICAgKlxuICAgKiAgIHR5cGUgOj0gYXJyYXl8Ym9vbHxmdW5jfG9iamVjdHxudW1iZXJ8c3RyaW5nfG9uZU9mKFsuLi5dKXxpbnN0YW5jZU9mKC4uLilcbiAgICogICBkZWNsIDo9IFJlYWN0UHJvcFR5cGVzLnt0eXBlfSguaXNSZXF1aXJlZCk/XG4gICAqXG4gICAqIEVhY2ggYW5kIGV2ZXJ5IGRlY2xhcmF0aW9uIHByb2R1Y2VzIGEgZnVuY3Rpb24gd2l0aCB0aGUgc2FtZSBzaWduYXR1cmUuIFRoaXNcbiAgICogYWxsb3dzIHRoZSBjcmVhdGlvbiBvZiBjdXN0b20gdmFsaWRhdGlvbiBmdW5jdGlvbnMuIEZvciBleGFtcGxlOlxuICAgKlxuICAgKiAgdmFyIE15TGluayA9IFJlYWN0LmNyZWF0ZUNsYXNzKHtcbiAgICogICAgcHJvcFR5cGVzOiB7XG4gICAqICAgICAgLy8gQW4gb3B0aW9uYWwgc3RyaW5nIG9yIFVSSSBwcm9wIG5hbWVkIFwiaHJlZlwiLlxuICAgKiAgICAgIGhyZWY6IGZ1bmN0aW9uKHByb3BzLCBwcm9wTmFtZSwgY29tcG9uZW50TmFtZSkge1xuICAgKiAgICAgICAgdmFyIHByb3BWYWx1ZSA9IHByb3BzW3Byb3BOYW1lXTtcbiAgICogICAgICAgIGlmIChwcm9wVmFsdWUgIT0gbnVsbCAmJiB0eXBlb2YgcHJvcFZhbHVlICE9PSAnc3RyaW5nJyAmJlxuICAgKiAgICAgICAgICAgICEocHJvcFZhbHVlIGluc3RhbmNlb2YgVVJJKSkge1xuICAgKiAgICAgICAgICByZXR1cm4gbmV3IEVycm9yKFxuICAgKiAgICAgICAgICAgICdFeHBlY3RlZCBhIHN0cmluZyBvciBhbiBVUkkgZm9yICcgKyBwcm9wTmFtZSArICcgaW4gJyArXG4gICAqICAgICAgICAgICAgY29tcG9uZW50TmFtZVxuICAgKiAgICAgICAgICApO1xuICAgKiAgICAgICAgfVxuICAgKiAgICAgIH1cbiAgICogICAgfSxcbiAgICogICAgcmVuZGVyOiBmdW5jdGlvbigpIHsuLi59XG4gICAqICB9KTtcbiAgICpcbiAgICogQGludGVybmFsXG4gICAqL1xuXG4gIHZhciBBTk9OWU1PVVMgPSAnPDxhbm9ueW1vdXM+Pic7XG5cbiAgLy8gSW1wb3J0YW50IVxuICAvLyBLZWVwIHRoaXMgbGlzdCBpbiBzeW5jIHdpdGggcHJvZHVjdGlvbiB2ZXJzaW9uIGluIGAuL2ZhY3RvcnlXaXRoVGhyb3dpbmdTaGltcy5qc2AuXG4gIHZhciBSZWFjdFByb3BUeXBlcyA9IHtcbiAgICBhcnJheTogY3JlYXRlUHJpbWl0aXZlVHlwZUNoZWNrZXIoJ2FycmF5JyksXG4gICAgYm9vbDogY3JlYXRlUHJpbWl0aXZlVHlwZUNoZWNrZXIoJ2Jvb2xlYW4nKSxcbiAgICBmdW5jOiBjcmVhdGVQcmltaXRpdmVUeXBlQ2hlY2tlcignZnVuY3Rpb24nKSxcbiAgICBudW1iZXI6IGNyZWF0ZVByaW1pdGl2ZVR5cGVDaGVja2VyKCdudW1iZXInKSxcbiAgICBvYmplY3Q6IGNyZWF0ZVByaW1pdGl2ZVR5cGVDaGVja2VyKCdvYmplY3QnKSxcbiAgICBzdHJpbmc6IGNyZWF0ZVByaW1pdGl2ZVR5cGVDaGVja2VyKCdzdHJpbmcnKSxcbiAgICBzeW1ib2w6IGNyZWF0ZVByaW1pdGl2ZVR5cGVDaGVja2VyKCdzeW1ib2wnKSxcblxuICAgIGFueTogY3JlYXRlQW55VHlwZUNoZWNrZXIoKSxcbiAgICBhcnJheU9mOiBjcmVhdGVBcnJheU9mVHlwZUNoZWNrZXIsXG4gICAgZWxlbWVudDogY3JlYXRlRWxlbWVudFR5cGVDaGVja2VyKCksXG4gICAgaW5zdGFuY2VPZjogY3JlYXRlSW5zdGFuY2VUeXBlQ2hlY2tlcixcbiAgICBub2RlOiBjcmVhdGVOb2RlQ2hlY2tlcigpLFxuICAgIG9iamVjdE9mOiBjcmVhdGVPYmplY3RPZlR5cGVDaGVja2VyLFxuICAgIG9uZU9mOiBjcmVhdGVFbnVtVHlwZUNoZWNrZXIsXG4gICAgb25lT2ZUeXBlOiBjcmVhdGVVbmlvblR5cGVDaGVja2VyLFxuICAgIHNoYXBlOiBjcmVhdGVTaGFwZVR5cGVDaGVja2VyXG4gIH07XG5cbiAgLyoqXG4gICAqIGlubGluZWQgT2JqZWN0LmlzIHBvbHlmaWxsIHRvIGF2b2lkIHJlcXVpcmluZyBjb25zdW1lcnMgc2hpcCB0aGVpciBvd25cbiAgICogaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSmF2YVNjcmlwdC9SZWZlcmVuY2UvR2xvYmFsX09iamVjdHMvT2JqZWN0L2lzXG4gICAqL1xuICAvKmVzbGludC1kaXNhYmxlIG5vLXNlbGYtY29tcGFyZSovXG4gIGZ1bmN0aW9uIGlzKHgsIHkpIHtcbiAgICAvLyBTYW1lVmFsdWUgYWxnb3JpdGhtXG4gICAgaWYgKHggPT09IHkpIHtcbiAgICAgIC8vIFN0ZXBzIDEtNSwgNy0xMFxuICAgICAgLy8gU3RlcHMgNi5iLTYuZTogKzAgIT0gLTBcbiAgICAgIHJldHVybiB4ICE9PSAwIHx8IDEgLyB4ID09PSAxIC8geTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gU3RlcCA2LmE6IE5hTiA9PSBOYU5cbiAgICAgIHJldHVybiB4ICE9PSB4ICYmIHkgIT09IHk7XG4gICAgfVxuICB9XG4gIC8qZXNsaW50LWVuYWJsZSBuby1zZWxmLWNvbXBhcmUqL1xuXG4gIC8qKlxuICAgKiBXZSB1c2UgYW4gRXJyb3ItbGlrZSBvYmplY3QgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgYXMgcGVvcGxlIG1heSBjYWxsXG4gICAqIFByb3BUeXBlcyBkaXJlY3RseSBhbmQgaW5zcGVjdCB0aGVpciBvdXRwdXQuIEhvd2V2ZXIsIHdlIGRvbid0IHVzZSByZWFsXG4gICAqIEVycm9ycyBhbnltb3JlLiBXZSBkb24ndCBpbnNwZWN0IHRoZWlyIHN0YWNrIGFueXdheSwgYW5kIGNyZWF0aW5nIHRoZW1cbiAgICogaXMgcHJvaGliaXRpdmVseSBleHBlbnNpdmUgaWYgdGhleSBhcmUgY3JlYXRlZCB0b28gb2Z0ZW4sIHN1Y2ggYXMgd2hhdFxuICAgKiBoYXBwZW5zIGluIG9uZU9mVHlwZSgpIGZvciBhbnkgdHlwZSBiZWZvcmUgdGhlIG9uZSB0aGF0IG1hdGNoZWQuXG4gICAqL1xuICBmdW5jdGlvbiBQcm9wVHlwZUVycm9yKG1lc3NhZ2UpIHtcbiAgICB0aGlzLm1lc3NhZ2UgPSBtZXNzYWdlO1xuICAgIHRoaXMuc3RhY2sgPSAnJztcbiAgfVxuICAvLyBNYWtlIGBpbnN0YW5jZW9mIEVycm9yYCBzdGlsbCB3b3JrIGZvciByZXR1cm5lZCBlcnJvcnMuXG4gIFByb3BUeXBlRXJyb3IucHJvdG90eXBlID0gRXJyb3IucHJvdG90eXBlO1xuXG4gIGZ1bmN0aW9uIGNyZWF0ZUNoYWluYWJsZVR5cGVDaGVja2VyKHZhbGlkYXRlKSB7XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgIHZhciBtYW51YWxQcm9wVHlwZUNhbGxDYWNoZSA9IHt9O1xuICAgICAgdmFyIG1hbnVhbFByb3BUeXBlV2FybmluZ0NvdW50ID0gMDtcbiAgICB9XG4gICAgZnVuY3Rpb24gY2hlY2tUeXBlKGlzUmVxdWlyZWQsIHByb3BzLCBwcm9wTmFtZSwgY29tcG9uZW50TmFtZSwgbG9jYXRpb24sIHByb3BGdWxsTmFtZSwgc2VjcmV0KSB7XG4gICAgICBjb21wb25lbnROYW1lID0gY29tcG9uZW50TmFtZSB8fCBBTk9OWU1PVVM7XG4gICAgICBwcm9wRnVsbE5hbWUgPSBwcm9wRnVsbE5hbWUgfHwgcHJvcE5hbWU7XG5cbiAgICAgIGlmIChzZWNyZXQgIT09IFJlYWN0UHJvcFR5cGVzU2VjcmV0KSB7XG4gICAgICAgIGlmICh0aHJvd09uRGlyZWN0QWNjZXNzKSB7XG4gICAgICAgICAgLy8gTmV3IGJlaGF2aW9yIG9ubHkgZm9yIHVzZXJzIG9mIGBwcm9wLXR5cGVzYCBwYWNrYWdlXG4gICAgICAgICAgaW52YXJpYW50KFxuICAgICAgICAgICAgZmFsc2UsXG4gICAgICAgICAgICAnQ2FsbGluZyBQcm9wVHlwZXMgdmFsaWRhdG9ycyBkaXJlY3RseSBpcyBub3Qgc3VwcG9ydGVkIGJ5IHRoZSBgcHJvcC10eXBlc2AgcGFja2FnZS4gJyArXG4gICAgICAgICAgICAnVXNlIGBQcm9wVHlwZXMuY2hlY2tQcm9wVHlwZXMoKWAgdG8gY2FsbCB0aGVtLiAnICtcbiAgICAgICAgICAgICdSZWFkIG1vcmUgYXQgaHR0cDovL2ZiLm1lL3VzZS1jaGVjay1wcm9wLXR5cGVzJ1xuICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyAmJiB0eXBlb2YgY29uc29sZSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAvLyBPbGQgYmVoYXZpb3IgZm9yIHBlb3BsZSB1c2luZyBSZWFjdC5Qcm9wVHlwZXNcbiAgICAgICAgICB2YXIgY2FjaGVLZXkgPSBjb21wb25lbnROYW1lICsgJzonICsgcHJvcE5hbWU7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgIW1hbnVhbFByb3BUeXBlQ2FsbENhY2hlW2NhY2hlS2V5XSAmJlxuICAgICAgICAgICAgLy8gQXZvaWQgc3BhbW1pbmcgdGhlIGNvbnNvbGUgYmVjYXVzZSB0aGV5IGFyZSBvZnRlbiBub3QgYWN0aW9uYWJsZSBleGNlcHQgZm9yIGxpYiBhdXRob3JzXG4gICAgICAgICAgICBtYW51YWxQcm9wVHlwZVdhcm5pbmdDb3VudCA8IDNcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHdhcm5pbmcoXG4gICAgICAgICAgICAgIGZhbHNlLFxuICAgICAgICAgICAgICAnWW91IGFyZSBtYW51YWxseSBjYWxsaW5nIGEgUmVhY3QuUHJvcFR5cGVzIHZhbGlkYXRpb24gJyArXG4gICAgICAgICAgICAgICdmdW5jdGlvbiBmb3IgdGhlIGAlc2AgcHJvcCBvbiBgJXNgLiBUaGlzIGlzIGRlcHJlY2F0ZWQgJyArXG4gICAgICAgICAgICAgICdhbmQgd2lsbCB0aHJvdyBpbiB0aGUgc3RhbmRhbG9uZSBgcHJvcC10eXBlc2AgcGFja2FnZS4gJyArXG4gICAgICAgICAgICAgICdZb3UgbWF5IGJlIHNlZWluZyB0aGlzIHdhcm5pbmcgZHVlIHRvIGEgdGhpcmQtcGFydHkgUHJvcFR5cGVzICcgK1xuICAgICAgICAgICAgICAnbGlicmFyeS4gU2VlIGh0dHBzOi8vZmIubWUvcmVhY3Qtd2FybmluZy1kb250LWNhbGwtcHJvcHR5cGVzICcgKyAnZm9yIGRldGFpbHMuJyxcbiAgICAgICAgICAgICAgcHJvcEZ1bGxOYW1lLFxuICAgICAgICAgICAgICBjb21wb25lbnROYW1lXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgbWFudWFsUHJvcFR5cGVDYWxsQ2FjaGVbY2FjaGVLZXldID0gdHJ1ZTtcbiAgICAgICAgICAgIG1hbnVhbFByb3BUeXBlV2FybmluZ0NvdW50Kys7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAocHJvcHNbcHJvcE5hbWVdID09IG51bGwpIHtcbiAgICAgICAgaWYgKGlzUmVxdWlyZWQpIHtcbiAgICAgICAgICBpZiAocHJvcHNbcHJvcE5hbWVdID09PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IFByb3BUeXBlRXJyb3IoJ1RoZSAnICsgbG9jYXRpb24gKyAnIGAnICsgcHJvcEZ1bGxOYW1lICsgJ2AgaXMgbWFya2VkIGFzIHJlcXVpcmVkICcgKyAoJ2luIGAnICsgY29tcG9uZW50TmFtZSArICdgLCBidXQgaXRzIHZhbHVlIGlzIGBudWxsYC4nKSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBuZXcgUHJvcFR5cGVFcnJvcignVGhlICcgKyBsb2NhdGlvbiArICcgYCcgKyBwcm9wRnVsbE5hbWUgKyAnYCBpcyBtYXJrZWQgYXMgcmVxdWlyZWQgaW4gJyArICgnYCcgKyBjb21wb25lbnROYW1lICsgJ2AsIGJ1dCBpdHMgdmFsdWUgaXMgYHVuZGVmaW5lZGAuJykpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHZhbGlkYXRlKHByb3BzLCBwcm9wTmFtZSwgY29tcG9uZW50TmFtZSwgbG9jYXRpb24sIHByb3BGdWxsTmFtZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdmFyIGNoYWluZWRDaGVja1R5cGUgPSBjaGVja1R5cGUuYmluZChudWxsLCBmYWxzZSk7XG4gICAgY2hhaW5lZENoZWNrVHlwZS5pc1JlcXVpcmVkID0gY2hlY2tUeXBlLmJpbmQobnVsbCwgdHJ1ZSk7XG5cbiAgICByZXR1cm4gY2hhaW5lZENoZWNrVHlwZTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGNyZWF0ZVByaW1pdGl2ZVR5cGVDaGVja2VyKGV4cGVjdGVkVHlwZSkge1xuICAgIGZ1bmN0aW9uIHZhbGlkYXRlKHByb3BzLCBwcm9wTmFtZSwgY29tcG9uZW50TmFtZSwgbG9jYXRpb24sIHByb3BGdWxsTmFtZSwgc2VjcmV0KSB7XG4gICAgICB2YXIgcHJvcFZhbHVlID0gcHJvcHNbcHJvcE5hbWVdO1xuICAgICAgdmFyIHByb3BUeXBlID0gZ2V0UHJvcFR5cGUocHJvcFZhbHVlKTtcbiAgICAgIGlmIChwcm9wVHlwZSAhPT0gZXhwZWN0ZWRUeXBlKSB7XG4gICAgICAgIC8vIGBwcm9wVmFsdWVgIGJlaW5nIGluc3RhbmNlIG9mLCBzYXksIGRhdGUvcmVnZXhwLCBwYXNzIHRoZSAnb2JqZWN0J1xuICAgICAgICAvLyBjaGVjaywgYnV0IHdlIGNhbiBvZmZlciBhIG1vcmUgcHJlY2lzZSBlcnJvciBtZXNzYWdlIGhlcmUgcmF0aGVyIHRoYW5cbiAgICAgICAgLy8gJ29mIHR5cGUgYG9iamVjdGAnLlxuICAgICAgICB2YXIgcHJlY2lzZVR5cGUgPSBnZXRQcmVjaXNlVHlwZShwcm9wVmFsdWUpO1xuXG4gICAgICAgIHJldHVybiBuZXcgUHJvcFR5cGVFcnJvcignSW52YWxpZCAnICsgbG9jYXRpb24gKyAnIGAnICsgcHJvcEZ1bGxOYW1lICsgJ2Agb2YgdHlwZSAnICsgKCdgJyArIHByZWNpc2VUeXBlICsgJ2Agc3VwcGxpZWQgdG8gYCcgKyBjb21wb25lbnROYW1lICsgJ2AsIGV4cGVjdGVkICcpICsgKCdgJyArIGV4cGVjdGVkVHlwZSArICdgLicpKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gY3JlYXRlQ2hhaW5hYmxlVHlwZUNoZWNrZXIodmFsaWRhdGUpO1xuICB9XG5cbiAgZnVuY3Rpb24gY3JlYXRlQW55VHlwZUNoZWNrZXIoKSB7XG4gICAgcmV0dXJuIGNyZWF0ZUNoYWluYWJsZVR5cGVDaGVja2VyKGVtcHR5RnVuY3Rpb24udGhhdFJldHVybnNOdWxsKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGNyZWF0ZUFycmF5T2ZUeXBlQ2hlY2tlcih0eXBlQ2hlY2tlcikge1xuICAgIGZ1bmN0aW9uIHZhbGlkYXRlKHByb3BzLCBwcm9wTmFtZSwgY29tcG9uZW50TmFtZSwgbG9jYXRpb24sIHByb3BGdWxsTmFtZSkge1xuICAgICAgaWYgKHR5cGVvZiB0eXBlQ2hlY2tlciAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICByZXR1cm4gbmV3IFByb3BUeXBlRXJyb3IoJ1Byb3BlcnR5IGAnICsgcHJvcEZ1bGxOYW1lICsgJ2Agb2YgY29tcG9uZW50IGAnICsgY29tcG9uZW50TmFtZSArICdgIGhhcyBpbnZhbGlkIFByb3BUeXBlIG5vdGF0aW9uIGluc2lkZSBhcnJheU9mLicpO1xuICAgICAgfVxuICAgICAgdmFyIHByb3BWYWx1ZSA9IHByb3BzW3Byb3BOYW1lXTtcbiAgICAgIGlmICghQXJyYXkuaXNBcnJheShwcm9wVmFsdWUpKSB7XG4gICAgICAgIHZhciBwcm9wVHlwZSA9IGdldFByb3BUeXBlKHByb3BWYWx1ZSk7XG4gICAgICAgIHJldHVybiBuZXcgUHJvcFR5cGVFcnJvcignSW52YWxpZCAnICsgbG9jYXRpb24gKyAnIGAnICsgcHJvcEZ1bGxOYW1lICsgJ2Agb2YgdHlwZSAnICsgKCdgJyArIHByb3BUeXBlICsgJ2Agc3VwcGxpZWQgdG8gYCcgKyBjb21wb25lbnROYW1lICsgJ2AsIGV4cGVjdGVkIGFuIGFycmF5LicpKTtcbiAgICAgIH1cbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcHJvcFZhbHVlLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHZhciBlcnJvciA9IHR5cGVDaGVja2VyKHByb3BWYWx1ZSwgaSwgY29tcG9uZW50TmFtZSwgbG9jYXRpb24sIHByb3BGdWxsTmFtZSArICdbJyArIGkgKyAnXScsIFJlYWN0UHJvcFR5cGVzU2VjcmV0KTtcbiAgICAgICAgaWYgKGVycm9yIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgICAgICByZXR1cm4gZXJyb3I7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gY3JlYXRlQ2hhaW5hYmxlVHlwZUNoZWNrZXIodmFsaWRhdGUpO1xuICB9XG5cbiAgZnVuY3Rpb24gY3JlYXRlRWxlbWVudFR5cGVDaGVja2VyKCkge1xuICAgIGZ1bmN0aW9uIHZhbGlkYXRlKHByb3BzLCBwcm9wTmFtZSwgY29tcG9uZW50TmFtZSwgbG9jYXRpb24sIHByb3BGdWxsTmFtZSkge1xuICAgICAgdmFyIHByb3BWYWx1ZSA9IHByb3BzW3Byb3BOYW1lXTtcbiAgICAgIGlmICghaXNWYWxpZEVsZW1lbnQocHJvcFZhbHVlKSkge1xuICAgICAgICB2YXIgcHJvcFR5cGUgPSBnZXRQcm9wVHlwZShwcm9wVmFsdWUpO1xuICAgICAgICByZXR1cm4gbmV3IFByb3BUeXBlRXJyb3IoJ0ludmFsaWQgJyArIGxvY2F0aW9uICsgJyBgJyArIHByb3BGdWxsTmFtZSArICdgIG9mIHR5cGUgJyArICgnYCcgKyBwcm9wVHlwZSArICdgIHN1cHBsaWVkIHRvIGAnICsgY29tcG9uZW50TmFtZSArICdgLCBleHBlY3RlZCBhIHNpbmdsZSBSZWFjdEVsZW1lbnQuJykpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHJldHVybiBjcmVhdGVDaGFpbmFibGVUeXBlQ2hlY2tlcih2YWxpZGF0ZSk7XG4gIH1cblxuICBmdW5jdGlvbiBjcmVhdGVJbnN0YW5jZVR5cGVDaGVja2VyKGV4cGVjdGVkQ2xhc3MpIHtcbiAgICBmdW5jdGlvbiB2YWxpZGF0ZShwcm9wcywgcHJvcE5hbWUsIGNvbXBvbmVudE5hbWUsIGxvY2F0aW9uLCBwcm9wRnVsbE5hbWUpIHtcbiAgICAgIGlmICghKHByb3BzW3Byb3BOYW1lXSBpbnN0YW5jZW9mIGV4cGVjdGVkQ2xhc3MpKSB7XG4gICAgICAgIHZhciBleHBlY3RlZENsYXNzTmFtZSA9IGV4cGVjdGVkQ2xhc3MubmFtZSB8fCBBTk9OWU1PVVM7XG4gICAgICAgIHZhciBhY3R1YWxDbGFzc05hbWUgPSBnZXRDbGFzc05hbWUocHJvcHNbcHJvcE5hbWVdKTtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9wVHlwZUVycm9yKCdJbnZhbGlkICcgKyBsb2NhdGlvbiArICcgYCcgKyBwcm9wRnVsbE5hbWUgKyAnYCBvZiB0eXBlICcgKyAoJ2AnICsgYWN0dWFsQ2xhc3NOYW1lICsgJ2Agc3VwcGxpZWQgdG8gYCcgKyBjb21wb25lbnROYW1lICsgJ2AsIGV4cGVjdGVkICcpICsgKCdpbnN0YW5jZSBvZiBgJyArIGV4cGVjdGVkQ2xhc3NOYW1lICsgJ2AuJykpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHJldHVybiBjcmVhdGVDaGFpbmFibGVUeXBlQ2hlY2tlcih2YWxpZGF0ZSk7XG4gIH1cblxuICBmdW5jdGlvbiBjcmVhdGVFbnVtVHlwZUNoZWNrZXIoZXhwZWN0ZWRWYWx1ZXMpIHtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkoZXhwZWN0ZWRWYWx1ZXMpKSB7XG4gICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gd2FybmluZyhmYWxzZSwgJ0ludmFsaWQgYXJndW1lbnQgc3VwcGxpZWQgdG8gb25lT2YsIGV4cGVjdGVkIGFuIGluc3RhbmNlIG9mIGFycmF5LicpIDogdm9pZCAwO1xuICAgICAgcmV0dXJuIGVtcHR5RnVuY3Rpb24udGhhdFJldHVybnNOdWxsO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHZhbGlkYXRlKHByb3BzLCBwcm9wTmFtZSwgY29tcG9uZW50TmFtZSwgbG9jYXRpb24sIHByb3BGdWxsTmFtZSkge1xuICAgICAgdmFyIHByb3BWYWx1ZSA9IHByb3BzW3Byb3BOYW1lXTtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZXhwZWN0ZWRWYWx1ZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgaWYgKGlzKHByb3BWYWx1ZSwgZXhwZWN0ZWRWYWx1ZXNbaV0pKSB7XG4gICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgdmFyIHZhbHVlc1N0cmluZyA9IEpTT04uc3RyaW5naWZ5KGV4cGVjdGVkVmFsdWVzKTtcbiAgICAgIHJldHVybiBuZXcgUHJvcFR5cGVFcnJvcignSW52YWxpZCAnICsgbG9jYXRpb24gKyAnIGAnICsgcHJvcEZ1bGxOYW1lICsgJ2Agb2YgdmFsdWUgYCcgKyBwcm9wVmFsdWUgKyAnYCAnICsgKCdzdXBwbGllZCB0byBgJyArIGNvbXBvbmVudE5hbWUgKyAnYCwgZXhwZWN0ZWQgb25lIG9mICcgKyB2YWx1ZXNTdHJpbmcgKyAnLicpKTtcbiAgICB9XG4gICAgcmV0dXJuIGNyZWF0ZUNoYWluYWJsZVR5cGVDaGVja2VyKHZhbGlkYXRlKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGNyZWF0ZU9iamVjdE9mVHlwZUNoZWNrZXIodHlwZUNoZWNrZXIpIHtcbiAgICBmdW5jdGlvbiB2YWxpZGF0ZShwcm9wcywgcHJvcE5hbWUsIGNvbXBvbmVudE5hbWUsIGxvY2F0aW9uLCBwcm9wRnVsbE5hbWUpIHtcbiAgICAgIGlmICh0eXBlb2YgdHlwZUNoZWNrZXIgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9wVHlwZUVycm9yKCdQcm9wZXJ0eSBgJyArIHByb3BGdWxsTmFtZSArICdgIG9mIGNvbXBvbmVudCBgJyArIGNvbXBvbmVudE5hbWUgKyAnYCBoYXMgaW52YWxpZCBQcm9wVHlwZSBub3RhdGlvbiBpbnNpZGUgb2JqZWN0T2YuJyk7XG4gICAgICB9XG4gICAgICB2YXIgcHJvcFZhbHVlID0gcHJvcHNbcHJvcE5hbWVdO1xuICAgICAgdmFyIHByb3BUeXBlID0gZ2V0UHJvcFR5cGUocHJvcFZhbHVlKTtcbiAgICAgIGlmIChwcm9wVHlwZSAhPT0gJ29iamVjdCcpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9wVHlwZUVycm9yKCdJbnZhbGlkICcgKyBsb2NhdGlvbiArICcgYCcgKyBwcm9wRnVsbE5hbWUgKyAnYCBvZiB0eXBlICcgKyAoJ2AnICsgcHJvcFR5cGUgKyAnYCBzdXBwbGllZCB0byBgJyArIGNvbXBvbmVudE5hbWUgKyAnYCwgZXhwZWN0ZWQgYW4gb2JqZWN0LicpKTtcbiAgICAgIH1cbiAgICAgIGZvciAodmFyIGtleSBpbiBwcm9wVmFsdWUpIHtcbiAgICAgICAgaWYgKHByb3BWYWx1ZS5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG4gICAgICAgICAgdmFyIGVycm9yID0gdHlwZUNoZWNrZXIocHJvcFZhbHVlLCBrZXksIGNvbXBvbmVudE5hbWUsIGxvY2F0aW9uLCBwcm9wRnVsbE5hbWUgKyAnLicgKyBrZXksIFJlYWN0UHJvcFR5cGVzU2VjcmV0KTtcbiAgICAgICAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgICAgICAgcmV0dXJuIGVycm9yO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHJldHVybiBjcmVhdGVDaGFpbmFibGVUeXBlQ2hlY2tlcih2YWxpZGF0ZSk7XG4gIH1cblxuICBmdW5jdGlvbiBjcmVhdGVVbmlvblR5cGVDaGVja2VyKGFycmF5T2ZUeXBlQ2hlY2tlcnMpIHtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkoYXJyYXlPZlR5cGVDaGVja2VycykpIHtcbiAgICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyB3YXJuaW5nKGZhbHNlLCAnSW52YWxpZCBhcmd1bWVudCBzdXBwbGllZCB0byBvbmVPZlR5cGUsIGV4cGVjdGVkIGFuIGluc3RhbmNlIG9mIGFycmF5LicpIDogdm9pZCAwO1xuICAgICAgcmV0dXJuIGVtcHR5RnVuY3Rpb24udGhhdFJldHVybnNOdWxsO1xuICAgIH1cblxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXJyYXlPZlR5cGVDaGVja2Vycy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIGNoZWNrZXIgPSBhcnJheU9mVHlwZUNoZWNrZXJzW2ldO1xuICAgICAgaWYgKHR5cGVvZiBjaGVja2VyICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHdhcm5pbmcoXG4gICAgICAgICAgZmFsc2UsXG4gICAgICAgICAgJ0ludmFsaWQgYXJndW1lbnQgc3VwcGxpZCB0byBvbmVPZlR5cGUuIEV4cGVjdGVkIGFuIGFycmF5IG9mIGNoZWNrIGZ1bmN0aW9ucywgYnV0ICcgK1xuICAgICAgICAgICdyZWNlaXZlZCAlcyBhdCBpbmRleCAlcy4nLFxuICAgICAgICAgIGdldFBvc3RmaXhGb3JUeXBlV2FybmluZyhjaGVja2VyKSxcbiAgICAgICAgICBpXG4gICAgICAgICk7XG4gICAgICAgIHJldHVybiBlbXB0eUZ1bmN0aW9uLnRoYXRSZXR1cm5zTnVsbDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiB2YWxpZGF0ZShwcm9wcywgcHJvcE5hbWUsIGNvbXBvbmVudE5hbWUsIGxvY2F0aW9uLCBwcm9wRnVsbE5hbWUpIHtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXJyYXlPZlR5cGVDaGVja2Vycy5sZW5ndGg7IGkrKykge1xuICAgICAgICB2YXIgY2hlY2tlciA9IGFycmF5T2ZUeXBlQ2hlY2tlcnNbaV07XG4gICAgICAgIGlmIChjaGVja2VyKHByb3BzLCBwcm9wTmFtZSwgY29tcG9uZW50TmFtZSwgbG9jYXRpb24sIHByb3BGdWxsTmFtZSwgUmVhY3RQcm9wVHlwZXNTZWNyZXQpID09IG51bGwpIHtcbiAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gbmV3IFByb3BUeXBlRXJyb3IoJ0ludmFsaWQgJyArIGxvY2F0aW9uICsgJyBgJyArIHByb3BGdWxsTmFtZSArICdgIHN1cHBsaWVkIHRvICcgKyAoJ2AnICsgY29tcG9uZW50TmFtZSArICdgLicpKTtcbiAgICB9XG4gICAgcmV0dXJuIGNyZWF0ZUNoYWluYWJsZVR5cGVDaGVja2VyKHZhbGlkYXRlKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGNyZWF0ZU5vZGVDaGVja2VyKCkge1xuICAgIGZ1bmN0aW9uIHZhbGlkYXRlKHByb3BzLCBwcm9wTmFtZSwgY29tcG9uZW50TmFtZSwgbG9jYXRpb24sIHByb3BGdWxsTmFtZSkge1xuICAgICAgaWYgKCFpc05vZGUocHJvcHNbcHJvcE5hbWVdKSkge1xuICAgICAgICByZXR1cm4gbmV3IFByb3BUeXBlRXJyb3IoJ0ludmFsaWQgJyArIGxvY2F0aW9uICsgJyBgJyArIHByb3BGdWxsTmFtZSArICdgIHN1cHBsaWVkIHRvICcgKyAoJ2AnICsgY29tcG9uZW50TmFtZSArICdgLCBleHBlY3RlZCBhIFJlYWN0Tm9kZS4nKSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIGNyZWF0ZUNoYWluYWJsZVR5cGVDaGVja2VyKHZhbGlkYXRlKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGNyZWF0ZVNoYXBlVHlwZUNoZWNrZXIoc2hhcGVUeXBlcykge1xuICAgIGZ1bmN0aW9uIHZhbGlkYXRlKHByb3BzLCBwcm9wTmFtZSwgY29tcG9uZW50TmFtZSwgbG9jYXRpb24sIHByb3BGdWxsTmFtZSkge1xuICAgICAgdmFyIHByb3BWYWx1ZSA9IHByb3BzW3Byb3BOYW1lXTtcbiAgICAgIHZhciBwcm9wVHlwZSA9IGdldFByb3BUeXBlKHByb3BWYWx1ZSk7XG4gICAgICBpZiAocHJvcFR5cGUgIT09ICdvYmplY3QnKSB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvcFR5cGVFcnJvcignSW52YWxpZCAnICsgbG9jYXRpb24gKyAnIGAnICsgcHJvcEZ1bGxOYW1lICsgJ2Agb2YgdHlwZSBgJyArIHByb3BUeXBlICsgJ2AgJyArICgnc3VwcGxpZWQgdG8gYCcgKyBjb21wb25lbnROYW1lICsgJ2AsIGV4cGVjdGVkIGBvYmplY3RgLicpKTtcbiAgICAgIH1cbiAgICAgIGZvciAodmFyIGtleSBpbiBzaGFwZVR5cGVzKSB7XG4gICAgICAgIHZhciBjaGVja2VyID0gc2hhcGVUeXBlc1trZXldO1xuICAgICAgICBpZiAoIWNoZWNrZXIpIHtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgZXJyb3IgPSBjaGVja2VyKHByb3BWYWx1ZSwga2V5LCBjb21wb25lbnROYW1lLCBsb2NhdGlvbiwgcHJvcEZ1bGxOYW1lICsgJy4nICsga2V5LCBSZWFjdFByb3BUeXBlc1NlY3JldCk7XG4gICAgICAgIGlmIChlcnJvcikge1xuICAgICAgICAgIHJldHVybiBlcnJvcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHJldHVybiBjcmVhdGVDaGFpbmFibGVUeXBlQ2hlY2tlcih2YWxpZGF0ZSk7XG4gIH1cblxuICBmdW5jdGlvbiBpc05vZGUocHJvcFZhbHVlKSB7XG4gICAgc3dpdGNoICh0eXBlb2YgcHJvcFZhbHVlKSB7XG4gICAgICBjYXNlICdudW1iZXInOlxuICAgICAgY2FzZSAnc3RyaW5nJzpcbiAgICAgIGNhc2UgJ3VuZGVmaW5lZCc6XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgY2FzZSAnYm9vbGVhbic6XG4gICAgICAgIHJldHVybiAhcHJvcFZhbHVlO1xuICAgICAgY2FzZSAnb2JqZWN0JzpcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkocHJvcFZhbHVlKSkge1xuICAgICAgICAgIHJldHVybiBwcm9wVmFsdWUuZXZlcnkoaXNOb2RlKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocHJvcFZhbHVlID09PSBudWxsIHx8IGlzVmFsaWRFbGVtZW50KHByb3BWYWx1ZSkpIHtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBpdGVyYXRvckZuID0gZ2V0SXRlcmF0b3JGbihwcm9wVmFsdWUpO1xuICAgICAgICBpZiAoaXRlcmF0b3JGbikge1xuICAgICAgICAgIHZhciBpdGVyYXRvciA9IGl0ZXJhdG9yRm4uY2FsbChwcm9wVmFsdWUpO1xuICAgICAgICAgIHZhciBzdGVwO1xuICAgICAgICAgIGlmIChpdGVyYXRvckZuICE9PSBwcm9wVmFsdWUuZW50cmllcykge1xuICAgICAgICAgICAgd2hpbGUgKCEoc3RlcCA9IGl0ZXJhdG9yLm5leHQoKSkuZG9uZSkge1xuICAgICAgICAgICAgICBpZiAoIWlzTm9kZShzdGVwLnZhbHVlKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBJdGVyYXRvciB3aWxsIHByb3ZpZGUgZW50cnkgW2ssdl0gdHVwbGVzIHJhdGhlciB0aGFuIHZhbHVlcy5cbiAgICAgICAgICAgIHdoaWxlICghKHN0ZXAgPSBpdGVyYXRvci5uZXh0KCkpLmRvbmUpIHtcbiAgICAgICAgICAgICAgdmFyIGVudHJ5ID0gc3RlcC52YWx1ZTtcbiAgICAgICAgICAgICAgaWYgKGVudHJ5KSB7XG4gICAgICAgICAgICAgICAgaWYgKCFpc05vZGUoZW50cnlbMV0pKSB7XG4gICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIGlzU3ltYm9sKHByb3BUeXBlLCBwcm9wVmFsdWUpIHtcbiAgICAvLyBOYXRpdmUgU3ltYm9sLlxuICAgIGlmIChwcm9wVHlwZSA9PT0gJ3N5bWJvbCcpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIC8vIDE5LjQuMy41IFN5bWJvbC5wcm90b3R5cGVbQEB0b1N0cmluZ1RhZ10gPT09ICdTeW1ib2wnXG4gICAgaWYgKHByb3BWYWx1ZVsnQEB0b1N0cmluZ1RhZyddID09PSAnU3ltYm9sJykge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgLy8gRmFsbGJhY2sgZm9yIG5vbi1zcGVjIGNvbXBsaWFudCBTeW1ib2xzIHdoaWNoIGFyZSBwb2x5ZmlsbGVkLlxuICAgIGlmICh0eXBlb2YgU3ltYm9sID09PSAnZnVuY3Rpb24nICYmIHByb3BWYWx1ZSBpbnN0YW5jZW9mIFN5bWJvbCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLy8gRXF1aXZhbGVudCBvZiBgdHlwZW9mYCBidXQgd2l0aCBzcGVjaWFsIGhhbmRsaW5nIGZvciBhcnJheSBhbmQgcmVnZXhwLlxuICBmdW5jdGlvbiBnZXRQcm9wVHlwZShwcm9wVmFsdWUpIHtcbiAgICB2YXIgcHJvcFR5cGUgPSB0eXBlb2YgcHJvcFZhbHVlO1xuICAgIGlmIChBcnJheS5pc0FycmF5KHByb3BWYWx1ZSkpIHtcbiAgICAgIHJldHVybiAnYXJyYXknO1xuICAgIH1cbiAgICBpZiAocHJvcFZhbHVlIGluc3RhbmNlb2YgUmVnRXhwKSB7XG4gICAgICAvLyBPbGQgd2Via2l0cyAoYXQgbGVhc3QgdW50aWwgQW5kcm9pZCA0LjApIHJldHVybiAnZnVuY3Rpb24nIHJhdGhlciB0aGFuXG4gICAgICAvLyAnb2JqZWN0JyBmb3IgdHlwZW9mIGEgUmVnRXhwLiBXZSdsbCBub3JtYWxpemUgdGhpcyBoZXJlIHNvIHRoYXQgL2JsYS9cbiAgICAgIC8vIHBhc3NlcyBQcm9wVHlwZXMub2JqZWN0LlxuICAgICAgcmV0dXJuICdvYmplY3QnO1xuICAgIH1cbiAgICBpZiAoaXNTeW1ib2wocHJvcFR5cGUsIHByb3BWYWx1ZSkpIHtcbiAgICAgIHJldHVybiAnc3ltYm9sJztcbiAgICB9XG4gICAgcmV0dXJuIHByb3BUeXBlO1xuICB9XG5cbiAgLy8gVGhpcyBoYW5kbGVzIG1vcmUgdHlwZXMgdGhhbiBgZ2V0UHJvcFR5cGVgLiBPbmx5IHVzZWQgZm9yIGVycm9yIG1lc3NhZ2VzLlxuICAvLyBTZWUgYGNyZWF0ZVByaW1pdGl2ZVR5cGVDaGVja2VyYC5cbiAgZnVuY3Rpb24gZ2V0UHJlY2lzZVR5cGUocHJvcFZhbHVlKSB7XG4gICAgaWYgKHR5cGVvZiBwcm9wVmFsdWUgPT09ICd1bmRlZmluZWQnIHx8IHByb3BWYWx1ZSA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuICcnICsgcHJvcFZhbHVlO1xuICAgIH1cbiAgICB2YXIgcHJvcFR5cGUgPSBnZXRQcm9wVHlwZShwcm9wVmFsdWUpO1xuICAgIGlmIChwcm9wVHlwZSA9PT0gJ29iamVjdCcpIHtcbiAgICAgIGlmIChwcm9wVmFsdWUgaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgICAgIHJldHVybiAnZGF0ZSc7XG4gICAgICB9IGVsc2UgaWYgKHByb3BWYWx1ZSBpbnN0YW5jZW9mIFJlZ0V4cCkge1xuICAgICAgICByZXR1cm4gJ3JlZ2V4cCc7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBwcm9wVHlwZTtcbiAgfVxuXG4gIC8vIFJldHVybnMgYSBzdHJpbmcgdGhhdCBpcyBwb3N0Zml4ZWQgdG8gYSB3YXJuaW5nIGFib3V0IGFuIGludmFsaWQgdHlwZS5cbiAgLy8gRm9yIGV4YW1wbGUsIFwidW5kZWZpbmVkXCIgb3IgXCJvZiB0eXBlIGFycmF5XCJcbiAgZnVuY3Rpb24gZ2V0UG9zdGZpeEZvclR5cGVXYXJuaW5nKHZhbHVlKSB7XG4gICAgdmFyIHR5cGUgPSBnZXRQcmVjaXNlVHlwZSh2YWx1ZSk7XG4gICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICBjYXNlICdhcnJheSc6XG4gICAgICBjYXNlICdvYmplY3QnOlxuICAgICAgICByZXR1cm4gJ2FuICcgKyB0eXBlO1xuICAgICAgY2FzZSAnYm9vbGVhbic6XG4gICAgICBjYXNlICdkYXRlJzpcbiAgICAgIGNhc2UgJ3JlZ2V4cCc6XG4gICAgICAgIHJldHVybiAnYSAnICsgdHlwZTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiB0eXBlO1xuICAgIH1cbiAgfVxuXG4gIC8vIFJldHVybnMgY2xhc3MgbmFtZSBvZiB0aGUgb2JqZWN0LCBpZiBhbnkuXG4gIGZ1bmN0aW9uIGdldENsYXNzTmFtZShwcm9wVmFsdWUpIHtcbiAgICBpZiAoIXByb3BWYWx1ZS5jb25zdHJ1Y3RvciB8fCAhcHJvcFZhbHVlLmNvbnN0cnVjdG9yLm5hbWUpIHtcbiAgICAgIHJldHVybiBBTk9OWU1PVVM7XG4gICAgfVxuICAgIHJldHVybiBwcm9wVmFsdWUuY29uc3RydWN0b3IubmFtZTtcbiAgfVxuXG4gIFJlYWN0UHJvcFR5cGVzLmNoZWNrUHJvcFR5cGVzID0gY2hlY2tQcm9wVHlwZXM7XG4gIFJlYWN0UHJvcFR5cGVzLlByb3BUeXBlcyA9IFJlYWN0UHJvcFR5cGVzO1xuXG4gIHJldHVybiBSZWFjdFByb3BUeXBlcztcbn07XG5cbi8qIFdFQlBBQ0sgVkFSIElOSkVDVElPTiAqL30uY2FsbChleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKDIpKSlcblxuLyoqKi8gfSksXG4vKiAxNSAqL1xuLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykge1xuXG5cInVzZSBzdHJpY3RcIjtcbi8qIFdFQlBBQ0sgVkFSIElOSkVDVElPTiAqLyhmdW5jdGlvbihwcm9jZXNzKSB7LyoqXG4gKiBDb3B5cmlnaHQgMjAxMy1wcmVzZW50LCBGYWNlYm9vaywgSW5jLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBCU0Qtc3R5bGUgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4gQW4gYWRkaXRpb25hbCBncmFudFxuICogb2YgcGF0ZW50IHJpZ2h0cyBjYW4gYmUgZm91bmQgaW4gdGhlIFBBVEVOVFMgZmlsZSBpbiB0aGUgc2FtZSBkaXJlY3RvcnkuXG4gKi9cblxuXG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gIHZhciBpbnZhcmlhbnQgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDUpO1xuICB2YXIgd2FybmluZyA9IF9fd2VicGFja19yZXF1aXJlX18oOCk7XG4gIHZhciBSZWFjdFByb3BUeXBlc1NlY3JldCA9IF9fd2VicGFja19yZXF1aXJlX18oNik7XG4gIHZhciBsb2dnZWRUeXBlRmFpbHVyZXMgPSB7fTtcbn1cblxuLyoqXG4gKiBBc3NlcnQgdGhhdCB0aGUgdmFsdWVzIG1hdGNoIHdpdGggdGhlIHR5cGUgc3BlY3MuXG4gKiBFcnJvciBtZXNzYWdlcyBhcmUgbWVtb3JpemVkIGFuZCB3aWxsIG9ubHkgYmUgc2hvd24gb25jZS5cbiAqXG4gKiBAcGFyYW0ge29iamVjdH0gdHlwZVNwZWNzIE1hcCBvZiBuYW1lIHRvIGEgUmVhY3RQcm9wVHlwZVxuICogQHBhcmFtIHtvYmplY3R9IHZhbHVlcyBSdW50aW1lIHZhbHVlcyB0aGF0IG5lZWQgdG8gYmUgdHlwZS1jaGVja2VkXG4gKiBAcGFyYW0ge3N0cmluZ30gbG9jYXRpb24gZS5nLiBcInByb3BcIiwgXCJjb250ZXh0XCIsIFwiY2hpbGQgY29udGV4dFwiXG4gKiBAcGFyYW0ge3N0cmluZ30gY29tcG9uZW50TmFtZSBOYW1lIG9mIHRoZSBjb21wb25lbnQgZm9yIGVycm9yIG1lc3NhZ2VzLlxuICogQHBhcmFtIHs/RnVuY3Rpb259IGdldFN0YWNrIFJldHVybnMgdGhlIGNvbXBvbmVudCBzdGFjay5cbiAqIEBwcml2YXRlXG4gKi9cbmZ1bmN0aW9uIGNoZWNrUHJvcFR5cGVzKHR5cGVTcGVjcywgdmFsdWVzLCBsb2NhdGlvbiwgY29tcG9uZW50TmFtZSwgZ2V0U3RhY2spIHtcbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICBmb3IgKHZhciB0eXBlU3BlY05hbWUgaW4gdHlwZVNwZWNzKSB7XG4gICAgICBpZiAodHlwZVNwZWNzLmhhc093blByb3BlcnR5KHR5cGVTcGVjTmFtZSkpIHtcbiAgICAgICAgdmFyIGVycm9yO1xuICAgICAgICAvLyBQcm9wIHR5cGUgdmFsaWRhdGlvbiBtYXkgdGhyb3cuIEluIGNhc2UgdGhleSBkbywgd2UgZG9uJ3Qgd2FudCB0b1xuICAgICAgICAvLyBmYWlsIHRoZSByZW5kZXIgcGhhc2Ugd2hlcmUgaXQgZGlkbid0IGZhaWwgYmVmb3JlLiBTbyB3ZSBsb2cgaXQuXG4gICAgICAgIC8vIEFmdGVyIHRoZXNlIGhhdmUgYmVlbiBjbGVhbmVkIHVwLCB3ZSdsbCBsZXQgdGhlbSB0aHJvdy5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAvLyBUaGlzIGlzIGludGVudGlvbmFsbHkgYW4gaW52YXJpYW50IHRoYXQgZ2V0cyBjYXVnaHQuIEl0J3MgdGhlIHNhbWVcbiAgICAgICAgICAvLyBiZWhhdmlvciBhcyB3aXRob3V0IHRoaXMgc3RhdGVtZW50IGV4Y2VwdCB3aXRoIGEgYmV0dGVyIG1lc3NhZ2UuXG4gICAgICAgICAgaW52YXJpYW50KHR5cGVvZiB0eXBlU3BlY3NbdHlwZVNwZWNOYW1lXSA9PT0gJ2Z1bmN0aW9uJywgJyVzOiAlcyB0eXBlIGAlc2AgaXMgaW52YWxpZDsgaXQgbXVzdCBiZSBhIGZ1bmN0aW9uLCB1c3VhbGx5IGZyb20gJyArICdSZWFjdC5Qcm9wVHlwZXMuJywgY29tcG9uZW50TmFtZSB8fCAnUmVhY3QgY2xhc3MnLCBsb2NhdGlvbiwgdHlwZVNwZWNOYW1lKTtcbiAgICAgICAgICBlcnJvciA9IHR5cGVTcGVjc1t0eXBlU3BlY05hbWVdKHZhbHVlcywgdHlwZVNwZWNOYW1lLCBjb21wb25lbnROYW1lLCBsb2NhdGlvbiwgbnVsbCwgUmVhY3RQcm9wVHlwZXNTZWNyZXQpO1xuICAgICAgICB9IGNhdGNoIChleCkge1xuICAgICAgICAgIGVycm9yID0gZXg7XG4gICAgICAgIH1cbiAgICAgICAgd2FybmluZyghZXJyb3IgfHwgZXJyb3IgaW5zdGFuY2VvZiBFcnJvciwgJyVzOiB0eXBlIHNwZWNpZmljYXRpb24gb2YgJXMgYCVzYCBpcyBpbnZhbGlkOyB0aGUgdHlwZSBjaGVja2VyICcgKyAnZnVuY3Rpb24gbXVzdCByZXR1cm4gYG51bGxgIG9yIGFuIGBFcnJvcmAgYnV0IHJldHVybmVkIGEgJXMuICcgKyAnWW91IG1heSBoYXZlIGZvcmdvdHRlbiB0byBwYXNzIGFuIGFyZ3VtZW50IHRvIHRoZSB0eXBlIGNoZWNrZXIgJyArICdjcmVhdG9yIChhcnJheU9mLCBpbnN0YW5jZU9mLCBvYmplY3RPZiwgb25lT2YsIG9uZU9mVHlwZSwgYW5kICcgKyAnc2hhcGUgYWxsIHJlcXVpcmUgYW4gYXJndW1lbnQpLicsIGNvbXBvbmVudE5hbWUgfHwgJ1JlYWN0IGNsYXNzJywgbG9jYXRpb24sIHR5cGVTcGVjTmFtZSwgdHlwZW9mIGVycm9yKTtcbiAgICAgICAgaWYgKGVycm9yIGluc3RhbmNlb2YgRXJyb3IgJiYgIShlcnJvci5tZXNzYWdlIGluIGxvZ2dlZFR5cGVGYWlsdXJlcykpIHtcbiAgICAgICAgICAvLyBPbmx5IG1vbml0b3IgdGhpcyBmYWlsdXJlIG9uY2UgYmVjYXVzZSB0aGVyZSB0ZW5kcyB0byBiZSBhIGxvdCBvZiB0aGVcbiAgICAgICAgICAvLyBzYW1lIGVycm9yLlxuICAgICAgICAgIGxvZ2dlZFR5cGVGYWlsdXJlc1tlcnJvci5tZXNzYWdlXSA9IHRydWU7XG5cbiAgICAgICAgICB2YXIgc3RhY2sgPSBnZXRTdGFjayA/IGdldFN0YWNrKCkgOiAnJztcblxuICAgICAgICAgIHdhcm5pbmcoZmFsc2UsICdGYWlsZWQgJXMgdHlwZTogJXMlcycsIGxvY2F0aW9uLCBlcnJvci5tZXNzYWdlLCBzdGFjayAhPSBudWxsID8gc3RhY2sgOiAnJyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSBjaGVja1Byb3BUeXBlcztcblxuLyogV0VCUEFDSyBWQVIgSU5KRUNUSU9OICovfS5jYWxsKGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18oMikpKVxuXG4vKioqLyB9KSxcbi8qIDE2ICovXG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7XG5cblwidXNlIHN0cmljdFwiO1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxMy1wcmVzZW50LCBGYWNlYm9vaywgSW5jLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBCU0Qtc3R5bGUgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4gQW4gYWRkaXRpb25hbCBncmFudFxuICogb2YgcGF0ZW50IHJpZ2h0cyBjYW4gYmUgZm91bmQgaW4gdGhlIFBBVEVOVFMgZmlsZSBpbiB0aGUgc2FtZSBkaXJlY3RvcnkuXG4gKi9cblxuXG5cbnZhciBlbXB0eUZ1bmN0aW9uID0gX193ZWJwYWNrX3JlcXVpcmVfXyg0KTtcbnZhciBpbnZhcmlhbnQgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDUpO1xudmFyIFJlYWN0UHJvcFR5cGVzU2VjcmV0ID0gX193ZWJwYWNrX3JlcXVpcmVfXyg2KTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbigpIHtcbiAgZnVuY3Rpb24gc2hpbShwcm9wcywgcHJvcE5hbWUsIGNvbXBvbmVudE5hbWUsIGxvY2F0aW9uLCBwcm9wRnVsbE5hbWUsIHNlY3JldCkge1xuICAgIGlmIChzZWNyZXQgPT09IFJlYWN0UHJvcFR5cGVzU2VjcmV0KSB7XG4gICAgICAvLyBJdCBpcyBzdGlsbCBzYWZlIHdoZW4gY2FsbGVkIGZyb20gUmVhY3QuXG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGludmFyaWFudChcbiAgICAgIGZhbHNlLFxuICAgICAgJ0NhbGxpbmcgUHJvcFR5cGVzIHZhbGlkYXRvcnMgZGlyZWN0bHkgaXMgbm90IHN1cHBvcnRlZCBieSB0aGUgYHByb3AtdHlwZXNgIHBhY2thZ2UuICcgK1xuICAgICAgJ1VzZSBQcm9wVHlwZXMuY2hlY2tQcm9wVHlwZXMoKSB0byBjYWxsIHRoZW0uICcgK1xuICAgICAgJ1JlYWQgbW9yZSBhdCBodHRwOi8vZmIubWUvdXNlLWNoZWNrLXByb3AtdHlwZXMnXG4gICAgKTtcbiAgfTtcbiAgc2hpbS5pc1JlcXVpcmVkID0gc2hpbTtcbiAgZnVuY3Rpb24gZ2V0U2hpbSgpIHtcbiAgICByZXR1cm4gc2hpbTtcbiAgfTtcbiAgLy8gSW1wb3J0YW50IVxuICAvLyBLZWVwIHRoaXMgbGlzdCBpbiBzeW5jIHdpdGggcHJvZHVjdGlvbiB2ZXJzaW9uIGluIGAuL2ZhY3RvcnlXaXRoVHlwZUNoZWNrZXJzLmpzYC5cbiAgdmFyIFJlYWN0UHJvcFR5cGVzID0ge1xuICAgIGFycmF5OiBzaGltLFxuICAgIGJvb2w6IHNoaW0sXG4gICAgZnVuYzogc2hpbSxcbiAgICBudW1iZXI6IHNoaW0sXG4gICAgb2JqZWN0OiBzaGltLFxuICAgIHN0cmluZzogc2hpbSxcbiAgICBzeW1ib2w6IHNoaW0sXG5cbiAgICBhbnk6IHNoaW0sXG4gICAgYXJyYXlPZjogZ2V0U2hpbSxcbiAgICBlbGVtZW50OiBzaGltLFxuICAgIGluc3RhbmNlT2Y6IGdldFNoaW0sXG4gICAgbm9kZTogc2hpbSxcbiAgICBvYmplY3RPZjogZ2V0U2hpbSxcbiAgICBvbmVPZjogZ2V0U2hpbSxcbiAgICBvbmVPZlR5cGU6IGdldFNoaW0sXG4gICAgc2hhcGU6IGdldFNoaW1cbiAgfTtcblxuICBSZWFjdFByb3BUeXBlcy5jaGVja1Byb3BUeXBlcyA9IGVtcHR5RnVuY3Rpb247XG4gIFJlYWN0UHJvcFR5cGVzLlByb3BUeXBlcyA9IFJlYWN0UHJvcFR5cGVzO1xuXG4gIHJldHVybiBSZWFjdFByb3BUeXBlcztcbn07XG5cblxuLyoqKi8gfSksXG4vKiAxNyAqL1xuLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykge1xuXG5cInVzZSBzdHJpY3RcIjtcblxuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5cbnZhciBfY3JlYXRlQ2xhc3MgPSBmdW5jdGlvbiAoKSB7IGZ1bmN0aW9uIGRlZmluZVByb3BlcnRpZXModGFyZ2V0LCBwcm9wcykgeyBmb3IgKHZhciBpID0gMDsgaSA8IHByb3BzLmxlbmd0aDsgaSsrKSB7IHZhciBkZXNjcmlwdG9yID0gcHJvcHNbaV07IGRlc2NyaXB0b3IuZW51bWVyYWJsZSA9IGRlc2NyaXB0b3IuZW51bWVyYWJsZSB8fCBmYWxzZTsgZGVzY3JpcHRvci5jb25maWd1cmFibGUgPSB0cnVlOyBpZiAoXCJ2YWx1ZVwiIGluIGRlc2NyaXB0b3IpIGRlc2NyaXB0b3Iud3JpdGFibGUgPSB0cnVlOyBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBkZXNjcmlwdG9yLmtleSwgZGVzY3JpcHRvcik7IH0gfSByZXR1cm4gZnVuY3Rpb24gKENvbnN0cnVjdG9yLCBwcm90b1Byb3BzLCBzdGF0aWNQcm9wcykgeyBpZiAocHJvdG9Qcm9wcykgZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvci5wcm90b3R5cGUsIHByb3RvUHJvcHMpOyBpZiAoc3RhdGljUHJvcHMpIGRlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IsIHN0YXRpY1Byb3BzKTsgcmV0dXJuIENvbnN0cnVjdG9yOyB9OyB9KCk7XG5cbnZhciBfcHJvcFR5cGVzID0gX193ZWJwYWNrX3JlcXVpcmVfXygwKTtcblxudmFyIF9wcm9wVHlwZXMyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfcHJvcFR5cGVzKTtcblxudmFyIF9yZWFjdCA9IF9fd2VicGFja19yZXF1aXJlX18oMSk7XG5cbnZhciBfcmVhY3QyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfcmVhY3QpO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBkZWZhdWx0OiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIik7IH0gfVxuXG5mdW5jdGlvbiBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybihzZWxmLCBjYWxsKSB7IGlmICghc2VsZikgeyB0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoXCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWRcIik7IH0gcmV0dXJuIGNhbGwgJiYgKHR5cGVvZiBjYWxsID09PSBcIm9iamVjdFwiIHx8IHR5cGVvZiBjYWxsID09PSBcImZ1bmN0aW9uXCIpID8gY2FsbCA6IHNlbGY7IH1cblxuZnVuY3Rpb24gX2luaGVyaXRzKHN1YkNsYXNzLCBzdXBlckNsYXNzKSB7IGlmICh0eXBlb2Ygc3VwZXJDbGFzcyAhPT0gXCJmdW5jdGlvblwiICYmIHN1cGVyQ2xhc3MgIT09IG51bGwpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uLCBub3QgXCIgKyB0eXBlb2Ygc3VwZXJDbGFzcyk7IH0gc3ViQ2xhc3MucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShzdXBlckNsYXNzICYmIHN1cGVyQ2xhc3MucHJvdG90eXBlLCB7IGNvbnN0cnVjdG9yOiB7IHZhbHVlOiBzdWJDbGFzcywgZW51bWVyYWJsZTogZmFsc2UsIHdyaXRhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUgfSB9KTsgaWYgKHN1cGVyQ2xhc3MpIE9iamVjdC5zZXRQcm90b3R5cGVPZiA/IE9iamVjdC5zZXRQcm90b3R5cGVPZihzdWJDbGFzcywgc3VwZXJDbGFzcykgOiBzdWJDbGFzcy5fX3Byb3RvX18gPSBzdXBlckNsYXNzOyB9XG5cbnZhciBTcGFya2xpbmVzVGV4dCA9IGZ1bmN0aW9uIChfUmVhY3QkQ29tcG9uZW50KSB7XG4gICAgX2luaGVyaXRzKFNwYXJrbGluZXNUZXh0LCBfUmVhY3QkQ29tcG9uZW50KTtcblxuICAgIGZ1bmN0aW9uIFNwYXJrbGluZXNUZXh0KCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgU3BhcmtsaW5lc1RleHQpO1xuXG4gICAgICAgIHJldHVybiBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybih0aGlzLCAoU3BhcmtsaW5lc1RleHQuX19wcm90b19fIHx8IE9iamVjdC5nZXRQcm90b3R5cGVPZihTcGFya2xpbmVzVGV4dCkpLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykpO1xuICAgIH1cblxuICAgIF9jcmVhdGVDbGFzcyhTcGFya2xpbmVzVGV4dCwgW3tcbiAgICAgICAga2V5OiAncmVuZGVyJyxcbiAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIHJlbmRlcigpIHtcbiAgICAgICAgICAgIHZhciBfcHJvcHMgPSB0aGlzLnByb3BzLFxuICAgICAgICAgICAgICAgIHBvaW50ID0gX3Byb3BzLnBvaW50LFxuICAgICAgICAgICAgICAgIHRleHQgPSBfcHJvcHMudGV4dCxcbiAgICAgICAgICAgICAgICBmb250U2l6ZSA9IF9wcm9wcy5mb250U2l6ZSxcbiAgICAgICAgICAgICAgICBmb250RmFtaWx5ID0gX3Byb3BzLmZvbnRGYW1pbHk7XG4gICAgICAgICAgICB2YXIgeCA9IHBvaW50LngsXG4gICAgICAgICAgICAgICAgeSA9IHBvaW50Lnk7XG5cbiAgICAgICAgICAgIHJldHVybiBfcmVhY3QyLmRlZmF1bHQuY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgICAnZycsXG4gICAgICAgICAgICAgICAgbnVsbCxcbiAgICAgICAgICAgICAgICBfcmVhY3QyLmRlZmF1bHQuY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgICAgICAgJ3RleHQnLFxuICAgICAgICAgICAgICAgICAgICB7IHg6IHgsIHk6IHksIGZvbnRGYW1pbHk6IGZvbnRGYW1pbHkgfHwgXCJWZXJkYW5hXCIsIGZvbnRTaXplOiBmb250U2l6ZSB8fCAxMCB9LFxuICAgICAgICAgICAgICAgICAgICB0ZXh0XG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1dKTtcblxuICAgIHJldHVybiBTcGFya2xpbmVzVGV4dDtcbn0oX3JlYWN0Mi5kZWZhdWx0LkNvbXBvbmVudCk7XG5cblNwYXJrbGluZXNUZXh0LnByb3BUeXBlcyA9IHtcbiAgICB0ZXh0OiBfcHJvcFR5cGVzMi5kZWZhdWx0LnN0cmluZyxcbiAgICBwb2ludDogX3Byb3BUeXBlczIuZGVmYXVsdC5vYmplY3QsXG4gICAgZm9udFNpemU6IF9wcm9wVHlwZXMyLmRlZmF1bHQubnVtYmVyLFxuICAgIGZvbnRGYW1pbHk6IF9wcm9wVHlwZXMyLmRlZmF1bHQuc3RyaW5nXG59O1xuU3BhcmtsaW5lc1RleHQuZGVmYXVsdFByb3BzID0ge1xuICAgIHRleHQ6ICcnLFxuICAgIHBvaW50OiB7IHg6IDAsIHk6IDAgfVxufTtcbmV4cG9ydHMuZGVmYXVsdCA9IFNwYXJrbGluZXNUZXh0O1xuXG4vKioqLyB9KSxcbi8qIDE4ICovXG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7XG5cblwidXNlIHN0cmljdFwiO1xuXG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5cbnZhciBfY3JlYXRlQ2xhc3MgPSBmdW5jdGlvbiAoKSB7IGZ1bmN0aW9uIGRlZmluZVByb3BlcnRpZXModGFyZ2V0LCBwcm9wcykgeyBmb3IgKHZhciBpID0gMDsgaSA8IHByb3BzLmxlbmd0aDsgaSsrKSB7IHZhciBkZXNjcmlwdG9yID0gcHJvcHNbaV07IGRlc2NyaXB0b3IuZW51bWVyYWJsZSA9IGRlc2NyaXB0b3IuZW51bWVyYWJsZSB8fCBmYWxzZTsgZGVzY3JpcHRvci5jb25maWd1cmFibGUgPSB0cnVlOyBpZiAoXCJ2YWx1ZVwiIGluIGRlc2NyaXB0b3IpIGRlc2NyaXB0b3Iud3JpdGFibGUgPSB0cnVlOyBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBkZXNjcmlwdG9yLmtleSwgZGVzY3JpcHRvcik7IH0gfSByZXR1cm4gZnVuY3Rpb24gKENvbnN0cnVjdG9yLCBwcm90b1Byb3BzLCBzdGF0aWNQcm9wcykgeyBpZiAocHJvdG9Qcm9wcykgZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvci5wcm90b3R5cGUsIHByb3RvUHJvcHMpOyBpZiAoc3RhdGljUHJvcHMpIGRlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IsIHN0YXRpY1Byb3BzKTsgcmV0dXJuIENvbnN0cnVjdG9yOyB9OyB9KCk7XG5cbnZhciBfcHJvcFR5cGVzID0gX193ZWJwYWNrX3JlcXVpcmVfXygwKTtcblxudmFyIF9wcm9wVHlwZXMyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfcHJvcFR5cGVzKTtcblxudmFyIF9yZWFjdCA9IF9fd2VicGFja19yZXF1aXJlX18oMSk7XG5cbnZhciBfcmVhY3QyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfcmVhY3QpO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBkZWZhdWx0OiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIik7IH0gfVxuXG5mdW5jdGlvbiBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybihzZWxmLCBjYWxsKSB7IGlmICghc2VsZikgeyB0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoXCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWRcIik7IH0gcmV0dXJuIGNhbGwgJiYgKHR5cGVvZiBjYWxsID09PSBcIm9iamVjdFwiIHx8IHR5cGVvZiBjYWxsID09PSBcImZ1bmN0aW9uXCIpID8gY2FsbCA6IHNlbGY7IH1cblxuZnVuY3Rpb24gX2luaGVyaXRzKHN1YkNsYXNzLCBzdXBlckNsYXNzKSB7IGlmICh0eXBlb2Ygc3VwZXJDbGFzcyAhPT0gXCJmdW5jdGlvblwiICYmIHN1cGVyQ2xhc3MgIT09IG51bGwpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uLCBub3QgXCIgKyB0eXBlb2Ygc3VwZXJDbGFzcyk7IH0gc3ViQ2xhc3MucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShzdXBlckNsYXNzICYmIHN1cGVyQ2xhc3MucHJvdG90eXBlLCB7IGNvbnN0cnVjdG9yOiB7IHZhbHVlOiBzdWJDbGFzcywgZW51bWVyYWJsZTogZmFsc2UsIHdyaXRhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUgfSB9KTsgaWYgKHN1cGVyQ2xhc3MpIE9iamVjdC5zZXRQcm90b3R5cGVPZiA/IE9iamVjdC5zZXRQcm90b3R5cGVPZihzdWJDbGFzcywgc3VwZXJDbGFzcykgOiBzdWJDbGFzcy5fX3Byb3RvX18gPSBzdXBlckNsYXNzOyB9XG5cbnZhciBTcGFya2xpbmVzTGluZSA9IGZ1bmN0aW9uIChfUmVhY3QkQ29tcG9uZW50KSB7XG4gIF9pbmhlcml0cyhTcGFya2xpbmVzTGluZSwgX1JlYWN0JENvbXBvbmVudCk7XG5cbiAgZnVuY3Rpb24gU3BhcmtsaW5lc0xpbmUoKSB7XG4gICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFNwYXJrbGluZXNMaW5lKTtcblxuICAgIHJldHVybiBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybih0aGlzLCAoU3BhcmtsaW5lc0xpbmUuX19wcm90b19fIHx8IE9iamVjdC5nZXRQcm90b3R5cGVPZihTcGFya2xpbmVzTGluZSkpLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykpO1xuICB9XG5cbiAgX2NyZWF0ZUNsYXNzKFNwYXJrbGluZXNMaW5lLCBbe1xuICAgIGtleTogJ3JlbmRlcicsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHJlbmRlcigpIHtcbiAgICAgIHZhciBfcHJvcHMgPSB0aGlzLnByb3BzLFxuICAgICAgICAgIGRhdGEgPSBfcHJvcHMuZGF0YSxcbiAgICAgICAgICBwb2ludHMgPSBfcHJvcHMucG9pbnRzLFxuICAgICAgICAgIHdpZHRoID0gX3Byb3BzLndpZHRoLFxuICAgICAgICAgIGhlaWdodCA9IF9wcm9wcy5oZWlnaHQsXG4gICAgICAgICAgbWFyZ2luID0gX3Byb3BzLm1hcmdpbixcbiAgICAgICAgICBjb2xvciA9IF9wcm9wcy5jb2xvcixcbiAgICAgICAgICBzdHlsZSA9IF9wcm9wcy5zdHlsZSxcbiAgICAgICAgICBvbk1vdXNlTW92ZSA9IF9wcm9wcy5vbk1vdXNlTW92ZTtcblxuXG4gICAgICB2YXIgbGluZVBvaW50cyA9IHBvaW50cy5tYXAoZnVuY3Rpb24gKHApIHtcbiAgICAgICAgcmV0dXJuIFtwLngsIHAueV07XG4gICAgICB9KS5yZWR1Y2UoZnVuY3Rpb24gKGEsIGIpIHtcbiAgICAgICAgcmV0dXJuIGEuY29uY2F0KGIpO1xuICAgICAgfSk7XG5cbiAgICAgIHZhciBjbG9zZVBvbHlQb2ludHMgPSBbcG9pbnRzW3BvaW50cy5sZW5ndGggLSAxXS54LCBoZWlnaHQgLSBtYXJnaW4sIG1hcmdpbiwgaGVpZ2h0IC0gbWFyZ2luLCBtYXJnaW4sIHBvaW50c1swXS55XTtcblxuICAgICAgdmFyIGZpbGxQb2ludHMgPSBsaW5lUG9pbnRzLmNvbmNhdChjbG9zZVBvbHlQb2ludHMpO1xuXG4gICAgICB2YXIgbGluZVN0eWxlID0ge1xuICAgICAgICBzdHJva2U6IGNvbG9yIHx8IHN0eWxlLnN0cm9rZSB8fCAnc2xhdGVncmF5JyxcbiAgICAgICAgc3Ryb2tlV2lkdGg6IHN0eWxlLnN0cm9rZVdpZHRoIHx8ICcxJyxcbiAgICAgICAgc3Ryb2tlTGluZWpvaW46IHN0eWxlLnN0cm9rZUxpbmVqb2luIHx8ICdyb3VuZCcsXG4gICAgICAgIHN0cm9rZUxpbmVjYXA6IHN0eWxlLnN0cm9rZUxpbmVjYXAgfHwgJ3JvdW5kJyxcbiAgICAgICAgZmlsbDogJ25vbmUnXG4gICAgICB9O1xuICAgICAgdmFyIGZpbGxTdHlsZSA9IHtcbiAgICAgICAgc3Ryb2tlOiBzdHlsZS5zdHJva2UgfHwgJ25vbmUnLFxuICAgICAgICBzdHJva2VXaWR0aDogJzAnLFxuICAgICAgICBmaWxsT3BhY2l0eTogc3R5bGUuZmlsbE9wYWNpdHkgfHwgJy4xJyxcbiAgICAgICAgZmlsbDogc3R5bGUuZmlsbCB8fCBjb2xvciB8fCAnc2xhdGVncmF5JyxcbiAgICAgICAgcG9pbnRlckV2ZW50czogJ2F1dG8nXG4gICAgICB9O1xuXG4gICAgICB2YXIgdG9vbHRpcHMgPSBwb2ludHMubWFwKGZ1bmN0aW9uIChwLCBpKSB7XG4gICAgICAgIHJldHVybiBfcmVhY3QyLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgnY2lyY2xlJywge1xuICAgICAgICAgIGtleTogaSxcbiAgICAgICAgICBjeDogcC54LFxuICAgICAgICAgIGN5OiBwLnksXG4gICAgICAgICAgcjogMixcbiAgICAgICAgICBzdHlsZTogZmlsbFN0eWxlLFxuICAgICAgICAgIG9uTW91c2VFbnRlcjogZnVuY3Rpb24gb25Nb3VzZUVudGVyKGUpIHtcbiAgICAgICAgICAgIHJldHVybiBvbk1vdXNlTW92ZSgnZW50ZXInLCBkYXRhW2ldLCBwKTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIG9uQ2xpY2s6IGZ1bmN0aW9uIG9uQ2xpY2soZSkge1xuICAgICAgICAgICAgcmV0dXJuIG9uTW91c2VNb3ZlKCdjbGljaycsIGRhdGFbaV0sIHApO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9KTtcblxuICAgICAgcmV0dXJuIF9yZWFjdDIuZGVmYXVsdC5jcmVhdGVFbGVtZW50KFxuICAgICAgICAnZycsXG4gICAgICAgIG51bGwsXG4gICAgICAgIHRvb2x0aXBzLFxuICAgICAgICBfcmVhY3QyLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgncG9seWxpbmUnLCB7IHBvaW50czogZmlsbFBvaW50cy5qb2luKCcgJyksIHN0eWxlOiBmaWxsU3R5bGUgfSksXG4gICAgICAgIF9yZWFjdDIuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCdwb2x5bGluZScsIHsgcG9pbnRzOiBsaW5lUG9pbnRzLmpvaW4oJyAnKSwgc3R5bGU6IGxpbmVTdHlsZSB9KVxuICAgICAgKTtcbiAgICB9XG4gIH1dKTtcblxuICByZXR1cm4gU3BhcmtsaW5lc0xpbmU7XG59KF9yZWFjdDIuZGVmYXVsdC5Db21wb25lbnQpO1xuXG5TcGFya2xpbmVzTGluZS5wcm9wVHlwZXMgPSB7XG4gIGNvbG9yOiBfcHJvcFR5cGVzMi5kZWZhdWx0LnN0cmluZyxcbiAgc3R5bGU6IF9wcm9wVHlwZXMyLmRlZmF1bHQub2JqZWN0XG59O1xuU3BhcmtsaW5lc0xpbmUuZGVmYXVsdFByb3BzID0ge1xuICBzdHlsZToge30sXG4gIG9uTW91c2VNb3ZlOiBmdW5jdGlvbiBvbk1vdXNlTW92ZSgpIHt9XG59O1xuZXhwb3J0cy5kZWZhdWx0ID0gU3BhcmtsaW5lc0xpbmU7XG5cbi8qKiovIH0pLFxuLyogMTkgKi9cbi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG5cblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuXG52YXIgX2NyZWF0ZUNsYXNzID0gZnVuY3Rpb24gKCkgeyBmdW5jdGlvbiBkZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCwgcHJvcHMpIHsgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9wcy5sZW5ndGg7IGkrKykgeyB2YXIgZGVzY3JpcHRvciA9IHByb3BzW2ldOyBkZXNjcmlwdG9yLmVudW1lcmFibGUgPSBkZXNjcmlwdG9yLmVudW1lcmFibGUgfHwgZmFsc2U7IGRlc2NyaXB0b3IuY29uZmlndXJhYmxlID0gdHJ1ZTsgaWYgKFwidmFsdWVcIiBpbiBkZXNjcmlwdG9yKSBkZXNjcmlwdG9yLndyaXRhYmxlID0gdHJ1ZTsgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgZGVzY3JpcHRvci5rZXksIGRlc2NyaXB0b3IpOyB9IH0gcmV0dXJuIGZ1bmN0aW9uIChDb25zdHJ1Y3RvciwgcHJvdG9Qcm9wcywgc3RhdGljUHJvcHMpIHsgaWYgKHByb3RvUHJvcHMpIGRlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IucHJvdG90eXBlLCBwcm90b1Byb3BzKTsgaWYgKHN0YXRpY1Byb3BzKSBkZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLCBzdGF0aWNQcm9wcyk7IHJldHVybiBDb25zdHJ1Y3RvcjsgfTsgfSgpO1xuXG52YXIgX3Byb3BUeXBlcyA9IF9fd2VicGFja19yZXF1aXJlX18oMCk7XG5cbnZhciBfcHJvcFR5cGVzMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3Byb3BUeXBlcyk7XG5cbnZhciBfcmVhY3QgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDEpO1xuXG52YXIgX3JlYWN0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3JlYWN0KTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgZGVmYXVsdDogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uXCIpOyB9IH1cblxuZnVuY3Rpb24gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4oc2VsZiwgY2FsbCkgeyBpZiAoIXNlbGYpIHsgdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKFwidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkXCIpOyB9IHJldHVybiBjYWxsICYmICh0eXBlb2YgY2FsbCA9PT0gXCJvYmplY3RcIiB8fCB0eXBlb2YgY2FsbCA9PT0gXCJmdW5jdGlvblwiKSA/IGNhbGwgOiBzZWxmOyB9XG5cbmZ1bmN0aW9uIF9pbmhlcml0cyhzdWJDbGFzcywgc3VwZXJDbGFzcykgeyBpZiAodHlwZW9mIHN1cGVyQ2xhc3MgIT09IFwiZnVuY3Rpb25cIiAmJiBzdXBlckNsYXNzICE9PSBudWxsKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoXCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiwgbm90IFwiICsgdHlwZW9mIHN1cGVyQ2xhc3MpOyB9IHN1YkNsYXNzLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoc3VwZXJDbGFzcyAmJiBzdXBlckNsYXNzLnByb3RvdHlwZSwgeyBjb25zdHJ1Y3RvcjogeyB2YWx1ZTogc3ViQ2xhc3MsIGVudW1lcmFibGU6IGZhbHNlLCB3cml0YWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlIH0gfSk7IGlmIChzdXBlckNsYXNzKSBPYmplY3Quc2V0UHJvdG90eXBlT2YgPyBPYmplY3Quc2V0UHJvdG90eXBlT2Yoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIDogc3ViQ2xhc3MuX19wcm90b19fID0gc3VwZXJDbGFzczsgfVxuXG52YXIgU3BhcmtsaW5lc0N1cnZlID0gZnVuY3Rpb24gKF9SZWFjdCRDb21wb25lbnQpIHtcbiAgICBfaW5oZXJpdHMoU3BhcmtsaW5lc0N1cnZlLCBfUmVhY3QkQ29tcG9uZW50KTtcblxuICAgIGZ1bmN0aW9uIFNwYXJrbGluZXNDdXJ2ZSgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFNwYXJrbGluZXNDdXJ2ZSk7XG5cbiAgICAgICAgcmV0dXJuIF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHRoaXMsIChTcGFya2xpbmVzQ3VydmUuX19wcm90b19fIHx8IE9iamVjdC5nZXRQcm90b3R5cGVPZihTcGFya2xpbmVzQ3VydmUpKS5hcHBseSh0aGlzLCBhcmd1bWVudHMpKTtcbiAgICB9XG5cbiAgICBfY3JlYXRlQ2xhc3MoU3BhcmtsaW5lc0N1cnZlLCBbe1xuICAgICAgICBrZXk6ICdyZW5kZXInLFxuICAgICAgICB2YWx1ZTogZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgICAgICAgICAgdmFyIF9wcm9wcyA9IHRoaXMucHJvcHMsXG4gICAgICAgICAgICAgICAgcG9pbnRzID0gX3Byb3BzLnBvaW50cyxcbiAgICAgICAgICAgICAgICB3aWR0aCA9IF9wcm9wcy53aWR0aCxcbiAgICAgICAgICAgICAgICBoZWlnaHQgPSBfcHJvcHMuaGVpZ2h0LFxuICAgICAgICAgICAgICAgIG1hcmdpbiA9IF9wcm9wcy5tYXJnaW4sXG4gICAgICAgICAgICAgICAgY29sb3IgPSBfcHJvcHMuY29sb3IsXG4gICAgICAgICAgICAgICAgc3R5bGUgPSBfcHJvcHMuc3R5bGUsXG4gICAgICAgICAgICAgICAgX3Byb3BzJGRpdmlzb3IgPSBfcHJvcHMuZGl2aXNvcixcbiAgICAgICAgICAgICAgICBkaXZpc29yID0gX3Byb3BzJGRpdmlzb3IgPT09IHVuZGVmaW5lZCA/IDAuMjUgOiBfcHJvcHMkZGl2aXNvcjtcblxuICAgICAgICAgICAgdmFyIHByZXYgPSB2b2lkIDA7XG4gICAgICAgICAgICB2YXIgY3VydmUgPSBmdW5jdGlvbiBjdXJ2ZShwKSB7XG4gICAgICAgICAgICAgICAgdmFyIHJlcyA9IHZvaWQgMDtcbiAgICAgICAgICAgICAgICBpZiAoIXByZXYpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzID0gW3AueCwgcC55XTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB2YXIgbGVuID0gKHAueCAtIHByZXYueCkgKiBkaXZpc29yO1xuICAgICAgICAgICAgICAgICAgICByZXMgPSBbXCJDXCIsXG4gICAgICAgICAgICAgICAgICAgIC8veDFcbiAgICAgICAgICAgICAgICAgICAgcHJldi54ICsgbGVuLFxuICAgICAgICAgICAgICAgICAgICAvL3kxXG4gICAgICAgICAgICAgICAgICAgIHByZXYueSxcbiAgICAgICAgICAgICAgICAgICAgLy94MixcbiAgICAgICAgICAgICAgICAgICAgcC54IC0gbGVuLFxuICAgICAgICAgICAgICAgICAgICAvL3kyLFxuICAgICAgICAgICAgICAgICAgICBwLnksXG4gICAgICAgICAgICAgICAgICAgIC8veCxcbiAgICAgICAgICAgICAgICAgICAgcC54LFxuICAgICAgICAgICAgICAgICAgICAvL3lcbiAgICAgICAgICAgICAgICAgICAgcC55XTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcHJldiA9IHA7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlcztcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB2YXIgbGluZVBvaW50cyA9IHBvaW50cy5tYXAoZnVuY3Rpb24gKHApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gY3VydmUocCk7XG4gICAgICAgICAgICB9KS5yZWR1Y2UoZnVuY3Rpb24gKGEsIGIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gYS5jb25jYXQoYik7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHZhciBjbG9zZVBvbHlQb2ludHMgPSBbXCJMXCIgKyBwb2ludHNbcG9pbnRzLmxlbmd0aCAtIDFdLngsIGhlaWdodCAtIG1hcmdpbiwgbWFyZ2luLCBoZWlnaHQgLSBtYXJnaW4sIG1hcmdpbiwgcG9pbnRzWzBdLnldO1xuICAgICAgICAgICAgdmFyIGZpbGxQb2ludHMgPSBsaW5lUG9pbnRzLmNvbmNhdChjbG9zZVBvbHlQb2ludHMpO1xuXG4gICAgICAgICAgICB2YXIgbGluZVN0eWxlID0ge1xuICAgICAgICAgICAgICAgIHN0cm9rZTogY29sb3IgfHwgc3R5bGUuc3Ryb2tlIHx8ICdzbGF0ZWdyYXknLFxuICAgICAgICAgICAgICAgIHN0cm9rZVdpZHRoOiBzdHlsZS5zdHJva2VXaWR0aCB8fCAnMScsXG4gICAgICAgICAgICAgICAgc3Ryb2tlTGluZWpvaW46IHN0eWxlLnN0cm9rZUxpbmVqb2luIHx8ICdyb3VuZCcsXG4gICAgICAgICAgICAgICAgc3Ryb2tlTGluZWNhcDogc3R5bGUuc3Ryb2tlTGluZWNhcCB8fCAncm91bmQnLFxuICAgICAgICAgICAgICAgIGZpbGw6ICdub25lJ1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHZhciBmaWxsU3R5bGUgPSB7XG4gICAgICAgICAgICAgICAgc3Ryb2tlOiBzdHlsZS5zdHJva2UgfHwgJ25vbmUnLFxuICAgICAgICAgICAgICAgIHN0cm9rZVdpZHRoOiAnMCcsXG4gICAgICAgICAgICAgICAgZmlsbE9wYWNpdHk6IHN0eWxlLmZpbGxPcGFjaXR5IHx8ICcuMScsXG4gICAgICAgICAgICAgICAgZmlsbDogc3R5bGUuZmlsbCB8fCBjb2xvciB8fCAnc2xhdGVncmF5J1xuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgcmV0dXJuIF9yZWFjdDIuZGVmYXVsdC5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICAgICdnJyxcbiAgICAgICAgICAgICAgICBudWxsLFxuICAgICAgICAgICAgICAgIF9yZWFjdDIuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCdwYXRoJywgeyBkOiBcIk1cIiArIGZpbGxQb2ludHMuam9pbignICcpLCBzdHlsZTogZmlsbFN0eWxlIH0pLFxuICAgICAgICAgICAgICAgIF9yZWFjdDIuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCdwYXRoJywgeyBkOiBcIk1cIiArIGxpbmVQb2ludHMuam9pbignICcpLCBzdHlsZTogbGluZVN0eWxlIH0pXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfV0pO1xuXG4gICAgcmV0dXJuIFNwYXJrbGluZXNDdXJ2ZTtcbn0oX3JlYWN0Mi5kZWZhdWx0LkNvbXBvbmVudCk7XG5cblNwYXJrbGluZXNDdXJ2ZS5wcm9wVHlwZXMgPSB7XG4gICAgY29sb3I6IF9wcm9wVHlwZXMyLmRlZmF1bHQuc3RyaW5nLFxuICAgIHN0eWxlOiBfcHJvcFR5cGVzMi5kZWZhdWx0Lm9iamVjdFxufTtcblNwYXJrbGluZXNDdXJ2ZS5kZWZhdWx0UHJvcHMgPSB7XG4gICAgc3R5bGU6IHt9XG59O1xuZXhwb3J0cy5kZWZhdWx0ID0gU3BhcmtsaW5lc0N1cnZlO1xuXG4vKioqLyB9KSxcbi8qIDIwICovXG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7XG5cblwidXNlIHN0cmljdFwiO1xuXG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5cbnZhciBfY3JlYXRlQ2xhc3MgPSBmdW5jdGlvbiAoKSB7IGZ1bmN0aW9uIGRlZmluZVByb3BlcnRpZXModGFyZ2V0LCBwcm9wcykgeyBmb3IgKHZhciBpID0gMDsgaSA8IHByb3BzLmxlbmd0aDsgaSsrKSB7IHZhciBkZXNjcmlwdG9yID0gcHJvcHNbaV07IGRlc2NyaXB0b3IuZW51bWVyYWJsZSA9IGRlc2NyaXB0b3IuZW51bWVyYWJsZSB8fCBmYWxzZTsgZGVzY3JpcHRvci5jb25maWd1cmFibGUgPSB0cnVlOyBpZiAoXCJ2YWx1ZVwiIGluIGRlc2NyaXB0b3IpIGRlc2NyaXB0b3Iud3JpdGFibGUgPSB0cnVlOyBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBkZXNjcmlwdG9yLmtleSwgZGVzY3JpcHRvcik7IH0gfSByZXR1cm4gZnVuY3Rpb24gKENvbnN0cnVjdG9yLCBwcm90b1Byb3BzLCBzdGF0aWNQcm9wcykgeyBpZiAocHJvdG9Qcm9wcykgZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvci5wcm90b3R5cGUsIHByb3RvUHJvcHMpOyBpZiAoc3RhdGljUHJvcHMpIGRlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IsIHN0YXRpY1Byb3BzKTsgcmV0dXJuIENvbnN0cnVjdG9yOyB9OyB9KCk7XG5cbnZhciBfcHJvcFR5cGVzID0gX193ZWJwYWNrX3JlcXVpcmVfXygwKTtcblxudmFyIF9wcm9wVHlwZXMyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfcHJvcFR5cGVzKTtcblxudmFyIF9yZWFjdCA9IF9fd2VicGFja19yZXF1aXJlX18oMSk7XG5cbnZhciBfcmVhY3QyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfcmVhY3QpO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBkZWZhdWx0OiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIik7IH0gfVxuXG5mdW5jdGlvbiBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybihzZWxmLCBjYWxsKSB7IGlmICghc2VsZikgeyB0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoXCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWRcIik7IH0gcmV0dXJuIGNhbGwgJiYgKHR5cGVvZiBjYWxsID09PSBcIm9iamVjdFwiIHx8IHR5cGVvZiBjYWxsID09PSBcImZ1bmN0aW9uXCIpID8gY2FsbCA6IHNlbGY7IH1cblxuZnVuY3Rpb24gX2luaGVyaXRzKHN1YkNsYXNzLCBzdXBlckNsYXNzKSB7IGlmICh0eXBlb2Ygc3VwZXJDbGFzcyAhPT0gXCJmdW5jdGlvblwiICYmIHN1cGVyQ2xhc3MgIT09IG51bGwpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uLCBub3QgXCIgKyB0eXBlb2Ygc3VwZXJDbGFzcyk7IH0gc3ViQ2xhc3MucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShzdXBlckNsYXNzICYmIHN1cGVyQ2xhc3MucHJvdG90eXBlLCB7IGNvbnN0cnVjdG9yOiB7IHZhbHVlOiBzdWJDbGFzcywgZW51bWVyYWJsZTogZmFsc2UsIHdyaXRhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUgfSB9KTsgaWYgKHN1cGVyQ2xhc3MpIE9iamVjdC5zZXRQcm90b3R5cGVPZiA/IE9iamVjdC5zZXRQcm90b3R5cGVPZihzdWJDbGFzcywgc3VwZXJDbGFzcykgOiBzdWJDbGFzcy5fX3Byb3RvX18gPSBzdXBlckNsYXNzOyB9XG5cbnZhciBTcGFya2xpbmVzQmFycyA9IGZ1bmN0aW9uIChfUmVhY3QkQ29tcG9uZW50KSB7XG4gIF9pbmhlcml0cyhTcGFya2xpbmVzQmFycywgX1JlYWN0JENvbXBvbmVudCk7XG5cbiAgZnVuY3Rpb24gU3BhcmtsaW5lc0JhcnMoKSB7XG4gICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFNwYXJrbGluZXNCYXJzKTtcblxuICAgIHJldHVybiBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybih0aGlzLCAoU3BhcmtsaW5lc0JhcnMuX19wcm90b19fIHx8IE9iamVjdC5nZXRQcm90b3R5cGVPZihTcGFya2xpbmVzQmFycykpLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykpO1xuICB9XG5cbiAgX2NyZWF0ZUNsYXNzKFNwYXJrbGluZXNCYXJzLCBbe1xuICAgIGtleTogJ3JlbmRlcicsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHJlbmRlcigpIHtcbiAgICAgIHZhciBfdGhpczIgPSB0aGlzO1xuXG4gICAgICB2YXIgX3Byb3BzID0gdGhpcy5wcm9wcyxcbiAgICAgICAgICBwb2ludHMgPSBfcHJvcHMucG9pbnRzLFxuICAgICAgICAgIGhlaWdodCA9IF9wcm9wcy5oZWlnaHQsXG4gICAgICAgICAgc3R5bGUgPSBfcHJvcHMuc3R5bGUsXG4gICAgICAgICAgYmFyV2lkdGggPSBfcHJvcHMuYmFyV2lkdGgsXG4gICAgICAgICAgbWFyZ2luID0gX3Byb3BzLm1hcmdpbixcbiAgICAgICAgICBvbk1vdXNlTW92ZSA9IF9wcm9wcy5vbk1vdXNlTW92ZTtcblxuICAgICAgdmFyIHN0cm9rZVdpZHRoID0gMSAqIChzdHlsZSAmJiBzdHlsZS5zdHJva2VXaWR0aCB8fCAwKTtcbiAgICAgIHZhciBtYXJnaW5XaWR0aCA9IG1hcmdpbiA/IDIgKiBtYXJnaW4gOiAwO1xuICAgICAgdmFyIHdpZHRoID0gYmFyV2lkdGggfHwgKHBvaW50cyAmJiBwb2ludHMubGVuZ3RoID49IDIgPyBNYXRoLm1heCgwLCBwb2ludHNbMV0ueCAtIHBvaW50c1swXS54IC0gc3Ryb2tlV2lkdGggLSBtYXJnaW5XaWR0aCkgOiAwKTtcblxuICAgICAgcmV0dXJuIF9yZWFjdDIuZGVmYXVsdC5jcmVhdGVFbGVtZW50KFxuICAgICAgICAnZycsXG4gICAgICAgIHsgdHJhbnNmb3JtOiAnc2NhbGUoMSwtMSknIH0sXG4gICAgICAgIHBvaW50cy5tYXAoZnVuY3Rpb24gKHAsIGkpIHtcbiAgICAgICAgICByZXR1cm4gX3JlYWN0Mi5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoJ3JlY3QnLCB7XG4gICAgICAgICAgICBrZXk6IGksXG4gICAgICAgICAgICB4OiBwLnggLSAod2lkdGggKyBzdHJva2VXaWR0aCkgLyAyLFxuICAgICAgICAgICAgeTogLWhlaWdodCxcbiAgICAgICAgICAgIHdpZHRoOiB3aWR0aCxcbiAgICAgICAgICAgIGhlaWdodDogTWF0aC5tYXgoMCwgaGVpZ2h0IC0gcC55KSxcbiAgICAgICAgICAgIHN0eWxlOiBzdHlsZSxcbiAgICAgICAgICAgIG9uTW91c2VNb3ZlOiBvbk1vdXNlTW92ZSAmJiBvbk1vdXNlTW92ZS5iaW5kKF90aGlzMiwgcClcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfVxuICB9XSk7XG5cbiAgcmV0dXJuIFNwYXJrbGluZXNCYXJzO1xufShfcmVhY3QyLmRlZmF1bHQuQ29tcG9uZW50KTtcblxuU3BhcmtsaW5lc0JhcnMucHJvcFR5cGVzID0ge1xuICBwb2ludHM6IF9wcm9wVHlwZXMyLmRlZmF1bHQuYXJyYXlPZihfcHJvcFR5cGVzMi5kZWZhdWx0Lm9iamVjdCksXG4gIGhlaWdodDogX3Byb3BUeXBlczIuZGVmYXVsdC5udW1iZXIsXG4gIHN0eWxlOiBfcHJvcFR5cGVzMi5kZWZhdWx0Lm9iamVjdCxcbiAgYmFyV2lkdGg6IF9wcm9wVHlwZXMyLmRlZmF1bHQubnVtYmVyLFxuICBtYXJnaW46IF9wcm9wVHlwZXMyLmRlZmF1bHQubnVtYmVyLFxuICBvbk1vdXNlTW92ZTogX3Byb3BUeXBlczIuZGVmYXVsdC5mdW5jXG59O1xuU3BhcmtsaW5lc0JhcnMuZGVmYXVsdFByb3BzID0ge1xuICBzdHlsZTogeyBmaWxsOiAnc2xhdGVncmF5JyB9XG59O1xuZXhwb3J0cy5kZWZhdWx0ID0gU3BhcmtsaW5lc0JhcnM7XG5cbi8qKiovIH0pLFxuLyogMjEgKi9cbi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG5cblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuXG52YXIgX2NyZWF0ZUNsYXNzID0gZnVuY3Rpb24gKCkgeyBmdW5jdGlvbiBkZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCwgcHJvcHMpIHsgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9wcy5sZW5ndGg7IGkrKykgeyB2YXIgZGVzY3JpcHRvciA9IHByb3BzW2ldOyBkZXNjcmlwdG9yLmVudW1lcmFibGUgPSBkZXNjcmlwdG9yLmVudW1lcmFibGUgfHwgZmFsc2U7IGRlc2NyaXB0b3IuY29uZmlndXJhYmxlID0gdHJ1ZTsgaWYgKFwidmFsdWVcIiBpbiBkZXNjcmlwdG9yKSBkZXNjcmlwdG9yLndyaXRhYmxlID0gdHJ1ZTsgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgZGVzY3JpcHRvci5rZXksIGRlc2NyaXB0b3IpOyB9IH0gcmV0dXJuIGZ1bmN0aW9uIChDb25zdHJ1Y3RvciwgcHJvdG9Qcm9wcywgc3RhdGljUHJvcHMpIHsgaWYgKHByb3RvUHJvcHMpIGRlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IucHJvdG90eXBlLCBwcm90b1Byb3BzKTsgaWYgKHN0YXRpY1Byb3BzKSBkZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLCBzdGF0aWNQcm9wcyk7IHJldHVybiBDb25zdHJ1Y3RvcjsgfTsgfSgpO1xuXG52YXIgX3Byb3BUeXBlcyA9IF9fd2VicGFja19yZXF1aXJlX18oMCk7XG5cbnZhciBfcHJvcFR5cGVzMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3Byb3BUeXBlcyk7XG5cbnZhciBfcmVhY3QgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDEpO1xuXG52YXIgX3JlYWN0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3JlYWN0KTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgZGVmYXVsdDogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uXCIpOyB9IH1cblxuZnVuY3Rpb24gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4oc2VsZiwgY2FsbCkgeyBpZiAoIXNlbGYpIHsgdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKFwidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkXCIpOyB9IHJldHVybiBjYWxsICYmICh0eXBlb2YgY2FsbCA9PT0gXCJvYmplY3RcIiB8fCB0eXBlb2YgY2FsbCA9PT0gXCJmdW5jdGlvblwiKSA/IGNhbGwgOiBzZWxmOyB9XG5cbmZ1bmN0aW9uIF9pbmhlcml0cyhzdWJDbGFzcywgc3VwZXJDbGFzcykgeyBpZiAodHlwZW9mIHN1cGVyQ2xhc3MgIT09IFwiZnVuY3Rpb25cIiAmJiBzdXBlckNsYXNzICE9PSBudWxsKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoXCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiwgbm90IFwiICsgdHlwZW9mIHN1cGVyQ2xhc3MpOyB9IHN1YkNsYXNzLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoc3VwZXJDbGFzcyAmJiBzdXBlckNsYXNzLnByb3RvdHlwZSwgeyBjb25zdHJ1Y3RvcjogeyB2YWx1ZTogc3ViQ2xhc3MsIGVudW1lcmFibGU6IGZhbHNlLCB3cml0YWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlIH0gfSk7IGlmIChzdXBlckNsYXNzKSBPYmplY3Quc2V0UHJvdG90eXBlT2YgPyBPYmplY3Quc2V0UHJvdG90eXBlT2Yoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIDogc3ViQ2xhc3MuX19wcm90b19fID0gc3VwZXJDbGFzczsgfVxuXG52YXIgU3BhcmtsaW5lc1Nwb3RzID0gZnVuY3Rpb24gKF9SZWFjdCRDb21wb25lbnQpIHtcbiAgICBfaW5oZXJpdHMoU3BhcmtsaW5lc1Nwb3RzLCBfUmVhY3QkQ29tcG9uZW50KTtcblxuICAgIGZ1bmN0aW9uIFNwYXJrbGluZXNTcG90cygpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFNwYXJrbGluZXNTcG90cyk7XG5cbiAgICAgICAgcmV0dXJuIF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHRoaXMsIChTcGFya2xpbmVzU3BvdHMuX19wcm90b19fIHx8IE9iamVjdC5nZXRQcm90b3R5cGVPZihTcGFya2xpbmVzU3BvdHMpKS5hcHBseSh0aGlzLCBhcmd1bWVudHMpKTtcbiAgICB9XG5cbiAgICBfY3JlYXRlQ2xhc3MoU3BhcmtsaW5lc1Nwb3RzLCBbe1xuICAgICAgICBrZXk6ICdsYXN0RGlyZWN0aW9uJyxcbiAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIGxhc3REaXJlY3Rpb24ocG9pbnRzKSB7XG5cbiAgICAgICAgICAgIE1hdGguc2lnbiA9IE1hdGguc2lnbiB8fCBmdW5jdGlvbiAoeCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB4ID4gMCA/IDEgOiAtMTtcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIHJldHVybiBwb2ludHMubGVuZ3RoIDwgMiA/IDAgOiBNYXRoLnNpZ24ocG9pbnRzW3BvaW50cy5sZW5ndGggLSAyXS55IC0gcG9pbnRzW3BvaW50cy5sZW5ndGggLSAxXS55KTtcbiAgICAgICAgfVxuICAgIH0sIHtcbiAgICAgICAga2V5OiAncmVuZGVyJyxcbiAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIHJlbmRlcigpIHtcbiAgICAgICAgICAgIHZhciBfcHJvcHMgPSB0aGlzLnByb3BzLFxuICAgICAgICAgICAgICAgIHBvaW50cyA9IF9wcm9wcy5wb2ludHMsXG4gICAgICAgICAgICAgICAgd2lkdGggPSBfcHJvcHMud2lkdGgsXG4gICAgICAgICAgICAgICAgaGVpZ2h0ID0gX3Byb3BzLmhlaWdodCxcbiAgICAgICAgICAgICAgICBzaXplID0gX3Byb3BzLnNpemUsXG4gICAgICAgICAgICAgICAgc3R5bGUgPSBfcHJvcHMuc3R5bGUsXG4gICAgICAgICAgICAgICAgc3BvdENvbG9ycyA9IF9wcm9wcy5zcG90Q29sb3JzO1xuXG5cbiAgICAgICAgICAgIHZhciBzdGFydFNwb3QgPSBfcmVhY3QyLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgnY2lyY2xlJywge1xuICAgICAgICAgICAgICAgIGN4OiBwb2ludHNbMF0ueCxcbiAgICAgICAgICAgICAgICBjeTogcG9pbnRzWzBdLnksXG4gICAgICAgICAgICAgICAgcjogc2l6ZSxcbiAgICAgICAgICAgICAgICBzdHlsZTogc3R5bGUgfSk7XG5cbiAgICAgICAgICAgIHZhciBlbmRTcG90ID0gX3JlYWN0Mi5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoJ2NpcmNsZScsIHtcbiAgICAgICAgICAgICAgICBjeDogcG9pbnRzW3BvaW50cy5sZW5ndGggLSAxXS54LFxuICAgICAgICAgICAgICAgIGN5OiBwb2ludHNbcG9pbnRzLmxlbmd0aCAtIDFdLnksXG4gICAgICAgICAgICAgICAgcjogc2l6ZSxcbiAgICAgICAgICAgICAgICBzdHlsZTogc3R5bGUgfHwgeyBmaWxsOiBzcG90Q29sb3JzW3RoaXMubGFzdERpcmVjdGlvbihwb2ludHMpXSB9IH0pO1xuXG4gICAgICAgICAgICByZXR1cm4gX3JlYWN0Mi5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAgICAgJ2cnLFxuICAgICAgICAgICAgICAgIG51bGwsXG4gICAgICAgICAgICAgICAgc3R5bGUgJiYgc3RhcnRTcG90LFxuICAgICAgICAgICAgICAgIGVuZFNwb3RcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XSk7XG5cbiAgICByZXR1cm4gU3BhcmtsaW5lc1Nwb3RzO1xufShfcmVhY3QyLmRlZmF1bHQuQ29tcG9uZW50KTtcblxuU3BhcmtsaW5lc1Nwb3RzLnByb3BUeXBlcyA9IHtcbiAgICBzaXplOiBfcHJvcFR5cGVzMi5kZWZhdWx0Lm51bWJlcixcbiAgICBzdHlsZTogX3Byb3BUeXBlczIuZGVmYXVsdC5vYmplY3QsXG4gICAgc3BvdENvbG9yczogX3Byb3BUeXBlczIuZGVmYXVsdC5vYmplY3Rcbn07XG5TcGFya2xpbmVzU3BvdHMuZGVmYXVsdFByb3BzID0ge1xuICAgIHNpemU6IDIsXG4gICAgc3BvdENvbG9yczoge1xuICAgICAgICAnLTEnOiAncmVkJyxcbiAgICAgICAgJzAnOiAnYmxhY2snLFxuICAgICAgICAnMSc6ICdncmVlbidcbiAgICB9XG59O1xuZXhwb3J0cy5kZWZhdWx0ID0gU3BhcmtsaW5lc1Nwb3RzO1xuXG4vKioqLyB9KSxcbi8qIDIyICovXG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7XG5cblwidXNlIHN0cmljdFwiO1xuXG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcblxudmFyIF9jcmVhdGVDbGFzcyA9IGZ1bmN0aW9uICgpIHsgZnVuY3Rpb24gZGVmaW5lUHJvcGVydGllcyh0YXJnZXQsIHByb3BzKSB7IGZvciAodmFyIGkgPSAwOyBpIDwgcHJvcHMubGVuZ3RoOyBpKyspIHsgdmFyIGRlc2NyaXB0b3IgPSBwcm9wc1tpXTsgZGVzY3JpcHRvci5lbnVtZXJhYmxlID0gZGVzY3JpcHRvci5lbnVtZXJhYmxlIHx8IGZhbHNlOyBkZXNjcmlwdG9yLmNvbmZpZ3VyYWJsZSA9IHRydWU7IGlmIChcInZhbHVlXCIgaW4gZGVzY3JpcHRvcikgZGVzY3JpcHRvci53cml0YWJsZSA9IHRydWU7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGRlc2NyaXB0b3Iua2V5LCBkZXNjcmlwdG9yKTsgfSB9IHJldHVybiBmdW5jdGlvbiAoQ29uc3RydWN0b3IsIHByb3RvUHJvcHMsIHN0YXRpY1Byb3BzKSB7IGlmIChwcm90b1Byb3BzKSBkZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLnByb3RvdHlwZSwgcHJvdG9Qcm9wcyk7IGlmIChzdGF0aWNQcm9wcykgZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvciwgc3RhdGljUHJvcHMpOyByZXR1cm4gQ29uc3RydWN0b3I7IH07IH0oKTtcblxudmFyIF9wcm9wVHlwZXMgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDApO1xuXG52YXIgX3Byb3BUeXBlczIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9wcm9wVHlwZXMpO1xuXG52YXIgX3JlYWN0ID0gX193ZWJwYWNrX3JlcXVpcmVfXygxKTtcblxudmFyIF9yZWFjdDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9yZWFjdCk7XG5cbnZhciBfZGF0YVByb2Nlc3NpbmcgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDIzKTtcblxudmFyIGRhdGFQcm9jZXNzaW5nID0gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQoX2RhdGFQcm9jZXNzaW5nKTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQob2JqKSB7IGlmIChvYmogJiYgb2JqLl9fZXNNb2R1bGUpIHsgcmV0dXJuIG9iajsgfSBlbHNlIHsgdmFyIG5ld09iaiA9IHt9OyBpZiAob2JqICE9IG51bGwpIHsgZm9yICh2YXIga2V5IGluIG9iaikgeyBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwga2V5KSkgbmV3T2JqW2tleV0gPSBvYmpba2V5XTsgfSB9IG5ld09iai5kZWZhdWx0ID0gb2JqOyByZXR1cm4gbmV3T2JqOyB9IH1cblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgZGVmYXVsdDogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uXCIpOyB9IH1cblxuZnVuY3Rpb24gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4oc2VsZiwgY2FsbCkgeyBpZiAoIXNlbGYpIHsgdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKFwidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkXCIpOyB9IHJldHVybiBjYWxsICYmICh0eXBlb2YgY2FsbCA9PT0gXCJvYmplY3RcIiB8fCB0eXBlb2YgY2FsbCA9PT0gXCJmdW5jdGlvblwiKSA/IGNhbGwgOiBzZWxmOyB9XG5cbmZ1bmN0aW9uIF9pbmhlcml0cyhzdWJDbGFzcywgc3VwZXJDbGFzcykgeyBpZiAodHlwZW9mIHN1cGVyQ2xhc3MgIT09IFwiZnVuY3Rpb25cIiAmJiBzdXBlckNsYXNzICE9PSBudWxsKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoXCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiwgbm90IFwiICsgdHlwZW9mIHN1cGVyQ2xhc3MpOyB9IHN1YkNsYXNzLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoc3VwZXJDbGFzcyAmJiBzdXBlckNsYXNzLnByb3RvdHlwZSwgeyBjb25zdHJ1Y3RvcjogeyB2YWx1ZTogc3ViQ2xhc3MsIGVudW1lcmFibGU6IGZhbHNlLCB3cml0YWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlIH0gfSk7IGlmIChzdXBlckNsYXNzKSBPYmplY3Quc2V0UHJvdG90eXBlT2YgPyBPYmplY3Quc2V0UHJvdG90eXBlT2Yoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIDogc3ViQ2xhc3MuX19wcm90b19fID0gc3VwZXJDbGFzczsgfVxuXG52YXIgU3BhcmtsaW5lc1JlZmVyZW5jZUxpbmUgPSBmdW5jdGlvbiAoX1JlYWN0JENvbXBvbmVudCkge1xuICAgIF9pbmhlcml0cyhTcGFya2xpbmVzUmVmZXJlbmNlTGluZSwgX1JlYWN0JENvbXBvbmVudCk7XG5cbiAgICBmdW5jdGlvbiBTcGFya2xpbmVzUmVmZXJlbmNlTGluZSgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFNwYXJrbGluZXNSZWZlcmVuY2VMaW5lKTtcblxuICAgICAgICByZXR1cm4gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4odGhpcywgKFNwYXJrbGluZXNSZWZlcmVuY2VMaW5lLl9fcHJvdG9fXyB8fCBPYmplY3QuZ2V0UHJvdG90eXBlT2YoU3BhcmtsaW5lc1JlZmVyZW5jZUxpbmUpKS5hcHBseSh0aGlzLCBhcmd1bWVudHMpKTtcbiAgICB9XG5cbiAgICBfY3JlYXRlQ2xhc3MoU3BhcmtsaW5lc1JlZmVyZW5jZUxpbmUsIFt7XG4gICAgICAgIGtleTogJ3JlbmRlcicsXG4gICAgICAgIHZhbHVlOiBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICAgICAgICB2YXIgX3Byb3BzID0gdGhpcy5wcm9wcyxcbiAgICAgICAgICAgICAgICBwb2ludHMgPSBfcHJvcHMucG9pbnRzLFxuICAgICAgICAgICAgICAgIG1hcmdpbiA9IF9wcm9wcy5tYXJnaW4sXG4gICAgICAgICAgICAgICAgdHlwZSA9IF9wcm9wcy50eXBlLFxuICAgICAgICAgICAgICAgIHN0eWxlID0gX3Byb3BzLnN0eWxlLFxuICAgICAgICAgICAgICAgIHZhbHVlID0gX3Byb3BzLnZhbHVlO1xuXG5cbiAgICAgICAgICAgIHZhciB5cG9pbnRzID0gcG9pbnRzLm1hcChmdW5jdGlvbiAocCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBwLnk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHZhciB5ID0gdHlwZSA9PSAnY3VzdG9tJyA/IHZhbHVlIDogZGF0YVByb2Nlc3NpbmdbdHlwZV0oeXBvaW50cyk7XG5cbiAgICAgICAgICAgIHJldHVybiBfcmVhY3QyLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgnbGluZScsIHtcbiAgICAgICAgICAgICAgICB4MTogcG9pbnRzWzBdLngsIHkxOiB5ICsgbWFyZ2luLFxuICAgICAgICAgICAgICAgIHgyOiBwb2ludHNbcG9pbnRzLmxlbmd0aCAtIDFdLngsIHkyOiB5ICsgbWFyZ2luLFxuICAgICAgICAgICAgICAgIHN0eWxlOiBzdHlsZSB9KTtcbiAgICAgICAgfVxuICAgIH1dKTtcblxuICAgIHJldHVybiBTcGFya2xpbmVzUmVmZXJlbmNlTGluZTtcbn0oX3JlYWN0Mi5kZWZhdWx0LkNvbXBvbmVudCk7XG5cblNwYXJrbGluZXNSZWZlcmVuY2VMaW5lLnByb3BUeXBlcyA9IHtcbiAgICB0eXBlOiBfcHJvcFR5cGVzMi5kZWZhdWx0Lm9uZU9mKFsnbWF4JywgJ21pbicsICdtZWFuJywgJ2F2ZycsICdtZWRpYW4nLCAnY3VzdG9tJ10pLFxuICAgIHZhbHVlOiBfcHJvcFR5cGVzMi5kZWZhdWx0Lm51bWJlcixcbiAgICBzdHlsZTogX3Byb3BUeXBlczIuZGVmYXVsdC5vYmplY3Rcbn07XG5TcGFya2xpbmVzUmVmZXJlbmNlTGluZS5kZWZhdWx0UHJvcHMgPSB7XG4gICAgdHlwZTogJ21lYW4nLFxuICAgIHN0eWxlOiB7IHN0cm9rZTogJ3JlZCcsIHN0cm9rZU9wYWNpdHk6IC43NSwgc3Ryb2tlRGFzaGFycmF5OiAnMiwgMicgfVxufTtcbmV4cG9ydHMuZGVmYXVsdCA9IFNwYXJrbGluZXNSZWZlcmVuY2VMaW5lO1xuXG4vKioqLyB9KSxcbi8qIDIzICovXG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7XG5cblwidXNlIHN0cmljdFwiO1xuXG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLnZhcmlhbmNlID0gZXhwb3J0cy5zdGRldiA9IGV4cG9ydHMubWVkaWFuID0gZXhwb3J0cy5taWRSYW5nZSA9IGV4cG9ydHMuYXZnID0gZXhwb3J0cy5tZWFuID0gZXhwb3J0cy5tYXggPSBleHBvcnRzLm1pbiA9IHVuZGVmaW5lZDtcblxudmFyIF9taW4yID0gX193ZWJwYWNrX3JlcXVpcmVfXyg3KTtcblxudmFyIF9taW4zID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbWluMik7XG5cbnZhciBfbWVhbjIgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDMpO1xuXG52YXIgX21lYW4zID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbWVhbjIpO1xuXG52YXIgX21pZFJhbmdlMiA9IF9fd2VicGFja19yZXF1aXJlX18oMjQpO1xuXG52YXIgX21pZFJhbmdlMyA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21pZFJhbmdlMik7XG5cbnZhciBfbWVkaWFuMiA9IF9fd2VicGFja19yZXF1aXJlX18oMjUpO1xuXG52YXIgX21lZGlhbjMgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tZWRpYW4yKTtcblxudmFyIF9zdGRldjIgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDEwKTtcblxudmFyIF9zdGRldjMgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9zdGRldjIpO1xuXG52YXIgX3ZhcmlhbmNlMiA9IF9fd2VicGFja19yZXF1aXJlX18oMjYpO1xuXG52YXIgX3ZhcmlhbmNlMyA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3ZhcmlhbmNlMik7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7IGRlZmF1bHQ6IG9iaiB9OyB9XG5cbmV4cG9ydHMubWluID0gX21pbjMuZGVmYXVsdDtcbmV4cG9ydHMubWF4ID0gX21pbjMuZGVmYXVsdDtcbmV4cG9ydHMubWVhbiA9IF9tZWFuMy5kZWZhdWx0O1xuZXhwb3J0cy5hdmcgPSBfbWVhbjMuZGVmYXVsdDtcbmV4cG9ydHMubWlkUmFuZ2UgPSBfbWlkUmFuZ2UzLmRlZmF1bHQ7XG5leHBvcnRzLm1lZGlhbiA9IF9tZWRpYW4zLmRlZmF1bHQ7XG5leHBvcnRzLnN0ZGV2ID0gX3N0ZGV2My5kZWZhdWx0O1xuZXhwb3J0cy52YXJpYW5jZSA9IF92YXJpYW5jZTMuZGVmYXVsdDtcblxuLyoqKi8gfSksXG4vKiAyNCAqL1xuLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykge1xuXG5cInVzZSBzdHJpY3RcIjtcblxuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5cbnZhciBfbWluID0gX193ZWJwYWNrX3JlcXVpcmVfXyg3KTtcblxudmFyIF9taW4yID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbWluKTtcblxudmFyIF9tYXggPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDkpO1xuXG52YXIgX21heDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tYXgpO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBkZWZhdWx0OiBvYmogfTsgfVxuXG5leHBvcnRzLmRlZmF1bHQgPSBmdW5jdGlvbiAoZGF0YSkge1xuICAgIHJldHVybiAoMCwgX21heDIuZGVmYXVsdCkoZGF0YSkgLSAoMCwgX21pbjIuZGVmYXVsdCkoZGF0YSkgLyAyO1xufTtcblxuLyoqKi8gfSksXG4vKiAyNSAqL1xuLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykge1xuXG5cInVzZSBzdHJpY3RcIjtcblxuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5cbmV4cG9ydHMuZGVmYXVsdCA9IGZ1bmN0aW9uIChkYXRhKSB7XG4gICAgcmV0dXJuIGRhdGEuc29ydChmdW5jdGlvbiAoYSwgYikge1xuICAgICAgICByZXR1cm4gYSAtIGI7XG4gICAgfSlbTWF0aC5mbG9vcihkYXRhLmxlbmd0aCAvIDIpXTtcbn07XG5cbi8qKiovIH0pLFxuLyogMjYgKi9cbi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG5cblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuXG52YXIgX21lYW4gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDMpO1xuXG52YXIgX21lYW4yID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbWVhbik7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7IGRlZmF1bHQ6IG9iaiB9OyB9XG5cbmV4cG9ydHMuZGVmYXVsdCA9IGZ1bmN0aW9uIChkYXRhKSB7XG4gICAgdmFyIGRhdGFNZWFuID0gKDAsIF9tZWFuMi5kZWZhdWx0KShkYXRhKTtcbiAgICB2YXIgc3EgPSBkYXRhLm1hcChmdW5jdGlvbiAobikge1xuICAgICAgICByZXR1cm4gTWF0aC5wb3cobiAtIGRhdGFNZWFuLCAyKTtcbiAgICB9KTtcbiAgICByZXR1cm4gKDAsIF9tZWFuMi5kZWZhdWx0KShzcSk7XG59O1xuXG4vKioqLyB9KSxcbi8qIDI3ICovXG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7XG5cblwidXNlIHN0cmljdFwiO1xuXG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcblxudmFyIF9jcmVhdGVDbGFzcyA9IGZ1bmN0aW9uICgpIHsgZnVuY3Rpb24gZGVmaW5lUHJvcGVydGllcyh0YXJnZXQsIHByb3BzKSB7IGZvciAodmFyIGkgPSAwOyBpIDwgcHJvcHMubGVuZ3RoOyBpKyspIHsgdmFyIGRlc2NyaXB0b3IgPSBwcm9wc1tpXTsgZGVzY3JpcHRvci5lbnVtZXJhYmxlID0gZGVzY3JpcHRvci5lbnVtZXJhYmxlIHx8IGZhbHNlOyBkZXNjcmlwdG9yLmNvbmZpZ3VyYWJsZSA9IHRydWU7IGlmIChcInZhbHVlXCIgaW4gZGVzY3JpcHRvcikgZGVzY3JpcHRvci53cml0YWJsZSA9IHRydWU7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGRlc2NyaXB0b3Iua2V5LCBkZXNjcmlwdG9yKTsgfSB9IHJldHVybiBmdW5jdGlvbiAoQ29uc3RydWN0b3IsIHByb3RvUHJvcHMsIHN0YXRpY1Byb3BzKSB7IGlmIChwcm90b1Byb3BzKSBkZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLnByb3RvdHlwZSwgcHJvdG9Qcm9wcyk7IGlmIChzdGF0aWNQcm9wcykgZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvciwgc3RhdGljUHJvcHMpOyByZXR1cm4gQ29uc3RydWN0b3I7IH07IH0oKTtcblxudmFyIF9wcm9wVHlwZXMgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDApO1xuXG52YXIgX3Byb3BUeXBlczIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9wcm9wVHlwZXMpO1xuXG52YXIgX3JlYWN0ID0gX193ZWJwYWNrX3JlcXVpcmVfXygxKTtcblxudmFyIF9yZWFjdDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9yZWFjdCk7XG5cbnZhciBfbWVhbiA9IF9fd2VicGFja19yZXF1aXJlX18oMyk7XG5cbnZhciBfbWVhbjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tZWFuKTtcblxudmFyIF9zdGRldiA9IF9fd2VicGFja19yZXF1aXJlX18oMTApO1xuXG52YXIgX3N0ZGV2MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3N0ZGV2KTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgZGVmYXVsdDogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uXCIpOyB9IH1cblxuZnVuY3Rpb24gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4oc2VsZiwgY2FsbCkgeyBpZiAoIXNlbGYpIHsgdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKFwidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkXCIpOyB9IHJldHVybiBjYWxsICYmICh0eXBlb2YgY2FsbCA9PT0gXCJvYmplY3RcIiB8fCB0eXBlb2YgY2FsbCA9PT0gXCJmdW5jdGlvblwiKSA/IGNhbGwgOiBzZWxmOyB9XG5cbmZ1bmN0aW9uIF9pbmhlcml0cyhzdWJDbGFzcywgc3VwZXJDbGFzcykgeyBpZiAodHlwZW9mIHN1cGVyQ2xhc3MgIT09IFwiZnVuY3Rpb25cIiAmJiBzdXBlckNsYXNzICE9PSBudWxsKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoXCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiwgbm90IFwiICsgdHlwZW9mIHN1cGVyQ2xhc3MpOyB9IHN1YkNsYXNzLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoc3VwZXJDbGFzcyAmJiBzdXBlckNsYXNzLnByb3RvdHlwZSwgeyBjb25zdHJ1Y3RvcjogeyB2YWx1ZTogc3ViQ2xhc3MsIGVudW1lcmFibGU6IGZhbHNlLCB3cml0YWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlIH0gfSk7IGlmIChzdXBlckNsYXNzKSBPYmplY3Quc2V0UHJvdG90eXBlT2YgPyBPYmplY3Quc2V0UHJvdG90eXBlT2Yoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIDogc3ViQ2xhc3MuX19wcm90b19fID0gc3VwZXJDbGFzczsgfVxuXG52YXIgU3BhcmtsaW5lc05vcm1hbEJhbmQgPSBmdW5jdGlvbiAoX1JlYWN0JENvbXBvbmVudCkge1xuICAgIF9pbmhlcml0cyhTcGFya2xpbmVzTm9ybWFsQmFuZCwgX1JlYWN0JENvbXBvbmVudCk7XG5cbiAgICBmdW5jdGlvbiBTcGFya2xpbmVzTm9ybWFsQmFuZCgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFNwYXJrbGluZXNOb3JtYWxCYW5kKTtcblxuICAgICAgICByZXR1cm4gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4odGhpcywgKFNwYXJrbGluZXNOb3JtYWxCYW5kLl9fcHJvdG9fXyB8fCBPYmplY3QuZ2V0UHJvdG90eXBlT2YoU3BhcmtsaW5lc05vcm1hbEJhbmQpKS5hcHBseSh0aGlzLCBhcmd1bWVudHMpKTtcbiAgICB9XG5cbiAgICBfY3JlYXRlQ2xhc3MoU3BhcmtsaW5lc05vcm1hbEJhbmQsIFt7XG4gICAgICAgIGtleTogJ3JlbmRlcicsXG4gICAgICAgIHZhbHVlOiBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICAgICAgICB2YXIgX3Byb3BzID0gdGhpcy5wcm9wcyxcbiAgICAgICAgICAgICAgICBwb2ludHMgPSBfcHJvcHMucG9pbnRzLFxuICAgICAgICAgICAgICAgIG1hcmdpbiA9IF9wcm9wcy5tYXJnaW4sXG4gICAgICAgICAgICAgICAgc3R5bGUgPSBfcHJvcHMuc3R5bGU7XG5cblxuICAgICAgICAgICAgdmFyIHlwb2ludHMgPSBwb2ludHMubWFwKGZ1bmN0aW9uIChwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHAueTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdmFyIGRhdGFNZWFuID0gKDAsIF9tZWFuMi5kZWZhdWx0KSh5cG9pbnRzKTtcbiAgICAgICAgICAgIHZhciBkYXRhU3RkZXYgPSAoMCwgX3N0ZGV2Mi5kZWZhdWx0KSh5cG9pbnRzKTtcblxuICAgICAgICAgICAgcmV0dXJuIF9yZWFjdDIuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCdyZWN0JywgeyB4OiBwb2ludHNbMF0ueCwgeTogZGF0YU1lYW4gLSBkYXRhU3RkZXYgKyBtYXJnaW4sXG4gICAgICAgICAgICAgICAgd2lkdGg6IHBvaW50c1twb2ludHMubGVuZ3RoIC0gMV0ueCAtIHBvaW50c1swXS54LCBoZWlnaHQ6IF9zdGRldjIuZGVmYXVsdCAqIDIsXG4gICAgICAgICAgICAgICAgc3R5bGU6IHN0eWxlIH0pO1xuICAgICAgICB9XG4gICAgfV0pO1xuXG4gICAgcmV0dXJuIFNwYXJrbGluZXNOb3JtYWxCYW5kO1xufShfcmVhY3QyLmRlZmF1bHQuQ29tcG9uZW50KTtcblxuU3BhcmtsaW5lc05vcm1hbEJhbmQucHJvcFR5cGVzID0ge1xuICAgIHN0eWxlOiBfcHJvcFR5cGVzMi5kZWZhdWx0Lm9iamVjdFxufTtcblNwYXJrbGluZXNOb3JtYWxCYW5kLmRlZmF1bHRQcm9wcyA9IHtcbiAgICBzdHlsZTogeyBmaWxsOiAncmVkJywgZmlsbE9wYWNpdHk6IC4xIH1cbn07XG5leHBvcnRzLmRlZmF1bHQgPSBTcGFya2xpbmVzTm9ybWFsQmFuZDtcblxuLyoqKi8gfSksXG4vKiAyOCAqL1xuLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykge1xuXG5cInVzZSBzdHJpY3RcIjtcblxuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5cbnZhciBfbWluID0gX193ZWJwYWNrX3JlcXVpcmVfXyg3KTtcblxudmFyIF9taW4yID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbWluKTtcblxudmFyIF9tYXggPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDkpO1xuXG52YXIgX21heDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tYXgpO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBkZWZhdWx0OiBvYmogfTsgfVxuXG5leHBvcnRzLmRlZmF1bHQgPSBmdW5jdGlvbiAoX3JlZikge1xuICAgIHZhciBkYXRhID0gX3JlZi5kYXRhLFxuICAgICAgICBsaW1pdCA9IF9yZWYubGltaXQsXG4gICAgICAgIF9yZWYkd2lkdGggPSBfcmVmLndpZHRoLFxuICAgICAgICB3aWR0aCA9IF9yZWYkd2lkdGggPT09IHVuZGVmaW5lZCA/IDEgOiBfcmVmJHdpZHRoLFxuICAgICAgICBfcmVmJGhlaWdodCA9IF9yZWYuaGVpZ2h0LFxuICAgICAgICBoZWlnaHQgPSBfcmVmJGhlaWdodCA9PT0gdW5kZWZpbmVkID8gMSA6IF9yZWYkaGVpZ2h0LFxuICAgICAgICBfcmVmJG1hcmdpbiA9IF9yZWYubWFyZ2luLFxuICAgICAgICBtYXJnaW4gPSBfcmVmJG1hcmdpbiA9PT0gdW5kZWZpbmVkID8gMCA6IF9yZWYkbWFyZ2luLFxuICAgICAgICBfcmVmJG1heCA9IF9yZWYubWF4LFxuICAgICAgICBtYXggPSBfcmVmJG1heCA9PT0gdW5kZWZpbmVkID8gKDAsIF9tYXgyLmRlZmF1bHQpKGRhdGEpIDogX3JlZiRtYXgsXG4gICAgICAgIF9yZWYkbWluID0gX3JlZi5taW4sXG4gICAgICAgIG1pbiA9IF9yZWYkbWluID09PSB1bmRlZmluZWQgPyAoMCwgX21pbjIuZGVmYXVsdCkoZGF0YSkgOiBfcmVmJG1pbjtcblxuXG4gICAgdmFyIGxlbiA9IGRhdGEubGVuZ3RoO1xuXG4gICAgaWYgKGxpbWl0ICYmIGxpbWl0IDwgbGVuKSB7XG4gICAgICAgIGRhdGEgPSBkYXRhLnNsaWNlKGxlbiAtIGxpbWl0KTtcbiAgICB9XG5cbiAgICB2YXIgdmZhY3RvciA9IChoZWlnaHQgLSBtYXJnaW4gKiAyKSAvIChtYXggLSBtaW4gfHwgMik7XG4gICAgdmFyIGhmYWN0b3IgPSAod2lkdGggLSBtYXJnaW4gKiAyKSAvICgobGltaXQgfHwgbGVuKSAtIChsZW4gPiAxID8gMSA6IDApKTtcblxuICAgIHJldHVybiBkYXRhLm1hcChmdW5jdGlvbiAoZCwgaSkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgeDogaSAqIGhmYWN0b3IgKyBtYXJnaW4sXG4gICAgICAgICAgICB5OiAobWF4ID09PSBtaW4gPyAxIDogbWF4IC0gZCkgKiB2ZmFjdG9yICsgbWFyZ2luXG4gICAgICAgIH07XG4gICAgfSk7XG59O1xuXG4vKioqLyB9KVxuLyoqKioqKi8gXSk7XG59KTsiLCJtb2R1bGUuZXhwb3J0cz13aW5kb3cuUmVhY3RcbiJdfQ== diff --git a/examples/sparklineswidget/inst/htmlwidgets/sparklineswidget.yaml b/examples/sparklineswidget/inst/htmlwidgets/sparklineswidget.yaml new file mode 100644 index 0000000..a724f4a --- /dev/null +++ b/examples/sparklineswidget/inst/htmlwidgets/sparklineswidget.yaml @@ -0,0 +1,7 @@ +# (uncomment to add a dependency) +# dependencies: +# - name: +# version: +# src: +# script: +# stylesheet: diff --git a/examples/sparklineswidget/package.json b/examples/sparklineswidget/package.json new file mode 100644 index 0000000..7cf080c --- /dev/null +++ b/examples/sparklineswidget/package.json @@ -0,0 +1,15 @@ +{ + "name": "react-sparklines", + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "react-sparklines": "^1.7.0" + }, + "devDependencies": { + "babel-cli": "^6.26.0", + "babel-preset-env": "^1.7.0", + "babel-preset-minify": "^0.3.0", + "babel-preset-react": "^6.24.1", + "browserify": "^16.2.3" + } +} \ No newline at end of file diff --git a/examples/sparklineswidget/sparklineswidget.Rproj b/examples/sparklineswidget/sparklineswidget.Rproj new file mode 100644 index 0000000..d848a9f --- /dev/null +++ b/examples/sparklineswidget/sparklineswidget.Rproj @@ -0,0 +1,16 @@ +Version: 1.0 + +RestoreWorkspace: No +SaveWorkspace: No +AlwaysSaveHistory: Default + +EnableCodeIndexing: Yes +Encoding: UTF-8 + +AutoAppendNewline: Yes +StripTrailingWhitespace: Yes + +BuildType: Package +PackageUseDevtools: Yes +PackageInstallArgs: --no-multiarch --with-keep.source +PackageRoxygenize: rd,collate,namespace diff --git a/examples/sparklineswidget/srcjs/sparklineswidget.js b/examples/sparklineswidget/srcjs/sparklineswidget.js new file mode 100644 index 0000000..2e0b710 --- /dev/null +++ b/examples/sparklineswidget/srcjs/sparklineswidget.js @@ -0,0 +1,3 @@ +import * as SparklinesComponents from 'react-sparklines'; + +reactR.exposeComponents('reactsparklines', 'output', SparklinesComponents); diff --git a/examples/sparklineswidget/yarn.lock b/examples/sparklineswidget/yarn.lock new file mode 100644 index 0000000..df2f501 --- /dev/null +++ b/examples/sparklineswidget/yarn.lock @@ -0,0 +1,3325 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +JSONStream@^1.0.3: + version "1.3.5" + resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0" + integrity sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ== + dependencies: + jsonparse "^1.2.0" + through ">=2.2.7 <3" + +abbrev@1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" + integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== + +acorn-dynamic-import@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/acorn-dynamic-import/-/acorn-dynamic-import-4.0.0.tgz#482210140582a36b83c3e342e1cfebcaa9240948" + integrity sha512-d3OEjQV4ROpoflsnUA8HozoIR504TFxNivYEUi6uwz0IYhBkTDXGuWlNdMtybRt3nqVx/L6XqMt0FxkXuWKZhw== + +acorn-node@^1.2.0, acorn-node@^1.3.0, acorn-node@^1.5.2: + version "1.6.2" + resolved "https://registry.yarnpkg.com/acorn-node/-/acorn-node-1.6.2.tgz#b7d7ceca6f22e6417af933a62cad4de01048d5d2" + integrity sha512-rIhNEZuNI8ibQcL7ANm/mGyPukIaZsRNX9psFNQURyJW0nu6k8wjSDld20z6v2mDBWqX13pIEnk9gGZJHIlEXg== + dependencies: + acorn "^6.0.2" + acorn-dynamic-import "^4.0.0" + acorn-walk "^6.1.0" + xtend "^4.0.1" + +acorn-walk@^6.1.0: + version "6.1.1" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-6.1.1.tgz#d363b66f5fac5f018ff9c3a1e7b6f8e310cc3913" + integrity sha512-OtUw6JUTgxA2QoqqmrmQ7F2NYqiBPi/L2jqHyFtllhOUvXYQXf0Z1CYUinIfyT4bTCGmrA7gX9FvHA81uzCoVw== + +acorn@^6.0.2: + version "6.0.4" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.0.4.tgz#77377e7353b72ec5104550aa2d2097a2fd40b754" + integrity sha512-VY4i5EKSKkofY2I+6QLTbTTN/UvEQPCo6eiwzzSaSWfpaDhOmStMCMod6wmuPciNq+XS0faCglFu2lHZpdHUtg== + +ansi-regex@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= + +ansi-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" + integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= + +ansi-styles@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" + integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4= + +anymatch@^1.3.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-1.3.2.tgz#553dcb8f91e3c889845dfdba34c77721b90b9d7a" + integrity sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA== + 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" + integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== + +are-we-there-yet@~1.1.2: + version "1.1.5" + resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21" + integrity sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w== + 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" + integrity sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8= + dependencies: + arr-flatten "^1.0.1" + +arr-diff@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" + integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= + +arr-flatten@^1.0.1, arr-flatten@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" + integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== + +arr-union@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" + integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= + +array-filter@~0.0.0: + version "0.0.1" + resolved "https://registry.yarnpkg.com/array-filter/-/array-filter-0.0.1.tgz#7da8cf2e26628ed732803581fd21f67cacd2eeec" + integrity sha1-fajPLiZijtcygDWB/SH2fKzS7uw= + +array-map@~0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/array-map/-/array-map-0.0.0.tgz#88a2bab73d1cf7bcd5c1b118a003f66f665fa662" + integrity sha1-iKK6tz0c97zVwbEYoAP2b2ZfpmI= + +array-reduce@~0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/array-reduce/-/array-reduce-0.0.0.tgz#173899d3ffd1c7d9383e4479525dbe278cab5f2b" + integrity sha1-FziZ0//Rx9k4PkR5Ul2+J4yrXys= + +array-unique@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" + integrity sha1-odl8yvy8JiXMcPrc6zalDFiwGlM= + +array-unique@^0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" + integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= + +asn1.js@^4.0.0: + version "4.10.1" + resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.10.1.tgz#b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0" + integrity sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw== + dependencies: + bn.js "^4.0.0" + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + +assert@^1.4.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/assert/-/assert-1.4.1.tgz#99912d591836b5a6f5b345c0f07eefc08fc65d91" + integrity sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE= + dependencies: + util "0.10.3" + +assign-symbols@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" + integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= + +async-each@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" + integrity sha1-GdOGodntxufByF04iu28xW0zYC0= + +atob@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" + integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== + +babel-cli@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-cli/-/babel-cli-6.26.0.tgz#502ab54874d7db88ad00b887a06383ce03d002f1" + integrity sha1-UCq1SHTX24itALiHoGODzgPQAvE= + dependencies: + babel-core "^6.26.0" + babel-polyfill "^6.26.0" + babel-register "^6.26.0" + babel-runtime "^6.26.0" + commander "^2.11.0" + convert-source-map "^1.5.0" + fs-readdir-recursive "^1.0.0" + glob "^7.1.2" + lodash "^4.17.4" + output-file-sync "^1.1.2" + path-is-absolute "^1.0.1" + slash "^1.0.0" + source-map "^0.5.6" + v8flags "^2.1.1" + optionalDependencies: + chokidar "^1.6.1" + +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" + integrity sha1-Y/1D99weO7fONZR9uP42mj9Yx0s= + dependencies: + chalk "^1.1.3" + esutils "^2.0.2" + js-tokens "^3.0.2" + +babel-core@^6.26.0: + version "6.26.3" + resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.3.tgz#b2e2f09e342d0f0c88e2f02e067794125e75c207" + integrity sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA== + 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.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@^6.26.0: + version "6.26.1" + resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.1.tgz#1844408d3b8f0d35a404ea7ac180f087a601bd90" + integrity sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA== + 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.7" + 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" + integrity sha1-zORReto1b0IgvK6KAsKzRvmlZmQ= + 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" + integrity sha1-Of+DE7dci2Xc7/HzHTg+D/KkCKA= + 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" + integrity sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340= + 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" + integrity sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8= + dependencies: + babel-helper-function-name "^6.24.1" + babel-runtime "^6.26.0" + babel-types "^6.26.0" + lodash "^4.17.4" + +babel-helper-evaluate-path@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/babel-helper-evaluate-path/-/babel-helper-evaluate-path-0.3.0.tgz#2439545e0b6eae5b7f49b790acbebd6b9a73df20" + integrity sha512-dRFlMTqUJRGzx5a2smKxmptDdNCXKSkPcXWzKLwAV72hvIZumrd/0z9RcewHkr7PmAEq+ETtpD1GK6wZ6ZUXzw== + +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" + integrity sha1-8luCz33BBDPFX3BZLVdGQArCLKo= + dependencies: + babel-runtime "^6.22.0" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helper-flip-expressions@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/babel-helper-flip-expressions/-/babel-helper-flip-expressions-0.3.0.tgz#f5b6394bd5219b43cf8f7b201535ed540c6e7fa2" + integrity sha512-kNGohWmtAG3b7tN1xocRQ5rsKkH/hpvZsMiGOJ1VwGJKhnwzR5KlB3rvKBaBPl5/IGHcopB2JN+r1SUEX1iMAw== + +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" + integrity sha1-00dbjAPtmCQqJbSDUasYOZ01gKk= + 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" + integrity sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0= + 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" + integrity sha1-HssnaJydJVE+rbyZFKc/VAi+enY= + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-helper-is-nodes-equiv@^0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/babel-helper-is-nodes-equiv/-/babel-helper-is-nodes-equiv-0.0.1.tgz#34e9b300b1479ddd98ec77ea0bbe9342dfe39684" + integrity sha1-NOmzALFHnd2Y7HfqC76TQt/jloQ= + +babel-helper-is-void-0@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/babel-helper-is-void-0/-/babel-helper-is-void-0-0.3.0.tgz#95570d20bd27b2206f68083ae9980ee7003d8fe7" + integrity sha512-JVqdX8y7Rf/x4NwbqtUI7mdQjL9HWoDnoAEQ8Gv8oxzjvbJv+n75f7l36m9Y8C7sCUltX3V5edndrp7Hp1oSXQ== + +babel-helper-mark-eval-scopes@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/babel-helper-mark-eval-scopes/-/babel-helper-mark-eval-scopes-0.3.0.tgz#b4731314fdd7a89091271a5213b4e12d236e29e8" + integrity sha512-nrho5Dg4vl0VUgURVpGpEGiwbst5JX7efIyDHFxmkCx/ocQFnrPt8ze9Kxl6TKjR29bJ7D/XKY1NMlSxOQJRbQ== + +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" + integrity sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc= + 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" + integrity sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI= + 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" + integrity sha1-XsWBgnrXI/7N04HxySg5BnbkVRs= + 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-remove-or-void@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/babel-helper-remove-or-void/-/babel-helper-remove-or-void-0.3.0.tgz#f43c86147c8fcc395a9528cbb31e7ff49d7e16e3" + integrity sha512-D68W1M3ibCcbg0ysh3ww4/O0g10X1CXK720oOuR8kpfY7w0yP4tVcpK7zDmI1JecynycTQYAZ1rhLJo9aVtIKQ== + +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" + integrity sha1-v22/5Dk40XNpohPKiov3S2qQqxo= + 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-helper-to-multiple-sequence-expressions@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/babel-helper-to-multiple-sequence-expressions/-/babel-helper-to-multiple-sequence-expressions-0.3.0.tgz#8da2275ccc26995566118f7213abfd9af7214427" + integrity sha512-1uCrBD+EAaMnAYh7hc944n8Ga19y3daEnoXWPYDvFVsxMCc1l8aDjksApaCEaNSSuewq8BEcff47Cy1PbLg2Gw== + +babel-helpers@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2" + integrity sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI= + dependencies: + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-messages@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" + integrity sha1-8830cDhYA1sqKVHG7F7fbGLyYw4= + dependencies: + babel-runtime "^6.22.0" + +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" + integrity sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o= + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-minify-builtins@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/babel-plugin-minify-builtins/-/babel-plugin-minify-builtins-0.3.0.tgz#4740117a6a784063aaf8f092989cf9e4bd484860" + integrity sha512-MqhSHlxkmgURqj3144qPksbZ/qof1JWdumcbucc4tysFcf3P3V3z3munTevQgKEFNMd8F5/ECGnwb63xogLjAg== + dependencies: + babel-helper-evaluate-path "^0.3.0" + +babel-plugin-minify-constant-folding@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/babel-plugin-minify-constant-folding/-/babel-plugin-minify-constant-folding-0.3.0.tgz#687e40336bd4ddd921e0e197f0006235ac184bb9" + integrity sha512-1XeRpx+aY1BuNY6QU/cm6P+FtEi3ar3XceYbmC+4q4W+2Ewq5pL7V68oHg1hKXkBIE0Z4/FjSoHz6vosZLOe/A== + dependencies: + babel-helper-evaluate-path "^0.3.0" + +babel-plugin-minify-dead-code-elimination@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/babel-plugin-minify-dead-code-elimination/-/babel-plugin-minify-dead-code-elimination-0.3.0.tgz#a323f686c404b824186ba5583cf7996cac81719e" + integrity sha512-SjM2Fzg85YZz+q/PNJ/HU4O3W98FKFOiP9K5z3sfonlamGOzvZw3Eup2OTiEBsbbqTeY8yzNCAv3qpJRYCgGmw== + dependencies: + babel-helper-evaluate-path "^0.3.0" + babel-helper-mark-eval-scopes "^0.3.0" + babel-helper-remove-or-void "^0.3.0" + lodash.some "^4.6.0" + +babel-plugin-minify-flip-comparisons@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/babel-plugin-minify-flip-comparisons/-/babel-plugin-minify-flip-comparisons-0.3.0.tgz#6627893a409c9f30ef7f2c89e0c6eea7ee97ddc4" + integrity sha512-B8lK+ekcpSNVH7PZpWDe5nC5zxjRiiT4nTsa6h3QkF3Kk6y9qooIFLemdGlqBq6j0zALEnebvCpw8v7gAdpgnw== + dependencies: + babel-helper-is-void-0 "^0.3.0" + +babel-plugin-minify-guarded-expressions@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/babel-plugin-minify-guarded-expressions/-/babel-plugin-minify-guarded-expressions-0.3.0.tgz#2552d96189ef45d9a463f1a6b5e4fa110703ac8d" + integrity sha512-O+6CvF5/Ttsth3LMg4/BhyvVZ82GImeKMXGdVRQGK/8jFiP15EjRpdgFlxv3cnqRjqdYxLCS6r28VfLpb9C/kA== + dependencies: + babel-helper-flip-expressions "^0.3.0" + +babel-plugin-minify-infinity@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/babel-plugin-minify-infinity/-/babel-plugin-minify-infinity-0.3.0.tgz#c5ec0edd433517cf31b3af17077c202beb48bbe7" + integrity sha512-Sj8ia3/w9158DWieUxU6/VvnYVy59geeFEkVgLZYBE8EBP+sN48tHtBM/jSgz0ejEdBlcfqJ6TnvPmVXTzR2BQ== + +babel-plugin-minify-mangle-names@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/babel-plugin-minify-mangle-names/-/babel-plugin-minify-mangle-names-0.3.0.tgz#f28561bad0dd2f0380816816bb946e219b3b6135" + integrity sha512-PYTonhFWURsfAN8achDwvR5Xgy6EeTClLz+fSgGRqjAIXb0OyFm3/xfccbQviVi1qDXmlSnt6oJhBg8KE4Fn7Q== + dependencies: + babel-helper-mark-eval-scopes "^0.3.0" + +babel-plugin-minify-numeric-literals@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/babel-plugin-minify-numeric-literals/-/babel-plugin-minify-numeric-literals-0.3.0.tgz#b57734a612e8a592005407323c321119f27d4b40" + integrity sha512-TgZj6ay8zDw74AS3yiIfoQ8vRSNJisYO/Du60S8nPV7EW7JM6fDMx5Sar6yVHlVuuwNgvDUBh191K33bVrAhpg== + +babel-plugin-minify-replace@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/babel-plugin-minify-replace/-/babel-plugin-minify-replace-0.3.0.tgz#980125bbf7cbb5a637439de9d0b1b030a4693893" + integrity sha512-VR6tTg2Lt0TicHIOw04fsUtpPw7RaRP8PC8YzSFwEixnzvguZjZJoL7TgG7ZyEWQD1cJ96UezswECmFNa815bg== + +babel-plugin-minify-simplify@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/babel-plugin-minify-simplify/-/babel-plugin-minify-simplify-0.3.0.tgz#14574cc74d21c81d3060fafa041010028189f11b" + integrity sha512-2M16ytQOCqBi7bYMu4DCWn8e6KyFCA108F6+tVrBJxOmm5u2sOmTFEa8s94tR9RHRRNYmcUf+rgidfnzL3ik9Q== + dependencies: + babel-helper-flip-expressions "^0.3.0" + babel-helper-is-nodes-equiv "^0.0.1" + babel-helper-to-multiple-sequence-expressions "^0.3.0" + +babel-plugin-minify-type-constructors@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/babel-plugin-minify-type-constructors/-/babel-plugin-minify-type-constructors-0.3.0.tgz#7f5a86ef322c4746364e3c591b8514eeafea6ad4" + integrity sha512-XRXpvsUCPeVw9YEUw+9vSiugcSZfow81oIJT0yR9s8H4W7yJ6FHbImi5DJHoL8KcDUjYnL9wYASXk/fOkbyR6Q== + dependencies: + babel-helper-is-void-0 "^0.3.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" + integrity sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU= + +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" + integrity sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4= + +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" + integrity sha1-TDqyCiryaqIM0lmVw5jE63AxDI0= + +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" + integrity sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY= + +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" + integrity sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM= + +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" + integrity sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E= + 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" + integrity sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE= + 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" + integrity sha1-u8UbSflk1wy42OC5ToICRs46YUE= + 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" + integrity sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8= + 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" + integrity sha1-WkxYpQyclGHlZLSyo7+ryXolhNs= + 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" + integrity sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM= + 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" + integrity sha1-mXux8auWf2gtKwh2/jWNYOdlxW0= + 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" + integrity sha1-c+s9MQypaePvnskcU3QabxV2Qj4= + 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" + integrity sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE= + 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" + integrity sha1-g0yJhTvDaxrw86TF26qU/Y6sqos= + 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" + integrity sha1-T1SgLWzWbPkVKAAZox0xklN3yi4= + 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" + integrity sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ= + 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.2" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz#58a793863a9e7ca870bdc5a881117ffac27db6f3" + integrity sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q== + 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" + integrity sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM= + 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" + integrity sha1-rJl+YoXNGO1hdq22B9YCNErThGg= + 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" + integrity sha1-JM72muIcuDp/hgPa0CH1cusnj40= + 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" + integrity sha1-V6w1GrScrxSpfNE7CfZv3wpiXys= + 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" + integrity sha1-JPh11nIch2YbvZmkYi5R8U3jiqA= + 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" + integrity sha1-1taKmfia7cRTbIGlQujdnxdG+NE= + 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" + integrity sha1-AMHNsaynERLN8M9hJsLta0V8zbw= + 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" + integrity sha1-qEs0UPfp+PH2g51taH2oS7EjbY0= + 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" + integrity sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I= + 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" + integrity sha1-04sS9C6nMj9yk4fxinxa4frrNek= + 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" + integrity sha1-KrDJx/MJj6SJB3cruBP+QejeOg4= + 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" + integrity sha1-hMtnKTXUNxT9wyvOhFaNh0Qc988= + dependencies: + babel-plugin-syntax-flow "^6.18.0" + babel-runtime "^6.22.0" + +babel-plugin-transform-inline-consecutive-adds@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-inline-consecutive-adds/-/babel-plugin-transform-inline-consecutive-adds-0.3.0.tgz#f07d93689c0002ed2b2b62969bdd99f734e03f57" + integrity sha512-iZsYAIjYLLfLK0yN5WVT7Xf7Y3wQ9Z75j9A8q/0IglQSpUt2ppTdHlwl/GeaXnxdaSmsxBu861klbTBbv2n+RA== + +babel-plugin-transform-member-expression-literals@^6.9.0: + version "6.9.4" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-member-expression-literals/-/babel-plugin-transform-member-expression-literals-6.9.4.tgz#37039c9a0c3313a39495faac2ff3a6b5b9d038bf" + integrity sha1-NwOcmgwzE6OUlfqsL/OmtbnQOL8= + +babel-plugin-transform-merge-sibling-variables@^6.9.0: + version "6.9.4" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-merge-sibling-variables/-/babel-plugin-transform-merge-sibling-variables-6.9.4.tgz#85b422fc3377b449c9d1cde44087203532401dae" + integrity sha1-hbQi/DN3tEnJ0c3kQIcgNTJAHa4= + +babel-plugin-transform-minify-booleans@^6.9.0: + version "6.9.4" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-minify-booleans/-/babel-plugin-transform-minify-booleans-6.9.4.tgz#acbb3e56a3555dd23928e4b582d285162dd2b198" + integrity sha1-rLs+VqNVXdI5KOS1gtKFFi3SsZg= + +babel-plugin-transform-property-literals@^6.9.0: + version "6.9.4" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-property-literals/-/babel-plugin-transform-property-literals-6.9.4.tgz#98c1d21e255736573f93ece54459f6ce24985d39" + integrity sha1-mMHSHiVXNlc/k+zlRFn2ziSYXTk= + dependencies: + esutils "^2.0.2" + +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" + integrity sha1-Z+K/Hx6ck6sI25Z5LgU5K/LMKNE= + 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" + integrity sha1-322AqdomEqEh5t3XVYvL7PBuY24= + 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" + integrity sha1-ZqwSFT9c0tF7PBkmj0vwGX9E7NY= + 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" + integrity sha1-hAoCjn30YN/DotKfDA2R9jduZqM= + 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" + integrity sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8= + dependencies: + regenerator-transform "^0.10.0" + +babel-plugin-transform-regexp-constructors@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-regexp-constructors/-/babel-plugin-transform-regexp-constructors-0.3.0.tgz#9bb2c8dd082271a5cb1b3a441a7c52e8fd07e0f5" + integrity sha512-h92YHzyl042rb0naKO8frTHntpRFwRgKkfWD8602kFHoQingjJNtbvZzvxqHncJ6XmKVyYvfrBpDOSkCTDIIxw== + +babel-plugin-transform-remove-console@^6.9.0: + version "6.9.4" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-remove-console/-/babel-plugin-transform-remove-console-6.9.4.tgz#b980360c067384e24b357a588d807d3c83527780" + integrity sha1-uYA2DAZzhOJLNXpYjYB9PINSd4A= + +babel-plugin-transform-remove-debugger@^6.9.0: + version "6.9.4" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-remove-debugger/-/babel-plugin-transform-remove-debugger-6.9.4.tgz#42b727631c97978e1eb2d199a7aec84a18339ef2" + integrity sha1-QrcnYxyXl44estGZp67IShgznvI= + +babel-plugin-transform-remove-undefined@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-remove-undefined/-/babel-plugin-transform-remove-undefined-0.3.0.tgz#03f5f0071867781e9beabbc7b77bf8095fd3f3ec" + integrity sha512-TYGQucc8iP3LJwN3kDZLEz5aa/2KuFrqpT+s8f8NnHsBU1sAgR3y8Opns0xhC+smyDYWscqFCKM1gbkWQOhhnw== + dependencies: + babel-helper-evaluate-path "^0.3.0" + +babel-plugin-transform-simplify-comparison-operators@^6.9.0: + version "6.9.4" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-simplify-comparison-operators/-/babel-plugin-transform-simplify-comparison-operators-6.9.4.tgz#f62afe096cab0e1f68a2d753fdf283888471ceb9" + integrity sha1-9ir+CWyrDh9ootdT/fKDiIRxzrk= + +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" + integrity sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g= + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-plugin-transform-undefined-to-void@^6.9.0: + version "6.9.4" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-undefined-to-void/-/babel-plugin-transform-undefined-to-void-6.9.4.tgz#be241ca81404030678b748717322b89d0c8fe280" + integrity sha1-viQcqBQEAwZ4t0hxcyK4nQyP4oA= + +babel-polyfill@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-polyfill/-/babel-polyfill-6.26.0.tgz#379937abc67d7895970adc621f284cd966cf2153" + integrity sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM= + dependencies: + babel-runtime "^6.26.0" + core-js "^2.5.0" + regenerator-runtime "^0.10.5" + +babel-preset-env@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/babel-preset-env/-/babel-preset-env-1.7.0.tgz#dea79fa4ebeb883cd35dab07e260c1c9c04df77a" + integrity sha512-9OR2afuKDneX2/q2EurSftUYM0xGu4O2D9adAhVfADDhrYDaxXV0rBbevVYoY9n6nyX1PmQW/0jtpJvUNr9CHg== + 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 "^3.2.6" + 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" + integrity sha1-5xIYiHCFrpoktb5Baa/7WZgWxJ0= + dependencies: + babel-plugin-transform-flow-strip-types "^6.22.0" + +babel-preset-minify@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/babel-preset-minify/-/babel-preset-minify-0.3.0.tgz#7db64afa75f16f6e06c0aa5f25195f6f36784d77" + integrity sha512-+VV2GWEyak3eDOmzT1DDMuqHrw3VbE9nBNkx2LLVs4pH/Me32ND8DRpVDd8IRvk1xX5p75nygyRPtkMh6GIAbQ== + dependencies: + babel-plugin-minify-builtins "^0.3.0" + babel-plugin-minify-constant-folding "^0.3.0" + babel-plugin-minify-dead-code-elimination "^0.3.0" + babel-plugin-minify-flip-comparisons "^0.3.0" + babel-plugin-minify-guarded-expressions "^0.3.0" + babel-plugin-minify-infinity "^0.3.0" + babel-plugin-minify-mangle-names "^0.3.0" + babel-plugin-minify-numeric-literals "^0.3.0" + babel-plugin-minify-replace "^0.3.0" + babel-plugin-minify-simplify "^0.3.0" + babel-plugin-minify-type-constructors "^0.3.0" + babel-plugin-transform-inline-consecutive-adds "^0.3.0" + babel-plugin-transform-member-expression-literals "^6.9.0" + babel-plugin-transform-merge-sibling-variables "^6.9.0" + babel-plugin-transform-minify-booleans "^6.9.0" + babel-plugin-transform-property-literals "^6.9.0" + babel-plugin-transform-regexp-constructors "^0.3.0" + babel-plugin-transform-remove-console "^6.9.0" + babel-plugin-transform-remove-debugger "^6.9.0" + babel-plugin-transform-remove-undefined "^0.3.0" + babel-plugin-transform-simplify-comparison-operators "^6.9.0" + babel-plugin-transform-undefined-to-void "^6.9.0" + lodash.isplainobject "^4.0.6" + +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" + integrity sha1-umnfrqRfw+xjm2pOzqbhdwLJE4A= + 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" + integrity sha1-btAhFz4vy0htestFxgCahW9kcHE= + 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" + integrity sha1-llxwWGaOgrVde/4E/yM3vItWR/4= + 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" + integrity sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI= + 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" + integrity sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4= + 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" + integrity sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc= + 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" + integrity sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ== + +balanced-match@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" + integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= + +base64-js@^1.0.2: + version "1.3.0" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.0.tgz#cab1e6118f051095e58b5281aea8c1cd22bfc0e3" + integrity sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw== + +base@^0.11.1: + version "0.11.2" + resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" + integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== + dependencies: + 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" + +binary-extensions@^1.0.0: + version "1.12.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.12.0.tgz#c2d780f53d45bba8317a8902d4ceeaf3a6385b14" + integrity sha512-DYWGk01lDcxeS/K9IHPGWfT8PsJmbXRtRd2Sx72Tnb8pcYZQFF1oSDb8hJtS1vhp212q1Rzi5dUf9+nq0o9UIg== + +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" + integrity sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA== + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + 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" + integrity sha1-uneWLhLf+WnWt2cR6RS3N4V79qc= + dependencies: + expand-range "^1.8.1" + preserve "^0.2.0" + repeat-element "^1.1.2" + +braces@^2.3.1: + version "2.3.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" + integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== + dependencies: + 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" + +brorand@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" + integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= + +browser-pack@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/browser-pack/-/browser-pack-6.1.0.tgz#c34ba10d0b9ce162b5af227c7131c92c2ecd5774" + integrity sha512-erYug8XoqzU3IfcU8fUgyHqyOXqIE4tUTTQ+7mqUjQlvnXkOO6OlT9c/ZoJVHYoAaqGxr09CN53G7XIsO4KtWA== + dependencies: + JSONStream "^1.0.3" + combine-source-map "~0.8.0" + defined "^1.0.0" + safe-buffer "^5.1.1" + through2 "^2.0.0" + umd "^3.0.0" + +browser-resolve@^1.11.0, browser-resolve@^1.7.0: + version "1.11.3" + resolved "https://registry.yarnpkg.com/browser-resolve/-/browser-resolve-1.11.3.tgz#9b7cbb3d0f510e4cb86bdbd796124d28b5890af6" + integrity sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ== + dependencies: + resolve "1.1.7" + +browserify-aes@^1.0.0, browserify-aes@^1.0.4: + version "1.2.0" + resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" + integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== + 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.1" + resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" + integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w== + dependencies: + browserify-aes "^1.0.4" + browserify-des "^1.0.0" + evp_bytestokey "^1.0.0" + +browserify-des@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c" + integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A== + dependencies: + cipher-base "^1.0.1" + des.js "^1.0.0" + inherits "^2.0.1" + safe-buffer "^5.1.2" + +browserify-rsa@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524" + integrity sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ= + 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" + integrity sha1-qk62jl17ZYuqa/alfmMMvXqT0pg= + 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" + integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA== + dependencies: + pako "~1.0.5" + +browserify@^16.2.3: + version "16.2.3" + resolved "https://registry.yarnpkg.com/browserify/-/browserify-16.2.3.tgz#7ee6e654ba4f92bce6ab3599c3485b1cc7a0ad0b" + integrity sha512-zQt/Gd1+W+IY+h/xX2NYMW4orQWhqSwyV+xsblycTtpOuB27h1fZhhNQuipJ4t79ohw4P4mMem0jp/ZkISQtjQ== + dependencies: + JSONStream "^1.0.3" + assert "^1.4.0" + browser-pack "^6.0.1" + browser-resolve "^1.11.0" + browserify-zlib "~0.2.0" + buffer "^5.0.2" + cached-path-relative "^1.0.0" + concat-stream "^1.6.0" + console-browserify "^1.1.0" + constants-browserify "~1.0.0" + crypto-browserify "^3.0.0" + defined "^1.0.0" + deps-sort "^2.0.0" + domain-browser "^1.2.0" + duplexer2 "~0.1.2" + events "^2.0.0" + glob "^7.1.0" + has "^1.0.0" + htmlescape "^1.1.0" + https-browserify "^1.0.0" + inherits "~2.0.1" + insert-module-globals "^7.0.0" + labeled-stream-splicer "^2.0.0" + mkdirp "^0.5.0" + module-deps "^6.0.0" + os-browserify "~0.3.0" + parents "^1.0.1" + path-browserify "~0.0.0" + process "~0.11.0" + punycode "^1.3.2" + querystring-es3 "~0.2.0" + read-only-stream "^2.0.0" + readable-stream "^2.0.2" + resolve "^1.1.4" + shasum "^1.0.0" + shell-quote "^1.6.1" + stream-browserify "^2.0.0" + stream-http "^2.0.0" + string_decoder "^1.1.1" + subarg "^1.0.0" + syntax-error "^1.1.1" + through2 "^2.0.0" + timers-browserify "^1.0.1" + tty-browserify "0.0.1" + url "~0.11.0" + util "~0.10.1" + vm-browserify "^1.0.0" + xtend "^4.0.0" + +browserslist@^3.2.6: + version "3.2.8" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-3.2.8.tgz#b0005361d6471f0f5952797a76fc985f1f978fc6" + integrity sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ== + dependencies: + caniuse-lite "^1.0.30000844" + electron-to-chromium "^1.3.47" + +buffer-from@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" + integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== + +buffer-xor@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" + integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk= + +buffer@^5.0.2: + version "5.2.1" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.2.1.tgz#dd57fa0f109ac59c602479044dca7b8b3d0b71d6" + integrity sha512-c+Ko0loDaFfuPWiL02ls9Xd3GO3cPVmUobQ6t3rXNUk304u6hGq+8N/kFi+QEIKhzK3uwolVhLzszmfLmMLnqg== + dependencies: + base64-js "^1.0.2" + ieee754 "^1.1.4" + +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" + integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug= + +cache-base@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" + integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== + dependencies: + 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" + +cached-path-relative@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/cached-path-relative/-/cached-path-relative-1.0.2.tgz#a13df4196d26776220cc3356eb147a52dba2c6db" + integrity sha512-5r2GqsoEb4qMTTN9J+WzXfjov+hjxT+j3u5K+kIVNIwAd99DLCJE9pBIMP1qVeybV6JiijL385Oz0DcYxfbOIg== + +caniuse-lite@^1.0.30000844: + version "1.0.30000918" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000918.tgz#6288f79da3c5c8b45e502f47ad8f3eb91f1379a9" + integrity sha512-CAZ9QXGViBvhHnmIHhsTPSWFBujDaelKnUj7wwImbyQRxmXynYqKGi3UaZTSz9MoVh+1EVxOS/DFIkrJYgR3aw== + +chalk@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" + integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= + 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.6.1: + version "1.7.0" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.7.0.tgz#798e689778151c8076b4b360e5edd28cda2bb468" + integrity sha1-eY5ol3gVHIB2tLNg5e3SjNortGg= + 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" + +chownr@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.1.tgz#54726b8b8fff4df053c42187e801fb4412df1494" + integrity sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g== + +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" + integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +class-utils@^0.3.5: + version "0.3.6" + resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" + integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== + dependencies: + arr-union "^3.1.0" + define-property "^0.2.5" + isobject "^3.0.0" + static-extend "^0.1.1" + +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" + integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= + +collection-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" + integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA= + dependencies: + map-visit "^1.0.0" + object-visit "^1.0.0" + +combine-source-map@^0.8.0, combine-source-map@~0.8.0: + version "0.8.0" + resolved "https://registry.yarnpkg.com/combine-source-map/-/combine-source-map-0.8.0.tgz#a58d0df042c186fcf822a8e8015f5450d2d79a8b" + integrity sha1-pY0N8ELBhvz4IqjoAV9UUNLXmos= + dependencies: + convert-source-map "~1.1.0" + inline-source-map "~0.6.0" + lodash.memoize "~3.0.3" + source-map "~0.5.3" + +commander@^2.11.0: + version "2.19.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.19.0.tgz#f6198aa84e5b83c46054b94ddedbfed5ee9ff12a" + integrity sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg== + +component-emitter@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6" + integrity sha1-E3kY1teCg/ffemt8WmPhQOaUJeY= + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= + +concat-stream@^1.6.0, concat-stream@^1.6.1, concat-stream@~1.6.0: + version "1.6.2" + resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" + integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== + dependencies: + buffer-from "^1.0.0" + inherits "^2.0.3" + readable-stream "^2.2.2" + typedarray "^0.0.6" + +console-browserify@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10" + integrity sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA= + 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" + integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= + +constants-browserify@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" + integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U= + +convert-source-map@^1.5.0, convert-source-map@^1.5.1: + version "1.6.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.6.0.tgz#51b537a8c43e0f04dec1993bffcdd504e758ac20" + integrity sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A== + dependencies: + safe-buffer "~5.1.1" + +convert-source-map@~1.1.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.1.3.tgz#4829c877e9fe49b3161f3bf3673888e204699860" + integrity sha1-SCnId+n+SbMWHzvzZziI4gRpmGA= + +copy-descriptor@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" + integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= + +core-js@^2.4.0, core-js@^2.5.0: + version "2.6.0" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.0.tgz#1e30793e9ee5782b307e37ffa22da0eacddd84d4" + integrity sha512-kLRC6ncVpuEW/1kwrOXYX6KQASCVtrh1gQr/UiaVgFlf9WE5Vp+lNe5+h3LuMr5PAucWnnEXwH0nQHRH/gpGtw== + +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" + integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= + +create-ecdh@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.3.tgz#c9111b6f33045c4697f144787f9254cdc77c45ff" + integrity sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw== + dependencies: + bn.js "^4.1.0" + elliptic "^6.0.0" + +create-hash@^1.1.0, create-hash@^1.1.2: + version "1.2.0" + resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" + integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== + dependencies: + 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@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4: + version "1.1.7" + resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" + integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== + 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" + +crypto-browserify@^3.0.0: + version "3.12.0" + resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" + integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg== + 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" + +date-now@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b" + integrity sha1-6vQ5/U1ISK105cx9vvIAZyueNFs= + +debug@^2.1.2, debug@^2.2.0, debug@^2.3.3, debug@^2.6.8, debug@^2.6.9: + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +decode-uri-component@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" + integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= + +deep-extend@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" + integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== + +define-property@^0.2.5: + version "0.2.5" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" + integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY= + dependencies: + is-descriptor "^0.1.0" + +define-property@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" + integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY= + dependencies: + is-descriptor "^1.0.0" + +define-property@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" + integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== + dependencies: + is-descriptor "^1.0.2" + isobject "^3.0.1" + +defined@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693" + integrity sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM= + +delegates@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" + integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= + +deps-sort@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/deps-sort/-/deps-sort-2.0.0.tgz#091724902e84658260eb910748cccd1af6e21fb5" + integrity sha1-CRckkC6EZYJg65EHSMzNGvbiH7U= + dependencies: + JSONStream "^1.0.3" + shasum "^1.0.0" + subarg "^1.0.0" + through2 "^2.0.0" + +des.js@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.0.tgz#c074d2e2aa6a8a9a07dbd61f9a15c2cd83ec8ecc" + integrity sha1-wHTS4qpqipoH29YfmhXCzYPsjsw= + 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" + integrity sha1-920GQ1LN9Docts5hnE7jqUdd4gg= + dependencies: + repeating "^2.0.0" + +detect-libc@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" + integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups= + +detective@^5.0.2: + version "5.1.0" + resolved "https://registry.yarnpkg.com/detective/-/detective-5.1.0.tgz#7a20d89236d7b331ccea65832e7123b5551bb7cb" + integrity sha512-TFHMqfOvxlgrfVzTEkNBSh9SvSNX/HfF4OFI2QFGCyPm02EsyILqnUeb5P6q7JZ3SFNTBL5t2sePRgrN4epUWQ== + dependencies: + acorn-node "^1.3.0" + defined "^1.0.0" + minimist "^1.1.1" + +diffie-hellman@^5.0.0: + version "5.0.3" + resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" + integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg== + dependencies: + bn.js "^4.1.0" + miller-rabin "^4.0.0" + randombytes "^2.0.0" + +domain-browser@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" + integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA== + +duplexer2@^0.1.2, duplexer2@~0.1.0, duplexer2@~0.1.2: + version "0.1.4" + resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.1.4.tgz#8b12dab878c0d69e3e7891051662a32fc6bddcc1" + integrity sha1-ixLauHjA1p4+eJEFFmKjL8a93ME= + dependencies: + readable-stream "^2.0.2" + +electron-to-chromium@^1.3.47: + version "1.3.90" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.90.tgz#b4c51b8303beff18f2b74817402bf4898e09558a" + integrity sha512-IjJZKRhFbWSOX1w0sdIXgp4CMRguu6UYcTckyFF/Gjtemsu/25eZ+RXwFlV+UWcIueHyQA1UnRJxocTpH5NdGA== + +elliptic@^6.0.0: + version "6.4.1" + resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.4.1.tgz#c2d0b7776911b86722c632c3c06c60f2f819939a" + integrity sha512-BsXLz5sqX8OHcsh7CqBMztyXARmGQ3LWPtGjJi6DiJHq5C/qvi9P3OqgswKSDftbu8+IoI/QDTAm2fFnQ9SZSQ== + 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" + +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" + integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= + +esutils@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" + integrity sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs= + +events@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/events/-/events-2.1.0.tgz#2a9a1e18e6106e0e812aa9ebd4a819b3c29c0ba5" + integrity sha512-3Zmiobend8P9DjmKAty0Era4jV8oJ0yGYe2nJJAxgymF9+N8F2m0hhZiMoWtcfepExzNKZumFU3ksdQbInGWCg== + +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" + integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== + dependencies: + md5.js "^1.3.4" + safe-buffer "^5.1.1" + +expand-brackets@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" + integrity sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s= + dependencies: + is-posix-bracket "^0.1.0" + +expand-brackets@^2.1.4: + version "2.1.4" + resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" + integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI= + dependencies: + 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" + +expand-range@^1.8.1: + version "1.8.2" + resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337" + integrity sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc= + dependencies: + fill-range "^2.1.0" + +extend-shallow@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" + integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= + dependencies: + is-extendable "^0.1.0" + +extend-shallow@^3.0.0, extend-shallow@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" + integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg= + dependencies: + assign-symbols "^1.0.0" + is-extendable "^1.0.1" + +extglob@^0.3.1: + version "0.3.2" + resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1" + integrity sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE= + dependencies: + is-extglob "^1.0.0" + +extglob@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" + integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== + dependencies: + 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" + +filename-regex@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26" + integrity sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY= + +fill-range@^2.1.0: + version "2.2.4" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.4.tgz#eb1e773abb056dcd8df2bfdf6af59b8b3a936565" + integrity sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q== + dependencies: + is-number "^2.1.0" + isobject "^2.0.0" + randomatic "^3.0.0" + repeat-element "^1.1.2" + repeat-string "^1.5.2" + +fill-range@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" + integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc= + dependencies: + extend-shallow "^2.0.1" + is-number "^3.0.0" + repeat-string "^1.6.1" + to-regex-range "^2.1.0" + +for-in@^1.0.1, for-in@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" + integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= + +for-own@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce" + integrity sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4= + dependencies: + for-in "^1.0.1" + +fragment-cache@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" + integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk= + dependencies: + map-cache "^0.2.2" + +fs-minipass@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.5.tgz#06c277218454ec288df77ada54a03b8702aacb9d" + integrity sha512-JhBl0skXjUPCFH7x6x61gQxrKyXsxB5gcgePLZCwfyCGGsTISMoIeObbrvVeP6Xmyaudw4TT43qV2Gz+iyd2oQ== + dependencies: + minipass "^2.2.1" + +fs-readdir-recursive@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz#e32fc030a2ccee44a6b5371308da54be0b397d27" + integrity sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA== + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= + +fsevents@^1.0.0: + version "1.2.4" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.4.tgz#f41dcb1af2582af3692da36fc55cbd8e1041c426" + integrity sha512-z8H8/diyk76B7q5wg+Ud0+CqzcAF3mBBI/bA5ne5zrRUUIvNkJY//D3BqyH571KuAC4Nr7Rw7CjWX4r0y9DvNg== + dependencies: + nan "^2.9.2" + node-pre-gyp "^0.10.0" + +function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== + +gauge@~2.7.3: + version "2.7.4" + resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" + integrity sha1-LANAXHU4w51+s3sxcCLjJfsBi/c= + 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-assigned-identifiers@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/get-assigned-identifiers/-/get-assigned-identifiers-1.2.0.tgz#6dbf411de648cbaf8d9169ebb0d2d576191e2ff1" + integrity sha512-mBBwmeGTrxEMO4pMaaf/uUEFHnYtwr8FTe8Y/mer4rcV/bye0qGm6pw1bGZFGStxC5O76c5ZAVBGnqHmOaJpdQ== + +get-value@^2.0.3, get-value@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" + integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= + +glob-base@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" + integrity sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q= + 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" + integrity sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg= + dependencies: + is-glob "^2.0.0" + +glob@^7.0.5, glob@^7.1.0, glob@^7.1.2: + version "7.1.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.3.tgz#3960832d3f1574108342dafd3a67b332c0969df1" + integrity sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ== + 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" + integrity sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ== + +graceful-fs@^4.1.11, graceful-fs@^4.1.4: + version "4.1.15" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.15.tgz#ffb703e1066e8a0eeaa4c8b80ba9253eeefbfb00" + integrity sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA== + +has-ansi@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" + integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE= + dependencies: + ansi-regex "^2.0.0" + +has-unicode@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" + integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk= + +has-value@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" + integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8= + dependencies: + get-value "^2.0.3" + has-values "^0.1.4" + isobject "^2.0.0" + +has-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" + integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc= + dependencies: + get-value "^2.0.6" + has-values "^1.0.0" + isobject "^3.0.0" + +has-values@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" + integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E= + +has-values@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" + integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8= + dependencies: + is-number "^3.0.0" + kind-of "^4.0.0" + +has@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== + dependencies: + function-bind "^1.1.1" + +hash-base@^3.0.0: + version "3.0.4" + resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.0.4.tgz#5fc8686847ecd73499403319a6b0a3f3f6ae4918" + integrity sha1-X8hoaEfs1zSZQDMZprCj8/auSRg= + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +hash.js@^1.0.0, hash.js@^1.0.3: + version "1.1.7" + resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" + integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== + dependencies: + inherits "^2.0.3" + minimalistic-assert "^1.0.1" + +hmac-drbg@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" + integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE= + dependencies: + hash.js "^1.0.3" + minimalistic-assert "^1.0.0" + minimalistic-crypto-utils "^1.0.1" + +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" + integrity sha1-42w/LSyufXRqhX440Y1fMqeILbg= + dependencies: + os-homedir "^1.0.0" + os-tmpdir "^1.0.1" + +htmlescape@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/htmlescape/-/htmlescape-1.1.1.tgz#3a03edc2214bca3b66424a3e7959349509cb0351" + integrity sha1-OgPtwiFLyjtmQko+eVk0lQnLA1E= + +https-browserify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" + integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= + +iconv-lite@^0.4.4: + version "0.4.24" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" + +ieee754@^1.1.4: + version "1.1.12" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.12.tgz#50bf24e5b9c8bb98af4964c941cdb0918da7b60b" + integrity sha512-GguP+DRY+pJ3soyIiGPTvdiVXjZ+DbXOxGpXn3eMvNW4x4irjqXm4wHKscC+TfxSJ0yw/S1F24tqdMNsMZTiLA== + +ignore-walk@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.1.tgz#a83e62e7d272ac0e3b551aaa82831a19b69f82f8" + integrity sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ== + dependencies: + minimatch "^3.0.4" + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@2.0.3, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.1, inherits@~2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= + +inherits@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" + integrity sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE= + +ini@~1.3.0: + version "1.3.5" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" + integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw== + +inline-source-map@~0.6.0: + version "0.6.2" + resolved "https://registry.yarnpkg.com/inline-source-map/-/inline-source-map-0.6.2.tgz#f9393471c18a79d1724f863fa38b586370ade2a5" + integrity sha1-+Tk0ccGKedFyT4Y/o4tYY3Ct4qU= + dependencies: + source-map "~0.5.3" + +insert-module-globals@^7.0.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/insert-module-globals/-/insert-module-globals-7.2.0.tgz#ec87e5b42728479e327bd5c5c71611ddfb4752ba" + integrity sha512-VE6NlW+WGn2/AeOMd496AHFYmE7eLKkUY6Ty31k4og5vmA3Fjuwe9v6ifH6Xx/Hz27QvdoMoviw1/pqWRB09Sw== + dependencies: + JSONStream "^1.0.3" + acorn-node "^1.5.2" + combine-source-map "^0.8.0" + concat-stream "^1.6.1" + is-buffer "^1.1.0" + path-is-absolute "^1.0.1" + process "~0.11.0" + through2 "^2.0.0" + undeclared-identifiers "^1.1.2" + xtend "^4.0.0" + +invariant@^2.2.2: + version "2.2.4" + resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" + integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== + dependencies: + loose-envify "^1.0.0" + +is-accessor-descriptor@^0.1.6: + version "0.1.6" + resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" + integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY= + dependencies: + kind-of "^3.0.2" + +is-accessor-descriptor@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" + integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ== + dependencies: + kind-of "^6.0.0" + +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" + integrity sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg= + dependencies: + binary-extensions "^1.0.0" + +is-buffer@^1.1.0, is-buffer@^1.1.5: + version "1.1.6" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" + integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== + +is-data-descriptor@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" + integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y= + dependencies: + kind-of "^3.0.2" + +is-data-descriptor@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" + integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ== + dependencies: + kind-of "^6.0.0" + +is-descriptor@^0.1.0: + version "0.1.6" + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" + integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg== + dependencies: + is-accessor-descriptor "^0.1.6" + is-data-descriptor "^0.1.4" + kind-of "^5.0.0" + +is-descriptor@^1.0.0, is-descriptor@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" + integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg== + dependencies: + is-accessor-descriptor "^1.0.0" + is-data-descriptor "^1.0.0" + kind-of "^6.0.2" + +is-dotfile@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1" + integrity sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE= + +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" + integrity sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ= + dependencies: + is-primitive "^2.0.0" + +is-extendable@^0.1.0, is-extendable@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" + integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= + +is-extendable@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" + integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== + dependencies: + is-plain-object "^2.0.4" + +is-extglob@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" + integrity sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA= + +is-finite@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa" + integrity sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko= + 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" + integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs= + 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" + integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= + +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" + integrity sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM= + 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" + integrity sha1-Afy7s5NGOlSPL0ZszhbezknbkI8= + 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" + integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU= + dependencies: + kind-of "^3.0.2" + +is-number@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-4.0.0.tgz#0026e37f5454d73e356dfe6564699867c6a7f0ff" + integrity sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ== + +is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" + integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== + dependencies: + isobject "^3.0.1" + +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" + integrity sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q= + +is-primitive@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" + integrity sha1-IHurkWOEmcB7Kt8kCkGochADRXU= + +is-windows@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" + integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== + +isarray@1.0.0, isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= + +isarray@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.4.tgz#38e7bcbb0f3ba1b7933c86ba1894ddfc3781bbb7" + integrity sha512-GMxXOiUirWg1xTKRipM0Ek07rX+ubx4nNVElTJdNLYmNO/2YrDkgJGw9CljXn+r4EWiDQg/8lsRdHyg2PJuUaA== + +isobject@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" + integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= + dependencies: + isarray "1.0.0" + +isobject@^3.0.0, isobject@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" + integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= + +"js-tokens@^3.0.0 || ^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-tokens@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" + integrity sha1-mGbfOVECEw449/mWvOtlRDIJwls= + +jsesc@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" + integrity sha1-RsP+yMGJKxKwgz25vHYiF226s0s= + +jsesc@~0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" + integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= + +json-stable-stringify@~0.0.0: + version "0.0.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-0.0.1.tgz#611c23e814db375527df851193db59dd2af27f45" + integrity sha1-YRwj6BTbN1Un34URk9tZ3Sryf0U= + dependencies: + jsonify "~0.0.0" + +json5@^0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" + integrity sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE= + +jsonify@~0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" + integrity sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM= + +jsonparse@^1.2.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" + integrity sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA= + +kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: + version "3.2.2" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" + integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= + 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" + integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc= + dependencies: + is-buffer "^1.1.5" + +kind-of@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" + integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== + +kind-of@^6.0.0, kind-of@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051" + integrity sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA== + +labeled-stream-splicer@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/labeled-stream-splicer/-/labeled-stream-splicer-2.0.1.tgz#9cffa32fd99e1612fd1d86a8db962416d5292926" + integrity sha512-MC94mHZRvJ3LfykJlTUipBqenZz1pacOZEMhhQ8dMGcDHs0SBE5GbsavUXV7YtP3icBW17W0Zy1I0lfASmo9Pg== + dependencies: + inherits "^2.0.1" + isarray "^2.0.4" + stream-splicer "^2.0.0" + +lodash.isplainobject@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" + integrity sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs= + +lodash.memoize@~3.0.3: + version "3.0.4" + resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-3.0.4.tgz#2dcbd2c287cbc0a55cc42328bd0c736150d53e3f" + integrity sha1-LcvSwofLwKVcxCMovQxzYVDVPj8= + +lodash.some@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.some/-/lodash.some-4.6.0.tgz#1bb9f314ef6b8baded13b549169b2a945eb68e4d" + integrity sha1-G7nzFO9ri63tE7VJFpsqlF62jk0= + +lodash@^4.17.4: + version "4.17.11" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d" + integrity sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg== + +loose-envify@^1.0.0, loose-envify@^1.3.1: + version "1.4.0" + resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" + integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== + dependencies: + js-tokens "^3.0.0 || ^4.0.0" + +map-cache@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" + integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= + +map-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" + integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48= + dependencies: + object-visit "^1.0.0" + +math-random@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/math-random/-/math-random-1.0.1.tgz#8b3aac588b8a66e4975e3cdea67f7bb329601fac" + integrity sha1-izqsWIuKZuSXXjzepn97sylgH6w= + +md5.js@^1.3.4: + version "1.3.5" + resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" + integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== + dependencies: + hash-base "^3.0.0" + inherits "^2.0.1" + safe-buffer "^5.1.2" + +micromatch@^2.1.5: + version "2.3.11" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" + integrity sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU= + 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" + +micromatch@^3.1.10: + version "3.1.10" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" + integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== + dependencies: + 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@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" + integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA== + dependencies: + bn.js "^4.0.0" + brorand "^1.0.1" + +minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" + integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== + +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" + integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= + +minimatch@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== + 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" + integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0= + +minimist@^1.1.0, minimist@^1.1.1, minimist@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" + integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ= + +minipass@^2.2.1, minipass@^2.3.4: + version "2.3.5" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.3.5.tgz#cacebe492022497f656b0f0f51e2682a9ed2d848" + integrity sha512-Gi1W4k059gyRbyVUZQ4mEqLm0YIUiGYfvxhF6SIlk3ui1WVxMTGfGdQ2SInh3PDrRTVvPKgULkpJtT4RH10+VA== + dependencies: + safe-buffer "^5.1.2" + yallist "^3.0.0" + +minizlib@^1.1.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.2.1.tgz#dd27ea6136243c7c880684e8672bb3a45fd9b614" + integrity sha512-7+4oTUOWKg7AuL3vloEWekXY2/D20cevzsrNT2kGWm+39J9hGTCBv8VI5Pm5lXZ/o3/mdR4f8rflAPhnQb8mPA== + dependencies: + minipass "^2.2.1" + +mixin-deep@^1.2.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.1.tgz#a49e7268dce1a0d9698e45326c5626df3543d0fe" + integrity sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ== + dependencies: + for-in "^1.0.2" + is-extendable "^1.0.1" + +mkdirp@^0.5.0, mkdirp@^0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" + integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM= + dependencies: + minimist "0.0.8" + +module-deps@^6.0.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/module-deps/-/module-deps-6.2.0.tgz#d41a2e790245ce319171e4e7c4d8c73993ba3cd5" + integrity sha512-hKPmO06so6bL/ZvqVNVqdTVO8UAYsi3tQWlCa+z9KuWhoN4KDQtb5hcqQQv58qYiDE21wIvnttZEPiDgEbpwbA== + dependencies: + JSONStream "^1.0.3" + browser-resolve "^1.7.0" + cached-path-relative "^1.0.0" + concat-stream "~1.6.0" + defined "^1.0.0" + detective "^5.0.2" + duplexer2 "^0.1.2" + inherits "^2.0.1" + parents "^1.0.0" + readable-stream "^2.0.2" + resolve "^1.4.0" + stream-combiner2 "^1.1.1" + subarg "^1.0.0" + through2 "^2.0.0" + xtend "^4.0.0" + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= + +nan@^2.9.2: + version "2.11.1" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.11.1.tgz#90e22bccb8ca57ea4cd37cc83d3819b52eea6766" + integrity sha512-iji6k87OSXa0CcrLl9z+ZiYSuR2o+c0bGuNmXdrhTQTakxytAFsC56SArGYoiHlJlFoHSnvmhpceZJaXkVuOtA== + +nanomatch@^1.2.9: + version "1.2.13" + resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" + integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== + dependencies: + 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" + +needle@^2.2.1: + version "2.2.4" + resolved "https://registry.yarnpkg.com/needle/-/needle-2.2.4.tgz#51931bff82533b1928b7d1d69e01f1b00ffd2a4e" + integrity sha512-HyoqEb4wr/rsoaIDfTH2aVL9nWtQqba2/HvMv+++m8u0dz808MaagKILxtfeSN7QU7nvbQ79zk3vYOJp9zsNEA== + dependencies: + debug "^2.1.2" + iconv-lite "^0.4.4" + sax "^1.2.4" + +node-pre-gyp@^0.10.0: + version "0.10.3" + resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.10.3.tgz#3070040716afdc778747b61b6887bf78880b80fc" + integrity sha512-d1xFs+C/IPS8Id0qPTZ4bUT8wWryfR/OzzAFxweG+uLN85oPzyo2Iw6bVlLQ/JOdgNonXLCoRyqDzDWq4iw72A== + dependencies: + 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@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" + integrity sha1-0NRoWv1UFRk8jHUFYC0NF81kR00= + dependencies: + abbrev "1" + osenv "^0.1.4" + +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" + integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= + dependencies: + remove-trailing-separator "^1.0.1" + +npm-bundled@^1.0.1: + version "1.0.5" + resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.5.tgz#3c1732b7ba936b3a10325aef616467c0ccbcc979" + integrity sha512-m/e6jgWu8/v5niCUKQi9qQl8QdeEduFA96xHDDzFGqly0OOjI7c+60KM/2sppfnUU9JJagf+zs+yGhqSOFj71g== + +npm-packlist@^1.1.6: + version "1.1.12" + resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.1.12.tgz#22bde2ebc12e72ca482abd67afc51eb49377243a" + integrity sha512-WJKFOVMeAlsU/pjXuqVdzU0WfgtIBCupkEVwn+1Y0ERAbUfWw8R4GjgVbaKnUjRoD2FoQbHOCbOyT5Mbs9Lw4g== + dependencies: + ignore-walk "^3.0.1" + npm-bundled "^1.0.1" + +npmlog@^4.0.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" + integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== + 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" + integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= + +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" + integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= + +object-copy@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" + integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw= + dependencies: + copy-descriptor "^0.1.0" + define-property "^0.2.5" + kind-of "^3.0.3" + +object-visit@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" + integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs= + dependencies: + isobject "^3.0.0" + +object.omit@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" + integrity sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo= + dependencies: + for-own "^0.1.4" + is-extendable "^0.1.1" + +object.pick@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" + integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= + dependencies: + isobject "^3.0.1" + +once@^1.3.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= + 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" + integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc= + +os-homedir@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" + integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= + +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" + integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= + +osenv@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" + integrity sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g== + dependencies: + os-homedir "^1.0.0" + os-tmpdir "^1.0.0" + +output-file-sync@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/output-file-sync/-/output-file-sync-1.1.2.tgz#d0a33eefe61a205facb90092e826598d5245ce76" + integrity sha1-0KM+7+YaIF+suQCS6CZZjVJFznY= + dependencies: + graceful-fs "^4.1.4" + mkdirp "^0.5.1" + object-assign "^4.1.0" + +pako@~1.0.5: + version "1.0.7" + resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.7.tgz#2473439021b57f1516c82f58be7275ad8ef1bb27" + integrity sha512-3HNK5tW4x8o5mO8RuHZp3Ydw9icZXx0RANAOMzlMzx7LVXhMJ4mo3MOBpzyd7r/+RUu8BmndP47LXT+vzjtWcQ== + +parents@^1.0.0, parents@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parents/-/parents-1.0.1.tgz#fedd4d2bf193a77745fe71e371d73c3307d9c751" + integrity sha1-/t1NK/GTp3dF/nHjcdc8MwfZx1E= + dependencies: + path-platform "~0.11.15" + +parse-asn1@^5.0.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.1.tgz#f6bf293818332bd0dab54efb16087724745e6ca8" + integrity sha512-KPx7flKXg775zZpnp9SxJlz00gTd4BmJ2yJufSc44gMCRrRQ7NSzAcSJQfifuOLgW6bEi+ftrALtsgALeB2Adw== + 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" + integrity sha1-ssN2z7EfNVE7rdFz7wu246OIORw= + dependencies: + glob-base "^0.3.0" + is-dotfile "^1.0.0" + is-extglob "^1.0.0" + is-glob "^2.0.0" + +pascalcase@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" + integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= + +path-browserify@~0.0.0: + version "0.0.1" + resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.1.tgz#e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a" + integrity sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ== + +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" + integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= + +path-parse@^1.0.5: + version "1.0.6" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" + integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== + +path-platform@~0.11.15: + version "0.11.15" + resolved "https://registry.yarnpkg.com/path-platform/-/path-platform-0.11.15.tgz#e864217f74c36850f0852b78dc7bf7d4a5721bf2" + integrity sha1-6GQhf3TDaFDwhSt43Hv31KVyG/I= + +pbkdf2@^3.0.3: + version "3.0.17" + resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.17.tgz#976c206530617b14ebb32114239f7b09336e93a6" + integrity sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA== + 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" + +posix-character-classes@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" + integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= + +preserve@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" + integrity sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks= + +private@^0.1.6, private@^0.1.8: + version "0.1.8" + resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" + integrity sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg== + +process-nextick-args@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa" + integrity sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw== + +process@~0.11.0: + version "0.11.10" + resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" + integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= + +prop-types@^15.5.10: + version "15.6.2" + resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.6.2.tgz#05d5ca77b4453e985d60fc7ff8c859094a497102" + integrity sha512-3pboPvLiWD7dkI3qf3KbUe6hKFKa52w+AE0VCqECtf+QHAKgOL37tTaNCnuX1nAAQ4ZhyP+kYVKf8rLmJ/feDQ== + dependencies: + loose-envify "^1.3.1" + object-assign "^4.1.1" + +public-encrypt@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" + integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q== + 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" + safe-buffer "^5.1.2" + +punycode@1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" + integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= + +punycode@^1.3.2: + version "1.4.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" + integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= + +querystring-es3@~0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" + integrity sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM= + +querystring@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" + integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= + +randomatic@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-3.1.1.tgz#b776efc59375984e36c537b2f51a1f0aff0da1ed" + integrity sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw== + dependencies: + is-number "^4.0.0" + kind-of "^6.0.0" + math-random "^1.0.1" + +randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5: + version "2.0.6" + resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.0.6.tgz#d302c522948588848a8d300c932b44c24231da80" + integrity sha512-CIQ5OFxf4Jou6uOKe9t1AOgqpeU5fd70A8NPdHSGeYXqXsPe6peOwI0cUl88RWZ6sP1vPMV3avd/R6cZ5/sP1A== + dependencies: + safe-buffer "^5.1.0" + +randomfill@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" + integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw== + dependencies: + randombytes "^2.0.5" + safe-buffer "^5.1.0" + +rc@^1.2.7: + version "1.2.8" + resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" + integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== + dependencies: + deep-extend "^0.6.0" + ini "~1.3.0" + minimist "^1.2.0" + strip-json-comments "~2.0.1" + +react-sparklines@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/react-sparklines/-/react-sparklines-1.7.0.tgz#9b1d97e8c8610095eeb2ad658d2e1fcf91f91a60" + integrity sha512-bJFt9K4c5Z0k44G8KtxIhbG+iyxrKjBZhdW6afP+R7EnIq+iKjbWbEFISrf3WKNFsda+C46XAfnX0StS5fbDcg== + dependencies: + prop-types "^15.5.10" + +read-only-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/read-only-stream/-/read-only-stream-2.0.0.tgz#2724fd6a8113d73764ac288d4386270c1dbf17f0" + integrity sha1-JyT9aoET1zdkrCiNQ4YnDB2/F/A= + dependencies: + readable-stream "^2.0.2" + +readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.2.2, readable-stream@^2.3.6, readable-stream@~2.3.6: + version "2.3.6" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" + integrity sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + +readdirp@^2.0.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" + integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ== + dependencies: + graceful-fs "^4.1.11" + micromatch "^3.1.10" + readable-stream "^2.0.2" + +regenerate@^1.2.1: + version "1.4.0" + resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.0.tgz#4a856ec4b56e4077c557589cae85e7a4c8869a11" + integrity sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg== + +regenerator-runtime@^0.10.5: + version "0.10.5" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz#336c3efc1220adcedda2c9fab67b5a7955a33658" + integrity sha1-M2w+/BIgrc7dosn6tntaeVWjNlg= + +regenerator-runtime@^0.11.0: + version "0.11.1" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" + integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== + +regenerator-transform@^0.10.0: + version "0.10.1" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.10.1.tgz#1e4996837231da8b7f3cf4114d71b5691a0680dd" + integrity sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q== + 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" + integrity sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ== + dependencies: + is-equal-shallow "^0.1.3" + +regex-not@^1.0.0, regex-not@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" + integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== + dependencies: + extend-shallow "^3.0.2" + safe-regex "^1.1.0" + +regexpu-core@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-2.0.0.tgz#49d038837b8dcf8bfa5b9a42139938e6ea2ae240" + integrity sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA= + 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" + integrity sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc= + +regjsparser@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.1.5.tgz#7ee8f84dc6fa792d3fd0ae228d24bd949ead205c" + integrity sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw= + 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" + integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= + +repeat-element@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce" + integrity sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g== + +repeat-string@^1.5.2, repeat-string@^1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" + integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= + +repeating@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" + integrity sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo= + dependencies: + is-finite "^1.0.0" + +resolve-url@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" + integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= + +resolve@1.1.7: + version "1.1.7" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" + integrity sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs= + +resolve@^1.1.4, resolve@^1.4.0: + version "1.8.1" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.8.1.tgz#82f1ec19a423ac1fbd080b0bab06ba36e84a7a26" + integrity sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA== + dependencies: + path-parse "^1.0.5" + +ret@~0.1.10: + version "0.1.15" + resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" + integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== + +rimraf@^2.6.1: + version "2.6.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36" + integrity sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w== + dependencies: + glob "^7.0.5" + +ripemd160@^2.0.0, ripemd160@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" + integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== + dependencies: + hash-base "^3.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.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +safe-regex@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" + integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4= + dependencies: + ret "~0.1.10" + +"safer-buffer@>= 2.1.2 < 3": + version "2.1.2" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +sax@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" + integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== + +semver@^5.3.0: + version "5.6.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.6.0.tgz#7e74256fbaa49c75aa7c7a205cc22799cac80004" + integrity sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg== + +set-blocking@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= + +set-value@^0.4.3: + version "0.4.3" + resolved "https://registry.yarnpkg.com/set-value/-/set-value-0.4.3.tgz#7db08f9d3d22dc7f78e53af3c3bf4666ecdfccf1" + integrity sha1-fbCPnT0i3H945Trzw79GZuzfzPE= + dependencies: + 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.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.0.tgz#71ae4a88f0feefbbf52d1ea604f3fb315ebb6274" + integrity sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg== + dependencies: + extend-shallow "^2.0.1" + is-extendable "^0.1.1" + is-plain-object "^2.0.3" + split-string "^3.0.1" + +sha.js@^2.4.0, sha.js@^2.4.8, sha.js@~2.4.4: + version "2.4.11" + resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" + integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +shasum@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/shasum/-/shasum-1.0.2.tgz#e7012310d8f417f4deb5712150e5678b87ae565f" + integrity sha1-5wEjENj0F/TetXEhUOVni4euVl8= + dependencies: + json-stable-stringify "~0.0.0" + sha.js "~2.4.4" + +shell-quote@^1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.6.1.tgz#f4781949cce402697127430ea3b3c5476f481767" + integrity sha1-9HgZSczkAmlxJ0MOo7PFR29IF2c= + dependencies: + array-filter "~0.0.0" + array-map "~0.0.0" + array-reduce "~0.0.0" + jsonify "~0.0.0" + +signal-exit@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" + integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0= + +simple-concat@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.0.tgz#7344cbb8b6e26fb27d66b2fc86f9f6d5997521c6" + integrity sha1-c0TLuLbib7J9ZrL8hvn21Zl1IcY= + +slash@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" + integrity sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU= + +snapdragon-node@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" + integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== + dependencies: + define-property "^1.0.0" + isobject "^3.0.0" + snapdragon-util "^3.0.1" + +snapdragon-util@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" + integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== + dependencies: + kind-of "^3.2.0" + +snapdragon@^0.8.1: + version "0.8.2" + resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" + integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== + dependencies: + 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" + +source-map-resolve@^0.5.0: + version "0.5.2" + resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.2.tgz#72e2cc34095543e43b2c62b2c4c10d4a9054f259" + integrity sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA== + dependencies: + 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@^0.4.15: + version "0.4.18" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f" + integrity sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA== + dependencies: + source-map "^0.5.6" + +source-map-url@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" + integrity sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM= + +source-map@^0.5.6, source-map@^0.5.7, source-map@~0.5.3: + version "0.5.7" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" + integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= + +split-string@^3.0.1, split-string@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" + integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== + dependencies: + extend-shallow "^3.0.0" + +static-extend@^0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" + integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY= + dependencies: + define-property "^0.2.5" + object-copy "^0.1.0" + +stream-browserify@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.1.tgz#66266ee5f9bdb9940a4e4514cafb43bb71e5c9db" + integrity sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds= + dependencies: + inherits "~2.0.1" + readable-stream "^2.0.2" + +stream-combiner2@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/stream-combiner2/-/stream-combiner2-1.1.1.tgz#fb4d8a1420ea362764e21ad4780397bebcb41cbe" + integrity sha1-+02KFCDqNidk4hrUeAOXvry0HL4= + dependencies: + duplexer2 "~0.1.0" + readable-stream "^2.0.2" + +stream-http@^2.0.0: + version "2.8.3" + resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc" + integrity sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw== + dependencies: + builtin-status-codes "^3.0.0" + inherits "^2.0.1" + readable-stream "^2.3.6" + to-arraybuffer "^1.0.0" + xtend "^4.0.0" + +stream-splicer@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/stream-splicer/-/stream-splicer-2.0.0.tgz#1b63be438a133e4b671cc1935197600175910d83" + integrity sha1-G2O+Q4oTPktnHMGTUZdgAXWRDYM= + dependencies: + inherits "^2.0.1" + readable-stream "^2.0.2" + +string-width@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" + integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M= + dependencies: + code-point-at "^1.0.0" + is-fullwidth-code-point "^1.0.0" + strip-ansi "^3.0.0" + +"string-width@^1.0.2 || 2": + version "2.1.1" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" + integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== + dependencies: + is-fullwidth-code-point "^2.0.0" + strip-ansi "^4.0.0" + +string_decoder@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.2.0.tgz#fe86e738b19544afe70469243b2a1ee9240eae8d" + integrity sha512-6YqyX6ZWEYguAxgZzHGL7SsCeGx3V2TtOTqZz1xSTSWnqsbWwbptafNyvf/ACquZUXV3DANr5BDIwNYe1mN42w== + dependencies: + safe-buffer "~5.1.0" + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" + +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" + integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= + 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" + integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= + dependencies: + ansi-regex "^3.0.0" + +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" + integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= + +subarg@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/subarg/-/subarg-1.0.0.tgz#f62cf17581e996b48fc965699f54c06ae268b8d2" + integrity sha1-9izxdYHplrSPyWVpn1TAauJouNI= + dependencies: + minimist "^1.1.0" + +supports-color@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" + integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc= + +syntax-error@^1.1.1: + version "1.4.0" + resolved "https://registry.yarnpkg.com/syntax-error/-/syntax-error-1.4.0.tgz#2d9d4ff5c064acb711594a3e3b95054ad51d907c" + integrity sha512-YPPlu67mdnHGTup2A8ff7BC2Pjq0e0Yp/IyTFN03zWO0RcK07uLcbi7C2KpGR2FvWbaB0+bfE27a+sBKebSo7w== + dependencies: + acorn-node "^1.2.0" + +tar@^4: + version "4.4.8" + resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.8.tgz#b19eec3fde2a96e64666df9fdb40c5ca1bc3747d" + integrity sha512-LzHF64s5chPQQS0IYBn9IN5h3i98c12bo4NCO7e0sGM2llXQ3p2FGC5sdENN4cTW48O915Sh+x+EXx7XW96xYQ== + dependencies: + 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" + +through2@^2.0.0: + version "2.0.5" + resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" + integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== + dependencies: + readable-stream "~2.3.6" + xtend "~4.0.1" + +"through@>=2.2.7 <3": + version "2.3.8" + resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= + +timers-browserify@^1.0.1: + version "1.4.2" + resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-1.4.2.tgz#c9c58b575be8407375cb5e2462dacee74359f41d" + integrity sha1-ycWLV1voQHN1y14kYtrO50NZ9B0= + dependencies: + process "~0.11.0" + +to-arraybuffer@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" + integrity sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M= + +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" + integrity sha1-uDVx+k2MJbguIxsG46MFXeTKGkc= + +to-object-path@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" + integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68= + dependencies: + kind-of "^3.0.2" + +to-regex-range@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" + integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg= + dependencies: + is-number "^3.0.0" + repeat-string "^1.6.1" + +to-regex@^3.0.1, to-regex@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" + integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== + dependencies: + define-property "^2.0.2" + extend-shallow "^3.0.2" + regex-not "^1.0.2" + safe-regex "^1.1.0" + +trim-right@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" + integrity sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM= + +tty-browserify@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.1.tgz#3f05251ee17904dfd0677546670db9651682b811" + integrity sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw== + +typedarray@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" + integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= + +umd@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/umd/-/umd-3.0.3.tgz#aa9fe653c42b9097678489c01000acb69f0b26cf" + integrity sha512-4IcGSufhFshvLNcMCV80UnQVlZ5pMOC8mvNPForqwA4+lzYQuetTESLDQkeLmihq8bRcnpbQa48Wb8Lh16/xow== + +undeclared-identifiers@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/undeclared-identifiers/-/undeclared-identifiers-1.1.2.tgz#7d850a98887cff4bd0bf64999c014d08ed6d1acc" + integrity sha512-13EaeocO4edF/3JKime9rD7oB6QI8llAGhgn5fKOPyfkJbRb6NFv9pYV6dFEmpa4uRjKeBqLZP8GpuzqHlKDMQ== + dependencies: + acorn-node "^1.3.0" + get-assigned-identifiers "^1.2.0" + simple-concat "^1.0.0" + xtend "^4.0.1" + +union-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.0.tgz#5c71c34cb5bad5dcebe3ea0cd08207ba5aa1aea4" + integrity sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ= + dependencies: + arr-union "^3.1.0" + get-value "^2.0.6" + is-extendable "^0.1.1" + set-value "^0.4.3" + +unset-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" + integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk= + dependencies: + has-value "^0.3.1" + isobject "^3.0.0" + +urix@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" + integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= + +url@~0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" + integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE= + dependencies: + punycode "1.3.2" + querystring "0.2.0" + +use@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" + integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== + +user-home@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/user-home/-/user-home-1.1.1.tgz#2b5be23a32b63a7c9deb8d0f28d485724a3df190" + integrity sha1-K1viOjK2Onyd640PKNSFcko98ZA= + +util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= + +util@0.10.3: + version "0.10.3" + resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" + integrity sha1-evsa/lCAUkZInj23/g7TeTNqwPk= + dependencies: + inherits "2.0.1" + +util@~0.10.1: + version "0.10.4" + resolved "https://registry.yarnpkg.com/util/-/util-0.10.4.tgz#3aa0125bfe668a4672de58857d3ace27ecb76901" + integrity sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A== + dependencies: + inherits "2.0.3" + +v8flags@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/v8flags/-/v8flags-2.1.1.tgz#aab1a1fa30d45f88dd321148875ac02c0b55e5b4" + integrity sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ= + dependencies: + user-home "^1.1.1" + +vm-browserify@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.0.tgz#bd76d6a23323e2ca8ffa12028dc04559c75f9019" + integrity sha512-iq+S7vZJE60yejDYM0ek6zg308+UZsdtPExWP9VZoCFCz1zkJoXFnAX7aZfd/ZwrkidzdUZL0C/ryW+JwAiIGw== + +wide-align@^1.1.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" + integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA== + dependencies: + string-width "^1.0.2 || 2" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= + +xtend@^4.0.0, xtend@^4.0.1, xtend@~4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" + integrity sha1-pcbVMr5lbiPbgg77lDofBJmNY68= + +yallist@^3.0.0, yallist@^3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.0.3.tgz#b4b049e314be545e3ce802236d6cd22cd91c3de9" + integrity sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A== From 0a1ebf3afca344dd967e3f277f13231a326cbeea Mon Sep 17 00:00:00 2001 From: Alan Dipert Date: Fri, 14 Dec 2018 14:35:03 -0800 Subject: [PATCH 03/77] Add sparklines widget and convert to yarn+webpack-based build --- NAMESPACE | 5 + R/reacttools.R | 35 +- examples/sparklineswidget/.vscode/tasks.json | 16 + examples/sparklineswidget/DESCRIPTION | 3 + examples/sparklineswidget/Makefile | 34 - examples/sparklineswidget/NAMESPACE | 11 +- .../sparklineswidget/R/sparklineswidget.R | 42 +- examples/sparklineswidget/README.md | 23 +- examples/sparklineswidget/app.R | 33 + .../build/sparklineswidget.js | 11 - .../inst/htmlwidgets/sparklineswidget.js | 4218 ++++++++++------- .../inst/htmlwidgets/sparklineswidget.js.map | 1 + .../man/sparklineswidget-shiny.Rd | 30 + .../sparklineswidget/man/sparklineswidget.Rd | 11 + examples/sparklineswidget/package.json | 11 +- .../sparklineswidget/sparklineswidget.Rproj | 5 + .../srcjs/sparklineswidget.js | 3 +- examples/sparklineswidget/webpack.config.js | 31 + examples/sparklineswidget/yarn.lock | 3552 ++++++++------ inst/www/react-tools/react-tools.js | 5 +- man/component.Rd | 17 +- 21 files changed, 4731 insertions(+), 3366 deletions(-) create mode 100644 examples/sparklineswidget/.vscode/tasks.json delete mode 100644 examples/sparklineswidget/Makefile create mode 100644 examples/sparklineswidget/app.R delete mode 100644 examples/sparklineswidget/build/sparklineswidget.js create mode 100644 examples/sparklineswidget/inst/htmlwidgets/sparklineswidget.js.map create mode 100644 examples/sparklineswidget/man/sparklineswidget-shiny.Rd create mode 100644 examples/sparklineswidget/man/sparklineswidget.Rd create mode 100644 examples/sparklineswidget/webpack.config.js diff --git a/NAMESPACE b/NAMESPACE index a09d73c..8b7ed53 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -1,5 +1,10 @@ # Generated by roxygen2: do not edit by hand +S3method("$",react_component_builder) +S3method("$<-",react_component_builder) +S3method("[[",react_component_builder) +S3method("[[<-",react_component_builder) +export(React) export(babel_transform) export(component) export(html_dependency_corejs) diff --git a/R/reacttools.R b/R/reacttools.R index 248d4c4..65eeb27 100644 --- a/R/reacttools.R +++ b/R/reacttools.R @@ -2,18 +2,45 @@ isUpper <- function(s) { grepl("^[[:upper:]]+$", s) } -#' Create a React component represented by an htmltools \code{\link[htmltools]{tag}}. +#' Create a React component #' #' @param name Name of the React component, which must start with an upper-case character. #' @param ... Attributes and children of the element to pass along to \code{\link[htmltools]{tag}} as varArgs. #' -#' @return +#' @return An htmltools \code{\link[htmltools]{tag}} object #' @export #' #' @examples -component <- function(name, ...) { +#' component("ParentComponent", +#' x = 1, +#' y = 2, +#' component("ChildComponent"), +#' component("OtherChildComponent") +#' ) +component <- function(name, varArgs = list()) { if (length(name) == 0 || !isUpper(substring(name, 1, 1))) { stop("Component name must be specified and start with an upper case character") } - htmltools::tag(name, list(...)) + htmltools::tag(name, varArgs) } + +#' @export +React <- structure(list(), class = "react_component_builder") + +#' @export +`$.react_component_builder` <- function(x, name) { + function(...) { + component(name, list(...)) + } +} + +#' @export +`[[.react_component_builder` <- `$.react_component_builder` + +#' @export +`$<-.react_component_builder` <- function(x, name, value) { + stop("Assigning to a component constructor is not allowed") +} + +#' @export +`[[<-.react_component_builder` <- `$<-.react_component_builder` diff --git a/examples/sparklineswidget/.vscode/tasks.json b/examples/sparklineswidget/.vscode/tasks.json new file mode 100644 index 0000000..c8c0019 --- /dev/null +++ b/examples/sparklineswidget/.vscode/tasks.json @@ -0,0 +1,16 @@ +{ + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format + "version": "2.0.0", + "tasks": [ + { + "label": "Build", + "type": "shell", + "command": "yarn run webpack --mode=development", + "group": { + "kind": "build", + "isDefault": true + } + } + ] +} \ No newline at end of file diff --git a/examples/sparklineswidget/DESCRIPTION b/examples/sparklineswidget/DESCRIPTION index b0b75bd..570fd15 100644 --- a/examples/sparklineswidget/DESCRIPTION +++ b/examples/sparklineswidget/DESCRIPTION @@ -7,3 +7,6 @@ Depends: R (>= 3.5.1) License: What license is it under? Encoding: UTF-8 LazyData: true +RoxygenNote: 6.1.1 +Imports: + reactR diff --git a/examples/sparklineswidget/Makefile b/examples/sparklineswidget/Makefile deleted file mode 100644 index d34f358..0000000 --- a/examples/sparklineswidget/Makefile +++ /dev/null @@ -1,34 +0,0 @@ -ifeq ($(OS),Windows_NT) -BABEL=$(shell npm.cmd bin)/babel.cmd -BROWSERIFY=$(shell npm.cmd bin)/browserify.cmd -else -BABEL=$(shell npm bin)/babel -BROWSERIFY=$(shell npm bin)/browserify -endif - -MODULES=$(addprefix ./srcjs/,sparklineswidget.js) -BUILT_MODULES=$(MODULES:./srcjs/%=./build/%) - -LIBDIR=./inst/htmlwidgets - -.PHONY: all clean - -all: $(LIBDIR)/sparklineswidget.js - -clean: - rm -rf build - -build/%.js: srcjs/%.js - @mkdir -p build - $(BABEL) --source-maps inline --presets env,react $^ -o $@ - -# Trick browserify -node_modules/react.js: - echo "module.exports=window.React" > node_modules/react.js - -# Trick browserify -node_modules/react-dom.js: - echo "module.exports=window.ReactDOM" > node_modules/react-dom.js - -$(LIBDIR)/sparklineswidget.js: node_modules/react.js node_modules/react-dom.js build/sparklineswidget.js - $(BROWSERIFY) --debug $(BUILT_MODULES:%=-r %) $^ -o $@ diff --git a/examples/sparklineswidget/NAMESPACE b/examples/sparklineswidget/NAMESPACE index 884a631..1b813c4 100644 --- a/examples/sparklineswidget/NAMESPACE +++ b/examples/sparklineswidget/NAMESPACE @@ -1,2 +1,9 @@ -# Generated by roxygen2: fake comment so roxygen2 overwrites silently. -exportPattern("^[^\\.]") +# Generated by roxygen2: do not edit by hand + +export(curve) +export(reference_line) +export(renderSparklineswidget) +export(sparklineswidget) +export(sparklineswidgetOutput) +export(spots) +import(htmlwidgets) diff --git a/examples/sparklineswidget/R/sparklineswidget.R b/examples/sparklineswidget/R/sparklineswidget.R index 75355be..c75605c 100644 --- a/examples/sparklineswidget/R/sparklineswidget.R +++ b/examples/sparklineswidget/R/sparklineswidget.R @@ -1,3 +1,18 @@ +#' @export +curve <- function(...) { + reactR::React$SparklinesCurve(...) +} + +#' @export +spots <- function(...) { + reactR::React$SparklinesSpots(...) +} + +#' @export +reference_line <- function(...) { + reactR::React$SparklinesReferenceLine(...) +} + #' #' #' @@ -5,21 +20,14 @@ #' @import htmlwidgets #' #' @export -sparklineswidget <- function(message, width = NULL, height = NULL, elementId = NULL) { - - # forward options using x - x = list( - message = message - ) - - # create widget +sparklineswidget <- function(data, ...) { htmlwidgets::createWidget( name = 'sparklineswidget', - x, - width = width, - height = height, + list(tag = reactR::component("Sparklines", c(list(data = data, ...)))), + width = NULL, + height = NULL, package = 'sparklineswidget', - elementId = elementId + elementId = NULL ) } @@ -50,3 +58,13 @@ renderSparklineswidget <- function(expr, env = parent.frame(), quoted = FALSE) { if (!quoted) { expr <- substitute(expr) } # force quoted htmlwidgets::shinyRenderWidget(expr, sparklineswidgetOutput, env, quoted = TRUE) } + +# Magical +sparklineswidget_html <- function(id, style, class, ...) { + tagList( + reactR::html_dependency_corejs(), + reactR::html_dependency_react(), + reactR::html_dependency_reacttools(), + tags$div(id = id, class = class) + ) +} diff --git a/examples/sparklineswidget/README.md b/examples/sparklineswidget/README.md index f68baf3..ed9a71e 100644 --- a/examples/sparklineswidget/README.md +++ b/examples/sparklineswidget/README.md @@ -1,14 +1,10 @@ # react-sparklines HTMLWidget -This project demonstrates creating an [htmlwidget](https://www.htmlwidgets.org/) around the [react-sparklines](http://borisyankov.github.io/react-sparklines/) library. - -A [Makefile](Makefile) is used to orchestrate building the Javascript implementation of the widget. The Javascript implementation file is [sparklineswidget.js](inst/htmlwidgets/sparklineswidget.js). - -[Babel](https://babeljs.io/) is used to compile `sparklineswidget.js` into a Javascript file that should work in most modern browsers including IE11. [browserify](http://browserify.org/) is used to package the `react-sparklines` dependency from npm into the compiled Javascript. +This example demonstrates creating an [htmlwidget](https://www.htmlwidgets.org/) wrapper around the [react-sparklines](http://borisyankov.github.io/react-sparklines/) library. # Building -Because this package includes Javascript source code that requires a compilation step, package installation is in two phases: Javascript tools build the Javascript, and the usual R tools build and install the package. The R package includes the built Javascript assets. +Because this package includes Javascript source code that requires a compilation step, package installation is in two phases: Javascript tools build the Javascript, and R tools build and install the package. The R package includes the built Javascript files in the `inst/` directory. ## Javascript Build Requirements @@ -16,20 +12,27 @@ Building Javascript should work on macOS, Linux, and Windows. The following tool - [Node.js](https://nodejs.org/en/) - [Yarn](https://yarnpkg.com/en/) -- GNU Make: On macOS by default and installed easily on most Linux distributions. On Windows, consider using [chocolately](https://chocolatey.org/packages/make) -After you've installed Node.js and Yarn, run the following command to resolve dependencies: +## R Build Requirements + +You should install the parent `reactR` package if you haven't, as this widget depends on it. + +## Development Workflow + +After you've installed Node.js and Yarn, run the following command to resolve and download dependencies: ``` yarn install ``` -Now, run `make` to build `inst/htmlwidgets/sparklineswidget.js`: +Now, run `yarn` to build `inst/htmlwidgets/sparklineswidget.js`: ``` -make +yarn run webpack --mode=development ``` +> To run `yarn webpack` automatically whenever sources change, use the command `yarn run webpack --mode=development --watch` + Now that the Javascript is built, you can install the R package: ``` diff --git a/examples/sparklineswidget/app.R b/examples/sparklineswidget/app.R new file mode 100644 index 0000000..2c165a4 --- /dev/null +++ b/examples/sparklineswidget/app.R @@ -0,0 +1,33 @@ +library(shiny) +library(sparklineswidget) +library(colourpicker) +# devtools::install_github("hadley/shinySignals") +library(shinySignals) + +ui <- fluidPage( + titlePanel("React Sparklines"), + sparklineswidgetOutput('sparklines'), + colourInput("color_curve", "Curve color", "#253e56"), + colourInput("color_spots", "Spots color", "#56b45d") +) + +nextWindow <- function(prev = round(runif(100, 0, 10)), t = NULL) { + c(prev[-1], round(runif(1, 0, 10))) +} + +server <- function(input, output, session) { + + data <- reducePast(fps(1), nextWindow, nextWindow()) + + output$sparklines <- renderSparklineswidget( + sparklineswidget(data = data(), + curve(color = input$color_curve), + spots(style = list(fill = input$color_spots)), + reference_line(type = "avg") + ) + ) +} + +options(shiny.port = 4343) + +shinyApp(ui, server) diff --git a/examples/sparklineswidget/build/sparklineswidget.js b/examples/sparklineswidget/build/sparklineswidget.js deleted file mode 100644 index ba8055b..0000000 --- a/examples/sparklineswidget/build/sparklineswidget.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict'; - -var _reactSparklines = require('react-sparklines'); - -var SparklinesComponents = _interopRequireWildcard(_reactSparklines); - -function _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; } } - -reactR.exposeComponents('reactsparklines', 'output', SparklinesComponents); - -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyY2pzL3NwYXJrbGluZXN3aWRnZXQuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQTs7SUFBWSxvQjs7OztBQUVaLE9BQU8sZ0JBQVAsQ0FBd0IsaUJBQXhCLEVBQTJDLFFBQTNDLEVBQXFELG9CQUFyRCIsImZpbGUiOiJzcGFya2xpbmVzd2lkZ2V0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgU3BhcmtsaW5lc0NvbXBvbmVudHMgZnJvbSAncmVhY3Qtc3BhcmtsaW5lcyc7XHJcblxyXG5yZWFjdFIuZXhwb3NlQ29tcG9uZW50cygncmVhY3RzcGFya2xpbmVzJywgJ291dHB1dCcsIFNwYXJrbGluZXNDb21wb25lbnRzKTtcclxuIl19 \ No newline at end of file diff --git a/examples/sparklineswidget/inst/htmlwidgets/sparklineswidget.js b/examples/sparklineswidget/inst/htmlwidgets/sparklineswidget.js index 970f928..e5b6b2a 100644 --- a/examples/sparklineswidget/inst/htmlwidgets/sparklineswidget.js +++ b/examples/sparklineswidget/inst/htmlwidgets/sparklineswidget.js @@ -1,29 +1,4 @@ -require=(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i 1) { - for (var i = 1; i < arguments.length; i++) { - args[i - 1] = arguments[i]; - } - } - queue.push(new Item(fun, args)); - if (queue.length === 1 && !draining) { - runTimeout(drainQueue); - } -}; -// v8 likes predictible objects -function Item(fun, array) { - this.fun = fun; - this.array = array; -} -Item.prototype.run = function () { - this.fun.apply(null, this.array); -}; -process.title = 'browser'; -process.browser = true; -process.env = {}; -process.argv = []; -process.version = ''; // empty string to avoid regexp issues -process.versions = {}; - -function noop() {} - -process.on = noop; -process.addListener = noop; -process.once = noop; -process.off = noop; -process.removeListener = noop; -process.removeAllListeners = noop; -process.emit = noop; -process.prependListener = noop; -process.prependOnceListener = noop; - -process.listeners = function (name) { return [] } - -process.binding = function (name) { - throw new Error('process.binding is not supported'); -}; + currentQueue = null; + draining = false; + runClearTimeout(timeout); + } -process.cwd = function () { return '/' }; -process.chdir = function (dir) { - throw new Error('process.chdir is not supported'); -}; -process.umask = function() { return 0; }; + process.nextTick = function (fun) { + var args = new Array(arguments.length - 1); + if (arguments.length > 1) { + for (var i = 1; i < arguments.length; i++) { + args[i - 1] = arguments[i]; + } + } -/***/ }), -/* 3 */ -/***/ (function(module, exports, __webpack_require__) { + queue.push(new Item(fun, args)); -"use strict"; + if (queue.length === 1 && !draining) { + runTimeout(drainQueue); + } + }; // v8 likes predictible objects -Object.defineProperty(exports, "__esModule", { - value: true -}); + function Item(fun, array) { + this.fun = fun; + this.array = array; + } -exports.default = function (data) { - return data.reduce(function (a, b) { - return a + b; - }) / data.length; -}; + Item.prototype.run = function () { + this.fun.apply(null, this.array); + }; -/***/ }), -/* 4 */ -/***/ (function(module, exports, __webpack_require__) { + process.title = 'browser'; + process.browser = true; + process.env = {}; + process.argv = []; + process.version = ''; // empty string to avoid regexp issues -"use strict"; + process.versions = {}; + function noop() {} -/** - * Copyright (c) 2013-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. - * - * - */ - -function makeEmptyFunction(arg) { - return function () { - return arg; - }; -} - -/** - * This function accepts and discards inputs; it has no side effects. This is - * primarily useful idiomatically for overridable function endpoints which - * always need to be callable, since JS lacks a null-call idiom ala Cocoa. - */ -var emptyFunction = function emptyFunction() {}; - -emptyFunction.thatReturns = makeEmptyFunction; -emptyFunction.thatReturnsFalse = makeEmptyFunction(false); -emptyFunction.thatReturnsTrue = makeEmptyFunction(true); -emptyFunction.thatReturnsNull = makeEmptyFunction(null); -emptyFunction.thatReturnsThis = function () { - return this; -}; -emptyFunction.thatReturnsArgument = function (arg) { - return arg; -}; + process.on = noop; + process.addListener = noop; + process.once = noop; + process.off = noop; + process.removeListener = noop; + process.removeAllListeners = noop; + process.emit = noop; + process.prependListener = noop; + process.prependOnceListener = noop; -module.exports = emptyFunction; + process.listeners = function (name) { + return []; + }; -/***/ }), -/* 5 */ -/***/ (function(module, exports, __webpack_require__) { + process.binding = function (name) { + throw new Error('process.binding is not supported'); + }; -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) {/** - * Copyright (c) 2013-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. - * - */ - - - -/** - * Use invariant() to assert state which your program assumes to be true. - * - * Provide sprintf-style format (only %s is supported) and arguments - * to provide information about what broke and what you were - * expecting. - * - * The invariant message will be stripped in production, but the invariant - * will remain to ensure logic does not differ in production. - */ - -var validateFormat = function validateFormat(format) {}; - -if (process.env.NODE_ENV !== 'production') { - validateFormat = function validateFormat(format) { - if (format === undefined) { - throw new Error('invariant requires an error message argument'); - } - }; -} - -function invariant(condition, format, a, b, c, d, e, f) { - validateFormat(format); - - if (!condition) { - var error; - if (format === undefined) { - error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.'); - } else { - var args = [a, b, c, d, e, f]; - var argIndex = 0; - error = new Error(format.replace(/%s/g, function () { - return args[argIndex++]; - })); - error.name = 'Invariant Violation'; - } - - error.framesToPop = 1; // we don't care about invariant's own frame - throw error; - } -} + process.cwd = function () { + return '/'; + }; -module.exports = invariant; -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(2))) + process.chdir = function (dir) { + throw new Error('process.chdir is not supported'); + }; -/***/ }), -/* 6 */ -/***/ (function(module, exports, __webpack_require__) { + process.umask = function () { + return 0; + }; + /***/ -"use strict"; -/** - * Copyright 2013-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. - */ + }, + /* 3 */ + /***/ + function (module, exports, __webpack_require__) { + "use strict"; + Object.defineProperty(exports, "__esModule", { + value: true + }); -var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED'; + exports.default = function (data) { + return data.reduce(function (a, b) { + return a + b; + }) / data.length; + }; + /***/ + + }, + /* 4 */ + + /***/ + function (module, exports, __webpack_require__) { + "use strict"; + /** + * Copyright (c) 2013-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. + * + * + */ + + function makeEmptyFunction(arg) { + return function () { + return arg; + }; + } + /** + * This function accepts and discards inputs; it has no side effects. This is + * primarily useful idiomatically for overridable function endpoints which + * always need to be callable, since JS lacks a null-call idiom ala Cocoa. + */ -module.exports = ReactPropTypesSecret; + var emptyFunction = function emptyFunction() {}; -/***/ }), -/* 7 */ -/***/ (function(module, exports, __webpack_require__) { + emptyFunction.thatReturns = makeEmptyFunction; + emptyFunction.thatReturnsFalse = makeEmptyFunction(false); + emptyFunction.thatReturnsTrue = makeEmptyFunction(true); + emptyFunction.thatReturnsNull = makeEmptyFunction(null); -"use strict"; + emptyFunction.thatReturnsThis = function () { + return this; + }; + emptyFunction.thatReturnsArgument = function (arg) { + return arg; + }; -Object.defineProperty(exports, "__esModule", { - value: true -}); + module.exports = emptyFunction; + /***/ + }, + /* 5 */ + + /***/ + function (module, exports, __webpack_require__) { + "use strict"; + /* WEBPACK VAR INJECTION */ + + (function (process) { + /** + * Copyright (c) 2013-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. + * + */ + + /** + * Use invariant() to assert state which your program assumes to be true. + * + * Provide sprintf-style format (only %s is supported) and arguments + * to provide information about what broke and what you were + * expecting. + * + * The invariant message will be stripped in production, but the invariant + * will remain to ensure logic does not differ in production. + */ + var validateFormat = function validateFormat(format) {}; + + if (process.env.NODE_ENV !== 'production') { + validateFormat = function validateFormat(format) { + if (format === undefined) { + throw new Error('invariant requires an error message argument'); + } + }; + } -exports.default = function (data) { - return Math.min.apply(Math, data); -}; + function invariant(condition, format, a, b, c, d, e, f) { + validateFormat(format); + + if (!condition) { + var error; + + if (format === undefined) { + error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.'); + } else { + var args = [a, b, c, d, e, f]; + var argIndex = 0; + error = new Error(format.replace(/%s/g, function () { + return args[argIndex++]; + })); + error.name = 'Invariant Violation'; + } -/***/ }), -/* 8 */ -/***/ (function(module, exports, __webpack_require__) { + error.framesToPop = 1; // we don't care about invariant's own frame -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) {/** - * Copyright 2014-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 emptyFunction = __webpack_require__(4); - -/** - * Similar to invariant but only logs a warning if the condition is not met. - * This can be used to log issues in development environments in critical - * paths. Removing the logging code for production environments will keep the - * same logic and follow the same code paths. - */ - -var warning = emptyFunction; - -if (process.env.NODE_ENV !== 'production') { - var printWarning = function printWarning(format) { - for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { - args[_key - 1] = arguments[_key]; - } - - var argIndex = 0; - var message = 'Warning: ' + format.replace(/%s/g, function () { - return args[argIndex++]; - }); - if (typeof console !== 'undefined') { - console.error(message); - } - try { - // --- Welcome to debugging React --- - // This error was thrown as a convenience so that you can use this stack - // to find the callsite that caused this warning to fire. - throw new Error(message); - } catch (x) {} - }; - - warning = function warning(condition, format) { - if (format === undefined) { - throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument'); - } - - if (format.indexOf('Failed Composite propType: ') === 0) { - return; // Ignore CompositeComponent proptype check. - } - - if (!condition) { - for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) { - args[_key2 - 2] = arguments[_key2]; - } + throw error; + } + } - printWarning.apply(undefined, [format].concat(args)); - } - }; -} + module.exports = invariant; + /* WEBPACK VAR INJECTION */ + }).call(exports, __webpack_require__(2)); + /***/ + }, + /* 6 */ + + /***/ + function (module, exports, __webpack_require__) { + "use strict"; + /** + * Copyright 2013-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. + */ + + var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED'; + module.exports = ReactPropTypesSecret; + /***/ + }, + /* 7 */ + + /***/ + function (module, exports, __webpack_require__) { + "use strict"; + + Object.defineProperty(exports, "__esModule", { + value: true + }); -module.exports = warning; -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(2))) + exports.default = function (data) { + return Math.min.apply(Math, data); + }; + /***/ + + }, + /* 8 */ + + /***/ + function (module, exports, __webpack_require__) { + "use strict"; + /* WEBPACK VAR INJECTION */ + + (function (process) { + /** + * Copyright 2014-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 emptyFunction = __webpack_require__(4); + /** + * Similar to invariant but only logs a warning if the condition is not met. + * This can be used to log issues in development environments in critical + * paths. Removing the logging code for production environments will keep the + * same logic and follow the same code paths. + */ + + + var warning = emptyFunction; + + if (process.env.NODE_ENV !== 'production') { + var printWarning = function printWarning(format) { + for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { + args[_key - 1] = arguments[_key]; + } -/***/ }), -/* 9 */ -/***/ (function(module, exports, __webpack_require__) { + var argIndex = 0; + var message = 'Warning: ' + format.replace(/%s/g, function () { + return args[argIndex++]; + }); -"use strict"; + if (typeof console !== 'undefined') { + console.error(message); + } + + try { + // --- Welcome to debugging React --- + // This error was thrown as a convenience so that you can use this stack + // to find the callsite that caused this warning to fire. + throw new Error(message); + } catch (x) {} + }; + + warning = function warning(condition, format) { + if (format === undefined) { + throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument'); + } + if (format.indexOf('Failed Composite propType: ') === 0) { + return; // Ignore CompositeComponent proptype check. + } -Object.defineProperty(exports, "__esModule", { - value: true -}); + if (!condition) { + for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) { + args[_key2 - 2] = arguments[_key2]; + } -exports.default = function (data) { - return Math.max.apply(Math, data); -}; + printWarning.apply(undefined, [format].concat(args)); + } + }; + } -/***/ }), -/* 10 */ -/***/ (function(module, exports, __webpack_require__) { + module.exports = warning; + /* WEBPACK VAR INJECTION */ + }).call(exports, __webpack_require__(2)); + /***/ + }, + /* 9 */ -"use strict"; + /***/ + function (module, exports, __webpack_require__) { + "use strict"; + Object.defineProperty(exports, "__esModule", { + value: true + }); -Object.defineProperty(exports, "__esModule", { - value: true -}); + exports.default = function (data) { + return Math.max.apply(Math, data); + }; + /***/ -var _mean = __webpack_require__(3); + }, + /* 10 */ -var _mean2 = _interopRequireDefault(_mean); + /***/ + function (module, exports, __webpack_require__) { + "use strict"; -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + Object.defineProperty(exports, "__esModule", { + value: true + }); -exports.default = function (data) { - var dataMean = (0, _mean2.default)(data); - var sqDiff = data.map(function (n) { - return Math.pow(n - dataMean, 2); - }); - var avgSqDiff = (0, _mean2.default)(sqDiff); - return Math.sqrt(avgSqDiff); -}; + var _mean = __webpack_require__(3); -/***/ }), -/* 11 */ -/***/ (function(module, exports, __webpack_require__) { + var _mean2 = _interopRequireDefault(_mean); -module.exports = __webpack_require__(12); + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; + } + exports.default = function (data) { + var dataMean = (0, _mean2.default)(data); + var sqDiff = data.map(function (n) { + return Math.pow(n - dataMean, 2); + }); + var avgSqDiff = (0, _mean2.default)(sqDiff); + return Math.sqrt(avgSqDiff); + }; + /***/ -/***/ }), -/* 12 */ -/***/ (function(module, exports, __webpack_require__) { + }, + /* 11 */ -"use strict"; + /***/ + function (module, exports, __webpack_require__) { + module.exports = __webpack_require__(12); + /***/ + }, + /* 12 */ + /***/ + function (module, exports, __webpack_require__) { + "use strict"; -module.exports = __webpack_require__(13); + module.exports = __webpack_require__(13); + /***/ + }, + /* 13 */ -/***/ }), -/* 13 */ -/***/ (function(module, exports, __webpack_require__) { + /***/ + function (module, exports, __webpack_require__) { + "use strict"; -"use strict"; + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.SparklinesText = exports.SparklinesNormalBand = exports.SparklinesReferenceLine = exports.SparklinesSpots = exports.SparklinesBars = exports.SparklinesCurve = exports.SparklinesLine = exports.Sparklines = undefined; + + var _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; + }; + }(); -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.SparklinesText = exports.SparklinesNormalBand = exports.SparklinesReferenceLine = exports.SparklinesSpots = exports.SparklinesBars = exports.SparklinesCurve = exports.SparklinesLine = exports.Sparklines = undefined; + var _propTypes = __webpack_require__(0); -var _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; }; }(); + var _propTypes2 = _interopRequireDefault(_propTypes); -var _propTypes = __webpack_require__(0); + var _react = __webpack_require__(1); -var _propTypes2 = _interopRequireDefault(_propTypes); + var _react2 = _interopRequireDefault(_react); -var _react = __webpack_require__(1); + var _SparklinesText = __webpack_require__(17); -var _react2 = _interopRequireDefault(_react); + var _SparklinesText2 = _interopRequireDefault(_SparklinesText); -var _SparklinesText = __webpack_require__(17); + var _SparklinesLine = __webpack_require__(18); -var _SparklinesText2 = _interopRequireDefault(_SparklinesText); + var _SparklinesLine2 = _interopRequireDefault(_SparklinesLine); -var _SparklinesLine = __webpack_require__(18); + var _SparklinesCurve = __webpack_require__(19); -var _SparklinesLine2 = _interopRequireDefault(_SparklinesLine); + var _SparklinesCurve2 = _interopRequireDefault(_SparklinesCurve); -var _SparklinesCurve = __webpack_require__(19); + var _SparklinesBars = __webpack_require__(20); -var _SparklinesCurve2 = _interopRequireDefault(_SparklinesCurve); + var _SparklinesBars2 = _interopRequireDefault(_SparklinesBars); -var _SparklinesBars = __webpack_require__(20); + var _SparklinesSpots = __webpack_require__(21); -var _SparklinesBars2 = _interopRequireDefault(_SparklinesBars); + var _SparklinesSpots2 = _interopRequireDefault(_SparklinesSpots); -var _SparklinesSpots = __webpack_require__(21); + var _SparklinesReferenceLine = __webpack_require__(22); -var _SparklinesSpots2 = _interopRequireDefault(_SparklinesSpots); + var _SparklinesReferenceLine2 = _interopRequireDefault(_SparklinesReferenceLine); -var _SparklinesReferenceLine = __webpack_require__(22); + var _SparklinesNormalBand = __webpack_require__(27); -var _SparklinesReferenceLine2 = _interopRequireDefault(_SparklinesReferenceLine); + var _SparklinesNormalBand2 = _interopRequireDefault(_SparklinesNormalBand); -var _SparklinesNormalBand = __webpack_require__(27); + var _dataToPoints = __webpack_require__(28); -var _SparklinesNormalBand2 = _interopRequireDefault(_SparklinesNormalBand); + var _dataToPoints2 = _interopRequireDefault(_dataToPoints); -var _dataToPoints = __webpack_require__(28); + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; + } -var _dataToPoints2 = _interopRequireDefault(_dataToPoints); + function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + function _possibleConstructorReturn(self, call) { + if (!self) { + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + } -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + return call && (_typeof(call) === "object" || typeof call === "function") ? call : self; + } -function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + function _inherits(subClass, superClass) { + if (typeof superClass !== "function" && superClass !== null) { + throw new TypeError("Super expression must either be null or a function, not " + _typeof(superClass)); + } -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + subClass.prototype = Object.create(superClass && superClass.prototype, { + constructor: { + value: subClass, + enumerable: false, + writable: true, + configurable: true + } + }); + if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; + } -var Sparklines = function (_PureComponent) { - _inherits(Sparklines, _PureComponent); + var Sparklines = function (_PureComponent) { + _inherits(Sparklines, _PureComponent); - function Sparklines(props) { - _classCallCheck(this, Sparklines); + function Sparklines(props) { + _classCallCheck(this, Sparklines); - return _possibleConstructorReturn(this, (Sparklines.__proto__ || Object.getPrototypeOf(Sparklines)).call(this, props)); - } + return _possibleConstructorReturn(this, (Sparklines.__proto__ || Object.getPrototypeOf(Sparklines)).call(this, props)); + } - _createClass(Sparklines, [{ - key: 'render', - value: function render() { + _createClass(Sparklines, [{ + key: 'render', + value: function render() { var _props = this.props, data = _props.data, limit = _props.limit, @@ -694,756 +971,854 @@ var Sparklines = function (_PureComponent) { style = _props.style, max = _props.max, min = _props.min; + if (data.length === 0) return null; + var points = (0, _dataToPoints2.default)({ + data: data, + limit: limit, + width: width, + height: height, + margin: margin, + max: max, + min: min + }); + var svgOpts = { + style: style, + viewBox: '0 0 ' + width + ' ' + height, + preserveAspectRatio: preserveAspectRatio + }; + if (svgWidth > 0) svgOpts.width = svgWidth; + if (svgHeight > 0) svgOpts.height = svgHeight; + return _react2.default.createElement('svg', svgOpts, _react2.default.Children.map(this.props.children, function (child) { + return _react2.default.cloneElement(child, { + data: data, + points: points, + width: width, + height: height, + margin: margin + }); + })); + } + }]); + + return Sparklines; + }(_react.PureComponent); + + Sparklines.propTypes = { + data: _propTypes2.default.array, + limit: _propTypes2.default.number, + width: _propTypes2.default.number, + height: _propTypes2.default.number, + svgWidth: _propTypes2.default.number, + svgHeight: _propTypes2.default.number, + preserveAspectRatio: _propTypes2.default.string, + margin: _propTypes2.default.number, + style: _propTypes2.default.object, + min: _propTypes2.default.number, + max: _propTypes2.default.number, + onMouseMove: _propTypes2.default.func + }; + Sparklines.defaultProps = { + data: [], + width: 240, + height: 60, + //Scale the graphic content of the given element non-uniformly if necessary such that the element's bounding box exactly matches the viewport rectangle. + preserveAspectRatio: 'none', + //https://www.w3.org/TR/SVG/coords.html#PreserveAspectRatioAttribute + margin: 2 + }; + exports.Sparklines = Sparklines; + exports.SparklinesLine = _SparklinesLine2.default; + exports.SparklinesCurve = _SparklinesCurve2.default; + exports.SparklinesBars = _SparklinesBars2.default; + exports.SparklinesSpots = _SparklinesSpots2.default; + exports.SparklinesReferenceLine = _SparklinesReferenceLine2.default; + exports.SparklinesNormalBand = _SparklinesNormalBand2.default; + exports.SparklinesText = _SparklinesText2.default; + /***/ + }, + /* 14 */ + + /***/ + function (module, exports, __webpack_require__) { + "use strict"; + /* WEBPACK VAR INJECTION */ + + (function (process) { + /** + * Copyright 2013-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. + */ + var emptyFunction = __webpack_require__(4); + + var invariant = __webpack_require__(5); + + var warning = __webpack_require__(8); + + var ReactPropTypesSecret = __webpack_require__(6); + + var checkPropTypes = __webpack_require__(15); + + module.exports = function (isValidElement, throwOnDirectAccess) { + /* global Symbol */ + var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator; + var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec. + + /** + * Returns the iterator method function contained on the iterable object. + * + * Be sure to invoke the function with the iterable as context: + * + * var iteratorFn = getIteratorFn(myIterable); + * if (iteratorFn) { + * var iterator = iteratorFn.call(myIterable); + * ... + * } + * + * @param {?object} maybeIterable + * @return {?function} + */ + + function getIteratorFn(maybeIterable) { + var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]); + + if (typeof iteratorFn === 'function') { + return iteratorFn; + } + } + /** + * Collection of methods that allow declaration and validation of props that are + * supplied to React components. Example usage: + * + * var Props = require('ReactPropTypes'); + * var MyArticle = React.createClass({ + * propTypes: { + * // An optional string prop named "description". + * description: Props.string, + * + * // A required enum prop named "category". + * category: Props.oneOf(['News','Photos']).isRequired, + * + * // A prop named "dialog" that requires an instance of Dialog. + * dialog: Props.instanceOf(Dialog).isRequired + * }, + * render: function() { ... } + * }); + * + * A more formal specification of how these methods are used: + * + * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...) + * decl := ReactPropTypes.{type}(.isRequired)? + * + * Each and every declaration produces a function with the same signature. This + * allows the creation of custom validation functions. For example: + * + * var MyLink = React.createClass({ + * propTypes: { + * // An optional string or URI prop named "href". + * href: function(props, propName, componentName) { + * var propValue = props[propName]; + * if (propValue != null && typeof propValue !== 'string' && + * !(propValue instanceof URI)) { + * return new Error( + * 'Expected a string or an URI for ' + propName + ' in ' + + * componentName + * ); + * } + * } + * }, + * render: function() {...} + * }); + * + * @internal + */ + + + var ANONYMOUS = '<>'; // Important! + // Keep this list in sync with production version in `./factoryWithThrowingShims.js`. + + var ReactPropTypes = { + array: createPrimitiveTypeChecker('array'), + bool: createPrimitiveTypeChecker('boolean'), + func: createPrimitiveTypeChecker('function'), + number: createPrimitiveTypeChecker('number'), + object: createPrimitiveTypeChecker('object'), + string: createPrimitiveTypeChecker('string'), + symbol: createPrimitiveTypeChecker('symbol'), + any: createAnyTypeChecker(), + arrayOf: createArrayOfTypeChecker, + element: createElementTypeChecker(), + instanceOf: createInstanceTypeChecker, + node: createNodeChecker(), + objectOf: createObjectOfTypeChecker, + oneOf: createEnumTypeChecker, + oneOfType: createUnionTypeChecker, + shape: createShapeTypeChecker + }; + /** + * inlined Object.is polyfill to avoid requiring consumers ship their own + * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is + */ + + /*eslint-disable no-self-compare*/ + + function is(x, y) { + // SameValue algorithm + if (x === y) { + // Steps 1-5, 7-10 + // Steps 6.b-6.e: +0 != -0 + return x !== 0 || 1 / x === 1 / y; + } else { + // Step 6.a: NaN == NaN + return x !== x && y !== y; + } + } + /*eslint-enable no-self-compare*/ + /** + * We use an Error-like object for backward compatibility as people may call + * PropTypes directly and inspect their output. However, we don't use real + * Errors anymore. We don't inspect their stack anyway, and creating them + * is prohibitively expensive if they are created too often, such as what + * happens in oneOfType() for any type before the one that matched. + */ - if (data.length === 0) return null; - var points = (0, _dataToPoints2.default)({ data: data, limit: limit, width: width, height: height, margin: margin, max: max, min: min }); + function PropTypeError(message) { + this.message = message; + this.stack = ''; + } // Make `instanceof Error` still work for returned errors. - var svgOpts = { style: style, viewBox: '0 0 ' + width + ' ' + height, preserveAspectRatio: preserveAspectRatio }; - if (svgWidth > 0) svgOpts.width = svgWidth; - if (svgHeight > 0) svgOpts.height = svgHeight; - return _react2.default.createElement( - 'svg', - svgOpts, - _react2.default.Children.map(this.props.children, function (child) { - return _react2.default.cloneElement(child, { data: data, points: points, width: width, height: height, margin: margin }); - }) - ); - } - }]); - - return Sparklines; -}(_react.PureComponent); - -Sparklines.propTypes = { - data: _propTypes2.default.array, - limit: _propTypes2.default.number, - width: _propTypes2.default.number, - height: _propTypes2.default.number, - svgWidth: _propTypes2.default.number, - svgHeight: _propTypes2.default.number, - preserveAspectRatio: _propTypes2.default.string, - margin: _propTypes2.default.number, - style: _propTypes2.default.object, - min: _propTypes2.default.number, - max: _propTypes2.default.number, - onMouseMove: _propTypes2.default.func -}; -Sparklines.defaultProps = { - data: [], - width: 240, - height: 60, - //Scale the graphic content of the given element non-uniformly if necessary such that the element's bounding box exactly matches the viewport rectangle. - preserveAspectRatio: 'none', //https://www.w3.org/TR/SVG/coords.html#PreserveAspectRatioAttribute - margin: 2 -}; -exports.Sparklines = Sparklines; -exports.SparklinesLine = _SparklinesLine2.default; -exports.SparklinesCurve = _SparklinesCurve2.default; -exports.SparklinesBars = _SparklinesBars2.default; -exports.SparklinesSpots = _SparklinesSpots2.default; -exports.SparklinesReferenceLine = _SparklinesReferenceLine2.default; -exports.SparklinesNormalBand = _SparklinesNormalBand2.default; -exports.SparklinesText = _SparklinesText2.default; + PropTypeError.prototype = Error.prototype; -/***/ }), -/* 14 */ -/***/ (function(module, exports, __webpack_require__) { + function createChainableTypeChecker(validate) { + if (process.env.NODE_ENV !== 'production') { + var manualPropTypeCallCache = {}; + var manualPropTypeWarningCount = 0; + } -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) {/** - * Copyright 2013-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. - */ - - - -var emptyFunction = __webpack_require__(4); -var invariant = __webpack_require__(5); -var warning = __webpack_require__(8); - -var ReactPropTypesSecret = __webpack_require__(6); -var checkPropTypes = __webpack_require__(15); - -module.exports = function(isValidElement, throwOnDirectAccess) { - /* global Symbol */ - var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator; - var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec. - - /** - * Returns the iterator method function contained on the iterable object. - * - * Be sure to invoke the function with the iterable as context: - * - * var iteratorFn = getIteratorFn(myIterable); - * if (iteratorFn) { - * var iterator = iteratorFn.call(myIterable); - * ... - * } - * - * @param {?object} maybeIterable - * @return {?function} - */ - function getIteratorFn(maybeIterable) { - var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]); - if (typeof iteratorFn === 'function') { - return iteratorFn; - } - } + function checkType(isRequired, props, propName, componentName, location, propFullName, secret) { + componentName = componentName || ANONYMOUS; + propFullName = propFullName || propName; + + if (secret !== ReactPropTypesSecret) { + if (throwOnDirectAccess) { + // New behavior only for users of `prop-types` package + invariant(false, 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' + 'Use `PropTypes.checkPropTypes()` to call them. ' + 'Read more at http://fb.me/use-check-prop-types'); + } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') { + // Old behavior for people using React.PropTypes + var cacheKey = componentName + ':' + propName; + + if (!manualPropTypeCallCache[cacheKey] && // Avoid spamming the console because they are often not actionable except for lib authors + manualPropTypeWarningCount < 3) { + warning(false, 'You are manually calling a React.PropTypes validation ' + 'function for the `%s` prop on `%s`. This is deprecated ' + 'and will throw in the standalone `prop-types` package. ' + 'You may be seeing this warning due to a third-party PropTypes ' + 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.', propFullName, componentName); + manualPropTypeCallCache[cacheKey] = true; + manualPropTypeWarningCount++; + } + } + } - /** - * Collection of methods that allow declaration and validation of props that are - * supplied to React components. Example usage: - * - * var Props = require('ReactPropTypes'); - * var MyArticle = React.createClass({ - * propTypes: { - * // An optional string prop named "description". - * description: Props.string, - * - * // A required enum prop named "category". - * category: Props.oneOf(['News','Photos']).isRequired, - * - * // A prop named "dialog" that requires an instance of Dialog. - * dialog: Props.instanceOf(Dialog).isRequired - * }, - * render: function() { ... } - * }); - * - * A more formal specification of how these methods are used: - * - * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...) - * decl := ReactPropTypes.{type}(.isRequired)? - * - * Each and every declaration produces a function with the same signature. This - * allows the creation of custom validation functions. For example: - * - * var MyLink = React.createClass({ - * propTypes: { - * // An optional string or URI prop named "href". - * href: function(props, propName, componentName) { - * var propValue = props[propName]; - * if (propValue != null && typeof propValue !== 'string' && - * !(propValue instanceof URI)) { - * return new Error( - * 'Expected a string or an URI for ' + propName + ' in ' + - * componentName - * ); - * } - * } - * }, - * render: function() {...} - * }); - * - * @internal - */ - - var ANONYMOUS = '<>'; - - // Important! - // Keep this list in sync with production version in `./factoryWithThrowingShims.js`. - var ReactPropTypes = { - array: createPrimitiveTypeChecker('array'), - bool: createPrimitiveTypeChecker('boolean'), - func: createPrimitiveTypeChecker('function'), - number: createPrimitiveTypeChecker('number'), - object: createPrimitiveTypeChecker('object'), - string: createPrimitiveTypeChecker('string'), - symbol: createPrimitiveTypeChecker('symbol'), - - any: createAnyTypeChecker(), - arrayOf: createArrayOfTypeChecker, - element: createElementTypeChecker(), - instanceOf: createInstanceTypeChecker, - node: createNodeChecker(), - objectOf: createObjectOfTypeChecker, - oneOf: createEnumTypeChecker, - oneOfType: createUnionTypeChecker, - shape: createShapeTypeChecker - }; - - /** - * inlined Object.is polyfill to avoid requiring consumers ship their own - * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is - */ - /*eslint-disable no-self-compare*/ - function is(x, y) { - // SameValue algorithm - if (x === y) { - // Steps 1-5, 7-10 - // Steps 6.b-6.e: +0 != -0 - return x !== 0 || 1 / x === 1 / y; - } else { - // Step 6.a: NaN == NaN - return x !== x && y !== y; - } - } - /*eslint-enable no-self-compare*/ - - /** - * We use an Error-like object for backward compatibility as people may call - * PropTypes directly and inspect their output. However, we don't use real - * Errors anymore. We don't inspect their stack anyway, and creating them - * is prohibitively expensive if they are created too often, such as what - * happens in oneOfType() for any type before the one that matched. - */ - function PropTypeError(message) { - this.message = message; - this.stack = ''; - } - // Make `instanceof Error` still work for returned errors. - PropTypeError.prototype = Error.prototype; - - function createChainableTypeChecker(validate) { - if (process.env.NODE_ENV !== 'production') { - var manualPropTypeCallCache = {}; - var manualPropTypeWarningCount = 0; - } - function checkType(isRequired, props, propName, componentName, location, propFullName, secret) { - componentName = componentName || ANONYMOUS; - propFullName = propFullName || propName; - - if (secret !== ReactPropTypesSecret) { - if (throwOnDirectAccess) { - // New behavior only for users of `prop-types` package - invariant( - false, - 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' + - 'Use `PropTypes.checkPropTypes()` to call them. ' + - 'Read more at http://fb.me/use-check-prop-types' - ); - } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') { - // Old behavior for people using React.PropTypes - var cacheKey = componentName + ':' + propName; - if ( - !manualPropTypeCallCache[cacheKey] && - // Avoid spamming the console because they are often not actionable except for lib authors - manualPropTypeWarningCount < 3 - ) { - warning( - false, - 'You are manually calling a React.PropTypes validation ' + - 'function for the `%s` prop on `%s`. This is deprecated ' + - 'and will throw in the standalone `prop-types` package. ' + - 'You may be seeing this warning due to a third-party PropTypes ' + - 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.', - propFullName, - componentName - ); - manualPropTypeCallCache[cacheKey] = true; - manualPropTypeWarningCount++; + if (props[propName] == null) { + if (isRequired) { + if (props[propName] === null) { + return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.')); + } + + return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.')); + } + + return null; + } else { + return validate(props, propName, componentName, location, propFullName); + } + } + + var chainedCheckType = checkType.bind(null, false); + chainedCheckType.isRequired = checkType.bind(null, true); + return chainedCheckType; } - } - } - if (props[propName] == null) { - if (isRequired) { - if (props[propName] === null) { - return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.')); + + function createPrimitiveTypeChecker(expectedType) { + function validate(props, propName, componentName, location, propFullName, secret) { + var propValue = props[propName]; + var propType = getPropType(propValue); + + if (propType !== expectedType) { + // `propValue` being instance of, say, date/regexp, pass the 'object' + // check, but we can offer a more precise error message here rather than + // 'of type `object`'. + var preciseType = getPreciseType(propValue); + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.')); + } + + return null; + } + + return createChainableTypeChecker(validate); } - return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.')); - } - return null; - } else { - return validate(props, propName, componentName, location, propFullName); - } - } - var chainedCheckType = checkType.bind(null, false); - chainedCheckType.isRequired = checkType.bind(null, true); + function createAnyTypeChecker() { + return createChainableTypeChecker(emptyFunction.thatReturnsNull); + } - return chainedCheckType; - } + function createArrayOfTypeChecker(typeChecker) { + function validate(props, propName, componentName, location, propFullName) { + if (typeof typeChecker !== 'function') { + return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.'); + } - function createPrimitiveTypeChecker(expectedType) { - function validate(props, propName, componentName, location, propFullName, secret) { - var propValue = props[propName]; - var propType = getPropType(propValue); - if (propType !== expectedType) { - // `propValue` being instance of, say, date/regexp, pass the 'object' - // check, but we can offer a more precise error message here rather than - // 'of type `object`'. - var preciseType = getPreciseType(propValue); - - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.')); - } - return null; - } - return createChainableTypeChecker(validate); - } + var propValue = props[propName]; - function createAnyTypeChecker() { - return createChainableTypeChecker(emptyFunction.thatReturnsNull); - } + if (!Array.isArray(propValue)) { + var propType = getPropType(propValue); + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.')); + } - function createArrayOfTypeChecker(typeChecker) { - function validate(props, propName, componentName, location, propFullName) { - if (typeof typeChecker !== 'function') { - return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.'); - } - var propValue = props[propName]; - if (!Array.isArray(propValue)) { - var propType = getPropType(propValue); - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.')); - } - for (var i = 0; i < propValue.length; i++) { - var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret); - if (error instanceof Error) { - return error; - } - } - return null; - } - return createChainableTypeChecker(validate); - } + for (var i = 0; i < propValue.length; i++) { + var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret); - function createElementTypeChecker() { - function validate(props, propName, componentName, location, propFullName) { - var propValue = props[propName]; - if (!isValidElement(propValue)) { - var propType = getPropType(propValue); - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.')); - } - return null; - } - return createChainableTypeChecker(validate); - } + if (error instanceof Error) { + return error; + } + } - function createInstanceTypeChecker(expectedClass) { - function validate(props, propName, componentName, location, propFullName) { - if (!(props[propName] instanceof expectedClass)) { - var expectedClassName = expectedClass.name || ANONYMOUS; - var actualClassName = getClassName(props[propName]); - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.')); - } - return null; - } - return createChainableTypeChecker(validate); - } + return null; + } - function createEnumTypeChecker(expectedValues) { - if (!Array.isArray(expectedValues)) { - process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOf, expected an instance of array.') : void 0; - return emptyFunction.thatReturnsNull; - } + return createChainableTypeChecker(validate); + } - function validate(props, propName, componentName, location, propFullName) { - var propValue = props[propName]; - for (var i = 0; i < expectedValues.length; i++) { - if (is(propValue, expectedValues[i])) { - return null; - } - } + function createElementTypeChecker() { + function validate(props, propName, componentName, location, propFullName) { + var propValue = props[propName]; - var valuesString = JSON.stringify(expectedValues); - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.')); - } - return createChainableTypeChecker(validate); - } + if (!isValidElement(propValue)) { + var propType = getPropType(propValue); + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.')); + } - function createObjectOfTypeChecker(typeChecker) { - function validate(props, propName, componentName, location, propFullName) { - if (typeof typeChecker !== 'function') { - return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.'); - } - var propValue = props[propName]; - var propType = getPropType(propValue); - if (propType !== 'object') { - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.')); - } - for (var key in propValue) { - if (propValue.hasOwnProperty(key)) { - var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret); - if (error instanceof Error) { - return error; + return null; + } + + return createChainableTypeChecker(validate); } - } - } - return null; - } - return createChainableTypeChecker(validate); - } - function createUnionTypeChecker(arrayOfTypeCheckers) { - if (!Array.isArray(arrayOfTypeCheckers)) { - process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOfType, expected an instance of array.') : void 0; - return emptyFunction.thatReturnsNull; - } - - for (var i = 0; i < arrayOfTypeCheckers.length; i++) { - var checker = arrayOfTypeCheckers[i]; - if (typeof checker !== 'function') { - warning( - false, - 'Invalid argument supplid to oneOfType. Expected an array of check functions, but ' + - 'received %s at index %s.', - getPostfixForTypeWarning(checker), - i - ); - return emptyFunction.thatReturnsNull; - } - } + function createInstanceTypeChecker(expectedClass) { + function validate(props, propName, componentName, location, propFullName) { + if (!(props[propName] instanceof expectedClass)) { + var expectedClassName = expectedClass.name || ANONYMOUS; + var actualClassName = getClassName(props[propName]); + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.')); + } - function validate(props, propName, componentName, location, propFullName) { - for (var i = 0; i < arrayOfTypeCheckers.length; i++) { - var checker = arrayOfTypeCheckers[i]; - if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) { - return null; - } - } + return null; + } - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.')); - } - return createChainableTypeChecker(validate); - } + return createChainableTypeChecker(validate); + } - function createNodeChecker() { - function validate(props, propName, componentName, location, propFullName) { - if (!isNode(props[propName])) { - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.')); - } - return null; - } - return createChainableTypeChecker(validate); - } + function createEnumTypeChecker(expectedValues) { + if (!Array.isArray(expectedValues)) { + process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOf, expected an instance of array.') : void 0; + return emptyFunction.thatReturnsNull; + } - function createShapeTypeChecker(shapeTypes) { - function validate(props, propName, componentName, location, propFullName) { - var propValue = props[propName]; - var propType = getPropType(propValue); - if (propType !== 'object') { - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.')); - } - for (var key in shapeTypes) { - var checker = shapeTypes[key]; - if (!checker) { - continue; - } - var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret); - if (error) { - return error; - } - } - return null; - } - return createChainableTypeChecker(validate); - } + function validate(props, propName, componentName, location, propFullName) { + var propValue = props[propName]; - function isNode(propValue) { - switch (typeof propValue) { - case 'number': - case 'string': - case 'undefined': - return true; - case 'boolean': - return !propValue; - case 'object': - if (Array.isArray(propValue)) { - return propValue.every(isNode); - } - if (propValue === null || isValidElement(propValue)) { - return true; - } - - var iteratorFn = getIteratorFn(propValue); - if (iteratorFn) { - var iterator = iteratorFn.call(propValue); - var step; - if (iteratorFn !== propValue.entries) { - while (!(step = iterator.next()).done) { - if (!isNode(step.value)) { - return false; + for (var i = 0; i < expectedValues.length; i++) { + if (is(propValue, expectedValues[i])) { + return null; + } } + + var valuesString = JSON.stringify(expectedValues); + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.')); } - } else { - // Iterator will provide entry [k,v] tuples rather than values. - while (!(step = iterator.next()).done) { - var entry = step.value; - if (entry) { - if (!isNode(entry[1])) { - return false; + + return createChainableTypeChecker(validate); + } + + function createObjectOfTypeChecker(typeChecker) { + function validate(props, propName, componentName, location, propFullName) { + if (typeof typeChecker !== 'function') { + return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.'); + } + + var propValue = props[propName]; + var propType = getPropType(propValue); + + if (propType !== 'object') { + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.')); + } + + for (var key in propValue) { + if (propValue.hasOwnProperty(key)) { + var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret); + + if (error instanceof Error) { + return error; + } } } + + return null; } + + return createChainableTypeChecker(validate); } - } else { - return false; - } - return true; - default: - return false; - } - } + function createUnionTypeChecker(arrayOfTypeCheckers) { + if (!Array.isArray(arrayOfTypeCheckers)) { + process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOfType, expected an instance of array.') : void 0; + return emptyFunction.thatReturnsNull; + } - function isSymbol(propType, propValue) { - // Native Symbol. - if (propType === 'symbol') { - return true; - } + for (var i = 0; i < arrayOfTypeCheckers.length; i++) { + var checker = arrayOfTypeCheckers[i]; - // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol' - if (propValue['@@toStringTag'] === 'Symbol') { - return true; - } + if (typeof checker !== 'function') { + warning(false, 'Invalid argument supplid to oneOfType. Expected an array of check functions, but ' + 'received %s at index %s.', getPostfixForTypeWarning(checker), i); + return emptyFunction.thatReturnsNull; + } + } - // Fallback for non-spec compliant Symbols which are polyfilled. - if (typeof Symbol === 'function' && propValue instanceof Symbol) { - return true; - } + function validate(props, propName, componentName, location, propFullName) { + for (var i = 0; i < arrayOfTypeCheckers.length; i++) { + var checker = arrayOfTypeCheckers[i]; - return false; - } + if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) { + return null; + } + } - // Equivalent of `typeof` but with special handling for array and regexp. - function getPropType(propValue) { - var propType = typeof propValue; - if (Array.isArray(propValue)) { - return 'array'; - } - if (propValue instanceof RegExp) { - // Old webkits (at least until Android 4.0) return 'function' rather than - // 'object' for typeof a RegExp. We'll normalize this here so that /bla/ - // passes PropTypes.object. - return 'object'; - } - if (isSymbol(propType, propValue)) { - return 'symbol'; - } - return propType; - } + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.')); + } - // This handles more types than `getPropType`. Only used for error messages. - // See `createPrimitiveTypeChecker`. - function getPreciseType(propValue) { - if (typeof propValue === 'undefined' || propValue === null) { - return '' + propValue; - } - var propType = getPropType(propValue); - if (propType === 'object') { - if (propValue instanceof Date) { - return 'date'; - } else if (propValue instanceof RegExp) { - return 'regexp'; - } - } - return propType; - } + return createChainableTypeChecker(validate); + } - // Returns a string that is postfixed to a warning about an invalid type. - // For example, "undefined" or "of type array" - function getPostfixForTypeWarning(value) { - var type = getPreciseType(value); - switch (type) { - case 'array': - case 'object': - return 'an ' + type; - case 'boolean': - case 'date': - case 'regexp': - return 'a ' + type; - default: - return type; - } - } + function createNodeChecker() { + function validate(props, propName, componentName, location, propFullName) { + if (!isNode(props[propName])) { + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.')); + } - // Returns class name of the object, if any. - function getClassName(propValue) { - if (!propValue.constructor || !propValue.constructor.name) { - return ANONYMOUS; - } - return propValue.constructor.name; - } + return null; + } + + return createChainableTypeChecker(validate); + } - ReactPropTypes.checkPropTypes = checkPropTypes; - ReactPropTypes.PropTypes = ReactPropTypes; + function createShapeTypeChecker(shapeTypes) { + function validate(props, propName, componentName, location, propFullName) { + var propValue = props[propName]; + var propType = getPropType(propValue); - return ReactPropTypes; -}; + if (propType !== 'object') { + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.')); + } -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(2))) + for (var key in shapeTypes) { + var checker = shapeTypes[key]; -/***/ }), -/* 15 */ -/***/ (function(module, exports, __webpack_require__) { + if (!checker) { + continue; + } -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) {/** - * Copyright 2013-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 (process.env.NODE_ENV !== 'production') { - var invariant = __webpack_require__(5); - var warning = __webpack_require__(8); - var ReactPropTypesSecret = __webpack_require__(6); - var loggedTypeFailures = {}; -} - -/** - * Assert that the values match with the type specs. - * Error messages are memorized and will only be shown once. - * - * @param {object} typeSpecs Map of name to a ReactPropType - * @param {object} values Runtime values that need to be type-checked - * @param {string} location e.g. "prop", "context", "child context" - * @param {string} componentName Name of the component for error messages. - * @param {?Function} getStack Returns the component stack. - * @private - */ -function checkPropTypes(typeSpecs, values, location, componentName, getStack) { - if (process.env.NODE_ENV !== 'production') { - for (var typeSpecName in typeSpecs) { - if (typeSpecs.hasOwnProperty(typeSpecName)) { - var error; - // Prop type validation may throw. In case they do, we don't want to - // fail the render phase where it didn't fail before. So we log it. - // After these have been cleaned up, we'll let them throw. - try { - // This is intentionally an invariant that gets caught. It's the same - // behavior as without this statement except with a better message. - invariant(typeof typeSpecs[typeSpecName] === 'function', '%s: %s type `%s` is invalid; it must be a function, usually from ' + 'React.PropTypes.', componentName || 'React class', location, typeSpecName); - error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret); - } catch (ex) { - error = ex; + var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret); + + if (error) { + return error; + } + } + + return null; + } + + return createChainableTypeChecker(validate); + } + + function isNode(propValue) { + switch (_typeof(propValue)) { + case 'number': + case 'string': + case 'undefined': + return true; + + case 'boolean': + return !propValue; + + case 'object': + if (Array.isArray(propValue)) { + return propValue.every(isNode); + } + + if (propValue === null || isValidElement(propValue)) { + return true; + } + + var iteratorFn = getIteratorFn(propValue); + + if (iteratorFn) { + var iterator = iteratorFn.call(propValue); + var step; + + if (iteratorFn !== propValue.entries) { + while (!(step = iterator.next()).done) { + if (!isNode(step.value)) { + return false; + } + } + } else { + // Iterator will provide entry [k,v] tuples rather than values. + while (!(step = iterator.next()).done) { + var entry = step.value; + + if (entry) { + if (!isNode(entry[1])) { + return false; + } + } + } + } + } else { + return false; + } + + return true; + + default: + return false; + } + } + + function isSymbol(propType, propValue) { + // Native Symbol. + if (propType === 'symbol') { + return true; + } // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol' + + + if (propValue['@@toStringTag'] === 'Symbol') { + return true; + } // Fallback for non-spec compliant Symbols which are polyfilled. + + + if (typeof Symbol === 'function' && propValue instanceof Symbol) { + return true; + } + + return false; + } // Equivalent of `typeof` but with special handling for array and regexp. + + + function getPropType(propValue) { + var propType = _typeof(propValue); + + if (Array.isArray(propValue)) { + return 'array'; + } + + if (propValue instanceof RegExp) { + // Old webkits (at least until Android 4.0) return 'function' rather than + // 'object' for typeof a RegExp. We'll normalize this here so that /bla/ + // passes PropTypes.object. + return 'object'; + } + + if (isSymbol(propType, propValue)) { + return 'symbol'; + } + + return propType; + } // This handles more types than `getPropType`. Only used for error messages. + // See `createPrimitiveTypeChecker`. + + + function getPreciseType(propValue) { + if (typeof propValue === 'undefined' || propValue === null) { + return '' + propValue; + } + + var propType = getPropType(propValue); + + if (propType === 'object') { + if (propValue instanceof Date) { + return 'date'; + } else if (propValue instanceof RegExp) { + return 'regexp'; + } + } + + return propType; + } // Returns a string that is postfixed to a warning about an invalid type. + // For example, "undefined" or "of type array" + + + function getPostfixForTypeWarning(value) { + var type = getPreciseType(value); + + switch (type) { + case 'array': + case 'object': + return 'an ' + type; + + case 'boolean': + case 'date': + case 'regexp': + return 'a ' + type; + + default: + return type; + } + } // Returns class name of the object, if any. + + + function getClassName(propValue) { + if (!propValue.constructor || !propValue.constructor.name) { + return ANONYMOUS; + } + + return propValue.constructor.name; + } + + ReactPropTypes.checkPropTypes = checkPropTypes; + ReactPropTypes.PropTypes = ReactPropTypes; + return ReactPropTypes; + }; + /* WEBPACK VAR INJECTION */ + + }).call(exports, __webpack_require__(2)); + /***/ + }, + /* 15 */ + + /***/ + function (module, exports, __webpack_require__) { + "use strict"; + /* WEBPACK VAR INJECTION */ + + (function (process) { + /** + * Copyright 2013-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 (process.env.NODE_ENV !== 'production') { + var invariant = __webpack_require__(5); + + var warning = __webpack_require__(8); + + var ReactPropTypesSecret = __webpack_require__(6); + + var loggedTypeFailures = {}; } - 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); - if (error instanceof Error && !(error.message in loggedTypeFailures)) { - // Only monitor this failure once because there tends to be a lot of the - // same error. - loggedTypeFailures[error.message] = true; + /** + * Assert that the values match with the type specs. + * Error messages are memorized and will only be shown once. + * + * @param {object} typeSpecs Map of name to a ReactPropType + * @param {object} values Runtime values that need to be type-checked + * @param {string} location e.g. "prop", "context", "child context" + * @param {string} componentName Name of the component for error messages. + * @param {?Function} getStack Returns the component stack. + * @private + */ + + + function checkPropTypes(typeSpecs, values, location, componentName, getStack) { + if (process.env.NODE_ENV !== 'production') { + for (var typeSpecName in typeSpecs) { + if (typeSpecs.hasOwnProperty(typeSpecName)) { + var error; // Prop type validation may throw. In case they do, we don't want to + // fail the render phase where it didn't fail before. So we log it. + // After these have been cleaned up, we'll let them throw. + + try { + // This is intentionally an invariant that gets caught. It's the same + // behavior as without this statement except with a better message. + invariant(typeof typeSpecs[typeSpecName] === 'function', '%s: %s type `%s` is invalid; it must be a function, usually from ' + 'React.PropTypes.', componentName || 'React class', location, typeSpecName); + error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret); + } catch (ex) { + error = ex; + } - var stack = getStack ? getStack() : ''; + 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)); - warning(false, 'Failed %s type: %s%s', location, error.message, stack != null ? stack : ''); + if (error instanceof Error && !(error.message in loggedTypeFailures)) { + // Only monitor this failure once because there tends to be a lot of the + // same error. + loggedTypeFailures[error.message] = true; + var stack = getStack ? getStack() : ''; + warning(false, 'Failed %s type: %s%s', location, error.message, stack != null ? stack : ''); + } + } + } + } } - } - } - } -} -module.exports = checkPropTypes; + module.exports = checkPropTypes; + /* WEBPACK VAR INJECTION */ + }).call(exports, __webpack_require__(2)); + /***/ + }, + /* 16 */ + + /***/ + function (module, exports, __webpack_require__) { + "use strict"; + /** + * Copyright 2013-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. + */ + + var emptyFunction = __webpack_require__(4); + + var invariant = __webpack_require__(5); + + var ReactPropTypesSecret = __webpack_require__(6); + + module.exports = function () { + function shim(props, propName, componentName, location, propFullName, secret) { + if (secret === ReactPropTypesSecret) { + // It is still safe when called from React. + return; + } -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(2))) + invariant(false, 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' + 'Use PropTypes.checkPropTypes() to call them. ' + 'Read more at http://fb.me/use-check-prop-types'); + } -/***/ }), -/* 16 */ -/***/ (function(module, exports, __webpack_require__) { + ; + shim.isRequired = shim; -"use strict"; -/** - * Copyright 2013-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. - */ - - - -var emptyFunction = __webpack_require__(4); -var invariant = __webpack_require__(5); -var ReactPropTypesSecret = __webpack_require__(6); - -module.exports = function() { - function shim(props, propName, componentName, location, propFullName, secret) { - if (secret === ReactPropTypesSecret) { - // It is still safe when called from React. - return; - } - invariant( - false, - 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' + - 'Use PropTypes.checkPropTypes() to call them. ' + - 'Read more at http://fb.me/use-check-prop-types' - ); - }; - shim.isRequired = shim; - function getShim() { - return shim; - }; - // Important! - // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`. - var ReactPropTypes = { - array: shim, - bool: shim, - func: shim, - number: shim, - object: shim, - string: shim, - symbol: shim, - - any: shim, - arrayOf: getShim, - element: shim, - instanceOf: getShim, - node: shim, - objectOf: getShim, - oneOf: getShim, - oneOfType: getShim, - shape: getShim - }; - - ReactPropTypes.checkPropTypes = emptyFunction; - ReactPropTypes.PropTypes = ReactPropTypes; - - return ReactPropTypes; -}; + function getShim() { + return shim; + } + ; // Important! + // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`. + + var ReactPropTypes = { + array: shim, + bool: shim, + func: shim, + number: shim, + object: shim, + string: shim, + symbol: shim, + any: shim, + arrayOf: getShim, + element: shim, + instanceOf: getShim, + node: shim, + objectOf: getShim, + oneOf: getShim, + oneOfType: getShim, + shape: getShim + }; + ReactPropTypes.checkPropTypes = emptyFunction; + ReactPropTypes.PropTypes = ReactPropTypes; + return ReactPropTypes; + }; + /***/ -/***/ }), -/* 17 */ -/***/ (function(module, exports, __webpack_require__) { + }, + /* 17 */ -"use strict"; + /***/ + function (module, exports, __webpack_require__) { + "use strict"; + Object.defineProperty(exports, "__esModule", { + value: true + }); -Object.defineProperty(exports, "__esModule", { - value: true -}); + var _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); + } + } -var _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; }; }(); + return function (Constructor, protoProps, staticProps) { + if (protoProps) defineProperties(Constructor.prototype, protoProps); + if (staticProps) defineProperties(Constructor, staticProps); + return Constructor; + }; + }(); + + var _propTypes = __webpack_require__(0); -var _propTypes = __webpack_require__(0); + var _propTypes2 = _interopRequireDefault(_propTypes); -var _propTypes2 = _interopRequireDefault(_propTypes); + var _react = __webpack_require__(1); -var _react = __webpack_require__(1); + var _react2 = _interopRequireDefault(_react); -var _react2 = _interopRequireDefault(_react); + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; + } -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + function _possibleConstructorReturn(self, call) { + if (!self) { + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + } -function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + return call && (_typeof(call) === "object" || typeof call === "function") ? call : self; + } -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + function _inherits(subClass, superClass) { + if (typeof superClass !== "function" && superClass !== null) { + throw new TypeError("Super expression must either be null or a function, not " + _typeof(superClass)); + } -var SparklinesText = function (_React$Component) { - _inherits(SparklinesText, _React$Component); + subClass.prototype = Object.create(superClass && superClass.prototype, { + constructor: { + value: subClass, + enumerable: false, + writable: true, + configurable: true + } + }); + if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; + } - function SparklinesText() { - _classCallCheck(this, SparklinesText); + var SparklinesText = function (_React$Component) { + _inherits(SparklinesText, _React$Component); - return _possibleConstructorReturn(this, (SparklinesText.__proto__ || Object.getPrototypeOf(SparklinesText)).apply(this, arguments)); - } + function SparklinesText() { + _classCallCheck(this, SparklinesText); - _createClass(SparklinesText, [{ - key: 'render', - value: function render() { + return _possibleConstructorReturn(this, (SparklinesText.__proto__ || Object.getPrototypeOf(SparklinesText)).apply(this, arguments)); + } + + _createClass(SparklinesText, [{ + key: 'render', + value: function render() { var _props = this.props, point = _props.point, text = _props.text, @@ -1451,191 +1826,271 @@ var SparklinesText = function (_React$Component) { fontFamily = _props.fontFamily; var x = point.x, y = point.y; + return _react2.default.createElement('g', null, _react2.default.createElement('text', { + x: x, + y: y, + fontFamily: fontFamily || "Verdana", + fontSize: fontSize || 10 + }, text)); + } + }]); - return _react2.default.createElement( - 'g', - null, - _react2.default.createElement( - 'text', - { x: x, y: y, fontFamily: fontFamily || "Verdana", fontSize: fontSize || 10 }, - text - ) - ); - } - }]); - - return SparklinesText; -}(_react2.default.Component); - -SparklinesText.propTypes = { - text: _propTypes2.default.string, - point: _propTypes2.default.object, - fontSize: _propTypes2.default.number, - fontFamily: _propTypes2.default.string -}; -SparklinesText.defaultProps = { - text: '', - point: { x: 0, y: 0 } -}; -exports.default = SparklinesText; + return SparklinesText; + }(_react2.default.Component); -/***/ }), -/* 18 */ -/***/ (function(module, exports, __webpack_require__) { + SparklinesText.propTypes = { + text: _propTypes2.default.string, + point: _propTypes2.default.object, + fontSize: _propTypes2.default.number, + fontFamily: _propTypes2.default.string + }; + SparklinesText.defaultProps = { + text: '', + point: { + x: 0, + y: 0 + } + }; + exports.default = SparklinesText; + /***/ + }, + /* 18 */ -"use strict"; + /***/ + function (module, exports, __webpack_require__) { + "use strict"; + Object.defineProperty(exports, "__esModule", { + value: true + }); -Object.defineProperty(exports, "__esModule", { - value: true -}); + var _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); + } + } -var _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; }; }(); + return function (Constructor, protoProps, staticProps) { + if (protoProps) defineProperties(Constructor.prototype, protoProps); + if (staticProps) defineProperties(Constructor, staticProps); + return Constructor; + }; + }(); + + var _propTypes = __webpack_require__(0); -var _propTypes = __webpack_require__(0); + var _propTypes2 = _interopRequireDefault(_propTypes); -var _propTypes2 = _interopRequireDefault(_propTypes); + var _react = __webpack_require__(1); -var _react = __webpack_require__(1); + var _react2 = _interopRequireDefault(_react); -var _react2 = _interopRequireDefault(_react); + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; + } -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + function _possibleConstructorReturn(self, call) { + if (!self) { + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + } -function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + return call && (_typeof(call) === "object" || typeof call === "function") ? call : self; + } -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + function _inherits(subClass, superClass) { + if (typeof superClass !== "function" && superClass !== null) { + throw new TypeError("Super expression must either be null or a function, not " + _typeof(superClass)); + } -var SparklinesLine = function (_React$Component) { - _inherits(SparklinesLine, _React$Component); + subClass.prototype = Object.create(superClass && superClass.prototype, { + constructor: { + value: subClass, + enumerable: false, + writable: true, + configurable: true + } + }); + if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; + } - function SparklinesLine() { - _classCallCheck(this, SparklinesLine); + var SparklinesLine = function (_React$Component) { + _inherits(SparklinesLine, _React$Component); - return _possibleConstructorReturn(this, (SparklinesLine.__proto__ || Object.getPrototypeOf(SparklinesLine)).apply(this, arguments)); - } + function SparklinesLine() { + _classCallCheck(this, SparklinesLine); - _createClass(SparklinesLine, [{ - key: 'render', - value: function render() { - var _props = this.props, - data = _props.data, - points = _props.points, - width = _props.width, - height = _props.height, - margin = _props.margin, - color = _props.color, - style = _props.style, - onMouseMove = _props.onMouseMove; - - - var linePoints = points.map(function (p) { - return [p.x, p.y]; - }).reduce(function (a, b) { - return a.concat(b); - }); + return _possibleConstructorReturn(this, (SparklinesLine.__proto__ || Object.getPrototypeOf(SparklinesLine)).apply(this, arguments)); + } - var closePolyPoints = [points[points.length - 1].x, height - margin, margin, height - margin, margin, points[0].y]; + _createClass(SparklinesLine, [{ + key: 'render', + value: function render() { + var _props = this.props, + data = _props.data, + points = _props.points, + width = _props.width, + height = _props.height, + margin = _props.margin, + color = _props.color, + style = _props.style, + onMouseMove = _props.onMouseMove; + var linePoints = points.map(function (p) { + return [p.x, p.y]; + }).reduce(function (a, b) { + return a.concat(b); + }); + var closePolyPoints = [points[points.length - 1].x, height - margin, margin, height - margin, margin, points[0].y]; + var fillPoints = linePoints.concat(closePolyPoints); + var lineStyle = { + stroke: color || style.stroke || 'slategray', + strokeWidth: style.strokeWidth || '1', + strokeLinejoin: style.strokeLinejoin || 'round', + strokeLinecap: style.strokeLinecap || 'round', + fill: 'none' + }; + var fillStyle = { + stroke: style.stroke || 'none', + strokeWidth: '0', + fillOpacity: style.fillOpacity || '.1', + fill: style.fill || color || 'slategray', + pointerEvents: 'auto' + }; + var tooltips = points.map(function (p, i) { + return _react2.default.createElement('circle', { + key: i, + cx: p.x, + cy: p.y, + r: 2, + style: fillStyle, + onMouseEnter: function onMouseEnter(e) { + return onMouseMove('enter', data[i], p); + }, + onClick: function onClick(e) { + return onMouseMove('click', data[i], p); + } + }); + }); + return _react2.default.createElement('g', null, tooltips, _react2.default.createElement('polyline', { + points: fillPoints.join(' '), + style: fillStyle + }), _react2.default.createElement('polyline', { + points: linePoints.join(' '), + style: lineStyle + })); + } + }]); - var fillPoints = linePoints.concat(closePolyPoints); + return SparklinesLine; + }(_react2.default.Component); - var lineStyle = { - stroke: color || style.stroke || 'slategray', - strokeWidth: style.strokeWidth || '1', - strokeLinejoin: style.strokeLinejoin || 'round', - strokeLinecap: style.strokeLinecap || 'round', - fill: 'none' + SparklinesLine.propTypes = { + color: _propTypes2.default.string, + style: _propTypes2.default.object }; - var fillStyle = { - stroke: style.stroke || 'none', - strokeWidth: '0', - fillOpacity: style.fillOpacity || '.1', - fill: style.fill || color || 'slategray', - pointerEvents: 'auto' + SparklinesLine.defaultProps = { + style: {}, + onMouseMove: function onMouseMove() {} }; + exports.default = SparklinesLine; + /***/ + }, + /* 19 */ - var tooltips = points.map(function (p, i) { - return _react2.default.createElement('circle', { - key: i, - cx: p.x, - cy: p.y, - r: 2, - style: fillStyle, - onMouseEnter: function onMouseEnter(e) { - return onMouseMove('enter', data[i], p); - }, - onClick: function onClick(e) { - return onMouseMove('click', data[i], p); - } - }); - }); - - return _react2.default.createElement( - 'g', - null, - tooltips, - _react2.default.createElement('polyline', { points: fillPoints.join(' '), style: fillStyle }), - _react2.default.createElement('polyline', { points: linePoints.join(' '), style: lineStyle }) - ); - } - }]); - - return SparklinesLine; -}(_react2.default.Component); - -SparklinesLine.propTypes = { - color: _propTypes2.default.string, - style: _propTypes2.default.object -}; -SparklinesLine.defaultProps = { - style: {}, - onMouseMove: function onMouseMove() {} -}; -exports.default = SparklinesLine; + /***/ + function (module, exports, __webpack_require__) { + "use strict"; -/***/ }), -/* 19 */ -/***/ (function(module, exports, __webpack_require__) { + Object.defineProperty(exports, "__esModule", { + value: true + }); -"use strict"; + var _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; + }; + }(); -Object.defineProperty(exports, "__esModule", { - value: true -}); + var _propTypes = __webpack_require__(0); -var _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; }; }(); + var _propTypes2 = _interopRequireDefault(_propTypes); -var _propTypes = __webpack_require__(0); + var _react = __webpack_require__(1); -var _propTypes2 = _interopRequireDefault(_propTypes); + var _react2 = _interopRequireDefault(_react); -var _react = __webpack_require__(1); + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; + } -var _react2 = _interopRequireDefault(_react); + function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + function _possibleConstructorReturn(self, call) { + if (!self) { + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + } -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + return call && (_typeof(call) === "object" || typeof call === "function") ? call : self; + } -function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + function _inherits(subClass, superClass) { + if (typeof superClass !== "function" && superClass !== null) { + throw new TypeError("Super expression must either be null or a function, not " + _typeof(superClass)); + } -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + subClass.prototype = Object.create(superClass && superClass.prototype, { + constructor: { + value: subClass, + enumerable: false, + writable: true, + configurable: true + } + }); + if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; + } -var SparklinesCurve = function (_React$Component) { - _inherits(SparklinesCurve, _React$Component); + var SparklinesCurve = function (_React$Component) { + _inherits(SparklinesCurve, _React$Component); - function SparklinesCurve() { - _classCallCheck(this, SparklinesCurve); + function SparklinesCurve() { + _classCallCheck(this, SparklinesCurve); - return _possibleConstructorReturn(this, (SparklinesCurve.__proto__ || Object.getPrototypeOf(SparklinesCurve)).apply(this, arguments)); - } + return _possibleConstructorReturn(this, (SparklinesCurve.__proto__ || Object.getPrototypeOf(SparklinesCurve)).apply(this, arguments)); + } - _createClass(SparklinesCurve, [{ - key: 'render', - value: function render() { + _createClass(SparklinesCurve, [{ + key: 'render', + value: function render() { var _props = this.props, points = _props.points, width = _props.width, @@ -1645,214 +2100,295 @@ var SparklinesCurve = function (_React$Component) { style = _props.style, _props$divisor = _props.divisor, divisor = _props$divisor === undefined ? 0.25 : _props$divisor; - var prev = void 0; + var curve = function curve(p) { - var res = void 0; - if (!prev) { - res = [p.x, p.y]; - } else { - var len = (p.x - prev.x) * divisor; - res = ["C", - //x1 - prev.x + len, - //y1 - prev.y, - //x2, - p.x - len, - //y2, - p.y, - //x, - p.x, - //y - p.y]; - } - prev = p; - return res; + var res = void 0; + + if (!prev) { + res = [p.x, p.y]; + } else { + var len = (p.x - prev.x) * divisor; + res = ["C", //x1 + prev.x + len, //y1 + prev.y, //x2, + p.x - len, //y2, + p.y, //x, + p.x, //y + p.y]; + } + + prev = p; + return res; }; + var linePoints = points.map(function (p) { - return curve(p); + return curve(p); }).reduce(function (a, b) { - return a.concat(b); + return a.concat(b); }); var closePolyPoints = ["L" + points[points.length - 1].x, height - margin, margin, height - margin, margin, points[0].y]; var fillPoints = linePoints.concat(closePolyPoints); - var lineStyle = { - stroke: color || style.stroke || 'slategray', - strokeWidth: style.strokeWidth || '1', - strokeLinejoin: style.strokeLinejoin || 'round', - strokeLinecap: style.strokeLinecap || 'round', - fill: 'none' + stroke: color || style.stroke || 'slategray', + strokeWidth: style.strokeWidth || '1', + strokeLinejoin: style.strokeLinejoin || 'round', + strokeLinecap: style.strokeLinecap || 'round', + fill: 'none' }; var fillStyle = { - stroke: style.stroke || 'none', - strokeWidth: '0', - fillOpacity: style.fillOpacity || '.1', - fill: style.fill || color || 'slategray' + stroke: style.stroke || 'none', + strokeWidth: '0', + fillOpacity: style.fillOpacity || '.1', + fill: style.fill || color || 'slategray' }; + return _react2.default.createElement('g', null, _react2.default.createElement('path', { + d: "M" + fillPoints.join(' '), + style: fillStyle + }), _react2.default.createElement('path', { + d: "M" + linePoints.join(' '), + style: lineStyle + })); + } + }]); - return _react2.default.createElement( - 'g', - null, - _react2.default.createElement('path', { d: "M" + fillPoints.join(' '), style: fillStyle }), - _react2.default.createElement('path', { d: "M" + linePoints.join(' '), style: lineStyle }) - ); - } - }]); + return SparklinesCurve; + }(_react2.default.Component); - return SparklinesCurve; -}(_react2.default.Component); + SparklinesCurve.propTypes = { + color: _propTypes2.default.string, + style: _propTypes2.default.object + }; + SparklinesCurve.defaultProps = { + style: {} + }; + exports.default = SparklinesCurve; + /***/ + }, + /* 20 */ -SparklinesCurve.propTypes = { - color: _propTypes2.default.string, - style: _propTypes2.default.object -}; -SparklinesCurve.defaultProps = { - style: {} -}; -exports.default = SparklinesCurve; + /***/ + function (module, exports, __webpack_require__) { + "use strict"; -/***/ }), -/* 20 */ -/***/ (function(module, exports, __webpack_require__) { + Object.defineProperty(exports, "__esModule", { + value: true + }); -"use strict"; + var _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; + }; + }(); -Object.defineProperty(exports, "__esModule", { - value: true -}); + var _propTypes = __webpack_require__(0); -var _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; }; }(); + var _propTypes2 = _interopRequireDefault(_propTypes); -var _propTypes = __webpack_require__(0); + var _react = __webpack_require__(1); -var _propTypes2 = _interopRequireDefault(_propTypes); + var _react2 = _interopRequireDefault(_react); -var _react = __webpack_require__(1); + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; + } -var _react2 = _interopRequireDefault(_react); + function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + function _possibleConstructorReturn(self, call) { + if (!self) { + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + } -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + return call && (_typeof(call) === "object" || typeof call === "function") ? call : self; + } -function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + function _inherits(subClass, superClass) { + if (typeof superClass !== "function" && superClass !== null) { + throw new TypeError("Super expression must either be null or a function, not " + _typeof(superClass)); + } -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + subClass.prototype = Object.create(superClass && superClass.prototype, { + constructor: { + value: subClass, + enumerable: false, + writable: true, + configurable: true + } + }); + if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; + } -var SparklinesBars = function (_React$Component) { - _inherits(SparklinesBars, _React$Component); + var SparklinesBars = function (_React$Component) { + _inherits(SparklinesBars, _React$Component); - function SparklinesBars() { - _classCallCheck(this, SparklinesBars); + function SparklinesBars() { + _classCallCheck(this, SparklinesBars); - return _possibleConstructorReturn(this, (SparklinesBars.__proto__ || Object.getPrototypeOf(SparklinesBars)).apply(this, arguments)); - } + return _possibleConstructorReturn(this, (SparklinesBars.__proto__ || Object.getPrototypeOf(SparklinesBars)).apply(this, arguments)); + } - _createClass(SparklinesBars, [{ - key: 'render', - value: function render() { - var _this2 = this; - - var _props = this.props, - points = _props.points, - height = _props.height, - style = _props.style, - barWidth = _props.barWidth, - margin = _props.margin, - onMouseMove = _props.onMouseMove; - - var strokeWidth = 1 * (style && style.strokeWidth || 0); - var marginWidth = margin ? 2 * margin : 0; - var width = barWidth || (points && points.length >= 2 ? Math.max(0, points[1].x - points[0].x - strokeWidth - marginWidth) : 0); - - return _react2.default.createElement( - 'g', - { transform: 'scale(1,-1)' }, - points.map(function (p, i) { - return _react2.default.createElement('rect', { - key: i, - x: p.x - (width + strokeWidth) / 2, - y: -height, - width: width, - height: Math.max(0, height - p.y), - style: style, - onMouseMove: onMouseMove && onMouseMove.bind(_this2, p) - }); - }) - ); - } - }]); - - return SparklinesBars; -}(_react2.default.Component); - -SparklinesBars.propTypes = { - points: _propTypes2.default.arrayOf(_propTypes2.default.object), - height: _propTypes2.default.number, - style: _propTypes2.default.object, - barWidth: _propTypes2.default.number, - margin: _propTypes2.default.number, - onMouseMove: _propTypes2.default.func -}; -SparklinesBars.defaultProps = { - style: { fill: 'slategray' } -}; -exports.default = SparklinesBars; + _createClass(SparklinesBars, [{ + key: 'render', + value: function render() { + var _this2 = this; -/***/ }), -/* 21 */ -/***/ (function(module, exports, __webpack_require__) { + var _props = this.props, + points = _props.points, + height = _props.height, + style = _props.style, + barWidth = _props.barWidth, + margin = _props.margin, + onMouseMove = _props.onMouseMove; + var strokeWidth = 1 * (style && style.strokeWidth || 0); + var marginWidth = margin ? 2 * margin : 0; + var width = barWidth || (points && points.length >= 2 ? Math.max(0, points[1].x - points[0].x - strokeWidth - marginWidth) : 0); + return _react2.default.createElement('g', { + transform: 'scale(1,-1)' + }, points.map(function (p, i) { + return _react2.default.createElement('rect', { + key: i, + x: p.x - (width + strokeWidth) / 2, + y: -height, + width: width, + height: Math.max(0, height - p.y), + style: style, + onMouseMove: onMouseMove && onMouseMove.bind(_this2, p) + }); + })); + } + }]); + + return SparklinesBars; + }(_react2.default.Component); + + SparklinesBars.propTypes = { + points: _propTypes2.default.arrayOf(_propTypes2.default.object), + height: _propTypes2.default.number, + style: _propTypes2.default.object, + barWidth: _propTypes2.default.number, + margin: _propTypes2.default.number, + onMouseMove: _propTypes2.default.func + }; + SparklinesBars.defaultProps = { + style: { + fill: 'slategray' + } + }; + exports.default = SparklinesBars; + /***/ + }, + /* 21 */ -"use strict"; + /***/ + function (module, exports, __webpack_require__) { + "use strict"; + Object.defineProperty(exports, "__esModule", { + value: true + }); -Object.defineProperty(exports, "__esModule", { - value: true -}); + var _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; + }; + }(); -var _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; }; }(); + var _propTypes = __webpack_require__(0); -var _propTypes = __webpack_require__(0); + var _propTypes2 = _interopRequireDefault(_propTypes); -var _propTypes2 = _interopRequireDefault(_propTypes); + var _react = __webpack_require__(1); -var _react = __webpack_require__(1); + var _react2 = _interopRequireDefault(_react); -var _react2 = _interopRequireDefault(_react); + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; + } -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + function _possibleConstructorReturn(self, call) { + if (!self) { + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + } -function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + return call && (_typeof(call) === "object" || typeof call === "function") ? call : self; + } -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + function _inherits(subClass, superClass) { + if (typeof superClass !== "function" && superClass !== null) { + throw new TypeError("Super expression must either be null or a function, not " + _typeof(superClass)); + } -var SparklinesSpots = function (_React$Component) { - _inherits(SparklinesSpots, _React$Component); + subClass.prototype = Object.create(superClass && superClass.prototype, { + constructor: { + value: subClass, + enumerable: false, + writable: true, + configurable: true + } + }); + if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; + } - function SparklinesSpots() { - _classCallCheck(this, SparklinesSpots); + var SparklinesSpots = function (_React$Component) { + _inherits(SparklinesSpots, _React$Component); - return _possibleConstructorReturn(this, (SparklinesSpots.__proto__ || Object.getPrototypeOf(SparklinesSpots)).apply(this, arguments)); - } + function SparklinesSpots() { + _classCallCheck(this, SparklinesSpots); - _createClass(SparklinesSpots, [{ - key: 'lastDirection', - value: function lastDirection(points) { + return _possibleConstructorReturn(this, (SparklinesSpots.__proto__ || Object.getPrototypeOf(SparklinesSpots)).apply(this, arguments)); + } + _createClass(SparklinesSpots, [{ + key: 'lastDirection', + value: function lastDirection(points) { Math.sign = Math.sign || function (x) { - return x > 0 ? 1 : -1; + return x > 0 ? 1 : -1; }; return points.length < 2 ? 0 : Math.sign(points[points.length - 2].y - points[points.length - 1].y); - } - }, { - key: 'render', - value: function render() { + } + }, { + key: 'render', + value: function render() { var _props = this.props, points = _props.points, width = _props.width, @@ -1861,377 +2397,579 @@ var SparklinesSpots = function (_React$Component) { style = _props.style, spotColors = _props.spotColors; - var startSpot = _react2.default.createElement('circle', { - cx: points[0].x, - cy: points[0].y, - r: size, - style: style }); + cx: points[0].x, + cy: points[0].y, + r: size, + style: style + }); var endSpot = _react2.default.createElement('circle', { - cx: points[points.length - 1].x, - cy: points[points.length - 1].y, - r: size, - style: style || { fill: spotColors[this.lastDirection(points)] } }); - - return _react2.default.createElement( - 'g', - null, - style && startSpot, - endSpot - ); - } - }]); - - return SparklinesSpots; -}(_react2.default.Component); - -SparklinesSpots.propTypes = { - size: _propTypes2.default.number, - style: _propTypes2.default.object, - spotColors: _propTypes2.default.object -}; -SparklinesSpots.defaultProps = { - size: 2, - spotColors: { - '-1': 'red', - '0': 'black', - '1': 'green' - } -}; -exports.default = SparklinesSpots; + cx: points[points.length - 1].x, + cy: points[points.length - 1].y, + r: size, + style: style || { + fill: spotColors[this.lastDirection(points)] + } + }); -/***/ }), -/* 22 */ -/***/ (function(module, exports, __webpack_require__) { + return _react2.default.createElement('g', null, style && startSpot, endSpot); + } + }]); -"use strict"; + return SparklinesSpots; + }(_react2.default.Component); + + SparklinesSpots.propTypes = { + size: _propTypes2.default.number, + style: _propTypes2.default.object, + spotColors: _propTypes2.default.object + }; + SparklinesSpots.defaultProps = { + size: 2, + spotColors: { + '-1': 'red', + '0': 'black', + '1': 'green' + } + }; + exports.default = SparklinesSpots; + /***/ + }, + /* 22 */ + /***/ + function (module, exports, __webpack_require__) { + "use strict"; -Object.defineProperty(exports, "__esModule", { - value: true -}); + Object.defineProperty(exports, "__esModule", { + value: true + }); -var _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; }; }(); + var _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; + }; + }(); + + var _propTypes = __webpack_require__(0); + + var _propTypes2 = _interopRequireDefault(_propTypes); + + var _react = __webpack_require__(1); + + var _react2 = _interopRequireDefault(_react); -var _propTypes = __webpack_require__(0); + var _dataProcessing = __webpack_require__(23); -var _propTypes2 = _interopRequireDefault(_propTypes); + var dataProcessing = _interopRequireWildcard(_dataProcessing); -var _react = __webpack_require__(1); + function _interopRequireWildcard(obj) { + if (obj && obj.__esModule) { + return obj; + } else { + var newObj = {}; -var _react2 = _interopRequireDefault(_react); + if (obj != null) { + for (var key in obj) { + if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; + } + } -var _dataProcessing = __webpack_require__(23); + newObj.default = obj; + return newObj; + } + } -var dataProcessing = _interopRequireWildcard(_dataProcessing); + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; + } -function _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; } } + function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + function _possibleConstructorReturn(self, call) { + if (!self) { + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + } -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + return call && (_typeof(call) === "object" || typeof call === "function") ? call : self; + } -function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + function _inherits(subClass, superClass) { + if (typeof superClass !== "function" && superClass !== null) { + throw new TypeError("Super expression must either be null or a function, not " + _typeof(superClass)); + } -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + subClass.prototype = Object.create(superClass && superClass.prototype, { + constructor: { + value: subClass, + enumerable: false, + writable: true, + configurable: true + } + }); + if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; + } -var SparklinesReferenceLine = function (_React$Component) { - _inherits(SparklinesReferenceLine, _React$Component); + var SparklinesReferenceLine = function (_React$Component) { + _inherits(SparklinesReferenceLine, _React$Component); - function SparklinesReferenceLine() { - _classCallCheck(this, SparklinesReferenceLine); + function SparklinesReferenceLine() { + _classCallCheck(this, SparklinesReferenceLine); - return _possibleConstructorReturn(this, (SparklinesReferenceLine.__proto__ || Object.getPrototypeOf(SparklinesReferenceLine)).apply(this, arguments)); - } + return _possibleConstructorReturn(this, (SparklinesReferenceLine.__proto__ || Object.getPrototypeOf(SparklinesReferenceLine)).apply(this, arguments)); + } - _createClass(SparklinesReferenceLine, [{ - key: 'render', - value: function render() { + _createClass(SparklinesReferenceLine, [{ + key: 'render', + value: function render() { var _props = this.props, points = _props.points, margin = _props.margin, type = _props.type, style = _props.style, value = _props.value; - - var ypoints = points.map(function (p) { - return p.y; + return p.y; }); var y = type == 'custom' ? value : dataProcessing[type](ypoints); - return _react2.default.createElement('line', { - x1: points[0].x, y1: y + margin, - x2: points[points.length - 1].x, y2: y + margin, - style: style }); - } - }]); - - return SparklinesReferenceLine; -}(_react2.default.Component); - -SparklinesReferenceLine.propTypes = { - type: _propTypes2.default.oneOf(['max', 'min', 'mean', 'avg', 'median', 'custom']), - value: _propTypes2.default.number, - style: _propTypes2.default.object -}; -SparklinesReferenceLine.defaultProps = { - type: 'mean', - style: { stroke: 'red', strokeOpacity: .75, strokeDasharray: '2, 2' } -}; -exports.default = SparklinesReferenceLine; - -/***/ }), -/* 23 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.variance = exports.stdev = exports.median = exports.midRange = exports.avg = exports.mean = exports.max = exports.min = undefined; + x1: points[0].x, + y1: y + margin, + x2: points[points.length - 1].x, + y2: y + margin, + style: style + }); + } + }]); -var _min2 = __webpack_require__(7); + return SparklinesReferenceLine; + }(_react2.default.Component); -var _min3 = _interopRequireDefault(_min2); + SparklinesReferenceLine.propTypes = { + type: _propTypes2.default.oneOf(['max', 'min', 'mean', 'avg', 'median', 'custom']), + value: _propTypes2.default.number, + style: _propTypes2.default.object + }; + SparklinesReferenceLine.defaultProps = { + type: 'mean', + style: { + stroke: 'red', + strokeOpacity: .75, + strokeDasharray: '2, 2' + } + }; + exports.default = SparklinesReferenceLine; + /***/ + }, + /* 23 */ -var _mean2 = __webpack_require__(3); + /***/ + function (module, exports, __webpack_require__) { + "use strict"; -var _mean3 = _interopRequireDefault(_mean2); + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.variance = exports.stdev = exports.median = exports.midRange = exports.avg = exports.mean = exports.max = exports.min = undefined; -var _midRange2 = __webpack_require__(24); + var _min2 = __webpack_require__(7); -var _midRange3 = _interopRequireDefault(_midRange2); + var _min3 = _interopRequireDefault(_min2); -var _median2 = __webpack_require__(25); + var _mean2 = __webpack_require__(3); -var _median3 = _interopRequireDefault(_median2); + var _mean3 = _interopRequireDefault(_mean2); -var _stdev2 = __webpack_require__(10); + var _midRange2 = __webpack_require__(24); -var _stdev3 = _interopRequireDefault(_stdev2); + var _midRange3 = _interopRequireDefault(_midRange2); -var _variance2 = __webpack_require__(26); + var _median2 = __webpack_require__(25); -var _variance3 = _interopRequireDefault(_variance2); + var _median3 = _interopRequireDefault(_median2); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + var _stdev2 = __webpack_require__(10); -exports.min = _min3.default; -exports.max = _min3.default; -exports.mean = _mean3.default; -exports.avg = _mean3.default; -exports.midRange = _midRange3.default; -exports.median = _median3.default; -exports.stdev = _stdev3.default; -exports.variance = _variance3.default; + var _stdev3 = _interopRequireDefault(_stdev2); -/***/ }), -/* 24 */ -/***/ (function(module, exports, __webpack_require__) { + var _variance2 = __webpack_require__(26); -"use strict"; + var _variance3 = _interopRequireDefault(_variance2); + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; + } -Object.defineProperty(exports, "__esModule", { - value: true -}); + exports.min = _min3.default; + exports.max = _min3.default; + exports.mean = _mean3.default; + exports.avg = _mean3.default; + exports.midRange = _midRange3.default; + exports.median = _median3.default; + exports.stdev = _stdev3.default; + exports.variance = _variance3.default; + /***/ + }, + /* 24 */ + + /***/ + function (module, exports, __webpack_require__) { + "use strict"; + + Object.defineProperty(exports, "__esModule", { + value: true + }); -var _min = __webpack_require__(7); + var _min = __webpack_require__(7); -var _min2 = _interopRequireDefault(_min); + var _min2 = _interopRequireDefault(_min); -var _max = __webpack_require__(9); + var _max = __webpack_require__(9); -var _max2 = _interopRequireDefault(_max); + var _max2 = _interopRequireDefault(_max); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; + } -exports.default = function (data) { - return (0, _max2.default)(data) - (0, _min2.default)(data) / 2; -}; + exports.default = function (data) { + return (0, _max2.default)(data) - (0, _min2.default)(data) / 2; + }; + /***/ -/***/ }), -/* 25 */ -/***/ (function(module, exports, __webpack_require__) { + }, + /* 25 */ -"use strict"; + /***/ + function (module, exports, __webpack_require__) { + "use strict"; + Object.defineProperty(exports, "__esModule", { + value: true + }); -Object.defineProperty(exports, "__esModule", { - value: true -}); + exports.default = function (data) { + return data.sort(function (a, b) { + return a - b; + })[Math.floor(data.length / 2)]; + }; + /***/ -exports.default = function (data) { - return data.sort(function (a, b) { - return a - b; - })[Math.floor(data.length / 2)]; -}; + }, + /* 26 */ -/***/ }), -/* 26 */ -/***/ (function(module, exports, __webpack_require__) { + /***/ + function (module, exports, __webpack_require__) { + "use strict"; -"use strict"; + Object.defineProperty(exports, "__esModule", { + value: true + }); + var _mean = __webpack_require__(3); -Object.defineProperty(exports, "__esModule", { - value: true -}); + var _mean2 = _interopRequireDefault(_mean); -var _mean = __webpack_require__(3); + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; + } -var _mean2 = _interopRequireDefault(_mean); + exports.default = function (data) { + var dataMean = (0, _mean2.default)(data); + var sq = data.map(function (n) { + return Math.pow(n - dataMean, 2); + }); + return (0, _mean2.default)(sq); + }; + /***/ -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + }, + /* 27 */ -exports.default = function (data) { - var dataMean = (0, _mean2.default)(data); - var sq = data.map(function (n) { - return Math.pow(n - dataMean, 2); - }); - return (0, _mean2.default)(sq); -}; + /***/ + function (module, exports, __webpack_require__) { + "use strict"; -/***/ }), -/* 27 */ -/***/ (function(module, exports, __webpack_require__) { + Object.defineProperty(exports, "__esModule", { + value: true + }); -"use strict"; + var _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; + }; + }(); -Object.defineProperty(exports, "__esModule", { - value: true -}); + var _propTypes = __webpack_require__(0); -var _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; }; }(); + var _propTypes2 = _interopRequireDefault(_propTypes); -var _propTypes = __webpack_require__(0); + var _react = __webpack_require__(1); -var _propTypes2 = _interopRequireDefault(_propTypes); + var _react2 = _interopRequireDefault(_react); -var _react = __webpack_require__(1); + var _mean = __webpack_require__(3); -var _react2 = _interopRequireDefault(_react); + var _mean2 = _interopRequireDefault(_mean); -var _mean = __webpack_require__(3); + var _stdev = __webpack_require__(10); -var _mean2 = _interopRequireDefault(_mean); + var _stdev2 = _interopRequireDefault(_stdev); -var _stdev = __webpack_require__(10); + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; + } -var _stdev2 = _interopRequireDefault(_stdev); + function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + function _possibleConstructorReturn(self, call) { + if (!self) { + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + } -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + return call && (_typeof(call) === "object" || typeof call === "function") ? call : self; + } -function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + function _inherits(subClass, superClass) { + if (typeof superClass !== "function" && superClass !== null) { + throw new TypeError("Super expression must either be null or a function, not " + _typeof(superClass)); + } -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + subClass.prototype = Object.create(superClass && superClass.prototype, { + constructor: { + value: subClass, + enumerable: false, + writable: true, + configurable: true + } + }); + if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; + } -var SparklinesNormalBand = function (_React$Component) { - _inherits(SparklinesNormalBand, _React$Component); + var SparklinesNormalBand = function (_React$Component) { + _inherits(SparklinesNormalBand, _React$Component); - function SparklinesNormalBand() { - _classCallCheck(this, SparklinesNormalBand); + function SparklinesNormalBand() { + _classCallCheck(this, SparklinesNormalBand); - return _possibleConstructorReturn(this, (SparklinesNormalBand.__proto__ || Object.getPrototypeOf(SparklinesNormalBand)).apply(this, arguments)); - } + return _possibleConstructorReturn(this, (SparklinesNormalBand.__proto__ || Object.getPrototypeOf(SparklinesNormalBand)).apply(this, arguments)); + } - _createClass(SparklinesNormalBand, [{ - key: 'render', - value: function render() { + _createClass(SparklinesNormalBand, [{ + key: 'render', + value: function render() { var _props = this.props, points = _props.points, margin = _props.margin, style = _props.style; - - var ypoints = points.map(function (p) { - return p.y; + return p.y; }); var dataMean = (0, _mean2.default)(ypoints); var dataStdev = (0, _stdev2.default)(ypoints); + return _react2.default.createElement('rect', { + x: points[0].x, + y: dataMean - dataStdev + margin, + width: points[points.length - 1].x - points[0].x, + height: _stdev2.default * 2, + style: style + }); + } + }]); - return _react2.default.createElement('rect', { x: points[0].x, y: dataMean - dataStdev + margin, - width: points[points.length - 1].x - points[0].x, height: _stdev2.default * 2, - style: style }); + return SparklinesNormalBand; + }(_react2.default.Component); + + SparklinesNormalBand.propTypes = { + style: _propTypes2.default.object + }; + SparklinesNormalBand.defaultProps = { + style: { + fill: 'red', + fillOpacity: .1 } - }]); + }; + exports.default = SparklinesNormalBand; + /***/ + }, + /* 28 */ - return SparklinesNormalBand; -}(_react2.default.Component); + /***/ + function (module, exports, __webpack_require__) { + "use strict"; -SparklinesNormalBand.propTypes = { - style: _propTypes2.default.object -}; -SparklinesNormalBand.defaultProps = { - style: { fill: 'red', fillOpacity: .1 } -}; -exports.default = SparklinesNormalBand; + Object.defineProperty(exports, "__esModule", { + value: true + }); -/***/ }), -/* 28 */ -/***/ (function(module, exports, __webpack_require__) { + var _min = __webpack_require__(7); -"use strict"; + var _min2 = _interopRequireDefault(_min); + + var _max = __webpack_require__(9); + + var _max2 = _interopRequireDefault(_max); + + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; + } + exports.default = function (_ref) { + var data = _ref.data, + limit = _ref.limit, + _ref$width = _ref.width, + width = _ref$width === undefined ? 1 : _ref$width, + _ref$height = _ref.height, + height = _ref$height === undefined ? 1 : _ref$height, + _ref$margin = _ref.margin, + margin = _ref$margin === undefined ? 0 : _ref$margin, + _ref$max = _ref.max, + max = _ref$max === undefined ? (0, _max2.default)(data) : _ref$max, + _ref$min = _ref.min, + min = _ref$min === undefined ? (0, _min2.default)(data) : _ref$min; + var len = data.length; + + if (limit && limit < len) { + data = data.slice(len - limit); + } + + var vfactor = (height - margin * 2) / (max - min || 2); + var hfactor = (width - margin * 2) / ((limit || len) - (len > 1 ? 1 : 0)); + return data.map(function (d, i) { + return { + x: i * hfactor + margin, + y: (max === min ? 1 : max - d) * vfactor + margin + }; + }); + }; + /***/ -Object.defineProperty(exports, "__esModule", { - value: true + }]) + ); }); +/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../webpack/buildin/module.js */ "./node_modules/webpack/buildin/module.js")(module))) + +/***/ }), + +/***/ "./node_modules/webpack/buildin/module.js": +/*!***********************************!*\ + !*** (webpack)/buildin/module.js ***! + \***********************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = function (module) { + if (!module.webpackPolyfill) { + module.deprecate = function () {}; + + module.paths = []; // module.parent = undefined by default + + if (!module.children) module.children = []; + Object.defineProperty(module, "loaded", { + enumerable: true, + get: function get() { + return module.l; + } + }); + Object.defineProperty(module, "id", { + enumerable: true, + get: function get() { + return module.i; + } + }); + module.webpackPolyfill = 1; + } + + return module; +}; -var _min = __webpack_require__(7); +/***/ }), -var _min2 = _interopRequireDefault(_min); +/***/ "./srcjs/sparklineswidget.js": +/*!***********************************!*\ + !*** ./srcjs/sparklineswidget.js ***! + \***********************************/ +/*! no exports provided */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { -var _max = __webpack_require__(9); +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var react_sparklines__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react-sparklines */ "./node_modules/react-sparklines/build/index.js"); +/* harmony import */ var react_sparklines__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_sparklines__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var reactR__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! reactR */ "reactR"); +/* harmony import */ var reactR__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(reactR__WEBPACK_IMPORTED_MODULE_1__); -var _max2 = _interopRequireDefault(_max); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } +Object(reactR__WEBPACK_IMPORTED_MODULE_1__["reactWidget"])('sparklineswidget', 'output', react_sparklines__WEBPACK_IMPORTED_MODULE_0__); -exports.default = function (_ref) { - var data = _ref.data, - limit = _ref.limit, - _ref$width = _ref.width, - width = _ref$width === undefined ? 1 : _ref$width, - _ref$height = _ref.height, - height = _ref$height === undefined ? 1 : _ref$height, - _ref$margin = _ref.margin, - margin = _ref$margin === undefined ? 0 : _ref$margin, - _ref$max = _ref.max, - max = _ref$max === undefined ? (0, _max2.default)(data) : _ref$max, - _ref$min = _ref.min, - min = _ref$min === undefined ? (0, _min2.default)(data) : _ref$min; +/***/ }), +/***/ "react": +/*!*******************************!*\ + !*** external "window.React" ***! + \*******************************/ +/*! no static exports found */ +/***/ (function(module, exports) { - var len = data.length; +module.exports = window.React; - if (limit && limit < len) { - data = data.slice(len - limit); - } +/***/ }), - var vfactor = (height - margin * 2) / (max - min || 2); - var hfactor = (width - margin * 2) / ((limit || len) - (len > 1 ? 1 : 0)); +/***/ "reactR": +/*!********************************!*\ + !*** external "window.reactR" ***! + \********************************/ +/*! no static exports found */ +/***/ (function(module, exports) { - return data.map(function (d, i) { - return { - x: i * hfactor + margin, - y: (max === min ? 1 : max - d) * vfactor + margin - }; - }); -}; +module.exports = window.reactR; /***/ }) -/******/ ]); -}); -},{"react":3}],3:[function(require,module,exports){ -module.exports=window.React -},{}]},{},[3,1,"/build/sparklineswidget.js"]) -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9icm93c2VyLXBhY2svX3ByZWx1ZGUuanMiLCJzcmNqcy9zcGFya2xpbmVzd2lkZ2V0LmpzIiwibm9kZV9tb2R1bGVzL3JlYWN0LWRvbS5qcyIsIm5vZGVfbW9kdWxlcy9yZWFjdC1zcGFya2xpbmVzL2J1aWxkL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL3JlYWN0LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7QUNBQTs7SUFBWSxvQjs7OztBQUVaLE9BQU8sZ0JBQVAsQ0FBd0IsaUJBQXhCLEVBQTJDLFFBQTNDLEVBQXFELG9CQUFyRDs7O0FDRkE7QUFDQTs7QUNEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDeHFFQTtBQUNBIiwiZmlsZSI6ImdlbmVyYXRlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIoZnVuY3Rpb24oKXtmdW5jdGlvbiByKGUsbix0KXtmdW5jdGlvbiBvKGksZil7aWYoIW5baV0pe2lmKCFlW2ldKXt2YXIgYz1cImZ1bmN0aW9uXCI9PXR5cGVvZiByZXF1aXJlJiZyZXF1aXJlO2lmKCFmJiZjKXJldHVybiBjKGksITApO2lmKHUpcmV0dXJuIHUoaSwhMCk7dmFyIGE9bmV3IEVycm9yKFwiQ2Fubm90IGZpbmQgbW9kdWxlICdcIitpK1wiJ1wiKTt0aHJvdyBhLmNvZGU9XCJNT0RVTEVfTk9UX0ZPVU5EXCIsYX12YXIgcD1uW2ldPXtleHBvcnRzOnt9fTtlW2ldWzBdLmNhbGwocC5leHBvcnRzLGZ1bmN0aW9uKHIpe3ZhciBuPWVbaV1bMV1bcl07cmV0dXJuIG8obnx8cil9LHAscC5leHBvcnRzLHIsZSxuLHQpfXJldHVybiBuW2ldLmV4cG9ydHN9Zm9yKHZhciB1PVwiZnVuY3Rpb25cIj09dHlwZW9mIHJlcXVpcmUmJnJlcXVpcmUsaT0wO2k8dC5sZW5ndGg7aSsrKW8odFtpXSk7cmV0dXJuIG99cmV0dXJuIHJ9KSgpIiwiaW1wb3J0ICogYXMgU3BhcmtsaW5lc0NvbXBvbmVudHMgZnJvbSAncmVhY3Qtc3BhcmtsaW5lcyc7XHJcblxyXG5yZWFjdFIuZXhwb3NlQ29tcG9uZW50cygncmVhY3RzcGFya2xpbmVzJywgJ291dHB1dCcsIFNwYXJrbGluZXNDb21wb25lbnRzKTtcclxuIiwibW9kdWxlLmV4cG9ydHM9d2luZG93LlJlYWN0RE9NXG4iLCIoZnVuY3Rpb24gd2VicGFja1VuaXZlcnNhbE1vZHVsZURlZmluaXRpb24ocm9vdCwgZmFjdG9yeSkge1xuXHRpZih0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSA9PT0gJ29iamVjdCcpXG5cdFx0bW9kdWxlLmV4cG9ydHMgPSBmYWN0b3J5KHJlcXVpcmUoXCJyZWFjdFwiKSk7XG5cdGVsc2UgaWYodHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kKVxuXHRcdGRlZmluZShbXCJyZWFjdFwiXSwgZmFjdG9yeSk7XG5cdGVsc2UgaWYodHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnKVxuXHRcdGV4cG9ydHNbXCJSZWFjdFNwYXJrbGluZXNcIl0gPSBmYWN0b3J5KHJlcXVpcmUoXCJyZWFjdFwiKSk7XG5cdGVsc2Vcblx0XHRyb290W1wiUmVhY3RTcGFya2xpbmVzXCJdID0gZmFjdG9yeShyb290W1wiUmVhY3RcIl0pO1xufSkodGhpcywgZnVuY3Rpb24oX19XRUJQQUNLX0VYVEVSTkFMX01PRFVMRV8xX18pIHtcbnJldHVybiAvKioqKioqLyAoZnVuY3Rpb24obW9kdWxlcykgeyAvLyB3ZWJwYWNrQm9vdHN0cmFwXG4vKioqKioqLyBcdC8vIFRoZSBtb2R1bGUgY2FjaGVcbi8qKioqKiovIFx0dmFyIGluc3RhbGxlZE1vZHVsZXMgPSB7fTtcbi8qKioqKiovXG4vKioqKioqLyBcdC8vIFRoZSByZXF1aXJlIGZ1bmN0aW9uXG4vKioqKioqLyBcdGZ1bmN0aW9uIF9fd2VicGFja19yZXF1aXJlX18obW9kdWxlSWQpIHtcbi8qKioqKiovXG4vKioqKioqLyBcdFx0Ly8gQ2hlY2sgaWYgbW9kdWxlIGlzIGluIGNhY2hlXG4vKioqKioqLyBcdFx0aWYoaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0pIHtcbi8qKioqKiovIFx0XHRcdHJldHVybiBpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXS5leHBvcnRzO1xuLyoqKioqKi8gXHRcdH1cbi8qKioqKiovIFx0XHQvLyBDcmVhdGUgYSBuZXcgbW9kdWxlIChhbmQgcHV0IGl0IGludG8gdGhlIGNhY2hlKVxuLyoqKioqKi8gXHRcdHZhciBtb2R1bGUgPSBpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXSA9IHtcbi8qKioqKiovIFx0XHRcdGk6IG1vZHVsZUlkLFxuLyoqKioqKi8gXHRcdFx0bDogZmFsc2UsXG4vKioqKioqLyBcdFx0XHRleHBvcnRzOiB7fVxuLyoqKioqKi8gXHRcdH07XG4vKioqKioqL1xuLyoqKioqKi8gXHRcdC8vIEV4ZWN1dGUgdGhlIG1vZHVsZSBmdW5jdGlvblxuLyoqKioqKi8gXHRcdG1vZHVsZXNbbW9kdWxlSWRdLmNhbGwobW9kdWxlLmV4cG9ydHMsIG1vZHVsZSwgbW9kdWxlLmV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pO1xuLyoqKioqKi9cbi8qKioqKiovIFx0XHQvLyBGbGFnIHRoZSBtb2R1bGUgYXMgbG9hZGVkXG4vKioqKioqLyBcdFx0bW9kdWxlLmwgPSB0cnVlO1xuLyoqKioqKi9cbi8qKioqKiovIFx0XHQvLyBSZXR1cm4gdGhlIGV4cG9ydHMgb2YgdGhlIG1vZHVsZVxuLyoqKioqKi8gXHRcdHJldHVybiBtb2R1bGUuZXhwb3J0cztcbi8qKioqKiovIFx0fVxuLyoqKioqKi9cbi8qKioqKiovXG4vKioqKioqLyBcdC8vIGV4cG9zZSB0aGUgbW9kdWxlcyBvYmplY3QgKF9fd2VicGFja19tb2R1bGVzX18pXG4vKioqKioqLyBcdF9fd2VicGFja19yZXF1aXJlX18ubSA9IG1vZHVsZXM7XG4vKioqKioqL1xuLyoqKioqKi8gXHQvLyBleHBvc2UgdGhlIG1vZHVsZSBjYWNoZVxuLyoqKioqKi8gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmMgPSBpbnN0YWxsZWRNb2R1bGVzO1xuLyoqKioqKi9cbi8qKioqKiovIFx0Ly8gZGVmaW5lIGdldHRlciBmdW5jdGlvbiBmb3IgaGFybW9ueSBleHBvcnRzXG4vKioqKioqLyBcdF9fd2VicGFja19yZXF1aXJlX18uZCA9IGZ1bmN0aW9uKGV4cG9ydHMsIG5hbWUsIGdldHRlcikge1xuLyoqKioqKi8gXHRcdGlmKCFfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZXhwb3J0cywgbmFtZSkpIHtcbi8qKioqKiovIFx0XHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBuYW1lLCB7XG4vKioqKioqLyBcdFx0XHRcdGNvbmZpZ3VyYWJsZTogZmFsc2UsXG4vKioqKioqLyBcdFx0XHRcdGVudW1lcmFibGU6IHRydWUsXG4vKioqKioqLyBcdFx0XHRcdGdldDogZ2V0dGVyXG4vKioqKioqLyBcdFx0XHR9KTtcbi8qKioqKiovIFx0XHR9XG4vKioqKioqLyBcdH07XG4vKioqKioqL1xuLyoqKioqKi8gXHQvLyBnZXREZWZhdWx0RXhwb3J0IGZ1bmN0aW9uIGZvciBjb21wYXRpYmlsaXR5IHdpdGggbm9uLWhhcm1vbnkgbW9kdWxlc1xuLyoqKioqKi8gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLm4gPSBmdW5jdGlvbihtb2R1bGUpIHtcbi8qKioqKiovIFx0XHR2YXIgZ2V0dGVyID0gbW9kdWxlICYmIG1vZHVsZS5fX2VzTW9kdWxlID9cbi8qKioqKiovIFx0XHRcdGZ1bmN0aW9uIGdldERlZmF1bHQoKSB7IHJldHVybiBtb2R1bGVbJ2RlZmF1bHQnXTsgfSA6XG4vKioqKioqLyBcdFx0XHRmdW5jdGlvbiBnZXRNb2R1bGVFeHBvcnRzKCkgeyByZXR1cm4gbW9kdWxlOyB9O1xuLyoqKioqKi8gXHRcdF9fd2VicGFja19yZXF1aXJlX18uZChnZXR0ZXIsICdhJywgZ2V0dGVyKTtcbi8qKioqKiovIFx0XHRyZXR1cm4gZ2V0dGVyO1xuLyoqKioqKi8gXHR9O1xuLyoqKioqKi9cbi8qKioqKiovIFx0Ly8gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsXG4vKioqKioqLyBcdF9fd2VicGFja19yZXF1aXJlX18ubyA9IGZ1bmN0aW9uKG9iamVjdCwgcHJvcGVydHkpIHsgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmplY3QsIHByb3BlcnR5KTsgfTtcbi8qKioqKiovXG4vKioqKioqLyBcdC8vIF9fd2VicGFja19wdWJsaWNfcGF0aF9fXG4vKioqKioqLyBcdF9fd2VicGFja19yZXF1aXJlX18ucCA9IFwiL1wiO1xuLyoqKioqKi9cbi8qKioqKiovIFx0Ly8gTG9hZCBlbnRyeSBtb2R1bGUgYW5kIHJldHVybiBleHBvcnRzXG4vKioqKioqLyBcdHJldHVybiBfX3dlYnBhY2tfcmVxdWlyZV9fKF9fd2VicGFja19yZXF1aXJlX18ucyA9IDExKTtcbi8qKioqKiovIH0pXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKi8gKFtcbi8qIDAgKi9cbi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHtcblxuLyogV0VCUEFDSyBWQVIgSU5KRUNUSU9OICovKGZ1bmN0aW9uKHByb2Nlc3MpIHsvKipcbiAqIENvcHlyaWdodCAyMDEzLXByZXNlbnQsIEZhY2Vib29rLCBJbmMuXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEJTRC1zdHlsZSBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLiBBbiBhZGRpdGlvbmFsIGdyYW50XG4gKiBvZiBwYXRlbnQgcmlnaHRzIGNhbiBiZSBmb3VuZCBpbiB0aGUgUEFURU5UUyBmaWxlIGluIHRoZSBzYW1lIGRpcmVjdG9yeS5cbiAqL1xuXG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICB2YXIgUkVBQ1RfRUxFTUVOVF9UWVBFID0gKHR5cGVvZiBTeW1ib2wgPT09ICdmdW5jdGlvbicgJiZcbiAgICBTeW1ib2wuZm9yICYmXG4gICAgU3ltYm9sLmZvcigncmVhY3QuZWxlbWVudCcpKSB8fFxuICAgIDB4ZWFjNztcblxuICB2YXIgaXNWYWxpZEVsZW1lbnQgPSBmdW5jdGlvbihvYmplY3QpIHtcbiAgICByZXR1cm4gdHlwZW9mIG9iamVjdCA9PT0gJ29iamVjdCcgJiZcbiAgICAgIG9iamVjdCAhPT0gbnVsbCAmJlxuICAgICAgb2JqZWN0LiQkdHlwZW9mID09PSBSRUFDVF9FTEVNRU5UX1RZUEU7XG4gIH07XG5cbiAgLy8gQnkgZXhwbGljaXRseSB1c2luZyBgcHJvcC10eXBlc2AgeW91IGFyZSBvcHRpbmcgaW50byBuZXcgZGV2ZWxvcG1lbnQgYmVoYXZpb3IuXG4gIC8vIGh0dHA6Ly9mYi5tZS9wcm9wLXR5cGVzLWluLXByb2RcbiAgdmFyIHRocm93T25EaXJlY3RBY2Nlc3MgPSB0cnVlO1xuICBtb2R1bGUuZXhwb3J0cyA9IF9fd2VicGFja19yZXF1aXJlX18oMTQpKGlzVmFsaWRFbGVtZW50LCB0aHJvd09uRGlyZWN0QWNjZXNzKTtcbn0gZWxzZSB7XG4gIC8vIEJ5IGV4cGxpY2l0bHkgdXNpbmcgYHByb3AtdHlwZXNgIHlvdSBhcmUgb3B0aW5nIGludG8gbmV3IHByb2R1Y3Rpb24gYmVoYXZpb3IuXG4gIC8vIGh0dHA6Ly9mYi5tZS9wcm9wLXR5cGVzLWluLXByb2RcbiAgbW9kdWxlLmV4cG9ydHMgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDE2KSgpO1xufVxuXG4vKiBXRUJQQUNLIFZBUiBJTkpFQ1RJT04gKi99LmNhbGwoZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXygyKSkpXG5cbi8qKiovIH0pLFxuLyogMSAqL1xuLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cykge1xuXG5tb2R1bGUuZXhwb3J0cyA9IF9fV0VCUEFDS19FWFRFUk5BTF9NT0RVTEVfMV9fO1xuXG4vKioqLyB9KSxcbi8qIDIgKi9cbi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMpIHtcblxuLy8gc2hpbSBmb3IgdXNpbmcgcHJvY2VzcyBpbiBicm93c2VyXG52YXIgcHJvY2VzcyA9IG1vZHVsZS5leHBvcnRzID0ge307XG5cbi8vIGNhY2hlZCBmcm9tIHdoYXRldmVyIGdsb2JhbCBpcyBwcmVzZW50IHNvIHRoYXQgdGVzdCBydW5uZXJzIHRoYXQgc3R1YiBpdFxuLy8gZG9uJ3QgYnJlYWsgdGhpbmdzLiAgQnV0IHdlIG5lZWQgdG8gd3JhcCBpdCBpbiBhIHRyeSBjYXRjaCBpbiBjYXNlIGl0IGlzXG4vLyB3cmFwcGVkIGluIHN0cmljdCBtb2RlIGNvZGUgd2hpY2ggZG9lc24ndCBkZWZpbmUgYW55IGdsb2JhbHMuICBJdCdzIGluc2lkZSBhXG4vLyBmdW5jdGlvbiBiZWNhdXNlIHRyeS9jYXRjaGVzIGRlb3B0aW1pemUgaW4gY2VydGFpbiBlbmdpbmVzLlxuXG52YXIgY2FjaGVkU2V0VGltZW91dDtcbnZhciBjYWNoZWRDbGVhclRpbWVvdXQ7XG5cbmZ1bmN0aW9uIGRlZmF1bHRTZXRUaW1vdXQoKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdzZXRUaW1lb3V0IGhhcyBub3QgYmVlbiBkZWZpbmVkJyk7XG59XG5mdW5jdGlvbiBkZWZhdWx0Q2xlYXJUaW1lb3V0ICgpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2NsZWFyVGltZW91dCBoYXMgbm90IGJlZW4gZGVmaW5lZCcpO1xufVxuKGZ1bmN0aW9uICgpIHtcbiAgICB0cnkge1xuICAgICAgICBpZiAodHlwZW9mIHNldFRpbWVvdXQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIGNhY2hlZFNldFRpbWVvdXQgPSBzZXRUaW1lb3V0O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY2FjaGVkU2V0VGltZW91dCA9IGRlZmF1bHRTZXRUaW1vdXQ7XG4gICAgICAgIH1cbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIGNhY2hlZFNldFRpbWVvdXQgPSBkZWZhdWx0U2V0VGltb3V0O1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgICBpZiAodHlwZW9mIGNsZWFyVGltZW91dCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgY2FjaGVkQ2xlYXJUaW1lb3V0ID0gY2xlYXJUaW1lb3V0O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY2FjaGVkQ2xlYXJUaW1lb3V0ID0gZGVmYXVsdENsZWFyVGltZW91dDtcbiAgICAgICAgfVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgY2FjaGVkQ2xlYXJUaW1lb3V0ID0gZGVmYXVsdENsZWFyVGltZW91dDtcbiAgICB9XG59ICgpKVxuZnVuY3Rpb24gcnVuVGltZW91dChmdW4pIHtcbiAgICBpZiAoY2FjaGVkU2V0VGltZW91dCA9PT0gc2V0VGltZW91dCkge1xuICAgICAgICAvL25vcm1hbCBlbnZpcm9tZW50cyBpbiBzYW5lIHNpdHVhdGlvbnNcbiAgICAgICAgcmV0dXJuIHNldFRpbWVvdXQoZnVuLCAwKTtcbiAgICB9XG4gICAgLy8gaWYgc2V0VGltZW91dCB3YXNuJ3QgYXZhaWxhYmxlIGJ1dCB3YXMgbGF0dGVyIGRlZmluZWRcbiAgICBpZiAoKGNhY2hlZFNldFRpbWVvdXQgPT09IGRlZmF1bHRTZXRUaW1vdXQgfHwgIWNhY2hlZFNldFRpbWVvdXQpICYmIHNldFRpbWVvdXQpIHtcbiAgICAgICAgY2FjaGVkU2V0VGltZW91dCA9IHNldFRpbWVvdXQ7XG4gICAgICAgIHJldHVybiBzZXRUaW1lb3V0KGZ1biwgMCk7XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICAgIC8vIHdoZW4gd2hlbiBzb21lYm9keSBoYXMgc2NyZXdlZCB3aXRoIHNldFRpbWVvdXQgYnV0IG5vIEkuRS4gbWFkZG5lc3NcbiAgICAgICAgcmV0dXJuIGNhY2hlZFNldFRpbWVvdXQoZnVuLCAwKTtcbiAgICB9IGNhdGNoKGUpe1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgLy8gV2hlbiB3ZSBhcmUgaW4gSS5FLiBidXQgdGhlIHNjcmlwdCBoYXMgYmVlbiBldmFsZWQgc28gSS5FLiBkb2Vzbid0IHRydXN0IHRoZSBnbG9iYWwgb2JqZWN0IHdoZW4gY2FsbGVkIG5vcm1hbGx5XG4gICAgICAgICAgICByZXR1cm4gY2FjaGVkU2V0VGltZW91dC5jYWxsKG51bGwsIGZ1biwgMCk7XG4gICAgICAgIH0gY2F0Y2goZSl7XG4gICAgICAgICAgICAvLyBzYW1lIGFzIGFib3ZlIGJ1dCB3aGVuIGl0J3MgYSB2ZXJzaW9uIG9mIEkuRS4gdGhhdCBtdXN0IGhhdmUgdGhlIGdsb2JhbCBvYmplY3QgZm9yICd0aGlzJywgaG9wZnVsbHkgb3VyIGNvbnRleHQgY29ycmVjdCBvdGhlcndpc2UgaXQgd2lsbCB0aHJvdyBhIGdsb2JhbCBlcnJvclxuICAgICAgICAgICAgcmV0dXJuIGNhY2hlZFNldFRpbWVvdXQuY2FsbCh0aGlzLCBmdW4sIDApO1xuICAgICAgICB9XG4gICAgfVxuXG5cbn1cbmZ1bmN0aW9uIHJ1bkNsZWFyVGltZW91dChtYXJrZXIpIHtcbiAgICBpZiAoY2FjaGVkQ2xlYXJUaW1lb3V0ID09PSBjbGVhclRpbWVvdXQpIHtcbiAgICAgICAgLy9ub3JtYWwgZW52aXJvbWVudHMgaW4gc2FuZSBzaXR1YXRpb25zXG4gICAgICAgIHJldHVybiBjbGVhclRpbWVvdXQobWFya2VyKTtcbiAgICB9XG4gICAgLy8gaWYgY2xlYXJUaW1lb3V0IHdhc24ndCBhdmFpbGFibGUgYnV0IHdhcyBsYXR0ZXIgZGVmaW5lZFxuICAgIGlmICgoY2FjaGVkQ2xlYXJUaW1lb3V0ID09PSBkZWZhdWx0Q2xlYXJUaW1lb3V0IHx8ICFjYWNoZWRDbGVhclRpbWVvdXQpICYmIGNsZWFyVGltZW91dCkge1xuICAgICAgICBjYWNoZWRDbGVhclRpbWVvdXQgPSBjbGVhclRpbWVvdXQ7XG4gICAgICAgIHJldHVybiBjbGVhclRpbWVvdXQobWFya2VyKTtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgICAgLy8gd2hlbiB3aGVuIHNvbWVib2R5IGhhcyBzY3Jld2VkIHdpdGggc2V0VGltZW91dCBidXQgbm8gSS5FLiBtYWRkbmVzc1xuICAgICAgICByZXR1cm4gY2FjaGVkQ2xlYXJUaW1lb3V0KG1hcmtlcik7XG4gICAgfSBjYXRjaCAoZSl7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICAvLyBXaGVuIHdlIGFyZSBpbiBJLkUuIGJ1dCB0aGUgc2NyaXB0IGhhcyBiZWVuIGV2YWxlZCBzbyBJLkUuIGRvZXNuJ3QgIHRydXN0IHRoZSBnbG9iYWwgb2JqZWN0IHdoZW4gY2FsbGVkIG5vcm1hbGx5XG4gICAgICAgICAgICByZXR1cm4gY2FjaGVkQ2xlYXJUaW1lb3V0LmNhbGwobnVsbCwgbWFya2VyKTtcbiAgICAgICAgfSBjYXRjaCAoZSl7XG4gICAgICAgICAgICAvLyBzYW1lIGFzIGFib3ZlIGJ1dCB3aGVuIGl0J3MgYSB2ZXJzaW9uIG9mIEkuRS4gdGhhdCBtdXN0IGhhdmUgdGhlIGdsb2JhbCBvYmplY3QgZm9yICd0aGlzJywgaG9wZnVsbHkgb3VyIGNvbnRleHQgY29ycmVjdCBvdGhlcndpc2UgaXQgd2lsbCB0aHJvdyBhIGdsb2JhbCBlcnJvci5cbiAgICAgICAgICAgIC8vIFNvbWUgdmVyc2lvbnMgb2YgSS5FLiBoYXZlIGRpZmZlcmVudCBydWxlcyBmb3IgY2xlYXJUaW1lb3V0IHZzIHNldFRpbWVvdXRcbiAgICAgICAgICAgIHJldHVybiBjYWNoZWRDbGVhclRpbWVvdXQuY2FsbCh0aGlzLCBtYXJrZXIpO1xuICAgICAgICB9XG4gICAgfVxuXG5cblxufVxudmFyIHF1ZXVlID0gW107XG52YXIgZHJhaW5pbmcgPSBmYWxzZTtcbnZhciBjdXJyZW50UXVldWU7XG52YXIgcXVldWVJbmRleCA9IC0xO1xuXG5mdW5jdGlvbiBjbGVhblVwTmV4dFRpY2soKSB7XG4gICAgaWYgKCFkcmFpbmluZyB8fCAhY3VycmVudFF1ZXVlKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgZHJhaW5pbmcgPSBmYWxzZTtcbiAgICBpZiAoY3VycmVudFF1ZXVlLmxlbmd0aCkge1xuICAgICAgICBxdWV1ZSA9IGN1cnJlbnRRdWV1ZS5jb25jYXQocXVldWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHF1ZXVlSW5kZXggPSAtMTtcbiAgICB9XG4gICAgaWYgKHF1ZXVlLmxlbmd0aCkge1xuICAgICAgICBkcmFpblF1ZXVlKCk7XG4gICAgfVxufVxuXG5mdW5jdGlvbiBkcmFpblF1ZXVlKCkge1xuICAgIGlmIChkcmFpbmluZykge1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIHZhciB0aW1lb3V0ID0gcnVuVGltZW91dChjbGVhblVwTmV4dFRpY2spO1xuICAgIGRyYWluaW5nID0gdHJ1ZTtcblxuICAgIHZhciBsZW4gPSBxdWV1ZS5sZW5ndGg7XG4gICAgd2hpbGUobGVuKSB7XG4gICAgICAgIGN1cnJlbnRRdWV1ZSA9IHF1ZXVlO1xuICAgICAgICBxdWV1ZSA9IFtdO1xuICAgICAgICB3aGlsZSAoKytxdWV1ZUluZGV4IDwgbGVuKSB7XG4gICAgICAgICAgICBpZiAoY3VycmVudFF1ZXVlKSB7XG4gICAgICAgICAgICAgICAgY3VycmVudFF1ZXVlW3F1ZXVlSW5kZXhdLnJ1bigpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHF1ZXVlSW5kZXggPSAtMTtcbiAgICAgICAgbGVuID0gcXVldWUubGVuZ3RoO1xuICAgIH1cbiAgICBjdXJyZW50UXVldWUgPSBudWxsO1xuICAgIGRyYWluaW5nID0gZmFsc2U7XG4gICAgcnVuQ2xlYXJUaW1lb3V0KHRpbWVvdXQpO1xufVxuXG5wcm9jZXNzLm5leHRUaWNrID0gZnVuY3Rpb24gKGZ1bikge1xuICAgIHZhciBhcmdzID0gbmV3IEFycmF5KGFyZ3VtZW50cy5sZW5ndGggLSAxKTtcbiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGFyZ3NbaSAtIDFdID0gYXJndW1lbnRzW2ldO1xuICAgICAgICB9XG4gICAgfVxuICAgIHF1ZXVlLnB1c2gobmV3IEl0ZW0oZnVuLCBhcmdzKSk7XG4gICAgaWYgKHF1ZXVlLmxlbmd0aCA9PT0gMSAmJiAhZHJhaW5pbmcpIHtcbiAgICAgICAgcnVuVGltZW91dChkcmFpblF1ZXVlKTtcbiAgICB9XG59O1xuXG4vLyB2OCBsaWtlcyBwcmVkaWN0aWJsZSBvYmplY3RzXG5mdW5jdGlvbiBJdGVtKGZ1biwgYXJyYXkpIHtcbiAgICB0aGlzLmZ1biA9IGZ1bjtcbiAgICB0aGlzLmFycmF5ID0gYXJyYXk7XG59XG5JdGVtLnByb3RvdHlwZS5ydW4gPSBmdW5jdGlvbiAoKSB7XG4gICAgdGhpcy5mdW4uYXBwbHkobnVsbCwgdGhpcy5hcnJheSk7XG59O1xucHJvY2Vzcy50aXRsZSA9ICdicm93c2VyJztcbnByb2Nlc3MuYnJvd3NlciA9IHRydWU7XG5wcm9jZXNzLmVudiA9IHt9O1xucHJvY2Vzcy5hcmd2ID0gW107XG5wcm9jZXNzLnZlcnNpb24gPSAnJzsgLy8gZW1wdHkgc3RyaW5nIHRvIGF2b2lkIHJlZ2V4cCBpc3N1ZXNcbnByb2Nlc3MudmVyc2lvbnMgPSB7fTtcblxuZnVuY3Rpb24gbm9vcCgpIHt9XG5cbnByb2Nlc3Mub24gPSBub29wO1xucHJvY2Vzcy5hZGRMaXN0ZW5lciA9IG5vb3A7XG5wcm9jZXNzLm9uY2UgPSBub29wO1xucHJvY2Vzcy5vZmYgPSBub29wO1xucHJvY2Vzcy5yZW1vdmVMaXN0ZW5lciA9IG5vb3A7XG5wcm9jZXNzLnJlbW92ZUFsbExpc3RlbmVycyA9IG5vb3A7XG5wcm9jZXNzLmVtaXQgPSBub29wO1xucHJvY2Vzcy5wcmVwZW5kTGlzdGVuZXIgPSBub29wO1xucHJvY2Vzcy5wcmVwZW5kT25jZUxpc3RlbmVyID0gbm9vcDtcblxucHJvY2Vzcy5saXN0ZW5lcnMgPSBmdW5jdGlvbiAobmFtZSkgeyByZXR1cm4gW10gfVxuXG5wcm9jZXNzLmJpbmRpbmcgPSBmdW5jdGlvbiAobmFtZSkge1xuICAgIHRocm93IG5ldyBFcnJvcigncHJvY2Vzcy5iaW5kaW5nIGlzIG5vdCBzdXBwb3J0ZWQnKTtcbn07XG5cbnByb2Nlc3MuY3dkID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gJy8nIH07XG5wcm9jZXNzLmNoZGlyID0gZnVuY3Rpb24gKGRpcikge1xuICAgIHRocm93IG5ldyBFcnJvcigncHJvY2Vzcy5jaGRpciBpcyBub3Qgc3VwcG9ydGVkJyk7XG59O1xucHJvY2Vzcy51bWFzayA9IGZ1bmN0aW9uKCkgeyByZXR1cm4gMDsgfTtcblxuXG4vKioqLyB9KSxcbi8qIDMgKi9cbi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG5cblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuXG5leHBvcnRzLmRlZmF1bHQgPSBmdW5jdGlvbiAoZGF0YSkge1xuICAgIHJldHVybiBkYXRhLnJlZHVjZShmdW5jdGlvbiAoYSwgYikge1xuICAgICAgICByZXR1cm4gYSArIGI7XG4gICAgfSkgLyBkYXRhLmxlbmd0aDtcbn07XG5cbi8qKiovIH0pLFxuLyogNCAqL1xuLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykge1xuXG5cInVzZSBzdHJpY3RcIjtcblxuXG4vKipcbiAqIENvcHlyaWdodCAoYykgMjAxMy1wcmVzZW50LCBGYWNlYm9vaywgSW5jLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBCU0Qtc3R5bGUgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4gQW4gYWRkaXRpb25hbCBncmFudFxuICogb2YgcGF0ZW50IHJpZ2h0cyBjYW4gYmUgZm91bmQgaW4gdGhlIFBBVEVOVFMgZmlsZSBpbiB0aGUgc2FtZSBkaXJlY3RvcnkuXG4gKlxuICogXG4gKi9cblxuZnVuY3Rpb24gbWFrZUVtcHR5RnVuY3Rpb24oYXJnKSB7XG4gIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIGFyZztcbiAgfTtcbn1cblxuLyoqXG4gKiBUaGlzIGZ1bmN0aW9uIGFjY2VwdHMgYW5kIGRpc2NhcmRzIGlucHV0czsgaXQgaGFzIG5vIHNpZGUgZWZmZWN0cy4gVGhpcyBpc1xuICogcHJpbWFyaWx5IHVzZWZ1bCBpZGlvbWF0aWNhbGx5IGZvciBvdmVycmlkYWJsZSBmdW5jdGlvbiBlbmRwb2ludHMgd2hpY2hcbiAqIGFsd2F5cyBuZWVkIHRvIGJlIGNhbGxhYmxlLCBzaW5jZSBKUyBsYWNrcyBhIG51bGwtY2FsbCBpZGlvbSBhbGEgQ29jb2EuXG4gKi9cbnZhciBlbXB0eUZ1bmN0aW9uID0gZnVuY3Rpb24gZW1wdHlGdW5jdGlvbigpIHt9O1xuXG5lbXB0eUZ1bmN0aW9uLnRoYXRSZXR1cm5zID0gbWFrZUVtcHR5RnVuY3Rpb247XG5lbXB0eUZ1bmN0aW9uLnRoYXRSZXR1cm5zRmFsc2UgPSBtYWtlRW1wdHlGdW5jdGlvbihmYWxzZSk7XG5lbXB0eUZ1bmN0aW9uLnRoYXRSZXR1cm5zVHJ1ZSA9IG1ha2VFbXB0eUZ1bmN0aW9uKHRydWUpO1xuZW1wdHlGdW5jdGlvbi50aGF0UmV0dXJuc051bGwgPSBtYWtlRW1wdHlGdW5jdGlvbihudWxsKTtcbmVtcHR5RnVuY3Rpb24udGhhdFJldHVybnNUaGlzID0gZnVuY3Rpb24gKCkge1xuICByZXR1cm4gdGhpcztcbn07XG5lbXB0eUZ1bmN0aW9uLnRoYXRSZXR1cm5zQXJndW1lbnQgPSBmdW5jdGlvbiAoYXJnKSB7XG4gIHJldHVybiBhcmc7XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IGVtcHR5RnVuY3Rpb247XG5cbi8qKiovIH0pLFxuLyogNSAqL1xuLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykge1xuXG5cInVzZSBzdHJpY3RcIjtcbi8qIFdFQlBBQ0sgVkFSIElOSkVDVElPTiAqLyhmdW5jdGlvbihwcm9jZXNzKSB7LyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTMtcHJlc2VudCwgRmFjZWJvb2ssIEluYy5cbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgQlNELXN0eWxlIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuIEFuIGFkZGl0aW9uYWwgZ3JhbnRcbiAqIG9mIHBhdGVudCByaWdodHMgY2FuIGJlIGZvdW5kIGluIHRoZSBQQVRFTlRTIGZpbGUgaW4gdGhlIHNhbWUgZGlyZWN0b3J5LlxuICpcbiAqL1xuXG5cblxuLyoqXG4gKiBVc2UgaW52YXJpYW50KCkgdG8gYXNzZXJ0IHN0YXRlIHdoaWNoIHlvdXIgcHJvZ3JhbSBhc3N1bWVzIHRvIGJlIHRydWUuXG4gKlxuICogUHJvdmlkZSBzcHJpbnRmLXN0eWxlIGZvcm1hdCAob25seSAlcyBpcyBzdXBwb3J0ZWQpIGFuZCBhcmd1bWVudHNcbiAqIHRvIHByb3ZpZGUgaW5mb3JtYXRpb24gYWJvdXQgd2hhdCBicm9rZSBhbmQgd2hhdCB5b3Ugd2VyZVxuICogZXhwZWN0aW5nLlxuICpcbiAqIFRoZSBpbnZhcmlhbnQgbWVzc2FnZSB3aWxsIGJlIHN0cmlwcGVkIGluIHByb2R1Y3Rpb24sIGJ1dCB0aGUgaW52YXJpYW50XG4gKiB3aWxsIHJlbWFpbiB0byBlbnN1cmUgbG9naWMgZG9lcyBub3QgZGlmZmVyIGluIHByb2R1Y3Rpb24uXG4gKi9cblxudmFyIHZhbGlkYXRlRm9ybWF0ID0gZnVuY3Rpb24gdmFsaWRhdGVGb3JtYXQoZm9ybWF0KSB7fTtcblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgdmFsaWRhdGVGb3JtYXQgPSBmdW5jdGlvbiB2YWxpZGF0ZUZvcm1hdChmb3JtYXQpIHtcbiAgICBpZiAoZm9ybWF0ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignaW52YXJpYW50IHJlcXVpcmVzIGFuIGVycm9yIG1lc3NhZ2UgYXJndW1lbnQnKTtcbiAgICB9XG4gIH07XG59XG5cbmZ1bmN0aW9uIGludmFyaWFudChjb25kaXRpb24sIGZvcm1hdCwgYSwgYiwgYywgZCwgZSwgZikge1xuICB2YWxpZGF0ZUZvcm1hdChmb3JtYXQpO1xuXG4gIGlmICghY29uZGl0aW9uKSB7XG4gICAgdmFyIGVycm9yO1xuICAgIGlmIChmb3JtYXQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgZXJyb3IgPSBuZXcgRXJyb3IoJ01pbmlmaWVkIGV4Y2VwdGlvbiBvY2N1cnJlZDsgdXNlIHRoZSBub24tbWluaWZpZWQgZGV2IGVudmlyb25tZW50ICcgKyAnZm9yIHRoZSBmdWxsIGVycm9yIG1lc3NhZ2UgYW5kIGFkZGl0aW9uYWwgaGVscGZ1bCB3YXJuaW5ncy4nKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdmFyIGFyZ3MgPSBbYSwgYiwgYywgZCwgZSwgZl07XG4gICAgICB2YXIgYXJnSW5kZXggPSAwO1xuICAgICAgZXJyb3IgPSBuZXcgRXJyb3IoZm9ybWF0LnJlcGxhY2UoLyVzL2csIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIGFyZ3NbYXJnSW5kZXgrK107XG4gICAgICB9KSk7XG4gICAgICBlcnJvci5uYW1lID0gJ0ludmFyaWFudCBWaW9sYXRpb24nO1xuICAgIH1cblxuICAgIGVycm9yLmZyYW1lc1RvUG9wID0gMTsgLy8gd2UgZG9uJ3QgY2FyZSBhYm91dCBpbnZhcmlhbnQncyBvd24gZnJhbWVcbiAgICB0aHJvdyBlcnJvcjtcbiAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGludmFyaWFudDtcbi8qIFdFQlBBQ0sgVkFSIElOSkVDVElPTiAqL30uY2FsbChleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKDIpKSlcblxuLyoqKi8gfSksXG4vKiA2ICovXG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7XG5cblwidXNlIHN0cmljdFwiO1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxMy1wcmVzZW50LCBGYWNlYm9vaywgSW5jLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBCU0Qtc3R5bGUgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4gQW4gYWRkaXRpb25hbCBncmFudFxuICogb2YgcGF0ZW50IHJpZ2h0cyBjYW4gYmUgZm91bmQgaW4gdGhlIFBBVEVOVFMgZmlsZSBpbiB0aGUgc2FtZSBkaXJlY3RvcnkuXG4gKi9cblxuXG5cbnZhciBSZWFjdFByb3BUeXBlc1NlY3JldCA9ICdTRUNSRVRfRE9fTk9UX1BBU1NfVEhJU19PUl9ZT1VfV0lMTF9CRV9GSVJFRCc7XG5cbm1vZHVsZS5leHBvcnRzID0gUmVhY3RQcm9wVHlwZXNTZWNyZXQ7XG5cblxuLyoqKi8gfSksXG4vKiA3ICovXG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7XG5cblwidXNlIHN0cmljdFwiO1xuXG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcblxuZXhwb3J0cy5kZWZhdWx0ID0gZnVuY3Rpb24gKGRhdGEpIHtcbiAgICByZXR1cm4gTWF0aC5taW4uYXBwbHkoTWF0aCwgZGF0YSk7XG59O1xuXG4vKioqLyB9KSxcbi8qIDggKi9cbi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG4vKiBXRUJQQUNLIFZBUiBJTkpFQ1RJT04gKi8oZnVuY3Rpb24ocHJvY2Vzcykgey8qKlxuICogQ29weXJpZ2h0IDIwMTQtMjAxNSwgRmFjZWJvb2ssIEluYy5cbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgQlNELXN0eWxlIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuIEFuIGFkZGl0aW9uYWwgZ3JhbnRcbiAqIG9mIHBhdGVudCByaWdodHMgY2FuIGJlIGZvdW5kIGluIHRoZSBQQVRFTlRTIGZpbGUgaW4gdGhlIHNhbWUgZGlyZWN0b3J5LlxuICpcbiAqL1xuXG5cblxudmFyIGVtcHR5RnVuY3Rpb24gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDQpO1xuXG4vKipcbiAqIFNpbWlsYXIgdG8gaW52YXJpYW50IGJ1dCBvbmx5IGxvZ3MgYSB3YXJuaW5nIGlmIHRoZSBjb25kaXRpb24gaXMgbm90IG1ldC5cbiAqIFRoaXMgY2FuIGJlIHVzZWQgdG8gbG9nIGlzc3VlcyBpbiBkZXZlbG9wbWVudCBlbnZpcm9ubWVudHMgaW4gY3JpdGljYWxcbiAqIHBhdGhzLiBSZW1vdmluZyB0aGUgbG9nZ2luZyBjb2RlIGZvciBwcm9kdWN0aW9uIGVudmlyb25tZW50cyB3aWxsIGtlZXAgdGhlXG4gKiBzYW1lIGxvZ2ljIGFuZCBmb2xsb3cgdGhlIHNhbWUgY29kZSBwYXRocy5cbiAqL1xuXG52YXIgd2FybmluZyA9IGVtcHR5RnVuY3Rpb247XG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gIHZhciBwcmludFdhcm5pbmcgPSBmdW5jdGlvbiBwcmludFdhcm5pbmcoZm9ybWF0KSB7XG4gICAgZm9yICh2YXIgX2xlbiA9IGFyZ3VtZW50cy5sZW5ndGgsIGFyZ3MgPSBBcnJheShfbGVuID4gMSA/IF9sZW4gLSAxIDogMCksIF9rZXkgPSAxOyBfa2V5IDwgX2xlbjsgX2tleSsrKSB7XG4gICAgICBhcmdzW19rZXkgLSAxXSA9IGFyZ3VtZW50c1tfa2V5XTtcbiAgICB9XG5cbiAgICB2YXIgYXJnSW5kZXggPSAwO1xuICAgIHZhciBtZXNzYWdlID0gJ1dhcm5pbmc6ICcgKyBmb3JtYXQucmVwbGFjZSgvJXMvZywgZnVuY3Rpb24gKCkge1xuICAgICAgcmV0dXJuIGFyZ3NbYXJnSW5kZXgrK107XG4gICAgfSk7XG4gICAgaWYgKHR5cGVvZiBjb25zb2xlICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgY29uc29sZS5lcnJvcihtZXNzYWdlKTtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgIC8vIC0tLSBXZWxjb21lIHRvIGRlYnVnZ2luZyBSZWFjdCAtLS1cbiAgICAgIC8vIFRoaXMgZXJyb3Igd2FzIHRocm93biBhcyBhIGNvbnZlbmllbmNlIHNvIHRoYXQgeW91IGNhbiB1c2UgdGhpcyBzdGFja1xuICAgICAgLy8gdG8gZmluZCB0aGUgY2FsbHNpdGUgdGhhdCBjYXVzZWQgdGhpcyB3YXJuaW5nIHRvIGZpcmUuXG4gICAgICB0aHJvdyBuZXcgRXJyb3IobWVzc2FnZSk7XG4gICAgfSBjYXRjaCAoeCkge31cbiAgfTtcblxuICB3YXJuaW5nID0gZnVuY3Rpb24gd2FybmluZyhjb25kaXRpb24sIGZvcm1hdCkge1xuICAgIGlmIChmb3JtYXQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdgd2FybmluZyhjb25kaXRpb24sIGZvcm1hdCwgLi4uYXJncylgIHJlcXVpcmVzIGEgd2FybmluZyAnICsgJ21lc3NhZ2UgYXJndW1lbnQnKTtcbiAgICB9XG5cbiAgICBpZiAoZm9ybWF0LmluZGV4T2YoJ0ZhaWxlZCBDb21wb3NpdGUgcHJvcFR5cGU6ICcpID09PSAwKSB7XG4gICAgICByZXR1cm47IC8vIElnbm9yZSBDb21wb3NpdGVDb21wb25lbnQgcHJvcHR5cGUgY2hlY2suXG4gICAgfVxuXG4gICAgaWYgKCFjb25kaXRpb24pIHtcbiAgICAgIGZvciAodmFyIF9sZW4yID0gYXJndW1lbnRzLmxlbmd0aCwgYXJncyA9IEFycmF5KF9sZW4yID4gMiA/IF9sZW4yIC0gMiA6IDApLCBfa2V5MiA9IDI7IF9rZXkyIDwgX2xlbjI7IF9rZXkyKyspIHtcbiAgICAgICAgYXJnc1tfa2V5MiAtIDJdID0gYXJndW1lbnRzW19rZXkyXTtcbiAgICAgIH1cblxuICAgICAgcHJpbnRXYXJuaW5nLmFwcGx5KHVuZGVmaW5lZCwgW2Zvcm1hdF0uY29uY2F0KGFyZ3MpKTtcbiAgICB9XG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gd2FybmluZztcbi8qIFdFQlBBQ0sgVkFSIElOSkVDVElPTiAqL30uY2FsbChleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKDIpKSlcblxuLyoqKi8gfSksXG4vKiA5ICovXG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7XG5cblwidXNlIHN0cmljdFwiO1xuXG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcblxuZXhwb3J0cy5kZWZhdWx0ID0gZnVuY3Rpb24gKGRhdGEpIHtcbiAgICByZXR1cm4gTWF0aC5tYXguYXBwbHkoTWF0aCwgZGF0YSk7XG59O1xuXG4vKioqLyB9KSxcbi8qIDEwICovXG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7XG5cblwidXNlIHN0cmljdFwiO1xuXG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcblxudmFyIF9tZWFuID0gX193ZWJwYWNrX3JlcXVpcmVfXygzKTtcblxudmFyIF9tZWFuMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21lYW4pO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBkZWZhdWx0OiBvYmogfTsgfVxuXG5leHBvcnRzLmRlZmF1bHQgPSBmdW5jdGlvbiAoZGF0YSkge1xuICAgIHZhciBkYXRhTWVhbiA9ICgwLCBfbWVhbjIuZGVmYXVsdCkoZGF0YSk7XG4gICAgdmFyIHNxRGlmZiA9IGRhdGEubWFwKGZ1bmN0aW9uIChuKSB7XG4gICAgICAgIHJldHVybiBNYXRoLnBvdyhuIC0gZGF0YU1lYW4sIDIpO1xuICAgIH0pO1xuICAgIHZhciBhdmdTcURpZmYgPSAoMCwgX21lYW4yLmRlZmF1bHQpKHNxRGlmZik7XG4gICAgcmV0dXJuIE1hdGguc3FydChhdmdTcURpZmYpO1xufTtcblxuLyoqKi8gfSksXG4vKiAxMSAqL1xuLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykge1xuXG5tb2R1bGUuZXhwb3J0cyA9IF9fd2VicGFja19yZXF1aXJlX18oMTIpO1xuXG5cbi8qKiovIH0pLFxuLyogMTIgKi9cbi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG5cblxubW9kdWxlLmV4cG9ydHMgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDEzKTtcblxuLyoqKi8gfSksXG4vKiAxMyAqL1xuLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykge1xuXG5cInVzZSBzdHJpY3RcIjtcblxuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLlNwYXJrbGluZXNUZXh0ID0gZXhwb3J0cy5TcGFya2xpbmVzTm9ybWFsQmFuZCA9IGV4cG9ydHMuU3BhcmtsaW5lc1JlZmVyZW5jZUxpbmUgPSBleHBvcnRzLlNwYXJrbGluZXNTcG90cyA9IGV4cG9ydHMuU3BhcmtsaW5lc0JhcnMgPSBleHBvcnRzLlNwYXJrbGluZXNDdXJ2ZSA9IGV4cG9ydHMuU3BhcmtsaW5lc0xpbmUgPSBleHBvcnRzLlNwYXJrbGluZXMgPSB1bmRlZmluZWQ7XG5cbnZhciBfY3JlYXRlQ2xhc3MgPSBmdW5jdGlvbiAoKSB7IGZ1bmN0aW9uIGRlZmluZVByb3BlcnRpZXModGFyZ2V0LCBwcm9wcykgeyBmb3IgKHZhciBpID0gMDsgaSA8IHByb3BzLmxlbmd0aDsgaSsrKSB7IHZhciBkZXNjcmlwdG9yID0gcHJvcHNbaV07IGRlc2NyaXB0b3IuZW51bWVyYWJsZSA9IGRlc2NyaXB0b3IuZW51bWVyYWJsZSB8fCBmYWxzZTsgZGVzY3JpcHRvci5jb25maWd1cmFibGUgPSB0cnVlOyBpZiAoXCJ2YWx1ZVwiIGluIGRlc2NyaXB0b3IpIGRlc2NyaXB0b3Iud3JpdGFibGUgPSB0cnVlOyBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBkZXNjcmlwdG9yLmtleSwgZGVzY3JpcHRvcik7IH0gfSByZXR1cm4gZnVuY3Rpb24gKENvbnN0cnVjdG9yLCBwcm90b1Byb3BzLCBzdGF0aWNQcm9wcykgeyBpZiAocHJvdG9Qcm9wcykgZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvci5wcm90b3R5cGUsIHByb3RvUHJvcHMpOyBpZiAoc3RhdGljUHJvcHMpIGRlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IsIHN0YXRpY1Byb3BzKTsgcmV0dXJuIENvbnN0cnVjdG9yOyB9OyB9KCk7XG5cbnZhciBfcHJvcFR5cGVzID0gX193ZWJwYWNrX3JlcXVpcmVfXygwKTtcblxudmFyIF9wcm9wVHlwZXMyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfcHJvcFR5cGVzKTtcblxudmFyIF9yZWFjdCA9IF9fd2VicGFja19yZXF1aXJlX18oMSk7XG5cbnZhciBfcmVhY3QyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfcmVhY3QpO1xuXG52YXIgX1NwYXJrbGluZXNUZXh0ID0gX193ZWJwYWNrX3JlcXVpcmVfXygxNyk7XG5cbnZhciBfU3BhcmtsaW5lc1RleHQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfU3BhcmtsaW5lc1RleHQpO1xuXG52YXIgX1NwYXJrbGluZXNMaW5lID0gX193ZWJwYWNrX3JlcXVpcmVfXygxOCk7XG5cbnZhciBfU3BhcmtsaW5lc0xpbmUyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfU3BhcmtsaW5lc0xpbmUpO1xuXG52YXIgX1NwYXJrbGluZXNDdXJ2ZSA9IF9fd2VicGFja19yZXF1aXJlX18oMTkpO1xuXG52YXIgX1NwYXJrbGluZXNDdXJ2ZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9TcGFya2xpbmVzQ3VydmUpO1xuXG52YXIgX1NwYXJrbGluZXNCYXJzID0gX193ZWJwYWNrX3JlcXVpcmVfXygyMCk7XG5cbnZhciBfU3BhcmtsaW5lc0JhcnMyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfU3BhcmtsaW5lc0JhcnMpO1xuXG52YXIgX1NwYXJrbGluZXNTcG90cyA9IF9fd2VicGFja19yZXF1aXJlX18oMjEpO1xuXG52YXIgX1NwYXJrbGluZXNTcG90czIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9TcGFya2xpbmVzU3BvdHMpO1xuXG52YXIgX1NwYXJrbGluZXNSZWZlcmVuY2VMaW5lID0gX193ZWJwYWNrX3JlcXVpcmVfXygyMik7XG5cbnZhciBfU3BhcmtsaW5lc1JlZmVyZW5jZUxpbmUyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfU3BhcmtsaW5lc1JlZmVyZW5jZUxpbmUpO1xuXG52YXIgX1NwYXJrbGluZXNOb3JtYWxCYW5kID0gX193ZWJwYWNrX3JlcXVpcmVfXygyNyk7XG5cbnZhciBfU3BhcmtsaW5lc05vcm1hbEJhbmQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfU3BhcmtsaW5lc05vcm1hbEJhbmQpO1xuXG52YXIgX2RhdGFUb1BvaW50cyA9IF9fd2VicGFja19yZXF1aXJlX18oMjgpO1xuXG52YXIgX2RhdGFUb1BvaW50czIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9kYXRhVG9Qb2ludHMpO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBkZWZhdWx0OiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIik7IH0gfVxuXG5mdW5jdGlvbiBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybihzZWxmLCBjYWxsKSB7IGlmICghc2VsZikgeyB0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoXCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWRcIik7IH0gcmV0dXJuIGNhbGwgJiYgKHR5cGVvZiBjYWxsID09PSBcIm9iamVjdFwiIHx8IHR5cGVvZiBjYWxsID09PSBcImZ1bmN0aW9uXCIpID8gY2FsbCA6IHNlbGY7IH1cblxuZnVuY3Rpb24gX2luaGVyaXRzKHN1YkNsYXNzLCBzdXBlckNsYXNzKSB7IGlmICh0eXBlb2Ygc3VwZXJDbGFzcyAhPT0gXCJmdW5jdGlvblwiICYmIHN1cGVyQ2xhc3MgIT09IG51bGwpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uLCBub3QgXCIgKyB0eXBlb2Ygc3VwZXJDbGFzcyk7IH0gc3ViQ2xhc3MucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShzdXBlckNsYXNzICYmIHN1cGVyQ2xhc3MucHJvdG90eXBlLCB7IGNvbnN0cnVjdG9yOiB7IHZhbHVlOiBzdWJDbGFzcywgZW51bWVyYWJsZTogZmFsc2UsIHdyaXRhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUgfSB9KTsgaWYgKHN1cGVyQ2xhc3MpIE9iamVjdC5zZXRQcm90b3R5cGVPZiA/IE9iamVjdC5zZXRQcm90b3R5cGVPZihzdWJDbGFzcywgc3VwZXJDbGFzcykgOiBzdWJDbGFzcy5fX3Byb3RvX18gPSBzdXBlckNsYXNzOyB9XG5cbnZhciBTcGFya2xpbmVzID0gZnVuY3Rpb24gKF9QdXJlQ29tcG9uZW50KSB7XG4gICAgX2luaGVyaXRzKFNwYXJrbGluZXMsIF9QdXJlQ29tcG9uZW50KTtcblxuICAgIGZ1bmN0aW9uIFNwYXJrbGluZXMocHJvcHMpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFNwYXJrbGluZXMpO1xuXG4gICAgICAgIHJldHVybiBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybih0aGlzLCAoU3BhcmtsaW5lcy5fX3Byb3RvX18gfHwgT2JqZWN0LmdldFByb3RvdHlwZU9mKFNwYXJrbGluZXMpKS5jYWxsKHRoaXMsIHByb3BzKSk7XG4gICAgfVxuXG4gICAgX2NyZWF0ZUNsYXNzKFNwYXJrbGluZXMsIFt7XG4gICAgICAgIGtleTogJ3JlbmRlcicsXG4gICAgICAgIHZhbHVlOiBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICAgICAgICB2YXIgX3Byb3BzID0gdGhpcy5wcm9wcyxcbiAgICAgICAgICAgICAgICBkYXRhID0gX3Byb3BzLmRhdGEsXG4gICAgICAgICAgICAgICAgbGltaXQgPSBfcHJvcHMubGltaXQsXG4gICAgICAgICAgICAgICAgd2lkdGggPSBfcHJvcHMud2lkdGgsXG4gICAgICAgICAgICAgICAgaGVpZ2h0ID0gX3Byb3BzLmhlaWdodCxcbiAgICAgICAgICAgICAgICBzdmdXaWR0aCA9IF9wcm9wcy5zdmdXaWR0aCxcbiAgICAgICAgICAgICAgICBzdmdIZWlnaHQgPSBfcHJvcHMuc3ZnSGVpZ2h0LFxuICAgICAgICAgICAgICAgIHByZXNlcnZlQXNwZWN0UmF0aW8gPSBfcHJvcHMucHJlc2VydmVBc3BlY3RSYXRpbyxcbiAgICAgICAgICAgICAgICBtYXJnaW4gPSBfcHJvcHMubWFyZ2luLFxuICAgICAgICAgICAgICAgIHN0eWxlID0gX3Byb3BzLnN0eWxlLFxuICAgICAgICAgICAgICAgIG1heCA9IF9wcm9wcy5tYXgsXG4gICAgICAgICAgICAgICAgbWluID0gX3Byb3BzLm1pbjtcblxuXG4gICAgICAgICAgICBpZiAoZGF0YS5sZW5ndGggPT09IDApIHJldHVybiBudWxsO1xuXG4gICAgICAgICAgICB2YXIgcG9pbnRzID0gKDAsIF9kYXRhVG9Qb2ludHMyLmRlZmF1bHQpKHsgZGF0YTogZGF0YSwgbGltaXQ6IGxpbWl0LCB3aWR0aDogd2lkdGgsIGhlaWdodDogaGVpZ2h0LCBtYXJnaW46IG1hcmdpbiwgbWF4OiBtYXgsIG1pbjogbWluIH0pO1xuXG4gICAgICAgICAgICB2YXIgc3ZnT3B0cyA9IHsgc3R5bGU6IHN0eWxlLCB2aWV3Qm94OiAnMCAwICcgKyB3aWR0aCArICcgJyArIGhlaWdodCwgcHJlc2VydmVBc3BlY3RSYXRpbzogcHJlc2VydmVBc3BlY3RSYXRpbyB9O1xuICAgICAgICAgICAgaWYgKHN2Z1dpZHRoID4gMCkgc3ZnT3B0cy53aWR0aCA9IHN2Z1dpZHRoO1xuICAgICAgICAgICAgaWYgKHN2Z0hlaWdodCA+IDApIHN2Z09wdHMuaGVpZ2h0ID0gc3ZnSGVpZ2h0O1xuXG4gICAgICAgICAgICByZXR1cm4gX3JlYWN0Mi5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAgICAgJ3N2ZycsXG4gICAgICAgICAgICAgICAgc3ZnT3B0cyxcbiAgICAgICAgICAgICAgICBfcmVhY3QyLmRlZmF1bHQuQ2hpbGRyZW4ubWFwKHRoaXMucHJvcHMuY2hpbGRyZW4sIGZ1bmN0aW9uIChjaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gX3JlYWN0Mi5kZWZhdWx0LmNsb25lRWxlbWVudChjaGlsZCwgeyBkYXRhOiBkYXRhLCBwb2ludHM6IHBvaW50cywgd2lkdGg6IHdpZHRoLCBoZWlnaHQ6IGhlaWdodCwgbWFyZ2luOiBtYXJnaW4gfSk7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XSk7XG5cbiAgICByZXR1cm4gU3BhcmtsaW5lcztcbn0oX3JlYWN0LlB1cmVDb21wb25lbnQpO1xuXG5TcGFya2xpbmVzLnByb3BUeXBlcyA9IHtcbiAgICBkYXRhOiBfcHJvcFR5cGVzMi5kZWZhdWx0LmFycmF5LFxuICAgIGxpbWl0OiBfcHJvcFR5cGVzMi5kZWZhdWx0Lm51bWJlcixcbiAgICB3aWR0aDogX3Byb3BUeXBlczIuZGVmYXVsdC5udW1iZXIsXG4gICAgaGVpZ2h0OiBfcHJvcFR5cGVzMi5kZWZhdWx0Lm51bWJlcixcbiAgICBzdmdXaWR0aDogX3Byb3BUeXBlczIuZGVmYXVsdC5udW1iZXIsXG4gICAgc3ZnSGVpZ2h0OiBfcHJvcFR5cGVzMi5kZWZhdWx0Lm51bWJlcixcbiAgICBwcmVzZXJ2ZUFzcGVjdFJhdGlvOiBfcHJvcFR5cGVzMi5kZWZhdWx0LnN0cmluZyxcbiAgICBtYXJnaW46IF9wcm9wVHlwZXMyLmRlZmF1bHQubnVtYmVyLFxuICAgIHN0eWxlOiBfcHJvcFR5cGVzMi5kZWZhdWx0Lm9iamVjdCxcbiAgICBtaW46IF9wcm9wVHlwZXMyLmRlZmF1bHQubnVtYmVyLFxuICAgIG1heDogX3Byb3BUeXBlczIuZGVmYXVsdC5udW1iZXIsXG4gICAgb25Nb3VzZU1vdmU6IF9wcm9wVHlwZXMyLmRlZmF1bHQuZnVuY1xufTtcblNwYXJrbGluZXMuZGVmYXVsdFByb3BzID0ge1xuICAgIGRhdGE6IFtdLFxuICAgIHdpZHRoOiAyNDAsXG4gICAgaGVpZ2h0OiA2MCxcbiAgICAvL1NjYWxlIHRoZSBncmFwaGljIGNvbnRlbnQgb2YgdGhlIGdpdmVuIGVsZW1lbnQgbm9uLXVuaWZvcm1seSBpZiBuZWNlc3Nhcnkgc3VjaCB0aGF0IHRoZSBlbGVtZW50J3MgYm91bmRpbmcgYm94IGV4YWN0bHkgbWF0Y2hlcyB0aGUgdmlld3BvcnQgcmVjdGFuZ2xlLlxuICAgIHByZXNlcnZlQXNwZWN0UmF0aW86ICdub25lJywgLy9odHRwczovL3d3dy53My5vcmcvVFIvU1ZHL2Nvb3Jkcy5odG1sI1ByZXNlcnZlQXNwZWN0UmF0aW9BdHRyaWJ1dGVcbiAgICBtYXJnaW46IDJcbn07XG5leHBvcnRzLlNwYXJrbGluZXMgPSBTcGFya2xpbmVzO1xuZXhwb3J0cy5TcGFya2xpbmVzTGluZSA9IF9TcGFya2xpbmVzTGluZTIuZGVmYXVsdDtcbmV4cG9ydHMuU3BhcmtsaW5lc0N1cnZlID0gX1NwYXJrbGluZXNDdXJ2ZTIuZGVmYXVsdDtcbmV4cG9ydHMuU3BhcmtsaW5lc0JhcnMgPSBfU3BhcmtsaW5lc0JhcnMyLmRlZmF1bHQ7XG5leHBvcnRzLlNwYXJrbGluZXNTcG90cyA9IF9TcGFya2xpbmVzU3BvdHMyLmRlZmF1bHQ7XG5leHBvcnRzLlNwYXJrbGluZXNSZWZlcmVuY2VMaW5lID0gX1NwYXJrbGluZXNSZWZlcmVuY2VMaW5lMi5kZWZhdWx0O1xuZXhwb3J0cy5TcGFya2xpbmVzTm9ybWFsQmFuZCA9IF9TcGFya2xpbmVzTm9ybWFsQmFuZDIuZGVmYXVsdDtcbmV4cG9ydHMuU3BhcmtsaW5lc1RleHQgPSBfU3BhcmtsaW5lc1RleHQyLmRlZmF1bHQ7XG5cbi8qKiovIH0pLFxuLyogMTQgKi9cbi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG4vKiBXRUJQQUNLIFZBUiBJTkpFQ1RJT04gKi8oZnVuY3Rpb24ocHJvY2Vzcykgey8qKlxuICogQ29weXJpZ2h0IDIwMTMtcHJlc2VudCwgRmFjZWJvb2ssIEluYy5cbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgQlNELXN0eWxlIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuIEFuIGFkZGl0aW9uYWwgZ3JhbnRcbiAqIG9mIHBhdGVudCByaWdodHMgY2FuIGJlIGZvdW5kIGluIHRoZSBQQVRFTlRTIGZpbGUgaW4gdGhlIHNhbWUgZGlyZWN0b3J5LlxuICovXG5cblxuXG52YXIgZW1wdHlGdW5jdGlvbiA9IF9fd2VicGFja19yZXF1aXJlX18oNCk7XG52YXIgaW52YXJpYW50ID0gX193ZWJwYWNrX3JlcXVpcmVfXyg1KTtcbnZhciB3YXJuaW5nID0gX193ZWJwYWNrX3JlcXVpcmVfXyg4KTtcblxudmFyIFJlYWN0UHJvcFR5cGVzU2VjcmV0ID0gX193ZWJwYWNrX3JlcXVpcmVfXyg2KTtcbnZhciBjaGVja1Byb3BUeXBlcyA9IF9fd2VicGFja19yZXF1aXJlX18oMTUpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKGlzVmFsaWRFbGVtZW50LCB0aHJvd09uRGlyZWN0QWNjZXNzKSB7XG4gIC8qIGdsb2JhbCBTeW1ib2wgKi9cbiAgdmFyIElURVJBVE9SX1NZTUJPTCA9IHR5cGVvZiBTeW1ib2wgPT09ICdmdW5jdGlvbicgJiYgU3ltYm9sLml0ZXJhdG9yO1xuICB2YXIgRkFVWF9JVEVSQVRPUl9TWU1CT0wgPSAnQEBpdGVyYXRvcic7IC8vIEJlZm9yZSBTeW1ib2wgc3BlYy5cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgaXRlcmF0b3IgbWV0aG9kIGZ1bmN0aW9uIGNvbnRhaW5lZCBvbiB0aGUgaXRlcmFibGUgb2JqZWN0LlxuICAgKlxuICAgKiBCZSBzdXJlIHRvIGludm9rZSB0aGUgZnVuY3Rpb24gd2l0aCB0aGUgaXRlcmFibGUgYXMgY29udGV4dDpcbiAgICpcbiAgICogICAgIHZhciBpdGVyYXRvckZuID0gZ2V0SXRlcmF0b3JGbihteUl0ZXJhYmxlKTtcbiAgICogICAgIGlmIChpdGVyYXRvckZuKSB7XG4gICAqICAgICAgIHZhciBpdGVyYXRvciA9IGl0ZXJhdG9yRm4uY2FsbChteUl0ZXJhYmxlKTtcbiAgICogICAgICAgLi4uXG4gICAqICAgICB9XG4gICAqXG4gICAqIEBwYXJhbSB7P29iamVjdH0gbWF5YmVJdGVyYWJsZVxuICAgKiBAcmV0dXJuIHs/ZnVuY3Rpb259XG4gICAqL1xuICBmdW5jdGlvbiBnZXRJdGVyYXRvckZuKG1heWJlSXRlcmFibGUpIHtcbiAgICB2YXIgaXRlcmF0b3JGbiA9IG1heWJlSXRlcmFibGUgJiYgKElURVJBVE9SX1NZTUJPTCAmJiBtYXliZUl0ZXJhYmxlW0lURVJBVE9SX1NZTUJPTF0gfHwgbWF5YmVJdGVyYWJsZVtGQVVYX0lURVJBVE9SX1NZTUJPTF0pO1xuICAgIGlmICh0eXBlb2YgaXRlcmF0b3JGbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgcmV0dXJuIGl0ZXJhdG9yRm47XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENvbGxlY3Rpb24gb2YgbWV0aG9kcyB0aGF0IGFsbG93IGRlY2xhcmF0aW9uIGFuZCB2YWxpZGF0aW9uIG9mIHByb3BzIHRoYXQgYXJlXG4gICAqIHN1cHBsaWVkIHRvIFJlYWN0IGNvbXBvbmVudHMuIEV4YW1wbGUgdXNhZ2U6XG4gICAqXG4gICAqICAgdmFyIFByb3BzID0gcmVxdWlyZSgnUmVhY3RQcm9wVHlwZXMnKTtcbiAgICogICB2YXIgTXlBcnRpY2xlID0gUmVhY3QuY3JlYXRlQ2xhc3Moe1xuICAgKiAgICAgcHJvcFR5cGVzOiB7XG4gICAqICAgICAgIC8vIEFuIG9wdGlvbmFsIHN0cmluZyBwcm9wIG5hbWVkIFwiZGVzY3JpcHRpb25cIi5cbiAgICogICAgICAgZGVzY3JpcHRpb246IFByb3BzLnN0cmluZyxcbiAgICpcbiAgICogICAgICAgLy8gQSByZXF1aXJlZCBlbnVtIHByb3AgbmFtZWQgXCJjYXRlZ29yeVwiLlxuICAgKiAgICAgICBjYXRlZ29yeTogUHJvcHMub25lT2YoWydOZXdzJywnUGhvdG9zJ10pLmlzUmVxdWlyZWQsXG4gICAqXG4gICAqICAgICAgIC8vIEEgcHJvcCBuYW1lZCBcImRpYWxvZ1wiIHRoYXQgcmVxdWlyZXMgYW4gaW5zdGFuY2Ugb2YgRGlhbG9nLlxuICAgKiAgICAgICBkaWFsb2c6IFByb3BzLmluc3RhbmNlT2YoRGlhbG9nKS5pc1JlcXVpcmVkXG4gICAqICAgICB9LFxuICAgKiAgICAgcmVuZGVyOiBmdW5jdGlvbigpIHsgLi4uIH1cbiAgICogICB9KTtcbiAgICpcbiAgICogQSBtb3JlIGZvcm1hbCBzcGVjaWZpY2F0aW9uIG9mIGhvdyB0aGVzZSBtZXRob2RzIGFyZSB1c2VkOlxuICAgKlxuICAgKiAgIHR5cGUgOj0gYXJyYXl8Ym9vbHxmdW5jfG9iamVjdHxudW1iZXJ8c3RyaW5nfG9uZU9mKFsuLi5dKXxpbnN0YW5jZU9mKC4uLilcbiAgICogICBkZWNsIDo9IFJlYWN0UHJvcFR5cGVzLnt0eXBlfSguaXNSZXF1aXJlZCk/XG4gICAqXG4gICAqIEVhY2ggYW5kIGV2ZXJ5IGRlY2xhcmF0aW9uIHByb2R1Y2VzIGEgZnVuY3Rpb24gd2l0aCB0aGUgc2FtZSBzaWduYXR1cmUuIFRoaXNcbiAgICogYWxsb3dzIHRoZSBjcmVhdGlvbiBvZiBjdXN0b20gdmFsaWRhdGlvbiBmdW5jdGlvbnMuIEZvciBleGFtcGxlOlxuICAgKlxuICAgKiAgdmFyIE15TGluayA9IFJlYWN0LmNyZWF0ZUNsYXNzKHtcbiAgICogICAgcHJvcFR5cGVzOiB7XG4gICAqICAgICAgLy8gQW4gb3B0aW9uYWwgc3RyaW5nIG9yIFVSSSBwcm9wIG5hbWVkIFwiaHJlZlwiLlxuICAgKiAgICAgIGhyZWY6IGZ1bmN0aW9uKHByb3BzLCBwcm9wTmFtZSwgY29tcG9uZW50TmFtZSkge1xuICAgKiAgICAgICAgdmFyIHByb3BWYWx1ZSA9IHByb3BzW3Byb3BOYW1lXTtcbiAgICogICAgICAgIGlmIChwcm9wVmFsdWUgIT0gbnVsbCAmJiB0eXBlb2YgcHJvcFZhbHVlICE9PSAnc3RyaW5nJyAmJlxuICAgKiAgICAgICAgICAgICEocHJvcFZhbHVlIGluc3RhbmNlb2YgVVJJKSkge1xuICAgKiAgICAgICAgICByZXR1cm4gbmV3IEVycm9yKFxuICAgKiAgICAgICAgICAgICdFeHBlY3RlZCBhIHN0cmluZyBvciBhbiBVUkkgZm9yICcgKyBwcm9wTmFtZSArICcgaW4gJyArXG4gICAqICAgICAgICAgICAgY29tcG9uZW50TmFtZVxuICAgKiAgICAgICAgICApO1xuICAgKiAgICAgICAgfVxuICAgKiAgICAgIH1cbiAgICogICAgfSxcbiAgICogICAgcmVuZGVyOiBmdW5jdGlvbigpIHsuLi59XG4gICAqICB9KTtcbiAgICpcbiAgICogQGludGVybmFsXG4gICAqL1xuXG4gIHZhciBBTk9OWU1PVVMgPSAnPDxhbm9ueW1vdXM+Pic7XG5cbiAgLy8gSW1wb3J0YW50IVxuICAvLyBLZWVwIHRoaXMgbGlzdCBpbiBzeW5jIHdpdGggcHJvZHVjdGlvbiB2ZXJzaW9uIGluIGAuL2ZhY3RvcnlXaXRoVGhyb3dpbmdTaGltcy5qc2AuXG4gIHZhciBSZWFjdFByb3BUeXBlcyA9IHtcbiAgICBhcnJheTogY3JlYXRlUHJpbWl0aXZlVHlwZUNoZWNrZXIoJ2FycmF5JyksXG4gICAgYm9vbDogY3JlYXRlUHJpbWl0aXZlVHlwZUNoZWNrZXIoJ2Jvb2xlYW4nKSxcbiAgICBmdW5jOiBjcmVhdGVQcmltaXRpdmVUeXBlQ2hlY2tlcignZnVuY3Rpb24nKSxcbiAgICBudW1iZXI6IGNyZWF0ZVByaW1pdGl2ZVR5cGVDaGVja2VyKCdudW1iZXInKSxcbiAgICBvYmplY3Q6IGNyZWF0ZVByaW1pdGl2ZVR5cGVDaGVja2VyKCdvYmplY3QnKSxcbiAgICBzdHJpbmc6IGNyZWF0ZVByaW1pdGl2ZVR5cGVDaGVja2VyKCdzdHJpbmcnKSxcbiAgICBzeW1ib2w6IGNyZWF0ZVByaW1pdGl2ZVR5cGVDaGVja2VyKCdzeW1ib2wnKSxcblxuICAgIGFueTogY3JlYXRlQW55VHlwZUNoZWNrZXIoKSxcbiAgICBhcnJheU9mOiBjcmVhdGVBcnJheU9mVHlwZUNoZWNrZXIsXG4gICAgZWxlbWVudDogY3JlYXRlRWxlbWVudFR5cGVDaGVja2VyKCksXG4gICAgaW5zdGFuY2VPZjogY3JlYXRlSW5zdGFuY2VUeXBlQ2hlY2tlcixcbiAgICBub2RlOiBjcmVhdGVOb2RlQ2hlY2tlcigpLFxuICAgIG9iamVjdE9mOiBjcmVhdGVPYmplY3RPZlR5cGVDaGVja2VyLFxuICAgIG9uZU9mOiBjcmVhdGVFbnVtVHlwZUNoZWNrZXIsXG4gICAgb25lT2ZUeXBlOiBjcmVhdGVVbmlvblR5cGVDaGVja2VyLFxuICAgIHNoYXBlOiBjcmVhdGVTaGFwZVR5cGVDaGVja2VyXG4gIH07XG5cbiAgLyoqXG4gICAqIGlubGluZWQgT2JqZWN0LmlzIHBvbHlmaWxsIHRvIGF2b2lkIHJlcXVpcmluZyBjb25zdW1lcnMgc2hpcCB0aGVpciBvd25cbiAgICogaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSmF2YVNjcmlwdC9SZWZlcmVuY2UvR2xvYmFsX09iamVjdHMvT2JqZWN0L2lzXG4gICAqL1xuICAvKmVzbGludC1kaXNhYmxlIG5vLXNlbGYtY29tcGFyZSovXG4gIGZ1bmN0aW9uIGlzKHgsIHkpIHtcbiAgICAvLyBTYW1lVmFsdWUgYWxnb3JpdGhtXG4gICAgaWYgKHggPT09IHkpIHtcbiAgICAgIC8vIFN0ZXBzIDEtNSwgNy0xMFxuICAgICAgLy8gU3RlcHMgNi5iLTYuZTogKzAgIT0gLTBcbiAgICAgIHJldHVybiB4ICE9PSAwIHx8IDEgLyB4ID09PSAxIC8geTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gU3RlcCA2LmE6IE5hTiA9PSBOYU5cbiAgICAgIHJldHVybiB4ICE9PSB4ICYmIHkgIT09IHk7XG4gICAgfVxuICB9XG4gIC8qZXNsaW50LWVuYWJsZSBuby1zZWxmLWNvbXBhcmUqL1xuXG4gIC8qKlxuICAgKiBXZSB1c2UgYW4gRXJyb3ItbGlrZSBvYmplY3QgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgYXMgcGVvcGxlIG1heSBjYWxsXG4gICAqIFByb3BUeXBlcyBkaXJlY3RseSBhbmQgaW5zcGVjdCB0aGVpciBvdXRwdXQuIEhvd2V2ZXIsIHdlIGRvbid0IHVzZSByZWFsXG4gICAqIEVycm9ycyBhbnltb3JlLiBXZSBkb24ndCBpbnNwZWN0IHRoZWlyIHN0YWNrIGFueXdheSwgYW5kIGNyZWF0aW5nIHRoZW1cbiAgICogaXMgcHJvaGliaXRpdmVseSBleHBlbnNpdmUgaWYgdGhleSBhcmUgY3JlYXRlZCB0b28gb2Z0ZW4sIHN1Y2ggYXMgd2hhdFxuICAgKiBoYXBwZW5zIGluIG9uZU9mVHlwZSgpIGZvciBhbnkgdHlwZSBiZWZvcmUgdGhlIG9uZSB0aGF0IG1hdGNoZWQuXG4gICAqL1xuICBmdW5jdGlvbiBQcm9wVHlwZUVycm9yKG1lc3NhZ2UpIHtcbiAgICB0aGlzLm1lc3NhZ2UgPSBtZXNzYWdlO1xuICAgIHRoaXMuc3RhY2sgPSAnJztcbiAgfVxuICAvLyBNYWtlIGBpbnN0YW5jZW9mIEVycm9yYCBzdGlsbCB3b3JrIGZvciByZXR1cm5lZCBlcnJvcnMuXG4gIFByb3BUeXBlRXJyb3IucHJvdG90eXBlID0gRXJyb3IucHJvdG90eXBlO1xuXG4gIGZ1bmN0aW9uIGNyZWF0ZUNoYWluYWJsZVR5cGVDaGVja2VyKHZhbGlkYXRlKSB7XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgIHZhciBtYW51YWxQcm9wVHlwZUNhbGxDYWNoZSA9IHt9O1xuICAgICAgdmFyIG1hbnVhbFByb3BUeXBlV2FybmluZ0NvdW50ID0gMDtcbiAgICB9XG4gICAgZnVuY3Rpb24gY2hlY2tUeXBlKGlzUmVxdWlyZWQsIHByb3BzLCBwcm9wTmFtZSwgY29tcG9uZW50TmFtZSwgbG9jYXRpb24sIHByb3BGdWxsTmFtZSwgc2VjcmV0KSB7XG4gICAgICBjb21wb25lbnROYW1lID0gY29tcG9uZW50TmFtZSB8fCBBTk9OWU1PVVM7XG4gICAgICBwcm9wRnVsbE5hbWUgPSBwcm9wRnVsbE5hbWUgfHwgcHJvcE5hbWU7XG5cbiAgICAgIGlmIChzZWNyZXQgIT09IFJlYWN0UHJvcFR5cGVzU2VjcmV0KSB7XG4gICAgICAgIGlmICh0aHJvd09uRGlyZWN0QWNjZXNzKSB7XG4gICAgICAgICAgLy8gTmV3IGJlaGF2aW9yIG9ubHkgZm9yIHVzZXJzIG9mIGBwcm9wLXR5cGVzYCBwYWNrYWdlXG4gICAgICAgICAgaW52YXJpYW50KFxuICAgICAgICAgICAgZmFsc2UsXG4gICAgICAgICAgICAnQ2FsbGluZyBQcm9wVHlwZXMgdmFsaWRhdG9ycyBkaXJlY3RseSBpcyBub3Qgc3VwcG9ydGVkIGJ5IHRoZSBgcHJvcC10eXBlc2AgcGFja2FnZS4gJyArXG4gICAgICAgICAgICAnVXNlIGBQcm9wVHlwZXMuY2hlY2tQcm9wVHlwZXMoKWAgdG8gY2FsbCB0aGVtLiAnICtcbiAgICAgICAgICAgICdSZWFkIG1vcmUgYXQgaHR0cDovL2ZiLm1lL3VzZS1jaGVjay1wcm9wLXR5cGVzJ1xuICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyAmJiB0eXBlb2YgY29uc29sZSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAvLyBPbGQgYmVoYXZpb3IgZm9yIHBlb3BsZSB1c2luZyBSZWFjdC5Qcm9wVHlwZXNcbiAgICAgICAgICB2YXIgY2FjaGVLZXkgPSBjb21wb25lbnROYW1lICsgJzonICsgcHJvcE5hbWU7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgIW1hbnVhbFByb3BUeXBlQ2FsbENhY2hlW2NhY2hlS2V5XSAmJlxuICAgICAgICAgICAgLy8gQXZvaWQgc3BhbW1pbmcgdGhlIGNvbnNvbGUgYmVjYXVzZSB0aGV5IGFyZSBvZnRlbiBub3QgYWN0aW9uYWJsZSBleGNlcHQgZm9yIGxpYiBhdXRob3JzXG4gICAgICAgICAgICBtYW51YWxQcm9wVHlwZVdhcm5pbmdDb3VudCA8IDNcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHdhcm5pbmcoXG4gICAgICAgICAgICAgIGZhbHNlLFxuICAgICAgICAgICAgICAnWW91IGFyZSBtYW51YWxseSBjYWxsaW5nIGEgUmVhY3QuUHJvcFR5cGVzIHZhbGlkYXRpb24gJyArXG4gICAgICAgICAgICAgICdmdW5jdGlvbiBmb3IgdGhlIGAlc2AgcHJvcCBvbiBgJXNgLiBUaGlzIGlzIGRlcHJlY2F0ZWQgJyArXG4gICAgICAgICAgICAgICdhbmQgd2lsbCB0aHJvdyBpbiB0aGUgc3RhbmRhbG9uZSBgcHJvcC10eXBlc2AgcGFja2FnZS4gJyArXG4gICAgICAgICAgICAgICdZb3UgbWF5IGJlIHNlZWluZyB0aGlzIHdhcm5pbmcgZHVlIHRvIGEgdGhpcmQtcGFydHkgUHJvcFR5cGVzICcgK1xuICAgICAgICAgICAgICAnbGlicmFyeS4gU2VlIGh0dHBzOi8vZmIubWUvcmVhY3Qtd2FybmluZy1kb250LWNhbGwtcHJvcHR5cGVzICcgKyAnZm9yIGRldGFpbHMuJyxcbiAgICAgICAgICAgICAgcHJvcEZ1bGxOYW1lLFxuICAgICAgICAgICAgICBjb21wb25lbnROYW1lXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgbWFudWFsUHJvcFR5cGVDYWxsQ2FjaGVbY2FjaGVLZXldID0gdHJ1ZTtcbiAgICAgICAgICAgIG1hbnVhbFByb3BUeXBlV2FybmluZ0NvdW50Kys7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAocHJvcHNbcHJvcE5hbWVdID09IG51bGwpIHtcbiAgICAgICAgaWYgKGlzUmVxdWlyZWQpIHtcbiAgICAgICAgICBpZiAocHJvcHNbcHJvcE5hbWVdID09PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IFByb3BUeXBlRXJyb3IoJ1RoZSAnICsgbG9jYXRpb24gKyAnIGAnICsgcHJvcEZ1bGxOYW1lICsgJ2AgaXMgbWFya2VkIGFzIHJlcXVpcmVkICcgKyAoJ2luIGAnICsgY29tcG9uZW50TmFtZSArICdgLCBidXQgaXRzIHZhbHVlIGlzIGBudWxsYC4nKSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBuZXcgUHJvcFR5cGVFcnJvcignVGhlICcgKyBsb2NhdGlvbiArICcgYCcgKyBwcm9wRnVsbE5hbWUgKyAnYCBpcyBtYXJrZWQgYXMgcmVxdWlyZWQgaW4gJyArICgnYCcgKyBjb21wb25lbnROYW1lICsgJ2AsIGJ1dCBpdHMgdmFsdWUgaXMgYHVuZGVmaW5lZGAuJykpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHZhbGlkYXRlKHByb3BzLCBwcm9wTmFtZSwgY29tcG9uZW50TmFtZSwgbG9jYXRpb24sIHByb3BGdWxsTmFtZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdmFyIGNoYWluZWRDaGVja1R5cGUgPSBjaGVja1R5cGUuYmluZChudWxsLCBmYWxzZSk7XG4gICAgY2hhaW5lZENoZWNrVHlwZS5pc1JlcXVpcmVkID0gY2hlY2tUeXBlLmJpbmQobnVsbCwgdHJ1ZSk7XG5cbiAgICByZXR1cm4gY2hhaW5lZENoZWNrVHlwZTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGNyZWF0ZVByaW1pdGl2ZVR5cGVDaGVja2VyKGV4cGVjdGVkVHlwZSkge1xuICAgIGZ1bmN0aW9uIHZhbGlkYXRlKHByb3BzLCBwcm9wTmFtZSwgY29tcG9uZW50TmFtZSwgbG9jYXRpb24sIHByb3BGdWxsTmFtZSwgc2VjcmV0KSB7XG4gICAgICB2YXIgcHJvcFZhbHVlID0gcHJvcHNbcHJvcE5hbWVdO1xuICAgICAgdmFyIHByb3BUeXBlID0gZ2V0UHJvcFR5cGUocHJvcFZhbHVlKTtcbiAgICAgIGlmIChwcm9wVHlwZSAhPT0gZXhwZWN0ZWRUeXBlKSB7XG4gICAgICAgIC8vIGBwcm9wVmFsdWVgIGJlaW5nIGluc3RhbmNlIG9mLCBzYXksIGRhdGUvcmVnZXhwLCBwYXNzIHRoZSAnb2JqZWN0J1xuICAgICAgICAvLyBjaGVjaywgYnV0IHdlIGNhbiBvZmZlciBhIG1vcmUgcHJlY2lzZSBlcnJvciBtZXNzYWdlIGhlcmUgcmF0aGVyIHRoYW5cbiAgICAgICAgLy8gJ29mIHR5cGUgYG9iamVjdGAnLlxuICAgICAgICB2YXIgcHJlY2lzZVR5cGUgPSBnZXRQcmVjaXNlVHlwZShwcm9wVmFsdWUpO1xuXG4gICAgICAgIHJldHVybiBuZXcgUHJvcFR5cGVFcnJvcignSW52YWxpZCAnICsgbG9jYXRpb24gKyAnIGAnICsgcHJvcEZ1bGxOYW1lICsgJ2Agb2YgdHlwZSAnICsgKCdgJyArIHByZWNpc2VUeXBlICsgJ2Agc3VwcGxpZWQgdG8gYCcgKyBjb21wb25lbnROYW1lICsgJ2AsIGV4cGVjdGVkICcpICsgKCdgJyArIGV4cGVjdGVkVHlwZSArICdgLicpKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gY3JlYXRlQ2hhaW5hYmxlVHlwZUNoZWNrZXIodmFsaWRhdGUpO1xuICB9XG5cbiAgZnVuY3Rpb24gY3JlYXRlQW55VHlwZUNoZWNrZXIoKSB7XG4gICAgcmV0dXJuIGNyZWF0ZUNoYWluYWJsZVR5cGVDaGVja2VyKGVtcHR5RnVuY3Rpb24udGhhdFJldHVybnNOdWxsKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGNyZWF0ZUFycmF5T2ZUeXBlQ2hlY2tlcih0eXBlQ2hlY2tlcikge1xuICAgIGZ1bmN0aW9uIHZhbGlkYXRlKHByb3BzLCBwcm9wTmFtZSwgY29tcG9uZW50TmFtZSwgbG9jYXRpb24sIHByb3BGdWxsTmFtZSkge1xuICAgICAgaWYgKHR5cGVvZiB0eXBlQ2hlY2tlciAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICByZXR1cm4gbmV3IFByb3BUeXBlRXJyb3IoJ1Byb3BlcnR5IGAnICsgcHJvcEZ1bGxOYW1lICsgJ2Agb2YgY29tcG9uZW50IGAnICsgY29tcG9uZW50TmFtZSArICdgIGhhcyBpbnZhbGlkIFByb3BUeXBlIG5vdGF0aW9uIGluc2lkZSBhcnJheU9mLicpO1xuICAgICAgfVxuICAgICAgdmFyIHByb3BWYWx1ZSA9IHByb3BzW3Byb3BOYW1lXTtcbiAgICAgIGlmICghQXJyYXkuaXNBcnJheShwcm9wVmFsdWUpKSB7XG4gICAgICAgIHZhciBwcm9wVHlwZSA9IGdldFByb3BUeXBlKHByb3BWYWx1ZSk7XG4gICAgICAgIHJldHVybiBuZXcgUHJvcFR5cGVFcnJvcignSW52YWxpZCAnICsgbG9jYXRpb24gKyAnIGAnICsgcHJvcEZ1bGxOYW1lICsgJ2Agb2YgdHlwZSAnICsgKCdgJyArIHByb3BUeXBlICsgJ2Agc3VwcGxpZWQgdG8gYCcgKyBjb21wb25lbnROYW1lICsgJ2AsIGV4cGVjdGVkIGFuIGFycmF5LicpKTtcbiAgICAgIH1cbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcHJvcFZhbHVlLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHZhciBlcnJvciA9IHR5cGVDaGVja2VyKHByb3BWYWx1ZSwgaSwgY29tcG9uZW50TmFtZSwgbG9jYXRpb24sIHByb3BGdWxsTmFtZSArICdbJyArIGkgKyAnXScsIFJlYWN0UHJvcFR5cGVzU2VjcmV0KTtcbiAgICAgICAgaWYgKGVycm9yIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgICAgICByZXR1cm4gZXJyb3I7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gY3JlYXRlQ2hhaW5hYmxlVHlwZUNoZWNrZXIodmFsaWRhdGUpO1xuICB9XG5cbiAgZnVuY3Rpb24gY3JlYXRlRWxlbWVudFR5cGVDaGVja2VyKCkge1xuICAgIGZ1bmN0aW9uIHZhbGlkYXRlKHByb3BzLCBwcm9wTmFtZSwgY29tcG9uZW50TmFtZSwgbG9jYXRpb24sIHByb3BGdWxsTmFtZSkge1xuICAgICAgdmFyIHByb3BWYWx1ZSA9IHByb3BzW3Byb3BOYW1lXTtcbiAgICAgIGlmICghaXNWYWxpZEVsZW1lbnQocHJvcFZhbHVlKSkge1xuICAgICAgICB2YXIgcHJvcFR5cGUgPSBnZXRQcm9wVHlwZShwcm9wVmFsdWUpO1xuICAgICAgICByZXR1cm4gbmV3IFByb3BUeXBlRXJyb3IoJ0ludmFsaWQgJyArIGxvY2F0aW9uICsgJyBgJyArIHByb3BGdWxsTmFtZSArICdgIG9mIHR5cGUgJyArICgnYCcgKyBwcm9wVHlwZSArICdgIHN1cHBsaWVkIHRvIGAnICsgY29tcG9uZW50TmFtZSArICdgLCBleHBlY3RlZCBhIHNpbmdsZSBSZWFjdEVsZW1lbnQuJykpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHJldHVybiBjcmVhdGVDaGFpbmFibGVUeXBlQ2hlY2tlcih2YWxpZGF0ZSk7XG4gIH1cblxuICBmdW5jdGlvbiBjcmVhdGVJbnN0YW5jZVR5cGVDaGVja2VyKGV4cGVjdGVkQ2xhc3MpIHtcbiAgICBmdW5jdGlvbiB2YWxpZGF0ZShwcm9wcywgcHJvcE5hbWUsIGNvbXBvbmVudE5hbWUsIGxvY2F0aW9uLCBwcm9wRnVsbE5hbWUpIHtcbiAgICAgIGlmICghKHByb3BzW3Byb3BOYW1lXSBpbnN0YW5jZW9mIGV4cGVjdGVkQ2xhc3MpKSB7XG4gICAgICAgIHZhciBleHBlY3RlZENsYXNzTmFtZSA9IGV4cGVjdGVkQ2xhc3MubmFtZSB8fCBBTk9OWU1PVVM7XG4gICAgICAgIHZhciBhY3R1YWxDbGFzc05hbWUgPSBnZXRDbGFzc05hbWUocHJvcHNbcHJvcE5hbWVdKTtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9wVHlwZUVycm9yKCdJbnZhbGlkICcgKyBsb2NhdGlvbiArICcgYCcgKyBwcm9wRnVsbE5hbWUgKyAnYCBvZiB0eXBlICcgKyAoJ2AnICsgYWN0dWFsQ2xhc3NOYW1lICsgJ2Agc3VwcGxpZWQgdG8gYCcgKyBjb21wb25lbnROYW1lICsgJ2AsIGV4cGVjdGVkICcpICsgKCdpbnN0YW5jZSBvZiBgJyArIGV4cGVjdGVkQ2xhc3NOYW1lICsgJ2AuJykpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHJldHVybiBjcmVhdGVDaGFpbmFibGVUeXBlQ2hlY2tlcih2YWxpZGF0ZSk7XG4gIH1cblxuICBmdW5jdGlvbiBjcmVhdGVFbnVtVHlwZUNoZWNrZXIoZXhwZWN0ZWRWYWx1ZXMpIHtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkoZXhwZWN0ZWRWYWx1ZXMpKSB7XG4gICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gd2FybmluZyhmYWxzZSwgJ0ludmFsaWQgYXJndW1lbnQgc3VwcGxpZWQgdG8gb25lT2YsIGV4cGVjdGVkIGFuIGluc3RhbmNlIG9mIGFycmF5LicpIDogdm9pZCAwO1xuICAgICAgcmV0dXJuIGVtcHR5RnVuY3Rpb24udGhhdFJldHVybnNOdWxsO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHZhbGlkYXRlKHByb3BzLCBwcm9wTmFtZSwgY29tcG9uZW50TmFtZSwgbG9jYXRpb24sIHByb3BGdWxsTmFtZSkge1xuICAgICAgdmFyIHByb3BWYWx1ZSA9IHByb3BzW3Byb3BOYW1lXTtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZXhwZWN0ZWRWYWx1ZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgaWYgKGlzKHByb3BWYWx1ZSwgZXhwZWN0ZWRWYWx1ZXNbaV0pKSB7XG4gICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgdmFyIHZhbHVlc1N0cmluZyA9IEpTT04uc3RyaW5naWZ5KGV4cGVjdGVkVmFsdWVzKTtcbiAgICAgIHJldHVybiBuZXcgUHJvcFR5cGVFcnJvcignSW52YWxpZCAnICsgbG9jYXRpb24gKyAnIGAnICsgcHJvcEZ1bGxOYW1lICsgJ2Agb2YgdmFsdWUgYCcgKyBwcm9wVmFsdWUgKyAnYCAnICsgKCdzdXBwbGllZCB0byBgJyArIGNvbXBvbmVudE5hbWUgKyAnYCwgZXhwZWN0ZWQgb25lIG9mICcgKyB2YWx1ZXNTdHJpbmcgKyAnLicpKTtcbiAgICB9XG4gICAgcmV0dXJuIGNyZWF0ZUNoYWluYWJsZVR5cGVDaGVja2VyKHZhbGlkYXRlKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGNyZWF0ZU9iamVjdE9mVHlwZUNoZWNrZXIodHlwZUNoZWNrZXIpIHtcbiAgICBmdW5jdGlvbiB2YWxpZGF0ZShwcm9wcywgcHJvcE5hbWUsIGNvbXBvbmVudE5hbWUsIGxvY2F0aW9uLCBwcm9wRnVsbE5hbWUpIHtcbiAgICAgIGlmICh0eXBlb2YgdHlwZUNoZWNrZXIgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9wVHlwZUVycm9yKCdQcm9wZXJ0eSBgJyArIHByb3BGdWxsTmFtZSArICdgIG9mIGNvbXBvbmVudCBgJyArIGNvbXBvbmVudE5hbWUgKyAnYCBoYXMgaW52YWxpZCBQcm9wVHlwZSBub3RhdGlvbiBpbnNpZGUgb2JqZWN0T2YuJyk7XG4gICAgICB9XG4gICAgICB2YXIgcHJvcFZhbHVlID0gcHJvcHNbcHJvcE5hbWVdO1xuICAgICAgdmFyIHByb3BUeXBlID0gZ2V0UHJvcFR5cGUocHJvcFZhbHVlKTtcbiAgICAgIGlmIChwcm9wVHlwZSAhPT0gJ29iamVjdCcpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9wVHlwZUVycm9yKCdJbnZhbGlkICcgKyBsb2NhdGlvbiArICcgYCcgKyBwcm9wRnVsbE5hbWUgKyAnYCBvZiB0eXBlICcgKyAoJ2AnICsgcHJvcFR5cGUgKyAnYCBzdXBwbGllZCB0byBgJyArIGNvbXBvbmVudE5hbWUgKyAnYCwgZXhwZWN0ZWQgYW4gb2JqZWN0LicpKTtcbiAgICAgIH1cbiAgICAgIGZvciAodmFyIGtleSBpbiBwcm9wVmFsdWUpIHtcbiAgICAgICAgaWYgKHByb3BWYWx1ZS5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG4gICAgICAgICAgdmFyIGVycm9yID0gdHlwZUNoZWNrZXIocHJvcFZhbHVlLCBrZXksIGNvbXBvbmVudE5hbWUsIGxvY2F0aW9uLCBwcm9wRnVsbE5hbWUgKyAnLicgKyBrZXksIFJlYWN0UHJvcFR5cGVzU2VjcmV0KTtcbiAgICAgICAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgICAgICAgcmV0dXJuIGVycm9yO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHJldHVybiBjcmVhdGVDaGFpbmFibGVUeXBlQ2hlY2tlcih2YWxpZGF0ZSk7XG4gIH1cblxuICBmdW5jdGlvbiBjcmVhdGVVbmlvblR5cGVDaGVja2VyKGFycmF5T2ZUeXBlQ2hlY2tlcnMpIHtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkoYXJyYXlPZlR5cGVDaGVja2VycykpIHtcbiAgICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyB3YXJuaW5nKGZhbHNlLCAnSW52YWxpZCBhcmd1bWVudCBzdXBwbGllZCB0byBvbmVPZlR5cGUsIGV4cGVjdGVkIGFuIGluc3RhbmNlIG9mIGFycmF5LicpIDogdm9pZCAwO1xuICAgICAgcmV0dXJuIGVtcHR5RnVuY3Rpb24udGhhdFJldHVybnNOdWxsO1xuICAgIH1cblxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXJyYXlPZlR5cGVDaGVja2Vycy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIGNoZWNrZXIgPSBhcnJheU9mVHlwZUNoZWNrZXJzW2ldO1xuICAgICAgaWYgKHR5cGVvZiBjaGVja2VyICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHdhcm5pbmcoXG4gICAgICAgICAgZmFsc2UsXG4gICAgICAgICAgJ0ludmFsaWQgYXJndW1lbnQgc3VwcGxpZCB0byBvbmVPZlR5cGUuIEV4cGVjdGVkIGFuIGFycmF5IG9mIGNoZWNrIGZ1bmN0aW9ucywgYnV0ICcgK1xuICAgICAgICAgICdyZWNlaXZlZCAlcyBhdCBpbmRleCAlcy4nLFxuICAgICAgICAgIGdldFBvc3RmaXhGb3JUeXBlV2FybmluZyhjaGVja2VyKSxcbiAgICAgICAgICBpXG4gICAgICAgICk7XG4gICAgICAgIHJldHVybiBlbXB0eUZ1bmN0aW9uLnRoYXRSZXR1cm5zTnVsbDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiB2YWxpZGF0ZShwcm9wcywgcHJvcE5hbWUsIGNvbXBvbmVudE5hbWUsIGxvY2F0aW9uLCBwcm9wRnVsbE5hbWUpIHtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXJyYXlPZlR5cGVDaGVja2Vycy5sZW5ndGg7IGkrKykge1xuICAgICAgICB2YXIgY2hlY2tlciA9IGFycmF5T2ZUeXBlQ2hlY2tlcnNbaV07XG4gICAgICAgIGlmIChjaGVja2VyKHByb3BzLCBwcm9wTmFtZSwgY29tcG9uZW50TmFtZSwgbG9jYXRpb24sIHByb3BGdWxsTmFtZSwgUmVhY3RQcm9wVHlwZXNTZWNyZXQpID09IG51bGwpIHtcbiAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gbmV3IFByb3BUeXBlRXJyb3IoJ0ludmFsaWQgJyArIGxvY2F0aW9uICsgJyBgJyArIHByb3BGdWxsTmFtZSArICdgIHN1cHBsaWVkIHRvICcgKyAoJ2AnICsgY29tcG9uZW50TmFtZSArICdgLicpKTtcbiAgICB9XG4gICAgcmV0dXJuIGNyZWF0ZUNoYWluYWJsZVR5cGVDaGVja2VyKHZhbGlkYXRlKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGNyZWF0ZU5vZGVDaGVja2VyKCkge1xuICAgIGZ1bmN0aW9uIHZhbGlkYXRlKHByb3BzLCBwcm9wTmFtZSwgY29tcG9uZW50TmFtZSwgbG9jYXRpb24sIHByb3BGdWxsTmFtZSkge1xuICAgICAgaWYgKCFpc05vZGUocHJvcHNbcHJvcE5hbWVdKSkge1xuICAgICAgICByZXR1cm4gbmV3IFByb3BUeXBlRXJyb3IoJ0ludmFsaWQgJyArIGxvY2F0aW9uICsgJyBgJyArIHByb3BGdWxsTmFtZSArICdgIHN1cHBsaWVkIHRvICcgKyAoJ2AnICsgY29tcG9uZW50TmFtZSArICdgLCBleHBlY3RlZCBhIFJlYWN0Tm9kZS4nKSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIGNyZWF0ZUNoYWluYWJsZVR5cGVDaGVja2VyKHZhbGlkYXRlKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGNyZWF0ZVNoYXBlVHlwZUNoZWNrZXIoc2hhcGVUeXBlcykge1xuICAgIGZ1bmN0aW9uIHZhbGlkYXRlKHByb3BzLCBwcm9wTmFtZSwgY29tcG9uZW50TmFtZSwgbG9jYXRpb24sIHByb3BGdWxsTmFtZSkge1xuICAgICAgdmFyIHByb3BWYWx1ZSA9IHByb3BzW3Byb3BOYW1lXTtcbiAgICAgIHZhciBwcm9wVHlwZSA9IGdldFByb3BUeXBlKHByb3BWYWx1ZSk7XG4gICAgICBpZiAocHJvcFR5cGUgIT09ICdvYmplY3QnKSB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvcFR5cGVFcnJvcignSW52YWxpZCAnICsgbG9jYXRpb24gKyAnIGAnICsgcHJvcEZ1bGxOYW1lICsgJ2Agb2YgdHlwZSBgJyArIHByb3BUeXBlICsgJ2AgJyArICgnc3VwcGxpZWQgdG8gYCcgKyBjb21wb25lbnROYW1lICsgJ2AsIGV4cGVjdGVkIGBvYmplY3RgLicpKTtcbiAgICAgIH1cbiAgICAgIGZvciAodmFyIGtleSBpbiBzaGFwZVR5cGVzKSB7XG4gICAgICAgIHZhciBjaGVja2VyID0gc2hhcGVUeXBlc1trZXldO1xuICAgICAgICBpZiAoIWNoZWNrZXIpIHtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgZXJyb3IgPSBjaGVja2VyKHByb3BWYWx1ZSwga2V5LCBjb21wb25lbnROYW1lLCBsb2NhdGlvbiwgcHJvcEZ1bGxOYW1lICsgJy4nICsga2V5LCBSZWFjdFByb3BUeXBlc1NlY3JldCk7XG4gICAgICAgIGlmIChlcnJvcikge1xuICAgICAgICAgIHJldHVybiBlcnJvcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHJldHVybiBjcmVhdGVDaGFpbmFibGVUeXBlQ2hlY2tlcih2YWxpZGF0ZSk7XG4gIH1cblxuICBmdW5jdGlvbiBpc05vZGUocHJvcFZhbHVlKSB7XG4gICAgc3dpdGNoICh0eXBlb2YgcHJvcFZhbHVlKSB7XG4gICAgICBjYXNlICdudW1iZXInOlxuICAgICAgY2FzZSAnc3RyaW5nJzpcbiAgICAgIGNhc2UgJ3VuZGVmaW5lZCc6XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgY2FzZSAnYm9vbGVhbic6XG4gICAgICAgIHJldHVybiAhcHJvcFZhbHVlO1xuICAgICAgY2FzZSAnb2JqZWN0JzpcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkocHJvcFZhbHVlKSkge1xuICAgICAgICAgIHJldHVybiBwcm9wVmFsdWUuZXZlcnkoaXNOb2RlKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocHJvcFZhbHVlID09PSBudWxsIHx8IGlzVmFsaWRFbGVtZW50KHByb3BWYWx1ZSkpIHtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBpdGVyYXRvckZuID0gZ2V0SXRlcmF0b3JGbihwcm9wVmFsdWUpO1xuICAgICAgICBpZiAoaXRlcmF0b3JGbikge1xuICAgICAgICAgIHZhciBpdGVyYXRvciA9IGl0ZXJhdG9yRm4uY2FsbChwcm9wVmFsdWUpO1xuICAgICAgICAgIHZhciBzdGVwO1xuICAgICAgICAgIGlmIChpdGVyYXRvckZuICE9PSBwcm9wVmFsdWUuZW50cmllcykge1xuICAgICAgICAgICAgd2hpbGUgKCEoc3RlcCA9IGl0ZXJhdG9yLm5leHQoKSkuZG9uZSkge1xuICAgICAgICAgICAgICBpZiAoIWlzTm9kZShzdGVwLnZhbHVlKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBJdGVyYXRvciB3aWxsIHByb3ZpZGUgZW50cnkgW2ssdl0gdHVwbGVzIHJhdGhlciB0aGFuIHZhbHVlcy5cbiAgICAgICAgICAgIHdoaWxlICghKHN0ZXAgPSBpdGVyYXRvci5uZXh0KCkpLmRvbmUpIHtcbiAgICAgICAgICAgICAgdmFyIGVudHJ5ID0gc3RlcC52YWx1ZTtcbiAgICAgICAgICAgICAgaWYgKGVudHJ5KSB7XG4gICAgICAgICAgICAgICAgaWYgKCFpc05vZGUoZW50cnlbMV0pKSB7XG4gICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIGlzU3ltYm9sKHByb3BUeXBlLCBwcm9wVmFsdWUpIHtcbiAgICAvLyBOYXRpdmUgU3ltYm9sLlxuICAgIGlmIChwcm9wVHlwZSA9PT0gJ3N5bWJvbCcpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIC8vIDE5LjQuMy41IFN5bWJvbC5wcm90b3R5cGVbQEB0b1N0cmluZ1RhZ10gPT09ICdTeW1ib2wnXG4gICAgaWYgKHByb3BWYWx1ZVsnQEB0b1N0cmluZ1RhZyddID09PSAnU3ltYm9sJykge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgLy8gRmFsbGJhY2sgZm9yIG5vbi1zcGVjIGNvbXBsaWFudCBTeW1ib2xzIHdoaWNoIGFyZSBwb2x5ZmlsbGVkLlxuICAgIGlmICh0eXBlb2YgU3ltYm9sID09PSAnZnVuY3Rpb24nICYmIHByb3BWYWx1ZSBpbnN0YW5jZW9mIFN5bWJvbCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLy8gRXF1aXZhbGVudCBvZiBgdHlwZW9mYCBidXQgd2l0aCBzcGVjaWFsIGhhbmRsaW5nIGZvciBhcnJheSBhbmQgcmVnZXhwLlxuICBmdW5jdGlvbiBnZXRQcm9wVHlwZShwcm9wVmFsdWUpIHtcbiAgICB2YXIgcHJvcFR5cGUgPSB0eXBlb2YgcHJvcFZhbHVlO1xuICAgIGlmIChBcnJheS5pc0FycmF5KHByb3BWYWx1ZSkpIHtcbiAgICAgIHJldHVybiAnYXJyYXknO1xuICAgIH1cbiAgICBpZiAocHJvcFZhbHVlIGluc3RhbmNlb2YgUmVnRXhwKSB7XG4gICAgICAvLyBPbGQgd2Via2l0cyAoYXQgbGVhc3QgdW50aWwgQW5kcm9pZCA0LjApIHJldHVybiAnZnVuY3Rpb24nIHJhdGhlciB0aGFuXG4gICAgICAvLyAnb2JqZWN0JyBmb3IgdHlwZW9mIGEgUmVnRXhwLiBXZSdsbCBub3JtYWxpemUgdGhpcyBoZXJlIHNvIHRoYXQgL2JsYS9cbiAgICAgIC8vIHBhc3NlcyBQcm9wVHlwZXMub2JqZWN0LlxuICAgICAgcmV0dXJuICdvYmplY3QnO1xuICAgIH1cbiAgICBpZiAoaXNTeW1ib2wocHJvcFR5cGUsIHByb3BWYWx1ZSkpIHtcbiAgICAgIHJldHVybiAnc3ltYm9sJztcbiAgICB9XG4gICAgcmV0dXJuIHByb3BUeXBlO1xuICB9XG5cbiAgLy8gVGhpcyBoYW5kbGVzIG1vcmUgdHlwZXMgdGhhbiBgZ2V0UHJvcFR5cGVgLiBPbmx5IHVzZWQgZm9yIGVycm9yIG1lc3NhZ2VzLlxuICAvLyBTZWUgYGNyZWF0ZVByaW1pdGl2ZVR5cGVDaGVja2VyYC5cbiAgZnVuY3Rpb24gZ2V0UHJlY2lzZVR5cGUocHJvcFZhbHVlKSB7XG4gICAgaWYgKHR5cGVvZiBwcm9wVmFsdWUgPT09ICd1bmRlZmluZWQnIHx8IHByb3BWYWx1ZSA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuICcnICsgcHJvcFZhbHVlO1xuICAgIH1cbiAgICB2YXIgcHJvcFR5cGUgPSBnZXRQcm9wVHlwZShwcm9wVmFsdWUpO1xuICAgIGlmIChwcm9wVHlwZSA9PT0gJ29iamVjdCcpIHtcbiAgICAgIGlmIChwcm9wVmFsdWUgaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgICAgIHJldHVybiAnZGF0ZSc7XG4gICAgICB9IGVsc2UgaWYgKHByb3BWYWx1ZSBpbnN0YW5jZW9mIFJlZ0V4cCkge1xuICAgICAgICByZXR1cm4gJ3JlZ2V4cCc7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBwcm9wVHlwZTtcbiAgfVxuXG4gIC8vIFJldHVybnMgYSBzdHJpbmcgdGhhdCBpcyBwb3N0Zml4ZWQgdG8gYSB3YXJuaW5nIGFib3V0IGFuIGludmFsaWQgdHlwZS5cbiAgLy8gRm9yIGV4YW1wbGUsIFwidW5kZWZpbmVkXCIgb3IgXCJvZiB0eXBlIGFycmF5XCJcbiAgZnVuY3Rpb24gZ2V0UG9zdGZpeEZvclR5cGVXYXJuaW5nKHZhbHVlKSB7XG4gICAgdmFyIHR5cGUgPSBnZXRQcmVjaXNlVHlwZSh2YWx1ZSk7XG4gICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICBjYXNlICdhcnJheSc6XG4gICAgICBjYXNlICdvYmplY3QnOlxuICAgICAgICByZXR1cm4gJ2FuICcgKyB0eXBlO1xuICAgICAgY2FzZSAnYm9vbGVhbic6XG4gICAgICBjYXNlICdkYXRlJzpcbiAgICAgIGNhc2UgJ3JlZ2V4cCc6XG4gICAgICAgIHJldHVybiAnYSAnICsgdHlwZTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiB0eXBlO1xuICAgIH1cbiAgfVxuXG4gIC8vIFJldHVybnMgY2xhc3MgbmFtZSBvZiB0aGUgb2JqZWN0LCBpZiBhbnkuXG4gIGZ1bmN0aW9uIGdldENsYXNzTmFtZShwcm9wVmFsdWUpIHtcbiAgICBpZiAoIXByb3BWYWx1ZS5jb25zdHJ1Y3RvciB8fCAhcHJvcFZhbHVlLmNvbnN0cnVjdG9yLm5hbWUpIHtcbiAgICAgIHJldHVybiBBTk9OWU1PVVM7XG4gICAgfVxuICAgIHJldHVybiBwcm9wVmFsdWUuY29uc3RydWN0b3IubmFtZTtcbiAgfVxuXG4gIFJlYWN0UHJvcFR5cGVzLmNoZWNrUHJvcFR5cGVzID0gY2hlY2tQcm9wVHlwZXM7XG4gIFJlYWN0UHJvcFR5cGVzLlByb3BUeXBlcyA9IFJlYWN0UHJvcFR5cGVzO1xuXG4gIHJldHVybiBSZWFjdFByb3BUeXBlcztcbn07XG5cbi8qIFdFQlBBQ0sgVkFSIElOSkVDVElPTiAqL30uY2FsbChleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKDIpKSlcblxuLyoqKi8gfSksXG4vKiAxNSAqL1xuLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykge1xuXG5cInVzZSBzdHJpY3RcIjtcbi8qIFdFQlBBQ0sgVkFSIElOSkVDVElPTiAqLyhmdW5jdGlvbihwcm9jZXNzKSB7LyoqXG4gKiBDb3B5cmlnaHQgMjAxMy1wcmVzZW50LCBGYWNlYm9vaywgSW5jLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBCU0Qtc3R5bGUgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4gQW4gYWRkaXRpb25hbCBncmFudFxuICogb2YgcGF0ZW50IHJpZ2h0cyBjYW4gYmUgZm91bmQgaW4gdGhlIFBBVEVOVFMgZmlsZSBpbiB0aGUgc2FtZSBkaXJlY3RvcnkuXG4gKi9cblxuXG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gIHZhciBpbnZhcmlhbnQgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDUpO1xuICB2YXIgd2FybmluZyA9IF9fd2VicGFja19yZXF1aXJlX18oOCk7XG4gIHZhciBSZWFjdFByb3BUeXBlc1NlY3JldCA9IF9fd2VicGFja19yZXF1aXJlX18oNik7XG4gIHZhciBsb2dnZWRUeXBlRmFpbHVyZXMgPSB7fTtcbn1cblxuLyoqXG4gKiBBc3NlcnQgdGhhdCB0aGUgdmFsdWVzIG1hdGNoIHdpdGggdGhlIHR5cGUgc3BlY3MuXG4gKiBFcnJvciBtZXNzYWdlcyBhcmUgbWVtb3JpemVkIGFuZCB3aWxsIG9ubHkgYmUgc2hvd24gb25jZS5cbiAqXG4gKiBAcGFyYW0ge29iamVjdH0gdHlwZVNwZWNzIE1hcCBvZiBuYW1lIHRvIGEgUmVhY3RQcm9wVHlwZVxuICogQHBhcmFtIHtvYmplY3R9IHZhbHVlcyBSdW50aW1lIHZhbHVlcyB0aGF0IG5lZWQgdG8gYmUgdHlwZS1jaGVja2VkXG4gKiBAcGFyYW0ge3N0cmluZ30gbG9jYXRpb24gZS5nLiBcInByb3BcIiwgXCJjb250ZXh0XCIsIFwiY2hpbGQgY29udGV4dFwiXG4gKiBAcGFyYW0ge3N0cmluZ30gY29tcG9uZW50TmFtZSBOYW1lIG9mIHRoZSBjb21wb25lbnQgZm9yIGVycm9yIG1lc3NhZ2VzLlxuICogQHBhcmFtIHs/RnVuY3Rpb259IGdldFN0YWNrIFJldHVybnMgdGhlIGNvbXBvbmVudCBzdGFjay5cbiAqIEBwcml2YXRlXG4gKi9cbmZ1bmN0aW9uIGNoZWNrUHJvcFR5cGVzKHR5cGVTcGVjcywgdmFsdWVzLCBsb2NhdGlvbiwgY29tcG9uZW50TmFtZSwgZ2V0U3RhY2spIHtcbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICBmb3IgKHZhciB0eXBlU3BlY05hbWUgaW4gdHlwZVNwZWNzKSB7XG4gICAgICBpZiAodHlwZVNwZWNzLmhhc093blByb3BlcnR5KHR5cGVTcGVjTmFtZSkpIHtcbiAgICAgICAgdmFyIGVycm9yO1xuICAgICAgICAvLyBQcm9wIHR5cGUgdmFsaWRhdGlvbiBtYXkgdGhyb3cuIEluIGNhc2UgdGhleSBkbywgd2UgZG9uJ3Qgd2FudCB0b1xuICAgICAgICAvLyBmYWlsIHRoZSByZW5kZXIgcGhhc2Ugd2hlcmUgaXQgZGlkbid0IGZhaWwgYmVmb3JlLiBTbyB3ZSBsb2cgaXQuXG4gICAgICAgIC8vIEFmdGVyIHRoZXNlIGhhdmUgYmVlbiBjbGVhbmVkIHVwLCB3ZSdsbCBsZXQgdGhlbSB0aHJvdy5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAvLyBUaGlzIGlzIGludGVudGlvbmFsbHkgYW4gaW52YXJpYW50IHRoYXQgZ2V0cyBjYXVnaHQuIEl0J3MgdGhlIHNhbWVcbiAgICAgICAgICAvLyBiZWhhdmlvciBhcyB3aXRob3V0IHRoaXMgc3RhdGVtZW50IGV4Y2VwdCB3aXRoIGEgYmV0dGVyIG1lc3NhZ2UuXG4gICAgICAgICAgaW52YXJpYW50KHR5cGVvZiB0eXBlU3BlY3NbdHlwZVNwZWNOYW1lXSA9PT0gJ2Z1bmN0aW9uJywgJyVzOiAlcyB0eXBlIGAlc2AgaXMgaW52YWxpZDsgaXQgbXVzdCBiZSBhIGZ1bmN0aW9uLCB1c3VhbGx5IGZyb20gJyArICdSZWFjdC5Qcm9wVHlwZXMuJywgY29tcG9uZW50TmFtZSB8fCAnUmVhY3QgY2xhc3MnLCBsb2NhdGlvbiwgdHlwZVNwZWNOYW1lKTtcbiAgICAgICAgICBlcnJvciA9IHR5cGVTcGVjc1t0eXBlU3BlY05hbWVdKHZhbHVlcywgdHlwZVNwZWNOYW1lLCBjb21wb25lbnROYW1lLCBsb2NhdGlvbiwgbnVsbCwgUmVhY3RQcm9wVHlwZXNTZWNyZXQpO1xuICAgICAgICB9IGNhdGNoIChleCkge1xuICAgICAgICAgIGVycm9yID0gZXg7XG4gICAgICAgIH1cbiAgICAgICAgd2FybmluZyghZXJyb3IgfHwgZXJyb3IgaW5zdGFuY2VvZiBFcnJvciwgJyVzOiB0eXBlIHNwZWNpZmljYXRpb24gb2YgJXMgYCVzYCBpcyBpbnZhbGlkOyB0aGUgdHlwZSBjaGVja2VyICcgKyAnZnVuY3Rpb24gbXVzdCByZXR1cm4gYG51bGxgIG9yIGFuIGBFcnJvcmAgYnV0IHJldHVybmVkIGEgJXMuICcgKyAnWW91IG1heSBoYXZlIGZvcmdvdHRlbiB0byBwYXNzIGFuIGFyZ3VtZW50IHRvIHRoZSB0eXBlIGNoZWNrZXIgJyArICdjcmVhdG9yIChhcnJheU9mLCBpbnN0YW5jZU9mLCBvYmplY3RPZiwgb25lT2YsIG9uZU9mVHlwZSwgYW5kICcgKyAnc2hhcGUgYWxsIHJlcXVpcmUgYW4gYXJndW1lbnQpLicsIGNvbXBvbmVudE5hbWUgfHwgJ1JlYWN0IGNsYXNzJywgbG9jYXRpb24sIHR5cGVTcGVjTmFtZSwgdHlwZW9mIGVycm9yKTtcbiAgICAgICAgaWYgKGVycm9yIGluc3RhbmNlb2YgRXJyb3IgJiYgIShlcnJvci5tZXNzYWdlIGluIGxvZ2dlZFR5cGVGYWlsdXJlcykpIHtcbiAgICAgICAgICAvLyBPbmx5IG1vbml0b3IgdGhpcyBmYWlsdXJlIG9uY2UgYmVjYXVzZSB0aGVyZSB0ZW5kcyB0byBiZSBhIGxvdCBvZiB0aGVcbiAgICAgICAgICAvLyBzYW1lIGVycm9yLlxuICAgICAgICAgIGxvZ2dlZFR5cGVGYWlsdXJlc1tlcnJvci5tZXNzYWdlXSA9IHRydWU7XG5cbiAgICAgICAgICB2YXIgc3RhY2sgPSBnZXRTdGFjayA/IGdldFN0YWNrKCkgOiAnJztcblxuICAgICAgICAgIHdhcm5pbmcoZmFsc2UsICdGYWlsZWQgJXMgdHlwZTogJXMlcycsIGxvY2F0aW9uLCBlcnJvci5tZXNzYWdlLCBzdGFjayAhPSBudWxsID8gc3RhY2sgOiAnJyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSBjaGVja1Byb3BUeXBlcztcblxuLyogV0VCUEFDSyBWQVIgSU5KRUNUSU9OICovfS5jYWxsKGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18oMikpKVxuXG4vKioqLyB9KSxcbi8qIDE2ICovXG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7XG5cblwidXNlIHN0cmljdFwiO1xuLyoqXG4gKiBDb3B5cmlnaHQgMjAxMy1wcmVzZW50LCBGYWNlYm9vaywgSW5jLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBCU0Qtc3R5bGUgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4gQW4gYWRkaXRpb25hbCBncmFudFxuICogb2YgcGF0ZW50IHJpZ2h0cyBjYW4gYmUgZm91bmQgaW4gdGhlIFBBVEVOVFMgZmlsZSBpbiB0aGUgc2FtZSBkaXJlY3RvcnkuXG4gKi9cblxuXG5cbnZhciBlbXB0eUZ1bmN0aW9uID0gX193ZWJwYWNrX3JlcXVpcmVfXyg0KTtcbnZhciBpbnZhcmlhbnQgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDUpO1xudmFyIFJlYWN0UHJvcFR5cGVzU2VjcmV0ID0gX193ZWJwYWNrX3JlcXVpcmVfXyg2KTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbigpIHtcbiAgZnVuY3Rpb24gc2hpbShwcm9wcywgcHJvcE5hbWUsIGNvbXBvbmVudE5hbWUsIGxvY2F0aW9uLCBwcm9wRnVsbE5hbWUsIHNlY3JldCkge1xuICAgIGlmIChzZWNyZXQgPT09IFJlYWN0UHJvcFR5cGVzU2VjcmV0KSB7XG4gICAgICAvLyBJdCBpcyBzdGlsbCBzYWZlIHdoZW4gY2FsbGVkIGZyb20gUmVhY3QuXG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGludmFyaWFudChcbiAgICAgIGZhbHNlLFxuICAgICAgJ0NhbGxpbmcgUHJvcFR5cGVzIHZhbGlkYXRvcnMgZGlyZWN0bHkgaXMgbm90IHN1cHBvcnRlZCBieSB0aGUgYHByb3AtdHlwZXNgIHBhY2thZ2UuICcgK1xuICAgICAgJ1VzZSBQcm9wVHlwZXMuY2hlY2tQcm9wVHlwZXMoKSB0byBjYWxsIHRoZW0uICcgK1xuICAgICAgJ1JlYWQgbW9yZSBhdCBodHRwOi8vZmIubWUvdXNlLWNoZWNrLXByb3AtdHlwZXMnXG4gICAgKTtcbiAgfTtcbiAgc2hpbS5pc1JlcXVpcmVkID0gc2hpbTtcbiAgZnVuY3Rpb24gZ2V0U2hpbSgpIHtcbiAgICByZXR1cm4gc2hpbTtcbiAgfTtcbiAgLy8gSW1wb3J0YW50IVxuICAvLyBLZWVwIHRoaXMgbGlzdCBpbiBzeW5jIHdpdGggcHJvZHVjdGlvbiB2ZXJzaW9uIGluIGAuL2ZhY3RvcnlXaXRoVHlwZUNoZWNrZXJzLmpzYC5cbiAgdmFyIFJlYWN0UHJvcFR5cGVzID0ge1xuICAgIGFycmF5OiBzaGltLFxuICAgIGJvb2w6IHNoaW0sXG4gICAgZnVuYzogc2hpbSxcbiAgICBudW1iZXI6IHNoaW0sXG4gICAgb2JqZWN0OiBzaGltLFxuICAgIHN0cmluZzogc2hpbSxcbiAgICBzeW1ib2w6IHNoaW0sXG5cbiAgICBhbnk6IHNoaW0sXG4gICAgYXJyYXlPZjogZ2V0U2hpbSxcbiAgICBlbGVtZW50OiBzaGltLFxuICAgIGluc3RhbmNlT2Y6IGdldFNoaW0sXG4gICAgbm9kZTogc2hpbSxcbiAgICBvYmplY3RPZjogZ2V0U2hpbSxcbiAgICBvbmVPZjogZ2V0U2hpbSxcbiAgICBvbmVPZlR5cGU6IGdldFNoaW0sXG4gICAgc2hhcGU6IGdldFNoaW1cbiAgfTtcblxuICBSZWFjdFByb3BUeXBlcy5jaGVja1Byb3BUeXBlcyA9IGVtcHR5RnVuY3Rpb247XG4gIFJlYWN0UHJvcFR5cGVzLlByb3BUeXBlcyA9IFJlYWN0UHJvcFR5cGVzO1xuXG4gIHJldHVybiBSZWFjdFByb3BUeXBlcztcbn07XG5cblxuLyoqKi8gfSksXG4vKiAxNyAqL1xuLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykge1xuXG5cInVzZSBzdHJpY3RcIjtcblxuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5cbnZhciBfY3JlYXRlQ2xhc3MgPSBmdW5jdGlvbiAoKSB7IGZ1bmN0aW9uIGRlZmluZVByb3BlcnRpZXModGFyZ2V0LCBwcm9wcykgeyBmb3IgKHZhciBpID0gMDsgaSA8IHByb3BzLmxlbmd0aDsgaSsrKSB7IHZhciBkZXNjcmlwdG9yID0gcHJvcHNbaV07IGRlc2NyaXB0b3IuZW51bWVyYWJsZSA9IGRlc2NyaXB0b3IuZW51bWVyYWJsZSB8fCBmYWxzZTsgZGVzY3JpcHRvci5jb25maWd1cmFibGUgPSB0cnVlOyBpZiAoXCJ2YWx1ZVwiIGluIGRlc2NyaXB0b3IpIGRlc2NyaXB0b3Iud3JpdGFibGUgPSB0cnVlOyBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBkZXNjcmlwdG9yLmtleSwgZGVzY3JpcHRvcik7IH0gfSByZXR1cm4gZnVuY3Rpb24gKENvbnN0cnVjdG9yLCBwcm90b1Byb3BzLCBzdGF0aWNQcm9wcykgeyBpZiAocHJvdG9Qcm9wcykgZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvci5wcm90b3R5cGUsIHByb3RvUHJvcHMpOyBpZiAoc3RhdGljUHJvcHMpIGRlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IsIHN0YXRpY1Byb3BzKTsgcmV0dXJuIENvbnN0cnVjdG9yOyB9OyB9KCk7XG5cbnZhciBfcHJvcFR5cGVzID0gX193ZWJwYWNrX3JlcXVpcmVfXygwKTtcblxudmFyIF9wcm9wVHlwZXMyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfcHJvcFR5cGVzKTtcblxudmFyIF9yZWFjdCA9IF9fd2VicGFja19yZXF1aXJlX18oMSk7XG5cbnZhciBfcmVhY3QyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfcmVhY3QpO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBkZWZhdWx0OiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIik7IH0gfVxuXG5mdW5jdGlvbiBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybihzZWxmLCBjYWxsKSB7IGlmICghc2VsZikgeyB0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoXCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWRcIik7IH0gcmV0dXJuIGNhbGwgJiYgKHR5cGVvZiBjYWxsID09PSBcIm9iamVjdFwiIHx8IHR5cGVvZiBjYWxsID09PSBcImZ1bmN0aW9uXCIpID8gY2FsbCA6IHNlbGY7IH1cblxuZnVuY3Rpb24gX2luaGVyaXRzKHN1YkNsYXNzLCBzdXBlckNsYXNzKSB7IGlmICh0eXBlb2Ygc3VwZXJDbGFzcyAhPT0gXCJmdW5jdGlvblwiICYmIHN1cGVyQ2xhc3MgIT09IG51bGwpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uLCBub3QgXCIgKyB0eXBlb2Ygc3VwZXJDbGFzcyk7IH0gc3ViQ2xhc3MucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShzdXBlckNsYXNzICYmIHN1cGVyQ2xhc3MucHJvdG90eXBlLCB7IGNvbnN0cnVjdG9yOiB7IHZhbHVlOiBzdWJDbGFzcywgZW51bWVyYWJsZTogZmFsc2UsIHdyaXRhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUgfSB9KTsgaWYgKHN1cGVyQ2xhc3MpIE9iamVjdC5zZXRQcm90b3R5cGVPZiA/IE9iamVjdC5zZXRQcm90b3R5cGVPZihzdWJDbGFzcywgc3VwZXJDbGFzcykgOiBzdWJDbGFzcy5fX3Byb3RvX18gPSBzdXBlckNsYXNzOyB9XG5cbnZhciBTcGFya2xpbmVzVGV4dCA9IGZ1bmN0aW9uIChfUmVhY3QkQ29tcG9uZW50KSB7XG4gICAgX2luaGVyaXRzKFNwYXJrbGluZXNUZXh0LCBfUmVhY3QkQ29tcG9uZW50KTtcblxuICAgIGZ1bmN0aW9uIFNwYXJrbGluZXNUZXh0KCkge1xuICAgICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgU3BhcmtsaW5lc1RleHQpO1xuXG4gICAgICAgIHJldHVybiBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybih0aGlzLCAoU3BhcmtsaW5lc1RleHQuX19wcm90b19fIHx8IE9iamVjdC5nZXRQcm90b3R5cGVPZihTcGFya2xpbmVzVGV4dCkpLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykpO1xuICAgIH1cblxuICAgIF9jcmVhdGVDbGFzcyhTcGFya2xpbmVzVGV4dCwgW3tcbiAgICAgICAga2V5OiAncmVuZGVyJyxcbiAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIHJlbmRlcigpIHtcbiAgICAgICAgICAgIHZhciBfcHJvcHMgPSB0aGlzLnByb3BzLFxuICAgICAgICAgICAgICAgIHBvaW50ID0gX3Byb3BzLnBvaW50LFxuICAgICAgICAgICAgICAgIHRleHQgPSBfcHJvcHMudGV4dCxcbiAgICAgICAgICAgICAgICBmb250U2l6ZSA9IF9wcm9wcy5mb250U2l6ZSxcbiAgICAgICAgICAgICAgICBmb250RmFtaWx5ID0gX3Byb3BzLmZvbnRGYW1pbHk7XG4gICAgICAgICAgICB2YXIgeCA9IHBvaW50LngsXG4gICAgICAgICAgICAgICAgeSA9IHBvaW50Lnk7XG5cbiAgICAgICAgICAgIHJldHVybiBfcmVhY3QyLmRlZmF1bHQuY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgICAnZycsXG4gICAgICAgICAgICAgICAgbnVsbCxcbiAgICAgICAgICAgICAgICBfcmVhY3QyLmRlZmF1bHQuY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICAgICAgICAgJ3RleHQnLFxuICAgICAgICAgICAgICAgICAgICB7IHg6IHgsIHk6IHksIGZvbnRGYW1pbHk6IGZvbnRGYW1pbHkgfHwgXCJWZXJkYW5hXCIsIGZvbnRTaXplOiBmb250U2l6ZSB8fCAxMCB9LFxuICAgICAgICAgICAgICAgICAgICB0ZXh0XG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1dKTtcblxuICAgIHJldHVybiBTcGFya2xpbmVzVGV4dDtcbn0oX3JlYWN0Mi5kZWZhdWx0LkNvbXBvbmVudCk7XG5cblNwYXJrbGluZXNUZXh0LnByb3BUeXBlcyA9IHtcbiAgICB0ZXh0OiBfcHJvcFR5cGVzMi5kZWZhdWx0LnN0cmluZyxcbiAgICBwb2ludDogX3Byb3BUeXBlczIuZGVmYXVsdC5vYmplY3QsXG4gICAgZm9udFNpemU6IF9wcm9wVHlwZXMyLmRlZmF1bHQubnVtYmVyLFxuICAgIGZvbnRGYW1pbHk6IF9wcm9wVHlwZXMyLmRlZmF1bHQuc3RyaW5nXG59O1xuU3BhcmtsaW5lc1RleHQuZGVmYXVsdFByb3BzID0ge1xuICAgIHRleHQ6ICcnLFxuICAgIHBvaW50OiB7IHg6IDAsIHk6IDAgfVxufTtcbmV4cG9ydHMuZGVmYXVsdCA9IFNwYXJrbGluZXNUZXh0O1xuXG4vKioqLyB9KSxcbi8qIDE4ICovXG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7XG5cblwidXNlIHN0cmljdFwiO1xuXG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5cbnZhciBfY3JlYXRlQ2xhc3MgPSBmdW5jdGlvbiAoKSB7IGZ1bmN0aW9uIGRlZmluZVByb3BlcnRpZXModGFyZ2V0LCBwcm9wcykgeyBmb3IgKHZhciBpID0gMDsgaSA8IHByb3BzLmxlbmd0aDsgaSsrKSB7IHZhciBkZXNjcmlwdG9yID0gcHJvcHNbaV07IGRlc2NyaXB0b3IuZW51bWVyYWJsZSA9IGRlc2NyaXB0b3IuZW51bWVyYWJsZSB8fCBmYWxzZTsgZGVzY3JpcHRvci5jb25maWd1cmFibGUgPSB0cnVlOyBpZiAoXCJ2YWx1ZVwiIGluIGRlc2NyaXB0b3IpIGRlc2NyaXB0b3Iud3JpdGFibGUgPSB0cnVlOyBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBkZXNjcmlwdG9yLmtleSwgZGVzY3JpcHRvcik7IH0gfSByZXR1cm4gZnVuY3Rpb24gKENvbnN0cnVjdG9yLCBwcm90b1Byb3BzLCBzdGF0aWNQcm9wcykgeyBpZiAocHJvdG9Qcm9wcykgZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvci5wcm90b3R5cGUsIHByb3RvUHJvcHMpOyBpZiAoc3RhdGljUHJvcHMpIGRlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IsIHN0YXRpY1Byb3BzKTsgcmV0dXJuIENvbnN0cnVjdG9yOyB9OyB9KCk7XG5cbnZhciBfcHJvcFR5cGVzID0gX193ZWJwYWNrX3JlcXVpcmVfXygwKTtcblxudmFyIF9wcm9wVHlwZXMyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfcHJvcFR5cGVzKTtcblxudmFyIF9yZWFjdCA9IF9fd2VicGFja19yZXF1aXJlX18oMSk7XG5cbnZhciBfcmVhY3QyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfcmVhY3QpO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBkZWZhdWx0OiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIik7IH0gfVxuXG5mdW5jdGlvbiBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybihzZWxmLCBjYWxsKSB7IGlmICghc2VsZikgeyB0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoXCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWRcIik7IH0gcmV0dXJuIGNhbGwgJiYgKHR5cGVvZiBjYWxsID09PSBcIm9iamVjdFwiIHx8IHR5cGVvZiBjYWxsID09PSBcImZ1bmN0aW9uXCIpID8gY2FsbCA6IHNlbGY7IH1cblxuZnVuY3Rpb24gX2luaGVyaXRzKHN1YkNsYXNzLCBzdXBlckNsYXNzKSB7IGlmICh0eXBlb2Ygc3VwZXJDbGFzcyAhPT0gXCJmdW5jdGlvblwiICYmIHN1cGVyQ2xhc3MgIT09IG51bGwpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uLCBub3QgXCIgKyB0eXBlb2Ygc3VwZXJDbGFzcyk7IH0gc3ViQ2xhc3MucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShzdXBlckNsYXNzICYmIHN1cGVyQ2xhc3MucHJvdG90eXBlLCB7IGNvbnN0cnVjdG9yOiB7IHZhbHVlOiBzdWJDbGFzcywgZW51bWVyYWJsZTogZmFsc2UsIHdyaXRhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUgfSB9KTsgaWYgKHN1cGVyQ2xhc3MpIE9iamVjdC5zZXRQcm90b3R5cGVPZiA/IE9iamVjdC5zZXRQcm90b3R5cGVPZihzdWJDbGFzcywgc3VwZXJDbGFzcykgOiBzdWJDbGFzcy5fX3Byb3RvX18gPSBzdXBlckNsYXNzOyB9XG5cbnZhciBTcGFya2xpbmVzTGluZSA9IGZ1bmN0aW9uIChfUmVhY3QkQ29tcG9uZW50KSB7XG4gIF9pbmhlcml0cyhTcGFya2xpbmVzTGluZSwgX1JlYWN0JENvbXBvbmVudCk7XG5cbiAgZnVuY3Rpb24gU3BhcmtsaW5lc0xpbmUoKSB7XG4gICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFNwYXJrbGluZXNMaW5lKTtcblxuICAgIHJldHVybiBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybih0aGlzLCAoU3BhcmtsaW5lc0xpbmUuX19wcm90b19fIHx8IE9iamVjdC5nZXRQcm90b3R5cGVPZihTcGFya2xpbmVzTGluZSkpLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykpO1xuICB9XG5cbiAgX2NyZWF0ZUNsYXNzKFNwYXJrbGluZXNMaW5lLCBbe1xuICAgIGtleTogJ3JlbmRlcicsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHJlbmRlcigpIHtcbiAgICAgIHZhciBfcHJvcHMgPSB0aGlzLnByb3BzLFxuICAgICAgICAgIGRhdGEgPSBfcHJvcHMuZGF0YSxcbiAgICAgICAgICBwb2ludHMgPSBfcHJvcHMucG9pbnRzLFxuICAgICAgICAgIHdpZHRoID0gX3Byb3BzLndpZHRoLFxuICAgICAgICAgIGhlaWdodCA9IF9wcm9wcy5oZWlnaHQsXG4gICAgICAgICAgbWFyZ2luID0gX3Byb3BzLm1hcmdpbixcbiAgICAgICAgICBjb2xvciA9IF9wcm9wcy5jb2xvcixcbiAgICAgICAgICBzdHlsZSA9IF9wcm9wcy5zdHlsZSxcbiAgICAgICAgICBvbk1vdXNlTW92ZSA9IF9wcm9wcy5vbk1vdXNlTW92ZTtcblxuXG4gICAgICB2YXIgbGluZVBvaW50cyA9IHBvaW50cy5tYXAoZnVuY3Rpb24gKHApIHtcbiAgICAgICAgcmV0dXJuIFtwLngsIHAueV07XG4gICAgICB9KS5yZWR1Y2UoZnVuY3Rpb24gKGEsIGIpIHtcbiAgICAgICAgcmV0dXJuIGEuY29uY2F0KGIpO1xuICAgICAgfSk7XG5cbiAgICAgIHZhciBjbG9zZVBvbHlQb2ludHMgPSBbcG9pbnRzW3BvaW50cy5sZW5ndGggLSAxXS54LCBoZWlnaHQgLSBtYXJnaW4sIG1hcmdpbiwgaGVpZ2h0IC0gbWFyZ2luLCBtYXJnaW4sIHBvaW50c1swXS55XTtcblxuICAgICAgdmFyIGZpbGxQb2ludHMgPSBsaW5lUG9pbnRzLmNvbmNhdChjbG9zZVBvbHlQb2ludHMpO1xuXG4gICAgICB2YXIgbGluZVN0eWxlID0ge1xuICAgICAgICBzdHJva2U6IGNvbG9yIHx8IHN0eWxlLnN0cm9rZSB8fCAnc2xhdGVncmF5JyxcbiAgICAgICAgc3Ryb2tlV2lkdGg6IHN0eWxlLnN0cm9rZVdpZHRoIHx8ICcxJyxcbiAgICAgICAgc3Ryb2tlTGluZWpvaW46IHN0eWxlLnN0cm9rZUxpbmVqb2luIHx8ICdyb3VuZCcsXG4gICAgICAgIHN0cm9rZUxpbmVjYXA6IHN0eWxlLnN0cm9rZUxpbmVjYXAgfHwgJ3JvdW5kJyxcbiAgICAgICAgZmlsbDogJ25vbmUnXG4gICAgICB9O1xuICAgICAgdmFyIGZpbGxTdHlsZSA9IHtcbiAgICAgICAgc3Ryb2tlOiBzdHlsZS5zdHJva2UgfHwgJ25vbmUnLFxuICAgICAgICBzdHJva2VXaWR0aDogJzAnLFxuICAgICAgICBmaWxsT3BhY2l0eTogc3R5bGUuZmlsbE9wYWNpdHkgfHwgJy4xJyxcbiAgICAgICAgZmlsbDogc3R5bGUuZmlsbCB8fCBjb2xvciB8fCAnc2xhdGVncmF5JyxcbiAgICAgICAgcG9pbnRlckV2ZW50czogJ2F1dG8nXG4gICAgICB9O1xuXG4gICAgICB2YXIgdG9vbHRpcHMgPSBwb2ludHMubWFwKGZ1bmN0aW9uIChwLCBpKSB7XG4gICAgICAgIHJldHVybiBfcmVhY3QyLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgnY2lyY2xlJywge1xuICAgICAgICAgIGtleTogaSxcbiAgICAgICAgICBjeDogcC54LFxuICAgICAgICAgIGN5OiBwLnksXG4gICAgICAgICAgcjogMixcbiAgICAgICAgICBzdHlsZTogZmlsbFN0eWxlLFxuICAgICAgICAgIG9uTW91c2VFbnRlcjogZnVuY3Rpb24gb25Nb3VzZUVudGVyKGUpIHtcbiAgICAgICAgICAgIHJldHVybiBvbk1vdXNlTW92ZSgnZW50ZXInLCBkYXRhW2ldLCBwKTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIG9uQ2xpY2s6IGZ1bmN0aW9uIG9uQ2xpY2soZSkge1xuICAgICAgICAgICAgcmV0dXJuIG9uTW91c2VNb3ZlKCdjbGljaycsIGRhdGFbaV0sIHApO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9KTtcblxuICAgICAgcmV0dXJuIF9yZWFjdDIuZGVmYXVsdC5jcmVhdGVFbGVtZW50KFxuICAgICAgICAnZycsXG4gICAgICAgIG51bGwsXG4gICAgICAgIHRvb2x0aXBzLFxuICAgICAgICBfcmVhY3QyLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgncG9seWxpbmUnLCB7IHBvaW50czogZmlsbFBvaW50cy5qb2luKCcgJyksIHN0eWxlOiBmaWxsU3R5bGUgfSksXG4gICAgICAgIF9yZWFjdDIuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCdwb2x5bGluZScsIHsgcG9pbnRzOiBsaW5lUG9pbnRzLmpvaW4oJyAnKSwgc3R5bGU6IGxpbmVTdHlsZSB9KVxuICAgICAgKTtcbiAgICB9XG4gIH1dKTtcblxuICByZXR1cm4gU3BhcmtsaW5lc0xpbmU7XG59KF9yZWFjdDIuZGVmYXVsdC5Db21wb25lbnQpO1xuXG5TcGFya2xpbmVzTGluZS5wcm9wVHlwZXMgPSB7XG4gIGNvbG9yOiBfcHJvcFR5cGVzMi5kZWZhdWx0LnN0cmluZyxcbiAgc3R5bGU6IF9wcm9wVHlwZXMyLmRlZmF1bHQub2JqZWN0XG59O1xuU3BhcmtsaW5lc0xpbmUuZGVmYXVsdFByb3BzID0ge1xuICBzdHlsZToge30sXG4gIG9uTW91c2VNb3ZlOiBmdW5jdGlvbiBvbk1vdXNlTW92ZSgpIHt9XG59O1xuZXhwb3J0cy5kZWZhdWx0ID0gU3BhcmtsaW5lc0xpbmU7XG5cbi8qKiovIH0pLFxuLyogMTkgKi9cbi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG5cblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuXG52YXIgX2NyZWF0ZUNsYXNzID0gZnVuY3Rpb24gKCkgeyBmdW5jdGlvbiBkZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCwgcHJvcHMpIHsgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9wcy5sZW5ndGg7IGkrKykgeyB2YXIgZGVzY3JpcHRvciA9IHByb3BzW2ldOyBkZXNjcmlwdG9yLmVudW1lcmFibGUgPSBkZXNjcmlwdG9yLmVudW1lcmFibGUgfHwgZmFsc2U7IGRlc2NyaXB0b3IuY29uZmlndXJhYmxlID0gdHJ1ZTsgaWYgKFwidmFsdWVcIiBpbiBkZXNjcmlwdG9yKSBkZXNjcmlwdG9yLndyaXRhYmxlID0gdHJ1ZTsgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgZGVzY3JpcHRvci5rZXksIGRlc2NyaXB0b3IpOyB9IH0gcmV0dXJuIGZ1bmN0aW9uIChDb25zdHJ1Y3RvciwgcHJvdG9Qcm9wcywgc3RhdGljUHJvcHMpIHsgaWYgKHByb3RvUHJvcHMpIGRlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IucHJvdG90eXBlLCBwcm90b1Byb3BzKTsgaWYgKHN0YXRpY1Byb3BzKSBkZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLCBzdGF0aWNQcm9wcyk7IHJldHVybiBDb25zdHJ1Y3RvcjsgfTsgfSgpO1xuXG52YXIgX3Byb3BUeXBlcyA9IF9fd2VicGFja19yZXF1aXJlX18oMCk7XG5cbnZhciBfcHJvcFR5cGVzMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3Byb3BUeXBlcyk7XG5cbnZhciBfcmVhY3QgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDEpO1xuXG52YXIgX3JlYWN0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3JlYWN0KTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgZGVmYXVsdDogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uXCIpOyB9IH1cblxuZnVuY3Rpb24gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4oc2VsZiwgY2FsbCkgeyBpZiAoIXNlbGYpIHsgdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKFwidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkXCIpOyB9IHJldHVybiBjYWxsICYmICh0eXBlb2YgY2FsbCA9PT0gXCJvYmplY3RcIiB8fCB0eXBlb2YgY2FsbCA9PT0gXCJmdW5jdGlvblwiKSA/IGNhbGwgOiBzZWxmOyB9XG5cbmZ1bmN0aW9uIF9pbmhlcml0cyhzdWJDbGFzcywgc3VwZXJDbGFzcykgeyBpZiAodHlwZW9mIHN1cGVyQ2xhc3MgIT09IFwiZnVuY3Rpb25cIiAmJiBzdXBlckNsYXNzICE9PSBudWxsKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoXCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiwgbm90IFwiICsgdHlwZW9mIHN1cGVyQ2xhc3MpOyB9IHN1YkNsYXNzLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoc3VwZXJDbGFzcyAmJiBzdXBlckNsYXNzLnByb3RvdHlwZSwgeyBjb25zdHJ1Y3RvcjogeyB2YWx1ZTogc3ViQ2xhc3MsIGVudW1lcmFibGU6IGZhbHNlLCB3cml0YWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlIH0gfSk7IGlmIChzdXBlckNsYXNzKSBPYmplY3Quc2V0UHJvdG90eXBlT2YgPyBPYmplY3Quc2V0UHJvdG90eXBlT2Yoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIDogc3ViQ2xhc3MuX19wcm90b19fID0gc3VwZXJDbGFzczsgfVxuXG52YXIgU3BhcmtsaW5lc0N1cnZlID0gZnVuY3Rpb24gKF9SZWFjdCRDb21wb25lbnQpIHtcbiAgICBfaW5oZXJpdHMoU3BhcmtsaW5lc0N1cnZlLCBfUmVhY3QkQ29tcG9uZW50KTtcblxuICAgIGZ1bmN0aW9uIFNwYXJrbGluZXNDdXJ2ZSgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFNwYXJrbGluZXNDdXJ2ZSk7XG5cbiAgICAgICAgcmV0dXJuIF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHRoaXMsIChTcGFya2xpbmVzQ3VydmUuX19wcm90b19fIHx8IE9iamVjdC5nZXRQcm90b3R5cGVPZihTcGFya2xpbmVzQ3VydmUpKS5hcHBseSh0aGlzLCBhcmd1bWVudHMpKTtcbiAgICB9XG5cbiAgICBfY3JlYXRlQ2xhc3MoU3BhcmtsaW5lc0N1cnZlLCBbe1xuICAgICAgICBrZXk6ICdyZW5kZXInLFxuICAgICAgICB2YWx1ZTogZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgICAgICAgICAgdmFyIF9wcm9wcyA9IHRoaXMucHJvcHMsXG4gICAgICAgICAgICAgICAgcG9pbnRzID0gX3Byb3BzLnBvaW50cyxcbiAgICAgICAgICAgICAgICB3aWR0aCA9IF9wcm9wcy53aWR0aCxcbiAgICAgICAgICAgICAgICBoZWlnaHQgPSBfcHJvcHMuaGVpZ2h0LFxuICAgICAgICAgICAgICAgIG1hcmdpbiA9IF9wcm9wcy5tYXJnaW4sXG4gICAgICAgICAgICAgICAgY29sb3IgPSBfcHJvcHMuY29sb3IsXG4gICAgICAgICAgICAgICAgc3R5bGUgPSBfcHJvcHMuc3R5bGUsXG4gICAgICAgICAgICAgICAgX3Byb3BzJGRpdmlzb3IgPSBfcHJvcHMuZGl2aXNvcixcbiAgICAgICAgICAgICAgICBkaXZpc29yID0gX3Byb3BzJGRpdmlzb3IgPT09IHVuZGVmaW5lZCA/IDAuMjUgOiBfcHJvcHMkZGl2aXNvcjtcblxuICAgICAgICAgICAgdmFyIHByZXYgPSB2b2lkIDA7XG4gICAgICAgICAgICB2YXIgY3VydmUgPSBmdW5jdGlvbiBjdXJ2ZShwKSB7XG4gICAgICAgICAgICAgICAgdmFyIHJlcyA9IHZvaWQgMDtcbiAgICAgICAgICAgICAgICBpZiAoIXByZXYpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzID0gW3AueCwgcC55XTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB2YXIgbGVuID0gKHAueCAtIHByZXYueCkgKiBkaXZpc29yO1xuICAgICAgICAgICAgICAgICAgICByZXMgPSBbXCJDXCIsXG4gICAgICAgICAgICAgICAgICAgIC8veDFcbiAgICAgICAgICAgICAgICAgICAgcHJldi54ICsgbGVuLFxuICAgICAgICAgICAgICAgICAgICAvL3kxXG4gICAgICAgICAgICAgICAgICAgIHByZXYueSxcbiAgICAgICAgICAgICAgICAgICAgLy94MixcbiAgICAgICAgICAgICAgICAgICAgcC54IC0gbGVuLFxuICAgICAgICAgICAgICAgICAgICAvL3kyLFxuICAgICAgICAgICAgICAgICAgICBwLnksXG4gICAgICAgICAgICAgICAgICAgIC8veCxcbiAgICAgICAgICAgICAgICAgICAgcC54LFxuICAgICAgICAgICAgICAgICAgICAvL3lcbiAgICAgICAgICAgICAgICAgICAgcC55XTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcHJldiA9IHA7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlcztcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB2YXIgbGluZVBvaW50cyA9IHBvaW50cy5tYXAoZnVuY3Rpb24gKHApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gY3VydmUocCk7XG4gICAgICAgICAgICB9KS5yZWR1Y2UoZnVuY3Rpb24gKGEsIGIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gYS5jb25jYXQoYik7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHZhciBjbG9zZVBvbHlQb2ludHMgPSBbXCJMXCIgKyBwb2ludHNbcG9pbnRzLmxlbmd0aCAtIDFdLngsIGhlaWdodCAtIG1hcmdpbiwgbWFyZ2luLCBoZWlnaHQgLSBtYXJnaW4sIG1hcmdpbiwgcG9pbnRzWzBdLnldO1xuICAgICAgICAgICAgdmFyIGZpbGxQb2ludHMgPSBsaW5lUG9pbnRzLmNvbmNhdChjbG9zZVBvbHlQb2ludHMpO1xuXG4gICAgICAgICAgICB2YXIgbGluZVN0eWxlID0ge1xuICAgICAgICAgICAgICAgIHN0cm9rZTogY29sb3IgfHwgc3R5bGUuc3Ryb2tlIHx8ICdzbGF0ZWdyYXknLFxuICAgICAgICAgICAgICAgIHN0cm9rZVdpZHRoOiBzdHlsZS5zdHJva2VXaWR0aCB8fCAnMScsXG4gICAgICAgICAgICAgICAgc3Ryb2tlTGluZWpvaW46IHN0eWxlLnN0cm9rZUxpbmVqb2luIHx8ICdyb3VuZCcsXG4gICAgICAgICAgICAgICAgc3Ryb2tlTGluZWNhcDogc3R5bGUuc3Ryb2tlTGluZWNhcCB8fCAncm91bmQnLFxuICAgICAgICAgICAgICAgIGZpbGw6ICdub25lJ1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHZhciBmaWxsU3R5bGUgPSB7XG4gICAgICAgICAgICAgICAgc3Ryb2tlOiBzdHlsZS5zdHJva2UgfHwgJ25vbmUnLFxuICAgICAgICAgICAgICAgIHN0cm9rZVdpZHRoOiAnMCcsXG4gICAgICAgICAgICAgICAgZmlsbE9wYWNpdHk6IHN0eWxlLmZpbGxPcGFjaXR5IHx8ICcuMScsXG4gICAgICAgICAgICAgICAgZmlsbDogc3R5bGUuZmlsbCB8fCBjb2xvciB8fCAnc2xhdGVncmF5J1xuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgcmV0dXJuIF9yZWFjdDIuZGVmYXVsdC5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICAgICdnJyxcbiAgICAgICAgICAgICAgICBudWxsLFxuICAgICAgICAgICAgICAgIF9yZWFjdDIuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCdwYXRoJywgeyBkOiBcIk1cIiArIGZpbGxQb2ludHMuam9pbignICcpLCBzdHlsZTogZmlsbFN0eWxlIH0pLFxuICAgICAgICAgICAgICAgIF9yZWFjdDIuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCdwYXRoJywgeyBkOiBcIk1cIiArIGxpbmVQb2ludHMuam9pbignICcpLCBzdHlsZTogbGluZVN0eWxlIH0pXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfV0pO1xuXG4gICAgcmV0dXJuIFNwYXJrbGluZXNDdXJ2ZTtcbn0oX3JlYWN0Mi5kZWZhdWx0LkNvbXBvbmVudCk7XG5cblNwYXJrbGluZXNDdXJ2ZS5wcm9wVHlwZXMgPSB7XG4gICAgY29sb3I6IF9wcm9wVHlwZXMyLmRlZmF1bHQuc3RyaW5nLFxuICAgIHN0eWxlOiBfcHJvcFR5cGVzMi5kZWZhdWx0Lm9iamVjdFxufTtcblNwYXJrbGluZXNDdXJ2ZS5kZWZhdWx0UHJvcHMgPSB7XG4gICAgc3R5bGU6IHt9XG59O1xuZXhwb3J0cy5kZWZhdWx0ID0gU3BhcmtsaW5lc0N1cnZlO1xuXG4vKioqLyB9KSxcbi8qIDIwICovXG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7XG5cblwidXNlIHN0cmljdFwiO1xuXG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5cbnZhciBfY3JlYXRlQ2xhc3MgPSBmdW5jdGlvbiAoKSB7IGZ1bmN0aW9uIGRlZmluZVByb3BlcnRpZXModGFyZ2V0LCBwcm9wcykgeyBmb3IgKHZhciBpID0gMDsgaSA8IHByb3BzLmxlbmd0aDsgaSsrKSB7IHZhciBkZXNjcmlwdG9yID0gcHJvcHNbaV07IGRlc2NyaXB0b3IuZW51bWVyYWJsZSA9IGRlc2NyaXB0b3IuZW51bWVyYWJsZSB8fCBmYWxzZTsgZGVzY3JpcHRvci5jb25maWd1cmFibGUgPSB0cnVlOyBpZiAoXCJ2YWx1ZVwiIGluIGRlc2NyaXB0b3IpIGRlc2NyaXB0b3Iud3JpdGFibGUgPSB0cnVlOyBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBkZXNjcmlwdG9yLmtleSwgZGVzY3JpcHRvcik7IH0gfSByZXR1cm4gZnVuY3Rpb24gKENvbnN0cnVjdG9yLCBwcm90b1Byb3BzLCBzdGF0aWNQcm9wcykgeyBpZiAocHJvdG9Qcm9wcykgZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvci5wcm90b3R5cGUsIHByb3RvUHJvcHMpOyBpZiAoc3RhdGljUHJvcHMpIGRlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IsIHN0YXRpY1Byb3BzKTsgcmV0dXJuIENvbnN0cnVjdG9yOyB9OyB9KCk7XG5cbnZhciBfcHJvcFR5cGVzID0gX193ZWJwYWNrX3JlcXVpcmVfXygwKTtcblxudmFyIF9wcm9wVHlwZXMyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfcHJvcFR5cGVzKTtcblxudmFyIF9yZWFjdCA9IF9fd2VicGFja19yZXF1aXJlX18oMSk7XG5cbnZhciBfcmVhY3QyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfcmVhY3QpO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBkZWZhdWx0OiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIik7IH0gfVxuXG5mdW5jdGlvbiBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybihzZWxmLCBjYWxsKSB7IGlmICghc2VsZikgeyB0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoXCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWRcIik7IH0gcmV0dXJuIGNhbGwgJiYgKHR5cGVvZiBjYWxsID09PSBcIm9iamVjdFwiIHx8IHR5cGVvZiBjYWxsID09PSBcImZ1bmN0aW9uXCIpID8gY2FsbCA6IHNlbGY7IH1cblxuZnVuY3Rpb24gX2luaGVyaXRzKHN1YkNsYXNzLCBzdXBlckNsYXNzKSB7IGlmICh0eXBlb2Ygc3VwZXJDbGFzcyAhPT0gXCJmdW5jdGlvblwiICYmIHN1cGVyQ2xhc3MgIT09IG51bGwpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uLCBub3QgXCIgKyB0eXBlb2Ygc3VwZXJDbGFzcyk7IH0gc3ViQ2xhc3MucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShzdXBlckNsYXNzICYmIHN1cGVyQ2xhc3MucHJvdG90eXBlLCB7IGNvbnN0cnVjdG9yOiB7IHZhbHVlOiBzdWJDbGFzcywgZW51bWVyYWJsZTogZmFsc2UsIHdyaXRhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUgfSB9KTsgaWYgKHN1cGVyQ2xhc3MpIE9iamVjdC5zZXRQcm90b3R5cGVPZiA/IE9iamVjdC5zZXRQcm90b3R5cGVPZihzdWJDbGFzcywgc3VwZXJDbGFzcykgOiBzdWJDbGFzcy5fX3Byb3RvX18gPSBzdXBlckNsYXNzOyB9XG5cbnZhciBTcGFya2xpbmVzQmFycyA9IGZ1bmN0aW9uIChfUmVhY3QkQ29tcG9uZW50KSB7XG4gIF9pbmhlcml0cyhTcGFya2xpbmVzQmFycywgX1JlYWN0JENvbXBvbmVudCk7XG5cbiAgZnVuY3Rpb24gU3BhcmtsaW5lc0JhcnMoKSB7XG4gICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFNwYXJrbGluZXNCYXJzKTtcblxuICAgIHJldHVybiBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybih0aGlzLCAoU3BhcmtsaW5lc0JhcnMuX19wcm90b19fIHx8IE9iamVjdC5nZXRQcm90b3R5cGVPZihTcGFya2xpbmVzQmFycykpLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykpO1xuICB9XG5cbiAgX2NyZWF0ZUNsYXNzKFNwYXJrbGluZXNCYXJzLCBbe1xuICAgIGtleTogJ3JlbmRlcicsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHJlbmRlcigpIHtcbiAgICAgIHZhciBfdGhpczIgPSB0aGlzO1xuXG4gICAgICB2YXIgX3Byb3BzID0gdGhpcy5wcm9wcyxcbiAgICAgICAgICBwb2ludHMgPSBfcHJvcHMucG9pbnRzLFxuICAgICAgICAgIGhlaWdodCA9IF9wcm9wcy5oZWlnaHQsXG4gICAgICAgICAgc3R5bGUgPSBfcHJvcHMuc3R5bGUsXG4gICAgICAgICAgYmFyV2lkdGggPSBfcHJvcHMuYmFyV2lkdGgsXG4gICAgICAgICAgbWFyZ2luID0gX3Byb3BzLm1hcmdpbixcbiAgICAgICAgICBvbk1vdXNlTW92ZSA9IF9wcm9wcy5vbk1vdXNlTW92ZTtcblxuICAgICAgdmFyIHN0cm9rZVdpZHRoID0gMSAqIChzdHlsZSAmJiBzdHlsZS5zdHJva2VXaWR0aCB8fCAwKTtcbiAgICAgIHZhciBtYXJnaW5XaWR0aCA9IG1hcmdpbiA/IDIgKiBtYXJnaW4gOiAwO1xuICAgICAgdmFyIHdpZHRoID0gYmFyV2lkdGggfHwgKHBvaW50cyAmJiBwb2ludHMubGVuZ3RoID49IDIgPyBNYXRoLm1heCgwLCBwb2ludHNbMV0ueCAtIHBvaW50c1swXS54IC0gc3Ryb2tlV2lkdGggLSBtYXJnaW5XaWR0aCkgOiAwKTtcblxuICAgICAgcmV0dXJuIF9yZWFjdDIuZGVmYXVsdC5jcmVhdGVFbGVtZW50KFxuICAgICAgICAnZycsXG4gICAgICAgIHsgdHJhbnNmb3JtOiAnc2NhbGUoMSwtMSknIH0sXG4gICAgICAgIHBvaW50cy5tYXAoZnVuY3Rpb24gKHAsIGkpIHtcbiAgICAgICAgICByZXR1cm4gX3JlYWN0Mi5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoJ3JlY3QnLCB7XG4gICAgICAgICAgICBrZXk6IGksXG4gICAgICAgICAgICB4OiBwLnggLSAod2lkdGggKyBzdHJva2VXaWR0aCkgLyAyLFxuICAgICAgICAgICAgeTogLWhlaWdodCxcbiAgICAgICAgICAgIHdpZHRoOiB3aWR0aCxcbiAgICAgICAgICAgIGhlaWdodDogTWF0aC5tYXgoMCwgaGVpZ2h0IC0gcC55KSxcbiAgICAgICAgICAgIHN0eWxlOiBzdHlsZSxcbiAgICAgICAgICAgIG9uTW91c2VNb3ZlOiBvbk1vdXNlTW92ZSAmJiBvbk1vdXNlTW92ZS5iaW5kKF90aGlzMiwgcClcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfVxuICB9XSk7XG5cbiAgcmV0dXJuIFNwYXJrbGluZXNCYXJzO1xufShfcmVhY3QyLmRlZmF1bHQuQ29tcG9uZW50KTtcblxuU3BhcmtsaW5lc0JhcnMucHJvcFR5cGVzID0ge1xuICBwb2ludHM6IF9wcm9wVHlwZXMyLmRlZmF1bHQuYXJyYXlPZihfcHJvcFR5cGVzMi5kZWZhdWx0Lm9iamVjdCksXG4gIGhlaWdodDogX3Byb3BUeXBlczIuZGVmYXVsdC5udW1iZXIsXG4gIHN0eWxlOiBfcHJvcFR5cGVzMi5kZWZhdWx0Lm9iamVjdCxcbiAgYmFyV2lkdGg6IF9wcm9wVHlwZXMyLmRlZmF1bHQubnVtYmVyLFxuICBtYXJnaW46IF9wcm9wVHlwZXMyLmRlZmF1bHQubnVtYmVyLFxuICBvbk1vdXNlTW92ZTogX3Byb3BUeXBlczIuZGVmYXVsdC5mdW5jXG59O1xuU3BhcmtsaW5lc0JhcnMuZGVmYXVsdFByb3BzID0ge1xuICBzdHlsZTogeyBmaWxsOiAnc2xhdGVncmF5JyB9XG59O1xuZXhwb3J0cy5kZWZhdWx0ID0gU3BhcmtsaW5lc0JhcnM7XG5cbi8qKiovIH0pLFxuLyogMjEgKi9cbi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG5cblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuXG52YXIgX2NyZWF0ZUNsYXNzID0gZnVuY3Rpb24gKCkgeyBmdW5jdGlvbiBkZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCwgcHJvcHMpIHsgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9wcy5sZW5ndGg7IGkrKykgeyB2YXIgZGVzY3JpcHRvciA9IHByb3BzW2ldOyBkZXNjcmlwdG9yLmVudW1lcmFibGUgPSBkZXNjcmlwdG9yLmVudW1lcmFibGUgfHwgZmFsc2U7IGRlc2NyaXB0b3IuY29uZmlndXJhYmxlID0gdHJ1ZTsgaWYgKFwidmFsdWVcIiBpbiBkZXNjcmlwdG9yKSBkZXNjcmlwdG9yLndyaXRhYmxlID0gdHJ1ZTsgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgZGVzY3JpcHRvci5rZXksIGRlc2NyaXB0b3IpOyB9IH0gcmV0dXJuIGZ1bmN0aW9uIChDb25zdHJ1Y3RvciwgcHJvdG9Qcm9wcywgc3RhdGljUHJvcHMpIHsgaWYgKHByb3RvUHJvcHMpIGRlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IucHJvdG90eXBlLCBwcm90b1Byb3BzKTsgaWYgKHN0YXRpY1Byb3BzKSBkZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLCBzdGF0aWNQcm9wcyk7IHJldHVybiBDb25zdHJ1Y3RvcjsgfTsgfSgpO1xuXG52YXIgX3Byb3BUeXBlcyA9IF9fd2VicGFja19yZXF1aXJlX18oMCk7XG5cbnZhciBfcHJvcFR5cGVzMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3Byb3BUeXBlcyk7XG5cbnZhciBfcmVhY3QgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDEpO1xuXG52YXIgX3JlYWN0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3JlYWN0KTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgZGVmYXVsdDogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uXCIpOyB9IH1cblxuZnVuY3Rpb24gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4oc2VsZiwgY2FsbCkgeyBpZiAoIXNlbGYpIHsgdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKFwidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkXCIpOyB9IHJldHVybiBjYWxsICYmICh0eXBlb2YgY2FsbCA9PT0gXCJvYmplY3RcIiB8fCB0eXBlb2YgY2FsbCA9PT0gXCJmdW5jdGlvblwiKSA/IGNhbGwgOiBzZWxmOyB9XG5cbmZ1bmN0aW9uIF9pbmhlcml0cyhzdWJDbGFzcywgc3VwZXJDbGFzcykgeyBpZiAodHlwZW9mIHN1cGVyQ2xhc3MgIT09IFwiZnVuY3Rpb25cIiAmJiBzdXBlckNsYXNzICE9PSBudWxsKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoXCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiwgbm90IFwiICsgdHlwZW9mIHN1cGVyQ2xhc3MpOyB9IHN1YkNsYXNzLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoc3VwZXJDbGFzcyAmJiBzdXBlckNsYXNzLnByb3RvdHlwZSwgeyBjb25zdHJ1Y3RvcjogeyB2YWx1ZTogc3ViQ2xhc3MsIGVudW1lcmFibGU6IGZhbHNlLCB3cml0YWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlIH0gfSk7IGlmIChzdXBlckNsYXNzKSBPYmplY3Quc2V0UHJvdG90eXBlT2YgPyBPYmplY3Quc2V0UHJvdG90eXBlT2Yoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIDogc3ViQ2xhc3MuX19wcm90b19fID0gc3VwZXJDbGFzczsgfVxuXG52YXIgU3BhcmtsaW5lc1Nwb3RzID0gZnVuY3Rpb24gKF9SZWFjdCRDb21wb25lbnQpIHtcbiAgICBfaW5oZXJpdHMoU3BhcmtsaW5lc1Nwb3RzLCBfUmVhY3QkQ29tcG9uZW50KTtcblxuICAgIGZ1bmN0aW9uIFNwYXJrbGluZXNTcG90cygpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFNwYXJrbGluZXNTcG90cyk7XG5cbiAgICAgICAgcmV0dXJuIF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHRoaXMsIChTcGFya2xpbmVzU3BvdHMuX19wcm90b19fIHx8IE9iamVjdC5nZXRQcm90b3R5cGVPZihTcGFya2xpbmVzU3BvdHMpKS5hcHBseSh0aGlzLCBhcmd1bWVudHMpKTtcbiAgICB9XG5cbiAgICBfY3JlYXRlQ2xhc3MoU3BhcmtsaW5lc1Nwb3RzLCBbe1xuICAgICAgICBrZXk6ICdsYXN0RGlyZWN0aW9uJyxcbiAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIGxhc3REaXJlY3Rpb24ocG9pbnRzKSB7XG5cbiAgICAgICAgICAgIE1hdGguc2lnbiA9IE1hdGguc2lnbiB8fCBmdW5jdGlvbiAoeCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB4ID4gMCA/IDEgOiAtMTtcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIHJldHVybiBwb2ludHMubGVuZ3RoIDwgMiA/IDAgOiBNYXRoLnNpZ24ocG9pbnRzW3BvaW50cy5sZW5ndGggLSAyXS55IC0gcG9pbnRzW3BvaW50cy5sZW5ndGggLSAxXS55KTtcbiAgICAgICAgfVxuICAgIH0sIHtcbiAgICAgICAga2V5OiAncmVuZGVyJyxcbiAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIHJlbmRlcigpIHtcbiAgICAgICAgICAgIHZhciBfcHJvcHMgPSB0aGlzLnByb3BzLFxuICAgICAgICAgICAgICAgIHBvaW50cyA9IF9wcm9wcy5wb2ludHMsXG4gICAgICAgICAgICAgICAgd2lkdGggPSBfcHJvcHMud2lkdGgsXG4gICAgICAgICAgICAgICAgaGVpZ2h0ID0gX3Byb3BzLmhlaWdodCxcbiAgICAgICAgICAgICAgICBzaXplID0gX3Byb3BzLnNpemUsXG4gICAgICAgICAgICAgICAgc3R5bGUgPSBfcHJvcHMuc3R5bGUsXG4gICAgICAgICAgICAgICAgc3BvdENvbG9ycyA9IF9wcm9wcy5zcG90Q29sb3JzO1xuXG5cbiAgICAgICAgICAgIHZhciBzdGFydFNwb3QgPSBfcmVhY3QyLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgnY2lyY2xlJywge1xuICAgICAgICAgICAgICAgIGN4OiBwb2ludHNbMF0ueCxcbiAgICAgICAgICAgICAgICBjeTogcG9pbnRzWzBdLnksXG4gICAgICAgICAgICAgICAgcjogc2l6ZSxcbiAgICAgICAgICAgICAgICBzdHlsZTogc3R5bGUgfSk7XG5cbiAgICAgICAgICAgIHZhciBlbmRTcG90ID0gX3JlYWN0Mi5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoJ2NpcmNsZScsIHtcbiAgICAgICAgICAgICAgICBjeDogcG9pbnRzW3BvaW50cy5sZW5ndGggLSAxXS54LFxuICAgICAgICAgICAgICAgIGN5OiBwb2ludHNbcG9pbnRzLmxlbmd0aCAtIDFdLnksXG4gICAgICAgICAgICAgICAgcjogc2l6ZSxcbiAgICAgICAgICAgICAgICBzdHlsZTogc3R5bGUgfHwgeyBmaWxsOiBzcG90Q29sb3JzW3RoaXMubGFzdERpcmVjdGlvbihwb2ludHMpXSB9IH0pO1xuXG4gICAgICAgICAgICByZXR1cm4gX3JlYWN0Mi5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAgICAgJ2cnLFxuICAgICAgICAgICAgICAgIG51bGwsXG4gICAgICAgICAgICAgICAgc3R5bGUgJiYgc3RhcnRTcG90LFxuICAgICAgICAgICAgICAgIGVuZFNwb3RcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XSk7XG5cbiAgICByZXR1cm4gU3BhcmtsaW5lc1Nwb3RzO1xufShfcmVhY3QyLmRlZmF1bHQuQ29tcG9uZW50KTtcblxuU3BhcmtsaW5lc1Nwb3RzLnByb3BUeXBlcyA9IHtcbiAgICBzaXplOiBfcHJvcFR5cGVzMi5kZWZhdWx0Lm51bWJlcixcbiAgICBzdHlsZTogX3Byb3BUeXBlczIuZGVmYXVsdC5vYmplY3QsXG4gICAgc3BvdENvbG9yczogX3Byb3BUeXBlczIuZGVmYXVsdC5vYmplY3Rcbn07XG5TcGFya2xpbmVzU3BvdHMuZGVmYXVsdFByb3BzID0ge1xuICAgIHNpemU6IDIsXG4gICAgc3BvdENvbG9yczoge1xuICAgICAgICAnLTEnOiAncmVkJyxcbiAgICAgICAgJzAnOiAnYmxhY2snLFxuICAgICAgICAnMSc6ICdncmVlbidcbiAgICB9XG59O1xuZXhwb3J0cy5kZWZhdWx0ID0gU3BhcmtsaW5lc1Nwb3RzO1xuXG4vKioqLyB9KSxcbi8qIDIyICovXG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7XG5cblwidXNlIHN0cmljdFwiO1xuXG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcblxudmFyIF9jcmVhdGVDbGFzcyA9IGZ1bmN0aW9uICgpIHsgZnVuY3Rpb24gZGVmaW5lUHJvcGVydGllcyh0YXJnZXQsIHByb3BzKSB7IGZvciAodmFyIGkgPSAwOyBpIDwgcHJvcHMubGVuZ3RoOyBpKyspIHsgdmFyIGRlc2NyaXB0b3IgPSBwcm9wc1tpXTsgZGVzY3JpcHRvci5lbnVtZXJhYmxlID0gZGVzY3JpcHRvci5lbnVtZXJhYmxlIHx8IGZhbHNlOyBkZXNjcmlwdG9yLmNvbmZpZ3VyYWJsZSA9IHRydWU7IGlmIChcInZhbHVlXCIgaW4gZGVzY3JpcHRvcikgZGVzY3JpcHRvci53cml0YWJsZSA9IHRydWU7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGRlc2NyaXB0b3Iua2V5LCBkZXNjcmlwdG9yKTsgfSB9IHJldHVybiBmdW5jdGlvbiAoQ29uc3RydWN0b3IsIHByb3RvUHJvcHMsIHN0YXRpY1Byb3BzKSB7IGlmIChwcm90b1Byb3BzKSBkZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLnByb3RvdHlwZSwgcHJvdG9Qcm9wcyk7IGlmIChzdGF0aWNQcm9wcykgZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvciwgc3RhdGljUHJvcHMpOyByZXR1cm4gQ29uc3RydWN0b3I7IH07IH0oKTtcblxudmFyIF9wcm9wVHlwZXMgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDApO1xuXG52YXIgX3Byb3BUeXBlczIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9wcm9wVHlwZXMpO1xuXG52YXIgX3JlYWN0ID0gX193ZWJwYWNrX3JlcXVpcmVfXygxKTtcblxudmFyIF9yZWFjdDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9yZWFjdCk7XG5cbnZhciBfZGF0YVByb2Nlc3NpbmcgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDIzKTtcblxudmFyIGRhdGFQcm9jZXNzaW5nID0gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQoX2RhdGFQcm9jZXNzaW5nKTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQob2JqKSB7IGlmIChvYmogJiYgb2JqLl9fZXNNb2R1bGUpIHsgcmV0dXJuIG9iajsgfSBlbHNlIHsgdmFyIG5ld09iaiA9IHt9OyBpZiAob2JqICE9IG51bGwpIHsgZm9yICh2YXIga2V5IGluIG9iaikgeyBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwga2V5KSkgbmV3T2JqW2tleV0gPSBvYmpba2V5XTsgfSB9IG5ld09iai5kZWZhdWx0ID0gb2JqOyByZXR1cm4gbmV3T2JqOyB9IH1cblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgZGVmYXVsdDogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uXCIpOyB9IH1cblxuZnVuY3Rpb24gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4oc2VsZiwgY2FsbCkgeyBpZiAoIXNlbGYpIHsgdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKFwidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkXCIpOyB9IHJldHVybiBjYWxsICYmICh0eXBlb2YgY2FsbCA9PT0gXCJvYmplY3RcIiB8fCB0eXBlb2YgY2FsbCA9PT0gXCJmdW5jdGlvblwiKSA/IGNhbGwgOiBzZWxmOyB9XG5cbmZ1bmN0aW9uIF9pbmhlcml0cyhzdWJDbGFzcywgc3VwZXJDbGFzcykgeyBpZiAodHlwZW9mIHN1cGVyQ2xhc3MgIT09IFwiZnVuY3Rpb25cIiAmJiBzdXBlckNsYXNzICE9PSBudWxsKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoXCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiwgbm90IFwiICsgdHlwZW9mIHN1cGVyQ2xhc3MpOyB9IHN1YkNsYXNzLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoc3VwZXJDbGFzcyAmJiBzdXBlckNsYXNzLnByb3RvdHlwZSwgeyBjb25zdHJ1Y3RvcjogeyB2YWx1ZTogc3ViQ2xhc3MsIGVudW1lcmFibGU6IGZhbHNlLCB3cml0YWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlIH0gfSk7IGlmIChzdXBlckNsYXNzKSBPYmplY3Quc2V0UHJvdG90eXBlT2YgPyBPYmplY3Quc2V0UHJvdG90eXBlT2Yoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIDogc3ViQ2xhc3MuX19wcm90b19fID0gc3VwZXJDbGFzczsgfVxuXG52YXIgU3BhcmtsaW5lc1JlZmVyZW5jZUxpbmUgPSBmdW5jdGlvbiAoX1JlYWN0JENvbXBvbmVudCkge1xuICAgIF9pbmhlcml0cyhTcGFya2xpbmVzUmVmZXJlbmNlTGluZSwgX1JlYWN0JENvbXBvbmVudCk7XG5cbiAgICBmdW5jdGlvbiBTcGFya2xpbmVzUmVmZXJlbmNlTGluZSgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFNwYXJrbGluZXNSZWZlcmVuY2VMaW5lKTtcblxuICAgICAgICByZXR1cm4gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4odGhpcywgKFNwYXJrbGluZXNSZWZlcmVuY2VMaW5lLl9fcHJvdG9fXyB8fCBPYmplY3QuZ2V0UHJvdG90eXBlT2YoU3BhcmtsaW5lc1JlZmVyZW5jZUxpbmUpKS5hcHBseSh0aGlzLCBhcmd1bWVudHMpKTtcbiAgICB9XG5cbiAgICBfY3JlYXRlQ2xhc3MoU3BhcmtsaW5lc1JlZmVyZW5jZUxpbmUsIFt7XG4gICAgICAgIGtleTogJ3JlbmRlcicsXG4gICAgICAgIHZhbHVlOiBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICAgICAgICB2YXIgX3Byb3BzID0gdGhpcy5wcm9wcyxcbiAgICAgICAgICAgICAgICBwb2ludHMgPSBfcHJvcHMucG9pbnRzLFxuICAgICAgICAgICAgICAgIG1hcmdpbiA9IF9wcm9wcy5tYXJnaW4sXG4gICAgICAgICAgICAgICAgdHlwZSA9IF9wcm9wcy50eXBlLFxuICAgICAgICAgICAgICAgIHN0eWxlID0gX3Byb3BzLnN0eWxlLFxuICAgICAgICAgICAgICAgIHZhbHVlID0gX3Byb3BzLnZhbHVlO1xuXG5cbiAgICAgICAgICAgIHZhciB5cG9pbnRzID0gcG9pbnRzLm1hcChmdW5jdGlvbiAocCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBwLnk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHZhciB5ID0gdHlwZSA9PSAnY3VzdG9tJyA/IHZhbHVlIDogZGF0YVByb2Nlc3NpbmdbdHlwZV0oeXBvaW50cyk7XG5cbiAgICAgICAgICAgIHJldHVybiBfcmVhY3QyLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgnbGluZScsIHtcbiAgICAgICAgICAgICAgICB4MTogcG9pbnRzWzBdLngsIHkxOiB5ICsgbWFyZ2luLFxuICAgICAgICAgICAgICAgIHgyOiBwb2ludHNbcG9pbnRzLmxlbmd0aCAtIDFdLngsIHkyOiB5ICsgbWFyZ2luLFxuICAgICAgICAgICAgICAgIHN0eWxlOiBzdHlsZSB9KTtcbiAgICAgICAgfVxuICAgIH1dKTtcblxuICAgIHJldHVybiBTcGFya2xpbmVzUmVmZXJlbmNlTGluZTtcbn0oX3JlYWN0Mi5kZWZhdWx0LkNvbXBvbmVudCk7XG5cblNwYXJrbGluZXNSZWZlcmVuY2VMaW5lLnByb3BUeXBlcyA9IHtcbiAgICB0eXBlOiBfcHJvcFR5cGVzMi5kZWZhdWx0Lm9uZU9mKFsnbWF4JywgJ21pbicsICdtZWFuJywgJ2F2ZycsICdtZWRpYW4nLCAnY3VzdG9tJ10pLFxuICAgIHZhbHVlOiBfcHJvcFR5cGVzMi5kZWZhdWx0Lm51bWJlcixcbiAgICBzdHlsZTogX3Byb3BUeXBlczIuZGVmYXVsdC5vYmplY3Rcbn07XG5TcGFya2xpbmVzUmVmZXJlbmNlTGluZS5kZWZhdWx0UHJvcHMgPSB7XG4gICAgdHlwZTogJ21lYW4nLFxuICAgIHN0eWxlOiB7IHN0cm9rZTogJ3JlZCcsIHN0cm9rZU9wYWNpdHk6IC43NSwgc3Ryb2tlRGFzaGFycmF5OiAnMiwgMicgfVxufTtcbmV4cG9ydHMuZGVmYXVsdCA9IFNwYXJrbGluZXNSZWZlcmVuY2VMaW5lO1xuXG4vKioqLyB9KSxcbi8qIDIzICovXG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7XG5cblwidXNlIHN0cmljdFwiO1xuXG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLnZhcmlhbmNlID0gZXhwb3J0cy5zdGRldiA9IGV4cG9ydHMubWVkaWFuID0gZXhwb3J0cy5taWRSYW5nZSA9IGV4cG9ydHMuYXZnID0gZXhwb3J0cy5tZWFuID0gZXhwb3J0cy5tYXggPSBleHBvcnRzLm1pbiA9IHVuZGVmaW5lZDtcblxudmFyIF9taW4yID0gX193ZWJwYWNrX3JlcXVpcmVfXyg3KTtcblxudmFyIF9taW4zID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbWluMik7XG5cbnZhciBfbWVhbjIgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDMpO1xuXG52YXIgX21lYW4zID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbWVhbjIpO1xuXG52YXIgX21pZFJhbmdlMiA9IF9fd2VicGFja19yZXF1aXJlX18oMjQpO1xuXG52YXIgX21pZFJhbmdlMyA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX21pZFJhbmdlMik7XG5cbnZhciBfbWVkaWFuMiA9IF9fd2VicGFja19yZXF1aXJlX18oMjUpO1xuXG52YXIgX21lZGlhbjMgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tZWRpYW4yKTtcblxudmFyIF9zdGRldjIgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDEwKTtcblxudmFyIF9zdGRldjMgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9zdGRldjIpO1xuXG52YXIgX3ZhcmlhbmNlMiA9IF9fd2VicGFja19yZXF1aXJlX18oMjYpO1xuXG52YXIgX3ZhcmlhbmNlMyA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3ZhcmlhbmNlMik7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7IGRlZmF1bHQ6IG9iaiB9OyB9XG5cbmV4cG9ydHMubWluID0gX21pbjMuZGVmYXVsdDtcbmV4cG9ydHMubWF4ID0gX21pbjMuZGVmYXVsdDtcbmV4cG9ydHMubWVhbiA9IF9tZWFuMy5kZWZhdWx0O1xuZXhwb3J0cy5hdmcgPSBfbWVhbjMuZGVmYXVsdDtcbmV4cG9ydHMubWlkUmFuZ2UgPSBfbWlkUmFuZ2UzLmRlZmF1bHQ7XG5leHBvcnRzLm1lZGlhbiA9IF9tZWRpYW4zLmRlZmF1bHQ7XG5leHBvcnRzLnN0ZGV2ID0gX3N0ZGV2My5kZWZhdWx0O1xuZXhwb3J0cy52YXJpYW5jZSA9IF92YXJpYW5jZTMuZGVmYXVsdDtcblxuLyoqKi8gfSksXG4vKiAyNCAqL1xuLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykge1xuXG5cInVzZSBzdHJpY3RcIjtcblxuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5cbnZhciBfbWluID0gX193ZWJwYWNrX3JlcXVpcmVfXyg3KTtcblxudmFyIF9taW4yID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbWluKTtcblxudmFyIF9tYXggPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDkpO1xuXG52YXIgX21heDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tYXgpO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBkZWZhdWx0OiBvYmogfTsgfVxuXG5leHBvcnRzLmRlZmF1bHQgPSBmdW5jdGlvbiAoZGF0YSkge1xuICAgIHJldHVybiAoMCwgX21heDIuZGVmYXVsdCkoZGF0YSkgLSAoMCwgX21pbjIuZGVmYXVsdCkoZGF0YSkgLyAyO1xufTtcblxuLyoqKi8gfSksXG4vKiAyNSAqL1xuLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykge1xuXG5cInVzZSBzdHJpY3RcIjtcblxuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5cbmV4cG9ydHMuZGVmYXVsdCA9IGZ1bmN0aW9uIChkYXRhKSB7XG4gICAgcmV0dXJuIGRhdGEuc29ydChmdW5jdGlvbiAoYSwgYikge1xuICAgICAgICByZXR1cm4gYSAtIGI7XG4gICAgfSlbTWF0aC5mbG9vcihkYXRhLmxlbmd0aCAvIDIpXTtcbn07XG5cbi8qKiovIH0pLFxuLyogMjYgKi9cbi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHtcblxuXCJ1c2Ugc3RyaWN0XCI7XG5cblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuXG52YXIgX21lYW4gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDMpO1xuXG52YXIgX21lYW4yID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbWVhbik7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7IGRlZmF1bHQ6IG9iaiB9OyB9XG5cbmV4cG9ydHMuZGVmYXVsdCA9IGZ1bmN0aW9uIChkYXRhKSB7XG4gICAgdmFyIGRhdGFNZWFuID0gKDAsIF9tZWFuMi5kZWZhdWx0KShkYXRhKTtcbiAgICB2YXIgc3EgPSBkYXRhLm1hcChmdW5jdGlvbiAobikge1xuICAgICAgICByZXR1cm4gTWF0aC5wb3cobiAtIGRhdGFNZWFuLCAyKTtcbiAgICB9KTtcbiAgICByZXR1cm4gKDAsIF9tZWFuMi5kZWZhdWx0KShzcSk7XG59O1xuXG4vKioqLyB9KSxcbi8qIDI3ICovXG4vKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7XG5cblwidXNlIHN0cmljdFwiO1xuXG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcblxudmFyIF9jcmVhdGVDbGFzcyA9IGZ1bmN0aW9uICgpIHsgZnVuY3Rpb24gZGVmaW5lUHJvcGVydGllcyh0YXJnZXQsIHByb3BzKSB7IGZvciAodmFyIGkgPSAwOyBpIDwgcHJvcHMubGVuZ3RoOyBpKyspIHsgdmFyIGRlc2NyaXB0b3IgPSBwcm9wc1tpXTsgZGVzY3JpcHRvci5lbnVtZXJhYmxlID0gZGVzY3JpcHRvci5lbnVtZXJhYmxlIHx8IGZhbHNlOyBkZXNjcmlwdG9yLmNvbmZpZ3VyYWJsZSA9IHRydWU7IGlmIChcInZhbHVlXCIgaW4gZGVzY3JpcHRvcikgZGVzY3JpcHRvci53cml0YWJsZSA9IHRydWU7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGRlc2NyaXB0b3Iua2V5LCBkZXNjcmlwdG9yKTsgfSB9IHJldHVybiBmdW5jdGlvbiAoQ29uc3RydWN0b3IsIHByb3RvUHJvcHMsIHN0YXRpY1Byb3BzKSB7IGlmIChwcm90b1Byb3BzKSBkZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLnByb3RvdHlwZSwgcHJvdG9Qcm9wcyk7IGlmIChzdGF0aWNQcm9wcykgZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvciwgc3RhdGljUHJvcHMpOyByZXR1cm4gQ29uc3RydWN0b3I7IH07IH0oKTtcblxudmFyIF9wcm9wVHlwZXMgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDApO1xuXG52YXIgX3Byb3BUeXBlczIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9wcm9wVHlwZXMpO1xuXG52YXIgX3JlYWN0ID0gX193ZWJwYWNrX3JlcXVpcmVfXygxKTtcblxudmFyIF9yZWFjdDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9yZWFjdCk7XG5cbnZhciBfbWVhbiA9IF9fd2VicGFja19yZXF1aXJlX18oMyk7XG5cbnZhciBfbWVhbjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tZWFuKTtcblxudmFyIF9zdGRldiA9IF9fd2VicGFja19yZXF1aXJlX18oMTApO1xuXG52YXIgX3N0ZGV2MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3N0ZGV2KTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgZGVmYXVsdDogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uXCIpOyB9IH1cblxuZnVuY3Rpb24gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4oc2VsZiwgY2FsbCkgeyBpZiAoIXNlbGYpIHsgdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKFwidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkXCIpOyB9IHJldHVybiBjYWxsICYmICh0eXBlb2YgY2FsbCA9PT0gXCJvYmplY3RcIiB8fCB0eXBlb2YgY2FsbCA9PT0gXCJmdW5jdGlvblwiKSA/IGNhbGwgOiBzZWxmOyB9XG5cbmZ1bmN0aW9uIF9pbmhlcml0cyhzdWJDbGFzcywgc3VwZXJDbGFzcykgeyBpZiAodHlwZW9mIHN1cGVyQ2xhc3MgIT09IFwiZnVuY3Rpb25cIiAmJiBzdXBlckNsYXNzICE9PSBudWxsKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoXCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiwgbm90IFwiICsgdHlwZW9mIHN1cGVyQ2xhc3MpOyB9IHN1YkNsYXNzLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoc3VwZXJDbGFzcyAmJiBzdXBlckNsYXNzLnByb3RvdHlwZSwgeyBjb25zdHJ1Y3RvcjogeyB2YWx1ZTogc3ViQ2xhc3MsIGVudW1lcmFibGU6IGZhbHNlLCB3cml0YWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlIH0gfSk7IGlmIChzdXBlckNsYXNzKSBPYmplY3Quc2V0UHJvdG90eXBlT2YgPyBPYmplY3Quc2V0UHJvdG90eXBlT2Yoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIDogc3ViQ2xhc3MuX19wcm90b19fID0gc3VwZXJDbGFzczsgfVxuXG52YXIgU3BhcmtsaW5lc05vcm1hbEJhbmQgPSBmdW5jdGlvbiAoX1JlYWN0JENvbXBvbmVudCkge1xuICAgIF9pbmhlcml0cyhTcGFya2xpbmVzTm9ybWFsQmFuZCwgX1JlYWN0JENvbXBvbmVudCk7XG5cbiAgICBmdW5jdGlvbiBTcGFya2xpbmVzTm9ybWFsQmFuZCgpIHtcbiAgICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFNwYXJrbGluZXNOb3JtYWxCYW5kKTtcblxuICAgICAgICByZXR1cm4gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4odGhpcywgKFNwYXJrbGluZXNOb3JtYWxCYW5kLl9fcHJvdG9fXyB8fCBPYmplY3QuZ2V0UHJvdG90eXBlT2YoU3BhcmtsaW5lc05vcm1hbEJhbmQpKS5hcHBseSh0aGlzLCBhcmd1bWVudHMpKTtcbiAgICB9XG5cbiAgICBfY3JlYXRlQ2xhc3MoU3BhcmtsaW5lc05vcm1hbEJhbmQsIFt7XG4gICAgICAgIGtleTogJ3JlbmRlcicsXG4gICAgICAgIHZhbHVlOiBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICAgICAgICB2YXIgX3Byb3BzID0gdGhpcy5wcm9wcyxcbiAgICAgICAgICAgICAgICBwb2ludHMgPSBfcHJvcHMucG9pbnRzLFxuICAgICAgICAgICAgICAgIG1hcmdpbiA9IF9wcm9wcy5tYXJnaW4sXG4gICAgICAgICAgICAgICAgc3R5bGUgPSBfcHJvcHMuc3R5bGU7XG5cblxuICAgICAgICAgICAgdmFyIHlwb2ludHMgPSBwb2ludHMubWFwKGZ1bmN0aW9uIChwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHAueTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdmFyIGRhdGFNZWFuID0gKDAsIF9tZWFuMi5kZWZhdWx0KSh5cG9pbnRzKTtcbiAgICAgICAgICAgIHZhciBkYXRhU3RkZXYgPSAoMCwgX3N0ZGV2Mi5kZWZhdWx0KSh5cG9pbnRzKTtcblxuICAgICAgICAgICAgcmV0dXJuIF9yZWFjdDIuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCdyZWN0JywgeyB4OiBwb2ludHNbMF0ueCwgeTogZGF0YU1lYW4gLSBkYXRhU3RkZXYgKyBtYXJnaW4sXG4gICAgICAgICAgICAgICAgd2lkdGg6IHBvaW50c1twb2ludHMubGVuZ3RoIC0gMV0ueCAtIHBvaW50c1swXS54LCBoZWlnaHQ6IF9zdGRldjIuZGVmYXVsdCAqIDIsXG4gICAgICAgICAgICAgICAgc3R5bGU6IHN0eWxlIH0pO1xuICAgICAgICB9XG4gICAgfV0pO1xuXG4gICAgcmV0dXJuIFNwYXJrbGluZXNOb3JtYWxCYW5kO1xufShfcmVhY3QyLmRlZmF1bHQuQ29tcG9uZW50KTtcblxuU3BhcmtsaW5lc05vcm1hbEJhbmQucHJvcFR5cGVzID0ge1xuICAgIHN0eWxlOiBfcHJvcFR5cGVzMi5kZWZhdWx0Lm9iamVjdFxufTtcblNwYXJrbGluZXNOb3JtYWxCYW5kLmRlZmF1bHRQcm9wcyA9IHtcbiAgICBzdHlsZTogeyBmaWxsOiAncmVkJywgZmlsbE9wYWNpdHk6IC4xIH1cbn07XG5leHBvcnRzLmRlZmF1bHQgPSBTcGFya2xpbmVzTm9ybWFsQmFuZDtcblxuLyoqKi8gfSksXG4vKiAyOCAqL1xuLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykge1xuXG5cInVzZSBzdHJpY3RcIjtcblxuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5cbnZhciBfbWluID0gX193ZWJwYWNrX3JlcXVpcmVfXyg3KTtcblxudmFyIF9taW4yID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbWluKTtcblxudmFyIF9tYXggPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDkpO1xuXG52YXIgX21heDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9tYXgpO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBkZWZhdWx0OiBvYmogfTsgfVxuXG5leHBvcnRzLmRlZmF1bHQgPSBmdW5jdGlvbiAoX3JlZikge1xuICAgIHZhciBkYXRhID0gX3JlZi5kYXRhLFxuICAgICAgICBsaW1pdCA9IF9yZWYubGltaXQsXG4gICAgICAgIF9yZWYkd2lkdGggPSBfcmVmLndpZHRoLFxuICAgICAgICB3aWR0aCA9IF9yZWYkd2lkdGggPT09IHVuZGVmaW5lZCA/IDEgOiBfcmVmJHdpZHRoLFxuICAgICAgICBfcmVmJGhlaWdodCA9IF9yZWYuaGVpZ2h0LFxuICAgICAgICBoZWlnaHQgPSBfcmVmJGhlaWdodCA9PT0gdW5kZWZpbmVkID8gMSA6IF9yZWYkaGVpZ2h0LFxuICAgICAgICBfcmVmJG1hcmdpbiA9IF9yZWYubWFyZ2luLFxuICAgICAgICBtYXJnaW4gPSBfcmVmJG1hcmdpbiA9PT0gdW5kZWZpbmVkID8gMCA6IF9yZWYkbWFyZ2luLFxuICAgICAgICBfcmVmJG1heCA9IF9yZWYubWF4LFxuICAgICAgICBtYXggPSBfcmVmJG1heCA9PT0gdW5kZWZpbmVkID8gKDAsIF9tYXgyLmRlZmF1bHQpKGRhdGEpIDogX3JlZiRtYXgsXG4gICAgICAgIF9yZWYkbWluID0gX3JlZi5taW4sXG4gICAgICAgIG1pbiA9IF9yZWYkbWluID09PSB1bmRlZmluZWQgPyAoMCwgX21pbjIuZGVmYXVsdCkoZGF0YSkgOiBfcmVmJG1pbjtcblxuXG4gICAgdmFyIGxlbiA9IGRhdGEubGVuZ3RoO1xuXG4gICAgaWYgKGxpbWl0ICYmIGxpbWl0IDwgbGVuKSB7XG4gICAgICAgIGRhdGEgPSBkYXRhLnNsaWNlKGxlbiAtIGxpbWl0KTtcbiAgICB9XG5cbiAgICB2YXIgdmZhY3RvciA9IChoZWlnaHQgLSBtYXJnaW4gKiAyKSAvIChtYXggLSBtaW4gfHwgMik7XG4gICAgdmFyIGhmYWN0b3IgPSAod2lkdGggLSBtYXJnaW4gKiAyKSAvICgobGltaXQgfHwgbGVuKSAtIChsZW4gPiAxID8gMSA6IDApKTtcblxuICAgIHJldHVybiBkYXRhLm1hcChmdW5jdGlvbiAoZCwgaSkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgeDogaSAqIGhmYWN0b3IgKyBtYXJnaW4sXG4gICAgICAgICAgICB5OiAobWF4ID09PSBtaW4gPyAxIDogbWF4IC0gZCkgKiB2ZmFjdG9yICsgbWFyZ2luXG4gICAgICAgIH07XG4gICAgfSk7XG59O1xuXG4vKioqLyB9KVxuLyoqKioqKi8gXSk7XG59KTsiLCJtb2R1bGUuZXhwb3J0cz13aW5kb3cuUmVhY3RcbiJdfQ== +/******/ }); +//# sourceMappingURL=sparklineswidget.js.map \ No newline at end of file diff --git a/examples/sparklineswidget/inst/htmlwidgets/sparklineswidget.js.map b/examples/sparklineswidget/inst/htmlwidgets/sparklineswidget.js.map new file mode 100644 index 0000000..7f2011f --- /dev/null +++ b/examples/sparklineswidget/inst/htmlwidgets/sparklineswidget.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/react-sparklines/build/index.js","webpack:///(webpack)/buildin/module.js","webpack:///./srcjs/sparklineswidget.js","webpack:///external \"window.React\"","webpack:///external \"window.reactR\""],"names":["webpackUniversalModuleDefinition","root","factory","exports","module","require","define","__WEBPACK_EXTERNAL_MODULE_1__","modules","installedModules","__webpack_require__","moduleId","i","l","call","m","c","d","name","getter","o","Object","defineProperty","configurable","enumerable","get","n","__esModule","getDefault","getModuleExports","object","property","prototype","hasOwnProperty","p","s","process","env","NODE_ENV","REACT_ELEMENT_TYPE","Symbol","for","isValidElement","$$typeof","throwOnDirectAccess","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","Error","defaultClearTimeout","setTimeout","e","clearTimeout","runTimeout","fun","runClearTimeout","marker","queue","draining","currentQueue","queueIndex","cleanUpNextTick","length","concat","drainQueue","timeout","len","run","nextTick","args","Array","arguments","push","Item","array","apply","title","browser","argv","version","versions","noop","on","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","binding","cwd","chdir","dir","umask","value","default","data","reduce","a","b","makeEmptyFunction","arg","emptyFunction","thatReturns","thatReturnsFalse","thatReturnsTrue","thatReturnsNull","thatReturnsThis","thatReturnsArgument","validateFormat","format","undefined","invariant","condition","f","error","argIndex","replace","framesToPop","ReactPropTypesSecret","Math","min","warning","printWarning","_len","_key","message","console","x","indexOf","_len2","_key2","max","_mean","_mean2","_interopRequireDefault","obj","dataMean","sqDiff","map","pow","avgSqDiff","sqrt","SparklinesText","SparklinesNormalBand","SparklinesReferenceLine","SparklinesSpots","SparklinesBars","SparklinesCurve","SparklinesLine","Sparklines","_createClass","defineProperties","target","props","descriptor","writable","key","Constructor","protoProps","staticProps","_propTypes","_propTypes2","_react","_react2","_SparklinesText","_SparklinesText2","_SparklinesLine","_SparklinesLine2","_SparklinesCurve","_SparklinesCurve2","_SparklinesBars","_SparklinesBars2","_SparklinesSpots","_SparklinesSpots2","_SparklinesReferenceLine","_SparklinesReferenceLine2","_SparklinesNormalBand","_SparklinesNormalBand2","_dataToPoints","_dataToPoints2","_classCallCheck","instance","TypeError","_possibleConstructorReturn","self","ReferenceError","_inherits","subClass","superClass","create","constructor","setPrototypeOf","__proto__","_PureComponent","getPrototypeOf","render","_props","limit","width","height","svgWidth","svgHeight","preserveAspectRatio","margin","style","points","svgOpts","viewBox","createElement","Children","children","child","cloneElement","PureComponent","propTypes","number","string","onMouseMove","func","defaultProps","checkPropTypes","ITERATOR_SYMBOL","iterator","FAUX_ITERATOR_SYMBOL","getIteratorFn","maybeIterable","iteratorFn","ANONYMOUS","ReactPropTypes","createPrimitiveTypeChecker","bool","symbol","any","createAnyTypeChecker","arrayOf","createArrayOfTypeChecker","element","createElementTypeChecker","instanceOf","createInstanceTypeChecker","node","createNodeChecker","objectOf","createObjectOfTypeChecker","oneOf","createEnumTypeChecker","oneOfType","createUnionTypeChecker","shape","createShapeTypeChecker","is","y","PropTypeError","stack","createChainableTypeChecker","validate","manualPropTypeCallCache","manualPropTypeWarningCount","checkType","isRequired","propName","componentName","location","propFullName","secret","cacheKey","chainedCheckType","bind","expectedType","propValue","propType","getPropType","preciseType","getPreciseType","typeChecker","isArray","expectedClass","expectedClassName","actualClassName","getClassName","expectedValues","valuesString","JSON","stringify","arrayOfTypeCheckers","checker","getPostfixForTypeWarning","isNode","shapeTypes","every","step","entries","next","done","entry","isSymbol","RegExp","Date","type","PropTypes","loggedTypeFailures","typeSpecs","values","getStack","typeSpecName","ex","shim","getShim","_React$Component","point","text","fontSize","fontFamily","Component","color","linePoints","closePolyPoints","fillPoints","lineStyle","stroke","strokeWidth","strokeLinejoin","strokeLinecap","fill","fillStyle","fillOpacity","pointerEvents","tooltips","cx","cy","r","onMouseEnter","onClick","join","_props$divisor","divisor","prev","curve","res","_this2","barWidth","marginWidth","transform","lastDirection","sign","size","spotColors","startSpot","endSpot","_dataProcessing","dataProcessing","_interopRequireWildcard","newObj","ypoints","x1","y1","x2","y2","strokeOpacity","strokeDasharray","variance","stdev","median","midRange","avg","mean","_min2","_min3","_mean3","_midRange2","_midRange3","_median2","_median3","_stdev2","_stdev3","_variance2","_variance3","_min","_max","_max2","sort","floor","sq","_stdev","dataStdev","_ref","_ref$width","_ref$height","_ref$margin","_ref$max","_ref$min","slice","vfactor","hfactor","webpackPolyfill","deprecate","paths","reactWidget","SparklinesComponents"],"mappings":"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","file":"sparklineswidget.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"./srcjs/sparklineswidget.js\");\n","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReactSparklines\"] = factory(require(\"react\"));\n\telse\n\t\troot[\"ReactSparklines\"] = factory(root[\"React\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_1__) {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"/\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 11);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-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\nif (process.env.NODE_ENV !== 'production') {\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__(14)(isValidElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = __webpack_require__(16)();\n}\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(2)))\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_1__;\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports) {\n\n// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nexports.default = function (data) {\n return data.reduce(function (a, b) {\n return a + b;\n }) / data.length;\n};\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/**\n * Copyright (c) 2013-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 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/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright (c) 2013-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\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 (process.env.NODE_ENV !== 'production') {\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/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(2)))\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-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\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nexports.default = function (data) {\n return Math.min.apply(Math, data);\n};\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2014-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\nvar emptyFunction = __webpack_require__(4);\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 (process.env.NODE_ENV !== 'production') {\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/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(2)))\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nexports.default = function (data) {\n return Math.max.apply(Math, data);\n};\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _mean = __webpack_require__(3);\n\nvar _mean2 = _interopRequireDefault(_mean);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (data) {\n var dataMean = (0, _mean2.default)(data);\n var sqDiff = data.map(function (n) {\n return Math.pow(n - dataMean, 2);\n });\n var avgSqDiff = (0, _mean2.default)(sqDiff);\n return Math.sqrt(avgSqDiff);\n};\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(12);\n\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = __webpack_require__(13);\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.SparklinesText = exports.SparklinesNormalBand = exports.SparklinesReferenceLine = exports.SparklinesSpots = exports.SparklinesBars = exports.SparklinesCurve = exports.SparklinesLine = exports.Sparklines = undefined;\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 _propTypes = __webpack_require__(0);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _react = __webpack_require__(1);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _SparklinesText = __webpack_require__(17);\n\nvar _SparklinesText2 = _interopRequireDefault(_SparklinesText);\n\nvar _SparklinesLine = __webpack_require__(18);\n\nvar _SparklinesLine2 = _interopRequireDefault(_SparklinesLine);\n\nvar _SparklinesCurve = __webpack_require__(19);\n\nvar _SparklinesCurve2 = _interopRequireDefault(_SparklinesCurve);\n\nvar _SparklinesBars = __webpack_require__(20);\n\nvar _SparklinesBars2 = _interopRequireDefault(_SparklinesBars);\n\nvar _SparklinesSpots = __webpack_require__(21);\n\nvar _SparklinesSpots2 = _interopRequireDefault(_SparklinesSpots);\n\nvar _SparklinesReferenceLine = __webpack_require__(22);\n\nvar _SparklinesReferenceLine2 = _interopRequireDefault(_SparklinesReferenceLine);\n\nvar _SparklinesNormalBand = __webpack_require__(27);\n\nvar _SparklinesNormalBand2 = _interopRequireDefault(_SparklinesNormalBand);\n\nvar _dataToPoints = __webpack_require__(28);\n\nvar _dataToPoints2 = _interopRequireDefault(_dataToPoints);\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\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Sparklines = function (_PureComponent) {\n _inherits(Sparklines, _PureComponent);\n\n function Sparklines(props) {\n _classCallCheck(this, Sparklines);\n\n return _possibleConstructorReturn(this, (Sparklines.__proto__ || Object.getPrototypeOf(Sparklines)).call(this, props));\n }\n\n _createClass(Sparklines, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n data = _props.data,\n limit = _props.limit,\n width = _props.width,\n height = _props.height,\n svgWidth = _props.svgWidth,\n svgHeight = _props.svgHeight,\n preserveAspectRatio = _props.preserveAspectRatio,\n margin = _props.margin,\n style = _props.style,\n max = _props.max,\n min = _props.min;\n\n\n if (data.length === 0) return null;\n\n var points = (0, _dataToPoints2.default)({ data: data, limit: limit, width: width, height: height, margin: margin, max: max, min: min });\n\n var svgOpts = { style: style, viewBox: '0 0 ' + width + ' ' + height, preserveAspectRatio: preserveAspectRatio };\n if (svgWidth > 0) svgOpts.width = svgWidth;\n if (svgHeight > 0) svgOpts.height = svgHeight;\n\n return _react2.default.createElement(\n 'svg',\n svgOpts,\n _react2.default.Children.map(this.props.children, function (child) {\n return _react2.default.cloneElement(child, { data: data, points: points, width: width, height: height, margin: margin });\n })\n );\n }\n }]);\n\n return Sparklines;\n}(_react.PureComponent);\n\nSparklines.propTypes = {\n data: _propTypes2.default.array,\n limit: _propTypes2.default.number,\n width: _propTypes2.default.number,\n height: _propTypes2.default.number,\n svgWidth: _propTypes2.default.number,\n svgHeight: _propTypes2.default.number,\n preserveAspectRatio: _propTypes2.default.string,\n margin: _propTypes2.default.number,\n style: _propTypes2.default.object,\n min: _propTypes2.default.number,\n max: _propTypes2.default.number,\n onMouseMove: _propTypes2.default.func\n};\nSparklines.defaultProps = {\n data: [],\n width: 240,\n height: 60,\n //Scale the graphic content of the given element non-uniformly if necessary such that the element's bounding box exactly matches the viewport rectangle.\n preserveAspectRatio: 'none', //https://www.w3.org/TR/SVG/coords.html#PreserveAspectRatioAttribute\n margin: 2\n};\nexports.Sparklines = Sparklines;\nexports.SparklinesLine = _SparklinesLine2.default;\nexports.SparklinesCurve = _SparklinesCurve2.default;\nexports.SparklinesBars = _SparklinesBars2.default;\nexports.SparklinesSpots = _SparklinesSpots2.default;\nexports.SparklinesReferenceLine = _SparklinesReferenceLine2.default;\nexports.SparklinesNormalBand = _SparklinesNormalBand2.default;\nexports.SparklinesText = _SparklinesText2.default;\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-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\nvar emptyFunction = __webpack_require__(4);\nvar invariant = __webpack_require__(5);\nvar warning = __webpack_require__(8);\n\nvar ReactPropTypesSecret = __webpack_require__(6);\nvar checkPropTypes = __webpack_require__(15);\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 };\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 (process.env.NODE_ENV !== 'production') {\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 (process.env.NODE_ENV !== 'production' && 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 process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOf, expected an instance of array.') : void 0;\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 process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\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 supplid 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 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/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(2)))\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-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\nif (process.env.NODE_ENV !== 'production') {\n var invariant = __webpack_require__(5);\n var warning = __webpack_require__(8);\n var ReactPropTypesSecret = __webpack_require__(6);\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 (process.env.NODE_ENV !== 'production') {\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 ' + 'React.PropTypes.', componentName || 'React class', location, 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/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(2)))\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-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\nvar emptyFunction = __webpack_require__(4);\nvar invariant = __webpack_require__(5);\nvar ReactPropTypesSecret = __webpack_require__(6);\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\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 };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim\n };\n\n ReactPropTypes.checkPropTypes = emptyFunction;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n\n\n/***/ }),\n/* 17 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\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 _propTypes = __webpack_require__(0);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _react = __webpack_require__(1);\n\nvar _react2 = _interopRequireDefault(_react);\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\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar SparklinesText = function (_React$Component) {\n _inherits(SparklinesText, _React$Component);\n\n function SparklinesText() {\n _classCallCheck(this, SparklinesText);\n\n return _possibleConstructorReturn(this, (SparklinesText.__proto__ || Object.getPrototypeOf(SparklinesText)).apply(this, arguments));\n }\n\n _createClass(SparklinesText, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n point = _props.point,\n text = _props.text,\n fontSize = _props.fontSize,\n fontFamily = _props.fontFamily;\n var x = point.x,\n y = point.y;\n\n return _react2.default.createElement(\n 'g',\n null,\n _react2.default.createElement(\n 'text',\n { x: x, y: y, fontFamily: fontFamily || \"Verdana\", fontSize: fontSize || 10 },\n text\n )\n );\n }\n }]);\n\n return SparklinesText;\n}(_react2.default.Component);\n\nSparklinesText.propTypes = {\n text: _propTypes2.default.string,\n point: _propTypes2.default.object,\n fontSize: _propTypes2.default.number,\n fontFamily: _propTypes2.default.string\n};\nSparklinesText.defaultProps = {\n text: '',\n point: { x: 0, y: 0 }\n};\nexports.default = SparklinesText;\n\n/***/ }),\n/* 18 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\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 _propTypes = __webpack_require__(0);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _react = __webpack_require__(1);\n\nvar _react2 = _interopRequireDefault(_react);\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\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar SparklinesLine = function (_React$Component) {\n _inherits(SparklinesLine, _React$Component);\n\n function SparklinesLine() {\n _classCallCheck(this, SparklinesLine);\n\n return _possibleConstructorReturn(this, (SparklinesLine.__proto__ || Object.getPrototypeOf(SparklinesLine)).apply(this, arguments));\n }\n\n _createClass(SparklinesLine, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n data = _props.data,\n points = _props.points,\n width = _props.width,\n height = _props.height,\n margin = _props.margin,\n color = _props.color,\n style = _props.style,\n onMouseMove = _props.onMouseMove;\n\n\n var linePoints = points.map(function (p) {\n return [p.x, p.y];\n }).reduce(function (a, b) {\n return a.concat(b);\n });\n\n var closePolyPoints = [points[points.length - 1].x, height - margin, margin, height - margin, margin, points[0].y];\n\n var fillPoints = linePoints.concat(closePolyPoints);\n\n var lineStyle = {\n stroke: color || style.stroke || 'slategray',\n strokeWidth: style.strokeWidth || '1',\n strokeLinejoin: style.strokeLinejoin || 'round',\n strokeLinecap: style.strokeLinecap || 'round',\n fill: 'none'\n };\n var fillStyle = {\n stroke: style.stroke || 'none',\n strokeWidth: '0',\n fillOpacity: style.fillOpacity || '.1',\n fill: style.fill || color || 'slategray',\n pointerEvents: 'auto'\n };\n\n var tooltips = points.map(function (p, i) {\n return _react2.default.createElement('circle', {\n key: i,\n cx: p.x,\n cy: p.y,\n r: 2,\n style: fillStyle,\n onMouseEnter: function onMouseEnter(e) {\n return onMouseMove('enter', data[i], p);\n },\n onClick: function onClick(e) {\n return onMouseMove('click', data[i], p);\n }\n });\n });\n\n return _react2.default.createElement(\n 'g',\n null,\n tooltips,\n _react2.default.createElement('polyline', { points: fillPoints.join(' '), style: fillStyle }),\n _react2.default.createElement('polyline', { points: linePoints.join(' '), style: lineStyle })\n );\n }\n }]);\n\n return SparklinesLine;\n}(_react2.default.Component);\n\nSparklinesLine.propTypes = {\n color: _propTypes2.default.string,\n style: _propTypes2.default.object\n};\nSparklinesLine.defaultProps = {\n style: {},\n onMouseMove: function onMouseMove() {}\n};\nexports.default = SparklinesLine;\n\n/***/ }),\n/* 19 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\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 _propTypes = __webpack_require__(0);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _react = __webpack_require__(1);\n\nvar _react2 = _interopRequireDefault(_react);\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\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar SparklinesCurve = function (_React$Component) {\n _inherits(SparklinesCurve, _React$Component);\n\n function SparklinesCurve() {\n _classCallCheck(this, SparklinesCurve);\n\n return _possibleConstructorReturn(this, (SparklinesCurve.__proto__ || Object.getPrototypeOf(SparklinesCurve)).apply(this, arguments));\n }\n\n _createClass(SparklinesCurve, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n points = _props.points,\n width = _props.width,\n height = _props.height,\n margin = _props.margin,\n color = _props.color,\n style = _props.style,\n _props$divisor = _props.divisor,\n divisor = _props$divisor === undefined ? 0.25 : _props$divisor;\n\n var prev = void 0;\n var curve = function curve(p) {\n var res = void 0;\n if (!prev) {\n res = [p.x, p.y];\n } else {\n var len = (p.x - prev.x) * divisor;\n res = [\"C\",\n //x1\n prev.x + len,\n //y1\n prev.y,\n //x2,\n p.x - len,\n //y2,\n p.y,\n //x,\n p.x,\n //y\n p.y];\n }\n prev = p;\n return res;\n };\n var linePoints = points.map(function (p) {\n return curve(p);\n }).reduce(function (a, b) {\n return a.concat(b);\n });\n var closePolyPoints = [\"L\" + points[points.length - 1].x, height - margin, margin, height - margin, margin, points[0].y];\n var fillPoints = linePoints.concat(closePolyPoints);\n\n var lineStyle = {\n stroke: color || style.stroke || 'slategray',\n strokeWidth: style.strokeWidth || '1',\n strokeLinejoin: style.strokeLinejoin || 'round',\n strokeLinecap: style.strokeLinecap || 'round',\n fill: 'none'\n };\n var fillStyle = {\n stroke: style.stroke || 'none',\n strokeWidth: '0',\n fillOpacity: style.fillOpacity || '.1',\n fill: style.fill || color || 'slategray'\n };\n\n return _react2.default.createElement(\n 'g',\n null,\n _react2.default.createElement('path', { d: \"M\" + fillPoints.join(' '), style: fillStyle }),\n _react2.default.createElement('path', { d: \"M\" + linePoints.join(' '), style: lineStyle })\n );\n }\n }]);\n\n return SparklinesCurve;\n}(_react2.default.Component);\n\nSparklinesCurve.propTypes = {\n color: _propTypes2.default.string,\n style: _propTypes2.default.object\n};\nSparklinesCurve.defaultProps = {\n style: {}\n};\nexports.default = SparklinesCurve;\n\n/***/ }),\n/* 20 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\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 _propTypes = __webpack_require__(0);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _react = __webpack_require__(1);\n\nvar _react2 = _interopRequireDefault(_react);\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\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar SparklinesBars = function (_React$Component) {\n _inherits(SparklinesBars, _React$Component);\n\n function SparklinesBars() {\n _classCallCheck(this, SparklinesBars);\n\n return _possibleConstructorReturn(this, (SparklinesBars.__proto__ || Object.getPrototypeOf(SparklinesBars)).apply(this, arguments));\n }\n\n _createClass(SparklinesBars, [{\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var _props = this.props,\n points = _props.points,\n height = _props.height,\n style = _props.style,\n barWidth = _props.barWidth,\n margin = _props.margin,\n onMouseMove = _props.onMouseMove;\n\n var strokeWidth = 1 * (style && style.strokeWidth || 0);\n var marginWidth = margin ? 2 * margin : 0;\n var width = barWidth || (points && points.length >= 2 ? Math.max(0, points[1].x - points[0].x - strokeWidth - marginWidth) : 0);\n\n return _react2.default.createElement(\n 'g',\n { transform: 'scale(1,-1)' },\n points.map(function (p, i) {\n return _react2.default.createElement('rect', {\n key: i,\n x: p.x - (width + strokeWidth) / 2,\n y: -height,\n width: width,\n height: Math.max(0, height - p.y),\n style: style,\n onMouseMove: onMouseMove && onMouseMove.bind(_this2, p)\n });\n })\n );\n }\n }]);\n\n return SparklinesBars;\n}(_react2.default.Component);\n\nSparklinesBars.propTypes = {\n points: _propTypes2.default.arrayOf(_propTypes2.default.object),\n height: _propTypes2.default.number,\n style: _propTypes2.default.object,\n barWidth: _propTypes2.default.number,\n margin: _propTypes2.default.number,\n onMouseMove: _propTypes2.default.func\n};\nSparklinesBars.defaultProps = {\n style: { fill: 'slategray' }\n};\nexports.default = SparklinesBars;\n\n/***/ }),\n/* 21 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\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 _propTypes = __webpack_require__(0);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _react = __webpack_require__(1);\n\nvar _react2 = _interopRequireDefault(_react);\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\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar SparklinesSpots = function (_React$Component) {\n _inherits(SparklinesSpots, _React$Component);\n\n function SparklinesSpots() {\n _classCallCheck(this, SparklinesSpots);\n\n return _possibleConstructorReturn(this, (SparklinesSpots.__proto__ || Object.getPrototypeOf(SparklinesSpots)).apply(this, arguments));\n }\n\n _createClass(SparklinesSpots, [{\n key: 'lastDirection',\n value: function lastDirection(points) {\n\n Math.sign = Math.sign || function (x) {\n return x > 0 ? 1 : -1;\n };\n\n return points.length < 2 ? 0 : Math.sign(points[points.length - 2].y - points[points.length - 1].y);\n }\n }, {\n key: 'render',\n value: function render() {\n var _props = this.props,\n points = _props.points,\n width = _props.width,\n height = _props.height,\n size = _props.size,\n style = _props.style,\n spotColors = _props.spotColors;\n\n\n var startSpot = _react2.default.createElement('circle', {\n cx: points[0].x,\n cy: points[0].y,\n r: size,\n style: style });\n\n var endSpot = _react2.default.createElement('circle', {\n cx: points[points.length - 1].x,\n cy: points[points.length - 1].y,\n r: size,\n style: style || { fill: spotColors[this.lastDirection(points)] } });\n\n return _react2.default.createElement(\n 'g',\n null,\n style && startSpot,\n endSpot\n );\n }\n }]);\n\n return SparklinesSpots;\n}(_react2.default.Component);\n\nSparklinesSpots.propTypes = {\n size: _propTypes2.default.number,\n style: _propTypes2.default.object,\n spotColors: _propTypes2.default.object\n};\nSparklinesSpots.defaultProps = {\n size: 2,\n spotColors: {\n '-1': 'red',\n '0': 'black',\n '1': 'green'\n }\n};\nexports.default = SparklinesSpots;\n\n/***/ }),\n/* 22 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\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 _propTypes = __webpack_require__(0);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _react = __webpack_require__(1);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _dataProcessing = __webpack_require__(23);\n\nvar dataProcessing = _interopRequireWildcard(_dataProcessing);\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\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\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar SparklinesReferenceLine = function (_React$Component) {\n _inherits(SparklinesReferenceLine, _React$Component);\n\n function SparklinesReferenceLine() {\n _classCallCheck(this, SparklinesReferenceLine);\n\n return _possibleConstructorReturn(this, (SparklinesReferenceLine.__proto__ || Object.getPrototypeOf(SparklinesReferenceLine)).apply(this, arguments));\n }\n\n _createClass(SparklinesReferenceLine, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n points = _props.points,\n margin = _props.margin,\n type = _props.type,\n style = _props.style,\n value = _props.value;\n\n\n var ypoints = points.map(function (p) {\n return p.y;\n });\n var y = type == 'custom' ? value : dataProcessing[type](ypoints);\n\n return _react2.default.createElement('line', {\n x1: points[0].x, y1: y + margin,\n x2: points[points.length - 1].x, y2: y + margin,\n style: style });\n }\n }]);\n\n return SparklinesReferenceLine;\n}(_react2.default.Component);\n\nSparklinesReferenceLine.propTypes = {\n type: _propTypes2.default.oneOf(['max', 'min', 'mean', 'avg', 'median', 'custom']),\n value: _propTypes2.default.number,\n style: _propTypes2.default.object\n};\nSparklinesReferenceLine.defaultProps = {\n type: 'mean',\n style: { stroke: 'red', strokeOpacity: .75, strokeDasharray: '2, 2' }\n};\nexports.default = SparklinesReferenceLine;\n\n/***/ }),\n/* 23 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.variance = exports.stdev = exports.median = exports.midRange = exports.avg = exports.mean = exports.max = exports.min = undefined;\n\nvar _min2 = __webpack_require__(7);\n\nvar _min3 = _interopRequireDefault(_min2);\n\nvar _mean2 = __webpack_require__(3);\n\nvar _mean3 = _interopRequireDefault(_mean2);\n\nvar _midRange2 = __webpack_require__(24);\n\nvar _midRange3 = _interopRequireDefault(_midRange2);\n\nvar _median2 = __webpack_require__(25);\n\nvar _median3 = _interopRequireDefault(_median2);\n\nvar _stdev2 = __webpack_require__(10);\n\nvar _stdev3 = _interopRequireDefault(_stdev2);\n\nvar _variance2 = __webpack_require__(26);\n\nvar _variance3 = _interopRequireDefault(_variance2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.min = _min3.default;\nexports.max = _min3.default;\nexports.mean = _mean3.default;\nexports.avg = _mean3.default;\nexports.midRange = _midRange3.default;\nexports.median = _median3.default;\nexports.stdev = _stdev3.default;\nexports.variance = _variance3.default;\n\n/***/ }),\n/* 24 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _min = __webpack_require__(7);\n\nvar _min2 = _interopRequireDefault(_min);\n\nvar _max = __webpack_require__(9);\n\nvar _max2 = _interopRequireDefault(_max);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (data) {\n return (0, _max2.default)(data) - (0, _min2.default)(data) / 2;\n};\n\n/***/ }),\n/* 25 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nexports.default = function (data) {\n return data.sort(function (a, b) {\n return a - b;\n })[Math.floor(data.length / 2)];\n};\n\n/***/ }),\n/* 26 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _mean = __webpack_require__(3);\n\nvar _mean2 = _interopRequireDefault(_mean);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (data) {\n var dataMean = (0, _mean2.default)(data);\n var sq = data.map(function (n) {\n return Math.pow(n - dataMean, 2);\n });\n return (0, _mean2.default)(sq);\n};\n\n/***/ }),\n/* 27 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\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 _propTypes = __webpack_require__(0);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _react = __webpack_require__(1);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _mean = __webpack_require__(3);\n\nvar _mean2 = _interopRequireDefault(_mean);\n\nvar _stdev = __webpack_require__(10);\n\nvar _stdev2 = _interopRequireDefault(_stdev);\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\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar SparklinesNormalBand = function (_React$Component) {\n _inherits(SparklinesNormalBand, _React$Component);\n\n function SparklinesNormalBand() {\n _classCallCheck(this, SparklinesNormalBand);\n\n return _possibleConstructorReturn(this, (SparklinesNormalBand.__proto__ || Object.getPrototypeOf(SparklinesNormalBand)).apply(this, arguments));\n }\n\n _createClass(SparklinesNormalBand, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n points = _props.points,\n margin = _props.margin,\n style = _props.style;\n\n\n var ypoints = points.map(function (p) {\n return p.y;\n });\n var dataMean = (0, _mean2.default)(ypoints);\n var dataStdev = (0, _stdev2.default)(ypoints);\n\n return _react2.default.createElement('rect', { x: points[0].x, y: dataMean - dataStdev + margin,\n width: points[points.length - 1].x - points[0].x, height: _stdev2.default * 2,\n style: style });\n }\n }]);\n\n return SparklinesNormalBand;\n}(_react2.default.Component);\n\nSparklinesNormalBand.propTypes = {\n style: _propTypes2.default.object\n};\nSparklinesNormalBand.defaultProps = {\n style: { fill: 'red', fillOpacity: .1 }\n};\nexports.default = SparklinesNormalBand;\n\n/***/ }),\n/* 28 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _min = __webpack_require__(7);\n\nvar _min2 = _interopRequireDefault(_min);\n\nvar _max = __webpack_require__(9);\n\nvar _max2 = _interopRequireDefault(_max);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (_ref) {\n var data = _ref.data,\n limit = _ref.limit,\n _ref$width = _ref.width,\n width = _ref$width === undefined ? 1 : _ref$width,\n _ref$height = _ref.height,\n height = _ref$height === undefined ? 1 : _ref$height,\n _ref$margin = _ref.margin,\n margin = _ref$margin === undefined ? 0 : _ref$margin,\n _ref$max = _ref.max,\n max = _ref$max === undefined ? (0, _max2.default)(data) : _ref$max,\n _ref$min = _ref.min,\n min = _ref$min === undefined ? (0, _min2.default)(data) : _ref$min;\n\n\n var len = data.length;\n\n if (limit && limit < len) {\n data = data.slice(len - limit);\n }\n\n var vfactor = (height - margin * 2) / (max - min || 2);\n var hfactor = (width - margin * 2) / ((limit || len) - (len > 1 ? 1 : 0));\n\n return data.map(function (d, i) {\n return {\n x: i * hfactor + margin,\n y: (max === min ? 1 : max - d) * vfactor + margin\n };\n });\n};\n\n/***/ })\n/******/ ]);\n});","module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n","import * as SparklinesComponents from 'react-sparklines';\r\nimport { reactWidget } from 'reactR';\r\n\r\nreactWidget('sparklineswidget', 'output', SparklinesComponents);","module.exports = window.React;","module.exports = window.reactR;"],"sourceRoot":""} \ No newline at end of file diff --git a/examples/sparklineswidget/man/sparklineswidget-shiny.Rd b/examples/sparklineswidget/man/sparklineswidget-shiny.Rd new file mode 100644 index 0000000..e48a073 --- /dev/null +++ b/examples/sparklineswidget/man/sparklineswidget-shiny.Rd @@ -0,0 +1,30 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/sparklineswidget.R +\name{sparklineswidget-shiny} +\alias{sparklineswidget-shiny} +\alias{sparklineswidgetOutput} +\alias{renderSparklineswidget} +\title{Shiny bindings for sparklineswidget} +\usage{ +sparklineswidgetOutput(outputId, width = "100\%", height = "400px") + +renderSparklineswidget(expr, env = parent.frame(), quoted = FALSE) +} +\arguments{ +\item{outputId}{output variable to read from} + +\item{width, height}{Must be a valid CSS unit (like \code{'100\%'}, +\code{'400px'}, \code{'auto'}) or a number, which will be coerced to a +string and have \code{'px'} appended.} + +\item{expr}{An expression that generates a sparklineswidget} + +\item{env}{The environment in which to evaluate \code{expr}.} + +\item{quoted}{Is \code{expr} a quoted expression (with \code{quote()})? This +is useful if you want to save an expression in a variable.} +} +\description{ +Output and render functions for using sparklineswidget within Shiny +applications and interactive Rmd documents. +} diff --git a/examples/sparklineswidget/man/sparklineswidget.Rd b/examples/sparklineswidget/man/sparklineswidget.Rd new file mode 100644 index 0000000..158253e --- /dev/null +++ b/examples/sparklineswidget/man/sparklineswidget.Rd @@ -0,0 +1,11 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/sparklineswidget.R +\name{sparklineswidget} +\alias{sparklineswidget} +\title{} +\usage{ +sparklineswidget(data, ...) +} +\description{ + +} diff --git a/examples/sparklineswidget/package.json b/examples/sparklineswidget/package.json index 7cf080c..8d6d2b4 100644 --- a/examples/sparklineswidget/package.json +++ b/examples/sparklineswidget/package.json @@ -6,10 +6,11 @@ "react-sparklines": "^1.7.0" }, "devDependencies": { - "babel-cli": "^6.26.0", - "babel-preset-env": "^1.7.0", - "babel-preset-minify": "^0.3.0", - "babel-preset-react": "^6.24.1", - "browserify": "^16.2.3" + "webpack": "^4.27.1", + "webpack-cli": "^3.1.2", + "@babel/core": "^7.2.0", + "babel-loader": "^8.0.4", + "@babel/preset-env": "^7.2.0", + "@babel/preset-react": "^7.0.0" } } \ No newline at end of file diff --git a/examples/sparklineswidget/sparklineswidget.Rproj b/examples/sparklineswidget/sparklineswidget.Rproj index d848a9f..cba1b6b 100644 --- a/examples/sparklineswidget/sparklineswidget.Rproj +++ b/examples/sparklineswidget/sparklineswidget.Rproj @@ -5,8 +5,13 @@ SaveWorkspace: No AlwaysSaveHistory: Default EnableCodeIndexing: Yes +UseSpacesForTab: Yes +NumSpacesForTab: 2 Encoding: UTF-8 +RnwWeave: Sweave +LaTeX: pdfLaTeX + AutoAppendNewline: Yes StripTrailingWhitespace: Yes diff --git a/examples/sparklineswidget/srcjs/sparklineswidget.js b/examples/sparklineswidget/srcjs/sparklineswidget.js index 2e0b710..acaa2f2 100644 --- a/examples/sparklineswidget/srcjs/sparklineswidget.js +++ b/examples/sparklineswidget/srcjs/sparklineswidget.js @@ -1,3 +1,4 @@ import * as SparklinesComponents from 'react-sparklines'; +import { reactWidget } from 'reactR'; -reactR.exposeComponents('reactsparklines', 'output', SparklinesComponents); +reactWidget('sparklineswidget', 'output', SparklinesComponents); \ No newline at end of file diff --git a/examples/sparklineswidget/webpack.config.js b/examples/sparklineswidget/webpack.config.js new file mode 100644 index 0000000..97866b0 --- /dev/null +++ b/examples/sparklineswidget/webpack.config.js @@ -0,0 +1,31 @@ +var path = require('path'); + +module.exports = { + entry: path.join(__dirname, 'srcjs', 'sparklineswidget.js'), + output: { + path: path.join(__dirname, 'inst', 'htmlwidgets'), + filename: 'sparklineswidget.js' + }, + module: { + rules: [ + { + test: /\.js$/, + loader: 'babel-loader', + options: { + presets: ['@babel/preset-env', '@babel/preset-react'] + } + } + ] + }, + // React, ReactDOM, and reactR are added to the page as html_dependencies by + // the R function sparklineswidget:::sparklineswidget_html + externals: { + 'react': 'window.React', + 'react-dom': 'window.ReactDOM', + 'reactR': 'window.reactR' + }, + stats: { + colors: true + }, + devtool: 'source-map' +}; \ No newline at end of file diff --git a/examples/sparklineswidget/yarn.lock b/examples/sparklineswidget/yarn.lock index df2f501..d9c2a84 100644 --- a/examples/sparklineswidget/yarn.lock +++ b/examples/sparklineswidget/yarn.lock @@ -2,976 +2,933 @@ # yarn lockfile v1 -JSONStream@^1.0.3: - version "1.3.5" - resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0" - integrity sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ== +"@babel/code-frame@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0.tgz#06e2ab19bdb535385559aabb5ba59729482800f8" + integrity sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA== dependencies: - jsonparse "^1.2.0" - through ">=2.2.7 <3" - -abbrev@1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" - integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== - -acorn-dynamic-import@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/acorn-dynamic-import/-/acorn-dynamic-import-4.0.0.tgz#482210140582a36b83c3e342e1cfebcaa9240948" - integrity sha512-d3OEjQV4ROpoflsnUA8HozoIR504TFxNivYEUi6uwz0IYhBkTDXGuWlNdMtybRt3nqVx/L6XqMt0FxkXuWKZhw== + "@babel/highlight" "^7.0.0" -acorn-node@^1.2.0, acorn-node@^1.3.0, acorn-node@^1.5.2: - version "1.6.2" - resolved "https://registry.yarnpkg.com/acorn-node/-/acorn-node-1.6.2.tgz#b7d7ceca6f22e6417af933a62cad4de01048d5d2" - integrity sha512-rIhNEZuNI8ibQcL7ANm/mGyPukIaZsRNX9psFNQURyJW0nu6k8wjSDld20z6v2mDBWqX13pIEnk9gGZJHIlEXg== +"@babel/core@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.2.0.tgz#a4dd3814901998e93340f0086e9867fefa163ada" + integrity sha512-7pvAdC4B+iKjFFp9Ztj0QgBndJ++qaMeonT185wAqUnhipw8idm9Rv1UMyBuKtYjfl6ORNkgEgcsYLfHX/GpLw== + dependencies: + "@babel/code-frame" "^7.0.0" + "@babel/generator" "^7.2.0" + "@babel/helpers" "^7.2.0" + "@babel/parser" "^7.2.0" + "@babel/template" "^7.1.2" + "@babel/traverse" "^7.1.6" + "@babel/types" "^7.2.0" + convert-source-map "^1.1.0" + debug "^4.1.0" + json5 "^2.1.0" + lodash "^4.17.10" + resolve "^1.3.2" + semver "^5.4.1" + source-map "^0.5.0" + +"@babel/generator@^7.1.6", "@babel/generator@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.2.0.tgz#eaf3821fa0301d9d4aef88e63d4bcc19b73ba16c" + integrity sha512-BA75MVfRlFQG2EZgFYIwyT1r6xSkwfP2bdkY/kLZusEYWiJs4xCowab/alaEaT0wSvmVuXGqiefeBlP+7V1yKg== dependencies: - acorn "^6.0.2" - acorn-dynamic-import "^4.0.0" - acorn-walk "^6.1.0" - xtend "^4.0.1" + "@babel/types" "^7.2.0" + jsesc "^2.5.1" + lodash "^4.17.10" + source-map "^0.5.0" + trim-right "^1.0.1" -acorn-walk@^6.1.0: - version "6.1.1" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-6.1.1.tgz#d363b66f5fac5f018ff9c3a1e7b6f8e310cc3913" - integrity sha512-OtUw6JUTgxA2QoqqmrmQ7F2NYqiBPi/L2jqHyFtllhOUvXYQXf0Z1CYUinIfyT4bTCGmrA7gX9FvHA81uzCoVw== +"@babel/helper-annotate-as-pure@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.0.0.tgz#323d39dd0b50e10c7c06ca7d7638e6864d8c5c32" + integrity sha512-3UYcJUj9kvSLbLbUIfQTqzcy5VX7GRZ/CCDrnOaZorFFM01aXp1+GJwuFGV4NDDoAS+mOUyHcO6UD/RfqOks3Q== + dependencies: + "@babel/types" "^7.0.0" -acorn@^6.0.2: - version "6.0.4" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.0.4.tgz#77377e7353b72ec5104550aa2d2097a2fd40b754" - integrity sha512-VY4i5EKSKkofY2I+6QLTbTTN/UvEQPCo6eiwzzSaSWfpaDhOmStMCMod6wmuPciNq+XS0faCglFu2lHZpdHUtg== +"@babel/helper-builder-binary-assignment-operator-visitor@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.1.0.tgz#6b69628dfe4087798e0c4ed98e3d4a6b2fbd2f5f" + integrity sha512-qNSR4jrmJ8M1VMM9tibvyRAHXQs2PmaksQF7c1CGJNipfe3D8p+wgNwgso/P2A2r2mdgBWAXljNWR0QRZAMW8w== + dependencies: + "@babel/helper-explode-assignable-expression" "^7.1.0" + "@babel/types" "^7.0.0" -ansi-regex@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" - integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= +"@babel/helper-builder-react-jsx@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.0.0.tgz#fa154cb53eb918cf2a9a7ce928e29eb649c5acdb" + integrity sha512-ebJ2JM6NAKW0fQEqN8hOLxK84RbRz9OkUhGS/Xd5u56ejMfVbayJ4+LykERZCOUM6faa6Fp3SZNX3fcT16MKHw== + dependencies: + "@babel/types" "^7.0.0" + esutils "^2.0.0" -ansi-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" - integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= +"@babel/helper-call-delegate@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/helper-call-delegate/-/helper-call-delegate-7.1.0.tgz#6a957f105f37755e8645343d3038a22e1449cc4a" + integrity sha512-YEtYZrw3GUK6emQHKthltKNZwszBcHK58Ygcis+gVUrF4/FmTVr5CCqQNSfmvg2y+YDEANyYoaLz/SHsnusCwQ== + dependencies: + "@babel/helper-hoist-variables" "^7.0.0" + "@babel/traverse" "^7.1.0" + "@babel/types" "^7.0.0" + +"@babel/helper-define-map@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.1.0.tgz#3b74caec329b3c80c116290887c0dd9ae468c20c" + integrity sha512-yPPcW8dc3gZLN+U1mhYV91QU3n5uTbx7DUdf8NnPbjS0RMwBuHi9Xt2MUgppmNz7CJxTBWsGczTiEp1CSOTPRg== + dependencies: + "@babel/helper-function-name" "^7.1.0" + "@babel/types" "^7.0.0" + lodash "^4.17.10" + +"@babel/helper-explode-assignable-expression@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.1.0.tgz#537fa13f6f1674df745b0c00ec8fe4e99681c8f6" + integrity sha512-NRQpfHrJ1msCHtKjbzs9YcMmJZOg6mQMmGRB+hbamEdG5PNpaSm95275VD92DvJKuyl0s2sFiDmMZ+EnnvufqA== + dependencies: + "@babel/traverse" "^7.1.0" + "@babel/types" "^7.0.0" + +"@babel/helper-function-name@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz#a0ceb01685f73355d4360c1247f582bfafc8ff53" + integrity sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw== + dependencies: + "@babel/helper-get-function-arity" "^7.0.0" + "@babel/template" "^7.1.0" + "@babel/types" "^7.0.0" -ansi-styles@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" - integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4= +"@babel/helper-get-function-arity@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz#83572d4320e2a4657263734113c42868b64e49c3" + integrity sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ== + dependencies: + "@babel/types" "^7.0.0" -anymatch@^1.3.0: - version "1.3.2" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-1.3.2.tgz#553dcb8f91e3c889845dfdba34c77721b90b9d7a" - integrity sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA== +"@babel/helper-hoist-variables@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.0.0.tgz#46adc4c5e758645ae7a45deb92bab0918c23bb88" + integrity sha512-Ggv5sldXUeSKsuzLkddtyhyHe2YantsxWKNi7A+7LeD12ExRDWTRk29JCXpaHPAbMaIPZSil7n+lq78WY2VY7w== dependencies: - micromatch "^2.1.5" - normalize-path "^2.0.0" + "@babel/types" "^7.0.0" -aproba@^1.0.3: - version "1.2.0" - resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" - integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== +"@babel/helper-member-expression-to-functions@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.0.0.tgz#8cd14b0a0df7ff00f009e7d7a436945f47c7a16f" + integrity sha512-avo+lm/QmZlv27Zsi0xEor2fKcqWG56D5ae9dzklpIaY7cQMK5N8VSpaNVPPagiqmy7LrEjK1IWdGMOqPu5csg== + dependencies: + "@babel/types" "^7.0.0" -are-we-there-yet@~1.1.2: - version "1.1.5" - resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21" - integrity sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w== +"@babel/helper-module-imports@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.0.0.tgz#96081b7111e486da4d2cd971ad1a4fe216cc2e3d" + integrity sha512-aP/hlLq01DWNEiDg4Jn23i+CXxW/owM4WpDLFUbpjxe4NS3BhLVZQ5i7E0ZrxuQ/vwekIeciyamgB1UIYxxM6A== dependencies: - delegates "^1.0.0" - readable-stream "^2.0.6" + "@babel/types" "^7.0.0" -arr-diff@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf" - integrity sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8= +"@babel/helper-module-transforms@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.1.0.tgz#470d4f9676d9fad50b324cdcce5fbabbc3da5787" + integrity sha512-0JZRd2yhawo79Rcm4w0LwSMILFmFXjugG3yqf+P/UsKsRS1mJCmMwwlHDlMg7Avr9LrvSpp4ZSULO9r8jpCzcw== dependencies: - arr-flatten "^1.0.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.1.0" + "@babel/types" "^7.0.0" + lodash "^4.17.10" -arr-diff@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" - integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= +"@babel/helper-optimise-call-expression@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.0.0.tgz#a2920c5702b073c15de51106200aa8cad20497d5" + integrity sha512-u8nd9NQePYNQV8iPWu/pLLYBqZBa4ZaY1YWRFMuxrid94wKI1QNt67NEZ7GAe5Kc/0LLScbim05xZFWkAdrj9g== + dependencies: + "@babel/types" "^7.0.0" -arr-flatten@^1.0.1, arr-flatten@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" - integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== +"@babel/helper-plugin-utils@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz#bbb3fbee98661c569034237cc03967ba99b4f250" + integrity sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA== + +"@babel/helper-regex@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.0.0.tgz#2c1718923b57f9bbe64705ffe5640ac64d9bdb27" + integrity sha512-TR0/N0NDCcUIUEbqV6dCO+LptmmSQFQ7q70lfcEB4URsjD0E1HzicrwUH+ap6BAQ2jhCX9Q4UqZy4wilujWlkg== + dependencies: + lodash "^4.17.10" + +"@babel/helper-remap-async-to-generator@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.1.0.tgz#361d80821b6f38da75bd3f0785ece20a88c5fe7f" + integrity sha512-3fOK0L+Fdlg8S5al8u/hWE6vhufGSn0bN09xm2LXMy//REAF8kDCrYoOBKYmA8m5Nom+sV9LyLCwrFynA8/slg== + dependencies: + "@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" -arr-union@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" - integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= +"@babel/helper-replace-supers@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.1.0.tgz#5fc31de522ec0ef0899dc9b3e7cf6a5dd655f362" + integrity sha512-BvcDWYZRWVuDeXTYZWxekQNO5D4kO55aArwZOTFXw6rlLQA8ZaDicJR1sO47h+HrnCiDFiww0fSPV0d713KBGQ== + dependencies: + "@babel/helper-member-expression-to-functions" "^7.0.0" + "@babel/helper-optimise-call-expression" "^7.0.0" + "@babel/traverse" "^7.1.0" + "@babel/types" "^7.0.0" + +"@babel/helper-simple-access@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.1.0.tgz#65eeb954c8c245beaa4e859da6188f39d71e585c" + integrity sha512-Vk+78hNjRbsiu49zAPALxTb+JUQCz1aolpd8osOF16BGnLtseD21nbHgLPGUwrXEurZgiCOUmvs3ExTu4F5x6w== + dependencies: + "@babel/template" "^7.1.0" + "@babel/types" "^7.0.0" -array-filter@~0.0.0: - version "0.0.1" - resolved "https://registry.yarnpkg.com/array-filter/-/array-filter-0.0.1.tgz#7da8cf2e26628ed732803581fd21f67cacd2eeec" - integrity sha1-fajPLiZijtcygDWB/SH2fKzS7uw= +"@babel/helper-split-export-declaration@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0.tgz#3aae285c0311c2ab095d997b8c9a94cad547d813" + integrity sha512-MXkOJqva62dfC0w85mEf/LucPPS/1+04nmmRMPEBUB++hiiThQ2zPtX/mEWQ3mtzCEjIJvPY8nuwxXtQeQwUag== + dependencies: + "@babel/types" "^7.0.0" -array-map@~0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/array-map/-/array-map-0.0.0.tgz#88a2bab73d1cf7bcd5c1b118a003f66f665fa662" - integrity sha1-iKK6tz0c97zVwbEYoAP2b2ZfpmI= +"@babel/helper-wrap-function@^7.1.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.2.0.tgz#c4e0012445769e2815b55296ead43a958549f6fa" + integrity sha512-o9fP1BZLLSrYlxYEYyl2aS+Flun5gtjTIG8iln+XuEzQTs0PLagAGSXUcqruJwD5fM48jzIEggCKpIfWTcR7pQ== + dependencies: + "@babel/helper-function-name" "^7.1.0" + "@babel/template" "^7.1.0" + "@babel/traverse" "^7.1.0" + "@babel/types" "^7.2.0" -array-reduce@~0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/array-reduce/-/array-reduce-0.0.0.tgz#173899d3ffd1c7d9383e4479525dbe278cab5f2b" - integrity sha1-FziZ0//Rx9k4PkR5Ul2+J4yrXys= +"@babel/helpers@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.2.0.tgz#8335f3140f3144270dc63c4732a4f8b0a50b7a21" + integrity sha512-Fr07N+ea0dMcMN8nFpuK6dUIT7/ivt9yKQdEEnjVS83tG2pHwPi03gYmk/tyuwONnZ+sY+GFFPlWGgCtW1hF9A== + dependencies: + "@babel/template" "^7.1.2" + "@babel/traverse" "^7.1.5" + "@babel/types" "^7.2.0" -array-unique@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" - integrity sha1-odl8yvy8JiXMcPrc6zalDFiwGlM= +"@babel/highlight@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.0.0.tgz#f710c38c8d458e6dd9a201afb637fcb781ce99e4" + integrity sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw== + dependencies: + chalk "^2.0.0" + esutils "^2.0.2" + js-tokens "^4.0.0" -array-unique@^0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" - integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= +"@babel/parser@^7.1.2", "@babel/parser@^7.1.6", "@babel/parser@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.2.0.tgz#02d01dbc330b6cbf36b76ac93c50752c69027065" + integrity sha512-M74+GvK4hn1eejD9lZ7967qAwvqTZayQa3g10ag4s9uewgR7TKjeaT0YMyoq+gVfKYABiWZ4MQD701/t5e1Jhg== -asn1.js@^4.0.0: - version "4.10.1" - resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.10.1.tgz#b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0" - integrity sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw== +"@babel/plugin-proposal-async-generator-functions@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.2.0.tgz#b289b306669dce4ad20b0252889a15768c9d417e" + integrity sha512-+Dfo/SCQqrwx48ptLVGLdE39YtWRuKc/Y9I5Fy0P1DDBB9lsAHpjcEJQt+4IifuSOSTLBKJObJqMvaO1pIE8LQ== dependencies: - bn.js "^4.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-remap-async-to-generator" "^7.1.0" + "@babel/plugin-syntax-async-generators" "^7.2.0" -assert@^1.4.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/assert/-/assert-1.4.1.tgz#99912d591836b5a6f5b345c0f07eefc08fc65d91" - integrity sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE= +"@babel/plugin-proposal-json-strings@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.2.0.tgz#568ecc446c6148ae6b267f02551130891e29f317" + integrity sha512-MAFV1CA/YVmYwZG0fBQyXhmj0BHCB5egZHCKWIFVv/XCxAeVGIHfos3SwDck4LvCllENIAg7xMKOG5kH0dzyUg== dependencies: - util "0.10.3" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-json-strings" "^7.2.0" -assign-symbols@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" - integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= - -async-each@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" - integrity sha1-GdOGodntxufByF04iu28xW0zYC0= +"@babel/plugin-proposal-object-rest-spread@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.2.0.tgz#88f5fec3e7ad019014c97f7ee3c992f0adbf7fb8" + integrity sha512-1L5mWLSvR76XYUQJXkd/EEQgjq8HHRP6lQuZTTg0VA4tTGPpGemmCdAfQIz1rzEuWAm+ecP8PyyEm30jC1eQCg== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-object-rest-spread" "^7.2.0" -atob@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" - integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== +"@babel/plugin-proposal-optional-catch-binding@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.2.0.tgz#135d81edb68a081e55e56ec48541ece8065c38f5" + integrity sha512-mgYj3jCcxug6KUcX4OBoOJz3CMrwRfQELPQ5560F70YQUBZB7uac9fqaWamKR1iWUzGiK2t0ygzjTScZnVz75g== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-optional-catch-binding" "^7.2.0" -babel-cli@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-cli/-/babel-cli-6.26.0.tgz#502ab54874d7db88ad00b887a06383ce03d002f1" - integrity sha1-UCq1SHTX24itALiHoGODzgPQAvE= - dependencies: - babel-core "^6.26.0" - babel-polyfill "^6.26.0" - babel-register "^6.26.0" - babel-runtime "^6.26.0" - commander "^2.11.0" - convert-source-map "^1.5.0" - fs-readdir-recursive "^1.0.0" - glob "^7.1.2" - lodash "^4.17.4" - output-file-sync "^1.1.2" - path-is-absolute "^1.0.1" - slash "^1.0.0" - source-map "^0.5.6" - v8flags "^2.1.1" - optionalDependencies: - chokidar "^1.6.1" +"@babel/plugin-proposal-unicode-property-regex@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.2.0.tgz#abe7281fe46c95ddc143a65e5358647792039520" + integrity sha512-LvRVYb7kikuOtIoUeWTkOxQEV1kYvL5B6U3iWEGCzPNRus1MzJweFqORTj+0jkxozkTSYNJozPOddxmqdqsRpw== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-regex" "^7.0.0" + regexpu-core "^4.2.0" -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" - integrity sha1-Y/1D99weO7fONZR9uP42mj9Yx0s= +"@babel/plugin-syntax-async-generators@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.2.0.tgz#69e1f0db34c6f5a0cf7e2b3323bf159a76c8cb7f" + integrity sha512-1ZrIRBv2t0GSlcwVoQ6VgSLpLgiN/FVQUzt9znxo7v2Ov4jJrs8RY8tv0wvDmFN3qIdMKWrmMMW6yZ0G19MfGg== dependencies: - chalk "^1.1.3" - esutils "^2.0.2" - js-tokens "^3.0.2" - -babel-core@^6.26.0: - version "6.26.3" - resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.3.tgz#b2e2f09e342d0f0c88e2f02e067794125e75c207" - integrity sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA== - 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.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@^6.26.0: - version "6.26.1" - resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.1.tgz#1844408d3b8f0d35a404ea7ac180f087a601bd90" - integrity sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA== - 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.7" - trim-right "^1.0.1" + "@babel/helper-plugin-utils" "^7.0.0" -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" - integrity sha1-zORReto1b0IgvK6KAsKzRvmlZmQ= +"@babel/plugin-syntax-json-strings@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.2.0.tgz#72bd13f6ffe1d25938129d2a186b11fd62951470" + integrity sha512-5UGYnMSLRE1dqqZwug+1LISpA403HzlSfsg6P9VXU6TBjcSHeNlw4DxDx7LgpF+iKZoOG/+uzqoRHTdcUpiZNg== dependencies: - babel-helper-explode-assignable-expression "^6.24.1" - babel-runtime "^6.22.0" - babel-types "^6.24.1" + "@babel/helper-plugin-utils" "^7.0.0" -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" - integrity sha1-Of+DE7dci2Xc7/HzHTg+D/KkCKA= +"@babel/plugin-syntax-jsx@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.2.0.tgz#0b85a3b4bc7cdf4cc4b8bf236335b907ca22e7c7" + integrity sha512-VyN4QANJkRW6lDBmENzRszvZf3/4AXaj9YR7GwrWeeN9tEBPuXbmDYVU9bYBN0D70zCWVwUy0HWq2553VCb6Hw== dependencies: - babel-runtime "^6.26.0" - babel-types "^6.26.0" - esutils "^2.0.2" + "@babel/helper-plugin-utils" "^7.0.0" -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" - integrity sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340= +"@babel/plugin-syntax-object-rest-spread@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.2.0.tgz#3b7a3e733510c57e820b9142a6579ac8b0dfad2e" + integrity sha512-t0JKGgqk2We+9may3t0xDdmneaXmyxq0xieYcKHxIsrJO64n1OiMWNUtc5gQK1PA0NpdCRrtZp4z+IUaKugrSA== 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-plugin-utils" "^7.0.0" -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" - integrity sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8= +"@babel/plugin-syntax-optional-catch-binding@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.2.0.tgz#a94013d6eda8908dfe6a477e7f9eda85656ecf5c" + integrity sha512-bDe4xKNhb0LI7IvZHiA13kff0KEfaGX/Hv4lMA9+7TEc63hMNvfKo6ZFpXhKuEp+II/q35Gc4NoMeDZyaUbj9w== dependencies: - 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-evaluate-path@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/babel-helper-evaluate-path/-/babel-helper-evaluate-path-0.3.0.tgz#2439545e0b6eae5b7f49b790acbebd6b9a73df20" - integrity sha512-dRFlMTqUJRGzx5a2smKxmptDdNCXKSkPcXWzKLwAV72hvIZumrd/0z9RcewHkr7PmAEq+ETtpD1GK6wZ6ZUXzw== +"@babel/plugin-transform-arrow-functions@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.2.0.tgz#9aeafbe4d6ffc6563bf8f8372091628f00779550" + integrity sha512-ER77Cax1+8/8jCB9fo4Ud161OZzWN5qawi4GusDuRLcDbDG+bIGYY20zb2dfAFdTRGzrfq2xZPvF0R64EHnimg== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" -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" - integrity sha1-8luCz33BBDPFX3BZLVdGQArCLKo= +"@babel/plugin-transform-async-to-generator@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.2.0.tgz#68b8a438663e88519e65b776f8938f3445b1a2ff" + integrity sha512-CEHzg4g5UraReozI9D4fblBYABs7IM6UerAVG7EJVrTLC5keh00aEuLUT+O40+mJCEzaXkYfTCUKIyeDfMOFFQ== dependencies: - babel-runtime "^6.22.0" - babel-traverse "^6.24.1" - babel-types "^6.24.1" + "@babel/helper-module-imports" "^7.0.0" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-remap-async-to-generator" "^7.1.0" -babel-helper-flip-expressions@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/babel-helper-flip-expressions/-/babel-helper-flip-expressions-0.3.0.tgz#f5b6394bd5219b43cf8f7b201535ed540c6e7fa2" - integrity sha512-kNGohWmtAG3b7tN1xocRQ5rsKkH/hpvZsMiGOJ1VwGJKhnwzR5KlB3rvKBaBPl5/IGHcopB2JN+r1SUEX1iMAw== +"@babel/plugin-transform-block-scoped-functions@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.2.0.tgz#5d3cc11e8d5ddd752aa64c9148d0db6cb79fd190" + integrity sha512-ntQPR6q1/NKuphly49+QiQiTN0O63uOwjdD6dhIjSWBI5xlrbUFh720TIpzBhpnrLfv2tNH/BXvLIab1+BAI0w== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" -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" - integrity sha1-00dbjAPtmCQqJbSDUasYOZ01gKk= +"@babel/plugin-transform-block-scoping@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.2.0.tgz#f17c49d91eedbcdf5dd50597d16f5f2f770132d4" + integrity sha512-vDTgf19ZEV6mx35yiPJe4fS02mPQUUcBNwWQSZFXSzTSbsJFQvHt7DqyS3LK8oOWALFOsJ+8bbqBgkirZteD5Q== 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-plugin-utils" "^7.0.0" + lodash "^4.17.10" -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" - integrity sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0= +"@babel/plugin-transform-classes@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.2.0.tgz#374f8876075d7d21fea55aeb5c53561259163f96" + integrity sha512-aPCEkrhJYebDXcGTAP+cdUENkH7zqOlgbKwLbghjjHpJRJBWM/FSlCjMoPGA8oUdiMfOrk3+8EFPLLb5r7zj2w== + dependencies: + "@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.1.0" + "@babel/helper-split-export-declaration" "^7.0.0" + globals "^11.1.0" + +"@babel/plugin-transform-computed-properties@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.2.0.tgz#83a7df6a658865b1c8f641d510c6f3af220216da" + integrity sha512-kP/drqTxY6Xt3NNpKiMomfgkNn4o7+vKxK2DDKcBG9sHj51vHqMBGy8wbDS/J4lMxnqs153/T3+DmCEAkC5cpA== dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" + "@babel/helper-plugin-utils" "^7.0.0" -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" - integrity sha1-HssnaJydJVE+rbyZFKc/VAi+enY= +"@babel/plugin-transform-destructuring@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.2.0.tgz#e75269b4b7889ec3a332cd0d0c8cff8fed0dc6f3" + integrity sha512-coVO2Ayv7g0qdDbrNiadE4bU7lvCd9H539m2gMknyVjjMdwF/iCOM7R+E8PkntoqLkltO0rk+3axhpp/0v68VQ== dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" + "@babel/helper-plugin-utils" "^7.0.0" -babel-helper-is-nodes-equiv@^0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/babel-helper-is-nodes-equiv/-/babel-helper-is-nodes-equiv-0.0.1.tgz#34e9b300b1479ddd98ec77ea0bbe9342dfe39684" - integrity sha1-NOmzALFHnd2Y7HfqC76TQt/jloQ= +"@babel/plugin-transform-dotall-regex@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.2.0.tgz#f0aabb93d120a8ac61e925ea0ba440812dbe0e49" + integrity sha512-sKxnyHfizweTgKZf7XsXu/CNupKhzijptfTM+bozonIuyVrLWVUvYjE2bhuSBML8VQeMxq4Mm63Q9qvcvUcciQ== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-regex" "^7.0.0" + regexpu-core "^4.1.3" -babel-helper-is-void-0@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/babel-helper-is-void-0/-/babel-helper-is-void-0-0.3.0.tgz#95570d20bd27b2206f68083ae9980ee7003d8fe7" - integrity sha512-JVqdX8y7Rf/x4NwbqtUI7mdQjL9HWoDnoAEQ8Gv8oxzjvbJv+n75f7l36m9Y8C7sCUltX3V5edndrp7Hp1oSXQ== +"@babel/plugin-transform-duplicate-keys@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.2.0.tgz#d952c4930f312a4dbfff18f0b2914e60c35530b3" + integrity sha512-q+yuxW4DsTjNceUiTzK0L+AfQ0zD9rWaTLiUqHA8p0gxx7lu1EylenfzjeIWNkPy6e/0VG/Wjw9uf9LueQwLOw== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" -babel-helper-mark-eval-scopes@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/babel-helper-mark-eval-scopes/-/babel-helper-mark-eval-scopes-0.3.0.tgz#b4731314fdd7a89091271a5213b4e12d236e29e8" - integrity sha512-nrho5Dg4vl0VUgURVpGpEGiwbst5JX7efIyDHFxmkCx/ocQFnrPt8ze9Kxl6TKjR29bJ7D/XKY1NMlSxOQJRbQ== - -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" - integrity sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc= - 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" - integrity sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI= - 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" - integrity sha1-XsWBgnrXI/7N04HxySg5BnbkVRs= - 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-remove-or-void@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/babel-helper-remove-or-void/-/babel-helper-remove-or-void-0.3.0.tgz#f43c86147c8fcc395a9528cbb31e7ff49d7e16e3" - integrity sha512-D68W1M3ibCcbg0ysh3ww4/O0g10X1CXK720oOuR8kpfY7w0yP4tVcpK7zDmI1JecynycTQYAZ1rhLJo9aVtIKQ== - -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" - integrity sha1-v22/5Dk40XNpohPKiov3S2qQqxo= - 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-helper-to-multiple-sequence-expressions@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/babel-helper-to-multiple-sequence-expressions/-/babel-helper-to-multiple-sequence-expressions-0.3.0.tgz#8da2275ccc26995566118f7213abfd9af7214427" - integrity sha512-1uCrBD+EAaMnAYh7hc944n8Ga19y3daEnoXWPYDvFVsxMCc1l8aDjksApaCEaNSSuewq8BEcff47Cy1PbLg2Gw== +"@babel/plugin-transform-exponentiation-operator@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.2.0.tgz#a63868289e5b4007f7054d46491af51435766008" + integrity sha512-umh4hR6N7mu4Elq9GG8TOu9M0bakvlsREEC+ialrQN6ABS4oDQ69qJv1VtR3uxlKMCQMCvzk7vr17RHKcjx68A== + dependencies: + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.1.0" + "@babel/helper-plugin-utils" "^7.0.0" -babel-helpers@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2" - integrity sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI= +"@babel/plugin-transform-for-of@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.2.0.tgz#ab7468befa80f764bb03d3cb5eef8cc998e1cad9" + integrity sha512-Kz7Mt0SsV2tQk6jG5bBv5phVbkd0gd27SgYD4hH1aLMJRchM0dzHaXvrWhVZ+WxAlDoAKZ7Uy3jVTW2mKXQ1WQ== dependencies: - babel-runtime "^6.22.0" - babel-template "^6.24.1" + "@babel/helper-plugin-utils" "^7.0.0" -babel-messages@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" - integrity sha1-8830cDhYA1sqKVHG7F7fbGLyYw4= +"@babel/plugin-transform-function-name@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.2.0.tgz#f7930362829ff99a3174c39f0afcc024ef59731a" + integrity sha512-kWgksow9lHdvBC2Z4mxTsvc7YdY7w/V6B2vy9cTIPtLEE9NhwoWivaxdNM/S37elu5bqlLP/qOY906LukO9lkQ== dependencies: - babel-runtime "^6.22.0" + "@babel/helper-function-name" "^7.1.0" + "@babel/helper-plugin-utils" "^7.0.0" -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" - integrity sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o= +"@babel/plugin-transform-literals@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.2.0.tgz#690353e81f9267dad4fd8cfd77eafa86aba53ea1" + integrity sha512-2ThDhm4lI4oV7fVQ6pNNK+sx+c/GM5/SaML0w/r4ZB7sAneD/piDJtwdKlNckXeyGK7wlwg2E2w33C/Hh+VFCg== dependencies: - babel-runtime "^6.22.0" + "@babel/helper-plugin-utils" "^7.0.0" -babel-plugin-minify-builtins@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/babel-plugin-minify-builtins/-/babel-plugin-minify-builtins-0.3.0.tgz#4740117a6a784063aaf8f092989cf9e4bd484860" - integrity sha512-MqhSHlxkmgURqj3144qPksbZ/qof1JWdumcbucc4tysFcf3P3V3z3munTevQgKEFNMd8F5/ECGnwb63xogLjAg== +"@babel/plugin-transform-modules-amd@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.2.0.tgz#82a9bce45b95441f617a24011dc89d12da7f4ee6" + integrity sha512-mK2A8ucqz1qhrdqjS9VMIDfIvvT2thrEsIQzbaTdc5QFzhDjQv2CkJJ5f6BXIkgbmaoax3zBr2RyvV/8zeoUZw== dependencies: - babel-helper-evaluate-path "^0.3.0" + "@babel/helper-module-transforms" "^7.1.0" + "@babel/helper-plugin-utils" "^7.0.0" -babel-plugin-minify-constant-folding@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/babel-plugin-minify-constant-folding/-/babel-plugin-minify-constant-folding-0.3.0.tgz#687e40336bd4ddd921e0e197f0006235ac184bb9" - integrity sha512-1XeRpx+aY1BuNY6QU/cm6P+FtEi3ar3XceYbmC+4q4W+2Ewq5pL7V68oHg1hKXkBIE0Z4/FjSoHz6vosZLOe/A== +"@babel/plugin-transform-modules-commonjs@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.2.0.tgz#c4f1933f5991d5145e9cfad1dfd848ea1727f404" + integrity sha512-V6y0uaUQrQPXUrmj+hgnks8va2L0zcZymeU7TtWEgdRLNkceafKXEduv7QzgQAE4lT+suwooG9dC7LFhdRAbVQ== dependencies: - babel-helper-evaluate-path "^0.3.0" + "@babel/helper-module-transforms" "^7.1.0" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-simple-access" "^7.1.0" -babel-plugin-minify-dead-code-elimination@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/babel-plugin-minify-dead-code-elimination/-/babel-plugin-minify-dead-code-elimination-0.3.0.tgz#a323f686c404b824186ba5583cf7996cac81719e" - integrity sha512-SjM2Fzg85YZz+q/PNJ/HU4O3W98FKFOiP9K5z3sfonlamGOzvZw3Eup2OTiEBsbbqTeY8yzNCAv3qpJRYCgGmw== +"@babel/plugin-transform-modules-systemjs@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.2.0.tgz#912bfe9e5ff982924c81d0937c92d24994bb9068" + integrity sha512-aYJwpAhoK9a+1+O625WIjvMY11wkB/ok0WClVwmeo3mCjcNRjt+/8gHWrB5i+00mUju0gWsBkQnPpdvQ7PImmQ== dependencies: - babel-helper-evaluate-path "^0.3.0" - babel-helper-mark-eval-scopes "^0.3.0" - babel-helper-remove-or-void "^0.3.0" - lodash.some "^4.6.0" + "@babel/helper-hoist-variables" "^7.0.0" + "@babel/helper-plugin-utils" "^7.0.0" -babel-plugin-minify-flip-comparisons@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/babel-plugin-minify-flip-comparisons/-/babel-plugin-minify-flip-comparisons-0.3.0.tgz#6627893a409c9f30ef7f2c89e0c6eea7ee97ddc4" - integrity sha512-B8lK+ekcpSNVH7PZpWDe5nC5zxjRiiT4nTsa6h3QkF3Kk6y9qooIFLemdGlqBq6j0zALEnebvCpw8v7gAdpgnw== +"@babel/plugin-transform-modules-umd@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.2.0.tgz#7678ce75169f0877b8eb2235538c074268dd01ae" + integrity sha512-BV3bw6MyUH1iIsGhXlOK6sXhmSarZjtJ/vMiD9dNmpY8QXFFQTj+6v92pcfy1iqa8DeAfJFwoxcrS/TUZda6sw== dependencies: - babel-helper-is-void-0 "^0.3.0" + "@babel/helper-module-transforms" "^7.1.0" + "@babel/helper-plugin-utils" "^7.0.0" -babel-plugin-minify-guarded-expressions@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/babel-plugin-minify-guarded-expressions/-/babel-plugin-minify-guarded-expressions-0.3.0.tgz#2552d96189ef45d9a463f1a6b5e4fa110703ac8d" - integrity sha512-O+6CvF5/Ttsth3LMg4/BhyvVZ82GImeKMXGdVRQGK/8jFiP15EjRpdgFlxv3cnqRjqdYxLCS6r28VfLpb9C/kA== +"@babel/plugin-transform-new-target@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.0.0.tgz#ae8fbd89517fa7892d20e6564e641e8770c3aa4a" + integrity sha512-yin069FYjah+LbqfGeTfzIBODex/e++Yfa0rH0fpfam9uTbuEeEOx5GLGr210ggOV77mVRNoeqSYqeuaqSzVSw== dependencies: - babel-helper-flip-expressions "^0.3.0" + "@babel/helper-plugin-utils" "^7.0.0" -babel-plugin-minify-infinity@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/babel-plugin-minify-infinity/-/babel-plugin-minify-infinity-0.3.0.tgz#c5ec0edd433517cf31b3af17077c202beb48bbe7" - integrity sha512-Sj8ia3/w9158DWieUxU6/VvnYVy59geeFEkVgLZYBE8EBP+sN48tHtBM/jSgz0ejEdBlcfqJ6TnvPmVXTzR2BQ== +"@babel/plugin-transform-object-super@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.2.0.tgz#b35d4c10f56bab5d650047dad0f1d8e8814b6598" + integrity sha512-VMyhPYZISFZAqAPVkiYb7dUe2AsVi2/wCT5+wZdsNO31FojQJa9ns40hzZ6U9f50Jlq4w6qwzdBB2uwqZ00ebg== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-replace-supers" "^7.1.0" -babel-plugin-minify-mangle-names@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/babel-plugin-minify-mangle-names/-/babel-plugin-minify-mangle-names-0.3.0.tgz#f28561bad0dd2f0380816816bb946e219b3b6135" - integrity sha512-PYTonhFWURsfAN8achDwvR5Xgy6EeTClLz+fSgGRqjAIXb0OyFm3/xfccbQviVi1qDXmlSnt6oJhBg8KE4Fn7Q== +"@babel/plugin-transform-parameters@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.2.0.tgz#0d5ad15dc805e2ea866df4dd6682bfe76d1408c2" + integrity sha512-kB9+hhUidIgUoBQ0MsxMewhzr8i60nMa2KgeJKQWYrqQpqcBYtnpR+JgkadZVZoaEZ/eKu9mclFaVwhRpLNSzA== dependencies: - babel-helper-mark-eval-scopes "^0.3.0" + "@babel/helper-call-delegate" "^7.1.0" + "@babel/helper-get-function-arity" "^7.0.0" + "@babel/helper-plugin-utils" "^7.0.0" -babel-plugin-minify-numeric-literals@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/babel-plugin-minify-numeric-literals/-/babel-plugin-minify-numeric-literals-0.3.0.tgz#b57734a612e8a592005407323c321119f27d4b40" - integrity sha512-TgZj6ay8zDw74AS3yiIfoQ8vRSNJisYO/Du60S8nPV7EW7JM6fDMx5Sar6yVHlVuuwNgvDUBh191K33bVrAhpg== +"@babel/plugin-transform-react-display-name@^7.0.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.2.0.tgz#ebfaed87834ce8dc4279609a4f0c324c156e3eb0" + integrity sha512-Htf/tPa5haZvRMiNSQSFifK12gtr/8vwfr+A9y69uF0QcU77AVu4K7MiHEkTxF7lQoHOL0F9ErqgfNEAKgXj7A== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" -babel-plugin-minify-replace@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/babel-plugin-minify-replace/-/babel-plugin-minify-replace-0.3.0.tgz#980125bbf7cbb5a637439de9d0b1b030a4693893" - integrity sha512-VR6tTg2Lt0TicHIOw04fsUtpPw7RaRP8PC8YzSFwEixnzvguZjZJoL7TgG7ZyEWQD1cJ96UezswECmFNa815bg== +"@babel/plugin-transform-react-jsx-self@^7.0.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.2.0.tgz#461e21ad9478f1031dd5e276108d027f1b5240ba" + integrity sha512-v6S5L/myicZEy+jr6ielB0OR8h+EH/1QFx/YJ7c7Ua+7lqsjj/vW6fD5FR9hB/6y7mGbfT4vAURn3xqBxsUcdg== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-jsx" "^7.2.0" -babel-plugin-minify-simplify@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/babel-plugin-minify-simplify/-/babel-plugin-minify-simplify-0.3.0.tgz#14574cc74d21c81d3060fafa041010028189f11b" - integrity sha512-2M16ytQOCqBi7bYMu4DCWn8e6KyFCA108F6+tVrBJxOmm5u2sOmTFEa8s94tR9RHRRNYmcUf+rgidfnzL3ik9Q== +"@babel/plugin-transform-react-jsx-source@^7.0.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.2.0.tgz#20c8c60f0140f5dd3cd63418d452801cf3f7180f" + integrity sha512-A32OkKTp4i5U6aE88GwwcuV4HAprUgHcTq0sSafLxjr6AW0QahrCRCjxogkbbcdtpbXkuTOlgpjophCxb6sh5g== dependencies: - babel-helper-flip-expressions "^0.3.0" - babel-helper-is-nodes-equiv "^0.0.1" - babel-helper-to-multiple-sequence-expressions "^0.3.0" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-jsx" "^7.2.0" -babel-plugin-minify-type-constructors@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/babel-plugin-minify-type-constructors/-/babel-plugin-minify-type-constructors-0.3.0.tgz#7f5a86ef322c4746364e3c591b8514eeafea6ad4" - integrity sha512-XRXpvsUCPeVw9YEUw+9vSiugcSZfow81oIJT0yR9s8H4W7yJ6FHbImi5DJHoL8KcDUjYnL9wYASXk/fOkbyR6Q== - dependencies: - babel-helper-is-void-0 "^0.3.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" - integrity sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU= - -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" - integrity sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4= - -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" - integrity sha1-TDqyCiryaqIM0lmVw5jE63AxDI0= - -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" - integrity sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY= - -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" - integrity sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM= - -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" - integrity sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E= - 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" - integrity sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE= - 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" - integrity sha1-u8UbSflk1wy42OC5ToICRs46YUE= - 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" - integrity sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8= - 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" - integrity sha1-WkxYpQyclGHlZLSyo7+ryXolhNs= - 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" - integrity sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM= - 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" - integrity sha1-mXux8auWf2gtKwh2/jWNYOdlxW0= - 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" - integrity sha1-c+s9MQypaePvnskcU3QabxV2Qj4= - 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" - integrity sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE= - 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" - integrity sha1-g0yJhTvDaxrw86TF26qU/Y6sqos= - 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" - integrity sha1-T1SgLWzWbPkVKAAZox0xklN3yi4= - 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" - integrity sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ= - 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.2" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz#58a793863a9e7ca870bdc5a881117ffac27db6f3" - integrity sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q== - 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" - integrity sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM= - 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" - integrity sha1-rJl+YoXNGO1hdq22B9YCNErThGg= - 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" - integrity sha1-JM72muIcuDp/hgPa0CH1cusnj40= - 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" - integrity sha1-V6w1GrScrxSpfNE7CfZv3wpiXys= - 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" - integrity sha1-JPh11nIch2YbvZmkYi5R8U3jiqA= - 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" - integrity sha1-1taKmfia7cRTbIGlQujdnxdG+NE= - 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" - integrity sha1-AMHNsaynERLN8M9hJsLta0V8zbw= - 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" - integrity sha1-qEs0UPfp+PH2g51taH2oS7EjbY0= - 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" - integrity sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I= - 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" - integrity sha1-04sS9C6nMj9yk4fxinxa4frrNek= - 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" - integrity sha1-KrDJx/MJj6SJB3cruBP+QejeOg4= - 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" - integrity sha1-hMtnKTXUNxT9wyvOhFaNh0Qc988= - dependencies: - babel-plugin-syntax-flow "^6.18.0" - babel-runtime "^6.22.0" - -babel-plugin-transform-inline-consecutive-adds@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-inline-consecutive-adds/-/babel-plugin-transform-inline-consecutive-adds-0.3.0.tgz#f07d93689c0002ed2b2b62969bdd99f734e03f57" - integrity sha512-iZsYAIjYLLfLK0yN5WVT7Xf7Y3wQ9Z75j9A8q/0IglQSpUt2ppTdHlwl/GeaXnxdaSmsxBu861klbTBbv2n+RA== +"@babel/plugin-transform-react-jsx@^7.0.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.2.0.tgz#ca36b6561c4d3b45524f8efb6f0fbc9a0d1d622f" + integrity sha512-h/fZRel5wAfCqcKgq3OhbmYaReo7KkoJBpt8XnvpS7wqaNMqtw5xhxutzcm35iMUWucfAdT/nvGTsWln0JTg2Q== + dependencies: + "@babel/helper-builder-react-jsx" "^7.0.0" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-jsx" "^7.2.0" -babel-plugin-transform-member-expression-literals@^6.9.0: - version "6.9.4" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-member-expression-literals/-/babel-plugin-transform-member-expression-literals-6.9.4.tgz#37039c9a0c3313a39495faac2ff3a6b5b9d038bf" - integrity sha1-NwOcmgwzE6OUlfqsL/OmtbnQOL8= +"@babel/plugin-transform-regenerator@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.0.0.tgz#5b41686b4ed40bef874d7ed6a84bdd849c13e0c1" + integrity sha512-sj2qzsEx8KDVv1QuJc/dEfilkg3RRPvPYx/VnKLtItVQRWt1Wqf5eVCOLZm29CiGFfYYsA3VPjfizTCV0S0Dlw== + dependencies: + regenerator-transform "^0.13.3" -babel-plugin-transform-merge-sibling-variables@^6.9.0: - version "6.9.4" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-merge-sibling-variables/-/babel-plugin-transform-merge-sibling-variables-6.9.4.tgz#85b422fc3377b449c9d1cde44087203532401dae" - integrity sha1-hbQi/DN3tEnJ0c3kQIcgNTJAHa4= +"@babel/plugin-transform-shorthand-properties@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.2.0.tgz#6333aee2f8d6ee7e28615457298934a3b46198f0" + integrity sha512-QP4eUM83ha9zmYtpbnyjTLAGKQritA5XW/iG9cjtuOI8s1RuL/3V6a3DeSHfKutJQ+ayUfeZJPcnCYEQzaPQqg== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" -babel-plugin-transform-minify-booleans@^6.9.0: - version "6.9.4" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-minify-booleans/-/babel-plugin-transform-minify-booleans-6.9.4.tgz#acbb3e56a3555dd23928e4b582d285162dd2b198" - integrity sha1-rLs+VqNVXdI5KOS1gtKFFi3SsZg= +"@babel/plugin-transform-spread@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.2.0.tgz#0c76c12a3b5826130078ee8ec84a7a8e4afd79c4" + integrity sha512-7TtPIdwjS/i5ZBlNiQePQCovDh9pAhVbp/nGVRBZuUdBiVRThyyLend3OHobc0G+RLCPPAN70+z/MAMhsgJd/A== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" -babel-plugin-transform-property-literals@^6.9.0: - version "6.9.4" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-property-literals/-/babel-plugin-transform-property-literals-6.9.4.tgz#98c1d21e255736573f93ece54459f6ce24985d39" - integrity sha1-mMHSHiVXNlc/k+zlRFn2ziSYXTk= +"@babel/plugin-transform-sticky-regex@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.2.0.tgz#a1e454b5995560a9c1e0d537dfc15061fd2687e1" + integrity sha512-KKYCoGaRAf+ckH8gEL3JHUaFVyNHKe3ASNsZ+AlktgHevvxGigoIttrEJb8iKN03Q7Eazlv1s6cx2B2cQ3Jabw== dependencies: - esutils "^2.0.2" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-regex" "^7.0.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" - integrity sha1-Z+K/Hx6ck6sI25Z5LgU5K/LMKNE= +"@babel/plugin-transform-template-literals@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.2.0.tgz#d87ed01b8eaac7a92473f608c97c089de2ba1e5b" + integrity sha512-FkPix00J9A/XWXv4VoKJBMeSkyY9x/TqIh76wzcdfl57RJJcf8CehQ08uwfhCDNtRQYtHQKBTwKZDEyjE13Lwg== dependencies: - babel-runtime "^6.22.0" + "@babel/helper-annotate-as-pure" "^7.0.0" + "@babel/helper-plugin-utils" "^7.0.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" - integrity sha1-322AqdomEqEh5t3XVYvL7PBuY24= +"@babel/plugin-transform-typeof-symbol@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.2.0.tgz#117d2bcec2fbf64b4b59d1f9819894682d29f2b2" + integrity sha512-2LNhETWYxiYysBtrBTqL8+La0jIoQQnIScUJc74OYvUGRmkskNY4EzLCnjHBzdmb38wqtTaixpo1NctEcvMDZw== dependencies: - babel-plugin-syntax-jsx "^6.8.0" - babel-runtime "^6.22.0" + "@babel/helper-plugin-utils" "^7.0.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" - integrity sha1-ZqwSFT9c0tF7PBkmj0vwGX9E7NY= +"@babel/plugin-transform-unicode-regex@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.2.0.tgz#4eb8db16f972f8abb5062c161b8b115546ade08b" + integrity sha512-m48Y0lMhrbXEJnVUaYly29jRXbQ3ksxPrS1Tg8t+MHqzXhtBYAvI51euOBaoAlZLPHsieY9XPVMf80a5x0cPcA== dependencies: - babel-plugin-syntax-jsx "^6.8.0" - babel-runtime "^6.22.0" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-regex" "^7.0.0" + regexpu-core "^4.1.3" -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" - integrity sha1-hAoCjn30YN/DotKfDA2R9jduZqM= +"@babel/preset-env@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.2.0.tgz#a5030e7e4306af5a295dd5d7c78dc5464af3fee2" + integrity sha512-haGR38j5vOGVeBatrQPr3l0xHbs14505DcM57cbJy48kgMFvvHHoYEhHuRV+7vi559yyAUAVbTWzbK/B/pzJng== + dependencies: + "@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.2.0" + "@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-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.2.0" + "@babel/plugin-transform-block-scoped-functions" "^7.2.0" + "@babel/plugin-transform-block-scoping" "^7.2.0" + "@babel/plugin-transform-classes" "^7.2.0" + "@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.2.0" + "@babel/plugin-transform-modules-umd" "^7.2.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.0.0" + "@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" + +"@babel/preset-react@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.0.0.tgz#e86b4b3d99433c7b3e9e91747e2653958bc6b3c0" + integrity sha512-oayxyPS4Zj+hF6Et11BwuBkmpgT/zMxyuZgFrMeZID6Hdh3dGlk4sHCAhdBCpuCKW2ppBfl2uCCetlrUIJRY3w== + dependencies: + "@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/template@^7.1.0", "@babel/template@^7.1.2": + version "7.1.2" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.1.2.tgz#090484a574fef5a2d2d7726a674eceda5c5b5644" + integrity sha512-SY1MmplssORfFiLDcOETrW7fCLl+PavlwMh92rrGcikQaRq4iWPVH0MpwPpY3etVMx6RnDjXtr6VZYr/IbP/Ag== + dependencies: + "@babel/code-frame" "^7.0.0" + "@babel/parser" "^7.1.2" + "@babel/types" "^7.1.2" + +"@babel/traverse@^7.1.0", "@babel/traverse@^7.1.5", "@babel/traverse@^7.1.6": + version "7.1.6" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.1.6.tgz#c8db9963ab4ce5b894222435482bd8ea854b7b5c" + integrity sha512-CXedit6GpISz3sC2k2FsGCUpOhUqKdyL0lqNrImQojagnUMXf8hex4AxYFRuMkNGcvJX5QAFGzB5WJQmSv8SiQ== + dependencies: + "@babel/code-frame" "^7.0.0" + "@babel/generator" "^7.1.6" + "@babel/helper-function-name" "^7.1.0" + "@babel/helper-split-export-declaration" "^7.0.0" + "@babel/parser" "^7.1.6" + "@babel/types" "^7.1.6" + debug "^4.1.0" + globals "^11.1.0" + lodash "^4.17.10" + +"@babel/types@^7.0.0", "@babel/types@^7.1.2", "@babel/types@^7.1.6", "@babel/types@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.2.0.tgz#7941c5b2d8060e06f9601d6be7c223eef906d5d8" + integrity sha512-b4v7dyfApuKDvmPb+O488UlGuR1WbwMXFsO/cyqMrnfvRAChZKJAYeeglWTjUO1b9UghKKgepAQM5tsvBJca6A== dependencies: - babel-helper-builder-react-jsx "^6.24.1" - babel-plugin-syntax-jsx "^6.8.0" - babel-runtime "^6.22.0" + esutils "^2.0.2" + lodash "^4.17.10" + to-fast-properties "^2.0.0" + +"@webassemblyjs/ast@1.7.11": + version "1.7.11" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.7.11.tgz#b988582cafbb2b095e8b556526f30c90d057cace" + integrity sha512-ZEzy4vjvTzScC+SH8RBssQUawpaInUdMTYwYYLh54/s8TuT0gBLuyUnppKsVyZEi876VmmStKsUs28UxPgdvrA== + dependencies: + "@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@1.7.11": + version "1.7.11" + resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.7.11.tgz#a69f0af6502eb9a3c045555b1a6129d3d3f2e313" + integrity sha512-zY8dSNyYcgzNRNT666/zOoAyImshm3ycKdoLsyDw/Bwo6+/uktb7p4xyApuef1dwEBo/U/SYQzbGBvV+nru2Xg== + +"@webassemblyjs/helper-api-error@1.7.11": + version "1.7.11" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.7.11.tgz#c7b6bb8105f84039511a2b39ce494f193818a32a" + integrity sha512-7r1qXLmiglC+wPNkGuXCvkmalyEstKVwcueZRP2GNC2PAvxbLYwLLPr14rcdJaE4UtHxQKfFkuDFuv91ipqvXg== + +"@webassemblyjs/helper-buffer@1.7.11": + version "1.7.11" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.7.11.tgz#3122d48dcc6c9456ed982debe16c8f37101df39b" + integrity sha512-MynuervdylPPh3ix+mKZloTcL06P8tenNH3sx6s0qE8SLR6DdwnfgA7Hc9NSYeob2jrW5Vql6GVlsQzKQCa13w== + +"@webassemblyjs/helper-code-frame@1.7.11": + version "1.7.11" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.7.11.tgz#cf8f106e746662a0da29bdef635fcd3d1248364b" + integrity sha512-T8ESC9KMXFTXA5urJcyor5cn6qWeZ4/zLPyWeEXZ03hj/x9weSokGNkVCdnhSabKGYWxElSdgJ+sFa9G/RdHNw== + dependencies: + "@webassemblyjs/wast-printer" "1.7.11" + +"@webassemblyjs/helper-fsm@1.7.11": + version "1.7.11" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.7.11.tgz#df38882a624080d03f7503f93e3f17ac5ac01181" + integrity sha512-nsAQWNP1+8Z6tkzdYlXT0kxfa2Z1tRTARd8wYnc/e3Zv3VydVVnaeePgqUzFrpkGUyhUUxOl5ML7f1NuT+gC0A== + +"@webassemblyjs/helper-module-context@1.7.11": + version "1.7.11" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.7.11.tgz#d874d722e51e62ac202476935d649c802fa0e209" + integrity sha512-JxfD5DX8Ygq4PvXDucq0M+sbUFA7BJAv/GGl9ITovqE+idGX+J3QSzJYz+LwQmL7fC3Rs+utvWoJxDb6pmC0qg== + +"@webassemblyjs/helper-wasm-bytecode@1.7.11": + version "1.7.11" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.7.11.tgz#dd9a1e817f1c2eb105b4cf1013093cb9f3c9cb06" + integrity sha512-cMXeVS9rhoXsI9LLL4tJxBgVD/KMOKXuFqYb5oCJ/opScWpkCMEz9EJtkonaNcnLv2R3K5jIeS4TRj/drde1JQ== + +"@webassemblyjs/helper-wasm-section@1.7.11": + version "1.7.11" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.7.11.tgz#9c9ac41ecf9fbcfffc96f6d2675e2de33811e68a" + integrity sha512-8ZRY5iZbZdtNFE5UFunB8mmBEAbSI3guwbrsCl4fWdfRiAcvqQpeqd5KHhSWLL5wuxo53zcaGZDBU64qgn4I4Q== + dependencies: + "@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@1.7.11": + version "1.7.11" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.7.11.tgz#c95839eb63757a31880aaec7b6512d4191ac640b" + integrity sha512-Mmqx/cS68K1tSrvRLtaV/Lp3NZWzXtOHUW2IvDvl2sihAwJh4ACE0eL6A8FvMyDG9abes3saB6dMimLOs+HMoQ== + dependencies: + "@xtuc/ieee754" "^1.2.0" + +"@webassemblyjs/leb128@1.7.11": + version "1.7.11" + resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.7.11.tgz#d7267a1ee9c4594fd3f7e37298818ec65687db63" + integrity sha512-vuGmgZjjp3zjcerQg+JA+tGOncOnJLWVkt8Aze5eWQLwTQGNgVLcyOTqgSCxWTR4J42ijHbBxnuRaL1Rv7XMdw== + dependencies: + "@xtuc/long" "4.2.1" + +"@webassemblyjs/utf8@1.7.11": + version "1.7.11" + resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.7.11.tgz#06d7218ea9fdc94a6793aa92208160db3d26ee82" + integrity sha512-C6GFkc7aErQIAH+BMrIdVSmW+6HSe20wg57HEC1uqJP8E/xpMjXqQUxkQw07MhNDSDcGpxI9G5JSNOQCqJk4sA== + +"@webassemblyjs/wasm-edit@1.7.11": + version "1.7.11" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.7.11.tgz#8c74ca474d4f951d01dbae9bd70814ee22a82005" + integrity sha512-FUd97guNGsCZQgeTPKdgxJhBXkUbMTY6hFPf2Y4OedXd48H97J+sOY2Ltaq6WGVpIH8o/TGOVNiVz/SbpEMJGg== + dependencies: + "@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@1.7.11": + version "1.7.11" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.7.11.tgz#9bbba942f22375686a6fb759afcd7ac9c45da1a8" + integrity sha512-U/KDYp7fgAZX5KPfq4NOupK/BmhDc5Kjy2GIqstMhvvdJRcER/kUsMThpWeRP8BMn4LXaKhSTggIJPOeYHwISA== + dependencies: + "@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@1.7.11": + version "1.7.11" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.7.11.tgz#b331e8e7cef8f8e2f007d42c3a36a0580a7d6ca7" + integrity sha512-XynkOwQyiRidh0GLua7SkeHvAPXQV/RxsUeERILmAInZegApOUAIJfRuPYe2F7RcjOC9tW3Cb9juPvAC/sCqvg== + dependencies: + "@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@1.7.11": + version "1.7.11" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.7.11.tgz#6e3d20fa6a3519f6b084ef9391ad58211efb0a1a" + integrity sha512-6lmXRTrrZjYD8Ng8xRyvyXQJYUQKYSXhJqXOBLw24rdiXsHAOlvw5PhesjdcaMadU/pyPQOJ5dHreMjBxwnQKg== + dependencies: + "@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@1.7.11": + version "1.7.11" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.7.11.tgz#25bd117562ca8c002720ff8116ef9072d9ca869c" + integrity sha512-lEyVCg2np15tS+dm7+JJTNhNWq9yTZvi3qEhAIIOaofcYlUp0UR5/tVqOwa/gXYr3gjwSZqw+/lS9dscyLelbQ== + dependencies: + "@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@1.7.11": + version "1.7.11" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.7.11.tgz#c4245b6de242cb50a2cc950174fdbf65c78d7813" + integrity sha512-m5vkAsuJ32QpkdkDOUPGSltrg8Cuk3KBx4YrmAGQwCZPRdUHXxG4phIOuuycLemHFr74sWL9Wthqss4fzdzSwg== + dependencies: + "@webassemblyjs/ast" "1.7.11" + "@webassemblyjs/wast-parser" "1.7.11" + "@xtuc/long" "4.2.1" + +"@xtuc/ieee754@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" + integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== + +"@xtuc/long@4.2.1": + version "4.2.1" + resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.1.tgz#5c85d662f76fa1d34575766c5dcd6615abcd30d8" + integrity sha512-FZdkNBDqBRHKQ2MEbSC17xnPFOhZxeJ2YGSfr2BKf3sujG49Qe3bB+rGCwQfIaA7WHnGeGkSijX4FuBCdrzW/g== -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" - integrity sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8= +abbrev@1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" + integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== + +acorn-dynamic-import@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/acorn-dynamic-import/-/acorn-dynamic-import-3.0.0.tgz#901ceee4c7faaef7e07ad2a47e890675da50a278" + integrity sha512-zVWV8Z8lislJoOKKqdNMOB+s6+XV5WERty8MnKBeFgwA+19XJjJHs2RP5dzM57FftIs+jQnRToLiWazKr6sSWg== dependencies: - regenerator-transform "^0.10.0" + acorn "^5.0.0" -babel-plugin-transform-regexp-constructors@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-regexp-constructors/-/babel-plugin-transform-regexp-constructors-0.3.0.tgz#9bb2c8dd082271a5cb1b3a441a7c52e8fd07e0f5" - integrity sha512-h92YHzyl042rb0naKO8frTHntpRFwRgKkfWD8602kFHoQingjJNtbvZzvxqHncJ6XmKVyYvfrBpDOSkCTDIIxw== +acorn@^5.0.0, acorn@^5.6.2: + version "5.7.3" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.3.tgz#67aa231bf8812974b85235a96771eb6bd07ea279" + integrity sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw== -babel-plugin-transform-remove-console@^6.9.0: - version "6.9.4" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-remove-console/-/babel-plugin-transform-remove-console-6.9.4.tgz#b980360c067384e24b357a588d807d3c83527780" - integrity sha1-uYA2DAZzhOJLNXpYjYB9PINSd4A= +ajv-errors@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d" + integrity sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ== -babel-plugin-transform-remove-debugger@^6.9.0: - version "6.9.4" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-remove-debugger/-/babel-plugin-transform-remove-debugger-6.9.4.tgz#42b727631c97978e1eb2d199a7aec84a18339ef2" - integrity sha1-QrcnYxyXl44estGZp67IShgznvI= +ajv-keywords@^3.1.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.2.0.tgz#e86b819c602cf8821ad637413698f1dec021847a" + integrity sha1-6GuBnGAs+IIa1jdBNpjx3sAhhHo= -babel-plugin-transform-remove-undefined@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-remove-undefined/-/babel-plugin-transform-remove-undefined-0.3.0.tgz#03f5f0071867781e9beabbc7b77bf8095fd3f3ec" - integrity sha512-TYGQucc8iP3LJwN3kDZLEz5aa/2KuFrqpT+s8f8NnHsBU1sAgR3y8Opns0xhC+smyDYWscqFCKM1gbkWQOhhnw== +ajv@^6.1.0: + version "6.6.1" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.6.1.tgz#6360f5ed0d80f232cc2b294c362d5dc2e538dd61" + integrity sha512-ZoJjft5B+EJBjUyu9C9Hc0OZyPZSSlOF+plzouTrg6UlA8f+e/n8NIgBFG/9tppJtpPWfthHakK7juJdNDODww== dependencies: - babel-helper-evaluate-path "^0.3.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-simplify-comparison-operators@^6.9.0: - version "6.9.4" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-simplify-comparison-operators/-/babel-plugin-transform-simplify-comparison-operators-6.9.4.tgz#f62afe096cab0e1f68a2d753fdf283888471ceb9" - integrity sha1-9ir+CWyrDh9ootdT/fKDiIRxzrk= +ansi-regex@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= -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" - integrity sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g= - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" +ansi-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" + integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= -babel-plugin-transform-undefined-to-void@^6.9.0: - version "6.9.4" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-undefined-to-void/-/babel-plugin-transform-undefined-to-void-6.9.4.tgz#be241ca81404030678b748717322b89d0c8fe280" - integrity sha1-viQcqBQEAwZ4t0hxcyK4nQyP4oA= +ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" -babel-polyfill@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-polyfill/-/babel-polyfill-6.26.0.tgz#379937abc67d7895970adc621f284cd966cf2153" - integrity sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM= +anymatch@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" + integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw== dependencies: - babel-runtime "^6.26.0" - core-js "^2.5.0" - regenerator-runtime "^0.10.5" + micromatch "^3.1.4" + normalize-path "^2.1.1" -babel-preset-env@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/babel-preset-env/-/babel-preset-env-1.7.0.tgz#dea79fa4ebeb883cd35dab07e260c1c9c04df77a" - integrity sha512-9OR2afuKDneX2/q2EurSftUYM0xGu4O2D9adAhVfADDhrYDaxXV0rBbevVYoY9n6nyX1PmQW/0jtpJvUNr9CHg== - 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 "^3.2.6" - invariant "^2.2.2" - semver "^5.3.0" +aproba@^1.0.3, aproba@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" + integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== -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" - integrity sha1-5xIYiHCFrpoktb5Baa/7WZgWxJ0= +are-we-there-yet@~1.1.2: + version "1.1.5" + resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21" + integrity sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w== dependencies: - babel-plugin-transform-flow-strip-types "^6.22.0" + delegates "^1.0.0" + readable-stream "^2.0.6" -babel-preset-minify@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/babel-preset-minify/-/babel-preset-minify-0.3.0.tgz#7db64afa75f16f6e06c0aa5f25195f6f36784d77" - integrity sha512-+VV2GWEyak3eDOmzT1DDMuqHrw3VbE9nBNkx2LLVs4pH/Me32ND8DRpVDd8IRvk1xX5p75nygyRPtkMh6GIAbQ== - dependencies: - babel-plugin-minify-builtins "^0.3.0" - babel-plugin-minify-constant-folding "^0.3.0" - babel-plugin-minify-dead-code-elimination "^0.3.0" - babel-plugin-minify-flip-comparisons "^0.3.0" - babel-plugin-minify-guarded-expressions "^0.3.0" - babel-plugin-minify-infinity "^0.3.0" - babel-plugin-minify-mangle-names "^0.3.0" - babel-plugin-minify-numeric-literals "^0.3.0" - babel-plugin-minify-replace "^0.3.0" - babel-plugin-minify-simplify "^0.3.0" - babel-plugin-minify-type-constructors "^0.3.0" - babel-plugin-transform-inline-consecutive-adds "^0.3.0" - babel-plugin-transform-member-expression-literals "^6.9.0" - babel-plugin-transform-merge-sibling-variables "^6.9.0" - babel-plugin-transform-minify-booleans "^6.9.0" - babel-plugin-transform-property-literals "^6.9.0" - babel-plugin-transform-regexp-constructors "^0.3.0" - babel-plugin-transform-remove-console "^6.9.0" - babel-plugin-transform-remove-debugger "^6.9.0" - babel-plugin-transform-remove-undefined "^0.3.0" - babel-plugin-transform-simplify-comparison-operators "^6.9.0" - babel-plugin-transform-undefined-to-void "^6.9.0" - lodash.isplainobject "^4.0.6" - -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" - integrity sha1-umnfrqRfw+xjm2pOzqbhdwLJE4A= - 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" - integrity sha1-btAhFz4vy0htestFxgCahW9kcHE= - 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" - integrity sha1-llxwWGaOgrVde/4E/yM3vItWR/4= - 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" - integrity sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI= - 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" - integrity sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4= - 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" +arr-diff@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" + integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= -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" - integrity sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc= +arr-flatten@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" + integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== + +arr-union@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" + integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= + +array-unique@^0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" + integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= + +asn1.js@^4.0.0: + version "4.10.1" + resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.10.1.tgz#b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0" + integrity sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw== dependencies: - babel-runtime "^6.26.0" - esutils "^2.0.2" - lodash "^4.17.4" - to-fast-properties "^1.0.3" + bn.js "^4.0.0" + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + +assert@^1.1.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/assert/-/assert-1.4.1.tgz#99912d591836b5a6f5b345c0f07eefc08fc65d91" + integrity sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE= + dependencies: + util "0.10.3" + +assign-symbols@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" + integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= + +async-each@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" + integrity sha1-GdOGodntxufByF04iu28xW0zYC0= -babylon@^6.18.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" - integrity sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ== +atob@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" + integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== + +babel-loader@^8.0.4: + version "8.0.4" + resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.0.4.tgz#7bbf20cbe4560629e2e41534147692d3fecbdce6" + integrity sha512-fhBhNkUToJcW9nV46v8w87AJOwAJDz84c1CL57n3Stj73FANM/b9TbCUK4YhdOwEyZ+OxhYpdeZDNzSI29Firw== + dependencies: + find-cache-dir "^1.0.0" + loader-utils "^1.0.2" + mkdirp "^0.5.1" + util.promisify "^1.0.0" balanced-match@^1.0.0: version "1.0.0" @@ -996,11 +953,21 @@ base@^0.11.1: mixin-deep "^1.2.0" pascalcase "^0.1.1" +big.js@^3.1.3: + version "3.2.0" + resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.2.0.tgz#a5fc298b81b9e0dca2e458824784b65c52ba588e" + integrity sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q== + binary-extensions@^1.0.0: version "1.12.0" resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.12.0.tgz#c2d780f53d45bba8317a8902d4ceeaf3a6385b14" integrity sha512-DYWGk01lDcxeS/K9IHPGWfT8PsJmbXRtRd2Sx72Tnb8pcYZQFF1oSDb8hJtS1vhp212q1Rzi5dUf9+nq0o9UIg== +bluebird@^3.5.1: + version "3.5.3" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.3.tgz#7d01c6f9616c9a51ab0f8c549a79dfe6ec33efa7" + integrity sha512-/qKPUQlaW1OyR51WeCPBvRnAlnZFUJkCSG5HzGnuIqhgyJtF+T94lFnn33eiazjRm2LAHVy2guNnaq48X9SJuw== + 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" @@ -1014,16 +981,7 @@ brace-expansion@^1.1.7: 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" - integrity sha1-uneWLhLf+WnWt2cR6RS3N4V79qc= - dependencies: - expand-range "^1.8.1" - preserve "^0.2.0" - repeat-element "^1.1.2" - -braces@^2.3.1: +braces@^2.3.0, braces@^2.3.1: version "2.3.2" resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== @@ -1044,25 +1002,6 @@ brorand@^1.0.1: resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= -browser-pack@^6.0.1: - version "6.1.0" - resolved "https://registry.yarnpkg.com/browser-pack/-/browser-pack-6.1.0.tgz#c34ba10d0b9ce162b5af227c7131c92c2ecd5774" - integrity sha512-erYug8XoqzU3IfcU8fUgyHqyOXqIE4tUTTQ+7mqUjQlvnXkOO6OlT9c/ZoJVHYoAaqGxr09CN53G7XIsO4KtWA== - dependencies: - JSONStream "^1.0.3" - combine-source-map "~0.8.0" - defined "^1.0.0" - safe-buffer "^5.1.1" - through2 "^2.0.0" - umd "^3.0.0" - -browser-resolve@^1.11.0, browser-resolve@^1.7.0: - version "1.11.3" - resolved "https://registry.yarnpkg.com/browser-resolve/-/browser-resolve-1.11.3.tgz#9b7cbb3d0f510e4cb86bdbd796124d28b5890af6" - integrity sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ== - dependencies: - resolve "1.1.7" - browserify-aes@^1.0.0, browserify-aes@^1.0.4: version "1.2.0" resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" @@ -1115,74 +1054,21 @@ browserify-sign@^4.0.0: inherits "^2.0.1" parse-asn1 "^5.0.0" -browserify-zlib@~0.2.0: +browserify-zlib@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA== dependencies: pako "~1.0.5" -browserify@^16.2.3: - version "16.2.3" - resolved "https://registry.yarnpkg.com/browserify/-/browserify-16.2.3.tgz#7ee6e654ba4f92bce6ab3599c3485b1cc7a0ad0b" - integrity sha512-zQt/Gd1+W+IY+h/xX2NYMW4orQWhqSwyV+xsblycTtpOuB27h1fZhhNQuipJ4t79ohw4P4mMem0jp/ZkISQtjQ== - dependencies: - JSONStream "^1.0.3" - assert "^1.4.0" - browser-pack "^6.0.1" - browser-resolve "^1.11.0" - browserify-zlib "~0.2.0" - buffer "^5.0.2" - cached-path-relative "^1.0.0" - concat-stream "^1.6.0" - console-browserify "^1.1.0" - constants-browserify "~1.0.0" - crypto-browserify "^3.0.0" - defined "^1.0.0" - deps-sort "^2.0.0" - domain-browser "^1.2.0" - duplexer2 "~0.1.2" - events "^2.0.0" - glob "^7.1.0" - has "^1.0.0" - htmlescape "^1.1.0" - https-browserify "^1.0.0" - inherits "~2.0.1" - insert-module-globals "^7.0.0" - labeled-stream-splicer "^2.0.0" - mkdirp "^0.5.0" - module-deps "^6.0.0" - os-browserify "~0.3.0" - parents "^1.0.1" - path-browserify "~0.0.0" - process "~0.11.0" - punycode "^1.3.2" - querystring-es3 "~0.2.0" - read-only-stream "^2.0.0" - readable-stream "^2.0.2" - resolve "^1.1.4" - shasum "^1.0.0" - shell-quote "^1.6.1" - stream-browserify "^2.0.0" - stream-http "^2.0.0" - string_decoder "^1.1.1" - subarg "^1.0.0" - syntax-error "^1.1.1" - through2 "^2.0.0" - timers-browserify "^1.0.1" - tty-browserify "0.0.1" - url "~0.11.0" - util "~0.10.1" - vm-browserify "^1.0.0" - xtend "^4.0.0" - -browserslist@^3.2.6: - version "3.2.8" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-3.2.8.tgz#b0005361d6471f0f5952797a76fc985f1f978fc6" - integrity sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ== +browserslist@^4.3.4: + version "4.3.5" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.3.5.tgz#1a917678acc07b55606748ea1adf9846ea8920f7" + integrity sha512-z9ZhGc3d9e/sJ9dIx5NFXkKoaiQTnrvrMsN3R1fGb1tkWWNSz12UewJn9TNxGo1l7J23h0MRaPmk7jfeTZYs1w== dependencies: - caniuse-lite "^1.0.30000844" - electron-to-chromium "^1.3.47" + caniuse-lite "^1.0.30000912" + electron-to-chromium "^1.3.86" + node-releases "^1.0.5" buffer-from@^1.0.0: version "1.1.1" @@ -1194,19 +1080,40 @@ buffer-xor@^1.0.3: resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk= -buffer@^5.0.2: - version "5.2.1" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.2.1.tgz#dd57fa0f109ac59c602479044dca7b8b3d0b71d6" - integrity sha512-c+Ko0loDaFfuPWiL02ls9Xd3GO3cPVmUobQ6t3rXNUk304u6hGq+8N/kFi+QEIKhzK3uwolVhLzszmfLmMLnqg== +buffer@^4.3.0: + version "4.9.1" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.1.tgz#6d1bb601b07a4efced97094132093027c95bc298" + integrity sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg= dependencies: base64-js "^1.0.2" ieee754 "^1.1.4" + isarray "^1.0.0" 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" integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug= +cacache@^11.0.2: + version "11.3.1" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-11.3.1.tgz#d09d25f6c4aca7a6d305d141ae332613aa1d515f" + integrity sha512-2PEw4cRRDu+iQvBTTuttQifacYjLPhET+SYO/gEFMy8uhi+jlJREDAjSF5FWSdV/Aw5h18caHA7vMTw2c+wDzA== + dependencies: + bluebird "^3.5.1" + chownr "^1.0.1" + figgy-pudding "^3.1.0" + glob "^7.1.2" + graceful-fs "^4.1.11" + lru-cache "^4.1.3" + 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.0" + unique-filename "^1.1.0" + y18n "^4.0.0" + cache-base@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" @@ -1222,48 +1129,57 @@ cache-base@^1.0.1: union-value "^1.0.0" unset-value "^1.0.0" -cached-path-relative@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/cached-path-relative/-/cached-path-relative-1.0.2.tgz#a13df4196d26776220cc3356eb147a52dba2c6db" - integrity sha512-5r2GqsoEb4qMTTN9J+WzXfjov+hjxT+j3u5K+kIVNIwAd99DLCJE9pBIMP1qVeybV6JiijL385Oz0DcYxfbOIg== +camelcase@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.0.0.tgz#03295527d58bd3cd4aa75363f35b2e8d97be2f42" + integrity sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA== -caniuse-lite@^1.0.30000844: - version "1.0.30000918" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000918.tgz#6288f79da3c5c8b45e502f47ad8f3eb91f1379a9" - integrity sha512-CAZ9QXGViBvhHnmIHhsTPSWFBujDaelKnUj7wwImbyQRxmXynYqKGi3UaZTSz9MoVh+1EVxOS/DFIkrJYgR3aw== +caniuse-lite@^1.0.30000912: + version "1.0.30000921" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000921.tgz#7a607c1623444b22351d834e093aedda3c42fbe8" + integrity sha512-Bu09ciy0lMWLgpYC77I0YGuI8eFRBPPzaSOYJK1jTI64txCphYCqnWbxJYjHABYVt/TYX/p3jNjLBR87u1Bfpw== -chalk@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" - integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= +chalk@^2.0.0, chalk@^2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.1.tgz#18c49ab16a037b6eb0152cc83e3471338215b66e" + integrity sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ== 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" + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" -chokidar@^1.6.1: - version "1.7.0" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.7.0.tgz#798e689778151c8076b4b360e5edd28cda2bb468" - integrity sha1-eY5ol3gVHIB2tLNg5e3SjNortGg= +chokidar@^2.0.2: + version "2.0.4" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.0.4.tgz#356ff4e2b0e8e43e322d18a372460bbcf3accd26" + integrity sha512-z9n7yt9rOvIJrMhvDtDictKrkFHeihkNl6uWMmZlmL6tJtX9Cs+87oK+teBx+JIgzvbX3yZHT3eF8vpbDxHJXQ== dependencies: - anymatch "^1.3.0" + anymatch "^2.0.0" async-each "^1.0.0" - glob-parent "^2.0.0" + braces "^2.3.0" + glob-parent "^3.1.0" inherits "^2.0.1" is-binary-path "^1.0.0" - is-glob "^2.0.0" + is-glob "^4.0.0" + lodash.debounce "^4.0.8" + normalize-path "^2.1.1" path-is-absolute "^1.0.0" readdirp "^2.0.0" + upath "^1.0.5" optionalDependencies: - fsevents "^1.0.0" + fsevents "^1.2.2" -chownr@^1.1.1: +chownr@^1.0.1, chownr@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.1.tgz#54726b8b8fff4df053c42187e801fb4412df1494" integrity sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g== +chrome-trace-event@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.0.tgz#45a91bd2c20c9411f0963b5aaeb9a1b95e09cc48" + integrity sha512-xDbVgyfDTT2piup/h8dK/y4QZfJRSa73bw1WZ8b4XM1o7fsFubUVGYcE+1ANtOzJJELGpYoG2961z0Z6OAld9A== + dependencies: + tslib "^1.9.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" @@ -1282,6 +1198,15 @@ class-utils@^0.3.5: isobject "^3.0.0" static-extend "^0.1.1" +cliui@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-4.1.0.tgz#348422dbe82d800b3022eef4f6ac10bf2e4d1b49" + integrity sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ== + dependencies: + string-width "^2.1.1" + strip-ansi "^4.0.0" + wrap-ansi "^2.0.0" + 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" @@ -1295,20 +1220,27 @@ collection-visit@^1.0.0: map-visit "^1.0.0" object-visit "^1.0.0" -combine-source-map@^0.8.0, combine-source-map@~0.8.0: - version "0.8.0" - resolved "https://registry.yarnpkg.com/combine-source-map/-/combine-source-map-0.8.0.tgz#a58d0df042c186fcf822a8e8015f5450d2d79a8b" - integrity sha1-pY0N8ELBhvz4IqjoAV9UUNLXmos= +color-convert@^1.9.0: + version "1.9.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== dependencies: - convert-source-map "~1.1.0" - inline-source-map "~0.6.0" - lodash.memoize "~3.0.3" - source-map "~0.5.3" + color-name "1.1.3" -commander@^2.11.0: - version "2.19.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.19.0.tgz#f6198aa84e5b83c46054b94ddedbfed5ee9ff12a" - integrity sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg== +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= + +commander@~2.17.1: + version "2.17.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.17.1.tgz#bd77ab7de6de94205ceacc72f1716d29f20a77bf" + integrity sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg== + +commondir@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" + integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= component-emitter@^1.2.1: version "1.2.1" @@ -1320,7 +1252,7 @@ concat-map@0.0.1: resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= -concat-stream@^1.6.0, concat-stream@^1.6.1, concat-stream@~1.6.0: +concat-stream@^1.5.0: version "1.6.2" resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== @@ -1342,33 +1274,35 @@ console-control-strings@^1.0.0, console-control-strings@~1.1.0: resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= -constants-browserify@~1.0.0: +constants-browserify@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U= -convert-source-map@^1.5.0, convert-source-map@^1.5.1: +convert-source-map@^1.1.0: version "1.6.0" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.6.0.tgz#51b537a8c43e0f04dec1993bffcdd504e758ac20" integrity sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A== dependencies: safe-buffer "~5.1.1" -convert-source-map@~1.1.0: - version "1.1.3" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.1.3.tgz#4829c877e9fe49b3161f3bf3673888e204699860" - integrity sha1-SCnId+n+SbMWHzvzZziI4gRpmGA= +copy-concurrently@^1.0.0: + version "1.0.5" + resolved "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0" + integrity sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A== + dependencies: + 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@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= -core-js@^2.4.0, core-js@^2.5.0: - version "2.6.0" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.0.tgz#1e30793e9ee5782b307e37ffa22da0eacddd84d4" - integrity sha512-kLRC6ncVpuEW/1kwrOXYX6KQASCVtrh1gQr/UiaVgFlf9WE5Vp+lNe5+h3LuMr5PAucWnnEXwH0nQHRH/gpGtw== - 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" @@ -1405,7 +1339,18 @@ create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4: safe-buffer "^5.0.1" sha.js "^2.4.8" -crypto-browserify@^3.0.0: +cross-spawn@^6.0.0, cross-spawn@^6.0.5: + version "6.0.5" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" + integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== + dependencies: + 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@^3.11.0: version "3.12.0" resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg== @@ -1422,18 +1367,35 @@ crypto-browserify@^3.0.0: randombytes "^2.0.0" randomfill "^1.0.3" +cyclist@~0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-0.2.2.tgz#1b33792e11e914a2fd6d6ed6447464444e5fa640" + integrity sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA= + date-now@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b" integrity sha1-6vQ5/U1ISK105cx9vvIAZyueNFs= -debug@^2.1.2, debug@^2.2.0, debug@^2.3.3, debug@^2.6.8, debug@^2.6.9: +debug@^2.1.2, debug@^2.2.0, debug@^2.3.3: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== dependencies: ms "2.0.0" +debug@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.0.tgz#373687bffa678b38b1cd91f861b63850035ddc87" + integrity sha512-heNPJUJIqC+xB6ayLAMHaIrmN9HKa7aQO8MGqKpvCA+uJYVcvR6l5kgdrhRuwPFHU7P5/A1w0BjByPHwpfTDKg== + dependencies: + ms "^2.1.1" + +decamelize@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= + decode-uri-component@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" @@ -1444,6 +1406,13 @@ deep-extend@^0.6.0: resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== +define-properties@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" + integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== + dependencies: + object-keys "^1.0.12" + define-property@^0.2.5: version "0.2.5" resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" @@ -1466,26 +1435,11 @@ define-property@^2.0.2: is-descriptor "^1.0.2" isobject "^3.0.1" -defined@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693" - integrity sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM= - delegates@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= -deps-sort@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/deps-sort/-/deps-sort-2.0.0.tgz#091724902e84658260eb910748cccd1af6e21fb5" - integrity sha1-CRckkC6EZYJg65EHSMzNGvbiH7U= - dependencies: - JSONStream "^1.0.3" - shasum "^1.0.0" - subarg "^1.0.0" - through2 "^2.0.0" - des.js@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.0.tgz#c074d2e2aa6a8a9a07dbd61f9a15c2cd83ec8ecc" @@ -1494,27 +1448,11 @@ des.js@^1.0.0: 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" - integrity sha1-920GQ1LN9Docts5hnE7jqUdd4gg= - dependencies: - repeating "^2.0.0" - detect-libc@^1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups= -detective@^5.0.2: - version "5.1.0" - resolved "https://registry.yarnpkg.com/detective/-/detective-5.1.0.tgz#7a20d89236d7b331ccea65832e7123b5551bb7cb" - integrity sha512-TFHMqfOvxlgrfVzTEkNBSh9SvSNX/HfF4OFI2QFGCyPm02EsyILqnUeb5P6q7JZ3SFNTBL5t2sePRgrN4epUWQ== - dependencies: - acorn-node "^1.3.0" - defined "^1.0.0" - minimist "^1.1.1" - diffie-hellman@^5.0.0: version "5.0.3" resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" @@ -1524,22 +1462,25 @@ diffie-hellman@^5.0.0: miller-rabin "^4.0.0" randombytes "^2.0.0" -domain-browser@^1.2.0: +domain-browser@^1.1.1: version "1.2.0" resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA== -duplexer2@^0.1.2, duplexer2@~0.1.0, duplexer2@~0.1.2: - version "0.1.4" - resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.1.4.tgz#8b12dab878c0d69e3e7891051662a32fc6bddcc1" - integrity sha1-ixLauHjA1p4+eJEFFmKjL8a93ME= +duplexify@^3.4.2, duplexify@^3.6.0: + version "3.6.1" + resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.6.1.tgz#b1a7a29c4abfd639585efaecce80d666b1e34125" + integrity sha512-vM58DwdnKmty+FSPzT14K9JXb90H+j5emaR4KYbr2KTIz00WHGbWOe5ghQTx233ZCLZtrGDALzKwcjEtSt35mA== dependencies: - readable-stream "^2.0.2" + end-of-stream "^1.0.0" + inherits "^2.0.1" + readable-stream "^2.0.0" + stream-shift "^1.0.0" -electron-to-chromium@^1.3.47: - version "1.3.90" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.90.tgz#b4c51b8303beff18f2b74817402bf4898e09558a" - integrity sha512-IjJZKRhFbWSOX1w0sdIXgp4CMRguu6UYcTckyFF/Gjtemsu/25eZ+RXwFlV+UWcIueHyQA1UnRJxocTpH5NdGA== +electron-to-chromium@^1.3.86: + version "1.3.91" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.91.tgz#d74437a753b122aa6eca7c722055004d3627635d" + integrity sha512-wOWwM4vQpmb97VNkExnwE5e/sUMUb7NXurlEnhE89JOarUp6FOOMKjtTGgj9bmqskZkeRA7u+p0IztJ/y2OP5Q== elliptic@^6.0.0: version "6.4.1" @@ -1554,20 +1495,88 @@ elliptic@^6.0.0: minimalistic-assert "^1.0.0" minimalistic-crypto-utils "^1.0.0" -escape-string-regexp@^1.0.2: +emojis-list@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" + integrity sha1-TapNnbAPmBmIDHn6RXrlsJof04k= + +end-of-stream@^1.0.0, end-of-stream@^1.1.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.1.tgz#ed29634d19baba463b6ce6b80a37213eab71ec43" + integrity sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q== + dependencies: + once "^1.4.0" + +enhanced-resolve@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz#41c7e0bfdfe74ac1ffe1e57ad6a5c6c9f3742a7f" + integrity sha512-F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng== + dependencies: + graceful-fs "^4.1.2" + memory-fs "^0.4.0" + tapable "^1.0.0" + +errno@^0.1.3, errno@~0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618" + integrity sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg== + dependencies: + prr "~1.0.1" + +es-abstract@^1.5.1: + version "1.12.0" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.12.0.tgz#9dbbdd27c6856f0001421ca18782d786bf8a6165" + integrity sha512-C8Fx/0jFmV5IPoMOFPA9P9G5NtqW+4cOPit3MIuvR2t7Ag2K15EJTpxnHAYTzL+aYQJIESYeXZmDBfOBE1HcpA== + dependencies: + es-to-primitive "^1.1.1" + function-bind "^1.1.1" + has "^1.0.1" + is-callable "^1.1.3" + is-regex "^1.0.4" + +es-to-primitive@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.0.tgz#edf72478033456e8dda8ef09e00ad9650707f377" + integrity sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg== + dependencies: + is-callable "^1.1.4" + is-date-object "^1.0.1" + is-symbol "^1.0.2" + +escape-string-regexp@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= -esutils@^2.0.2: +eslint-scope@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.0.tgz#50bf3071e9338bcdc43331794a0cb533f0136172" + integrity sha512-1G6UTDi7Jc1ELFwnR58HV4fK9OQK4S6N985f166xqXxpjU6plxFISJa2Ba9KCQuFa8RCnj/lSFJbHo7UFDBnUA== + dependencies: + esrecurse "^4.1.0" + estraverse "^4.1.1" + +esrecurse@^4.1.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf" + integrity sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ== + dependencies: + estraverse "^4.1.0" + +estraverse@^4.1.0, estraverse@^4.1.1: + version "4.2.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" + integrity sha1-De4/7TH81GlhjOc0IJn8GvoL2xM= + +esutils@^2.0.0, esutils@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" integrity sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs= -events@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/events/-/events-2.1.0.tgz#2a9a1e18e6106e0e812aa9ebd4a819b3c29c0ba5" - integrity sha512-3Zmiobend8P9DjmKAty0Era4jV8oJ0yGYe2nJJAxgymF9+N8F2m0hhZiMoWtcfepExzNKZumFU3ksdQbInGWCg== +events@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924" + integrity sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ= evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: version "1.0.3" @@ -1577,12 +1586,18 @@ evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: md5.js "^1.3.4" safe-buffer "^5.1.1" -expand-brackets@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" - integrity sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s= +execa@^0.10.0: + version "0.10.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-0.10.0.tgz#ff456a8f53f90f8eccc71a96d11bdfc7f082cb50" + integrity sha512-7XOMnz8Ynx1gGo/3hyV9loYNPWM94jG3+3T3Y8tsfSstFmETmENCMU/A/zj8Lyaj1lkgEepKepvd6240tBRvlw== dependencies: - is-posix-bracket "^0.1.0" + cross-spawn "^6.0.0" + 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@^2.1.4: version "2.1.4" @@ -1597,13 +1612,6 @@ expand-brackets@^2.1.4: snapdragon "^0.8.1" to-regex "^3.0.1" -expand-range@^1.8.1: - version "1.8.2" - resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337" - integrity sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc= - dependencies: - fill-range "^2.1.0" - extend-shallow@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" @@ -1619,13 +1627,6 @@ extend-shallow@^3.0.0, extend-shallow@^3.0.2: assign-symbols "^1.0.0" is-extendable "^1.0.1" -extglob@^0.3.1: - version "0.3.2" - resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1" - integrity sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE= - dependencies: - is-extglob "^1.0.0" - extglob@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" @@ -1640,21 +1641,20 @@ extglob@^2.0.4: snapdragon "^0.8.1" to-regex "^3.0.1" -filename-regex@^2.0.0: +fast-deep-equal@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26" - integrity sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY= + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49" + integrity sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk= -fill-range@^2.1.0: - version "2.2.4" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.4.tgz#eb1e773abb056dcd8df2bfdf6af59b8b3a936565" - integrity sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q== - dependencies: - is-number "^2.1.0" - isobject "^2.0.0" - randomatic "^3.0.0" - repeat-element "^1.1.2" - repeat-string "^1.5.2" +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" + integrity sha1-1RQsDK7msRifh9OnYREGT4bIu/I= + +figgy-pudding@^3.1.0, figgy-pudding@^3.5.1: + version "3.5.1" + resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.1.tgz#862470112901c727a0e495a80744bd5baa1d6790" + integrity sha512-vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w== fill-range@^4.0.0: version "4.0.0" @@ -1666,18 +1666,51 @@ fill-range@^4.0.0: repeat-string "^1.6.1" to-regex-range "^2.1.0" -for-in@^1.0.1, for-in@^1.0.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" + integrity sha1-kojj6ePMN0hxfTnq3hfPcfww7m8= + dependencies: + commondir "^1.0.1" + make-dir "^1.0.0" + pkg-dir "^2.0.0" + +find-cache-dir@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.0.0.tgz#4c1faed59f45184530fb9d7fa123a4d04a98472d" + integrity sha512-LDUY6V1Xs5eFskUVYtIwatojt6+9xC9Chnlk/jYOOvn3FAFfSaWddxahDGyNHh0b2dMXa6YW2m0tk8TdVaXHlA== + dependencies: + commondir "^1.0.1" + make-dir "^1.0.0" + pkg-dir "^3.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" + integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c= + dependencies: + locate-path "^2.0.0" + +find-up@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" + integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== + dependencies: + locate-path "^3.0.0" + +flush-write-stream@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.0.3.tgz#c5d586ef38af6097650b49bc41b55fabb19f35bd" + integrity sha512-calZMC10u0FMUqoiunI2AiGIIUtUIvifNwkHhNupZH4cbNnW1Itkoh/Nf5HFYmDrwWPjrUxpkZT0KhuCq0jmGw== + dependencies: + inherits "^2.0.1" + readable-stream "^2.0.4" + +for-in@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= -for-own@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce" - integrity sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4= - dependencies: - for-in "^1.0.1" - fragment-cache@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" @@ -1685,6 +1718,14 @@ fragment-cache@^0.2.1: dependencies: map-cache "^0.2.2" +from2@^2.1.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" + integrity sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8= + dependencies: + inherits "^2.0.1" + readable-stream "^2.0.0" + fs-minipass@^1.2.5: version "1.2.5" resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.5.tgz#06c277218454ec288df77ada54a03b8702aacb9d" @@ -1692,17 +1733,22 @@ fs-minipass@^1.2.5: dependencies: minipass "^2.2.1" -fs-readdir-recursive@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz#e32fc030a2ccee44a6b5371308da54be0b397d27" - integrity sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA== +fs-write-stream-atomic@^1.0.8: + version "1.0.10" + resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9" + integrity sha1-tH31NJPvkR33VzHnCp3tAYnbQMk= + dependencies: + graceful-fs "^4.1.2" + iferr "^0.1.5" + imurmurhash "^0.1.4" + readable-stream "1 || 2" fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= -fsevents@^1.0.0: +fsevents@^1.2.2: version "1.2.4" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.4.tgz#f41dcb1af2582af3692da36fc55cbd8e1041c426" integrity sha512-z8H8/diyk76B7q5wg+Ud0+CqzcAF3mBBI/bA5ne5zrRUUIvNkJY//D3BqyH571KuAC4Nr7Rw7CjWX4r0y9DvNg== @@ -1729,32 +1775,30 @@ gauge@~2.7.3: strip-ansi "^3.0.1" wide-align "^1.1.0" -get-assigned-identifiers@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/get-assigned-identifiers/-/get-assigned-identifiers-1.2.0.tgz#6dbf411de648cbaf8d9169ebb0d2d576191e2ff1" - integrity sha512-mBBwmeGTrxEMO4pMaaf/uUEFHnYtwr8FTe8Y/mer4rcV/bye0qGm6pw1bGZFGStxC5O76c5ZAVBGnqHmOaJpdQ== +get-caller-file@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a" + integrity sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w== + +get-stream@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" + integrity sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ= get-value@^2.0.3, get-value@^2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= -glob-base@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" - integrity sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q= - 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" - integrity sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg= +glob-parent@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" + integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4= dependencies: - is-glob "^2.0.0" + is-glob "^3.1.0" + path-dirname "^1.0.0" -glob@^7.0.5, glob@^7.1.0, glob@^7.1.2: +glob@^7.0.5, glob@^7.1.2: version "7.1.3" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.3.tgz#3960832d3f1574108342dafd3a67b332c0969df1" integrity sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ== @@ -1766,22 +1810,30 @@ glob@^7.0.5, glob@^7.1.0, glob@^7.1.2: 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" - integrity sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ== +global-modules-path@^2.3.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/global-modules-path/-/global-modules-path-2.3.1.tgz#e541f4c800a1a8514a990477b267ac67525b9931" + integrity sha512-y+shkf4InI7mPRHSo2b/k6ix6+NLDtyccYv86whhxrSGX9wjPX1VMITmrDbE1eh7zkzhiWtW2sHklJYoQ62Cxg== -graceful-fs@^4.1.11, graceful-fs@^4.1.4: +globals@^11.1.0: + version "11.9.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-11.9.0.tgz#bde236808e987f290768a93d065060d78e6ab249" + integrity sha512-5cJVtyXWH8PiJPVLZzzoIizXx944O4OmRro5MWKx5fT4MgcN7OfaMutPeaTdJCCURwbWdhhcCWcKIffPnmTzBg== + +graceful-fs@^4.1.11, graceful-fs@^4.1.2: version "4.1.15" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.15.tgz#ffb703e1066e8a0eeaa4c8b80ba9253eeefbfb00" integrity sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA== -has-ansi@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" - integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE= - dependencies: - ansi-regex "^2.0.0" +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= + +has-symbols@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.0.tgz#ba1a8f1af2a0fc39650f5c850367704122063b44" + integrity sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q= has-unicode@^2.0.0: version "2.0.1" @@ -1819,7 +1871,7 @@ has-values@^1.0.0: is-number "^3.0.0" kind-of "^4.0.0" -has@^1.0.0: +has@^1.0.1: version "1.0.3" resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== @@ -1851,19 +1903,6 @@ hmac-drbg@^1.0.0: minimalistic-assert "^1.0.0" minimalistic-crypto-utils "^1.0.1" -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" - integrity sha1-42w/LSyufXRqhX440Y1fMqeILbg= - dependencies: - os-homedir "^1.0.0" - os-tmpdir "^1.0.1" - -htmlescape@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/htmlescape/-/htmlescape-1.1.1.tgz#3a03edc2214bca3b66424a3e7959349509cb0351" - integrity sha1-OgPtwiFLyjtmQko+eVk0lQnLA1E= - https-browserify@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" @@ -1881,6 +1920,11 @@ ieee754@^1.1.4: resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.12.tgz#50bf24e5b9c8bb98af4964c941cdb0918da7b60b" integrity sha512-GguP+DRY+pJ3soyIiGPTvdiVXjZ+DbXOxGpXn3eMvNW4x4irjqXm4wHKscC+TfxSJ0yw/S1F24tqdMNsMZTiLA== +iferr@^0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" + integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE= + ignore-walk@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.1.tgz#a83e62e7d272ac0e3b551aaa82831a19b69f82f8" @@ -1888,6 +1932,24 @@ ignore-walk@^3.0.1: dependencies: minimatch "^3.0.4" +import-local@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/import-local/-/import-local-2.0.0.tgz#55070be38a5993cf18ef6db7e961f5bee5c5a09d" + integrity sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ== + dependencies: + pkg-dir "^3.0.0" + resolve-cwd "^2.0.0" + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= + +indexof@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" + integrity sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10= + inflight@^1.0.4: version "1.0.6" resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" @@ -1911,28 +1973,10 @@ ini@~1.3.0: resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw== -inline-source-map@~0.6.0: - version "0.6.2" - resolved "https://registry.yarnpkg.com/inline-source-map/-/inline-source-map-0.6.2.tgz#f9393471c18a79d1724f863fa38b586370ade2a5" - integrity sha1-+Tk0ccGKedFyT4Y/o4tYY3Ct4qU= - dependencies: - source-map "~0.5.3" - -insert-module-globals@^7.0.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/insert-module-globals/-/insert-module-globals-7.2.0.tgz#ec87e5b42728479e327bd5c5c71611ddfb4752ba" - integrity sha512-VE6NlW+WGn2/AeOMd496AHFYmE7eLKkUY6Ty31k4og5vmA3Fjuwe9v6ifH6Xx/Hz27QvdoMoviw1/pqWRB09Sw== - dependencies: - JSONStream "^1.0.3" - acorn-node "^1.5.2" - combine-source-map "^0.8.0" - concat-stream "^1.6.1" - is-buffer "^1.1.0" - path-is-absolute "^1.0.1" - process "~0.11.0" - through2 "^2.0.0" - undeclared-identifiers "^1.1.2" - xtend "^4.0.0" +interpret@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.1.0.tgz#7ed1b1410c6a0e0f78cf95d3b8440c63f78b8614" + integrity sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ= invariant@^2.2.2: version "2.2.4" @@ -1941,6 +1985,11 @@ invariant@^2.2.2: dependencies: loose-envify "^1.0.0" +invert-kv@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-2.0.0.tgz#7393f5afa59ec9ff5f67a27620d11c226e3eec02" + integrity sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA== + is-accessor-descriptor@^0.1.6: version "0.1.6" resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" @@ -1962,11 +2011,16 @@ is-binary-path@^1.0.0: dependencies: binary-extensions "^1.0.0" -is-buffer@^1.1.0, is-buffer@^1.1.5: +is-buffer@^1.1.5: version "1.1.6" resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== +is-callable@^1.1.3, is-callable@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75" + integrity sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA== + is-data-descriptor@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" @@ -1981,6 +2035,11 @@ is-data-descriptor@^1.0.0: dependencies: kind-of "^6.0.0" +is-date-object@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16" + integrity sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY= + is-descriptor@^0.1.0: version "0.1.6" resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" @@ -1999,18 +2058,6 @@ is-descriptor@^1.0.0, is-descriptor@^1.0.2: is-data-descriptor "^1.0.0" kind-of "^6.0.2" -is-dotfile@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1" - integrity sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE= - -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" - integrity sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ= - dependencies: - is-primitive "^2.0.0" - is-extendable@^0.1.0, is-extendable@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" @@ -2023,17 +2070,10 @@ is-extendable@^1.0.1: dependencies: is-plain-object "^2.0.4" -is-extglob@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" - integrity sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA= - -is-finite@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa" - integrity sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko= - dependencies: - number-is-nan "^1.0.0" +is-extglob@^2.1.0, is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= is-fullwidth-code-point@^1.0.0: version "1.0.0" @@ -2047,19 +2087,19 @@ is-fullwidth-code-point@^2.0.0: resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= -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" - integrity sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM= +is-glob@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" + integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo= dependencies: - is-extglob "^1.0.0" + is-extglob "^2.1.0" -is-number@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" - integrity sha1-Afy7s5NGOlSPL0ZszhbezknbkI8= +is-glob@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.0.tgz#9521c76845cc2610a85203ddf080a958c2ffabc0" + integrity sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A= dependencies: - kind-of "^3.0.2" + is-extglob "^2.1.1" is-number@^3.0.0: version "3.0.0" @@ -2068,11 +2108,6 @@ is-number@^3.0.0: dependencies: kind-of "^3.0.2" -is-number@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-4.0.0.tgz#0026e37f5454d73e356dfe6564699867c6a7f0ff" - integrity sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ== - is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" @@ -2080,30 +2115,39 @@ is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4: dependencies: isobject "^3.0.1" -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" - integrity sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q= +is-regex@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491" + integrity sha1-VRdIm1RwkbCTDglWVM7SXul+lJE= + dependencies: + has "^1.0.1" -is-primitive@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" - integrity sha1-IHurkWOEmcB7Kt8kCkGochADRXU= +is-stream@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" + integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= + +is-symbol@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.2.tgz#a055f6ae57192caee329e7a860118b497a950f38" + integrity sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw== + dependencies: + has-symbols "^1.0.0" is-windows@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== -isarray@1.0.0, isarray@~1.0.0: +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" integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= -isarray@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.4.tgz#38e7bcbb0f3ba1b7933c86ba1894ddfc3781bbb7" - integrity sha512-GMxXOiUirWg1xTKRipM0Ek07rX+ubx4nNVElTJdNLYmNO/2YrDkgJGw9CljXn+r4EWiDQg/8lsRdHyg2PJuUaA== +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= isobject@^2.0.0: version "2.1.0" @@ -2117,47 +2161,47 @@ isobject@^3.0.0, isobject@^3.0.1: resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= -"js-tokens@^3.0.0 || ^4.0.0": +js-levenshtein@^1.1.3: + version "1.1.4" + resolved "https://registry.yarnpkg.com/js-levenshtein/-/js-levenshtein-1.1.4.tgz#3a56e3cbf589ca0081eb22cd9ba0b1290a16d26e" + integrity sha512-PxfGzSs0ztShKrUYPIn5r0MtyAhYcCwmndozzpz8YObbPnD1jFxzlBGbRnX2mIu6Z13xN6+PTu05TQFnZFlzow== + +"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== -js-tokens@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" - integrity sha1-mGbfOVECEw449/mWvOtlRDIJwls= - -jsesc@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" - integrity sha1-RsP+yMGJKxKwgz25vHYiF226s0s= +jsesc@^2.5.1: + version "2.5.2" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" + integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== jsesc@~0.5.0: version "0.5.0" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= -json-stable-stringify@~0.0.0: - version "0.0.1" - resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-0.0.1.tgz#611c23e814db375527df851193db59dd2af27f45" - integrity sha1-YRwj6BTbN1Un34URk9tZ3Sryf0U= - dependencies: - jsonify "~0.0.0" +json-parse-better-errors@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" + integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== -json5@^0.5.1: +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + +json5@^0.5.0: version "0.5.1" resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" integrity sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE= -jsonify@~0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" - integrity sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM= - -jsonparse@^1.2.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" - integrity sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA= +json5@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.0.tgz#e7a0c62c48285c628d20a10b85c89bb807c32850" + integrity sha512-8Mh9h6xViijj36g7Dxi+Y4S6hNGV96vcJZr/SrlHh1LR/pEn/8j/+qIBbs44YKl69Lrfctp4QD+AdWLTMqEZAQ== + dependencies: + minimist "^1.2.0" kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: version "3.2.2" @@ -2183,31 +2227,49 @@ kind-of@^6.0.0, kind-of@^6.0.2: resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051" integrity sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA== -labeled-stream-splicer@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/labeled-stream-splicer/-/labeled-stream-splicer-2.0.1.tgz#9cffa32fd99e1612fd1d86a8db962416d5292926" - integrity sha512-MC94mHZRvJ3LfykJlTUipBqenZz1pacOZEMhhQ8dMGcDHs0SBE5GbsavUXV7YtP3icBW17W0Zy1I0lfASmo9Pg== +lcid@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/lcid/-/lcid-2.0.0.tgz#6ef5d2df60e52f82eb228a4c373e8d1f397253cf" + integrity sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA== dependencies: - inherits "^2.0.1" - isarray "^2.0.4" - stream-splicer "^2.0.0" + invert-kv "^2.0.0" -lodash.isplainobject@^4.0.6: - version "4.0.6" - resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" - integrity sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs= +loader-runner@^2.3.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.3.1.tgz#026f12fe7c3115992896ac02ba022ba92971b979" + integrity sha512-By6ZFY7ETWOc9RFaAIb23IjJVcM4dvJC/N57nmdz9RSkMXvAXGI7SyVlAw3v8vjtDRlqThgVDVmTnr9fqMlxkw== -lodash.memoize@~3.0.3: - version "3.0.4" - resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-3.0.4.tgz#2dcbd2c287cbc0a55cc42328bd0c736150d53e3f" - integrity sha1-LcvSwofLwKVcxCMovQxzYVDVPj8= +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" + integrity sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0= + 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" + integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= + dependencies: + p-locate "^2.0.0" + path-exists "^3.0.0" + +locate-path@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" + integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== + dependencies: + p-locate "^3.0.0" + path-exists "^3.0.0" -lodash.some@^4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/lodash.some/-/lodash.some-4.6.0.tgz#1bb9f314ef6b8baded13b549169b2a945eb68e4d" - integrity sha1-G7nzFO9ri63tE7VJFpsqlF62jk0= +lodash.debounce@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" + integrity sha1-gteb/zCmfEAF/9XiUVMArZyk168= -lodash@^4.17.4: +lodash@^4.17.10: version "4.17.11" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d" integrity sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg== @@ -2219,6 +2281,28 @@ loose-envify@^1.0.0, loose-envify@^1.3.1: dependencies: js-tokens "^3.0.0 || ^4.0.0" +lru-cache@^4.1.3: + version "4.1.5" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" + integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== + dependencies: + pseudomap "^1.0.2" + yallist "^2.1.2" + +make-dir@^1.0.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c" + integrity sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ== + dependencies: + pify "^3.0.0" + +map-age-cleaner@^0.1.1: + version "0.1.3" + resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a" + integrity sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w== + dependencies: + p-defer "^1.0.0" + map-cache@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" @@ -2231,11 +2315,6 @@ map-visit@^1.0.0: dependencies: object-visit "^1.0.0" -math-random@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/math-random/-/math-random-1.0.1.tgz#8b3aac588b8a66e4975e3cdea67f7bb329601fac" - integrity sha1-izqsWIuKZuSXXjzepn97sylgH6w= - md5.js@^1.3.4: version "1.3.5" resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" @@ -2245,26 +2324,24 @@ md5.js@^1.3.4: inherits "^2.0.1" safe-buffer "^5.1.2" -micromatch@^2.1.5: - version "2.3.11" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" - integrity sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU= - 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" +mem@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/mem/-/mem-4.0.0.tgz#6437690d9471678f6cc83659c00cbafcd6b0cdaf" + integrity sha512-WQxG/5xYc3tMbYLXoXPm81ET2WDULiU5FxbuIoNbJqLOOI8zehXFdZuiUEgfdrU2mVB1pxBZUGlYORSrpuJreA== + dependencies: + map-age-cleaner "^0.1.1" + mimic-fn "^1.0.0" + p-is-promise "^1.1.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" + integrity sha1-OpoguEYlI+RHz7x+i7gO1me/xVI= + dependencies: + errno "^0.1.3" + readable-stream "^2.0.1" -micromatch@^3.1.10: +micromatch@^3.1.10, micromatch@^3.1.4, micromatch@^3.1.8: version "3.1.10" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== @@ -2291,6 +2368,11 @@ miller-rabin@^4.0.0: bn.js "^4.0.0" brorand "^1.0.1" +mimic-fn@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" + integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ== + minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" @@ -2313,7 +2395,7 @@ minimist@0.0.8: resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0= -minimist@^1.1.0, minimist@^1.1.1, minimist@^1.2.0: +minimist@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ= @@ -2333,6 +2415,22 @@ minizlib@^1.1.1: dependencies: minipass "^2.2.1" +mississippi@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022" + integrity sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA== + dependencies: + 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" + mixin-deep@^1.2.0: version "1.3.1" resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.1.tgz#a49e7268dce1a0d9698e45326c5626df3543d0fe" @@ -2341,39 +2439,35 @@ mixin-deep@^1.2.0: for-in "^1.0.2" is-extendable "^1.0.1" -mkdirp@^0.5.0, mkdirp@^0.5.1: +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" integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM= dependencies: minimist "0.0.8" -module-deps@^6.0.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/module-deps/-/module-deps-6.2.0.tgz#d41a2e790245ce319171e4e7c4d8c73993ba3cd5" - integrity sha512-hKPmO06so6bL/ZvqVNVqdTVO8UAYsi3tQWlCa+z9KuWhoN4KDQtb5hcqQQv58qYiDE21wIvnttZEPiDgEbpwbA== - dependencies: - JSONStream "^1.0.3" - browser-resolve "^1.7.0" - cached-path-relative "^1.0.0" - concat-stream "~1.6.0" - defined "^1.0.0" - detective "^5.0.2" - duplexer2 "^0.1.2" - inherits "^2.0.1" - parents "^1.0.0" - readable-stream "^2.0.2" - resolve "^1.4.0" - stream-combiner2 "^1.1.1" - subarg "^1.0.0" - through2 "^2.0.0" - xtend "^4.0.0" +move-concurrently@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92" + integrity sha1-viwAX9oy4LKa8fBdfEszIUxwH5I= + dependencies: + 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@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= +ms@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" + integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== + nan@^2.9.2: version "2.11.1" resolved "https://registry.yarnpkg.com/nan/-/nan-2.11.1.tgz#90e22bccb8ca57ea4cd37cc83d3819b52eea6766" @@ -2405,6 +2499,45 @@ needle@^2.2.1: iconv-lite "^0.4.4" sax "^1.2.4" +neo-async@^2.5.0: + version "2.6.0" + resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.0.tgz#b9d15e4d71c6762908654b5183ed38b753340835" + integrity sha512-MFh0d/Wa7vkKO3Y3LlacqAEeHK0mckVqzDieUKTT+KGxi+zIpeVsFxymkIiRpbpDziHc290Xr9A1O4Om7otoRA== + +nice-try@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" + integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== + +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" + integrity sha512-5AzFzdoIMb89hBGMZglEegffzgRg+ZFoUmisQ8HI4j1KDdpx13J0taNp2y9xPbur6W61gepGDDotGBVQ7mfUCg== + 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.10.0: version "0.10.3" resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.10.3.tgz#3070040716afdc778747b61b6887bf78880b80fc" @@ -2421,6 +2554,13 @@ node-pre-gyp@^0.10.0: semver "^5.3.0" tar "^4" +node-releases@^1.0.5: + version "1.1.1" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.1.tgz#8fff8aea1cfcad1fb4205f805149054fbf73cafd" + integrity sha512-2UXrBr6gvaebo5TNF84C66qyJJ6r0kxBObgZIDX3D3/mt1ADKiHux3NJPWisq0wxvJJdkjECH+9IIKYViKj71Q== + dependencies: + semver "^5.3.0" + nopt@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" @@ -2429,7 +2569,7 @@ nopt@^4.0.1: abbrev "1" osenv "^0.1.4" -normalize-path@^2.0.0, normalize-path@^2.0.1: +normalize-path@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= @@ -2449,6 +2589,13 @@ npm-packlist@^1.1.6: ignore-walk "^3.0.1" npm-bundled "^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" + integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= + 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" @@ -2478,6 +2625,11 @@ object-copy@^0.1.0: define-property "^0.2.5" kind-of "^3.0.3" +object-keys@^1.0.12: + version "1.0.12" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.12.tgz#09c53855377575310cca62f55bb334abff7b3ed2" + integrity sha512-FTMyFUm2wBcGHnH2eXmz7tC6IwlqQZ6mVZ+6dm6vZ4IQIHjs6FdNsQBuKGPuUUUY6NfJw2PshC08Tn6LzLDOag== + object-visit@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" @@ -2485,13 +2637,13 @@ object-visit@^1.0.0: dependencies: isobject "^3.0.0" -object.omit@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" - integrity sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo= +object.getownpropertydescriptors@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz#8758c846f5b407adab0f236e0986f14b051caa16" + integrity sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY= dependencies: - for-own "^0.1.4" - is-extendable "^0.1.1" + define-properties "^1.1.2" + es-abstract "^1.5.1" object.pick@^1.3.0: version "1.3.0" @@ -2500,14 +2652,14 @@ object.pick@^1.3.0: dependencies: isobject "^3.0.1" -once@^1.3.0: +once@^1.3.0, once@^1.3.1, once@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= dependencies: wrappy "1" -os-browserify@~0.3.0: +os-browserify@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc= @@ -2517,7 +2669,16 @@ os-homedir@^1.0.0: resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= -os-tmpdir@^1.0.0, os-tmpdir@^1.0.1: +os-locale@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-3.0.1.tgz#3b014fbf01d87f60a1e5348d80fe870dc82c4620" + integrity sha512-7g5e7dmXPtzcP4bgsZ8ixDVqA7oWYuEz4lOSujeWyliPai4gfVDiFIcwBg3aGCPnmSGfzOKTK3ccPn0CKv3DBw== + dependencies: + execa "^0.10.0" + lcid "^2.0.0" + mem "^4.0.0" + +os-tmpdir@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= @@ -2530,26 +2691,72 @@ osenv@^0.1.4: os-homedir "^1.0.0" os-tmpdir "^1.0.0" -output-file-sync@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/output-file-sync/-/output-file-sync-1.1.2.tgz#d0a33eefe61a205facb90092e826598d5245ce76" - integrity sha1-0KM+7+YaIF+suQCS6CZZjVJFznY= +p-defer@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c" + integrity sha1-n26xgvbJqozXQwBKfU+WsZaw+ww= + +p-finally@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" + integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= + +p-is-promise@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-1.1.0.tgz#9c9456989e9f6588017b0434d56097675c3da05e" + integrity sha1-nJRWmJ6fZYgBewQ01WCXZ1w9oF4= + +p-limit@^1.1.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" + integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== dependencies: - graceful-fs "^4.1.4" - mkdirp "^0.5.1" - object-assign "^4.1.0" + p-try "^1.0.0" + +p-limit@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.0.0.tgz#e624ed54ee8c460a778b3c9f3670496ff8a57aec" + integrity sha512-fl5s52lI5ahKCernzzIyAP0QAZbGIovtVHGwpcu1Jr/EpzLVDI2myISHwGqK7m8uQFugVWSrbxH7XnhGtvEc+A== + dependencies: + p-try "^2.0.0" + +p-locate@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" + integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= + dependencies: + p-limit "^1.1.0" + +p-locate@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" + integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== + dependencies: + p-limit "^2.0.0" + +p-try@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" + integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= + +p-try@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.0.0.tgz#85080bb87c64688fa47996fe8f7dfbe8211760b1" + integrity sha512-hMp0onDKIajHfIkdRk3P4CdCmErkYAxxDtP3Wx/4nZ3aGlau2VKh3mZpcuFkH27WQkL/3WBCPOktzA9ZOAnMQQ== pako@~1.0.5: version "1.0.7" resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.7.tgz#2473439021b57f1516c82f58be7275ad8ef1bb27" integrity sha512-3HNK5tW4x8o5mO8RuHZp3Ydw9icZXx0RANAOMzlMzx7LVXhMJ4mo3MOBpzyd7r/+RUu8BmndP47LXT+vzjtWcQ== -parents@^1.0.0, parents@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/parents/-/parents-1.0.1.tgz#fedd4d2bf193a77745fe71e371d73c3307d9c751" - integrity sha1-/t1NK/GTp3dF/nHjcdc8MwfZx1E= +parallel-transform@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.1.0.tgz#d410f065b05da23081fcd10f28854c29bda33b06" + integrity sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY= dependencies: - path-platform "~0.11.15" + cyclist "~0.2.2" + inherits "^2.0.3" + readable-stream "^2.1.5" parse-asn1@^5.0.0: version "5.1.1" @@ -2562,41 +2769,41 @@ parse-asn1@^5.0.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" - integrity sha1-ssN2z7EfNVE7rdFz7wu246OIORw= - dependencies: - glob-base "^0.3.0" - is-dotfile "^1.0.0" - is-extglob "^1.0.0" - is-glob "^2.0.0" - pascalcase@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= -path-browserify@~0.0.0: - version "0.0.1" - resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.1.tgz#e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a" - integrity sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ== +path-browserify@0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.0.tgz#a0b870729aae214005b7d5032ec2cbbb0fb4451a" + integrity sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo= + +path-dirname@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" + integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA= -path-is-absolute@^1.0.0, path-is-absolute@^1.0.1: +path-exists@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" + integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= + +path-is-absolute@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= +path-key@^2.0.0, path-key@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" + integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= + path-parse@^1.0.5: version "1.0.6" resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== -path-platform@~0.11.15: - version "0.11.15" - resolved "https://registry.yarnpkg.com/path-platform/-/path-platform-0.11.15.tgz#e864217f74c36850f0852b78dc7bf7d4a5721bf2" - integrity sha1-6GQhf3TDaFDwhSt43Hv31KVyG/I= - pbkdf2@^3.0.3: version "3.0.17" resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.17.tgz#976c206530617b14ebb32114239f7b09336e93a6" @@ -2608,17 +2815,31 @@ pbkdf2@^3.0.3: safe-buffer "^5.0.1" sha.js "^2.4.8" +pify@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" + integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= + +pkg-dir@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b" + integrity sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s= + dependencies: + find-up "^2.1.0" + +pkg-dir@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" + integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw== + dependencies: + find-up "^3.0.0" + posix-character-classes@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= -preserve@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" - integrity sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks= - -private@^0.1.6, private@^0.1.8: +private@^0.1.6: version "0.1.8" resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" integrity sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg== @@ -2628,11 +2849,16 @@ process-nextick-args@~2.0.0: resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa" integrity sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw== -process@~0.11.0: +process@^0.11.10: version "0.11.10" resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= +promise-inflight@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" + integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM= + prop-types@^15.5.10: version "15.6.2" resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.6.2.tgz#05d5ca77b4453e985d60fc7ff8c859094a497102" @@ -2641,6 +2867,16 @@ prop-types@^15.5.10: loose-envify "^1.3.1" object-assign "^4.1.1" +prr@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" + integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY= + +pseudomap@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" + integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= + public-encrypt@^4.0.0: version "4.0.3" resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" @@ -2653,17 +2889,47 @@ public-encrypt@^4.0.0: randombytes "^2.0.1" safe-buffer "^5.1.2" +pump@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" + integrity sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +pump@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" + integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +pumpify@^1.3.3: + version "1.5.1" + resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce" + integrity sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ== + dependencies: + duplexify "^3.6.0" + inherits "^2.0.3" + pump "^2.0.0" + punycode@1.3.2: version "1.3.2" resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= -punycode@^1.3.2: +punycode@^1.2.4: version "1.4.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= -querystring-es3@~0.2.0: +punycode@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" + integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== + +querystring-es3@^0.2.0: version "0.2.1" resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" integrity sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM= @@ -2673,15 +2939,6 @@ querystring@0.2.0: resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= -randomatic@^3.0.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-3.1.1.tgz#b776efc59375984e36c537b2f51a1f0aff0da1ed" - integrity sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw== - dependencies: - is-number "^4.0.0" - kind-of "^6.0.0" - math-random "^1.0.1" - randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5: version "2.0.6" resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.0.6.tgz#d302c522948588848a8d300c932b44c24231da80" @@ -2714,14 +2971,7 @@ react-sparklines@^1.7.0: dependencies: prop-types "^15.5.10" -read-only-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/read-only-stream/-/read-only-stream-2.0.0.tgz#2724fd6a8113d73764ac288d4386270c1dbf17f0" - integrity sha1-JyT9aoET1zdkrCiNQ4YnDB2/F/A= - dependencies: - readable-stream "^2.0.2" - -readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.2.2, readable-stream@^2.3.6, readable-stream@~2.3.6: +"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.4, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.6: version "2.3.6" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" integrity sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw== @@ -2743,37 +2993,25 @@ readdirp@^2.0.0: micromatch "^3.1.10" readable-stream "^2.0.2" -regenerate@^1.2.1: +regenerate-unicode-properties@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-7.0.0.tgz#107405afcc4a190ec5ed450ecaa00ed0cafa7a4c" + integrity sha512-s5NGghCE4itSlUS+0WUj88G6cfMVMmH8boTPNvABf8od+2dhT9WDlWu8n01raQAJZMOK8Ch6jSexaRO7swd6aw== + dependencies: + regenerate "^1.4.0" + +regenerate@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.0.tgz#4a856ec4b56e4077c557589cae85e7a4c8869a11" integrity sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg== -regenerator-runtime@^0.10.5: - version "0.10.5" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz#336c3efc1220adcedda2c9fab67b5a7955a33658" - integrity sha1-M2w+/BIgrc7dosn6tntaeVWjNlg= - -regenerator-runtime@^0.11.0: - version "0.11.1" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" - integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== - -regenerator-transform@^0.10.0: - version "0.10.1" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.10.1.tgz#1e4996837231da8b7f3cf4114d71b5691a0680dd" - integrity sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q== +regenerator-transform@^0.13.3: + version "0.13.3" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.13.3.tgz#264bd9ff38a8ce24b06e0636496b2c856b57bcbb" + integrity sha512-5ipTrZFSq5vU2YoGoww4uaRVAK4wyYC4TSICibbfEPOruUu8FFP7ErV0BjmbIOEpn3O/k9na9UEdYR/3m7N6uA== 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" - integrity sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ== - dependencies: - is-equal-shallow "^0.1.3" - regex-not@^1.0.0, regex-not@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" @@ -2782,24 +3020,27 @@ regex-not@^1.0.0, regex-not@^1.0.2: extend-shallow "^3.0.2" safe-regex "^1.1.0" -regexpu-core@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-2.0.0.tgz#49d038837b8dcf8bfa5b9a42139938e6ea2ae240" - integrity sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA= +regexpu-core@^4.1.3, regexpu-core@^4.2.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.4.0.tgz#8d43e0d1266883969720345e70c275ee0aec0d32" + integrity sha512-eDDWElbwwI3K0Lo6CqbQbA6FwgtCz4kYTarrri1okfkRLZAqstU+B3voZBCjg8Fl6iq0gXrJG6MvRgLthfvgOA== dependencies: - regenerate "^1.2.1" - regjsgen "^0.2.0" - regjsparser "^0.1.4" + regenerate "^1.4.0" + regenerate-unicode-properties "^7.0.0" + regjsgen "^0.5.0" + regjsparser "^0.6.0" + unicode-match-property-ecmascript "^1.0.4" + unicode-match-property-value-ecmascript "^1.0.2" -regjsgen@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7" - integrity sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc= +regjsgen@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.0.tgz#a7634dc08f89209c2049adda3525711fb97265dd" + integrity sha512-RnIrLhrXCX5ow/E5/Mh2O4e/oa1/jW0eaBKTSy3LaCj+M3Bqvm97GWDp2yUtzIs4LEn65zR2yiYGFqb2ApnzDA== -regjsparser@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.1.5.tgz#7ee8f84dc6fa792d3fd0ae228d24bd949ead205c" - integrity sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw= +regjsparser@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.0.tgz#f1e6ae8b7da2bae96c99399b868cd6c933a2ba9c" + integrity sha512-RQ7YyokLiQBomUJuUG8iGVvkgOLxwyZM8k6d3q5SAXpg4r5TZJZigKFvC6PpD+qQ98bCDC5YelPeA3EucDoNeQ== dependencies: jsesc "~0.5.0" @@ -2813,29 +3054,39 @@ repeat-element@^1.1.2: resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce" integrity sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g== -repeat-string@^1.5.2, repeat-string@^1.6.1: +repeat-string@^1.6.1: version "1.6.1" resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= -repeating@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" - integrity sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo= +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= + +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" + integrity sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE= + +resolve-cwd@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a" + integrity sha1-AKn3OHVW4nA46uIyyqNypqWbZlo= dependencies: - is-finite "^1.0.0" + resolve-from "^3.0.0" + +resolve-from@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" + integrity sha1-six699nWiBvItuZTM17rywoYh0g= resolve-url@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= -resolve@1.1.7: - version "1.1.7" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" - integrity sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs= - -resolve@^1.1.4, resolve@^1.4.0: +resolve@^1.3.2: version "1.8.1" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.8.1.tgz#82f1ec19a423ac1fbd080b0bab06ba36e84a7a26" integrity sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA== @@ -2847,7 +3098,7 @@ ret@~0.1.10: resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== -rimraf@^2.6.1: +rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2: version "2.6.2" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36" integrity sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w== @@ -2862,6 +3113,13 @@ ripemd160@^2.0.0, ripemd160@^2.0.1: hash-base "^3.0.0" inherits "^2.0.1" +run-queue@^1.0.0, run-queue@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47" + integrity sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec= + dependencies: + aproba "^1.1.1" + safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" @@ -2884,12 +3142,34 @@ sax@^1.2.4: resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== -semver@^5.3.0: +schema-utils@^0.4.4: + version "0.4.7" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.4.7.tgz#ba74f597d2be2ea880131746ee17d0a093c68187" + integrity sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ== + dependencies: + ajv "^6.1.0" + ajv-keywords "^3.1.0" + +schema-utils@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770" + integrity sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g== + dependencies: + ajv "^6.1.0" + ajv-errors "^1.0.0" + ajv-keywords "^3.1.0" + +semver@^5.3.0, semver@^5.4.1, semver@^5.5.0: version "5.6.0" resolved "https://registry.yarnpkg.com/semver/-/semver-5.6.0.tgz#7e74256fbaa49c75aa7c7a205cc22799cac80004" integrity sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg== -set-blocking@~2.0.0: +serialize-javascript@^1.4.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-1.5.0.tgz#1aa336162c88a890ddad5384baebc93a655161fe" + integrity sha512-Ga8c8NjAAp46Br4+0oZ2WxJCwIzwP60Gq1YPgU+39PiTVxyed/iKE/zyZI6+UlVYH5Q4PaQdHhcegIFPZTUfoQ== + +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" integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= @@ -2914,7 +3194,12 @@ set-value@^2.0.0: is-plain-object "^2.0.3" split-string "^3.0.1" -sha.js@^2.4.0, sha.js@^2.4.8, sha.js@~2.4.4: +setimmediate@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" + integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= + +sha.js@^2.4.0, sha.js@^2.4.8: version "2.4.11" resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== @@ -2922,39 +3207,23 @@ sha.js@^2.4.0, sha.js@^2.4.8, sha.js@~2.4.4: inherits "^2.0.1" safe-buffer "^5.0.1" -shasum@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/shasum/-/shasum-1.0.2.tgz#e7012310d8f417f4deb5712150e5678b87ae565f" - integrity sha1-5wEjENj0F/TetXEhUOVni4euVl8= +shebang-command@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" + integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= dependencies: - json-stable-stringify "~0.0.0" - sha.js "~2.4.4" + shebang-regex "^1.0.0" -shell-quote@^1.6.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.6.1.tgz#f4781949cce402697127430ea3b3c5476f481767" - integrity sha1-9HgZSczkAmlxJ0MOo7PFR29IF2c= - dependencies: - array-filter "~0.0.0" - array-map "~0.0.0" - array-reduce "~0.0.0" - jsonify "~0.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" + integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= signal-exit@^3.0.0: version "3.0.2" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0= -simple-concat@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.0.tgz#7344cbb8b6e26fb27d66b2fc86f9f6d5997521c6" - integrity sha1-c0TLuLbib7J9ZrL8hvn21Zl1IcY= - -slash@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" - integrity sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU= - snapdragon-node@^2.0.1: version "2.1.1" resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" @@ -2985,6 +3254,11 @@ snapdragon@^0.8.1: source-map-resolve "^0.5.0" use "^3.1.0" +source-list-map@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" + integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== + source-map-resolve@^0.5.0: version "0.5.2" resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.2.tgz#72e2cc34095543e43b2c62b2c4c10d4a9054f259" @@ -2996,23 +3270,29 @@ source-map-resolve@^0.5.0: source-map-url "^0.4.0" urix "^0.1.0" -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" - integrity sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA== +source-map-support@~0.5.6: + version "0.5.9" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.9.tgz#41bc953b2534267ea2d605bccfa7bfa3111ced5f" + integrity sha512-gR6Rw4MvUlYy83vP0vxoVNzM6t8MUXqNuRsuBmBHQDu1Fh6X015FrLdgoDKcNdkwGubozq0P4N0Q37UyFVr1EA== dependencies: - source-map "^0.5.6" + buffer-from "^1.0.0" + source-map "^0.6.0" source-map-url@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" integrity sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM= -source-map@^0.5.6, source-map@^0.5.7, source-map@~0.5.3: +source-map@^0.5.0, source-map@^0.5.6: version "0.5.7" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= +source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + split-string@^3.0.1, split-string@^3.0.2: version "3.1.0" resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" @@ -3020,6 +3300,13 @@ split-string@^3.0.1, split-string@^3.0.2: dependencies: extend-shallow "^3.0.0" +ssri@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-6.0.1.tgz#2a3c41b28dd45b62b63676ecb74001265ae9edd8" + integrity sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA== + dependencies: + figgy-pudding "^3.5.1" + static-extend@^0.1.1: version "0.1.2" resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" @@ -3028,7 +3315,7 @@ static-extend@^0.1.1: define-property "^0.2.5" object-copy "^0.1.0" -stream-browserify@^2.0.0: +stream-browserify@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.1.tgz#66266ee5f9bdb9940a4e4514cafb43bb71e5c9db" integrity sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds= @@ -3036,15 +3323,15 @@ stream-browserify@^2.0.0: inherits "~2.0.1" readable-stream "^2.0.2" -stream-combiner2@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/stream-combiner2/-/stream-combiner2-1.1.1.tgz#fb4d8a1420ea362764e21ad4780397bebcb41cbe" - integrity sha1-+02KFCDqNidk4hrUeAOXvry0HL4= +stream-each@^1.1.0: + version "1.2.3" + resolved "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.3.tgz#ebe27a0c389b04fbcc233642952e10731afa9bae" + integrity sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw== dependencies: - duplexer2 "~0.1.0" - readable-stream "^2.0.2" + end-of-stream "^1.1.0" + stream-shift "^1.0.0" -stream-http@^2.0.0: +stream-http@^2.7.2: version "2.8.3" resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc" integrity sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw== @@ -3055,13 +3342,10 @@ stream-http@^2.0.0: to-arraybuffer "^1.0.0" xtend "^4.0.0" -stream-splicer@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/stream-splicer/-/stream-splicer-2.0.0.tgz#1b63be438a133e4b671cc1935197600175910d83" - integrity sha1-G2O+Q4oTPktnHMGTUZdgAXWRDYM= - dependencies: - inherits "^2.0.1" - readable-stream "^2.0.2" +stream-shift@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.0.tgz#d5c752825e5367e786f78e18e445ea223a155952" + integrity sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI= string-width@^1.0.1: version "1.0.2" @@ -3072,7 +3356,7 @@ string-width@^1.0.1: is-fullwidth-code-point "^1.0.0" strip-ansi "^3.0.0" -"string-width@^1.0.2 || 2": +"string-width@^1.0.2 || 2", string-width@^2.0.0, string-width@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== @@ -3080,7 +3364,7 @@ string-width@^1.0.1: is-fullwidth-code-point "^2.0.0" strip-ansi "^4.0.0" -string_decoder@^1.1.1: +string_decoder@^1.0.0: version "1.2.0" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.2.0.tgz#fe86e738b19544afe70469243b2a1ee9240eae8d" integrity sha512-6YqyX6ZWEYguAxgZzHGL7SsCeGx3V2TtOTqZz1xSTSWnqsbWwbptafNyvf/ACquZUXV3DANr5BDIwNYe1mN42w== @@ -3108,29 +3392,27 @@ strip-ansi@^4.0.0: dependencies: ansi-regex "^3.0.0" +strip-eof@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" + integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= + 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" integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= -subarg@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/subarg/-/subarg-1.0.0.tgz#f62cf17581e996b48fc965699f54c06ae268b8d2" - integrity sha1-9izxdYHplrSPyWVpn1TAauJouNI= +supports-color@^5.3.0, supports-color@^5.5.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== dependencies: - minimist "^1.1.0" - -supports-color@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" - integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc= + has-flag "^3.0.0" -syntax-error@^1.1.1: - version "1.4.0" - resolved "https://registry.yarnpkg.com/syntax-error/-/syntax-error-1.4.0.tgz#2d9d4ff5c064acb711594a3e3b95054ad51d907c" - integrity sha512-YPPlu67mdnHGTup2A8ff7BC2Pjq0e0Yp/IyTFN03zWO0RcK07uLcbi7C2KpGR2FvWbaB0+bfE27a+sBKebSo7w== - dependencies: - acorn-node "^1.2.0" +tapable@^1.0.0, tapable@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.1.tgz#4d297923c5a72a42360de2ab52dadfaaec00018e" + integrity sha512-9I2ydhj8Z9veORCw5PRm4u9uebCn0mcCa6scWoNcbZ6dAtoo2618u9UUzxgmsCOreJpqDDuv61LvwofW7hLcBA== tar@^4: version "4.4.8" @@ -3145,6 +3427,29 @@ tar@^4: safe-buffer "^5.1.2" yallist "^3.0.2" +terser-webpack-plugin@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.1.0.tgz#cf7c25a1eee25bf121f4a587bb9e004e3f80e528" + integrity sha512-61lV0DSxMAZ8AyZG7/A4a3UPlrbOBo8NIQ4tJzLPAdGOQ+yoNC7l5ijEow27lBAL2humer01KLS6bGIMYQxKoA== + dependencies: + 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.8.1" + webpack-sources "^1.1.0" + worker-farm "^1.5.2" + +terser@^3.8.1: + version "3.11.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-3.11.0.tgz#60782893e1f4d6788acc696351f40636d0e37af0" + integrity sha512-5iLMdhEPIq3zFWskpmbzmKwMQixKmTYwY3Ox9pjtSklBLnHiuQ0GKJLhL1HSYtyffHM3/lDIFBnb82m9D7ewwQ== + dependencies: + commander "~2.17.1" + source-map "~0.6.1" + source-map-support "~0.5.6" + through2@^2.0.0: version "2.0.5" resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" @@ -3153,27 +3458,22 @@ through2@^2.0.0: readable-stream "~2.3.6" xtend "~4.0.1" -"through@>=2.2.7 <3": - version "2.3.8" - resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" - integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= - -timers-browserify@^1.0.1: - version "1.4.2" - resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-1.4.2.tgz#c9c58b575be8407375cb5e2462dacee74359f41d" - integrity sha1-ycWLV1voQHN1y14kYtrO50NZ9B0= +timers-browserify@^2.0.4: + version "2.0.10" + resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.10.tgz#1d28e3d2aadf1d5a5996c4e9f95601cd053480ae" + integrity sha512-YvC1SV1XdOUaL6gx5CoGroT3Gu49pK9+TZ38ErPldOWW4j49GI1HKs9DV+KGq/w6y+LZ72W1c8cKz2vzY+qpzg== dependencies: - process "~0.11.0" + 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" integrity sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M= -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" - integrity sha1-uDVx+k2MJbguIxsG46MFXeTKGkc= +to-fast-properties@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" + integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= to-object-path@^0.3.0: version "0.3.0" @@ -3205,30 +3505,43 @@ trim-right@^1.0.1: resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" integrity sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM= -tty-browserify@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.1.tgz#3f05251ee17904dfd0677546670db9651682b811" - integrity sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw== +tslib@^1.9.0: + version "1.9.3" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.3.tgz#d7e4dd79245d85428c4d7e4822a79917954ca286" + integrity sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ== + +tty-browserify@0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" + integrity sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY= typedarray@^0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= -umd@^3.0.0: - version "3.0.3" - resolved "https://registry.yarnpkg.com/umd/-/umd-3.0.3.tgz#aa9fe653c42b9097678489c01000acb69f0b26cf" - integrity sha512-4IcGSufhFshvLNcMCV80UnQVlZ5pMOC8mvNPForqwA4+lzYQuetTESLDQkeLmihq8bRcnpbQa48Wb8Lh16/xow== +unicode-canonical-property-names-ecmascript@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818" + integrity sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ== -undeclared-identifiers@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/undeclared-identifiers/-/undeclared-identifiers-1.1.2.tgz#7d850a98887cff4bd0bf64999c014d08ed6d1acc" - integrity sha512-13EaeocO4edF/3JKime9rD7oB6QI8llAGhgn5fKOPyfkJbRb6NFv9pYV6dFEmpa4uRjKeBqLZP8GpuzqHlKDMQ== +unicode-match-property-ecmascript@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz#8ed2a32569961bce9227d09cd3ffbb8fed5f020c" + integrity sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg== dependencies: - acorn-node "^1.3.0" - get-assigned-identifiers "^1.2.0" - simple-concat "^1.0.0" - xtend "^4.0.1" + unicode-canonical-property-names-ecmascript "^1.0.4" + unicode-property-aliases-ecmascript "^1.0.4" + +unicode-match-property-value-ecmascript@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.0.2.tgz#9f1dc76926d6ccf452310564fd834ace059663d4" + integrity sha512-Rx7yODZC1L/T8XKo/2kNzVAQaRE88AaMvI1EF/Xnj3GW2wzN6fop9DDWuFAKUVFH7vozkz26DzP0qyWLKLIVPQ== + +unicode-property-aliases-ecmascript@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.4.tgz#5a533f31b4317ea76f17d807fa0d116546111dd0" + integrity sha512-2WSLa6OdYd2ng8oqiGIWnJqyFArvhn+5vgx5GTxMbUYjCYKUcuKS62YLFF0R/BDGlB1yzXjQOLtPAfHsgirEpg== union-value@^1.0.0: version "1.0.0" @@ -3240,6 +3553,20 @@ union-value@^1.0.0: is-extendable "^0.1.1" set-value "^0.4.3" +unique-filename@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" + integrity sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ== + dependencies: + unique-slug "^2.0.0" + +unique-slug@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.1.tgz#5e9edc6d1ce8fb264db18a507ef9bd8544451ca6" + integrity sha512-n9cU6+gITaVu7VGj1Z8feKMmfAjEAQGhwD9fE3zvpRRa0wEIx8ODYkVGfSc94M2OX00tUFV8wH3zYbm1I8mxFg== + dependencies: + imurmurhash "^0.1.4" + unset-value@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" @@ -3248,12 +3575,24 @@ unset-value@^1.0.0: has-value "^0.3.1" isobject "^3.0.0" +upath@^1.0.5: + version "1.1.0" + resolved "https://registry.yarnpkg.com/upath/-/upath-1.1.0.tgz#35256597e46a581db4793d0ce47fa9aebfc9fabd" + integrity sha512-bzpH/oBhoS/QI/YtbkqCg6VEiPYjSZtrHQM6/QnJS6OL9pKUFLqb3aFh4Scvwm45+7iAgiMkLhSbaZxUqmrprw== + +uri-js@^4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" + integrity sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ== + dependencies: + punycode "^2.1.0" + urix@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= -url@~0.11.0: +url@^0.11.0: version "0.11.0" resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE= @@ -3266,16 +3605,19 @@ use@^3.1.0: resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== -user-home@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/user-home/-/user-home-1.1.1.tgz#2b5be23a32b63a7c9deb8d0f28d485724a3df190" - integrity sha1-K1viOjK2Onyd640PKNSFcko98ZA= - util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= +util.promisify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.0.tgz#440f7165a459c9a16dc145eb8e72f35687097030" + integrity sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA== + dependencies: + define-properties "^1.1.2" + object.getownpropertydescriptors "^2.0.3" + util@0.10.3: version "0.10.3" resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" @@ -3283,24 +3625,99 @@ util@0.10.3: dependencies: inherits "2.0.1" -util@~0.10.1: +util@^0.10.3: version "0.10.4" resolved "https://registry.yarnpkg.com/util/-/util-0.10.4.tgz#3aa0125bfe668a4672de58857d3ace27ecb76901" integrity sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A== dependencies: inherits "2.0.3" -v8flags@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/v8flags/-/v8flags-2.1.1.tgz#aab1a1fa30d45f88dd321148875ac02c0b55e5b4" - integrity sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ= +v8-compile-cache@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.0.2.tgz#a428b28bb26790734c4fc8bc9fa106fccebf6a6c" + integrity sha512-1wFuMUIM16MDJRCrpbpuEPTUGmM5QMUg0cr3KFwra2XgOgFcPGDQHDh3CszSCD2Zewc/dh/pamNEW8CbfDebUw== + +vm-browserify@0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-0.0.4.tgz#5d7ea45bbef9e4a6ff65f95438e0a87c357d5a73" + integrity sha1-XX6kW7755Kb/ZflUOOCofDV9WnM= dependencies: - user-home "^1.1.1" + indexof "0.0.1" -vm-browserify@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.0.tgz#bd76d6a23323e2ca8ffa12028dc04559c75f9019" - integrity sha512-iq+S7vZJE60yejDYM0ek6zg308+UZsdtPExWP9VZoCFCz1zkJoXFnAX7aZfd/ZwrkidzdUZL0C/ryW+JwAiIGw== +watchpack@^1.5.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.6.0.tgz#4bc12c2ebe8aa277a71f1d3f14d685c7b446cd00" + integrity sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA== + dependencies: + chokidar "^2.0.2" + graceful-fs "^4.1.2" + neo-async "^2.5.0" + +webpack-cli@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-3.1.2.tgz#17d7e01b77f89f884a2bbf9db545f0f6a648e746" + integrity sha512-Cnqo7CeqeSvC6PTdts+dywNi5CRlIPbLx1AoUPK2T6vC1YAugMG3IOoO9DmEscd+Dghw7uRlnzV1KwOe5IrtgQ== + dependencies: + chalk "^2.4.1" + cross-spawn "^6.0.5" + enhanced-resolve "^4.1.0" + global-modules-path "^2.3.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.2" + +webpack-sources@^1.1.0, webpack-sources@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.3.0.tgz#2a28dcb9f1f45fe960d8f1493252b5ee6530fa85" + integrity sha512-OiVgSrbGu7NEnEvQJJgdSFPl2qWKkWq5lHMhgiToIiN9w34EBnjYzSYs+VbL5KoYiLNtFFa7BZIKxRED3I32pA== + dependencies: + source-list-map "^2.0.0" + source-map "~0.6.1" + +webpack@^4.27.1: + version "4.27.1" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.27.1.tgz#5f2e2db446d2266376fa15d7d2277a1a9c2e12bb" + integrity sha512-WArHiLvHrlfyRM8i7f+2SFbr/XbQ0bXqTkPF8JpHOzub5482Y3wx7rEO8stuLGOKOgZJcqcisLhD7LrM/+fVMw== + dependencies: + "@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 "^5.6.2" + acorn-dynamic-import "^3.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 "^0.4.4" + tapable "^1.1.0" + terser-webpack-plugin "^1.1.0" + watchpack "^1.5.0" + webpack-sources "^1.3.0" + +which-module@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" + integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= + +which@^1.2.9: + version "1.3.1" + resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" + integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== + dependencies: + isexe "^2.0.0" wide-align@^1.1.0: version "1.1.3" @@ -3309,17 +3726,68 @@ wide-align@^1.1.0: dependencies: string-width "^1.0.2 || 2" +worker-farm@^1.5.2: + version "1.6.0" + resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.6.0.tgz#aecc405976fab5a95526180846f0dba288f3a4a0" + integrity sha512-6w+3tHbM87WnSWnENBUvA2pxJPLhQUg5LKwUQHq3r+XPhIM+Gh2R5ycbwPCyuGbNg+lPgdcnQUhuC02kJCvffQ== + dependencies: + errno "~0.1.7" + +wrap-ansi@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" + integrity sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU= + 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" integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= -xtend@^4.0.0, xtend@^4.0.1, xtend@~4.0.1: +xtend@^4.0.0, xtend@~4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" integrity sha1-pcbVMr5lbiPbgg77lDofBJmNY68= +"y18n@^3.2.1 || ^4.0.0", y18n@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" + integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w== + +yallist@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" + integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= + yallist@^3.0.0, yallist@^3.0.2: version "3.0.3" resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.0.3.tgz#b4b049e314be545e3ce802236d6cd22cd91c3de9" integrity sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A== + +yargs-parser@^11.1.1: + version "11.1.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-11.1.1.tgz#879a0865973bca9f6bab5cbdf3b1c67ec7d3bcf4" + integrity sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + +yargs@^12.0.2: + version "12.0.5" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-12.0.5.tgz#05f5997b609647b64f66b81e3b4b10a368e7ad13" + integrity sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw== + dependencies: + 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" diff --git a/inst/www/react-tools/react-tools.js b/inst/www/react-tools/react-tools.js index b0229a9..7daff9d 100644 --- a/inst/www/react-tools/react-tools.js +++ b/inst/www/react-tools/react-tools.js @@ -28,7 +28,7 @@ window.reactR = (function () { * @param {string} type * @param {Object} components */ - function exposeComponents(name, type, components) { + function reactWidget(name, type, components) { HTMLWidgets.widget({ name: name, type: type, @@ -46,6 +46,7 @@ window.reactR = (function () { } return { - exposeComponents: exposeComponents + reactWidget: reactWidget, + hydrate: hydrate }; })() \ No newline at end of file diff --git a/man/component.Rd b/man/component.Rd index fadfd9e..d110b31 100644 --- a/man/component.Rd +++ b/man/component.Rd @@ -2,15 +2,26 @@ % Please edit documentation in R/reacttools.R \name{component} \alias{component} -\title{Create a React component represented by an htmltools \code{\link[htmltools]{tag}}.} +\title{Create a React component} \usage{ -component(name, ...) +component(name, varArgs = list()) } \arguments{ \item{name}{Name of the React component, which must start with an upper-case character.} \item{...}{Attributes and children of the element to pass along to \code{\link[htmltools]{tag}} as varArgs.} } +\value{ +An htmltools \code{\link[htmltools]{tag}} object +} \description{ -Create a React component represented by an htmltools \code{\link[htmltools]{tag}}. +Create a React component +} +\examples{ +component("ParentComponent", + x = 1, + y = 2, + component("ChildComponent"), + component("OtherChildComponent") +) } From b8bb5b99bb1ef2f10850cd360a89fd4da917c654 Mon Sep 17 00:00:00 2001 From: Alan Dipert Date: Mon, 17 Dec 2018 16:01:11 -0800 Subject: [PATCH 04/77] Initial implementation of resize handling --- inst/www/react-tools/react-tools.js | 94 ++++++++++++++++++++++++++--- 1 file changed, 85 insertions(+), 9 deletions(-) diff --git a/inst/www/react-tools/react-tools.js b/inst/www/react-tools/react-tools.js index 7daff9d..ac2d98e 100644 --- a/inst/www/react-tools/react-tools.js +++ b/inst/www/react-tools/react-tools.js @@ -3,8 +3,8 @@ window.reactR = (function () { * Recursively transforms tag, a JSON representation of an instance of a * React component and its children, into a React element suitable for * passing to ReactDOM.render. - * @param {Object} components - * @param {Object} tag + * @param {Object} components + * @param {Object} tag */ function hydrate(components, tag) { if (tag.name[0] !== tag.name[0].toUpperCase()) { @@ -17,28 +17,104 @@ window.reactR = (function () { for (var i = 0; i < tag.children.length; i++) { args.push(hydrate(components, tag.children[i])); } + // Look into a way to clone an element and apply new props return React.createElement.apply(null, args); } + // TODO default set of options + // TODO Look at ReactDOM.findDOMNode() + + var defaultOptions = { + widthProperty: "width", + heightProperty: "height", + appendPx: false, + renderOnResize: false + } + + /** + * If options contains recognized option names, returns a new object with + * defaultOptions and user options merged. User options take precedence. + * @param {Object} options An object of user-supplied keys and values + * @returns {Object} The merged options + */ + function mergeOptions(options) { + for (var k in options) { + if (!defaultOptions.hasOwnProperty(k)) { + throw new Error("Unrecognized option: " + k); + } + } + return jQuery.extend({}, defaultOptions, options); + } + + /** + * Formats a dimension value based on options + * @param {Object} dimension The dimension value to format + * @param {Object} options The options, which should contain an appendPx key + */ + function formatDimension(dimension, options) { + if (dimension === null) { + return; + } else if (options.appendPx) { + return dimension.toString() + "px"; + } else { + return dimension; + } + } + + /** + * If options.renderOnResize is true, returns a shallow clone of element with two additional props: width and height. + * @param {Object} element + * @param {number} width + * @param {number} height + * @param {Object} options + */ + function withDimensions(element, width, height, options) { + if (options.renderOnResize) { + var newProps = {}; + newProps[options["widthProperty"]] = formatDimension(width, options); + newProps[options["heightProperty"]] = formatDimension(height, options); + return React.cloneElement(element, newProps); + } else { + return element; + } + } + /** * Creates an HTMLWidget that is updated by rendering a React component. * React component constructors are made available by specifying them by * name in the components object. - * @param {string} name - * @param {string} type - * @param {Object} components + * @param {string} name + * @param {string} type + * @param {Object} components + * @param {Object} options */ - function reactWidget(name, type, components) { + function reactWidget(name, type, components, options) { + var actualOptions = mergeOptions(options); HTMLWidgets.widget({ name: name, type: type, factory: function (el, width, height) { + var lastRenderedElement = null; return { renderValue: (function (value) { - ReactDOM.render(hydrate(components, value.tag), el); + lastRenderedElement = withDimensions( + hydrate(components, value.tag), + width, + height, + actualOptions + ); + ReactDOM.render(lastRenderedElement, el); }), - resize: function (width, height) { - // TODO: What should happen here? + resize: function (newWidth, newHeight) { + if (actualOptions.renderOnResize) { + lastRenderedElement = withDimensions( + lastRenderedElement, + newWidth, + newHeight, + actualOptions + ); + ReactDOM.render(lastRenderedElement, el); + } } }; } From 43facabb0d0912be1ebdbd2ecf35eafb1a39bb4c Mon Sep 17 00:00:00 2001 From: Alan Dipert Date: Wed, 19 Dec 2018 13:50:21 -0800 Subject: [PATCH 05/77] Improve resize handling --- inst/www/react-tools/react-tools.js | 77 ++++++++--------------------- 1 file changed, 20 insertions(+), 57 deletions(-) diff --git a/inst/www/react-tools/react-tools.js b/inst/www/react-tools/react-tools.js index ac2d98e..f3304f1 100644 --- a/inst/www/react-tools/react-tools.js +++ b/inst/www/react-tools/react-tools.js @@ -17,26 +17,16 @@ window.reactR = (function () { for (var i = 0; i < tag.children.length; i++) { args.push(hydrate(components, tag.children[i])); } - // Look into a way to clone an element and apply new props return React.createElement.apply(null, args); } - // TODO default set of options - // TODO Look at ReactDOM.findDOMNode() - var defaultOptions = { widthProperty: "width", heightProperty: "height", appendPx: false, renderOnResize: false - } + }; - /** - * If options contains recognized option names, returns a new object with - * defaultOptions and user options merged. User options take precedence. - * @param {Object} options An object of user-supplied keys and values - * @returns {Object} The merged options - */ function mergeOptions(options) { for (var k in options) { if (!defaultOptions.hasOwnProperty(k)) { @@ -46,36 +36,11 @@ window.reactR = (function () { return jQuery.extend({}, defaultOptions, options); } - /** - * Formats a dimension value based on options - * @param {Object} dimension The dimension value to format - * @param {Object} options The options, which should contain an appendPx key - */ - function formatDimension(dimension, options) { - if (dimension === null) { - return; - } else if (options.appendPx) { - return dimension.toString() + "px"; + function formatDimension(dim, options) { + if (options.appendPx) { + return dim.toString() + 'px'; } else { - return dimension; - } - } - - /** - * If options.renderOnResize is true, returns a shallow clone of element with two additional props: width and height. - * @param {Object} element - * @param {number} width - * @param {number} height - * @param {Object} options - */ - function withDimensions(element, width, height, options) { - if (options.renderOnResize) { - var newProps = {}; - newProps[options["widthProperty"]] = formatDimension(width, options); - newProps[options["heightProperty"]] = formatDimension(height, options); - return React.cloneElement(element, newProps); - } else { - return element; + return dim; } } @@ -94,26 +59,24 @@ window.reactR = (function () { name: name, type: type, factory: function (el, width, height) { - var lastRenderedElement = null; + var lastElement = null; + renderValue = (function (value) { + lastElement = (value === undefined) ? lastElement : hydrate(components, value.tag); + if (actualOptions.renderOnResize) { + var newProps = {}; + newProps[options["widthProperty"]] = formatDimension(width); + newProps[options["heightProperty"]] = formatDimension(height); + lastElement = React.cloneElement(lastElement, newProps); + } + ReactDOM.render(lastElement, el); + }); return { - renderValue: (function (value) { - lastRenderedElement = withDimensions( - hydrate(components, value.tag), - width, - height, - actualOptions - ); - ReactDOM.render(lastRenderedElement, el); - }), + renderValue: renderValue, resize: function (newWidth, newHeight) { if (actualOptions.renderOnResize) { - lastRenderedElement = withDimensions( - lastRenderedElement, - newWidth, - newHeight, - actualOptions - ); - ReactDOM.render(lastRenderedElement, el); + width = newWidth; + height = newHeight; + renderValue(); } } }; From 42e112ee221bbc94def9c7144df34b209b9e8a5b Mon Sep 17 00:00:00 2001 From: Alan Dipert Date: Wed, 19 Dec 2018 14:38:32 -0800 Subject: [PATCH 06/77] sparklines example: improve README, make tag a span --- examples/sparklineswidget/R/sparklineswidget.R | 2 +- examples/sparklineswidget/README.md | 7 +++++++ examples/sparklineswidget/app.R | 2 -- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/examples/sparklineswidget/R/sparklineswidget.R b/examples/sparklineswidget/R/sparklineswidget.R index c75605c..3216f1e 100644 --- a/examples/sparklineswidget/R/sparklineswidget.R +++ b/examples/sparklineswidget/R/sparklineswidget.R @@ -65,6 +65,6 @@ sparklineswidget_html <- function(id, style, class, ...) { reactR::html_dependency_corejs(), reactR::html_dependency_react(), reactR::html_dependency_reacttools(), - tags$div(id = id, class = class) + tags$span(id = id, class = class) ) } diff --git a/examples/sparklineswidget/README.md b/examples/sparklineswidget/README.md index ed9a71e..f70d13f 100644 --- a/examples/sparklineswidget/README.md +++ b/examples/sparklineswidget/README.md @@ -40,4 +40,11 @@ devtools::document() devtools::install() ``` +Next, install the `colourpicker` and `shinySignals` packages, as they are used in the example app: + +``` +install.packages("colourpicker") +devtools::install_github("shinySignals") +``` + Finally you can try the example app by running [app.R](app.R). diff --git a/examples/sparklineswidget/app.R b/examples/sparklineswidget/app.R index 2c165a4..e4ce78a 100644 --- a/examples/sparklineswidget/app.R +++ b/examples/sparklineswidget/app.R @@ -28,6 +28,4 @@ server <- function(input, output, session) { ) } -options(shiny.port = 4343) - shinyApp(ui, server) From 7fcd97c1f2d031bbe6bc31691fb127b2b9aa23b9 Mon Sep 17 00:00:00 2001 From: Alan Dipert Date: Wed, 19 Dec 2018 15:15:48 -0800 Subject: [PATCH 07/77] Simplify renderOnResize functionality and store entire value instead of just tag --- inst/www/react-tools/react-tools.js | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/inst/www/react-tools/react-tools.js b/inst/www/react-tools/react-tools.js index f3304f1..d7deb56 100644 --- a/inst/www/react-tools/react-tools.js +++ b/inst/www/react-tools/react-tools.js @@ -59,16 +59,14 @@ window.reactR = (function () { name: name, type: type, factory: function (el, width, height) { - var lastElement = null; + var lastValue; renderValue = (function (value) { - lastElement = (value === undefined) ? lastElement : hydrate(components, value.tag); if (actualOptions.renderOnResize) { - var newProps = {}; - newProps[options["widthProperty"]] = formatDimension(width); - newProps[options["heightProperty"]] = formatDimension(height); - lastElement = React.cloneElement(lastElement, newProps); + value.tag.attribs[actualOptions["widthProperty"]] = formatDimension(width); + value.tag.attribs[actualOptions["heightProperty"]] = formatDimension(height); + lastValue = value; } - ReactDOM.render(lastElement, el); + ReactDOM.render(hydrate(components, value.tag), el); }); return { renderValue: renderValue, @@ -76,7 +74,7 @@ window.reactR = (function () { if (actualOptions.renderOnResize) { width = newWidth; height = newHeight; - renderValue(); + renderValue(lastValue); } } }; From 70d45a21dc2333e8a439456771b53cfdc839efee Mon Sep 17 00:00:00 2001 From: Alan Dipert Date: Wed, 19 Dec 2018 15:32:52 -0800 Subject: [PATCH 08/77] Hide the shape of the JSON value send to the client behind new reactData function --- NAMESPACE | 1 + R/reacttools.R | 12 ++++++++++++ examples/sparklineswidget/R/sparklineswidget.R | 4 ++-- man/reactData.Rd | 14 ++++++++++++++ 4 files changed, 29 insertions(+), 2 deletions(-) create mode 100644 man/reactData.Rd diff --git a/NAMESPACE b/NAMESPACE index 8b7ed53..4c690be 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -10,4 +10,5 @@ export(component) export(html_dependency_corejs) export(html_dependency_react) export(html_dependency_reacttools) +export(reactData) importFrom(htmltools,htmlDependency) diff --git a/R/reacttools.R b/R/reacttools.R index 65eeb27..8572c0f 100644 --- a/R/reacttools.R +++ b/R/reacttools.R @@ -44,3 +44,15 @@ React <- structure(list(), class = "react_component_builder") #' @export `[[<-.react_component_builder` <- `$<-.react_component_builder` + +#' Create a data object for transporting a React component to the client. +#' +#' @param tag +#' +#' @return +#' @export +#' +#' @examples +reactData <- function(tag) { + list(tag = tag) +} diff --git a/examples/sparklineswidget/R/sparklineswidget.R b/examples/sparklineswidget/R/sparklineswidget.R index 3216f1e..e720046 100644 --- a/examples/sparklineswidget/R/sparklineswidget.R +++ b/examples/sparklineswidget/R/sparklineswidget.R @@ -22,8 +22,8 @@ reference_line <- function(...) { #' @export sparklineswidget <- function(data, ...) { htmlwidgets::createWidget( - name = 'sparklineswidget', - list(tag = reactR::component("Sparklines", c(list(data = data, ...)))), + 'sparklineswidget', + reactR::reactData(reactR::component("Sparklines", c(list(data = data, ...)))), width = NULL, height = NULL, package = 'sparklineswidget', diff --git a/man/reactData.Rd b/man/reactData.Rd new file mode 100644 index 0000000..e0b0fae --- /dev/null +++ b/man/reactData.Rd @@ -0,0 +1,14 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/reacttools.R +\name{reactData} +\alias{reactData} +\title{Create a data object for transporting a React component to the client.} +\usage{ +reactData(tag) +} +\arguments{ +\item{tag}{} +} +\description{ +Create a data object for transporting a React component to the client. +} From a51954097faaacc4420f4aff15b9cb595cbb8485 Mon Sep 17 00:00:00 2001 From: Alan Dipert Date: Wed, 19 Dec 2018 15:52:43 -0800 Subject: [PATCH 09/77] Hydrate arbitrary HTML/SVG tags, still throw an exception if a component isn't known --- inst/www/react-tools/react-tools.js | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/inst/www/react-tools/react-tools.js b/inst/www/react-tools/react-tools.js index d7deb56..1c23d7c 100644 --- a/inst/www/react-tools/react-tools.js +++ b/inst/www/react-tools/react-tools.js @@ -7,10 +7,8 @@ window.reactR = (function () { * @param {Object} tag */ function hydrate(components, tag) { - if (tag.name[0] !== tag.name[0].toUpperCase()) { - throw new Error("Component does not begin with a capital letter: " + tag.name); - } - if (!components.hasOwnProperty(tag.name)) { + if (tag.name[0] === tag.name[0].toUpperCase() + && !components.hasOwnProperty(tag.name)) { throw new Error("Unknown component: " + tag.name); } var args = [components[tag.name], tag.attribs]; From b49a1f4d328d7333be41137341af65f6adb93ca4 Mon Sep 17 00:00:00 2001 From: Alan Dipert Date: Wed, 19 Dec 2018 16:01:46 -0800 Subject: [PATCH 10/77] Remove jQuery dependency from react-tools --- inst/www/react-tools/react-tools.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/inst/www/react-tools/react-tools.js b/inst/www/react-tools/react-tools.js index 1c23d7c..4db4e97 100644 --- a/inst/www/react-tools/react-tools.js +++ b/inst/www/react-tools/react-tools.js @@ -26,12 +26,17 @@ window.reactR = (function () { }; function mergeOptions(options) { + var merged = {}; + for (var k in defaultOptions) { + merged[k] = defaultOptions[k]; + } for (var k in options) { if (!defaultOptions.hasOwnProperty(k)) { throw new Error("Unrecognized option: " + k); } + merged[k] = options[k]; } - return jQuery.extend({}, defaultOptions, options); + return merged; } function formatDimension(dim, options) { From 4f416b014f103a9b585930a135f0871a5c251e7a Mon Sep 17 00:00:00 2001 From: Alan Dipert Date: Thu, 20 Dec 2018 15:47:48 -0800 Subject: [PATCH 11/77] Add initial impl. of evalJS --- NAMESPACE | 1 + R/reacttools.R | 5 +++++ inst/www/react-tools/react-tools.js | 11 +++++++++++ 3 files changed, 17 insertions(+) diff --git a/NAMESPACE b/NAMESPACE index 4c690be..95c1f76 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -7,6 +7,7 @@ S3method("[[<-",react_component_builder) export(React) export(babel_transform) export(component) +export(evalJS) export(html_dependency_corejs) export(html_dependency_react) export(html_dependency_reacttools) diff --git a/R/reacttools.R b/R/reacttools.R index 8572c0f..0715333 100644 --- a/R/reacttools.R +++ b/R/reacttools.R @@ -56,3 +56,8 @@ React <- structure(list(), class = "react_component_builder") reactData <- function(tag) { list(tag = tag) } + +#' @export +evalJS <- function(js_string) { + list(type = "js", js = babel_transform(js_string)) +} diff --git a/inst/www/react-tools/react-tools.js b/inst/www/react-tools/react-tools.js index 4db4e97..3eaa156 100644 --- a/inst/www/react-tools/react-tools.js +++ b/inst/www/react-tools/react-tools.js @@ -7,10 +7,21 @@ window.reactR = (function () { * @param {Object} tag */ function hydrate(components, tag) { + if (tag.type === "js") { + return window.eval(tag.js); + } if (tag.name[0] === tag.name[0].toUpperCase() && !components.hasOwnProperty(tag.name)) { throw new Error("Unknown component: " + tag.name); } + for (var k in tag.attribs) { + var v = tag.attribs[k]; + if ((typeof v === 'object') + && v.tag !== undefined + && v.tag.type === 'js') { + tag.attribs[k] = window.eval(v.tag.js); + } + } var args = [components[tag.name], tag.attribs]; for (var i = 0; i < tag.children.length; i++) { args.push(hydrate(components, tag.children[i])); From 8738c9b64c150dc859f8b9fd66f888fea975b94a Mon Sep 17 00:00:00 2001 From: timelyportfolio Date: Sun, 30 Dec 2018 11:59:08 -0600 Subject: [PATCH 12/77] poc for shiny event handling --- inst/www/react-tools/react-tools.js | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/inst/www/react-tools/react-tools.js b/inst/www/react-tools/react-tools.js index 3eaa156..ae7cb2e 100644 --- a/inst/www/react-tools/react-tools.js +++ b/inst/www/react-tools/react-tools.js @@ -1,4 +1,16 @@ window.reactR = (function () { + /** + * Inject an event handler prop to pass through to Shiny + */ + function addShiny(tag, event, el) { + // bail if we aren't in a Shiny context + if (!HTMLWidgets.shinyMode) return tag; + tag.attribs[event] = function(value) { + Shiny.onInputChange(this.id + "_" + tag.name + "_" + event, value); + }.bind(el); + return tag; + } + /** * Recursively transforms tag, a JSON representation of an instance of a * React component and its children, into a React element suitable for @@ -6,7 +18,7 @@ window.reactR = (function () { * @param {Object} components * @param {Object} tag */ - function hydrate(components, tag) { + function hydrate(components, tag, el) { if (tag.type === "js") { return window.eval(tag.js); } @@ -14,6 +26,11 @@ window.reactR = (function () { && !components.hasOwnProperty(tag.name)) { throw new Error("Unknown component: " + tag.name); } + // check to see if there is a shiny prop + // and if so then add the event handler + if(tag.attribs.hasOwnProperty("shiny")) { + tag = addShiny(tag, tag.attribs.shiny, el); + } for (var k in tag.attribs) { var v = tag.attribs[k]; if ((typeof v === 'object') @@ -24,7 +41,7 @@ window.reactR = (function () { } var args = [components[tag.name], tag.attribs]; for (var i = 0; i < tag.children.length; i++) { - args.push(hydrate(components, tag.children[i])); + args.push(hydrate(components, tag.children[i], el)); } return React.createElement.apply(null, args); } @@ -58,6 +75,7 @@ window.reactR = (function () { } } + /** * Creates an HTMLWidget that is updated by rendering a React component. * React component constructors are made available by specifying them by @@ -80,7 +98,7 @@ window.reactR = (function () { value.tag.attribs[actualOptions["heightProperty"]] = formatDimension(height); lastValue = value; } - ReactDOM.render(hydrate(components, value.tag), el); + ReactDOM.render(hydrate(components, value.tag, el), el); }); return { renderValue: renderValue, @@ -100,4 +118,4 @@ window.reactR = (function () { reactWidget: reactWidget, hydrate: hydrate }; -})() \ No newline at end of file +})() From 2d8c7651964ab81c81973bfcbae9f78ff43b1b07 Mon Sep 17 00:00:00 2001 From: timelyportfolio Date: Mon, 31 Dec 2018 16:45:32 -0600 Subject: [PATCH 13/77] use shinyEvent instead of shiny and use id prop is available --- inst/www/react-tools/react-tools.js | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/inst/www/react-tools/react-tools.js b/inst/www/react-tools/react-tools.js index ae7cb2e..2bd9643 100644 --- a/inst/www/react-tools/react-tools.js +++ b/inst/www/react-tools/react-tools.js @@ -5,8 +5,13 @@ window.reactR = (function () { function addShiny(tag, event, el) { // bail if we aren't in a Shiny context if (!HTMLWidgets.shinyMode) return tag; + var id = tag.name; + // if tag has an attribute id then use that instead + if(tag.attribs.hasOwnProperty("id")) { + id = tag.attribs.id; + } tag.attribs[event] = function(value) { - Shiny.onInputChange(this.id + "_" + tag.name + "_" + event, value); + Shiny.onInputChange(this.id + "_" + id + "_" + event, value); }.bind(el); return tag; } @@ -28,8 +33,8 @@ window.reactR = (function () { } // check to see if there is a shiny prop // and if so then add the event handler - if(tag.attribs.hasOwnProperty("shiny")) { - tag = addShiny(tag, tag.attribs.shiny, el); + if(tag.attribs.hasOwnProperty("shinyEvent")) { + tag = addShiny(tag, tag.attribs.shinyEvent, el); } for (var k in tag.attribs) { var v = tag.attribs[k]; From 61095b29b1d663d07d5a1bdc5d503d6cc7f17c75 Mon Sep 17 00:00:00 2001 From: timelyportfolio Date: Wed, 2 Jan 2019 19:47:55 -0600 Subject: [PATCH 14/77] Revert "Merge pull request #5 from timelyportfolio/enhancements-shiny" This reverts commit eada87b86e925faaef7fbdcc7dbca3098d1e57f1, reversing changes made to 4f416b014f103a9b585930a135f0871a5c251e7a. --- inst/www/react-tools/react-tools.js | 31 ++++------------------------- 1 file changed, 4 insertions(+), 27 deletions(-) diff --git a/inst/www/react-tools/react-tools.js b/inst/www/react-tools/react-tools.js index 2bd9643..3eaa156 100644 --- a/inst/www/react-tools/react-tools.js +++ b/inst/www/react-tools/react-tools.js @@ -1,21 +1,4 @@ window.reactR = (function () { - /** - * Inject an event handler prop to pass through to Shiny - */ - function addShiny(tag, event, el) { - // bail if we aren't in a Shiny context - if (!HTMLWidgets.shinyMode) return tag; - var id = tag.name; - // if tag has an attribute id then use that instead - if(tag.attribs.hasOwnProperty("id")) { - id = tag.attribs.id; - } - tag.attribs[event] = function(value) { - Shiny.onInputChange(this.id + "_" + id + "_" + event, value); - }.bind(el); - return tag; - } - /** * Recursively transforms tag, a JSON representation of an instance of a * React component and its children, into a React element suitable for @@ -23,7 +6,7 @@ window.reactR = (function () { * @param {Object} components * @param {Object} tag */ - function hydrate(components, tag, el) { + function hydrate(components, tag) { if (tag.type === "js") { return window.eval(tag.js); } @@ -31,11 +14,6 @@ window.reactR = (function () { && !components.hasOwnProperty(tag.name)) { throw new Error("Unknown component: " + tag.name); } - // check to see if there is a shiny prop - // and if so then add the event handler - if(tag.attribs.hasOwnProperty("shinyEvent")) { - tag = addShiny(tag, tag.attribs.shinyEvent, el); - } for (var k in tag.attribs) { var v = tag.attribs[k]; if ((typeof v === 'object') @@ -46,7 +24,7 @@ window.reactR = (function () { } var args = [components[tag.name], tag.attribs]; for (var i = 0; i < tag.children.length; i++) { - args.push(hydrate(components, tag.children[i], el)); + args.push(hydrate(components, tag.children[i])); } return React.createElement.apply(null, args); } @@ -80,7 +58,6 @@ window.reactR = (function () { } } - /** * Creates an HTMLWidget that is updated by rendering a React component. * React component constructors are made available by specifying them by @@ -103,7 +80,7 @@ window.reactR = (function () { value.tag.attribs[actualOptions["heightProperty"]] = formatDimension(height); lastValue = value; } - ReactDOM.render(hydrate(components, value.tag, el), el); + ReactDOM.render(hydrate(components, value.tag), el); }); return { renderValue: renderValue, @@ -123,4 +100,4 @@ window.reactR = (function () { reactWidget: reactWidget, hydrate: hydrate }; -})() +})() \ No newline at end of file From 6c22800c79a68e8b57a597e56aee8653c2ba68b8 Mon Sep 17 00:00:00 2001 From: Alan Dipert Date: Thu, 3 Jan 2019 06:47:41 -0800 Subject: [PATCH 15/77] Remove evalJS support until we can think of something better --- R/reacttools.R | 4 ---- inst/www/react-tools/react-tools.js | 11 ----------- 2 files changed, 15 deletions(-) diff --git a/R/reacttools.R b/R/reacttools.R index 0715333..f15e8c5 100644 --- a/R/reacttools.R +++ b/R/reacttools.R @@ -57,7 +57,3 @@ reactData <- function(tag) { list(tag = tag) } -#' @export -evalJS <- function(js_string) { - list(type = "js", js = babel_transform(js_string)) -} diff --git a/inst/www/react-tools/react-tools.js b/inst/www/react-tools/react-tools.js index 3eaa156..4db4e97 100644 --- a/inst/www/react-tools/react-tools.js +++ b/inst/www/react-tools/react-tools.js @@ -7,21 +7,10 @@ window.reactR = (function () { * @param {Object} tag */ function hydrate(components, tag) { - if (tag.type === "js") { - return window.eval(tag.js); - } if (tag.name[0] === tag.name[0].toUpperCase() && !components.hasOwnProperty(tag.name)) { throw new Error("Unknown component: " + tag.name); } - for (var k in tag.attribs) { - var v = tag.attribs[k]; - if ((typeof v === 'object') - && v.tag !== undefined - && v.tag.type === 'js') { - tag.attribs[k] = window.eval(v.tag.js); - } - } var args = [components[tag.name], tag.attribs]; for (var i = 0; i < tag.children.length; i++) { args.push(hydrate(components, tag.children[i])); From e177aa05e00dfedce6b88b7a4cf817320149181d Mon Sep 17 00:00:00 2001 From: Alan Dipert Date: Thu, 3 Jan 2019 08:19:37 -0800 Subject: [PATCH 16/77] Build fix attempts --- .Rbuildignore | 1 + NAMESPACE | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/.Rbuildignore b/.Rbuildignore index 3ccfcf0..ad98a25 100644 --- a/.Rbuildignore +++ b/.Rbuildignore @@ -1,3 +1,4 @@ +^examples/sparklineswidget/node_modules$ ^.*\.Rproj$ ^\.Rproj\.user$ ^\build diff --git a/NAMESPACE b/NAMESPACE index 95c1f76..4c690be 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -7,7 +7,6 @@ S3method("[[<-",react_component_builder) export(React) export(babel_transform) export(component) -export(evalJS) export(html_dependency_corejs) export(html_dependency_react) export(html_dependency_reacttools) From 38550496134d1b3791c9680f67e9c484b9c489e5 Mon Sep 17 00:00:00 2001 From: Alan Dipert Date: Thu, 3 Jan 2019 08:35:39 -0800 Subject: [PATCH 17/77] Fix reactR::component example --- R/reacttools.R | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/R/reacttools.R b/R/reacttools.R index f15e8c5..30a712f 100644 --- a/R/reacttools.R +++ b/R/reacttools.R @@ -12,10 +12,12 @@ isUpper <- function(s) { #' #' @examples #' component("ParentComponent", -#' x = 1, -#' y = 2, -#' component("ChildComponent"), -#' component("OtherChildComponent") +#' list( +#' x = 1, +#' y = 2, +#' component("ChildComponent"), +#' component("OtherChildComponent") +#' ) #' ) component <- function(name, varArgs = list()) { if (length(name) == 0 || !isUpper(substring(name, 1, 1))) { From 657ac053c5931e652ebb66ec9a31c63d07714b21 Mon Sep 17 00:00:00 2001 From: timelyportfolio Date: Thu, 3 Jan 2019 21:25:05 -0600 Subject: [PATCH 18/77] update version to 0.3.0 and date --- DESCRIPTION | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/DESCRIPTION b/DESCRIPTION index 48f071d..c3da3db 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,8 +1,8 @@ Package: reactR Type: Package Title: React Helpers -Version: 0.2.1 -Date: 2018-10-23 +Version: 0.3.0 +Date: 2019-01-03 Authors@R: c( person( "Facebook", "Inc" From 32a946777db15545d46204923b20b4ae74df1344 Mon Sep 17 00:00:00 2001 From: timelyportfolio Date: Thu, 3 Jan 2019 21:27:39 -0600 Subject: [PATCH 19/77] update React and React-DOM to 16.7.0 --- R/meta.R | 2 +- inst/www/react/react-dom.min.js | 392 ++++++++++++++++---------------- inst/www/react/react.min.js | 48 ++-- 3 files changed, 222 insertions(+), 220 deletions(-) diff --git a/R/meta.R b/R/meta.R index 8ceac75..b943a1e 100644 --- a/R/meta.R +++ b/R/meta.R @@ -1,3 +1,3 @@ #'@keywords internal -react_version <- function(){'16.6.0'} +react_version <- function(){'16.7.0'} babel_version <- function(){'6.26.0'} \ No newline at end of file diff --git a/inst/www/react/react-dom.min.js b/inst/www/react/react-dom.min.js index 8d54f89..cf4abe5 100644 --- a/inst/www/react/react-dom.min.js +++ b/inst/www/react/react-dom.min.js @@ -1,4 +1,4 @@ -/** @license React v16.6.0 +/** @license React v16.7.0 * react-dom.production.min.js * * Copyright (c) Facebook, Inc. and its affiliates. @@ -9,197 +9,199 @@ /* Modernizr 3.0.0pre (Custom Build) | MIT */ -'use strict';(function(fa,Ja){"object"===typeof exports&&"undefined"!==typeof module?module.exports=Ja(require("react")):"function"===typeof define&&define.amd?define(["react"],Ja):fa.ReactDOM=Ja(fa.React)})(this,function(fa){function Ja(a,b,c,d,e,f,g,h){if(!a){a=void 0;if(void 0===b)a=Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var k=[c,d,e,f,g,h],l=0;a=Error(b.replace(/%s/g,function(){return k[l++]})); -a.name="Invariant Violation"}a.framesToPop=1;throw a;}}function n(a){for(var b=arguments.length-1,c="https://reactjs.org/docs/error-decoder.html?invariant="+a,d=0;dthis.eventPool.length&&this.eventPool.push(a)}function ie(a){a.eventPool=[];a.getPooled=Lg;a.release=Mg}function je(a,b){switch(a){case "keyup":return-1!==Ng.indexOf(b.keyCode);case "keydown":return 229!==b.keyCode;case "keypress":case "mousedown":case "blur":return!0;default:return!1}}function ke(a){a=a.detail;return"object"===typeof a&&"data"in a?a.data:null}function Og(a,b){switch(a){case "compositionend":return ke(b); -case "keypress":if(32!==b.which)return null;le=!0;return me;case "textInput":return a=b.data,a===me&&le?null:a;default:return null}}function Pg(a,b){if(Ua)return"compositionend"===a||!Oc&&je(a,b)?(a=he(),Rb=Nc=ia=null,Ua=!1,a):null;switch(a){case "paste":return null;case "keypress":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1b}return!1}function G(a,b,c,d,e){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b}function Xc(a,b,c,d){var e=x.hasOwnProperty(b)? -x[b]:null;var f=null!==e?0===e.type:d?!1:!(2ac.length&&ac.push(a)}}}function We(a){Object.prototype.hasOwnProperty.call(a,bc)||(a[bc]=hh++,Xe[a[bc]]={});return Xe[a[bc]]}function cd(a){a= -a||("undefined"!==typeof document?document:void 0);if("undefined"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}function Ye(a){for(;a&&a.firstChild;)a=a.firstChild;return a}function Ze(a,b){var c=Ye(a);a=0;for(var d;c;){if(3===c.nodeType){d=a+c.textContent.length;if(a<=b&&d>=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Ye(c)}}function $e(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType? -$e(a,b.parentNode):"contains"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}function af(){for(var a=window,b=cd();b instanceof a.HTMLIFrameElement;){try{a=b.contentDocument.defaultView}catch(c){break}b=cd(a.document)}return b}function dd(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&("input"===b&&("text"===a.type||"search"===a.type||"tel"===a.type||"url"===a.type||"password"===a.type)||"textarea"===b||"true"===a.contentEditable)}function bf(a,b){var c= -b.window===b?b.document:9===b.nodeType?b:b.ownerDocument;if(ed||null==ya||ya!==cd(c))return null;c=ya;"selectionStart"in c&&dd(c)?c={start:c.selectionStart,end:c.selectionEnd}:(c=(c.ownerDocument&&c.ownerDocument.defaultView||window).getSelection(),c={anchorNode:c.anchorNode,anchorOffset:c.anchorOffset,focusNode:c.focusNode,focusOffset:c.focusOffset});return lb&&jb(lb,c)?null:(lb=c,a=D.getPooled(cf.select,fd,a,b),a.type="select",a.target=ya,La(a),a)}function ih(a){var b="";fa.Children.forEach(a,function(a){null!= -a&&(b+=a)});return b}function gd(a,b){a=E({children:void 0},b);if(b=ih(b.children))a.children=b;return a}function za(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e=b.length?void 0:n("93"),b=b[0]),c=b),null==c&&(c=""));a._wrapperState={initialValue:S(c)}}function ef(a,b){var c=S(b.value),d=S(b.defaultValue);null!=c&&(c=""+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue= -c));null!=d&&(a.defaultValue=""+d)}function ff(a){switch(a){case "svg":return"http://www.w3.org/2000/svg";case "math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function id(a,b){return null==a||"http://www.w3.org/1999/xhtml"===a?ff(b):"http://www.w3.org/2000/svg"===a&&"foreignObject"===b?"http://www.w3.org/1999/xhtml":a}function gf(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf("--");var e=c;var f=b[c];e=null==f||"boolean"=== -typeof f||""===f?"":d||"number"!==typeof f||0===f||mb.hasOwnProperty(e)&&mb[e]?(""+f).trim():f+"px";"float"===c&&(c="cssFloat");d?a.setProperty(c,e):a[c]=e}}function jd(a,b){b&&(jh[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML?n("137",a,""):void 0),null!=b.dangerouslySetInnerHTML&&(null!=b.children?n("60"):void 0,"object"===typeof b.dangerouslySetInnerHTML&&"__html"in b.dangerouslySetInnerHTML?void 0:n("61")),null!=b.style&&"object"!==typeof b.style?n("62",""):void 0)}function kd(a,b){if(-1=== -a.indexOf("-"))return"string"===typeof b.is;switch(a){case "annotation-xml":case "color-profile":case "font-face":case "font-face-src":case "font-face-uri":case "font-face-format":case "font-face-name":case "missing-glyph":return!1;default:return!0}}function T(a,b){a=9===a.nodeType||11===a.nodeType?a:a.ownerDocument;var c=We(a);b=Hc[b];for(var d=0;dNa||(a.current=nd[Na],nd[Na]=null,Na--)}function L(a,b,c){Na++;nd[Na]=a.current;a.current=b}function Wa(a,b){var c=a.type.contextTypes;if(!c)return X;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext; -var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}function M(a){a=a.childContextTypes;return null!==a&&void 0!==a}function dc(a){F(N,a);F(O,a)}function od(a){F(N,a);F(O,a)}function kf(a,b,c){O.current!==X?n("168"):void 0;L(O,b,a);L(N,c,a)}function lf(a,b,c){var d=a.stateNode;a=b.childContextTypes;if("function"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)e in a?void 0: -n("108",sa(b)||"Unknown",e);return E({},c,d)}function ec(a){var b=a.stateNode;b=b&&b.__reactInternalMemoizedMergedChildContext||X;la=O.current;L(O,b,a);L(N,N.current,a);return!0}function mf(a,b,c){var d=a.stateNode;d?void 0:n("169");c?(b=lf(a,b,la),d.__reactInternalMemoizedMergedChildContext=b,F(N,a),F(O,a),L(O,b,a)):F(N,a);L(N,c,a)}function nf(a){return function(b){try{return a(b)}catch(c){}}}function kh(a){if("undefined"===typeof __REACT_DEVTOOLS_GLOBAL_HOOK__)return!1;var b=__REACT_DEVTOOLS_GLOBAL_HOOK__; -if(b.isDisabled||!b.supportsFiber)return!0;try{var c=b.inject(a);pd=nf(function(a){return b.onCommitFiberRoot(c,a)});qd=nf(function(a){return b.onCommitFiberUnmount(c,a)})}catch(d){}return!0}function lh(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.firstContextDependency=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.effectTag=0;this.lastEffect=this.firstEffect= -this.nextEffect=null;this.childExpirationTime=this.expirationTime=0;this.alternate=null}function rd(a){a=a.prototype;return!(!a||!a.isReactComponent)}function mh(a){if("function"===typeof a)return rd(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Vc)return 11;if(a===Wc)return 14}return 2}function Aa(a,b,c){c=a.alternate;null===c?(c=ma(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.effectTag=0,c.nextEffect= -null,c.firstEffect=null,c.lastEffect=null);c.childExpirationTime=a.childExpirationTime;c.expirationTime=a.expirationTime;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;c.firstContextDependency=a.firstContextDependency;c.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}function fc(a,b,c,d,e,f){var g=2;d=a;if("function"===typeof a)rd(a)&&(g=1);else if("string"===typeof a)g=5;else a:switch(a){case ta:return Ba(c.children,e,f,b);case Sc:return of(c, -e|3,f,b);case Tc:return of(c,e|2,f,b);case Vb:return a=ma(12,c,b,e|4),a.elementType=Vb,a.type=Vb,a.expirationTime=f,a;case Uc:return a=ma(13,c,b,e),b=Uc,a.elementType=b,a.type=b,a.expirationTime=f,a;default:if("object"===typeof a&&null!==a)switch(a.$$typeof){case Be:g=10;break a;case Ae:g=9;break a;case Vc:g=11;break a;case Wc:g=14;break a;case Ce:g=16;d=null;break a}n("130",null==a?a:typeof a,"")}b=ma(g,c,b,e);b.elementType=a;b.type=d;b.expirationTime=f;return b}function Ba(a,b,c,d){a=ma(7,a,d,b); -a.expirationTime=c;return a}function of(a,b,c,d){a=ma(8,a,d,b);b=0===(b&1)?Tc:Sc;a.elementType=b;a.type=b;a.expirationTime=c;return a}function sd(a,b,c){a=ma(6,a,null,b);a.expirationTime=c;return a}function td(a,b,c){b=ma(4,null!==a.children?a.children:[],a.key,b);b.expirationTime=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}function ob(a,b){a.didError=!1;var c=a.earliestPendingTime;0===c?a.earliestPendingTime=a.latestPendingTime=b:c> -b?a.earliestPendingTime=b:a.latestPendingTimeb?a.earliestSuspendedTime=b:da)&&(e=d);a=e;0!==a&&0!==c&&ce){if(null===g&&(g=k,f=l),0===h||h>m)h=m}else l=tf(a,b,k,l,c,d),null!==k.callback&&(a.effectTag|=32,k.nextEffect=null,null===b.lastEffect?b.firstEffect=b.lastEffect=k:(b.lastEffect.nextEffect=k,b.lastEffect=k));k=k.next}m=null;for(k=b.firstCapturedUpdate;null!==k;){var n=k.expirationTime;if(n>e){if(null===m&&(m=k,null===g&&(f=l)),0===h||h>n)h=n}else l=tf(a,b,k,l,c,d),null!==k.callback&&(a.effectTag|=32,k.nextEffect=null,null=== -b.lastCapturedEffect?b.firstCapturedEffect=b.lastCapturedEffect=k:(b.lastCapturedEffect.nextEffect=k,b.lastCapturedEffect=k));k=k.next}null===g&&(b.lastUpdate=null);null===m?b.lastCapturedUpdate=null:a.effectTag|=32;null===g&&null===m&&(f=l);b.baseState=f;b.firstUpdate=g;b.firstCapturedUpdate=m;a.expirationTime=h;a.memoizedState=l}function uf(a,b,c,d){null!==b.firstCapturedUpdate&&(null!==b.lastUpdate&&(b.lastUpdate.next=b.firstCapturedUpdate,b.lastUpdate=b.lastCapturedUpdate),b.firstCapturedUpdate= -b.lastCapturedUpdate=null);vf(b.firstEffect,c);b.firstEffect=b.lastEffect=null;vf(b.firstCapturedEffect,c);b.firstCapturedEffect=b.lastCapturedEffect=null}function vf(a,b){for(;null!==a;){var c=a.callback;if(null!==c){a.callback=null;var d=b;"function"!==typeof c?n("191",c):void 0;c.call(d)}a=a.nextEffect}}function kc(a,b){return{value:a,source:b,stack:De(b)}}function wf(a,b){var c=a.type._context;L(vd,c._currentValue,a);c._currentValue=b}function wd(a){var b=vd.current;F(vd,a);a.type._context._currentValue= -b}function qb(a,b){lc=a;mc=Xa=null;a.firstContextDependency=null}function xf(a,b){if(mc!==a&&!1!==b&&0!==b){if("number"!==typeof b||1073741823===b)mc=a,b=1073741823;b={context:a,observedBits:b,next:null};null===Xa?(null===lc?n("293"):void 0,lc.firstContextDependency=Xa=b):Xa=Xa.next=b}return a._currentValue}function Ca(a){a===rb?n("174"):void 0;return a}function xd(a,b){L(sb,b,a);L(tb,a,a);L(U,rb,a);var c=b.nodeType;switch(c){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:id(null,"");break; -default:c=8===c?b.parentNode:b,b=c.namespaceURI||null,c=c.tagName,b=id(b,c)}F(U,a);L(U,b,a)}function ua(a){F(U,a);F(tb,a);F(sb,a)}function yf(a){Ca(sb.current);var b=Ca(U.current);var c=id(b,a.type);b!==c&&(L(tb,a,a),L(U,c,a))}function yd(a){tb.current===a&&(F(U,a),F(tb,a))}function nc(a,b,c,d){b=a.memoizedState;c=c(d,b);c=null===c||void 0===c?b:E({},b,c);a.memoizedState=c;d=a.updateQueue;null!==d&&0===a.expirationTime&&(d.baseState=c)}function zf(a,b,c,d,e,f,g){a=a.stateNode;return"function"===typeof a.shouldComponentUpdate? -a.shouldComponentUpdate(d,f,g):b.prototype&&b.prototype.isPureReactComponent?!jb(c,d)||!jb(e,f):!0}function Af(a,b,c,d){var e=!1;d=X;var f=b.contextType;"object"===typeof f&&null!==f?f=oc.currentDispatcher.readContext(f):(d=M(b)?la:O.current,e=b.contextTypes,f=(e=null!==e&&void 0!==e)?Wa(a,d):X);b=new b(c,f);a.memoizedState=null!==b.state&&void 0!==b.state?b.state:null;b.updater=pc;a.stateNode=b;b._reactInternalFiber=a;e&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=d,a.__reactInternalMemoizedMaskedChildContext= -f);return b}function Bf(a,b,c,d){a=b.state;"function"===typeof b.componentWillReceiveProps&&b.componentWillReceiveProps(c,d);"function"===typeof b.UNSAFE_componentWillReceiveProps&&b.UNSAFE_componentWillReceiveProps(c,d);b.state!==a&&pc.enqueueReplaceState(b,b.state,null)}function zd(a,b,c,d){var e=a.stateNode;e.props=c;e.state=a.memoizedState;e.refs=Cf;var f=b.contextType;"object"===typeof f&&null!==f?e.context=oc.currentDispatcher.readContext(f):(f=M(b)?la:O.current,e.context=Wa(a,f));f=a.updateQueue; -null!==f&&(pb(a,f,c,e,d),e.state=a.memoizedState);f=b.getDerivedStateFromProps;"function"===typeof f&&(nc(a,b,f,c),e.state=a.memoizedState);"function"===typeof b.getDerivedStateFromProps||"function"===typeof e.getSnapshotBeforeUpdate||"function"!==typeof e.UNSAFE_componentWillMount&&"function"!==typeof e.componentWillMount||(b=e.state,"function"===typeof e.componentWillMount&&e.componentWillMount(),"function"===typeof e.UNSAFE_componentWillMount&&e.UNSAFE_componentWillMount(),b!==e.state&&pc.enqueueReplaceState(e, -e.state,null),f=a.updateQueue,null!==f&&(pb(a,f,c,e,d),e.state=a.memoizedState));"function"===typeof e.componentDidMount&&(a.effectTag|=4)}function ub(a,b,c){a=c.ref;if(null!==a&&"function"!==typeof a&&"object"!==typeof a){if(c._owner){c=c._owner;var d=void 0;c&&(1!==c.tag?n("289"):void 0,d=c.stateNode);d?void 0:n("147",a);var e=""+a;if(null!==b&&null!==b.ref&&"function"===typeof b.ref&&b.ref._stringRef===e)return b.ref;b=function(a){var b=d.refs;b===Cf&&(b=d.refs={});null===a?delete b[e]:b[e]=a}; -b._stringRef=e;return b}"string"!==typeof a?n("284"):void 0;c._owner?void 0:n("290",a)}return a}function qc(a,b){"textarea"!==a.type&&n("31","[object Object]"===Object.prototype.toString.call(b)?"object with keys {"+Object.keys(b).join(", ")+"}":b,"")}function Df(a){function b(b,c){if(a){var d=b.lastEffect;null!==d?(d.nextEffect=c,b.lastEffect=c):b.firstEffect=b.lastEffect=c;c.nextEffect=null;c.effectTag=8}}function c(c,d){if(!a)return null;for(;null!==d;)b(c,d),d=d.sibling;return null}function d(a, -b){for(a=new Map;null!==b;)null!==b.key?a.set(b.key,b):a.set(b.index,b),b=b.sibling;return a}function e(a,b,c){a=Aa(a,b,c);a.index=0;a.sibling=null;return a}function f(b,c,d){b.index=d;if(!a)return c;d=b.alternate;if(null!==d)return d=d.index,dq?(v=n,n=null):v=n.sibling;var t=cb(e,n,h[q],k);if(null===t){null===n&&(n=v);break}a&&n&&null===t.alternate&&b(e,n);g=f(t,g,q);null===m?l=t:m.sibling=t;m=t;n=v}if(q===h.length)return c(e,n),l;if(null===n){for(;qv?(jc=q,q=null):jc=q.sibling;var u=cb(e,q,t.value,k);if(null===u){q||(q=jc);break}a&&q&&null===u.alternate&&b(e,q);g=f(u,g,v);null===m?l=u:m.sibling=u;m=u;q=jc}if(t.done)return c(e, -q),l;if(null===q){for(;!t.done;v++,t=h.next())t=p(e,t.value,k),null!==t&&(g=f(t,g,v),null===m?l=t:m.sibling=t,m=t);return l}for(q=d(e,q);!t.done;v++,t=h.next())t=r(q,e,v,t.value,k),null!==t&&(a&&null!==t.alternate&&q.delete(null===t.key?v:t.key),g=f(t,g,v),null===m?l=t:m.sibling=t,m=t);a&&q.forEach(function(a){return b(e,a)});return l}return function(a,d,f,h){var k="object"===typeof f&&null!==f&&f.type===ta&&null===f.key;k&&(f=f.props.children);var l="object"===typeof f&&null!==f;if(l)switch(f.$$typeof){case rc:a:{l= -f.key;for(k=d;null!==k;){if(k.key===l)if(7===k.tag?f.type===ta:k.elementType===f.type){c(a,k.sibling);d=e(k,f.type===ta?f.props.children:f.props,h);d.ref=ub(a,k,f);d.return=a;a=d;break a}else{c(a,k);break}else b(a,k);k=k.sibling}f.type===ta?(d=Ba(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=fc(f.type,f.key,f.props,null,a.mode,h),h.ref=ub(a,d,f),h.return=a,a=h)}return g(a);case Va:a:{for(k=f.key;null!==d;){if(d.key===k)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation=== -f.implementation){c(a,d.sibling);d=e(d,f.children||[],h);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=td(f,a.mode,h);d.return=a;a=d}return g(a)}if("string"===typeof f||"number"===typeof f)return f=""+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f,h),d.return=a,a=d):(c(a,d),d=sd(f,a.mode,h),d.return=a,a=d),g(a);if(sc(f))return u(a,d,f,h);if(gb(f))return H(a,d,f,h);l&&qc(a,f);if("undefined"===typeof f&&!k)switch(a.tag){case 1:case 0:h=a.type,n("152",h.displayName||h.name||"Component")}return c(a, -d)}}function Ef(a,b){var c=ma(5,null,null,0);c.elementType="DELETED";c.type="DELETED";c.stateNode=b;c.return=a;c.effectTag=8;null!==a.lastEffect?(a.lastEffect.nextEffect=c,a.lastEffect=c):a.firstEffect=a.lastEffect=c}function Ff(a,b){switch(a.tag){case 5:var c=a.type;b=1!==b.nodeType||c.toLowerCase()!==b.nodeName.toLowerCase()?null:b;return null!==b?(a.stateNode=b,!0):!1;case 6:return b=""===a.pendingProps||3!==b.nodeType?null:b,null!==b?(a.stateNode=b,!0):!1;default:return!1}}function Gf(a){if(Oa){var b= -Ya;if(b){var c=b;if(!Ff(a,b)){b=md(c);if(!b||!Ff(a,b)){a.effectTag|=2;Oa=!1;va=a;return}Ef(va,c)}va=a;Ya=jf(b)}else a.effectTag|=2,Oa=!1,va=a}}function Hf(a){for(a=a.return;null!==a&&5!==a.tag&&3!==a.tag;)a=a.return;va=a}function Ad(a){if(a!==va)return!1;if(!Oa)return Hf(a),Oa=!0,!1;var b=a.type;if(5!==a.tag||"head"!==b&&"body"!==b&&!ld(b,a.memoizedProps))for(b=Ya;b;)Ef(a,b),b=md(b);Hf(a);Ya=va?md(a.stateNode):null;return!0}function Bd(){Ya=va=null;Oa=!1}function nh(a){var b=a._result;switch(a._status){case 1:return b; -case 2:throw b;case 0:throw b;default:throw a._status=0,b=a._ctor,b=b(),b.then(function(b){0===a._status&&(b=b.default,a._status=1,a._result=b)},function(b){0===a._status&&(a._status=2,a._result=b)}),a._result=b,b;}}function Q(a,b,c,d){b.child=null===a?Cd(b,null,c,d):Da(b,a.child,c,d)}function If(a,b,c,d,e){c=c.render;var f=b.ref;if(!N.current&&b.memoizedProps===d&&f===(null!==a?a.ref:null))return ca(a,b,e);d=c(d,f);Q(a,b,d,e);return b.child}function Jf(a,b,c,d,e,f){if(null===a){var g=c.type;if("function"=== -typeof g&&!rd(g)&&void 0===g.defaultProps&&null===c.compare)return b.tag=15,b.type=g,Kf(a,b,g,d,e,f);a=fc(c.type,null,d,null,b.mode,f);a.ref=b.ref;a.return=b;return b.child=a}g=a.child;if(0===e||e>f)if(e=g.memoizedProps,c=c.compare,c=null!==c?c:jb,c(e,d)&&a.ref===b.ref)return ca(a,b,f);a=Aa(g,d,f);a.ref=b.ref;a.return=b;return b.child=a}function Kf(a,b,c,d,e,f){return null!==a&&(0===e||e>f)&&jb(a.memoizedProps,d)&&a.ref===b.ref?ca(a,b,f):Dd(a,b,c,d,f)}function Lf(a,b){var c=b.ref;if(null===a&&null!== -c||null!==a&&a.ref!==c)b.effectTag|=128}function Dd(a,b,c,d,e){var f=M(c)?la:O.current;f=Wa(b,f);qb(b,e);c=c(d,f);b.effectTag|=1;Q(a,b,c,e);return b.child}function Mf(a,b,c,d,e){if(M(c)){var f=!0;ec(b)}else f=!1;qb(b,e);if(null===b.stateNode)null!==a&&(a.alternate=null,b.alternate=null,b.effectTag|=2),Af(b,c,d,e),zd(b,c,d,e),d=!0;else if(null===a){var g=b.stateNode,h=b.memoizedProps;g.props=h;var k=g.context,l=c.contextType;"object"===typeof l&&null!==l?l=oc.currentDispatcher.readContext(l):(l=M(c)? -la:O.current,l=Wa(b,l));var m=c.getDerivedStateFromProps,n="function"===typeof m||"function"===typeof g.getSnapshotBeforeUpdate;n||"function"!==typeof g.UNSAFE_componentWillReceiveProps&&"function"!==typeof g.componentWillReceiveProps||(h!==d||k!==l)&&Bf(b,g,d,l);P=!1;var p=b.memoizedState;k=g.state=p;var r=b.updateQueue;null!==r&&(pb(b,r,d,g,e),k=b.memoizedState);h!==d||p!==k||N.current||P?("function"===typeof m&&(nc(b,c,m,d),k=b.memoizedState),(h=P||zf(b,c,h,d,p,k,l))?(n||"function"!==typeof g.UNSAFE_componentWillMount&& -"function"!==typeof g.componentWillMount||("function"===typeof g.componentWillMount&&g.componentWillMount(),"function"===typeof g.UNSAFE_componentWillMount&&g.UNSAFE_componentWillMount()),"function"===typeof g.componentDidMount&&(b.effectTag|=4)):("function"===typeof g.componentDidMount&&(b.effectTag|=4),b.memoizedProps=d,b.memoizedState=k),g.props=d,g.state=k,g.context=l,d=h):("function"===typeof g.componentDidMount&&(b.effectTag|=4),d=!1)}else g=b.stateNode,h=b.memoizedProps,g.props=h,k=g.context, -l=c.contextType,"object"===typeof l&&null!==l?l=oc.currentDispatcher.readContext(l):(l=M(c)?la:O.current,l=Wa(b,l)),m=c.getDerivedStateFromProps,(n="function"===typeof m||"function"===typeof g.getSnapshotBeforeUpdate)||"function"!==typeof g.UNSAFE_componentWillReceiveProps&&"function"!==typeof g.componentWillReceiveProps||(h!==d||k!==l)&&Bf(b,g,d,l),P=!1,k=b.memoizedState,p=g.state=k,r=b.updateQueue,null!==r&&(pb(b,r,d,g,e),p=b.memoizedState),h!==d||k!==p||N.current||P?("function"===typeof m&&(nc(b, -c,m,d),p=b.memoizedState),(m=P||zf(b,c,h,d,k,p,l))?(n||"function"!==typeof g.UNSAFE_componentWillUpdate&&"function"!==typeof g.componentWillUpdate||("function"===typeof g.componentWillUpdate&&g.componentWillUpdate(d,p,l),"function"===typeof g.UNSAFE_componentWillUpdate&&g.UNSAFE_componentWillUpdate(d,p,l)),"function"===typeof g.componentDidUpdate&&(b.effectTag|=4),"function"===typeof g.getSnapshotBeforeUpdate&&(b.effectTag|=256)):("function"!==typeof g.componentDidUpdate||h===a.memoizedProps&&k=== -a.memoizedState||(b.effectTag|=4),"function"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&k===a.memoizedState||(b.effectTag|=256),b.memoizedProps=d,b.memoizedState=p),g.props=d,g.state=p,g.context=l,d=m):("function"!==typeof g.componentDidUpdate||h===a.memoizedProps&&k===a.memoizedState||(b.effectTag|=4),"function"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&k===a.memoizedState||(b.effectTag|=256),d=!1);return Ed(a,b,c,d,f,e)}function Ed(a,b,c,d,e,f){Lf(a,b);var g=0!==(b.effectTag& -64);if(!d&&!g)return e&&mf(b,c,!1),ca(a,b,f);d=b.stateNode;oh.current=b;var h=g&&"function"!==typeof c.getDerivedStateFromError?null:d.render();b.effectTag|=1;null!==a&&g?(b.child=Da(b,a.child,null,f),b.child=Da(b,null,h,f)):Q(a,b,h,f);b.memoizedState=d.state;e&&mf(b,c,!0);return b.child}function Nf(a){var b=a.stateNode;b.pendingContext?kf(a,b.pendingContext,b.pendingContext!==b.context):b.context&&kf(a,b.context,!1);xd(a,b.containerInfo)}function oa(a,b){if(a&&a.defaultProps){b=E({},b);a=a.defaultProps; -for(var c in a)void 0===b[c]&&(b[c]=a[c])}return b}function Of(a,b,c){var d=b.mode,e=b.pendingProps,f=b.memoizedState;null!==f&&(f.alreadyCaptured?null!==a&&f===a.memoizedState?f={alreadyCaptured:!0,didTimeout:!0,timedOutAt:f.timedOutAt}:(f.alreadyCaptured=!0,f.didTimeout=!0):f=null);var g=null!==f&&f.didTimeout;if(null===a)g?(g=e.fallback,e=Ba(null,d,0,null),d=Ba(g,d,c,null),e.sibling=d,c=e,c.return=d.return=b):c=d=Cd(b,null,e.children,c);else{var h=a.memoizedState;null!==h&&h.didTimeout?(d=a.child, -a=d.sibling,g?(c=e.fallback,d=Aa(d,d.pendingProps,0),d.effectTag|=2,e=d.sibling=Aa(a,c,a.expirationTime),e.effectTag|=2,c=d,d.childExpirationTime=0,d=e,c.return=d.return=b):(g=a.child,d=Da(b,d.child,e.children,c),Da(b,g,null,c),c=d)):(a=a.child,g?(g=e.fallback,e=Ba(null,d,0,null),e.effectTag|=2,e.child=a,a.return=e,d=e.sibling=Ba(g,d,c,null),d.effectTag|=2,c=e,e.childExpirationTime=0,c.return=d.return=b):d=c=Da(b,a,e.children,c))}b.memoizedState=f;b.child=c;return d}function ca(a,b,c){null!==a&&(b.firstContextDependency= -a.firstContextDependency);var d=b.childExpirationTime;if(0===d||d>c)return null;null!==a&&b.child!==a.child?n("153"):void 0;if(null!==b.child){a=b.child;c=Aa(a,a.pendingProps,a.expirationTime);b.child=c;for(c.return=b;null!==a.sibling;)a=a.sibling,c=c.sibling=Aa(a,a.pendingProps,a.expirationTime),c.return=b;c.sibling=null}return b.child}function ph(a,b,c){var d=b.expirationTime;if(null!==a&&a.memoizedProps===b.pendingProps&&!N.current&&(0===d||d>c)){switch(b.tag){case 3:Nf(b);Bd();break;case 5:yf(b); -break;case 1:M(b.type)&&ec(b);break;case 4:xd(b,b.stateNode.containerInfo);break;case 10:wf(b,b.memoizedProps.value);break;case 13:if(d=b.memoizedState,null!==d&&d.didTimeout){d=b.child.childExpirationTime;if(0!==d&&d<=c)return Of(a,b,c);b=ca(a,b,c);return null!==b?b.sibling:null}}return ca(a,b,c)}b.expirationTime=0;switch(b.tag){case 2:d=b.elementType;null!==a&&(a.alternate=null,b.alternate=null,b.effectTag|=2);a=b.pendingProps;var e=Wa(b,O.current);qb(b,c);e=d(a,e);b.effectTag|=1;if("object"=== -typeof e&&null!==e&&"function"===typeof e.render&&void 0===e.$$typeof){b.tag=1;if(M(d)){var f=!0;ec(b)}else f=!1;b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null;var g=d.getDerivedStateFromProps;"function"===typeof g&&nc(b,d,g,a);e.updater=pc;b.stateNode=e;e._reactInternalFiber=b;zd(b,d,a,c);b=Ed(null,b,d,!0,f,c)}else b.tag=0,Q(null,b,e,c),b=b.child;return b;case 16:e=b.elementType;null!==a&&(a.alternate=null,b.alternate=null,b.effectTag|=2);f=b.pendingProps;a=nh(e);b.type=a;e=b.tag= -mh(a);f=oa(a,f);g=void 0;switch(e){case 0:g=Dd(null,b,a,f,c);break;case 1:g=Mf(null,b,a,f,c);break;case 11:g=If(null,b,a,f,c);break;case 14:g=Jf(null,b,a,oa(a.type,f),d,c);break;default:n("283",a)}return g;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:oa(d,e),Dd(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:oa(d,e),Mf(a,b,d,e,c);case 3:Nf(b);d=b.updateQueue;null===d?n("282"):void 0;e=b.memoizedState;e=null!==e?e.element:null;pb(b,d,b.pendingProps,null,c); -d=b.memoizedState.element;if(d===e)Bd(),b=ca(a,b,c);else{e=b.stateNode;if(e=(null===a||null===a.child)&&e.hydrate)Ya=jf(b.stateNode.containerInfo),va=b,e=Oa=!0;e?(b.effectTag|=2,b.child=Cd(b,null,d,c)):(Q(a,b,d,c),Bd());b=b.child}return b;case 5:return yf(b),null===a&&Gf(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,ld(d,e)?g=null:null!==f&&ld(d,f)&&(b.effectTag|=16),Lf(a,b),1073741823!==c&&b.mode&1&&e.hidden?(b.expirationTime=1073741823,b=null):(Q(a,b,g,c),b=b.child), -b;case 6:return null===a&&Gf(b),null;case 13:return Of(a,b,c);case 4:return xd(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Da(b,null,d,c):Q(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:oa(d,e),If(a,b,d,e,c);case 7:return Q(a,b,b.pendingProps,c),b.child;case 8:return Q(a,b,b.pendingProps.children,c),b.child;case 12:return Q(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;g=b.memoizedProps;f=e.value;wf(b,f);if(null!== -g){var h=g.value;f=h===f&&(0!==h||1/h===1/f)||h!==h&&f!==f?0:("function"===typeof d._calculateChangedBits?d._calculateChangedBits(h,f):1073741823)|0;if(0===f){if(g.children===e.children&&!N.current){b=ca(a,b,c);break a}}else for(g=b.child,null!==g&&(g.return=b);null!==g;){h=g.firstContextDependency;if(null!==h){do{if(h.context===d&&0!==(h.observedBits&f)){if(1===g.tag){var k=Y(c);k.tag=2;na(g,k)}if(0===g.expirationTime||g.expirationTime>c)g.expirationTime=c;k=g.alternate;null!==k&&(0===k.expirationTime|| -k.expirationTime>c)&&(k.expirationTime=c);for(var l=g.return;null!==l;){k=l.alternate;if(0===l.childExpirationTime||l.childExpirationTime>c)l.childExpirationTime=c,null!==k&&(0===k.childExpirationTime||k.childExpirationTime>c)&&(k.childExpirationTime=c);else if(null!==k&&(0===k.childExpirationTime||k.childExpirationTime>c))k.childExpirationTime=c;else break;l=l.return}}k=g.child;h=h.next}while(null!==h)}else k=10===g.tag?g.type===b.type?null:g.child:g.child;if(null!==k)k.return=g;else for(k=g;null!== -k;){if(k===b){k=null;break}g=k.sibling;if(null!==g){g.return=k.return;k=g;break}k=k.return}g=k}}Q(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,f=b.pendingProps,d=f.children,qb(b,c),e=xf(e,f.unstable_observedBits),d=d(e),b.effectTag|=1,Q(a,b,d,c),b.child;case 14:return e=b.type,f=oa(e.type,b.pendingProps),Jf(a,b,e,f,d,c);case 15:return Kf(a,b,b.type,b.pendingProps,d,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:oa(d,e),null!==a&&(a.alternate=null,b.alternate=null, -b.effectTag|=2),b.tag=1,M(d)?(a=!0,ec(b)):a=!1,qb(b,c),Af(b,d,e,c),zd(b,d,e,c),Ed(null,b,d,!0,a,c);default:n("156")}}function vb(a){a.effectTag|=4}function Pf(a,b){var c=b.source,d=b.stack;null===d&&null!==c&&(d=De(c));null!==c&&sa(c.type);b=b.value;null!==a&&1===a.tag&&sa(a.type);try{console.error(b)}catch(e){setTimeout(function(){throw e;})}}function Qf(a){var b=a.ref;if(null!==b)if("function"===typeof b)try{b(null)}catch(c){wb(a,c)}else b.current=null}function Rf(a){"function"===typeof qd&&qd(a); -switch(a.tag){case 1:Qf(a);var b=a.stateNode;if("function"===typeof b.componentWillUnmount)try{b.props=a.memoizedProps,b.state=a.memoizedState,b.componentWillUnmount()}catch(c){wb(a,c)}break;case 5:Qf(a);break;case 4:Sf(a)}}function Tf(a){return 5===a.tag||3===a.tag||4===a.tag}function Uf(a){a:{for(var b=a.return;null!==b;){if(Tf(b)){var c=b;break a}b=b.return}n("160");c=void 0}var d=b=void 0;switch(c.tag){case 5:b=c.stateNode;d=!1;break;case 3:b=c.stateNode.containerInfo;d=!0;break;case 4:b=c.stateNode.containerInfo; -d=!0;break;default:n("161")}c.effectTag&16&&(xb(b,""),c.effectTag&=-17);a:b:for(c=a;;){for(;null===c.sibling;){if(null===c.return||Tf(c.return)){c=null;break a}c=c.return}c.sibling.return=c.return;for(c=c.sibling;5!==c.tag&&6!==c.tag;){if(c.effectTag&2)continue b;if(null===c.child||4===c.tag)continue b;else c.child.return=c,c=c.child}if(!(c.effectTag&2)){c=c.stateNode;break a}}for(var e=a;;){if(5===e.tag||6===e.tag)if(c)if(d){var f=b,g=e.stateNode,h=c;8===f.nodeType?f.parentNode.insertBefore(g,h): -f.insertBefore(g,h)}else b.insertBefore(e.stateNode,c);else d?(g=b,h=e.stateNode,8===g.nodeType?(f=g.parentNode,f.insertBefore(h,g)):(f=g,f.appendChild(h)),g=g._reactRootContainer,null!==g&&void 0!==g||null!==f.onclick||(f.onclick=cc)):b.appendChild(e.stateNode);else if(4!==e.tag&&null!==e.child){e.child.return=e;e=e.child;continue}if(e===a)break;for(;null===e.sibling;){if(null===e.return||e.return===a)return;e=e.return}e.sibling.return=e.return;e=e.sibling}}function Sf(a){for(var b=a,c=!1,d=void 0, -e=void 0;;){if(!c){c=b.return;a:for(;;){null===c?n("160"):void 0;switch(c.tag){case 5:d=c.stateNode;e=!1;break a;case 3:d=c.stateNode.containerInfo;e=!0;break a;case 4:d=c.stateNode.containerInfo;e=!0;break a}c=c.return}c=!0}if(5===b.tag||6===b.tag){a:for(var f=b,g=f;;)if(Rf(g),null!==g.child&&4!==g.tag)g.child.return=g,g=g.child;else{if(g===f)break;for(;null===g.sibling;){if(null===g.return||g.return===f)break a;g=g.return}g.sibling.return=g.return;g=g.sibling}e?(f=d,g=b.stateNode,8===f.nodeType? -f.parentNode.removeChild(g):f.removeChild(g)):d.removeChild(b.stateNode)}else if(4===b.tag?(d=b.stateNode.containerInfo,e=!0):Rf(b),null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return;b=b.return;4===b.tag&&(c=!1)}b.sibling.return=b.return;b=b.sibling}}function Vf(a,b){switch(b.tag){case 1:break;case 5:var c=b.stateNode;if(null!=c){var d=b.memoizedProps,e=null!==a?a.memoizedProps:d;a=b.type;var f=b.updateQueue;b.updateQueue= -null;if(null!==f){c[Ob]=d;"input"===a&&"radio"===d.type&&null!=d.name&&Ie(c,d);kd(a,e);b=kd(a,d);for(e=0;e\x3c/script>",l=e.removeChild(e.firstChild)):"string"===typeof p.is?l=l.createElement(e,{is:p.is}):(l=l.createElement(e), -"select"===e&&p.multiple&&(l.multiple=!0)):l=l.createElementNS(k,e);e=l;e[V]=m;e[Ob]=f;ag(e,b,!1,!1);m=e;l=h;p=f;var cb=g,x=kd(l,p);switch(l){case "iframe":case "object":r("load",m);g=p;break;case "video":case "audio":for(g=0;g=u)r=0;else if(-1===r||ud||0!==f&&f>d||0!==g&&g>d){pf(a,d);Kd(a,b,d,a.expirationTime,-1);return}if(!a.didError&&!c){a.didError=!0;d=a.nextExpirationTimeToWorkOn=d;c=a.expirationTime=1;Kd(a,b,d,c,-1);return}}c||-1===Z?(a.pendingCommitExpirationTime=d,a.finishedWork=b):(pf(a,d),c=10*(qf(a,d)-2),cc?0:c))}}function wb(a,b){var c;a:{Pa&&!yb?n("263"):void 0;for(c=a.return;null!==c;){switch(c.tag){case 1:var d=c.stateNode; -if("function"===typeof c.type.getDerivedStateFromError||"function"===typeof d.componentDidCatch&&(null===Za||!Za.has(d))){a=kc(b,a);a=Xf(c,a,1);na(c,a);ab(c,1);c=void 0;break a}break;case 3:a=kc(b,a);a=Fd(c,a,1);na(c,a);ab(c,1);c=void 0;break a}c=c.return}3===a.tag&&(c=kc(b,a),c=Fd(a,c,1),na(a,c),ab(a,1));c=void 0}return c}function zb(a,b){0!==Ab?a=Ab:Pa?a=yb?1:J:b.mode&1?(a=wa?2+10*(((a-2+15)/10|0)+1):2+25*(((a-2+500)/25|0)+1),null!==pa&&a===J&&(a+=1)):a=1;wa&&a>qa&&(qa=a);return a}function sh(a, -b,c,d){var e=a.earliestSuspendedTime;var f=a.latestSuspendedTime;if(0!==e&&d>=e&&d<=f){f=e=d;a.didError=!1;var g=a.latestPingedTime;if(0===g||gb)a.expirationTime=b;var c=a.alternate;null!==c&&(0===c.expirationTime|| -c.expirationTime>b)&&(c.expirationTime=b);var d=a.return,e=null;if(null===d&&3===a.tag)e=a.stateNode;else for(;null!==d;){c=d.alternate;if(0===d.childExpirationTime||d.childExpirationTime>b)d.childExpirationTime=b;null!==c&&(0===c.childExpirationTime||c.childExpirationTime>b)&&(c.childExpirationTime=b);if(null===d.return&&3===d.tag){e=d.stateNode;break}d=d.return}return null===e?null:e}function ab(a,b){a=Ld(a,b);null!==a&&(!Pa&&0!==J&&bth&& -(Bb=0,n("185")))}function fg(a,b,c,d,e){var f=Ab;Ab=1;try{return a(b,c,d,e)}finally{Ab=f}}function Cb(){da=((Md()-Nd)/10|0)+2}function gg(a,b){if(0!==uc){if(b>uc)return;null!==vc&&uh(vc)}uc=b;a=Md()-Nd;vc=vh(wh,{timeout:10*(b-2)-a})}function Kd(a,b,c,d,e){a.expirationTime=d;0!==e||Jd()?0=c&&(b.nextExpirationTimeToWorkOn=da);b=b.nextScheduledRoot}while(b!== -ea)}R(0,a)}function R(a,b){Ea=b;wc();if(null!==Ea)for(Cb(),Qa=da;null!==aa&&0!==A&&(0===a||a>=A)&&(!zc||da>=A);)yc(aa,A,da>=A),wc(),Cb(),Qa=da;else for(;null!==aa&&0!==A&&(0===a||a>=A);)yc(aa,A,!0),wc();null!==Ea&&(uc=0,vc=null);0!==A&&gg(aa,A);Ea=null;zc=!1;Bb=0;Od=null;if(null!==db)for(a=db,db=null,b=0;ba.latestSuspendedTime?(a.earliestSuspendedTime=0,a.latestSuspendedTime=0,a.latestPingedTime=0,ob(a,h)):hX){var Ba=X;X=S;S=Ba}var Y=Ze(K,S),P=Ze(K,X);if(Y&&P&&(1!==Ga.rangeCount||Ga.anchorNode!==Y.node||Ga.anchorOffset!==Y.offset||Ga.focusNode!==P.node||Ga.focusOffset!==P.offset)){var ca=ka.createRange();ca.setStart(Y.node,Y.offset);Ga.removeAllRanges();S>X?(Ga.addRange(ca),Ga.extend(P.node,P.offset)):(ca.setEnd(P.node, -P.offset),Ga.addRange(ca))}}}for(var qa=[],W=K;W=W.parentNode;)1===W.nodeType&&qa.push({element:W,left:W.scrollLeft,top:W.scrollTop});"function"===typeof K.focus&&K.focus();for(var sa=0;sazh?!1:zc=!0}function Gd(a){null===aa?n("246"):void 0;aa.expirationTime=0;Fa||(Fa=!0,Ac=a)}function jg(a,b){var c=C;C=!0;try{return a(b)}finally{(C=c)||I||R(1,null)}}function kg(a,b){if(C&&!xc){xc=!0;try{return a(b)}finally{xc=!1}}return a(b)}function lg(a,b,c){if(wa)return a(b,c);C||I||0===qa||(R(qa,null),qa=0);var d=wa,e=C;C=wa=!0;try{return a(b,c)}finally{wa=d,(C=e)||I||R(1,null)}}function mg(a,b,c,d,e){var f=b.current;a:if(c){c=c._reactInternalFiber;b:{2===kb(c)&&1===c.tag? -void 0:n("170");var g=c;do{switch(g.tag){case 3:g=g.stateNode.context;break b;case 1:if(M(g.type)){g=g.stateNode.__reactInternalMemoizedMergedChildContext;break b}}g=g.return}while(null!==g);n("171");g=void 0}if(1===c.tag){var h=c.type;if(M(h)){c=lf(c,h,g);break a}}c=g}else c=X;null===b.context?b.context=c:b.pendingContext=c;b=e;e=Y(d);e.payload={element:a};b=void 0===b?null:b;null!==b&&(e.callback=b);na(f,e);ab(f,d);return d}function Rd(a,b,c,d){var e=b.current,f=$a();e=zb(f,e);return mg(a,b,c,e, -d)}function Sd(a){a=a.current;if(!a.child)return null;switch(a.child.tag){case 5:return a.child.stateNode;default:return a.child.stateNode}}function Ah(a,b,c){var d=3=Eb),me=String.fromCharCode(32),ra={beforeInput:{phasedRegistrationNames:{bubbled:"onBeforeInput",captured:"onBeforeInputCapture"},dependencies:["compositionend","keypress","textInput","paste"]},compositionEnd:{phasedRegistrationNames:{bubbled:"onCompositionEnd",captured:"onCompositionEndCapture"}, -dependencies:"blur compositionend keydown keypress keyup mousedown".split(" ")},compositionStart:{phasedRegistrationNames:{bubbled:"onCompositionStart",captured:"onCompositionStartCapture"},dependencies:"blur compositionstart keydown keypress keyup mousedown".split(" ")},compositionUpdate:{phasedRegistrationNames:{bubbled:"onCompositionUpdate",captured:"onCompositionUpdateCapture"},dependencies:"blur compositionupdate keydown keypress keyup mousedown".split(" ")}},le=!1,Ua=!1,Fh={eventTypes:ra,extractEvents:function(a, -b,c,d){var e=void 0;var f=void 0;if(Oc)b:{switch(a){case "compositionstart":e=ra.compositionStart;break b;case "compositionend":e=ra.compositionEnd;break b;case "compositionupdate":e=ra.compositionUpdate;break b}e=void 0}else Ua?je(a,c)&&(e=ra.compositionEnd):"keydown"===a&&229===c.keyCode&&(e=ra.compositionStart);e?(ne&&"ko"!==c.locale&&(Ua||e!==ra.compositionStart?e===ra.compositionEnd&&Ua&&(f=he()):(ia=d,Nc="value"in ia?ia.value:ia.textContent,Ua=!0)),e=Ch.getPooled(e,b,c,d),f?e.data=f:(f=ke(c), -null!==f&&(e.data=f)),La(e),f=e):f=null;(a=Eh?Og(a,c):Pg(a,c))?(b=Dh.getPooled(ra.beforeInput,b,c,d),b.data=a,La(b)):b=null;return null===f?b:null===b?f:[f,b]}},Pc=null,Ma=null,ja=null,te=function(a,b){return a(b)},Ve=function(a,b,c){return a(b,c)},ue=function(){},Qc=!1,Qg={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0},Vd=fa.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,Sg=/^(.*)[\\\/]/,ba="function"=== -typeof Symbol&&Symbol.for,rc=ba?Symbol.for("react.element"):60103,Va=ba?Symbol.for("react.portal"):60106,ta=ba?Symbol.for("react.fragment"):60107,Tc=ba?Symbol.for("react.strict_mode"):60108,Vb=ba?Symbol.for("react.profiler"):60114,Be=ba?Symbol.for("react.provider"):60109,Ae=ba?Symbol.for("react.context"):60110,Sc=ba?Symbol.for("react.concurrent_mode"):60111,Vc=ba?Symbol.for("react.forward_ref"):60112,Uc=ba?Symbol.for("react.suspense"):60113,Wc=ba?Symbol.for("react.memo"):60115,Ce=ba?Symbol.for("react.lazy"): -60116,ze="function"===typeof Symbol&&Symbol.iterator,Ug=/^[: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][: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\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,Ee=Object.prototype.hasOwnProperty,Ge={},Fe={},x={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(a){x[a]= -new G(a,0,!1,a,null)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(a){var b=a[0];x[b]=new G(b,1,!1,a[1],null)});["contentEditable","draggable","spellCheck","value"].forEach(function(a){x[a]=new G(a,2,!1,a.toLowerCase(),null)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(a){x[a]=new G(a,2,!1,a,null)});"allowFullScreen async autoFocus autoPlay controls default defer disabled formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(a){x[a]= -new G(a,3,!1,a.toLowerCase(),null)});["checked","multiple","muted","selected"].forEach(function(a){x[a]=new G(a,3,!0,a,null)});["capture","download"].forEach(function(a){x[a]=new G(a,4,!1,a,null)});["cols","rows","size","span"].forEach(function(a){x[a]=new G(a,6,!1,a,null)});["rowSpan","start"].forEach(function(a){x[a]=new G(a,5,!1,a.toLowerCase(),null)});var Wd=/[\-:]([a-z])/g,Xd=function(a){return a[1].toUpperCase()};"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".split(" ").forEach(function(a){var b= -a.replace(Wd,Xd);x[b]=new G(b,1,!1,a,null)});"xlink:actuate xlink:arcrole xlink:href xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(a){var b=a.replace(Wd,Xd);x[b]=new G(b,1,!1,a,"http://www.w3.org/1999/xlink")});["xml:base","xml:lang","xml:space"].forEach(function(a){var b=a.replace(Wd,Xd);x[b]=new G(b,1,!1,a,"http://www.w3.org/XML/1998/namespace")});x.tabIndex=new G("tabIndex",1,!1,"tabindex",null);var Le={change:{phasedRegistrationNames:{bubbled:"onChange",captured:"onChangeCapture"}, -dependencies:"blur change click focus input keydown keyup selectionchange".split(" ")}},hb=null,ib=null,Yd=!1;ka&&(Yd=we("input")&&(!document.documentMode||9=document.documentMode,cf={select:{phasedRegistrationNames:{bubbled:"onSelect",captured:"onSelectCapture"},dependencies:"blur contextmenu dragend focus keydown keyup mousedown mouseup selectionchange".split(" ")}}, -ya=null,fd=null,lb=null,ed=!1,Uh={eventTypes:cf,extractEvents:function(a,b,c,d){var e=d.window===d?d.document:9===d.nodeType?d:d.ownerDocument,f;if(!(f=!e)){a:{e=We(e);f=Hc.onSelect;for(var g=0;g"+b+"";for(b=Ec.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}}),xb=function(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent= -b},mb={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0, -floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},Vh=["Webkit","ms","Moz","O"];Object.keys(mb).forEach(function(a){Vh.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);mb[b]=mb[a]})});var jh=E({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0}),Zd=fa.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.Scheduler,uh=Zd.unstable_cancelCallback, -Md=Zd.unstable_now,vh=Zd.unstable_scheduleCallback,Pd=null,Qd=null,xh=setTimeout,ig=clearTimeout;new Set;var nd=[],Na=-1,X={},O={current:X},N={current:!1},la=X,pd=null,qd=null,ma=function(a,b,c,d){return new lh(a,b,c,d)},P=!1,vd={current:null},lc=null,Xa=null,mc=null,rb={},U={current:rb},tb={current:rb},sb={current:rb},oc=Vd.ReactCurrentOwner,Cf=(new fa.Component).refs,pc={isMounted:function(a){return(a=a._reactInternalFiber)?2===kb(a):!1},enqueueSetState:function(a,b,c){a=a._reactInternalFiber;var d= -$a();d=zb(d,a);var e=Y(d);e.payload=b;void 0!==c&&null!==c&&(e.callback=c);na(a,e);ab(a,d)},enqueueReplaceState:function(a,b,c){a=a._reactInternalFiber;var d=$a();d=zb(d,a);var e=Y(d);e.tag=1;e.payload=b;void 0!==c&&null!==c&&(e.callback=c);na(a,e);ab(a,d)},enqueueForceUpdate:function(a,b){a=a._reactInternalFiber;var c=$a();c=zb(c,a);var d=Y(c);d.tag=2;void 0!==b&&null!==b&&(d.callback=b);na(a,d);ab(a,c)}},sc=Array.isArray,Da=Df(!0),Cd=Df(!1),va=null,Ya=null,Oa=!1,oh=Vd.ReactCurrentOwner,ag=void 0, -Id=void 0,$f=void 0,bg=void 0;ag=function(a,b,c,d){for(c=b.child;null!==c;){if(5===c.tag||6===c.tag)a.appendChild(c.stateNode);else if(4!==c.tag&&null!==c.child){c.child.return=c;c=c.child;continue}if(c===b)break;for(;null===c.sibling;){if(null===c.return||c.return===b)return;c=c.return}c.sibling.return=c.return;c=c.sibling}};Id=function(a){};$f=function(a,b,c,d,e){var f=a.memoizedProps;if(f!==d){var g=b.stateNode;Ca(U.current);a=null;switch(c){case "input":f=Yc(g,f);d=Yc(g,d);a=[];break;case "option":f= -gd(g,f);d=gd(g,d);a=[];break;case "select":f=E({},f,{value:void 0});d=E({},d,{value:void 0});a=[];break;case "textarea":f=hd(g,f);d=hd(g,d);a=[];break;default:"function"!==typeof f.onClick&&"function"===typeof d.onClick&&(g.onclick=cc)}jd(c,d);g=c=void 0;var h=null;for(c in f)if(!d.hasOwnProperty(c)&&f.hasOwnProperty(c)&&null!=f[c])if("style"===c){var k=f[c];for(g in k)k.hasOwnProperty(g)&&(h||(h={}),h[g]="")}else"dangerouslySetInnerHTML"!==c&&"children"!==c&&"suppressContentEditableWarning"!==c&& -"suppressHydrationWarning"!==c&&"autoFocus"!==c&&(Ta.hasOwnProperty(c)?a||(a=[]):(a=a||[]).push(c,null));for(c in d){var l=d[c];k=null!=f?f[c]:void 0;if(d.hasOwnProperty(c)&&l!==k&&(null!=l||null!=k))if("style"===c)if(k){for(g in k)!k.hasOwnProperty(g)||l&&l.hasOwnProperty(g)||(h||(h={}),h[g]="");for(g in l)l.hasOwnProperty(g)&&k[g]!==l[g]&&(h||(h={}),h[g]=l[g])}else h||(a||(a=[]),a.push(c,h)),h=l;else"dangerouslySetInnerHTML"===c?(l=l?l.__html:void 0,k=k?k.__html:void 0,null!=l&&k!==l&&(a=a||[]).push(c, -""+l)):"children"===c?k===l||"string"!==typeof l&&"number"!==typeof l||(a=a||[]).push(c,""+l):"suppressContentEditableWarning"!==c&&"suppressHydrationWarning"!==c&&(Ta.hasOwnProperty(c)?(null!=l&&T(e,c),a||k===l||(a=[])):(a=a||[]).push(c,l))}h&&(a=a||[]).push("style",h);e=a;(b.updateQueue=e)&&vb(b)}};bg=function(a,b,c,d){c!==d&&vb(b)};var rh={readContext:xf},tc=Vd.ReactCurrentOwner,Td=0,Ab=0,Pa=!1,B=null,pa=null,J=0,Z=-1,Hd=!1,p=null,yb=!1,Za=null,ea=null,w=null,uc=0,vc=void 0,I=!1,aa=null,A=0,qa= -0,zc=!1,Fa=!1,Ac=null,Ea=null,C=!1,xc=!1,wa=!1,db=null,Nd=Md(),da=(Nd/10|0)+2,Qa=da,th=50,Bb=0,Od=null,zh=1;Pc=function(a,b,c){switch(b){case "input":Zc(a,c);b=c.name;if("radio"===c.type&&null!=b){for(c=a;c.parentNode;)c=c.parentNode;c=c.querySelectorAll("input[name="+JSON.stringify(""+b)+'][type="radio"]');for(b=0;bthis.eventPool.length&&this.eventPool.push(a)}function ie(a){a.eventPool=[];a.getPooled=Mg;a.release=Ng}function je(a,b){switch(a){case "keyup":return-1!==Og.indexOf(b.keyCode);case "keydown":return 229!==b.keyCode;case "keypress":case "mousedown":case "blur":return!0;default:return!1}}function ke(a){a=a.detail;return"object"===typeof a&&"data"in a?a.data:null}function Pg(a,b){switch(a){case "compositionend":return ke(b); +case "keypress":if(32!==b.which)return null;le=!0;return me;case "textInput":return a=b.data,a===me&&le?null:a;default:return null}}function Qg(a,b){if(Ja)return"compositionend"===a||!Pc&&je(a,b)?(a=he(),Rb=Oc=ja=null,Ja=!1,a):null;switch(a){case "paste":return null;case "keypress":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1b}return!1}function N(a,b,c,d,e){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b}function Zc(a,b,c,d){var e=x.hasOwnProperty(b)? +x[b]:null;var f=null!==e?0===e.type:d?!1:!(2ac.length&&ac.push(a)}}}function Ve(a){Object.prototype.hasOwnProperty.call(a,bc)||(a[bc]=ih++,We[a[bc]]= +{});return We[a[bc]]}function ed(a){a=a||("undefined"!==typeof document?document:void 0);if("undefined"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}function Xe(a){for(;a&&a.firstChild;)a=a.firstChild;return a}function Ye(a,b){var c=Xe(a);a=0;for(var d;c;){if(3===c.nodeType){d=a+c.textContent.length;if(a<=b&&d>=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Xe(c)}}function Ze(a,b){return a&&b?a=== +b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Ze(a,b.parentNode):"contains"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}function $e(){for(var a=window,b=ed();b instanceof a.HTMLIFrameElement;){try{a=b.contentDocument.defaultView}catch(c){break}b=ed(a.document)}return b}function fd(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&("input"===b&&("text"===a.type||"search"===a.type||"tel"===a.type||"url"===a.type||"password"===a.type)||"textarea"===b|| +"true"===a.contentEditable)}function af(a,b){var c=b.window===b?b.document:9===b.nodeType?b:b.ownerDocument;if(gd||null==Na||Na!==ed(c))return null;c=Na;"selectionStart"in c&&fd(c)?c={start:c.selectionStart,end:c.selectionEnd}:(c=(c.ownerDocument&&c.ownerDocument.defaultView||window).getSelection(),c={anchorNode:c.anchorNode,anchorOffset:c.anchorOffset,focusNode:c.focusNode,focusOffset:c.focusOffset});return lb&&jb(lb,c)?null:(lb=c,a=J.getPooled(bf.select,hd,a,b),a.type="select",a.target=Na,Ha(a), +a)}function jh(a){var b="";Z.Children.forEach(a,function(a){null!=a&&(b+=a)});return b}function id(a,b){a=F({children:void 0},b);if(b=jh(b.children))a.children=b;return a}function Oa(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e=b.length?void 0:m("93"),b=b[0]),c=b),null==c&&(c=""));a._wrapperState={initialValue:na(c)}}function df(a,b){var c=na(b.value),d=na(b.defaultValue);null!=c&&(c=""+c,c!== +a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c));null!=d&&(a.defaultValue=""+d)}function ef(a){switch(a){case "svg":return"http://www.w3.org/2000/svg";case "math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function kd(a,b){return null==a||"http://www.w3.org/1999/xhtml"===a?ef(b):"http://www.w3.org/2000/svg"===a&&"foreignObject"===b?"http://www.w3.org/1999/xhtml":a}function ff(a,b,c){return null==b||"boolean"===typeof b|| +""===b?"":c||"number"!==typeof b||0===b||mb.hasOwnProperty(a)&&mb[a]?(""+b).trim():b+"px"}function gf(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf("--"),e=ff(c,b[c],d);"float"===c&&(c="cssFloat");d?a.setProperty(c,e):a[c]=e}}function ld(a,b){b&&(kh[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML?m("137",a,""):void 0),null!=b.dangerouslySetInnerHTML&&(null!=b.children?m("60"):void 0,"object"===typeof b.dangerouslySetInnerHTML&&"__html"in b.dangerouslySetInnerHTML? +void 0:m("61")),null!=b.style&&"object"!==typeof b.style?m("62",""):void 0)}function md(a,b){if(-1===a.indexOf("-"))return"string"===typeof b.is;switch(a){case "annotation-xml":case "color-profile":case "font-face":case "font-face-src":case "font-face-uri":case "font-face-format":case "font-face-name":case "missing-glyph":return!1;default:return!0}}function ca(a,b){a=9===a.nodeType||11===a.nodeType?a:a.ownerDocument;var c=Ve(a);b=Hc[b];for(var d=0;dPa||(a.current=pd[Pa],pd[Pa]=null,Pa--)}function G(a,b,c){Pa++;pd[Pa]=a.current;a.current=b}function Qa(a,b){var c=a.type.contextTypes; +if(!c)return oa;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}function D(a){a=a.childContextTypes;return null!==a&&void 0!==a}function dc(a){C(O,a);C(E,a)}function qd(a){C(O,a);C(E,a)}function lf(a,b,c){E.current!==oa?m("168"):void 0;G(E,b,a);G(O,c,a)}function mf(a,b, +c){var d=a.stateNode;a=b.childContextTypes;if("function"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)e in a?void 0:m("108",la(b)||"Unknown",e);return F({},c,d)}function ec(a){var b=a.stateNode;b=b&&b.__reactInternalMemoizedMergedChildContext||oa;wa=E.current;G(E,b,a);G(O,O.current,a);return!0}function nf(a,b,c){var d=a.stateNode;d?void 0:m("169");c?(b=mf(a,b,wa),d.__reactInternalMemoizedMergedChildContext=b,C(O,a),C(E,a),G(E,b,a)):C(O,a);G(O,c,a)}function of(a){return function(b){try{return a(b)}catch(c){}}} +function mh(a){if("undefined"===typeof __REACT_DEVTOOLS_GLOBAL_HOOK__)return!1;var b=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(b.isDisabled||!b.supportsFiber)return!0;try{var c=b.inject(a);rd=of(function(a){return b.onCommitFiberRoot(c,a)});sd=of(function(a){return b.onCommitFiberUnmount(c,a)})}catch(d){}return!0}function nh(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.firstContextDependency= +this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.effectTag=0;this.lastEffect=this.firstEffect=this.nextEffect=null;this.childExpirationTime=this.expirationTime=0;this.alternate=null}function td(a){a=a.prototype;return!(!a||!a.isReactComponent)}function oh(a){if("function"===typeof a)return td(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Wc)return 11;if(a===Xc)return 14}return 2}function xa(a,b,c){c=a.alternate;null===c?(c=T(a.tag,b,a.key,a.mode),c.elementType=a.elementType, +c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.effectTag=0,c.nextEffect=null,c.firstEffect=null,c.lastEffect=null);c.childExpirationTime=a.childExpirationTime;c.expirationTime=a.expirationTime;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;c.firstContextDependency=a.firstContextDependency;c.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}function fc(a,b,c,d,e,f){var g=2;d=a;if("function"=== +typeof a)td(a)&&(g=1);else if("string"===typeof a)g=5;else a:switch(a){case ma:return pa(c.children,e,f,b);case Tc:return pf(c,e|3,f,b);case Uc:return pf(c,e|2,f,b);case Vb:return a=T(12,c,b,e|4),a.elementType=Vb,a.type=Vb,a.expirationTime=f,a;case Vc:return a=T(13,c,b,e),b=Vc,a.elementType=b,a.type=b,a.expirationTime=f,a;default:if("object"===typeof a&&null!==a)switch(a.$$typeof){case Be:g=10;break a;case Ae:g=9;break a;case Wc:g=11;break a;case Xc:g=14;break a;case Ce:g=16;d=null;break a}m("130", +null==a?a:typeof a,"")}b=T(g,c,b,e);b.elementType=a;b.type=d;b.expirationTime=f;return b}function pa(a,b,c,d){a=T(7,a,d,b);a.expirationTime=c;return a}function pf(a,b,c,d){a=T(8,a,d,b);b=0===(b&1)?Uc:Tc;a.elementType=b;a.type=b;a.expirationTime=c;return a}function ud(a,b,c){a=T(6,a,null,b);a.expirationTime=c;return a}function vd(a,b,c){b=T(4,null!==a.children?a.children:[],a.key,b);b.expirationTime=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation}; +return b}function pb(a,b){a.didError=!1;var c=a.earliestPendingTime;0===c?a.earliestPendingTime=a.latestPendingTime=b:cb&&(a.latestPendingTime=b);gc(b,a)}function qf(a,b){a.didError=!1;a.latestPingedTime>=b&&(a.latestPingedTime=0);var c=a.earliestPendingTime,d=a.latestPendingTime;c===b?a.earliestPendingTime=d===b?a.latestPendingTime=0:d:d===b&&(a.latestPendingTime=c);c=a.earliestSuspendedTime;d=a.latestSuspendedTime;0===c?a.earliestSuspendedTime=a.latestSuspendedTime= +b:cb&&(a.latestSuspendedTime=b);gc(b,a)}function rf(a,b){var c=a.earliestPendingTime;a=a.earliestSuspendedTime;c>b&&(b=c);a>b&&(b=a);return b}function gc(a,b){var c=b.earliestSuspendedTime,d=b.latestSuspendedTime,e=b.earliestPendingTime,f=b.latestPingedTime;e=0!==e?e:f;0===e&&(0===a||da&&(a=c);b.nextExpirationTimeToWorkOn=e;b.expirationTime=a}function hc(a){return{baseState:a,firstUpdate:null,lastUpdate:null,firstCapturedUpdate:null,lastCapturedUpdate:null, +firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null}}function wd(a){return{baseState:a.baseState,firstUpdate:a.firstUpdate,lastUpdate:a.lastUpdate,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null}}function qa(a){return{expirationTime:a,tag:0,payload:null,callback:null,next:null,nextEffect:null}}function ic(a,b){null===a.lastUpdate?a.firstUpdate=a.lastUpdate=b:(a.lastUpdate.next=b,a.lastUpdate= +b)}function da(a,b){var c=a.alternate;if(null===c){var d=a.updateQueue;var e=null;null===d&&(d=a.updateQueue=hc(a.memoizedState))}else d=a.updateQueue,e=c.updateQueue,null===d?null===e?(d=a.updateQueue=hc(a.memoizedState),e=c.updateQueue=hc(c.memoizedState)):d=a.updateQueue=wd(e):null===e&&(e=c.updateQueue=wd(d));null===e||d===e?ic(d,b):null===d.lastUpdate||null===e.lastUpdate?(ic(d,b),ic(e,b)):(ic(d,b),e.lastUpdate=b)}function sf(a,b){var c=a.updateQueue;c=null===c?a.updateQueue=hc(a.memoizedState): +tf(a,c);null===c.lastCapturedUpdate?c.firstCapturedUpdate=c.lastCapturedUpdate=b:(c.lastCapturedUpdate.next=b,c.lastCapturedUpdate=b)}function tf(a,b){var c=a.alternate;null!==c&&b===c.updateQueue&&(b=a.updateQueue=wd(b));return b}function uf(a,b,c,d,e,f){switch(c.tag){case 1:return a=c.payload,"function"===typeof a?a.call(f,d,e):a;case 3:a.effectTag=a.effectTag&-2049|64;case 0:a=c.payload;e="function"===typeof a?a.call(f,d,e):a;if(null===e||void 0===e)break;return F({},d,e);case 2:ra=!0}return d} +function qb(a,b,c,d,e){ra=!1;b=tf(a,b);for(var f=b.baseState,g=null,h=0,k=b.firstUpdate,l=f;null!==k;){var n=k.expirationTime;nr?(t=m,m=null):t=m.sibling;var v=Ff(e,m,h[r],k);if(null===v){null===m&&(m=t);break}a&&m&&null===v.alternate&&b(e,m);g=f(v,g,r);null===n?l=v:n.sibling=v;n=v;m=t}if(r===h.length)return c(e,m),l;if(null===m){for(;rv?(t=r,r=null):t=r.sibling;var Ta=Ff(e,r,q.value,k);if(null===Ta){r||(r=t);break}a&&r&&null===Ta.alternate&&b(e,r);g=f(Ta,g,v);null===n?l=Ta:n.sibling=Ta;n=Ta;r=t}if(q.done)return c(e, +r),l;if(null===r){for(;!q.done;v++,q=h.next())q=p(e,q.value,k),null!==q&&(g=f(q,g,v),null===n?l=q:n.sibling=q,n=q);return l}for(r=d(e,r);!q.done;v++,q=h.next())q=z(r,e,v,q.value,k),null!==q&&(a&&null!==q.alternate&&r.delete(null===q.key?v:q.key),g=f(q,g,v),null===n?l=q:n.sibling=q,n=q);a&&r.forEach(function(a){return b(e,a)});return l}return function(a,d,f,h){var k="object"===typeof f&&null!==f&&f.type===ma&&null===f.key;k&&(f=f.props.children);var l="object"===typeof f&&null!==f;if(l)switch(f.$$typeof){case oc:a:{l= +f.key;for(k=d;null!==k;){if(k.key===l)if(7===k.tag?f.type===ma:k.elementType===f.type){c(a,k.sibling);d=e(k,f.type===ma?f.props.children:f.props,h);d.ref=wb(a,k,f);d.return=a;a=d;break a}else{c(a,k);break}else b(a,k);k=k.sibling}f.type===ma?(d=pa(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=fc(f.type,f.key,f.props,null,a.mode,h),h.ref=wb(a,d,f),h.return=a,a=h)}return g(a);case Ma:a:{for(k=f.key;null!==d;){if(d.key===k)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation=== +f.implementation){c(a,d.sibling);d=e(d,f.children||[],h);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=vd(f,a.mode,h);d.return=a;a=d}return g(a)}if("string"===typeof f||"number"===typeof f)return f=""+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f,h),d.return=a,a=d):(c(a,d),d=ud(f,a.mode,h),d.return=a,a=d),g(a);if(pc(f))return y(a,d,f,h);if(gb(f))return u(a,d,f,h);l&&nc(a,f);if("undefined"===typeof f&&!k)switch(a.tag){case 1:case 0:h=a.type,m("152",h.displayName||h.name||"Component")}return c(a, +d)}}function Gf(a,b){var c=T(5,null,null,0);c.elementType="DELETED";c.type="DELETED";c.stateNode=b;c.return=a;c.effectTag=8;null!==a.lastEffect?(a.lastEffect.nextEffect=c,a.lastEffect=c):a.firstEffect=a.lastEffect=c}function Hf(a,b){switch(a.tag){case 5:var c=a.type;b=1!==b.nodeType||c.toLowerCase()!==b.nodeName.toLowerCase()?null:b;return null!==b?(a.stateNode=b,!0):!1;case 6:return b=""===a.pendingProps||3!==b.nodeType?null:b,null!==b?(a.stateNode=b,!0):!1;default:return!1}}function If(a){if(Aa){var b= +Ua;if(b){var c=b;if(!Hf(a,b)){b=od(c);if(!b||!Hf(a,b)){a.effectTag|=2;Aa=!1;ea=a;return}Gf(ea,c)}ea=a;Ua=kf(b)}else a.effectTag|=2,Aa=!1,ea=a}}function Jf(a){for(a=a.return;null!==a&&5!==a.tag&&3!==a.tag;)a=a.return;ea=a}function Cd(a){if(a!==ea)return!1;if(!Aa)return Jf(a),Aa=!0,!1;var b=a.type;if(5!==a.tag||"head"!==b&&"body"!==b&&!nd(b,a.memoizedProps))for(b=Ua;b;)Gf(a,b),b=od(b);Jf(a);Ua=ea?od(a.stateNode):null;return!0}function Dd(){Ua=ea=null;Aa=!1}function L(a,b,c,d){b.child=null===a?Ed(b, +null,c,d):Va(b,a.child,c,d)}function Kf(a,b,c,d,e){c=c.render;var f=b.ref;Ra(b,e);d=c(d,f);b.effectTag|=1;L(a,b,d,e);return b.child}function Lf(a,b,c,d,e,f){if(null===a){var g=c.type;if("function"===typeof g&&!td(g)&&void 0===g.defaultProps&&null===c.compare&&void 0===c.defaultProps)return b.tag=15,b.type=g,Mf(a,b,g,d,e,f);a=fc(c.type,null,d,null,b.mode,f);a.ref=b.ref;a.return=b;return b.child=a}g=a.child;if(e=c)return Qf(a,b,c);b=Ba(a,b,c);return null!==b?b.sibling:null}}return Ba(a,b,c)}b.expirationTime=0;switch(b.tag){case 2:d= +b.elementType;null!==a&&(a.alternate=null,b.alternate=null,b.effectTag|=2);a=b.pendingProps;var e=Qa(b,E.current);Ra(b,c);e=d(a,e);b.effectTag|=1;if("object"===typeof e&&null!==e&&"function"===typeof e.render&&void 0===e.$$typeof){b.tag=1;if(D(d)){var f=!0;ec(b)}else f=!1;b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null;var g=d.getDerivedStateFromProps;"function"===typeof g&&kc(b,d,g,a);e.updater=mc;b.stateNode=e;e._reactInternalFiber=b;Bd(b,d,a,c);b=Gd(null,b,d,!0,f,c)}else b.tag=0, +L(null,b,e,c),b=b.child;return b;case 16:e=b.elementType;null!==a&&(a.alternate=null,b.alternate=null,b.effectTag|=2);f=b.pendingProps;a=ph(e);b.type=a;e=b.tag=oh(a);f=S(a,f);g=void 0;switch(e){case 0:g=Fd(null,b,a,f,c);break;case 1:g=Of(null,b,a,f,c);break;case 11:g=Kf(null,b,a,f,c);break;case 14:g=Lf(null,b,a,S(a.type,f),d,c);break;default:m("306",a,"")}return g;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:S(d,e),Fd(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType=== +d?e:S(d,e),Of(a,b,d,e,c);case 3:Pf(b);d=b.updateQueue;null===d?m("282"):void 0;e=b.memoizedState;e=null!==e?e.element:null;qb(b,d,b.pendingProps,null,c);d=b.memoizedState.element;if(d===e)Dd(),b=Ba(a,b,c);else{e=b.stateNode;if(e=(null===a||null===a.child)&&e.hydrate)Ua=kf(b.stateNode.containerInfo),ea=b,e=Aa=!0;e?(b.effectTag|=2,b.child=Ed(b,null,d,c)):(L(a,b,d,c),Dd());b=b.child}return b;case 5:return zf(b),null===a&&If(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,nd(d, +e)?g=null:null!==f&&nd(d,f)&&(b.effectTag|=16),Nf(a,b),1!==c&&b.mode&1&&e.hidden?(b.expirationTime=1,b=null):(L(a,b,g,c),b=b.child),b;case 6:return null===a&&If(b),null;case 13:return Qf(a,b,c);case 4:return zd(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Va(b,null,d,c):L(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:S(d,e),Kf(a,b,d,e,c);case 7:return L(a,b,b.pendingProps,c),b.child;case 8:return L(a,b,b.pendingProps.children,c),b.child;case 12:return L(a, +b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;g=b.memoizedProps;f=e.value;xf(b,f);if(null!==g){var h=g.value;f=h===f&&(0!==h||1/h===1/f)||h!==h&&f!==f?0:("function"===typeof d._calculateChangedBits?d._calculateChangedBits(h,f):1073741823)|0;if(0===f){if(g.children===e.children&&!O.current){b=Ba(a,b,c);break a}}else for(g=b.child,null!==g&&(g.return=b);null!==g;){h=g.firstContextDependency;if(null!==h){do{if(h.context===d&&0!==(h.observedBits&f)){if(1===g.tag){var k= +qa(c);k.tag=2;da(g,k)}g.expirationTime\x3c/script>",l=e.removeChild(e.firstChild)):"string"===typeof q.is?l=l.createElement(e,{is:q.is}):(l=l.createElement(e),"select"===e&&q.multiple&&(l.multiple=!0)):l=l.createElementNS(k,e);e=l;e[aa]=n;e[Ob]=g;dg(e,b,!1,!1);n=e;l= +f;q=g;var p=h,z=md(l,q);switch(l){case "iframe":case "object":y("load",n);h=q;break;case "video":case "audio":for(h=0;hg&&(g=e),h>g&&(g=h),f=f.sibling;b.childExpirationTime=g}if(null!==u)return u;null!==c&&0===(c.effectTag&1024)&&(null===c.firstEffect&&(c.firstEffect=a.firstEffect),null!==a.lastEffect&&(null!==c.lastEffect&&(c.lastEffect.nextEffect=a.firstEffect),c.lastEffect=a.lastEffect),1=z)q=0;else if(-1===q||z component higher in the tree to provide a loading indicator or placeholder to display."+Yc(k))}Jd=!0;l=jc(l,k);g=h;do{switch(g.tag){case 3:g.effectTag|=2048;g.expirationTime=f;f=Hd(g,l,f);sf(g,f);break a;case 1:if(n=l,q=g.type,p=g.stateNode,0===(g.effectTag& +64)&&("function"===typeof q.getDerivedStateFromError||null!==p&&"function"===typeof p.componentDidCatch&&(null===ta||!ta.has(p)))){g.effectTag|=2048;g.expirationTime=f;f=Yf(g,n,f);sf(g,f);break a}}g=g.return}while(null!==g)}u=bg(e);continue}}}break}while(1);ua=!1;sb=ya=rb=qc.currentDispatcher=null;if(d)V=null,a.finishedWork=null;else if(null!==u)a.finishedWork=null;else{d=a.current.alternate;null===d?m("281"):void 0;V=null;if(Jd){e=a.latestPendingTime;f=a.latestSuspendedTime;g=a.latestPingedTime; +if(0!==e&&eb?0:b)):(a.pendingCommitExpirationTime=c,a.finishedWork=d)}}function Wa(a,b){for(var c=a.return;null!==c;){switch(c.tag){case 1:var d=c.stateNode;if("function"===typeof c.type.getDerivedStateFromError|| +"function"===typeof d.componentDidCatch&&(null===ta||!ta.has(d))){a=jc(b,a);a=Yf(c,a,1073741823);da(c,a);Da(c,1073741823);return}break;case 3:a=jc(b,a);a=Hd(c,a,1073741823);da(c,a);Da(c,1073741823);return}c=c.return}3===a.tag&&(c=jc(b,a),c=Hd(a,c,1073741823),da(a,c),Da(a,1073741823))}function Ab(a,b){0!==Bb?a=Bb:ua?a=sc?1073741823:M:b.mode&1?(a=Xa?1073741822-10*(((1073741822-a+15)/10|0)+1):1073741822-25*(((1073741822-a+500)/25|0)+1),null!==V&&a===M&&--a):a=1073741823;Xa&&(0===fa||a=d){a.didError=!1;b=a.latestPingedTime;if(0===b||b>c)a.latestPingedTime=c;gc(c,a);c=a.expirationTime;0!==c&&Md(a,c)}}function uh(a,b){var c=a.stateNode;null!==c&&c.delete(b);b=sa();b=Ab(b,a);a=hg(a,b);null!==a&&(pb(a,b),b=a.expirationTime,0!==b&&Md(a,b))}function hg(a,b){a.expirationTimeM&&Zf(),pb(a,b),ua&&!sc&&V===a||Md(a,a.expirationTime),Cb>Ah&&(Cb=0,m("185")))}function ig(a,b,c,d,e){var f=Bb;Bb=1073741823;try{return a(b,c,d,e)}finally{Bb= +f}}function Db(){W=1073741822-((Nd()-Od)/10|0)}function jg(a,b){if(0!==tc){if(ba.expirationTime&&(a.expirationTime=b);Q||(I?wc&&(Y=a,A=1073741823,xc(a,1073741823,!1)):1073741823===b?ha(1073741823,!1):jg(a,b))}function vc(){var a=0,b=null;if(null!==H)for(var c=H,d=X;null!==d;){var e=d.expirationTime;if(0===e){null===c||null===H?m("244"):void 0;if(d===d.nextScheduledRoot){X=H=d.nextScheduledRoot=null;break}else if(d===X)X=e=d.nextScheduledRoot,H.nextScheduledRoot=e,d.nextScheduledRoot= +null;else if(d===H){H=c;H.nextScheduledRoot=X;d.nextScheduledRoot=null;break}else c.nextScheduledRoot=d.nextScheduledRoot,d.nextScheduledRoot=null;d=c.nextScheduledRoot}else{e>a&&(a=e,b=d);if(d===H)break;if(1073741823===a)break;c=d;d=d.nextScheduledRoot}}Y=b;A=a}function rc(){return yc?!0:Fh()?yc=!0:!1}function Ch(){try{if(!rc()&&null!==X){Db();var a=X;do{var b=a.expirationTime;0!==b&&W<=b&&(a.nextExpirationTimeToWorkOn=W);a=a.nextScheduledRoot}while(a!==X)}ha(0,!0)}finally{yc=!1}}function ha(a,b){vc(); +if(b)for(Db(),Ya=W;null!==Y&&0!==A&&a<=A&&!(yc&&W>A);)xc(Y,A,W>A),vc(),Db(),Ya=W;else for(;null!==Y&&0!==A&&a<=A;)xc(Y,A,!1),vc();b&&(tc=0,uc=null);0!==A&&jg(Y,A);Cb=0;Pd=null;if(null!==Za)for(a=Za,Za=null,b=0;b=c&&(null===Za?Za=[d]:Za.push(d),d._defer)){a.finishedWork=b;a.expirationTime=0;return}a.finishedWork=null;a===Pd?Cb++:(Pd=a,Cb=0);sc=ua=!0;a.current=== +b?m("177"):void 0;c=a.pendingCommitExpirationTime;0===c?m("261"):void 0;a.pendingCommitExpirationTime=0;d=b.expirationTime;var e=b.childExpirationTime;d=e>d?e:d;a.didError=!1;0===d?(a.earliestPendingTime=0,a.latestPendingTime=0,a.earliestSuspendedTime=0,a.latestSuspendedTime=0,a.latestPingedTime=0):(dd?a.earliestPendingTime=a.latestPendingTime=0:a.earliestPendingTime>d&&(a.earliestPendingTime=a.latestPendingTime)),e=a.earliestSuspendedTime, +0===e?pb(a,d):de&&pb(a,d));gc(0,a);qc.current=null;1r&&(v=r,r=P,P=v),v=Ye(w,P),K=Ye(w,r),v&&K&&(1!==t.rangeCount||t.anchorNode!==v.node||t.anchorOffset!==v.offset||t.focusNode!==K.node||t.focusOffset!==K.offset)&&(B=B.createRange(),B.setStart(v.node,v.offset),t.removeAllRanges(),P>r?(t.addRange(B),t.extend(K.node,K.offset)):(B.setEnd(K.node,K.offset),t.addRange(B))))));B=[];for(t=w;t=t.parentNode;)1===t.nodeType&&B.push({element:t,left:t.scrollLeft, +top:t.scrollTop});"function"===typeof w.focus&&w.focus();for(w=0;wC?b:C;0===b&&(ta=null);a.expirationTime=b;a.finishedWork=null}function Id(a){null===Y?m("246"):void 0;Y.expirationTime=0;$a||($a=!0,zc=a)}function mg(a,b){var c=I;I=!0;try{return a(b)}finally{(I=c)||Q||ha(1073741823,!1)}}function ng(a,b){if(I&& +!wc){wc=!0;try{return a(b)}finally{wc=!1}}return a(b)}function og(a,b,c){if(Xa)return a(b,c);I||Q||0===fa||(ha(fa,!1),fa=0);var d=Xa,e=I;I=Xa=!0;try{return a(b,c)}finally{Xa=d,(I=e)||Q||ha(1073741823,!1)}}function pg(a,b,c,d,e){var f=b.current;a:if(c){c=c._reactInternalFiber;b:{2===kb(c)&&1===c.tag?void 0:m("170");var g=c;do{switch(g.tag){case 3:g=g.stateNode.context;break b;case 1:if(D(g.type)){g=g.stateNode.__reactInternalMemoizedMergedChildContext;break b}}g=g.return}while(null!==g);m("171");g= +void 0}if(1===c.tag){var h=c.type;if(D(h)){c=mf(c,h,g);break a}}c=g}else c=oa;null===b.context?b.context=c:b.pendingContext=c;b=e;e=qa(d);e.payload={element:a};b=void 0===b?null:b;null!==b&&(e.callback=b);zb();da(f,e);Da(f,d);return d}function Sd(a,b,c,d){var e=b.current,f=sa();e=Ab(f,e);return pg(a,b,c,e,d)}function Td(a){a=a.current;if(!a.child)return null;switch(a.child.tag){case 5:return a.child.stateNode;default:return a.child.stateNode}}function Gh(a,b,c){var d=3=Ud&&(b=Ud-1);this._expirationTime=Ud=b;this._root=a;this._callbacks=this._next=null;this._hasChildren=this._didComplete=!1;this._children=null;this._defer=!0}function bb(){this._callbacks=null;this._didCommit=!1;this._onCommit=this._onCommit.bind(this)}function cb(a,b,c){b=T(3,null,null,b?3:0);a={current:b,containerInfo:a, +pendingChildren:null,pingCache:null,earliestPendingTime:0,latestPendingTime:0,earliestSuspendedTime:0,latestSuspendedTime:0,latestPingedTime:0,didError:!1,pendingCommitExpirationTime:0,finishedWork:null,timeoutHandle:-1,context:null,pendingContext:null,hydrate:c,nextExpirationTimeToWorkOn:0,expirationTime:0,firstBatch:null,nextScheduledRoot:null};this._internalRoot=b.stateNode=a}function Bc(a){return!(!a||1!==a.nodeType&&9!==a.nodeType&&11!==a.nodeType&&(8!==a.nodeType||" react-mount-point-unstable "!== +a.nodeValue))}function Hh(a,b){b||(b=a?9===a.nodeType?a.documentElement:a.firstChild:null,b=!(!b||1!==b.nodeType||!b.hasAttribute("data-reactroot")));if(!b)for(var c;c=a.lastChild;)a.removeChild(c);return new cb(a,!1,b)}function Cc(a,b,c,d,e){Bc(c)?void 0:m("200");var f=c._reactRootContainer;if(f){if("function"===typeof e){var g=e;e=function(){var a=Td(f._internalRoot);g.call(a)}}null!=a?f.legacy_renderSubtreeIntoContainer(a,b,e):f.render(b,e)}else{f=c._reactRootContainer=Hh(c,d);if("function"=== +typeof e){var h=e;e=function(){var a=Td(f._internalRoot);h.call(a)}}ng(function(){null!=a?f.legacy_renderSubtreeIntoContainer(a,b,e):f.render(b,e)})}return Td(f._internalRoot)}function qg(a,b){var c=2=Fb),me=String.fromCharCode(32),ia={beforeInput:{phasedRegistrationNames:{bubbled:"onBeforeInput", +captured:"onBeforeInputCapture"},dependencies:["compositionend","keypress","textInput","paste"]},compositionEnd:{phasedRegistrationNames:{bubbled:"onCompositionEnd",captured:"onCompositionEndCapture"},dependencies:"blur compositionend keydown keypress keyup mousedown".split(" ")},compositionStart:{phasedRegistrationNames:{bubbled:"onCompositionStart",captured:"onCompositionStartCapture"},dependencies:"blur compositionstart keydown keypress keyup mousedown".split(" ")},compositionUpdate:{phasedRegistrationNames:{bubbled:"onCompositionUpdate", +captured:"onCompositionUpdateCapture"},dependencies:"blur compositionupdate keydown keypress keyup mousedown".split(" ")}},le=!1,Ja=!1,Lh={eventTypes:ia,extractEvents:function(a,b,c,d){var e=void 0;var f=void 0;if(Pc)b:{switch(a){case "compositionstart":e=ia.compositionStart;break b;case "compositionend":e=ia.compositionEnd;break b;case "compositionupdate":e=ia.compositionUpdate;break b}e=void 0}else Ja?je(a,c)&&(e=ia.compositionEnd):"keydown"===a&&229===c.keyCode&&(e=ia.compositionStart);e?(ne&& +"ko"!==c.locale&&(Ja||e!==ia.compositionStart?e===ia.compositionEnd&&Ja&&(f=he()):(ja=d,Oc="value"in ja?ja.value:ja.textContent,Ja=!0)),e=Ih.getPooled(e,b,c,d),f?e.data=f:(f=ke(c),null!==f&&(e.data=f)),Ha(e),f=e):f=null;(a=Kh?Pg(a,c):Qg(a,c))?(b=Jh.getPooled(ia.beforeInput,b,c,d),b.data=a,Ha(b)):b=null;return null===f?b:null===b?f:[f,b]}},Qc=null,Ka=null,La=null,te=function(a,b){return a(b)},Ue=function(a,b,c){return a(b,c)},ue=function(){},Rc=!1,Rg={color:!0,date:!0,datetime:!0,"datetime-local":!0, +email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0},Wd=Z.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,Tg=/^(.*)[\\\/]/,R="function"===typeof Symbol&&Symbol.for,oc=R?Symbol.for("react.element"):60103,Ma=R?Symbol.for("react.portal"):60106,ma=R?Symbol.for("react.fragment"):60107,Uc=R?Symbol.for("react.strict_mode"):60108,Vb=R?Symbol.for("react.profiler"):60114,Be=R?Symbol.for("react.provider"):60109,Ae=R?Symbol.for("react.context"):60110,Tc=R?Symbol.for("react.concurrent_mode"): +60111,Wc=R?Symbol.for("react.forward_ref"):60112,Vc=R?Symbol.for("react.suspense"):60113,Xc=R?Symbol.for("react.memo"):60115,Ce=R?Symbol.for("react.lazy"):60116,ze="function"===typeof Symbol&&Symbol.iterator,Vg=/^[: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][: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\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/, +De=Object.prototype.hasOwnProperty,Fe={},Ee={},x={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(a){x[a]=new N(a,0,!1,a,null)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(a){var b=a[0];x[b]=new N(b,1,!1,a[1],null)});["contentEditable","draggable","spellCheck","value"].forEach(function(a){x[a]=new N(a,2,!1, +a.toLowerCase(),null)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(a){x[a]=new N(a,2,!1,a,null)});"allowFullScreen async autoFocus autoPlay controls default defer disabled formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(a){x[a]=new N(a,3,!1,a.toLowerCase(),null)});["checked","multiple","muted","selected"].forEach(function(a){x[a]=new N(a,3,!0,a,null)});["capture", +"download"].forEach(function(a){x[a]=new N(a,4,!1,a,null)});["cols","rows","size","span"].forEach(function(a){x[a]=new N(a,6,!1,a,null)});["rowSpan","start"].forEach(function(a){x[a]=new N(a,5,!1,a.toLowerCase(),null)});var Xd=/[\-:]([a-z])/g,Yd=function(a){return a[1].toUpperCase()};"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".split(" ").forEach(function(a){var b= +a.replace(Xd,Yd);x[b]=new N(b,1,!1,a,null)});"xlink:actuate xlink:arcrole xlink:href xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(a){var b=a.replace(Xd,Yd);x[b]=new N(b,1,!1,a,"http://www.w3.org/1999/xlink")});["xml:base","xml:lang","xml:space"].forEach(function(a){var b=a.replace(Xd,Yd);x[b]=new N(b,1,!1,a,"http://www.w3.org/XML/1998/namespace")});x.tabIndex=new N("tabIndex",1,!1,"tabindex",null);var Ke={change:{phasedRegistrationNames:{bubbled:"onChange",captured:"onChangeCapture"}, +dependencies:"blur change click focus input keydown keyup selectionchange".split(" ")}},hb=null,ib=null,Zd=!1;ka&&(Zd=we("input")&&(!document.documentMode||9=document.documentMode,bf={select:{phasedRegistrationNames:{bubbled:"onSelect", +captured:"onSelectCapture"},dependencies:"blur contextmenu dragend focus keydown keyup mousedown mouseup selectionchange".split(" ")}},Na=null,hd=null,lb=null,gd=!1,$h={eventTypes:bf,extractEvents:function(a,b,c,d){var e=d.window===d?d.document:9===d.nodeType?d:d.ownerDocument,f;if(!(f=!e)){a:{e=Ve(e);f=Hc.onSelect;for(var g=0;g"+b+"";for(b=Dc.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}}), +ob=function(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b},mb={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0, +lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},ai=["Webkit","ms","Moz","O"];Object.keys(mb).forEach(function(a){ai.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);mb[b]=mb[a]})});var kh=F({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0, +source:!0,track:!0,wbr:!0}),Ec=Z.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.Scheduler,ag=Ec.unstable_cancelCallback,Nd=Ec.unstable_now,Bh=Ec.unstable_scheduleCallback,Fh=Ec.unstable_shouldYield,Qd=null,Rd=null,Dh="function"===typeof setTimeout?setTimeout:void 0,lg="function"===typeof clearTimeout?clearTimeout:void 0;new Set;var pd=[],Pa=-1,oa={},E={current:oa},O={current:!1},wa=oa,rd=null,sd=null,T=function(a,b,c,d){return new nh(a,b,c,d)},ra=!1,xd={current:null},rb=null,ya=null,sb=null,tb= +{},U={current:tb},vb={current:tb},ub={current:tb},lc=Wd.ReactCurrentOwner,Df=(new Z.Component).refs,mc={isMounted:function(a){return(a=a._reactInternalFiber)?2===kb(a):!1},enqueueSetState:function(a,b,c){a=a._reactInternalFiber;var d=sa();d=Ab(d,a);var e=qa(d);e.payload=b;void 0!==c&&null!==c&&(e.callback=c);zb();da(a,e);Da(a,d)},enqueueReplaceState:function(a,b,c){a=a._reactInternalFiber;var d=sa();d=Ab(d,a);var e=qa(d);e.tag=1;e.payload=b;void 0!==c&&null!==c&&(e.callback=c);zb();da(a,e);Da(a,d)}, +enqueueForceUpdate:function(a,b){a=a._reactInternalFiber;var c=sa();c=Ab(c,a);var d=qa(c);d.tag=2;void 0!==b&&null!==b&&(d.callback=b);zb();da(a,d);Da(a,c)}},pc=Array.isArray,Va=Ef(!0),Ed=Ef(!1),ea=null,Ua=null,Aa=!1,qh=Wd.ReactCurrentOwner,dg=void 0,Kd=void 0,cg=void 0,eg=void 0;dg=function(a,b,c,d){for(c=b.child;null!==c;){if(5===c.tag||6===c.tag)a.appendChild(c.stateNode);else if(4!==c.tag&&null!==c.child){c.child.return=c;c=c.child;continue}if(c===b)break;for(;null===c.sibling;){if(null===c.return|| +c.return===b)return;c=c.return}c.sibling.return=c.return;c=c.sibling}};Kd=function(a){};cg=function(a,b,c,d,e){var f=a.memoizedProps;if(f!==d){var g=b.stateNode;za(U.current);a=null;switch(c){case "input":f=$c(g,f);d=$c(g,d);a=[];break;case "option":f=id(g,f);d=id(g,d);a=[];break;case "select":f=F({},f,{value:void 0});d=F({},d,{value:void 0});a=[];break;case "textarea":f=jd(g,f);d=jd(g,d);a=[];break;default:"function"!==typeof f.onClick&&"function"===typeof d.onClick&&(g.onclick=cc)}ld(c,d);g=c=void 0; +var h=null;for(c in f)if(!d.hasOwnProperty(c)&&f.hasOwnProperty(c)&&null!=f[c])if("style"===c){var k=f[c];for(g in k)k.hasOwnProperty(g)&&(h||(h={}),h[g]="")}else"dangerouslySetInnerHTML"!==c&&"children"!==c&&"suppressContentEditableWarning"!==c&&"suppressHydrationWarning"!==c&&"autoFocus"!==c&&(Fa.hasOwnProperty(c)?a||(a=[]):(a=a||[]).push(c,null));for(c in d){var l=d[c];k=null!=f?f[c]:void 0;if(d.hasOwnProperty(c)&&l!==k&&(null!=l||null!=k))if("style"===c)if(k){for(g in k)!k.hasOwnProperty(g)|| +l&&l.hasOwnProperty(g)||(h||(h={}),h[g]="");for(g in l)l.hasOwnProperty(g)&&k[g]!==l[g]&&(h||(h={}),h[g]=l[g])}else h||(a||(a=[]),a.push(c,h)),h=l;else"dangerouslySetInnerHTML"===c?(l=l?l.__html:void 0,k=k?k.__html:void 0,null!=l&&k!==l&&(a=a||[]).push(c,""+l)):"children"===c?k===l||"string"!==typeof l&&"number"!==typeof l||(a=a||[]).push(c,""+l):"suppressContentEditableWarning"!==c&&"suppressHydrationWarning"!==c&&(Fa.hasOwnProperty(c)?(null!=l&&ca(e,c),a||k===l||(a=[])):(a=a||[]).push(c,l))}h&& +(a=a||[]).push("style",h);e=a;(b.updateQueue=e)&&yb(b)}};eg=function(a,b,c,d){c!==d&&yb(b)};var th="function"===typeof WeakSet?WeakSet:Set,yh="function"===typeof WeakMap?WeakMap:Map,xh={readContext:yf},qc=Wd.ReactCurrentOwner,Ud=1073741822,Bb=0,ua=!1,u=null,V=null,M=0,Ca=-1,Jd=!1,p=null,sc=!1,wh=null,$f=null,ta=null,X=null,H=null,tc=0,uc=void 0,Q=!1,Y=null,A=0,fa=0,$a=!1,zc=null,I=!1,wc=!1,Xa=!1,Za=null,Od=Nd(),W=1073741822-(Od/10|0),Ya=W,Ah=50,Cb=0,Pd=null,yc=!1;Qc=function(a,b,c){switch(b){case "input":ad(a, +c);b=c.name;if("radio"===c.type&&null!=b){for(c=a;c.parentNode;)c=c.parentNode;c=c.querySelectorAll("input[name="+JSON.stringify(""+b)+'][type="radio"]');for(b=0;b=b;)c=d,d=d._next;a._next=d;null!==c&&(c._next=a)}return a};(function(a,b,c){te=a;Ue=b;ue=c})(mg,og,function(){Q||0===fa||(ha(fa,!1),fa=0)});var Cg={createPortal:qg,findDOMNode:function(a){if(null== +a)return null;if(1===a.nodeType)return a;var b=a._reactInternalFiber;void 0===b&&("function"===typeof a.render?m("188"):m("268",Object.keys(a)));a=Pe(b);a=null===a?null:a.stateNode;return a},hydrate:function(a,b,c){return Cc(null,a,b,!0,c)},render:function(a,b,c){return Cc(null,a,b,!1,c)},unstable_renderSubtreeIntoContainer:function(a,b,c,d){null==a||void 0===a._reactInternalFiber?m("38"):void 0;return Cc(a,b,c,!1,d)},unmountComponentAtNode:function(a){Bc(a)?void 0:m("40");return a._reactRootContainer? +(ng(function(){Cc(null,null,a,!1,function(){a._reactRootContainer=null})}),!0):!1},unstable_createPortal:function(){return qg.apply(void 0,arguments)},unstable_batchedUpdates:mg,unstable_interactiveUpdates:og,flushSync:function(a,b){Q?m("187"):void 0;var c=I;I=!0;try{return ig(a,b)}finally{I=c,ha(1073741823,!1)}},unstable_createRoot:function(a,b){Bc(a)?void 0:m("299","unstable_createRoot");return new cb(a,!0,null!=b&&!0===b.hydrate)},unstable_flushControlled:function(a){var b=I;I=!0;try{ig(a)}finally{(I= +b)||Q||ha(1073741823,!1)}},__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:{Events:[ee,va,Lc,Vd.injectEventPluginsByName,Gc,Ha,function(a){Ic(a,Lg)},qe,re,Yb,Kc]}};(function(a){var b=a.findFiberByHostInstance;return mh(F({},a,{overrideProps:null,findHostInstanceByFiber:function(a){a=Pe(a);return null===a?null:a.stateNode},findFiberByHostInstance:function(a){return b?b(a):null}}))})({findFiberByHostInstance:Nb,bundleType:0,version:"16.7.0",rendererPackageName:"react-dom"});var Dg= +{default:Cg},Eg=Dg&&Cg||Dg;return Eg.default||Eg}); diff --git a/inst/www/react/react.min.js b/inst/www/react/react.min.js index b315571..7a3ea7d 100644 --- a/inst/www/react/react.min.js +++ b/inst/www/react/react.min.js @@ -1,4 +1,4 @@ -/** @license React v16.6.0 +/** @license React v16.7.0 * react.production.min.js * * Copyright (c) Facebook, Inc. and its affiliates. @@ -6,26 +6,26 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ -'use strict';(function(L,p){"object"===typeof exports&&"undefined"!==typeof module?module.exports=p():"function"===typeof define&&define.amd?define(p):L.React=p()})(this,function(){function L(a,b,c,f,n,d,e,h){if(!a){a=void 0;if(void 0===b)a=Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var g=[c,f,n,d,e,h],ta=0;a=Error(b.replace(/%s/g,function(){return g[ta++]}));a.name="Invariant Violation"}a.framesToPop= -1;throw a;}}function p(a){for(var b=arguments.length-1,c="https://reactjs.org/docs/error-decoder.html?invariant="+a,f=0;f=b){c=a;break}a=a.next}while(a!==d);null===c?c= -d:c===d&&(d=g,u());b=c.previous;b.next=c.previous=g;g.next=c;g.previous=b}}function Q(){if(-1===m&&null!==d&&1===d.priorityLevel){v=!0;P.didTimeout=!0;try{do O();while(null!==d&&1===d.priorityLevel)}finally{v=!1,null!==d?u():E=!1}}}function ua(a){v=!0;P.didTimeout=a;try{if(a)for(;null!==d;){var b=l();if(d.expirationTime<=b){do O();while(null!==d&&d.expirationTime<=b)}else break}else if(null!==d){do O();while(null!==d&&0G.length&&G.push(a)}function T(a,b,c,f){var d=typeof a;if("undefined"===d||"boolean"=== -d)a=null;var g=!1;if(null===a)g=!0;else switch(d){case "string":case "number":g=!0;break;case "object":switch(a.$$typeof){case y:case xa:g=!0}}if(g)return c(f,a,""===b?"."+U(a,0):b),1;g=0;b=""===b?".":b+":";if(Array.isArray(a))for(var e=0;ea;a++)b["_"+String.fromCharCode(a)]=a;if("0123456789"!== -Object.getOwnPropertyNames(b).map(function(a){return b[a]}).join(""))return!1;var c={};"abcdefghijklmnopqrst".split("").forEach(function(a){c[a]=a});return"abcdefghijklmnopqrst"!==Object.keys(Object.assign({},c)).join("")?!1:!0}catch(f){return!1}}()?Object.assign:function(a,b){if(null===a||void 0===a)throw new TypeError("Object.assign cannot be called with null or undefined");var c=Object(a);for(var d,e=1;e=J-c)if(-1!==b&&b<=c)d=!0;else{C||(C=!0,Y(ba));t=a;B=b;return}if(null!== -a){Z=!0;try{a(d)}finally{Z=!1}}}},!1);var ba=function(a){if(null!==t){Y(ba);var b=a-J+D;bb&&(b=8),D=bb?window.postMessage(aa,"*"):C||(C=!0,Y(ba))};N=function(){t=null;I=!1;B=-1}}var Oa=0,R={current:null,currentDispatcher:null};e={ReactCurrentOwner:R,assign:H};H(e,{Scheduler:{unstable_cancelCallback:function(a){var b=a.next;if(null!==b){if(b===a)d=null;else{a===d&&(d=b);var c=a.previous;c.next= -b;b.previous=c}a.next=a.previous=null}},unstable_now:l,unstable_scheduleCallback:function(a,b){var c=-1!==m?m:l();if("object"===typeof b&&null!==b&&"number"===typeof b.timeout)b=c+b.timeout;else switch(k){case 1:b=c+-1;break;case 2:b=c+250;break;case 4:b=c+1073741823;break;default:b=c+5E3}a={callback:a,priorityLevel:k,expirationTime:b,next:null,previous:null};if(null===d)d=a.next=a.previous=a,u();else{c=null;var f=d;do{if(f.expirationTime>b){c=f;break}f=f.next}while(f!==d);null===c?c=d:c===d&&(d= -a,u());b=c.previous;b.next=c.previous=a;a.next=c;a.previous=b}return a},unstable_runWithPriority:function(a,b){switch(a){case 1:case 2:case 3:case 4:break;default:a=3}var c=k,d=m;k=a;m=l();try{return b()}finally{k=c,m=d,Q()}},unstable_wrapCallback:function(a){var b=k;return function(){var c=k,d=m;k=b;m=l();try{return a.apply(this,arguments)}finally{k=c,m=d,Q()}}},unstable_getCurrentPriorityLevel:function(){return k}},SchedulerTracing:{__interactionsRef:null,__subscriberRef:null,unstable_clear:function(a){return a()}, -unstable_getCurrent:function(){return null},unstable_getThreadID:function(){return++Oa},unstable_subscribe:function(a){},unstable_trace:function(a,b,c){return c()},unstable_unsubscribe:function(a){},unstable_wrap:function(a){return a}}});var ha=Object.prototype.hasOwnProperty,ia={key:!0,ref:!0,__self:!0,__source:!0},ma=/\/+/g,G=[];q={Children:{map:function(a,b,c){if(null==a)return a;var d=[];W(a,d,null,b,c);return d},forEach:function(a,b,c){if(null==a)return a;b=ja(null,null,b,c);V(a,ya,b);ka(b)}, -count:function(a){return V(a,function(){return null},null)},toArray:function(a){var b=[];W(a,b,null,function(a){return a});return b},only:function(a){S(a)?void 0:p("143");return a}},createRef:function(){return{current:null}},Component:r,PureComponent:M,createContext:function(a,b){void 0===b&&(b=null);a={$$typeof:Ca,_calculateChangedBits:b,_currentValue:a,_currentValue2:a,Provider:null,Consumer:null};a.Provider={$$typeof:Ba,_context:a};return a.Consumer=a},forwardRef:function(a){return{$$typeof:Ea, -render:a}},lazy:function(a){return{$$typeof:Ha,_ctor:a,_status:-1,_result:null}},memo:function(a,b){return{$$typeof:Ga,type:a,compare:void 0===b?null:b}},Fragment:q,StrictMode:X,unstable_ConcurrentMode:Da,Suspense:Fa,unstable_Profiler:Aa,createElement:fa,cloneElement:function(a,b,d){null===a||void 0===a?p("267",a):void 0;var c=void 0,e=H({},a.props),g=a.key,k=a.ref,h=a._owner;if(null!=b){void 0!==b.ref&&(k=b.ref,h=R.current);void 0!==b.key&&(g=""+b.key);var l=void 0;a.type&&a.type.defaultProps&&(l= -a.type.defaultProps);for(c in b)ha.call(b,c)&&!ia.hasOwnProperty(c)&&(e[c]=void 0===b[c]&&void 0!==l?l[c]:b[c])}c=arguments.length-2;if(1===c)e.children=d;else if(1=b){d=a;break}a=a.next}while(a!==c);null===d?d= +c:d===c&&(c=m,t());b=d.previous;b.next=d.previous=m;m.next=d;m.previous=b}}function P(){if(-1===l&&null!==c&&1===c.priorityLevel){w=!0;try{do O();while(null!==c&&1===c.priorityLevel)}finally{w=!1,null!==c?t():B=!1}}}function sa(a){w=!0;var b=E;E=a;try{if(a)for(;null!==c;){var d=k();if(c.expirationTime<=d){do O();while(null!==c&&c.expirationTime<=d)}else break}else if(null!==c){do O();while(null!==c&&!F())}}finally{w=!1,E=b,null!==c?t():B=!1,P()}}function da(a,b,d){var f=void 0,p={},c=null,e=null; +if(null!=b)for(f in void 0!==b.ref&&(e=b.ref),void 0!==b.key&&(c=""+b.key),b)ea.call(b,f)&&!fa.hasOwnProperty(f)&&(p[f]=b[f]);var h=arguments.length-2;if(1===h)p.children=d;else if(1G.length&&G.push(a)}function S(a,b,d,f){var c=typeof a;if("undefined"===c||"boolean"===c)a=null;var e=!1;if(null=== +a)e=!0;else switch(c){case "string":case "number":e=!0;break;case "object":switch(a.$$typeof){case x:case va:e=!0}}if(e)return d(f,a,""===b?"."+T(a,0):b),1;e=0;b=""===b?".":b+":";if(Array.isArray(a))for(var g=0;ga;a++)b["_"+String.fromCharCode(a)]=a;if("0123456789"!==Object.getOwnPropertyNames(b).map(function(a){return b[a]}).join(""))return!1; +var d={};"abcdefghijklmnopqrst".split("").forEach(function(a){d[a]=a});return"abcdefghijklmnopqrst"!==Object.keys(Object.assign({},d)).join("")?!1:!0}catch(f){return!1}}()?Object.assign:function(a,b){if(null===a||void 0===a)throw new TypeError("Object.assign cannot be called with null or undefined");var d=Object(a);for(var c,e=1;e=J-d)if(-1!==b&&b<=d)c=!0;else{z||(z=!0,X(Z));v=a;y=b;return}if(null!==a){Y=!0;try{a(c)}finally{Y=!1}}};var Z=function(a){if(null!==v){X(Z);var b=a-J+A;bb&&(b=8),A=bb?qa.postMessage(void 0):z||(z=!0,X(Z))};N=function(){v=null;I=!1;y=-1}}var Na=0,Q={current:null,currentDispatcher:null};e={ReactCurrentOwner:Q,assign:H};H(e,{Scheduler:{unstable_cancelCallback:function(a){var b= +a.next;if(null!==b){if(b===a)c=null;else{a===c&&(c=b);var d=a.previous;d.next=b;b.previous=d}a.next=a.previous=null}},unstable_shouldYield:function(){return!E&&(null!==c&&c.expirationTimeb){d=f;break}f=f.next}while(f!==c);null===d?d=c:d===c&&(c=a,t());b=d.previous;b.next=d.previous=a;a.next=d;a.previous=b}return a},unstable_runWithPriority:function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var d=g,c=l;g=a;l=k();try{return b()}finally{g=d,l=c,P()}},unstable_wrapCallback:function(a){var b=g;return function(){var d=g,c=l;g=b;l=k();try{return a.apply(this, +arguments)}finally{g=d,l=c,P()}}},unstable_getFirstCallbackNode:function(){return c},unstable_pauseExecution:function(){},unstable_continueExecution:function(){null!==c&&t()},unstable_getCurrentPriorityLevel:function(){return g}},SchedulerTracing:{__interactionsRef:null,__subscriberRef:null,unstable_clear:function(a){return a()},unstable_getCurrent:function(){return null},unstable_getThreadID:function(){return++Na},unstable_subscribe:function(a){},unstable_trace:function(a,b,d){return d()},unstable_unsubscribe:function(a){}, +unstable_wrap:function(a){return a}}});var ea=Object.prototype.hasOwnProperty,fa={key:!0,ref:!0,__self:!0,__source:!0},ka=/\/+/g,G=[];n={Children:{map:function(a,b,d){if(null==a)return a;var c=[];V(a,c,null,b,d);return c},forEach:function(a,b,d){if(null==a)return a;b=ha(null,null,b,d);U(a,wa,b);ia(b)},count:function(a){return U(a,function(){return null},null)},toArray:function(a){var b=[];V(a,b,null,function(a){return a});return b},only:function(a){R(a)?void 0:q("143");return a}},createRef:function(){return{current:null}}, +Component:r,PureComponent:M,createContext:function(a,b){void 0===b&&(b=null);a={$$typeof:Aa,_calculateChangedBits:b,_currentValue:a,_currentValue2:a,_threadCount:0,Provider:null,Consumer:null};a.Provider={$$typeof:za,_context:a};return a.Consumer=a},forwardRef:function(a){return{$$typeof:Ca,render:a}},lazy:function(a){return{$$typeof:Fa,_ctor:a,_status:-1,_result:null}},memo:function(a,b){return{$$typeof:Ea,type:a,compare:void 0===b?null:b}},Fragment:n,StrictMode:W,Suspense:Da,createElement:da,cloneElement:function(a, +b,d){null===a||void 0===a?q("267",a):void 0;var c=void 0,e=H({},a.props),g=a.key,k=a.ref,h=a._owner;if(null!=b){void 0!==b.ref&&(k=b.ref,h=Q.current);void 0!==b.key&&(g=""+b.key);var l=void 0;a.type&&a.type.defaultProps&&(l=a.type.defaultProps);for(c in b)ea.call(b,c)&&!fa.hasOwnProperty(c)&&(e[c]=void 0===b[c]&&void 0!==l?l[c]:b[c])}c=arguments.length-2;if(1===c)e.children=d;else if(1 Date: Thu, 3 Jan 2019 21:38:01 -0600 Subject: [PATCH 20/77] change links and references to react-R org --- DESCRIPTION | 4 ++-- README.md | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/DESCRIPTION b/DESCRIPTION index c3da3db..efb71a5 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -20,8 +20,8 @@ Maintainer: Kent Russell Description: Make it easy to use 'React' in R with helper dependency functions, embedded 'Babel' 'transpiler', and examples. -URL: https://github.com/timelyportfolio/reactR -BugReports: https://github.com/timelyportfolio/reactR/issues +URL: https://github.com/react-R/reactR +BugReports: https://github.com/react-R/reactR/issues License: MIT + file LICENSE LazyData: TRUE Encoding: UTF-8 diff --git a/README.md b/README.md index 147f035..2322433 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,7 @@ You can install reactR from github with: ```R # install.packages("devtools") -devtools::install_github("timelyportfolio/reactR") +devtools::install_github("react-R/reactR") ``` ## Example From f9fba2949a41e606695d8591c935bc28d8678600 Mon Sep 17 00:00:00 2001 From: Alan Dipert Date: Thu, 3 Jan 2019 23:59:59 -0800 Subject: [PATCH 21/77] Documentation improvements --- R/reacttools.R | 61 ++++++++++++++++++++++++++++++++++++++++++++---- man/React.Rd | 33 ++++++++++++++++++++++++++ man/builder.Rd | 9 +++++++ man/component.Rd | 16 ++++++++----- man/reactData.Rd | 6 ++--- 5 files changed, 111 insertions(+), 14 deletions(-) create mode 100644 man/React.Rd create mode 100644 man/builder.Rd diff --git a/R/reacttools.R b/R/reacttools.R index 30a712f..61d5d05 100644 --- a/R/reacttools.R +++ b/R/reacttools.R @@ -2,10 +2,37 @@ isUpper <- function(s) { grepl("^[[:upper:]]+$", s) } +#' React component builder functions +#' +#' Functions for creating React component, HTML, and SVG trees to send to the +#' browser for rendering. +#' +#' The \code{\link{component}} function creates a representation of a React +#' component instance to send to the browser for rendering. It is analagous to +#' \code{\link[htmltools]{tag}}. +#' +#' The \code{\link{React}} list is a special object that supports +#' \link[=InternalMethods]{extraction} syntax for creating React components. +#' +#' Once a component or tag has been created in R, it must be passed to +#' \code\{\link{reactData}} before being sent to the browser. In the case of +#' htmlwidgets, the return value of \code{reactData} should be passed as the +#' \code{x} argument of \code{\link{htmlwidgets::createWidget}}. +#' +#' Any React components named by \code{component} or \code{React} must have been +#' installed on the client using \code{reactR.reactWidget}. Alternatively, the +#' JSON representing the tag can be converted to a React component tree with +#' \code{reactR.hydrate}. +#' +#' @name builder +NULL + #' Create a React component #' -#' @param name Name of the React component, which must start with an upper-case character. -#' @param ... Attributes and children of the element to pass along to \code{\link[htmltools]{tag}} as varArgs. +#' @param name Name of the React component, which must start with an upper-case +#' character. +#' @param varArgs Attributes and children of the element to pass along to +#' \code{\link[htmltools]{tag}} as \code{varArgs}. #' #' @return An htmltools \code{\link[htmltools]{tag}} object #' @export @@ -26,8 +53,32 @@ component <- function(name, varArgs = list()) { htmltools::tag(name, varArgs) } +#' React component builder. +#' +#' \code{React} is a syntactically-convenient way to create instances of React +#' components that can be sent to the browser for display. It is a list for +#' which \link[=InternalMethods]{extract methods} are defined, allowing +#' object creation syntax like \code{React$MyComponent(x = 1)} where +#' \code{MyComponent} is a React component you have exposed to Shiny in +#' JavaScript. +#' +#' Internally, the \code{\link{component}} function is used to create the +#' component instance. +#' +#' @examples +#' # Create an instance of ParentComponent with two children, +#' # ChildComponent and OtherChildComponent. +#' React$ParentComponent( +#' x = 1, +#' y = 2, +#' React$ChildComponent(), +#' React$OtherChildComponent() +#' ) #' @export -React <- structure(list(), class = "react_component_builder") +React <- structure( + list(), + class = "react_component_builder" +) #' @export `$.react_component_builder` <- function(x, name) { @@ -47,9 +98,9 @@ React <- structure(list(), class = "react_component_builder") #' @export `[[<-.react_component_builder` <- `$<-.react_component_builder` -#' Create a data object for transporting a React component to the client. +#' Create a data object for sending a React component to the client. #' -#' @param tag +#' @param tag React component or \code{\link[htmltools]{tag}} #' #' @return #' @export diff --git a/man/React.Rd b/man/React.Rd new file mode 100644 index 0000000..5de7d16 --- /dev/null +++ b/man/React.Rd @@ -0,0 +1,33 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/reacttools.R +\docType{data} +\name{React} +\alias{React} +\title{React component builder.} +\format{An object of class \code{react_component_builder} of length 0.} +\usage{ +React +} +\description{ +\code{React} is a syntactically-convenient way to create instances of React +components that can be sent to the browser for display. It is a list for +which \link[=InternalMethods]{extract methods} are defined, allowing +object creation syntax like \code{React$MyComponent(x = 1)} where +\code{MyComponent} is a React component you have exposed to Shiny in +JavaScript. +} +\details{ +Internally, the \code{\link{component}} function is used to create the +component instance. +} +\examples{ +# Create an instance of ParentComponent with two children, +# ChildComponent and OtherChildComponent. +React$ParentComponent( + x = 1, + y = 2, + React$ChildComponent(), + React$OtherChildComponent() +) +} +\keyword{datasets} diff --git a/man/builder.Rd b/man/builder.Rd new file mode 100644 index 0000000..e0547ad --- /dev/null +++ b/man/builder.Rd @@ -0,0 +1,9 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/reacttools.R +\name{builder} +\alias{builder} +\title{React component builder functions} +\description{ +Functions for creating React component, HTML, and SVG trees to send to the +browser for rendering. +} diff --git a/man/component.Rd b/man/component.Rd index d110b31..1d3e49b 100644 --- a/man/component.Rd +++ b/man/component.Rd @@ -7,9 +7,11 @@ component(name, varArgs = list()) } \arguments{ -\item{name}{Name of the React component, which must start with an upper-case character.} +\item{name}{Name of the React component, which must start with an upper-case +character.} -\item{...}{Attributes and children of the element to pass along to \code{\link[htmltools]{tag}} as varArgs.} +\item{varArgs}{Attributes and children of the element to pass along to +\code{\link[htmltools]{tag}} as \code{varArgs}.} } \value{ An htmltools \code{\link[htmltools]{tag}} object @@ -19,9 +21,11 @@ Create a React component } \examples{ component("ParentComponent", - x = 1, - y = 2, - component("ChildComponent"), - component("OtherChildComponent") + list( + x = 1, + y = 2, + component("ChildComponent"), + component("OtherChildComponent") + ) ) } diff --git a/man/reactData.Rd b/man/reactData.Rd index e0b0fae..aee33b6 100644 --- a/man/reactData.Rd +++ b/man/reactData.Rd @@ -2,13 +2,13 @@ % Please edit documentation in R/reacttools.R \name{reactData} \alias{reactData} -\title{Create a data object for transporting a React component to the client.} +\title{Create a data object for sending a React component to the client.} \usage{ reactData(tag) } \arguments{ -\item{tag}{} +\item{tag}{React component or \code{\link[htmltools]{tag}}} } \description{ -Create a data object for transporting a React component to the client. +Create a data object for sending a React component to the client. } From 3232e8701c121a5979316d37ea1c7c2d893dd715 Mon Sep 17 00:00:00 2001 From: Alan Dipert Date: Fri, 4 Jan 2019 11:26:40 -0800 Subject: [PATCH 22/77] Remove examples; moved sparklineswidget to react-R/sparklines --- examples/sparklineswidget/.Rbuildignore | 2 - examples/sparklineswidget/.gitignore | 5 - examples/sparklineswidget/.vscode/tasks.json | 16 - examples/sparklineswidget/DESCRIPTION | 12 - examples/sparklineswidget/NAMESPACE | 9 - .../sparklineswidget/R/sparklineswidget.R | 70 - examples/sparklineswidget/README.md | 50 - examples/sparklineswidget/app.R | 31 - .../inst/htmlwidgets/sparklineswidget.js | 2975 ------------- .../inst/htmlwidgets/sparklineswidget.js.map | 1 - .../inst/htmlwidgets/sparklineswidget.yaml | 7 - .../man/sparklineswidget-shiny.Rd | 30 - .../sparklineswidget/man/sparklineswidget.Rd | 11 - examples/sparklineswidget/package.json | 16 - .../sparklineswidget/sparklineswidget.Rproj | 21 - .../srcjs/sparklineswidget.js | 4 - examples/sparklineswidget/webpack.config.js | 31 - examples/sparklineswidget/yarn.lock | 3793 ----------------- 18 files changed, 7084 deletions(-) delete mode 100644 examples/sparklineswidget/.Rbuildignore delete mode 100644 examples/sparklineswidget/.gitignore delete mode 100644 examples/sparklineswidget/.vscode/tasks.json delete mode 100644 examples/sparklineswidget/DESCRIPTION delete mode 100644 examples/sparklineswidget/NAMESPACE delete mode 100644 examples/sparklineswidget/R/sparklineswidget.R delete mode 100644 examples/sparklineswidget/README.md delete mode 100644 examples/sparklineswidget/app.R delete mode 100644 examples/sparklineswidget/inst/htmlwidgets/sparklineswidget.js delete mode 100644 examples/sparklineswidget/inst/htmlwidgets/sparklineswidget.js.map delete mode 100644 examples/sparklineswidget/inst/htmlwidgets/sparklineswidget.yaml delete mode 100644 examples/sparklineswidget/man/sparklineswidget-shiny.Rd delete mode 100644 examples/sparklineswidget/man/sparklineswidget.Rd delete mode 100644 examples/sparklineswidget/package.json delete mode 100644 examples/sparklineswidget/sparklineswidget.Rproj delete mode 100644 examples/sparklineswidget/srcjs/sparklineswidget.js delete mode 100644 examples/sparklineswidget/webpack.config.js delete mode 100644 examples/sparklineswidget/yarn.lock diff --git a/examples/sparklineswidget/.Rbuildignore b/examples/sparklineswidget/.Rbuildignore deleted file mode 100644 index 1549efe..0000000 --- a/examples/sparklineswidget/.Rbuildignore +++ /dev/null @@ -1,2 +0,0 @@ -^sparklineswidget\.Rproj$ -^\.Rproj\.user$ diff --git a/examples/sparklineswidget/.gitignore b/examples/sparklineswidget/.gitignore deleted file mode 100644 index ed9a001..0000000 --- a/examples/sparklineswidget/.gitignore +++ /dev/null @@ -1,5 +0,0 @@ -.Rproj.user -.Rhistory -.RData -build/ -node_modules/ diff --git a/examples/sparklineswidget/.vscode/tasks.json b/examples/sparklineswidget/.vscode/tasks.json deleted file mode 100644 index c8c0019..0000000 --- a/examples/sparklineswidget/.vscode/tasks.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - // See https://go.microsoft.com/fwlink/?LinkId=733558 - // for the documentation about the tasks.json format - "version": "2.0.0", - "tasks": [ - { - "label": "Build", - "type": "shell", - "command": "yarn run webpack --mode=development", - "group": { - "kind": "build", - "isDefault": true - } - } - ] -} \ No newline at end of file diff --git a/examples/sparklineswidget/DESCRIPTION b/examples/sparklineswidget/DESCRIPTION deleted file mode 100644 index 570fd15..0000000 --- a/examples/sparklineswidget/DESCRIPTION +++ /dev/null @@ -1,12 +0,0 @@ -Package: sparklineswidget -Title: What the Package Does (one line, title case) -Version: 0.0.0.9000 -Authors@R: person("First", "Last", email = "first.last@example.com", role = c("aut", "cre")) -Description: What the package does (one paragraph). -Depends: R (>= 3.5.1) -License: What license is it under? -Encoding: UTF-8 -LazyData: true -RoxygenNote: 6.1.1 -Imports: - reactR diff --git a/examples/sparklineswidget/NAMESPACE b/examples/sparklineswidget/NAMESPACE deleted file mode 100644 index 1b813c4..0000000 --- a/examples/sparklineswidget/NAMESPACE +++ /dev/null @@ -1,9 +0,0 @@ -# Generated by roxygen2: do not edit by hand - -export(curve) -export(reference_line) -export(renderSparklineswidget) -export(sparklineswidget) -export(sparklineswidgetOutput) -export(spots) -import(htmlwidgets) diff --git a/examples/sparklineswidget/R/sparklineswidget.R b/examples/sparklineswidget/R/sparklineswidget.R deleted file mode 100644 index e720046..0000000 --- a/examples/sparklineswidget/R/sparklineswidget.R +++ /dev/null @@ -1,70 +0,0 @@ -#' @export -curve <- function(...) { - reactR::React$SparklinesCurve(...) -} - -#' @export -spots <- function(...) { - reactR::React$SparklinesSpots(...) -} - -#' @export -reference_line <- function(...) { - reactR::React$SparklinesReferenceLine(...) -} - -#' -#' -#' -#' -#' @import htmlwidgets -#' -#' @export -sparklineswidget <- function(data, ...) { - htmlwidgets::createWidget( - 'sparklineswidget', - reactR::reactData(reactR::component("Sparklines", c(list(data = data, ...)))), - width = NULL, - height = NULL, - package = 'sparklineswidget', - elementId = NULL - ) -} - -#' Shiny bindings for sparklineswidget -#' -#' Output and render functions for using sparklineswidget within Shiny -#' applications and interactive Rmd documents. -#' -#' @param outputId output variable to read from -#' @param width,height Must be a valid CSS unit (like \code{'100\%'}, -#' \code{'400px'}, \code{'auto'}) or a number, which will be coerced to a -#' string and have \code{'px'} appended. -#' @param expr An expression that generates a sparklineswidget -#' @param env The environment in which to evaluate \code{expr}. -#' @param quoted Is \code{expr} a quoted expression (with \code{quote()})? This -#' is useful if you want to save an expression in a variable. -#' -#' @name sparklineswidget-shiny -#' -#' @export -sparklineswidgetOutput <- function(outputId, width = '100%', height = '400px'){ - htmlwidgets::shinyWidgetOutput(outputId, 'sparklineswidget', width, height, package = 'sparklineswidget') -} - -#' @rdname sparklineswidget-shiny -#' @export -renderSparklineswidget <- function(expr, env = parent.frame(), quoted = FALSE) { - if (!quoted) { expr <- substitute(expr) } # force quoted - htmlwidgets::shinyRenderWidget(expr, sparklineswidgetOutput, env, quoted = TRUE) -} - -# Magical -sparklineswidget_html <- function(id, style, class, ...) { - tagList( - reactR::html_dependency_corejs(), - reactR::html_dependency_react(), - reactR::html_dependency_reacttools(), - tags$span(id = id, class = class) - ) -} diff --git a/examples/sparklineswidget/README.md b/examples/sparklineswidget/README.md deleted file mode 100644 index f70d13f..0000000 --- a/examples/sparklineswidget/README.md +++ /dev/null @@ -1,50 +0,0 @@ -# react-sparklines HTMLWidget - -This example demonstrates creating an [htmlwidget](https://www.htmlwidgets.org/) wrapper around the [react-sparklines](http://borisyankov.github.io/react-sparklines/) library. - -# Building - -Because this package includes Javascript source code that requires a compilation step, package installation is in two phases: Javascript tools build the Javascript, and R tools build and install the package. The R package includes the built Javascript files in the `inst/` directory. - -## Javascript Build Requirements - -Building Javascript should work on macOS, Linux, and Windows. The following tools are necessary regardless of your platform: - -- [Node.js](https://nodejs.org/en/) -- [Yarn](https://yarnpkg.com/en/) - -## R Build Requirements - -You should install the parent `reactR` package if you haven't, as this widget depends on it. - -## Development Workflow - -After you've installed Node.js and Yarn, run the following command to resolve and download dependencies: - -``` -yarn install -``` - -Now, run `yarn` to build `inst/htmlwidgets/sparklineswidget.js`: - -``` -yarn run webpack --mode=development -``` - -> To run `yarn webpack` automatically whenever sources change, use the command `yarn run webpack --mode=development --watch` - -Now that the Javascript is built, you can install the R package: - -``` -devtools::document() -devtools::install() -``` - -Next, install the `colourpicker` and `shinySignals` packages, as they are used in the example app: - -``` -install.packages("colourpicker") -devtools::install_github("shinySignals") -``` - -Finally you can try the example app by running [app.R](app.R). diff --git a/examples/sparklineswidget/app.R b/examples/sparklineswidget/app.R deleted file mode 100644 index e4ce78a..0000000 --- a/examples/sparklineswidget/app.R +++ /dev/null @@ -1,31 +0,0 @@ -library(shiny) -library(sparklineswidget) -library(colourpicker) -# devtools::install_github("hadley/shinySignals") -library(shinySignals) - -ui <- fluidPage( - titlePanel("React Sparklines"), - sparklineswidgetOutput('sparklines'), - colourInput("color_curve", "Curve color", "#253e56"), - colourInput("color_spots", "Spots color", "#56b45d") -) - -nextWindow <- function(prev = round(runif(100, 0, 10)), t = NULL) { - c(prev[-1], round(runif(1, 0, 10))) -} - -server <- function(input, output, session) { - - data <- reducePast(fps(1), nextWindow, nextWindow()) - - output$sparklines <- renderSparklineswidget( - sparklineswidget(data = data(), - curve(color = input$color_curve), - spots(style = list(fill = input$color_spots)), - reference_line(type = "avg") - ) - ) -} - -shinyApp(ui, server) diff --git a/examples/sparklineswidget/inst/htmlwidgets/sparklineswidget.js b/examples/sparklineswidget/inst/htmlwidgets/sparklineswidget.js deleted file mode 100644 index e5b6b2a..0000000 --- a/examples/sparklineswidget/inst/htmlwidgets/sparklineswidget.js +++ /dev/null @@ -1,2975 +0,0 @@ -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; -/******/ -/******/ // 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 = ""; -/******/ -/******/ -/******/ // Load entry module and return exports -/******/ return __webpack_require__(__webpack_require__.s = "./srcjs/sparklineswidget.js"); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ "./node_modules/react-sparklines/build/index.js": -/*!******************************************************!*\ - !*** ./node_modules/react-sparklines/build/index.js ***! - \******************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -/* WEBPACK VAR INJECTION */(function(module) {var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _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); } - -(function webpackUniversalModuleDefinition(root, factory) { - if (( false ? undefined : _typeof(exports)) === 'object' && ( false ? undefined : _typeof(module)) === 'object') module.exports = factory(__webpack_require__(/*! react */ "react"));else if (true) !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! react */ "react")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), - __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? - (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), - __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));else {} -})(this, function (__WEBPACK_EXTERNAL_MODULE_1__) { - return ( - /******/ - function (modules) { - // webpackBootstrap - - /******/ - // The module cache - - /******/ - var installedModules = {}; - /******/ - - /******/ - // 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, { - /******/ - configurable: false, - - /******/ - enumerable: true, - - /******/ - get: getter - /******/ - - }); - /******/ - } - /******/ - - }; - /******/ - - /******/ - // 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 = "/"; - /******/ - - /******/ - // Load entry module and return exports - - /******/ - - return __webpack_require__(__webpack_require__.s = 11); - /******/ - }( - /************************************************************************/ - - /******/ - [ - /* 0 */ - - /***/ - function (module, exports, __webpack_require__) { - /* WEBPACK VAR INJECTION */ - (function (process) { - /** - * Copyright 2013-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 (process.env.NODE_ENV !== 'production') { - var REACT_ELEMENT_TYPE = typeof Symbol === 'function' && Symbol.for && Symbol.for('react.element') || 0xeac7; - - var isValidElement = function isValidElement(object) { - return _typeof(object) === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE; - }; // By explicitly using `prop-types` you are opting into new development behavior. - // http://fb.me/prop-types-in-prod - - - var throwOnDirectAccess = true; - module.exports = __webpack_require__(14)(isValidElement, throwOnDirectAccess); - } else { - // By explicitly using `prop-types` you are opting into new production behavior. - // http://fb.me/prop-types-in-prod - module.exports = __webpack_require__(16)(); - } - /* WEBPACK VAR INJECTION */ - - }).call(exports, __webpack_require__(2)); - /***/ - }, - /* 1 */ - - /***/ - function (module, exports) { - module.exports = __WEBPACK_EXTERNAL_MODULE_1__; - /***/ - }, - /* 2 */ - - /***/ - function (module, exports) { - // shim for using process in browser - var process = module.exports = {}; // cached from whatever global is present so that test runners that stub it - // don't break things. But we need to wrap it in a try catch in case it is - // wrapped in strict mode code which doesn't define any globals. It's inside a - // function because try/catches deoptimize in certain engines. - - var cachedSetTimeout; - var cachedClearTimeout; - - function defaultSetTimout() { - throw new Error('setTimeout has not been defined'); - } - - function defaultClearTimeout() { - throw new Error('clearTimeout has not been defined'); - } - - (function () { - try { - if (typeof setTimeout === 'function') { - cachedSetTimeout = setTimeout; - } else { - cachedSetTimeout = defaultSetTimout; - } - } catch (e) { - cachedSetTimeout = defaultSetTimout; - } - - try { - if (typeof clearTimeout === 'function') { - cachedClearTimeout = clearTimeout; - } else { - cachedClearTimeout = defaultClearTimeout; - } - } catch (e) { - cachedClearTimeout = defaultClearTimeout; - } - })(); - - function runTimeout(fun) { - if (cachedSetTimeout === setTimeout) { - //normal enviroments in sane situations - return setTimeout(fun, 0); - } // if setTimeout wasn't available but was latter defined - - - if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) { - cachedSetTimeout = setTimeout; - return setTimeout(fun, 0); - } - - try { - // when when somebody has screwed with setTimeout but no I.E. maddness - return cachedSetTimeout(fun, 0); - } catch (e) { - try { - // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally - return cachedSetTimeout.call(null, fun, 0); - } catch (e) { - // 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 - return cachedSetTimeout.call(this, fun, 0); - } - } - } - - function runClearTimeout(marker) { - if (cachedClearTimeout === clearTimeout) { - //normal enviroments in sane situations - return clearTimeout(marker); - } // if clearTimeout wasn't available but was latter defined - - - if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) { - cachedClearTimeout = clearTimeout; - return clearTimeout(marker); - } - - try { - // when when somebody has screwed with setTimeout but no I.E. maddness - return cachedClearTimeout(marker); - } catch (e) { - try { - // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally - return cachedClearTimeout.call(null, marker); - } catch (e) { - // 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. - // Some versions of I.E. have different rules for clearTimeout vs setTimeout - return cachedClearTimeout.call(this, marker); - } - } - } - - var queue = []; - var draining = false; - var currentQueue; - var queueIndex = -1; - - function cleanUpNextTick() { - if (!draining || !currentQueue) { - return; - } - - draining = false; - - if (currentQueue.length) { - queue = currentQueue.concat(queue); - } else { - queueIndex = -1; - } - - if (queue.length) { - drainQueue(); - } - } - - function drainQueue() { - if (draining) { - return; - } - - var timeout = runTimeout(cleanUpNextTick); - draining = true; - var len = queue.length; - - while (len) { - currentQueue = queue; - queue = []; - - while (++queueIndex < len) { - if (currentQueue) { - currentQueue[queueIndex].run(); - } - } - - queueIndex = -1; - len = queue.length; - } - - currentQueue = null; - draining = false; - runClearTimeout(timeout); - } - - process.nextTick = function (fun) { - var args = new Array(arguments.length - 1); - - if (arguments.length > 1) { - for (var i = 1; i < arguments.length; i++) { - args[i - 1] = arguments[i]; - } - } - - queue.push(new Item(fun, args)); - - if (queue.length === 1 && !draining) { - runTimeout(drainQueue); - } - }; // v8 likes predictible objects - - - function Item(fun, array) { - this.fun = fun; - this.array = array; - } - - Item.prototype.run = function () { - this.fun.apply(null, this.array); - }; - - process.title = 'browser'; - process.browser = true; - process.env = {}; - process.argv = []; - process.version = ''; // empty string to avoid regexp issues - - process.versions = {}; - - function noop() {} - - process.on = noop; - process.addListener = noop; - process.once = noop; - process.off = noop; - process.removeListener = noop; - process.removeAllListeners = noop; - process.emit = noop; - process.prependListener = noop; - process.prependOnceListener = noop; - - process.listeners = function (name) { - return []; - }; - - process.binding = function (name) { - throw new Error('process.binding is not supported'); - }; - - process.cwd = function () { - return '/'; - }; - - process.chdir = function (dir) { - throw new Error('process.chdir is not supported'); - }; - - process.umask = function () { - return 0; - }; - /***/ - - }, - /* 3 */ - - /***/ - function (module, exports, __webpack_require__) { - "use strict"; - - Object.defineProperty(exports, "__esModule", { - value: true - }); - - exports.default = function (data) { - return data.reduce(function (a, b) { - return a + b; - }) / data.length; - }; - /***/ - - }, - /* 4 */ - - /***/ - function (module, exports, __webpack_require__) { - "use strict"; - /** - * Copyright (c) 2013-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. - * - * - */ - - function makeEmptyFunction(arg) { - return function () { - return arg; - }; - } - /** - * This function accepts and discards inputs; it has no side effects. This is - * primarily useful idiomatically for overridable function endpoints which - * always need to be callable, since JS lacks a null-call idiom ala Cocoa. - */ - - - var emptyFunction = function emptyFunction() {}; - - emptyFunction.thatReturns = makeEmptyFunction; - emptyFunction.thatReturnsFalse = makeEmptyFunction(false); - emptyFunction.thatReturnsTrue = makeEmptyFunction(true); - emptyFunction.thatReturnsNull = makeEmptyFunction(null); - - emptyFunction.thatReturnsThis = function () { - return this; - }; - - emptyFunction.thatReturnsArgument = function (arg) { - return arg; - }; - - module.exports = emptyFunction; - /***/ - }, - /* 5 */ - - /***/ - function (module, exports, __webpack_require__) { - "use strict"; - /* WEBPACK VAR INJECTION */ - - (function (process) { - /** - * Copyright (c) 2013-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. - * - */ - - /** - * Use invariant() to assert state which your program assumes to be true. - * - * Provide sprintf-style format (only %s is supported) and arguments - * to provide information about what broke and what you were - * expecting. - * - * The invariant message will be stripped in production, but the invariant - * will remain to ensure logic does not differ in production. - */ - var validateFormat = function validateFormat(format) {}; - - if (process.env.NODE_ENV !== 'production') { - validateFormat = function validateFormat(format) { - if (format === undefined) { - throw new Error('invariant requires an error message argument'); - } - }; - } - - function invariant(condition, format, a, b, c, d, e, f) { - validateFormat(format); - - if (!condition) { - var error; - - if (format === undefined) { - error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.'); - } else { - var args = [a, b, c, d, e, f]; - var argIndex = 0; - error = new Error(format.replace(/%s/g, function () { - return args[argIndex++]; - })); - error.name = 'Invariant Violation'; - } - - error.framesToPop = 1; // we don't care about invariant's own frame - - throw error; - } - } - - module.exports = invariant; - /* WEBPACK VAR INJECTION */ - }).call(exports, __webpack_require__(2)); - /***/ - }, - /* 6 */ - - /***/ - function (module, exports, __webpack_require__) { - "use strict"; - /** - * Copyright 2013-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. - */ - - var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED'; - module.exports = ReactPropTypesSecret; - /***/ - }, - /* 7 */ - - /***/ - function (module, exports, __webpack_require__) { - "use strict"; - - Object.defineProperty(exports, "__esModule", { - value: true - }); - - exports.default = function (data) { - return Math.min.apply(Math, data); - }; - /***/ - - }, - /* 8 */ - - /***/ - function (module, exports, __webpack_require__) { - "use strict"; - /* WEBPACK VAR INJECTION */ - - (function (process) { - /** - * Copyright 2014-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 emptyFunction = __webpack_require__(4); - /** - * Similar to invariant but only logs a warning if the condition is not met. - * This can be used to log issues in development environments in critical - * paths. Removing the logging code for production environments will keep the - * same logic and follow the same code paths. - */ - - - var warning = emptyFunction; - - if (process.env.NODE_ENV !== 'production') { - var printWarning = function printWarning(format) { - for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { - args[_key - 1] = arguments[_key]; - } - - var argIndex = 0; - var message = 'Warning: ' + format.replace(/%s/g, function () { - return args[argIndex++]; - }); - - if (typeof console !== 'undefined') { - console.error(message); - } - - try { - // --- Welcome to debugging React --- - // This error was thrown as a convenience so that you can use this stack - // to find the callsite that caused this warning to fire. - throw new Error(message); - } catch (x) {} - }; - - warning = function warning(condition, format) { - if (format === undefined) { - throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument'); - } - - if (format.indexOf('Failed Composite propType: ') === 0) { - return; // Ignore CompositeComponent proptype check. - } - - if (!condition) { - for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) { - args[_key2 - 2] = arguments[_key2]; - } - - printWarning.apply(undefined, [format].concat(args)); - } - }; - } - - module.exports = warning; - /* WEBPACK VAR INJECTION */ - }).call(exports, __webpack_require__(2)); - /***/ - }, - /* 9 */ - - /***/ - function (module, exports, __webpack_require__) { - "use strict"; - - Object.defineProperty(exports, "__esModule", { - value: true - }); - - exports.default = function (data) { - return Math.max.apply(Math, data); - }; - /***/ - - }, - /* 10 */ - - /***/ - function (module, exports, __webpack_require__) { - "use strict"; - - Object.defineProperty(exports, "__esModule", { - value: true - }); - - var _mean = __webpack_require__(3); - - var _mean2 = _interopRequireDefault(_mean); - - function _interopRequireDefault(obj) { - return obj && obj.__esModule ? obj : { - default: obj - }; - } - - exports.default = function (data) { - var dataMean = (0, _mean2.default)(data); - var sqDiff = data.map(function (n) { - return Math.pow(n - dataMean, 2); - }); - var avgSqDiff = (0, _mean2.default)(sqDiff); - return Math.sqrt(avgSqDiff); - }; - /***/ - - }, - /* 11 */ - - /***/ - function (module, exports, __webpack_require__) { - module.exports = __webpack_require__(12); - /***/ - }, - /* 12 */ - - /***/ - function (module, exports, __webpack_require__) { - "use strict"; - - module.exports = __webpack_require__(13); - /***/ - }, - /* 13 */ - - /***/ - function (module, exports, __webpack_require__) { - "use strict"; - - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.SparklinesText = exports.SparklinesNormalBand = exports.SparklinesReferenceLine = exports.SparklinesSpots = exports.SparklinesBars = exports.SparklinesCurve = exports.SparklinesLine = exports.Sparklines = undefined; - - var _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; - }; - }(); - - var _propTypes = __webpack_require__(0); - - var _propTypes2 = _interopRequireDefault(_propTypes); - - var _react = __webpack_require__(1); - - var _react2 = _interopRequireDefault(_react); - - var _SparklinesText = __webpack_require__(17); - - var _SparklinesText2 = _interopRequireDefault(_SparklinesText); - - var _SparklinesLine = __webpack_require__(18); - - var _SparklinesLine2 = _interopRequireDefault(_SparklinesLine); - - var _SparklinesCurve = __webpack_require__(19); - - var _SparklinesCurve2 = _interopRequireDefault(_SparklinesCurve); - - var _SparklinesBars = __webpack_require__(20); - - var _SparklinesBars2 = _interopRequireDefault(_SparklinesBars); - - var _SparklinesSpots = __webpack_require__(21); - - var _SparklinesSpots2 = _interopRequireDefault(_SparklinesSpots); - - var _SparklinesReferenceLine = __webpack_require__(22); - - var _SparklinesReferenceLine2 = _interopRequireDefault(_SparklinesReferenceLine); - - var _SparklinesNormalBand = __webpack_require__(27); - - var _SparklinesNormalBand2 = _interopRequireDefault(_SparklinesNormalBand); - - var _dataToPoints = __webpack_require__(28); - - var _dataToPoints2 = _interopRequireDefault(_dataToPoints); - - function _interopRequireDefault(obj) { - return obj && obj.__esModule ? obj : { - default: obj - }; - } - - function _classCallCheck(instance, Constructor) { - if (!(instance instanceof Constructor)) { - throw new TypeError("Cannot call a class as a function"); - } - } - - function _possibleConstructorReturn(self, call) { - if (!self) { - throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); - } - - return call && (_typeof(call) === "object" || typeof call === "function") ? call : self; - } - - function _inherits(subClass, superClass) { - if (typeof superClass !== "function" && superClass !== null) { - throw new TypeError("Super expression must either be null or a function, not " + _typeof(superClass)); - } - - subClass.prototype = Object.create(superClass && superClass.prototype, { - constructor: { - value: subClass, - enumerable: false, - writable: true, - configurable: true - } - }); - if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; - } - - var Sparklines = function (_PureComponent) { - _inherits(Sparklines, _PureComponent); - - function Sparklines(props) { - _classCallCheck(this, Sparklines); - - return _possibleConstructorReturn(this, (Sparklines.__proto__ || Object.getPrototypeOf(Sparklines)).call(this, props)); - } - - _createClass(Sparklines, [{ - key: 'render', - value: function render() { - var _props = this.props, - data = _props.data, - limit = _props.limit, - width = _props.width, - height = _props.height, - svgWidth = _props.svgWidth, - svgHeight = _props.svgHeight, - preserveAspectRatio = _props.preserveAspectRatio, - margin = _props.margin, - style = _props.style, - max = _props.max, - min = _props.min; - if (data.length === 0) return null; - var points = (0, _dataToPoints2.default)({ - data: data, - limit: limit, - width: width, - height: height, - margin: margin, - max: max, - min: min - }); - var svgOpts = { - style: style, - viewBox: '0 0 ' + width + ' ' + height, - preserveAspectRatio: preserveAspectRatio - }; - if (svgWidth > 0) svgOpts.width = svgWidth; - if (svgHeight > 0) svgOpts.height = svgHeight; - return _react2.default.createElement('svg', svgOpts, _react2.default.Children.map(this.props.children, function (child) { - return _react2.default.cloneElement(child, { - data: data, - points: points, - width: width, - height: height, - margin: margin - }); - })); - } - }]); - - return Sparklines; - }(_react.PureComponent); - - Sparklines.propTypes = { - data: _propTypes2.default.array, - limit: _propTypes2.default.number, - width: _propTypes2.default.number, - height: _propTypes2.default.number, - svgWidth: _propTypes2.default.number, - svgHeight: _propTypes2.default.number, - preserveAspectRatio: _propTypes2.default.string, - margin: _propTypes2.default.number, - style: _propTypes2.default.object, - min: _propTypes2.default.number, - max: _propTypes2.default.number, - onMouseMove: _propTypes2.default.func - }; - Sparklines.defaultProps = { - data: [], - width: 240, - height: 60, - //Scale the graphic content of the given element non-uniformly if necessary such that the element's bounding box exactly matches the viewport rectangle. - preserveAspectRatio: 'none', - //https://www.w3.org/TR/SVG/coords.html#PreserveAspectRatioAttribute - margin: 2 - }; - exports.Sparklines = Sparklines; - exports.SparklinesLine = _SparklinesLine2.default; - exports.SparklinesCurve = _SparklinesCurve2.default; - exports.SparklinesBars = _SparklinesBars2.default; - exports.SparklinesSpots = _SparklinesSpots2.default; - exports.SparklinesReferenceLine = _SparklinesReferenceLine2.default; - exports.SparklinesNormalBand = _SparklinesNormalBand2.default; - exports.SparklinesText = _SparklinesText2.default; - /***/ - }, - /* 14 */ - - /***/ - function (module, exports, __webpack_require__) { - "use strict"; - /* WEBPACK VAR INJECTION */ - - (function (process) { - /** - * Copyright 2013-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. - */ - var emptyFunction = __webpack_require__(4); - - var invariant = __webpack_require__(5); - - var warning = __webpack_require__(8); - - var ReactPropTypesSecret = __webpack_require__(6); - - var checkPropTypes = __webpack_require__(15); - - module.exports = function (isValidElement, throwOnDirectAccess) { - /* global Symbol */ - var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator; - var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec. - - /** - * Returns the iterator method function contained on the iterable object. - * - * Be sure to invoke the function with the iterable as context: - * - * var iteratorFn = getIteratorFn(myIterable); - * if (iteratorFn) { - * var iterator = iteratorFn.call(myIterable); - * ... - * } - * - * @param {?object} maybeIterable - * @return {?function} - */ - - function getIteratorFn(maybeIterable) { - var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]); - - if (typeof iteratorFn === 'function') { - return iteratorFn; - } - } - /** - * Collection of methods that allow declaration and validation of props that are - * supplied to React components. Example usage: - * - * var Props = require('ReactPropTypes'); - * var MyArticle = React.createClass({ - * propTypes: { - * // An optional string prop named "description". - * description: Props.string, - * - * // A required enum prop named "category". - * category: Props.oneOf(['News','Photos']).isRequired, - * - * // A prop named "dialog" that requires an instance of Dialog. - * dialog: Props.instanceOf(Dialog).isRequired - * }, - * render: function() { ... } - * }); - * - * A more formal specification of how these methods are used: - * - * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...) - * decl := ReactPropTypes.{type}(.isRequired)? - * - * Each and every declaration produces a function with the same signature. This - * allows the creation of custom validation functions. For example: - * - * var MyLink = React.createClass({ - * propTypes: { - * // An optional string or URI prop named "href". - * href: function(props, propName, componentName) { - * var propValue = props[propName]; - * if (propValue != null && typeof propValue !== 'string' && - * !(propValue instanceof URI)) { - * return new Error( - * 'Expected a string or an URI for ' + propName + ' in ' + - * componentName - * ); - * } - * } - * }, - * render: function() {...} - * }); - * - * @internal - */ - - - var ANONYMOUS = '<>'; // Important! - // Keep this list in sync with production version in `./factoryWithThrowingShims.js`. - - var ReactPropTypes = { - array: createPrimitiveTypeChecker('array'), - bool: createPrimitiveTypeChecker('boolean'), - func: createPrimitiveTypeChecker('function'), - number: createPrimitiveTypeChecker('number'), - object: createPrimitiveTypeChecker('object'), - string: createPrimitiveTypeChecker('string'), - symbol: createPrimitiveTypeChecker('symbol'), - any: createAnyTypeChecker(), - arrayOf: createArrayOfTypeChecker, - element: createElementTypeChecker(), - instanceOf: createInstanceTypeChecker, - node: createNodeChecker(), - objectOf: createObjectOfTypeChecker, - oneOf: createEnumTypeChecker, - oneOfType: createUnionTypeChecker, - shape: createShapeTypeChecker - }; - /** - * inlined Object.is polyfill to avoid requiring consumers ship their own - * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is - */ - - /*eslint-disable no-self-compare*/ - - function is(x, y) { - // SameValue algorithm - if (x === y) { - // Steps 1-5, 7-10 - // Steps 6.b-6.e: +0 != -0 - return x !== 0 || 1 / x === 1 / y; - } else { - // Step 6.a: NaN == NaN - return x !== x && y !== y; - } - } - /*eslint-enable no-self-compare*/ - - /** - * We use an Error-like object for backward compatibility as people may call - * PropTypes directly and inspect their output. However, we don't use real - * Errors anymore. We don't inspect their stack anyway, and creating them - * is prohibitively expensive if they are created too often, such as what - * happens in oneOfType() for any type before the one that matched. - */ - - - function PropTypeError(message) { - this.message = message; - this.stack = ''; - } // Make `instanceof Error` still work for returned errors. - - - PropTypeError.prototype = Error.prototype; - - function createChainableTypeChecker(validate) { - if (process.env.NODE_ENV !== 'production') { - var manualPropTypeCallCache = {}; - var manualPropTypeWarningCount = 0; - } - - function checkType(isRequired, props, propName, componentName, location, propFullName, secret) { - componentName = componentName || ANONYMOUS; - propFullName = propFullName || propName; - - if (secret !== ReactPropTypesSecret) { - if (throwOnDirectAccess) { - // New behavior only for users of `prop-types` package - invariant(false, 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' + 'Use `PropTypes.checkPropTypes()` to call them. ' + 'Read more at http://fb.me/use-check-prop-types'); - } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') { - // Old behavior for people using React.PropTypes - var cacheKey = componentName + ':' + propName; - - if (!manualPropTypeCallCache[cacheKey] && // Avoid spamming the console because they are often not actionable except for lib authors - manualPropTypeWarningCount < 3) { - warning(false, 'You are manually calling a React.PropTypes validation ' + 'function for the `%s` prop on `%s`. This is deprecated ' + 'and will throw in the standalone `prop-types` package. ' + 'You may be seeing this warning due to a third-party PropTypes ' + 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.', propFullName, componentName); - manualPropTypeCallCache[cacheKey] = true; - manualPropTypeWarningCount++; - } - } - } - - if (props[propName] == null) { - if (isRequired) { - if (props[propName] === null) { - return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.')); - } - - return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.')); - } - - return null; - } else { - return validate(props, propName, componentName, location, propFullName); - } - } - - var chainedCheckType = checkType.bind(null, false); - chainedCheckType.isRequired = checkType.bind(null, true); - return chainedCheckType; - } - - function createPrimitiveTypeChecker(expectedType) { - function validate(props, propName, componentName, location, propFullName, secret) { - var propValue = props[propName]; - var propType = getPropType(propValue); - - if (propType !== expectedType) { - // `propValue` being instance of, say, date/regexp, pass the 'object' - // check, but we can offer a more precise error message here rather than - // 'of type `object`'. - var preciseType = getPreciseType(propValue); - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.')); - } - - return null; - } - - return createChainableTypeChecker(validate); - } - - function createAnyTypeChecker() { - return createChainableTypeChecker(emptyFunction.thatReturnsNull); - } - - function createArrayOfTypeChecker(typeChecker) { - function validate(props, propName, componentName, location, propFullName) { - if (typeof typeChecker !== 'function') { - return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.'); - } - - var propValue = props[propName]; - - if (!Array.isArray(propValue)) { - var propType = getPropType(propValue); - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.')); - } - - for (var i = 0; i < propValue.length; i++) { - var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret); - - if (error instanceof Error) { - return error; - } - } - - return null; - } - - return createChainableTypeChecker(validate); - } - - function createElementTypeChecker() { - function validate(props, propName, componentName, location, propFullName) { - var propValue = props[propName]; - - if (!isValidElement(propValue)) { - var propType = getPropType(propValue); - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.')); - } - - return null; - } - - return createChainableTypeChecker(validate); - } - - function createInstanceTypeChecker(expectedClass) { - function validate(props, propName, componentName, location, propFullName) { - if (!(props[propName] instanceof expectedClass)) { - var expectedClassName = expectedClass.name || ANONYMOUS; - var actualClassName = getClassName(props[propName]); - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.')); - } - - return null; - } - - return createChainableTypeChecker(validate); - } - - function createEnumTypeChecker(expectedValues) { - if (!Array.isArray(expectedValues)) { - process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOf, expected an instance of array.') : void 0; - return emptyFunction.thatReturnsNull; - } - - function validate(props, propName, componentName, location, propFullName) { - var propValue = props[propName]; - - for (var i = 0; i < expectedValues.length; i++) { - if (is(propValue, expectedValues[i])) { - return null; - } - } - - var valuesString = JSON.stringify(expectedValues); - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.')); - } - - return createChainableTypeChecker(validate); - } - - function createObjectOfTypeChecker(typeChecker) { - function validate(props, propName, componentName, location, propFullName) { - if (typeof typeChecker !== 'function') { - return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.'); - } - - var propValue = props[propName]; - var propType = getPropType(propValue); - - if (propType !== 'object') { - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.')); - } - - for (var key in propValue) { - if (propValue.hasOwnProperty(key)) { - var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret); - - if (error instanceof Error) { - return error; - } - } - } - - return null; - } - - return createChainableTypeChecker(validate); - } - - function createUnionTypeChecker(arrayOfTypeCheckers) { - if (!Array.isArray(arrayOfTypeCheckers)) { - process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOfType, expected an instance of array.') : void 0; - return emptyFunction.thatReturnsNull; - } - - for (var i = 0; i < arrayOfTypeCheckers.length; i++) { - var checker = arrayOfTypeCheckers[i]; - - if (typeof checker !== 'function') { - warning(false, 'Invalid argument supplid to oneOfType. Expected an array of check functions, but ' + 'received %s at index %s.', getPostfixForTypeWarning(checker), i); - return emptyFunction.thatReturnsNull; - } - } - - function validate(props, propName, componentName, location, propFullName) { - for (var i = 0; i < arrayOfTypeCheckers.length; i++) { - var checker = arrayOfTypeCheckers[i]; - - if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) { - return null; - } - } - - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.')); - } - - return createChainableTypeChecker(validate); - } - - function createNodeChecker() { - function validate(props, propName, componentName, location, propFullName) { - if (!isNode(props[propName])) { - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.')); - } - - return null; - } - - return createChainableTypeChecker(validate); - } - - function createShapeTypeChecker(shapeTypes) { - function validate(props, propName, componentName, location, propFullName) { - var propValue = props[propName]; - var propType = getPropType(propValue); - - if (propType !== 'object') { - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.')); - } - - for (var key in shapeTypes) { - var checker = shapeTypes[key]; - - if (!checker) { - continue; - } - - var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret); - - if (error) { - return error; - } - } - - return null; - } - - return createChainableTypeChecker(validate); - } - - function isNode(propValue) { - switch (_typeof(propValue)) { - case 'number': - case 'string': - case 'undefined': - return true; - - case 'boolean': - return !propValue; - - case 'object': - if (Array.isArray(propValue)) { - return propValue.every(isNode); - } - - if (propValue === null || isValidElement(propValue)) { - return true; - } - - var iteratorFn = getIteratorFn(propValue); - - if (iteratorFn) { - var iterator = iteratorFn.call(propValue); - var step; - - if (iteratorFn !== propValue.entries) { - while (!(step = iterator.next()).done) { - if (!isNode(step.value)) { - return false; - } - } - } else { - // Iterator will provide entry [k,v] tuples rather than values. - while (!(step = iterator.next()).done) { - var entry = step.value; - - if (entry) { - if (!isNode(entry[1])) { - return false; - } - } - } - } - } else { - return false; - } - - return true; - - default: - return false; - } - } - - function isSymbol(propType, propValue) { - // Native Symbol. - if (propType === 'symbol') { - return true; - } // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol' - - - if (propValue['@@toStringTag'] === 'Symbol') { - return true; - } // Fallback for non-spec compliant Symbols which are polyfilled. - - - if (typeof Symbol === 'function' && propValue instanceof Symbol) { - return true; - } - - return false; - } // Equivalent of `typeof` but with special handling for array and regexp. - - - function getPropType(propValue) { - var propType = _typeof(propValue); - - if (Array.isArray(propValue)) { - return 'array'; - } - - if (propValue instanceof RegExp) { - // Old webkits (at least until Android 4.0) return 'function' rather than - // 'object' for typeof a RegExp. We'll normalize this here so that /bla/ - // passes PropTypes.object. - return 'object'; - } - - if (isSymbol(propType, propValue)) { - return 'symbol'; - } - - return propType; - } // This handles more types than `getPropType`. Only used for error messages. - // See `createPrimitiveTypeChecker`. - - - function getPreciseType(propValue) { - if (typeof propValue === 'undefined' || propValue === null) { - return '' + propValue; - } - - var propType = getPropType(propValue); - - if (propType === 'object') { - if (propValue instanceof Date) { - return 'date'; - } else if (propValue instanceof RegExp) { - return 'regexp'; - } - } - - return propType; - } // Returns a string that is postfixed to a warning about an invalid type. - // For example, "undefined" or "of type array" - - - function getPostfixForTypeWarning(value) { - var type = getPreciseType(value); - - switch (type) { - case 'array': - case 'object': - return 'an ' + type; - - case 'boolean': - case 'date': - case 'regexp': - return 'a ' + type; - - default: - return type; - } - } // Returns class name of the object, if any. - - - function getClassName(propValue) { - if (!propValue.constructor || !propValue.constructor.name) { - return ANONYMOUS; - } - - return propValue.constructor.name; - } - - ReactPropTypes.checkPropTypes = checkPropTypes; - ReactPropTypes.PropTypes = ReactPropTypes; - return ReactPropTypes; - }; - /* WEBPACK VAR INJECTION */ - - }).call(exports, __webpack_require__(2)); - /***/ - }, - /* 15 */ - - /***/ - function (module, exports, __webpack_require__) { - "use strict"; - /* WEBPACK VAR INJECTION */ - - (function (process) { - /** - * Copyright 2013-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 (process.env.NODE_ENV !== 'production') { - var invariant = __webpack_require__(5); - - var warning = __webpack_require__(8); - - var ReactPropTypesSecret = __webpack_require__(6); - - var loggedTypeFailures = {}; - } - /** - * Assert that the values match with the type specs. - * Error messages are memorized and will only be shown once. - * - * @param {object} typeSpecs Map of name to a ReactPropType - * @param {object} values Runtime values that need to be type-checked - * @param {string} location e.g. "prop", "context", "child context" - * @param {string} componentName Name of the component for error messages. - * @param {?Function} getStack Returns the component stack. - * @private - */ - - - function checkPropTypes(typeSpecs, values, location, componentName, getStack) { - if (process.env.NODE_ENV !== 'production') { - for (var typeSpecName in typeSpecs) { - if (typeSpecs.hasOwnProperty(typeSpecName)) { - var error; // Prop type validation may throw. In case they do, we don't want to - // fail the render phase where it didn't fail before. So we log it. - // After these have been cleaned up, we'll let them throw. - - try { - // This is intentionally an invariant that gets caught. It's the same - // behavior as without this statement except with a better message. - invariant(typeof typeSpecs[typeSpecName] === 'function', '%s: %s type `%s` is invalid; it must be a function, usually from ' + 'React.PropTypes.', componentName || 'React class', location, typeSpecName); - error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret); - } catch (ex) { - error = ex; - } - - 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)); - - if (error instanceof Error && !(error.message in loggedTypeFailures)) { - // Only monitor this failure once because there tends to be a lot of the - // same error. - loggedTypeFailures[error.message] = true; - var stack = getStack ? getStack() : ''; - warning(false, 'Failed %s type: %s%s', location, error.message, stack != null ? stack : ''); - } - } - } - } - } - - module.exports = checkPropTypes; - /* WEBPACK VAR INJECTION */ - }).call(exports, __webpack_require__(2)); - /***/ - }, - /* 16 */ - - /***/ - function (module, exports, __webpack_require__) { - "use strict"; - /** - * Copyright 2013-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. - */ - - var emptyFunction = __webpack_require__(4); - - var invariant = __webpack_require__(5); - - var ReactPropTypesSecret = __webpack_require__(6); - - module.exports = function () { - function shim(props, propName, componentName, location, propFullName, secret) { - if (secret === ReactPropTypesSecret) { - // It is still safe when called from React. - return; - } - - invariant(false, 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' + 'Use PropTypes.checkPropTypes() to call them. ' + 'Read more at http://fb.me/use-check-prop-types'); - } - - ; - shim.isRequired = shim; - - function getShim() { - return shim; - } - - ; // Important! - // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`. - - var ReactPropTypes = { - array: shim, - bool: shim, - func: shim, - number: shim, - object: shim, - string: shim, - symbol: shim, - any: shim, - arrayOf: getShim, - element: shim, - instanceOf: getShim, - node: shim, - objectOf: getShim, - oneOf: getShim, - oneOfType: getShim, - shape: getShim - }; - ReactPropTypes.checkPropTypes = emptyFunction; - ReactPropTypes.PropTypes = ReactPropTypes; - return ReactPropTypes; - }; - /***/ - - }, - /* 17 */ - - /***/ - function (module, exports, __webpack_require__) { - "use strict"; - - Object.defineProperty(exports, "__esModule", { - value: true - }); - - var _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; - }; - }(); - - var _propTypes = __webpack_require__(0); - - var _propTypes2 = _interopRequireDefault(_propTypes); - - var _react = __webpack_require__(1); - - var _react2 = _interopRequireDefault(_react); - - function _interopRequireDefault(obj) { - return obj && obj.__esModule ? obj : { - default: obj - }; - } - - function _classCallCheck(instance, Constructor) { - if (!(instance instanceof Constructor)) { - throw new TypeError("Cannot call a class as a function"); - } - } - - function _possibleConstructorReturn(self, call) { - if (!self) { - throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); - } - - return call && (_typeof(call) === "object" || typeof call === "function") ? call : self; - } - - function _inherits(subClass, superClass) { - if (typeof superClass !== "function" && superClass !== null) { - throw new TypeError("Super expression must either be null or a function, not " + _typeof(superClass)); - } - - subClass.prototype = Object.create(superClass && superClass.prototype, { - constructor: { - value: subClass, - enumerable: false, - writable: true, - configurable: true - } - }); - if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; - } - - var SparklinesText = function (_React$Component) { - _inherits(SparklinesText, _React$Component); - - function SparklinesText() { - _classCallCheck(this, SparklinesText); - - return _possibleConstructorReturn(this, (SparklinesText.__proto__ || Object.getPrototypeOf(SparklinesText)).apply(this, arguments)); - } - - _createClass(SparklinesText, [{ - key: 'render', - value: function render() { - var _props = this.props, - point = _props.point, - text = _props.text, - fontSize = _props.fontSize, - fontFamily = _props.fontFamily; - var x = point.x, - y = point.y; - return _react2.default.createElement('g', null, _react2.default.createElement('text', { - x: x, - y: y, - fontFamily: fontFamily || "Verdana", - fontSize: fontSize || 10 - }, text)); - } - }]); - - return SparklinesText; - }(_react2.default.Component); - - SparklinesText.propTypes = { - text: _propTypes2.default.string, - point: _propTypes2.default.object, - fontSize: _propTypes2.default.number, - fontFamily: _propTypes2.default.string - }; - SparklinesText.defaultProps = { - text: '', - point: { - x: 0, - y: 0 - } - }; - exports.default = SparklinesText; - /***/ - }, - /* 18 */ - - /***/ - function (module, exports, __webpack_require__) { - "use strict"; - - Object.defineProperty(exports, "__esModule", { - value: true - }); - - var _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; - }; - }(); - - var _propTypes = __webpack_require__(0); - - var _propTypes2 = _interopRequireDefault(_propTypes); - - var _react = __webpack_require__(1); - - var _react2 = _interopRequireDefault(_react); - - function _interopRequireDefault(obj) { - return obj && obj.__esModule ? obj : { - default: obj - }; - } - - function _classCallCheck(instance, Constructor) { - if (!(instance instanceof Constructor)) { - throw new TypeError("Cannot call a class as a function"); - } - } - - function _possibleConstructorReturn(self, call) { - if (!self) { - throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); - } - - return call && (_typeof(call) === "object" || typeof call === "function") ? call : self; - } - - function _inherits(subClass, superClass) { - if (typeof superClass !== "function" && superClass !== null) { - throw new TypeError("Super expression must either be null or a function, not " + _typeof(superClass)); - } - - subClass.prototype = Object.create(superClass && superClass.prototype, { - constructor: { - value: subClass, - enumerable: false, - writable: true, - configurable: true - } - }); - if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; - } - - var SparklinesLine = function (_React$Component) { - _inherits(SparklinesLine, _React$Component); - - function SparklinesLine() { - _classCallCheck(this, SparklinesLine); - - return _possibleConstructorReturn(this, (SparklinesLine.__proto__ || Object.getPrototypeOf(SparklinesLine)).apply(this, arguments)); - } - - _createClass(SparklinesLine, [{ - key: 'render', - value: function render() { - var _props = this.props, - data = _props.data, - points = _props.points, - width = _props.width, - height = _props.height, - margin = _props.margin, - color = _props.color, - style = _props.style, - onMouseMove = _props.onMouseMove; - var linePoints = points.map(function (p) { - return [p.x, p.y]; - }).reduce(function (a, b) { - return a.concat(b); - }); - var closePolyPoints = [points[points.length - 1].x, height - margin, margin, height - margin, margin, points[0].y]; - var fillPoints = linePoints.concat(closePolyPoints); - var lineStyle = { - stroke: color || style.stroke || 'slategray', - strokeWidth: style.strokeWidth || '1', - strokeLinejoin: style.strokeLinejoin || 'round', - strokeLinecap: style.strokeLinecap || 'round', - fill: 'none' - }; - var fillStyle = { - stroke: style.stroke || 'none', - strokeWidth: '0', - fillOpacity: style.fillOpacity || '.1', - fill: style.fill || color || 'slategray', - pointerEvents: 'auto' - }; - var tooltips = points.map(function (p, i) { - return _react2.default.createElement('circle', { - key: i, - cx: p.x, - cy: p.y, - r: 2, - style: fillStyle, - onMouseEnter: function onMouseEnter(e) { - return onMouseMove('enter', data[i], p); - }, - onClick: function onClick(e) { - return onMouseMove('click', data[i], p); - } - }); - }); - return _react2.default.createElement('g', null, tooltips, _react2.default.createElement('polyline', { - points: fillPoints.join(' '), - style: fillStyle - }), _react2.default.createElement('polyline', { - points: linePoints.join(' '), - style: lineStyle - })); - } - }]); - - return SparklinesLine; - }(_react2.default.Component); - - SparklinesLine.propTypes = { - color: _propTypes2.default.string, - style: _propTypes2.default.object - }; - SparklinesLine.defaultProps = { - style: {}, - onMouseMove: function onMouseMove() {} - }; - exports.default = SparklinesLine; - /***/ - }, - /* 19 */ - - /***/ - function (module, exports, __webpack_require__) { - "use strict"; - - Object.defineProperty(exports, "__esModule", { - value: true - }); - - var _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; - }; - }(); - - var _propTypes = __webpack_require__(0); - - var _propTypes2 = _interopRequireDefault(_propTypes); - - var _react = __webpack_require__(1); - - var _react2 = _interopRequireDefault(_react); - - function _interopRequireDefault(obj) { - return obj && obj.__esModule ? obj : { - default: obj - }; - } - - function _classCallCheck(instance, Constructor) { - if (!(instance instanceof Constructor)) { - throw new TypeError("Cannot call a class as a function"); - } - } - - function _possibleConstructorReturn(self, call) { - if (!self) { - throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); - } - - return call && (_typeof(call) === "object" || typeof call === "function") ? call : self; - } - - function _inherits(subClass, superClass) { - if (typeof superClass !== "function" && superClass !== null) { - throw new TypeError("Super expression must either be null or a function, not " + _typeof(superClass)); - } - - subClass.prototype = Object.create(superClass && superClass.prototype, { - constructor: { - value: subClass, - enumerable: false, - writable: true, - configurable: true - } - }); - if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; - } - - var SparklinesCurve = function (_React$Component) { - _inherits(SparklinesCurve, _React$Component); - - function SparklinesCurve() { - _classCallCheck(this, SparklinesCurve); - - return _possibleConstructorReturn(this, (SparklinesCurve.__proto__ || Object.getPrototypeOf(SparklinesCurve)).apply(this, arguments)); - } - - _createClass(SparklinesCurve, [{ - key: 'render', - value: function render() { - var _props = this.props, - points = _props.points, - width = _props.width, - height = _props.height, - margin = _props.margin, - color = _props.color, - style = _props.style, - _props$divisor = _props.divisor, - divisor = _props$divisor === undefined ? 0.25 : _props$divisor; - var prev = void 0; - - var curve = function curve(p) { - var res = void 0; - - if (!prev) { - res = [p.x, p.y]; - } else { - var len = (p.x - prev.x) * divisor; - res = ["C", //x1 - prev.x + len, //y1 - prev.y, //x2, - p.x - len, //y2, - p.y, //x, - p.x, //y - p.y]; - } - - prev = p; - return res; - }; - - var linePoints = points.map(function (p) { - return curve(p); - }).reduce(function (a, b) { - return a.concat(b); - }); - var closePolyPoints = ["L" + points[points.length - 1].x, height - margin, margin, height - margin, margin, points[0].y]; - var fillPoints = linePoints.concat(closePolyPoints); - var lineStyle = { - stroke: color || style.stroke || 'slategray', - strokeWidth: style.strokeWidth || '1', - strokeLinejoin: style.strokeLinejoin || 'round', - strokeLinecap: style.strokeLinecap || 'round', - fill: 'none' - }; - var fillStyle = { - stroke: style.stroke || 'none', - strokeWidth: '0', - fillOpacity: style.fillOpacity || '.1', - fill: style.fill || color || 'slategray' - }; - return _react2.default.createElement('g', null, _react2.default.createElement('path', { - d: "M" + fillPoints.join(' '), - style: fillStyle - }), _react2.default.createElement('path', { - d: "M" + linePoints.join(' '), - style: lineStyle - })); - } - }]); - - return SparklinesCurve; - }(_react2.default.Component); - - SparklinesCurve.propTypes = { - color: _propTypes2.default.string, - style: _propTypes2.default.object - }; - SparklinesCurve.defaultProps = { - style: {} - }; - exports.default = SparklinesCurve; - /***/ - }, - /* 20 */ - - /***/ - function (module, exports, __webpack_require__) { - "use strict"; - - Object.defineProperty(exports, "__esModule", { - value: true - }); - - var _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; - }; - }(); - - var _propTypes = __webpack_require__(0); - - var _propTypes2 = _interopRequireDefault(_propTypes); - - var _react = __webpack_require__(1); - - var _react2 = _interopRequireDefault(_react); - - function _interopRequireDefault(obj) { - return obj && obj.__esModule ? obj : { - default: obj - }; - } - - function _classCallCheck(instance, Constructor) { - if (!(instance instanceof Constructor)) { - throw new TypeError("Cannot call a class as a function"); - } - } - - function _possibleConstructorReturn(self, call) { - if (!self) { - throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); - } - - return call && (_typeof(call) === "object" || typeof call === "function") ? call : self; - } - - function _inherits(subClass, superClass) { - if (typeof superClass !== "function" && superClass !== null) { - throw new TypeError("Super expression must either be null or a function, not " + _typeof(superClass)); - } - - subClass.prototype = Object.create(superClass && superClass.prototype, { - constructor: { - value: subClass, - enumerable: false, - writable: true, - configurable: true - } - }); - if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; - } - - var SparklinesBars = function (_React$Component) { - _inherits(SparklinesBars, _React$Component); - - function SparklinesBars() { - _classCallCheck(this, SparklinesBars); - - return _possibleConstructorReturn(this, (SparklinesBars.__proto__ || Object.getPrototypeOf(SparklinesBars)).apply(this, arguments)); - } - - _createClass(SparklinesBars, [{ - key: 'render', - value: function render() { - var _this2 = this; - - var _props = this.props, - points = _props.points, - height = _props.height, - style = _props.style, - barWidth = _props.barWidth, - margin = _props.margin, - onMouseMove = _props.onMouseMove; - var strokeWidth = 1 * (style && style.strokeWidth || 0); - var marginWidth = margin ? 2 * margin : 0; - var width = barWidth || (points && points.length >= 2 ? Math.max(0, points[1].x - points[0].x - strokeWidth - marginWidth) : 0); - return _react2.default.createElement('g', { - transform: 'scale(1,-1)' - }, points.map(function (p, i) { - return _react2.default.createElement('rect', { - key: i, - x: p.x - (width + strokeWidth) / 2, - y: -height, - width: width, - height: Math.max(0, height - p.y), - style: style, - onMouseMove: onMouseMove && onMouseMove.bind(_this2, p) - }); - })); - } - }]); - - return SparklinesBars; - }(_react2.default.Component); - - SparklinesBars.propTypes = { - points: _propTypes2.default.arrayOf(_propTypes2.default.object), - height: _propTypes2.default.number, - style: _propTypes2.default.object, - barWidth: _propTypes2.default.number, - margin: _propTypes2.default.number, - onMouseMove: _propTypes2.default.func - }; - SparklinesBars.defaultProps = { - style: { - fill: 'slategray' - } - }; - exports.default = SparklinesBars; - /***/ - }, - /* 21 */ - - /***/ - function (module, exports, __webpack_require__) { - "use strict"; - - Object.defineProperty(exports, "__esModule", { - value: true - }); - - var _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; - }; - }(); - - var _propTypes = __webpack_require__(0); - - var _propTypes2 = _interopRequireDefault(_propTypes); - - var _react = __webpack_require__(1); - - var _react2 = _interopRequireDefault(_react); - - function _interopRequireDefault(obj) { - return obj && obj.__esModule ? obj : { - default: obj - }; - } - - function _classCallCheck(instance, Constructor) { - if (!(instance instanceof Constructor)) { - throw new TypeError("Cannot call a class as a function"); - } - } - - function _possibleConstructorReturn(self, call) { - if (!self) { - throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); - } - - return call && (_typeof(call) === "object" || typeof call === "function") ? call : self; - } - - function _inherits(subClass, superClass) { - if (typeof superClass !== "function" && superClass !== null) { - throw new TypeError("Super expression must either be null or a function, not " + _typeof(superClass)); - } - - subClass.prototype = Object.create(superClass && superClass.prototype, { - constructor: { - value: subClass, - enumerable: false, - writable: true, - configurable: true - } - }); - if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; - } - - var SparklinesSpots = function (_React$Component) { - _inherits(SparklinesSpots, _React$Component); - - function SparklinesSpots() { - _classCallCheck(this, SparklinesSpots); - - return _possibleConstructorReturn(this, (SparklinesSpots.__proto__ || Object.getPrototypeOf(SparklinesSpots)).apply(this, arguments)); - } - - _createClass(SparklinesSpots, [{ - key: 'lastDirection', - value: function lastDirection(points) { - Math.sign = Math.sign || function (x) { - return x > 0 ? 1 : -1; - }; - - return points.length < 2 ? 0 : Math.sign(points[points.length - 2].y - points[points.length - 1].y); - } - }, { - key: 'render', - value: function render() { - var _props = this.props, - points = _props.points, - width = _props.width, - height = _props.height, - size = _props.size, - style = _props.style, - spotColors = _props.spotColors; - - var startSpot = _react2.default.createElement('circle', { - cx: points[0].x, - cy: points[0].y, - r: size, - style: style - }); - - var endSpot = _react2.default.createElement('circle', { - cx: points[points.length - 1].x, - cy: points[points.length - 1].y, - r: size, - style: style || { - fill: spotColors[this.lastDirection(points)] - } - }); - - return _react2.default.createElement('g', null, style && startSpot, endSpot); - } - }]); - - return SparklinesSpots; - }(_react2.default.Component); - - SparklinesSpots.propTypes = { - size: _propTypes2.default.number, - style: _propTypes2.default.object, - spotColors: _propTypes2.default.object - }; - SparklinesSpots.defaultProps = { - size: 2, - spotColors: { - '-1': 'red', - '0': 'black', - '1': 'green' - } - }; - exports.default = SparklinesSpots; - /***/ - }, - /* 22 */ - - /***/ - function (module, exports, __webpack_require__) { - "use strict"; - - Object.defineProperty(exports, "__esModule", { - value: true - }); - - var _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; - }; - }(); - - var _propTypes = __webpack_require__(0); - - var _propTypes2 = _interopRequireDefault(_propTypes); - - var _react = __webpack_require__(1); - - var _react2 = _interopRequireDefault(_react); - - var _dataProcessing = __webpack_require__(23); - - var dataProcessing = _interopRequireWildcard(_dataProcessing); - - function _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; - } - } - - function _interopRequireDefault(obj) { - return obj && obj.__esModule ? obj : { - default: obj - }; - } - - function _classCallCheck(instance, Constructor) { - if (!(instance instanceof Constructor)) { - throw new TypeError("Cannot call a class as a function"); - } - } - - function _possibleConstructorReturn(self, call) { - if (!self) { - throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); - } - - return call && (_typeof(call) === "object" || typeof call === "function") ? call : self; - } - - function _inherits(subClass, superClass) { - if (typeof superClass !== "function" && superClass !== null) { - throw new TypeError("Super expression must either be null or a function, not " + _typeof(superClass)); - } - - subClass.prototype = Object.create(superClass && superClass.prototype, { - constructor: { - value: subClass, - enumerable: false, - writable: true, - configurable: true - } - }); - if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; - } - - var SparklinesReferenceLine = function (_React$Component) { - _inherits(SparklinesReferenceLine, _React$Component); - - function SparklinesReferenceLine() { - _classCallCheck(this, SparklinesReferenceLine); - - return _possibleConstructorReturn(this, (SparklinesReferenceLine.__proto__ || Object.getPrototypeOf(SparklinesReferenceLine)).apply(this, arguments)); - } - - _createClass(SparklinesReferenceLine, [{ - key: 'render', - value: function render() { - var _props = this.props, - points = _props.points, - margin = _props.margin, - type = _props.type, - style = _props.style, - value = _props.value; - var ypoints = points.map(function (p) { - return p.y; - }); - var y = type == 'custom' ? value : dataProcessing[type](ypoints); - return _react2.default.createElement('line', { - x1: points[0].x, - y1: y + margin, - x2: points[points.length - 1].x, - y2: y + margin, - style: style - }); - } - }]); - - return SparklinesReferenceLine; - }(_react2.default.Component); - - SparklinesReferenceLine.propTypes = { - type: _propTypes2.default.oneOf(['max', 'min', 'mean', 'avg', 'median', 'custom']), - value: _propTypes2.default.number, - style: _propTypes2.default.object - }; - SparklinesReferenceLine.defaultProps = { - type: 'mean', - style: { - stroke: 'red', - strokeOpacity: .75, - strokeDasharray: '2, 2' - } - }; - exports.default = SparklinesReferenceLine; - /***/ - }, - /* 23 */ - - /***/ - function (module, exports, __webpack_require__) { - "use strict"; - - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.variance = exports.stdev = exports.median = exports.midRange = exports.avg = exports.mean = exports.max = exports.min = undefined; - - var _min2 = __webpack_require__(7); - - var _min3 = _interopRequireDefault(_min2); - - var _mean2 = __webpack_require__(3); - - var _mean3 = _interopRequireDefault(_mean2); - - var _midRange2 = __webpack_require__(24); - - var _midRange3 = _interopRequireDefault(_midRange2); - - var _median2 = __webpack_require__(25); - - var _median3 = _interopRequireDefault(_median2); - - var _stdev2 = __webpack_require__(10); - - var _stdev3 = _interopRequireDefault(_stdev2); - - var _variance2 = __webpack_require__(26); - - var _variance3 = _interopRequireDefault(_variance2); - - function _interopRequireDefault(obj) { - return obj && obj.__esModule ? obj : { - default: obj - }; - } - - exports.min = _min3.default; - exports.max = _min3.default; - exports.mean = _mean3.default; - exports.avg = _mean3.default; - exports.midRange = _midRange3.default; - exports.median = _median3.default; - exports.stdev = _stdev3.default; - exports.variance = _variance3.default; - /***/ - }, - /* 24 */ - - /***/ - function (module, exports, __webpack_require__) { - "use strict"; - - Object.defineProperty(exports, "__esModule", { - value: true - }); - - var _min = __webpack_require__(7); - - var _min2 = _interopRequireDefault(_min); - - var _max = __webpack_require__(9); - - var _max2 = _interopRequireDefault(_max); - - function _interopRequireDefault(obj) { - return obj && obj.__esModule ? obj : { - default: obj - }; - } - - exports.default = function (data) { - return (0, _max2.default)(data) - (0, _min2.default)(data) / 2; - }; - /***/ - - }, - /* 25 */ - - /***/ - function (module, exports, __webpack_require__) { - "use strict"; - - Object.defineProperty(exports, "__esModule", { - value: true - }); - - exports.default = function (data) { - return data.sort(function (a, b) { - return a - b; - })[Math.floor(data.length / 2)]; - }; - /***/ - - }, - /* 26 */ - - /***/ - function (module, exports, __webpack_require__) { - "use strict"; - - Object.defineProperty(exports, "__esModule", { - value: true - }); - - var _mean = __webpack_require__(3); - - var _mean2 = _interopRequireDefault(_mean); - - function _interopRequireDefault(obj) { - return obj && obj.__esModule ? obj : { - default: obj - }; - } - - exports.default = function (data) { - var dataMean = (0, _mean2.default)(data); - var sq = data.map(function (n) { - return Math.pow(n - dataMean, 2); - }); - return (0, _mean2.default)(sq); - }; - /***/ - - }, - /* 27 */ - - /***/ - function (module, exports, __webpack_require__) { - "use strict"; - - Object.defineProperty(exports, "__esModule", { - value: true - }); - - var _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; - }; - }(); - - var _propTypes = __webpack_require__(0); - - var _propTypes2 = _interopRequireDefault(_propTypes); - - var _react = __webpack_require__(1); - - var _react2 = _interopRequireDefault(_react); - - var _mean = __webpack_require__(3); - - var _mean2 = _interopRequireDefault(_mean); - - var _stdev = __webpack_require__(10); - - var _stdev2 = _interopRequireDefault(_stdev); - - function _interopRequireDefault(obj) { - return obj && obj.__esModule ? obj : { - default: obj - }; - } - - function _classCallCheck(instance, Constructor) { - if (!(instance instanceof Constructor)) { - throw new TypeError("Cannot call a class as a function"); - } - } - - function _possibleConstructorReturn(self, call) { - if (!self) { - throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); - } - - return call && (_typeof(call) === "object" || typeof call === "function") ? call : self; - } - - function _inherits(subClass, superClass) { - if (typeof superClass !== "function" && superClass !== null) { - throw new TypeError("Super expression must either be null or a function, not " + _typeof(superClass)); - } - - subClass.prototype = Object.create(superClass && superClass.prototype, { - constructor: { - value: subClass, - enumerable: false, - writable: true, - configurable: true - } - }); - if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; - } - - var SparklinesNormalBand = function (_React$Component) { - _inherits(SparklinesNormalBand, _React$Component); - - function SparklinesNormalBand() { - _classCallCheck(this, SparklinesNormalBand); - - return _possibleConstructorReturn(this, (SparklinesNormalBand.__proto__ || Object.getPrototypeOf(SparklinesNormalBand)).apply(this, arguments)); - } - - _createClass(SparklinesNormalBand, [{ - key: 'render', - value: function render() { - var _props = this.props, - points = _props.points, - margin = _props.margin, - style = _props.style; - var ypoints = points.map(function (p) { - return p.y; - }); - var dataMean = (0, _mean2.default)(ypoints); - var dataStdev = (0, _stdev2.default)(ypoints); - return _react2.default.createElement('rect', { - x: points[0].x, - y: dataMean - dataStdev + margin, - width: points[points.length - 1].x - points[0].x, - height: _stdev2.default * 2, - style: style - }); - } - }]); - - return SparklinesNormalBand; - }(_react2.default.Component); - - SparklinesNormalBand.propTypes = { - style: _propTypes2.default.object - }; - SparklinesNormalBand.defaultProps = { - style: { - fill: 'red', - fillOpacity: .1 - } - }; - exports.default = SparklinesNormalBand; - /***/ - }, - /* 28 */ - - /***/ - function (module, exports, __webpack_require__) { - "use strict"; - - Object.defineProperty(exports, "__esModule", { - value: true - }); - - var _min = __webpack_require__(7); - - var _min2 = _interopRequireDefault(_min); - - var _max = __webpack_require__(9); - - var _max2 = _interopRequireDefault(_max); - - function _interopRequireDefault(obj) { - return obj && obj.__esModule ? obj : { - default: obj - }; - } - - exports.default = function (_ref) { - var data = _ref.data, - limit = _ref.limit, - _ref$width = _ref.width, - width = _ref$width === undefined ? 1 : _ref$width, - _ref$height = _ref.height, - height = _ref$height === undefined ? 1 : _ref$height, - _ref$margin = _ref.margin, - margin = _ref$margin === undefined ? 0 : _ref$margin, - _ref$max = _ref.max, - max = _ref$max === undefined ? (0, _max2.default)(data) : _ref$max, - _ref$min = _ref.min, - min = _ref$min === undefined ? (0, _min2.default)(data) : _ref$min; - var len = data.length; - - if (limit && limit < len) { - data = data.slice(len - limit); - } - - var vfactor = (height - margin * 2) / (max - min || 2); - var hfactor = (width - margin * 2) / ((limit || len) - (len > 1 ? 1 : 0)); - return data.map(function (d, i) { - return { - x: i * hfactor + margin, - y: (max === min ? 1 : max - d) * vfactor + margin - }; - }); - }; - /***/ - - }]) - ); -}); -/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../webpack/buildin/module.js */ "./node_modules/webpack/buildin/module.js")(module))) - -/***/ }), - -/***/ "./node_modules/webpack/buildin/module.js": -/*!***********************************!*\ - !*** (webpack)/buildin/module.js ***! - \***********************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -module.exports = function (module) { - if (!module.webpackPolyfill) { - module.deprecate = function () {}; - - module.paths = []; // module.parent = undefined by default - - if (!module.children) module.children = []; - Object.defineProperty(module, "loaded", { - enumerable: true, - get: function get() { - return module.l; - } - }); - Object.defineProperty(module, "id", { - enumerable: true, - get: function get() { - return module.i; - } - }); - module.webpackPolyfill = 1; - } - - return module; -}; - -/***/ }), - -/***/ "./srcjs/sparklineswidget.js": -/*!***********************************!*\ - !*** ./srcjs/sparklineswidget.js ***! - \***********************************/ -/*! no exports provided */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var react_sparklines__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react-sparklines */ "./node_modules/react-sparklines/build/index.js"); -/* harmony import */ var react_sparklines__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_sparklines__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var reactR__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! reactR */ "reactR"); -/* harmony import */ var reactR__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(reactR__WEBPACK_IMPORTED_MODULE_1__); - - -Object(reactR__WEBPACK_IMPORTED_MODULE_1__["reactWidget"])('sparklineswidget', 'output', react_sparklines__WEBPACK_IMPORTED_MODULE_0__); - -/***/ }), - -/***/ "react": -/*!*******************************!*\ - !*** external "window.React" ***! - \*******************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -module.exports = window.React; - -/***/ }), - -/***/ "reactR": -/*!********************************!*\ - !*** external "window.reactR" ***! - \********************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -module.exports = window.reactR; - -/***/ }) - -/******/ }); -//# sourceMappingURL=sparklineswidget.js.map \ No newline at end of file diff --git a/examples/sparklineswidget/inst/htmlwidgets/sparklineswidget.js.map b/examples/sparklineswidget/inst/htmlwidgets/sparklineswidget.js.map deleted file mode 100644 index 7f2011f..0000000 --- a/examples/sparklineswidget/inst/htmlwidgets/sparklineswidget.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/react-sparklines/build/index.js","webpack:///(webpack)/buildin/module.js","webpack:///./srcjs/sparklineswidget.js","webpack:///external \"window.React\"","webpack:///external \"window.reactR\""],"names":["webpackUniversalModuleDefinition","root","factory","exports","module","require","define","__WEBPACK_EXTERNAL_MODULE_1__","modules","installedModules","__webpack_require__","moduleId","i","l","call","m","c","d","name","getter","o","Object","defineProperty","configurable","enumerable","get","n","__esModule","getDefault","getModuleExports","object","property","prototype","hasOwnProperty","p","s","process","env","NODE_ENV","REACT_ELEMENT_TYPE","Symbol","for","isValidElement","$$typeof","throwOnDirectAccess","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","Error","defaultClearTimeout","setTimeout","e","clearTimeout","runTimeout","fun","runClearTimeout","marker","queue","draining","currentQueue","queueIndex","cleanUpNextTick","length","concat","drainQueue","timeout","len","run","nextTick","args","Array","arguments","push","Item","array","apply","title","browser","argv","version","versions","noop","on","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","binding","cwd","chdir","dir","umask","value","default","data","reduce","a","b","makeEmptyFunction","arg","emptyFunction","thatReturns","thatReturnsFalse","thatReturnsTrue","thatReturnsNull","thatReturnsThis","thatReturnsArgument","validateFormat","format","undefined","invariant","condition","f","error","argIndex","replace","framesToPop","ReactPropTypesSecret","Math","min","warning","printWarning","_len","_key","message","console","x","indexOf","_len2","_key2","max","_mean","_mean2","_interopRequireDefault","obj","dataMean","sqDiff","map","pow","avgSqDiff","sqrt","SparklinesText","SparklinesNormalBand","SparklinesReferenceLine","SparklinesSpots","SparklinesBars","SparklinesCurve","SparklinesLine","Sparklines","_createClass","defineProperties","target","props","descriptor","writable","key","Constructor","protoProps","staticProps","_propTypes","_propTypes2","_react","_react2","_SparklinesText","_SparklinesText2","_SparklinesLine","_SparklinesLine2","_SparklinesCurve","_SparklinesCurve2","_SparklinesBars","_SparklinesBars2","_SparklinesSpots","_SparklinesSpots2","_SparklinesReferenceLine","_SparklinesReferenceLine2","_SparklinesNormalBand","_SparklinesNormalBand2","_dataToPoints","_dataToPoints2","_classCallCheck","instance","TypeError","_possibleConstructorReturn","self","ReferenceError","_inherits","subClass","superClass","create","constructor","setPrototypeOf","__proto__","_PureComponent","getPrototypeOf","render","_props","limit","width","height","svgWidth","svgHeight","preserveAspectRatio","margin","style","points","svgOpts","viewBox","createElement","Children","children","child","cloneElement","PureComponent","propTypes","number","string","onMouseMove","func","defaultProps","checkPropTypes","ITERATOR_SYMBOL","iterator","FAUX_ITERATOR_SYMBOL","getIteratorFn","maybeIterable","iteratorFn","ANONYMOUS","ReactPropTypes","createPrimitiveTypeChecker","bool","symbol","any","createAnyTypeChecker","arrayOf","createArrayOfTypeChecker","element","createElementTypeChecker","instanceOf","createInstanceTypeChecker","node","createNodeChecker","objectOf","createObjectOfTypeChecker","oneOf","createEnumTypeChecker","oneOfType","createUnionTypeChecker","shape","createShapeTypeChecker","is","y","PropTypeError","stack","createChainableTypeChecker","validate","manualPropTypeCallCache","manualPropTypeWarningCount","checkType","isRequired","propName","componentName","location","propFullName","secret","cacheKey","chainedCheckType","bind","expectedType","propValue","propType","getPropType","preciseType","getPreciseType","typeChecker","isArray","expectedClass","expectedClassName","actualClassName","getClassName","expectedValues","valuesString","JSON","stringify","arrayOfTypeCheckers","checker","getPostfixForTypeWarning","isNode","shapeTypes","every","step","entries","next","done","entry","isSymbol","RegExp","Date","type","PropTypes","loggedTypeFailures","typeSpecs","values","getStack","typeSpecName","ex","shim","getShim","_React$Component","point","text","fontSize","fontFamily","Component","color","linePoints","closePolyPoints","fillPoints","lineStyle","stroke","strokeWidth","strokeLinejoin","strokeLinecap","fill","fillStyle","fillOpacity","pointerEvents","tooltips","cx","cy","r","onMouseEnter","onClick","join","_props$divisor","divisor","prev","curve","res","_this2","barWidth","marginWidth","transform","lastDirection","sign","size","spotColors","startSpot","endSpot","_dataProcessing","dataProcessing","_interopRequireWildcard","newObj","ypoints","x1","y1","x2","y2","strokeOpacity","strokeDasharray","variance","stdev","median","midRange","avg","mean","_min2","_min3","_mean3","_midRange2","_midRange3","_median2","_median3","_stdev2","_stdev3","_variance2","_variance3","_min","_max","_max2","sort","floor","sq","_stdev","dataStdev","_ref","_ref$width","_ref$height","_ref$margin","_ref$max","_ref$min","slice","vfactor","hfactor","webpackPolyfill","deprecate","paths","reactWidget","SparklinesComponents"],"mappings":"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","file":"sparklineswidget.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"./srcjs/sparklineswidget.js\");\n","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReactSparklines\"] = factory(require(\"react\"));\n\telse\n\t\troot[\"ReactSparklines\"] = factory(root[\"React\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_1__) {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"/\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 11);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-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\nif (process.env.NODE_ENV !== 'production') {\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__(14)(isValidElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = __webpack_require__(16)();\n}\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(2)))\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_1__;\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports) {\n\n// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nexports.default = function (data) {\n return data.reduce(function (a, b) {\n return a + b;\n }) / data.length;\n};\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/**\n * Copyright (c) 2013-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 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/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright (c) 2013-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\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 (process.env.NODE_ENV !== 'production') {\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/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(2)))\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-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\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nexports.default = function (data) {\n return Math.min.apply(Math, data);\n};\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2014-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\nvar emptyFunction = __webpack_require__(4);\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 (process.env.NODE_ENV !== 'production') {\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/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(2)))\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nexports.default = function (data) {\n return Math.max.apply(Math, data);\n};\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _mean = __webpack_require__(3);\n\nvar _mean2 = _interopRequireDefault(_mean);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (data) {\n var dataMean = (0, _mean2.default)(data);\n var sqDiff = data.map(function (n) {\n return Math.pow(n - dataMean, 2);\n });\n var avgSqDiff = (0, _mean2.default)(sqDiff);\n return Math.sqrt(avgSqDiff);\n};\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(12);\n\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = __webpack_require__(13);\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.SparklinesText = exports.SparklinesNormalBand = exports.SparklinesReferenceLine = exports.SparklinesSpots = exports.SparklinesBars = exports.SparklinesCurve = exports.SparklinesLine = exports.Sparklines = undefined;\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 _propTypes = __webpack_require__(0);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _react = __webpack_require__(1);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _SparklinesText = __webpack_require__(17);\n\nvar _SparklinesText2 = _interopRequireDefault(_SparklinesText);\n\nvar _SparklinesLine = __webpack_require__(18);\n\nvar _SparklinesLine2 = _interopRequireDefault(_SparklinesLine);\n\nvar _SparklinesCurve = __webpack_require__(19);\n\nvar _SparklinesCurve2 = _interopRequireDefault(_SparklinesCurve);\n\nvar _SparklinesBars = __webpack_require__(20);\n\nvar _SparklinesBars2 = _interopRequireDefault(_SparklinesBars);\n\nvar _SparklinesSpots = __webpack_require__(21);\n\nvar _SparklinesSpots2 = _interopRequireDefault(_SparklinesSpots);\n\nvar _SparklinesReferenceLine = __webpack_require__(22);\n\nvar _SparklinesReferenceLine2 = _interopRequireDefault(_SparklinesReferenceLine);\n\nvar _SparklinesNormalBand = __webpack_require__(27);\n\nvar _SparklinesNormalBand2 = _interopRequireDefault(_SparklinesNormalBand);\n\nvar _dataToPoints = __webpack_require__(28);\n\nvar _dataToPoints2 = _interopRequireDefault(_dataToPoints);\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\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Sparklines = function (_PureComponent) {\n _inherits(Sparklines, _PureComponent);\n\n function Sparklines(props) {\n _classCallCheck(this, Sparklines);\n\n return _possibleConstructorReturn(this, (Sparklines.__proto__ || Object.getPrototypeOf(Sparklines)).call(this, props));\n }\n\n _createClass(Sparklines, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n data = _props.data,\n limit = _props.limit,\n width = _props.width,\n height = _props.height,\n svgWidth = _props.svgWidth,\n svgHeight = _props.svgHeight,\n preserveAspectRatio = _props.preserveAspectRatio,\n margin = _props.margin,\n style = _props.style,\n max = _props.max,\n min = _props.min;\n\n\n if (data.length === 0) return null;\n\n var points = (0, _dataToPoints2.default)({ data: data, limit: limit, width: width, height: height, margin: margin, max: max, min: min });\n\n var svgOpts = { style: style, viewBox: '0 0 ' + width + ' ' + height, preserveAspectRatio: preserveAspectRatio };\n if (svgWidth > 0) svgOpts.width = svgWidth;\n if (svgHeight > 0) svgOpts.height = svgHeight;\n\n return _react2.default.createElement(\n 'svg',\n svgOpts,\n _react2.default.Children.map(this.props.children, function (child) {\n return _react2.default.cloneElement(child, { data: data, points: points, width: width, height: height, margin: margin });\n })\n );\n }\n }]);\n\n return Sparklines;\n}(_react.PureComponent);\n\nSparklines.propTypes = {\n data: _propTypes2.default.array,\n limit: _propTypes2.default.number,\n width: _propTypes2.default.number,\n height: _propTypes2.default.number,\n svgWidth: _propTypes2.default.number,\n svgHeight: _propTypes2.default.number,\n preserveAspectRatio: _propTypes2.default.string,\n margin: _propTypes2.default.number,\n style: _propTypes2.default.object,\n min: _propTypes2.default.number,\n max: _propTypes2.default.number,\n onMouseMove: _propTypes2.default.func\n};\nSparklines.defaultProps = {\n data: [],\n width: 240,\n height: 60,\n //Scale the graphic content of the given element non-uniformly if necessary such that the element's bounding box exactly matches the viewport rectangle.\n preserveAspectRatio: 'none', //https://www.w3.org/TR/SVG/coords.html#PreserveAspectRatioAttribute\n margin: 2\n};\nexports.Sparklines = Sparklines;\nexports.SparklinesLine = _SparklinesLine2.default;\nexports.SparklinesCurve = _SparklinesCurve2.default;\nexports.SparklinesBars = _SparklinesBars2.default;\nexports.SparklinesSpots = _SparklinesSpots2.default;\nexports.SparklinesReferenceLine = _SparklinesReferenceLine2.default;\nexports.SparklinesNormalBand = _SparklinesNormalBand2.default;\nexports.SparklinesText = _SparklinesText2.default;\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-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\nvar emptyFunction = __webpack_require__(4);\nvar invariant = __webpack_require__(5);\nvar warning = __webpack_require__(8);\n\nvar ReactPropTypesSecret = __webpack_require__(6);\nvar checkPropTypes = __webpack_require__(15);\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 };\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 (process.env.NODE_ENV !== 'production') {\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 (process.env.NODE_ENV !== 'production' && 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 process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOf, expected an instance of array.') : void 0;\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 process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\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 supplid 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 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/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(2)))\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-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\nif (process.env.NODE_ENV !== 'production') {\n var invariant = __webpack_require__(5);\n var warning = __webpack_require__(8);\n var ReactPropTypesSecret = __webpack_require__(6);\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 (process.env.NODE_ENV !== 'production') {\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 ' + 'React.PropTypes.', componentName || 'React class', location, 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/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(2)))\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-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\nvar emptyFunction = __webpack_require__(4);\nvar invariant = __webpack_require__(5);\nvar ReactPropTypesSecret = __webpack_require__(6);\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\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 };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim\n };\n\n ReactPropTypes.checkPropTypes = emptyFunction;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n\n\n/***/ }),\n/* 17 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\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 _propTypes = __webpack_require__(0);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _react = __webpack_require__(1);\n\nvar _react2 = _interopRequireDefault(_react);\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\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar SparklinesText = function (_React$Component) {\n _inherits(SparklinesText, _React$Component);\n\n function SparklinesText() {\n _classCallCheck(this, SparklinesText);\n\n return _possibleConstructorReturn(this, (SparklinesText.__proto__ || Object.getPrototypeOf(SparklinesText)).apply(this, arguments));\n }\n\n _createClass(SparklinesText, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n point = _props.point,\n text = _props.text,\n fontSize = _props.fontSize,\n fontFamily = _props.fontFamily;\n var x = point.x,\n y = point.y;\n\n return _react2.default.createElement(\n 'g',\n null,\n _react2.default.createElement(\n 'text',\n { x: x, y: y, fontFamily: fontFamily || \"Verdana\", fontSize: fontSize || 10 },\n text\n )\n );\n }\n }]);\n\n return SparklinesText;\n}(_react2.default.Component);\n\nSparklinesText.propTypes = {\n text: _propTypes2.default.string,\n point: _propTypes2.default.object,\n fontSize: _propTypes2.default.number,\n fontFamily: _propTypes2.default.string\n};\nSparklinesText.defaultProps = {\n text: '',\n point: { x: 0, y: 0 }\n};\nexports.default = SparklinesText;\n\n/***/ }),\n/* 18 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\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 _propTypes = __webpack_require__(0);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _react = __webpack_require__(1);\n\nvar _react2 = _interopRequireDefault(_react);\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\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar SparklinesLine = function (_React$Component) {\n _inherits(SparklinesLine, _React$Component);\n\n function SparklinesLine() {\n _classCallCheck(this, SparklinesLine);\n\n return _possibleConstructorReturn(this, (SparklinesLine.__proto__ || Object.getPrototypeOf(SparklinesLine)).apply(this, arguments));\n }\n\n _createClass(SparklinesLine, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n data = _props.data,\n points = _props.points,\n width = _props.width,\n height = _props.height,\n margin = _props.margin,\n color = _props.color,\n style = _props.style,\n onMouseMove = _props.onMouseMove;\n\n\n var linePoints = points.map(function (p) {\n return [p.x, p.y];\n }).reduce(function (a, b) {\n return a.concat(b);\n });\n\n var closePolyPoints = [points[points.length - 1].x, height - margin, margin, height - margin, margin, points[0].y];\n\n var fillPoints = linePoints.concat(closePolyPoints);\n\n var lineStyle = {\n stroke: color || style.stroke || 'slategray',\n strokeWidth: style.strokeWidth || '1',\n strokeLinejoin: style.strokeLinejoin || 'round',\n strokeLinecap: style.strokeLinecap || 'round',\n fill: 'none'\n };\n var fillStyle = {\n stroke: style.stroke || 'none',\n strokeWidth: '0',\n fillOpacity: style.fillOpacity || '.1',\n fill: style.fill || color || 'slategray',\n pointerEvents: 'auto'\n };\n\n var tooltips = points.map(function (p, i) {\n return _react2.default.createElement('circle', {\n key: i,\n cx: p.x,\n cy: p.y,\n r: 2,\n style: fillStyle,\n onMouseEnter: function onMouseEnter(e) {\n return onMouseMove('enter', data[i], p);\n },\n onClick: function onClick(e) {\n return onMouseMove('click', data[i], p);\n }\n });\n });\n\n return _react2.default.createElement(\n 'g',\n null,\n tooltips,\n _react2.default.createElement('polyline', { points: fillPoints.join(' '), style: fillStyle }),\n _react2.default.createElement('polyline', { points: linePoints.join(' '), style: lineStyle })\n );\n }\n }]);\n\n return SparklinesLine;\n}(_react2.default.Component);\n\nSparklinesLine.propTypes = {\n color: _propTypes2.default.string,\n style: _propTypes2.default.object\n};\nSparklinesLine.defaultProps = {\n style: {},\n onMouseMove: function onMouseMove() {}\n};\nexports.default = SparklinesLine;\n\n/***/ }),\n/* 19 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\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 _propTypes = __webpack_require__(0);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _react = __webpack_require__(1);\n\nvar _react2 = _interopRequireDefault(_react);\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\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar SparklinesCurve = function (_React$Component) {\n _inherits(SparklinesCurve, _React$Component);\n\n function SparklinesCurve() {\n _classCallCheck(this, SparklinesCurve);\n\n return _possibleConstructorReturn(this, (SparklinesCurve.__proto__ || Object.getPrototypeOf(SparklinesCurve)).apply(this, arguments));\n }\n\n _createClass(SparklinesCurve, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n points = _props.points,\n width = _props.width,\n height = _props.height,\n margin = _props.margin,\n color = _props.color,\n style = _props.style,\n _props$divisor = _props.divisor,\n divisor = _props$divisor === undefined ? 0.25 : _props$divisor;\n\n var prev = void 0;\n var curve = function curve(p) {\n var res = void 0;\n if (!prev) {\n res = [p.x, p.y];\n } else {\n var len = (p.x - prev.x) * divisor;\n res = [\"C\",\n //x1\n prev.x + len,\n //y1\n prev.y,\n //x2,\n p.x - len,\n //y2,\n p.y,\n //x,\n p.x,\n //y\n p.y];\n }\n prev = p;\n return res;\n };\n var linePoints = points.map(function (p) {\n return curve(p);\n }).reduce(function (a, b) {\n return a.concat(b);\n });\n var closePolyPoints = [\"L\" + points[points.length - 1].x, height - margin, margin, height - margin, margin, points[0].y];\n var fillPoints = linePoints.concat(closePolyPoints);\n\n var lineStyle = {\n stroke: color || style.stroke || 'slategray',\n strokeWidth: style.strokeWidth || '1',\n strokeLinejoin: style.strokeLinejoin || 'round',\n strokeLinecap: style.strokeLinecap || 'round',\n fill: 'none'\n };\n var fillStyle = {\n stroke: style.stroke || 'none',\n strokeWidth: '0',\n fillOpacity: style.fillOpacity || '.1',\n fill: style.fill || color || 'slategray'\n };\n\n return _react2.default.createElement(\n 'g',\n null,\n _react2.default.createElement('path', { d: \"M\" + fillPoints.join(' '), style: fillStyle }),\n _react2.default.createElement('path', { d: \"M\" + linePoints.join(' '), style: lineStyle })\n );\n }\n }]);\n\n return SparklinesCurve;\n}(_react2.default.Component);\n\nSparklinesCurve.propTypes = {\n color: _propTypes2.default.string,\n style: _propTypes2.default.object\n};\nSparklinesCurve.defaultProps = {\n style: {}\n};\nexports.default = SparklinesCurve;\n\n/***/ }),\n/* 20 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\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 _propTypes = __webpack_require__(0);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _react = __webpack_require__(1);\n\nvar _react2 = _interopRequireDefault(_react);\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\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar SparklinesBars = function (_React$Component) {\n _inherits(SparklinesBars, _React$Component);\n\n function SparklinesBars() {\n _classCallCheck(this, SparklinesBars);\n\n return _possibleConstructorReturn(this, (SparklinesBars.__proto__ || Object.getPrototypeOf(SparklinesBars)).apply(this, arguments));\n }\n\n _createClass(SparklinesBars, [{\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var _props = this.props,\n points = _props.points,\n height = _props.height,\n style = _props.style,\n barWidth = _props.barWidth,\n margin = _props.margin,\n onMouseMove = _props.onMouseMove;\n\n var strokeWidth = 1 * (style && style.strokeWidth || 0);\n var marginWidth = margin ? 2 * margin : 0;\n var width = barWidth || (points && points.length >= 2 ? Math.max(0, points[1].x - points[0].x - strokeWidth - marginWidth) : 0);\n\n return _react2.default.createElement(\n 'g',\n { transform: 'scale(1,-1)' },\n points.map(function (p, i) {\n return _react2.default.createElement('rect', {\n key: i,\n x: p.x - (width + strokeWidth) / 2,\n y: -height,\n width: width,\n height: Math.max(0, height - p.y),\n style: style,\n onMouseMove: onMouseMove && onMouseMove.bind(_this2, p)\n });\n })\n );\n }\n }]);\n\n return SparklinesBars;\n}(_react2.default.Component);\n\nSparklinesBars.propTypes = {\n points: _propTypes2.default.arrayOf(_propTypes2.default.object),\n height: _propTypes2.default.number,\n style: _propTypes2.default.object,\n barWidth: _propTypes2.default.number,\n margin: _propTypes2.default.number,\n onMouseMove: _propTypes2.default.func\n};\nSparklinesBars.defaultProps = {\n style: { fill: 'slategray' }\n};\nexports.default = SparklinesBars;\n\n/***/ }),\n/* 21 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\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 _propTypes = __webpack_require__(0);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _react = __webpack_require__(1);\n\nvar _react2 = _interopRequireDefault(_react);\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\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar SparklinesSpots = function (_React$Component) {\n _inherits(SparklinesSpots, _React$Component);\n\n function SparklinesSpots() {\n _classCallCheck(this, SparklinesSpots);\n\n return _possibleConstructorReturn(this, (SparklinesSpots.__proto__ || Object.getPrototypeOf(SparklinesSpots)).apply(this, arguments));\n }\n\n _createClass(SparklinesSpots, [{\n key: 'lastDirection',\n value: function lastDirection(points) {\n\n Math.sign = Math.sign || function (x) {\n return x > 0 ? 1 : -1;\n };\n\n return points.length < 2 ? 0 : Math.sign(points[points.length - 2].y - points[points.length - 1].y);\n }\n }, {\n key: 'render',\n value: function render() {\n var _props = this.props,\n points = _props.points,\n width = _props.width,\n height = _props.height,\n size = _props.size,\n style = _props.style,\n spotColors = _props.spotColors;\n\n\n var startSpot = _react2.default.createElement('circle', {\n cx: points[0].x,\n cy: points[0].y,\n r: size,\n style: style });\n\n var endSpot = _react2.default.createElement('circle', {\n cx: points[points.length - 1].x,\n cy: points[points.length - 1].y,\n r: size,\n style: style || { fill: spotColors[this.lastDirection(points)] } });\n\n return _react2.default.createElement(\n 'g',\n null,\n style && startSpot,\n endSpot\n );\n }\n }]);\n\n return SparklinesSpots;\n}(_react2.default.Component);\n\nSparklinesSpots.propTypes = {\n size: _propTypes2.default.number,\n style: _propTypes2.default.object,\n spotColors: _propTypes2.default.object\n};\nSparklinesSpots.defaultProps = {\n size: 2,\n spotColors: {\n '-1': 'red',\n '0': 'black',\n '1': 'green'\n }\n};\nexports.default = SparklinesSpots;\n\n/***/ }),\n/* 22 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\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 _propTypes = __webpack_require__(0);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _react = __webpack_require__(1);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _dataProcessing = __webpack_require__(23);\n\nvar dataProcessing = _interopRequireWildcard(_dataProcessing);\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\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\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar SparklinesReferenceLine = function (_React$Component) {\n _inherits(SparklinesReferenceLine, _React$Component);\n\n function SparklinesReferenceLine() {\n _classCallCheck(this, SparklinesReferenceLine);\n\n return _possibleConstructorReturn(this, (SparklinesReferenceLine.__proto__ || Object.getPrototypeOf(SparklinesReferenceLine)).apply(this, arguments));\n }\n\n _createClass(SparklinesReferenceLine, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n points = _props.points,\n margin = _props.margin,\n type = _props.type,\n style = _props.style,\n value = _props.value;\n\n\n var ypoints = points.map(function (p) {\n return p.y;\n });\n var y = type == 'custom' ? value : dataProcessing[type](ypoints);\n\n return _react2.default.createElement('line', {\n x1: points[0].x, y1: y + margin,\n x2: points[points.length - 1].x, y2: y + margin,\n style: style });\n }\n }]);\n\n return SparklinesReferenceLine;\n}(_react2.default.Component);\n\nSparklinesReferenceLine.propTypes = {\n type: _propTypes2.default.oneOf(['max', 'min', 'mean', 'avg', 'median', 'custom']),\n value: _propTypes2.default.number,\n style: _propTypes2.default.object\n};\nSparklinesReferenceLine.defaultProps = {\n type: 'mean',\n style: { stroke: 'red', strokeOpacity: .75, strokeDasharray: '2, 2' }\n};\nexports.default = SparklinesReferenceLine;\n\n/***/ }),\n/* 23 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.variance = exports.stdev = exports.median = exports.midRange = exports.avg = exports.mean = exports.max = exports.min = undefined;\n\nvar _min2 = __webpack_require__(7);\n\nvar _min3 = _interopRequireDefault(_min2);\n\nvar _mean2 = __webpack_require__(3);\n\nvar _mean3 = _interopRequireDefault(_mean2);\n\nvar _midRange2 = __webpack_require__(24);\n\nvar _midRange3 = _interopRequireDefault(_midRange2);\n\nvar _median2 = __webpack_require__(25);\n\nvar _median3 = _interopRequireDefault(_median2);\n\nvar _stdev2 = __webpack_require__(10);\n\nvar _stdev3 = _interopRequireDefault(_stdev2);\n\nvar _variance2 = __webpack_require__(26);\n\nvar _variance3 = _interopRequireDefault(_variance2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.min = _min3.default;\nexports.max = _min3.default;\nexports.mean = _mean3.default;\nexports.avg = _mean3.default;\nexports.midRange = _midRange3.default;\nexports.median = _median3.default;\nexports.stdev = _stdev3.default;\nexports.variance = _variance3.default;\n\n/***/ }),\n/* 24 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _min = __webpack_require__(7);\n\nvar _min2 = _interopRequireDefault(_min);\n\nvar _max = __webpack_require__(9);\n\nvar _max2 = _interopRequireDefault(_max);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (data) {\n return (0, _max2.default)(data) - (0, _min2.default)(data) / 2;\n};\n\n/***/ }),\n/* 25 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nexports.default = function (data) {\n return data.sort(function (a, b) {\n return a - b;\n })[Math.floor(data.length / 2)];\n};\n\n/***/ }),\n/* 26 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _mean = __webpack_require__(3);\n\nvar _mean2 = _interopRequireDefault(_mean);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (data) {\n var dataMean = (0, _mean2.default)(data);\n var sq = data.map(function (n) {\n return Math.pow(n - dataMean, 2);\n });\n return (0, _mean2.default)(sq);\n};\n\n/***/ }),\n/* 27 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\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 _propTypes = __webpack_require__(0);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _react = __webpack_require__(1);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _mean = __webpack_require__(3);\n\nvar _mean2 = _interopRequireDefault(_mean);\n\nvar _stdev = __webpack_require__(10);\n\nvar _stdev2 = _interopRequireDefault(_stdev);\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\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar SparklinesNormalBand = function (_React$Component) {\n _inherits(SparklinesNormalBand, _React$Component);\n\n function SparklinesNormalBand() {\n _classCallCheck(this, SparklinesNormalBand);\n\n return _possibleConstructorReturn(this, (SparklinesNormalBand.__proto__ || Object.getPrototypeOf(SparklinesNormalBand)).apply(this, arguments));\n }\n\n _createClass(SparklinesNormalBand, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n points = _props.points,\n margin = _props.margin,\n style = _props.style;\n\n\n var ypoints = points.map(function (p) {\n return p.y;\n });\n var dataMean = (0, _mean2.default)(ypoints);\n var dataStdev = (0, _stdev2.default)(ypoints);\n\n return _react2.default.createElement('rect', { x: points[0].x, y: dataMean - dataStdev + margin,\n width: points[points.length - 1].x - points[0].x, height: _stdev2.default * 2,\n style: style });\n }\n }]);\n\n return SparklinesNormalBand;\n}(_react2.default.Component);\n\nSparklinesNormalBand.propTypes = {\n style: _propTypes2.default.object\n};\nSparklinesNormalBand.defaultProps = {\n style: { fill: 'red', fillOpacity: .1 }\n};\nexports.default = SparklinesNormalBand;\n\n/***/ }),\n/* 28 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _min = __webpack_require__(7);\n\nvar _min2 = _interopRequireDefault(_min);\n\nvar _max = __webpack_require__(9);\n\nvar _max2 = _interopRequireDefault(_max);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (_ref) {\n var data = _ref.data,\n limit = _ref.limit,\n _ref$width = _ref.width,\n width = _ref$width === undefined ? 1 : _ref$width,\n _ref$height = _ref.height,\n height = _ref$height === undefined ? 1 : _ref$height,\n _ref$margin = _ref.margin,\n margin = _ref$margin === undefined ? 0 : _ref$margin,\n _ref$max = _ref.max,\n max = _ref$max === undefined ? (0, _max2.default)(data) : _ref$max,\n _ref$min = _ref.min,\n min = _ref$min === undefined ? (0, _min2.default)(data) : _ref$min;\n\n\n var len = data.length;\n\n if (limit && limit < len) {\n data = data.slice(len - limit);\n }\n\n var vfactor = (height - margin * 2) / (max - min || 2);\n var hfactor = (width - margin * 2) / ((limit || len) - (len > 1 ? 1 : 0));\n\n return data.map(function (d, i) {\n return {\n x: i * hfactor + margin,\n y: (max === min ? 1 : max - d) * vfactor + margin\n };\n });\n};\n\n/***/ })\n/******/ ]);\n});","module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n","import * as SparklinesComponents from 'react-sparklines';\r\nimport { reactWidget } from 'reactR';\r\n\r\nreactWidget('sparklineswidget', 'output', SparklinesComponents);","module.exports = window.React;","module.exports = window.reactR;"],"sourceRoot":""} \ No newline at end of file diff --git a/examples/sparklineswidget/inst/htmlwidgets/sparklineswidget.yaml b/examples/sparklineswidget/inst/htmlwidgets/sparklineswidget.yaml deleted file mode 100644 index a724f4a..0000000 --- a/examples/sparklineswidget/inst/htmlwidgets/sparklineswidget.yaml +++ /dev/null @@ -1,7 +0,0 @@ -# (uncomment to add a dependency) -# dependencies: -# - name: -# version: -# src: -# script: -# stylesheet: diff --git a/examples/sparklineswidget/man/sparklineswidget-shiny.Rd b/examples/sparklineswidget/man/sparklineswidget-shiny.Rd deleted file mode 100644 index e48a073..0000000 --- a/examples/sparklineswidget/man/sparklineswidget-shiny.Rd +++ /dev/null @@ -1,30 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/sparklineswidget.R -\name{sparklineswidget-shiny} -\alias{sparklineswidget-shiny} -\alias{sparklineswidgetOutput} -\alias{renderSparklineswidget} -\title{Shiny bindings for sparklineswidget} -\usage{ -sparklineswidgetOutput(outputId, width = "100\%", height = "400px") - -renderSparklineswidget(expr, env = parent.frame(), quoted = FALSE) -} -\arguments{ -\item{outputId}{output variable to read from} - -\item{width, height}{Must be a valid CSS unit (like \code{'100\%'}, -\code{'400px'}, \code{'auto'}) or a number, which will be coerced to a -string and have \code{'px'} appended.} - -\item{expr}{An expression that generates a sparklineswidget} - -\item{env}{The environment in which to evaluate \code{expr}.} - -\item{quoted}{Is \code{expr} a quoted expression (with \code{quote()})? This -is useful if you want to save an expression in a variable.} -} -\description{ -Output and render functions for using sparklineswidget within Shiny -applications and interactive Rmd documents. -} diff --git a/examples/sparklineswidget/man/sparklineswidget.Rd b/examples/sparklineswidget/man/sparklineswidget.Rd deleted file mode 100644 index 158253e..0000000 --- a/examples/sparklineswidget/man/sparklineswidget.Rd +++ /dev/null @@ -1,11 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/sparklineswidget.R -\name{sparklineswidget} -\alias{sparklineswidget} -\title{} -\usage{ -sparklineswidget(data, ...) -} -\description{ - -} diff --git a/examples/sparklineswidget/package.json b/examples/sparklineswidget/package.json deleted file mode 100644 index 8d6d2b4..0000000 --- a/examples/sparklineswidget/package.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "name": "react-sparklines", - "version": "1.0.0", - "license": "MIT", - "dependencies": { - "react-sparklines": "^1.7.0" - }, - "devDependencies": { - "webpack": "^4.27.1", - "webpack-cli": "^3.1.2", - "@babel/core": "^7.2.0", - "babel-loader": "^8.0.4", - "@babel/preset-env": "^7.2.0", - "@babel/preset-react": "^7.0.0" - } -} \ No newline at end of file diff --git a/examples/sparklineswidget/sparklineswidget.Rproj b/examples/sparklineswidget/sparklineswidget.Rproj deleted file mode 100644 index cba1b6b..0000000 --- a/examples/sparklineswidget/sparklineswidget.Rproj +++ /dev/null @@ -1,21 +0,0 @@ -Version: 1.0 - -RestoreWorkspace: No -SaveWorkspace: No -AlwaysSaveHistory: Default - -EnableCodeIndexing: Yes -UseSpacesForTab: Yes -NumSpacesForTab: 2 -Encoding: UTF-8 - -RnwWeave: Sweave -LaTeX: pdfLaTeX - -AutoAppendNewline: Yes -StripTrailingWhitespace: Yes - -BuildType: Package -PackageUseDevtools: Yes -PackageInstallArgs: --no-multiarch --with-keep.source -PackageRoxygenize: rd,collate,namespace diff --git a/examples/sparklineswidget/srcjs/sparklineswidget.js b/examples/sparklineswidget/srcjs/sparklineswidget.js deleted file mode 100644 index acaa2f2..0000000 --- a/examples/sparklineswidget/srcjs/sparklineswidget.js +++ /dev/null @@ -1,4 +0,0 @@ -import * as SparklinesComponents from 'react-sparklines'; -import { reactWidget } from 'reactR'; - -reactWidget('sparklineswidget', 'output', SparklinesComponents); \ No newline at end of file diff --git a/examples/sparklineswidget/webpack.config.js b/examples/sparklineswidget/webpack.config.js deleted file mode 100644 index 97866b0..0000000 --- a/examples/sparklineswidget/webpack.config.js +++ /dev/null @@ -1,31 +0,0 @@ -var path = require('path'); - -module.exports = { - entry: path.join(__dirname, 'srcjs', 'sparklineswidget.js'), - output: { - path: path.join(__dirname, 'inst', 'htmlwidgets'), - filename: 'sparklineswidget.js' - }, - module: { - rules: [ - { - test: /\.js$/, - loader: 'babel-loader', - options: { - presets: ['@babel/preset-env', '@babel/preset-react'] - } - } - ] - }, - // React, ReactDOM, and reactR are added to the page as html_dependencies by - // the R function sparklineswidget:::sparklineswidget_html - externals: { - 'react': 'window.React', - 'react-dom': 'window.ReactDOM', - 'reactR': 'window.reactR' - }, - stats: { - colors: true - }, - devtool: 'source-map' -}; \ No newline at end of file diff --git a/examples/sparklineswidget/yarn.lock b/examples/sparklineswidget/yarn.lock deleted file mode 100644 index d9c2a84..0000000 --- a/examples/sparklineswidget/yarn.lock +++ /dev/null @@ -1,3793 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@babel/code-frame@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0.tgz#06e2ab19bdb535385559aabb5ba59729482800f8" - integrity sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA== - dependencies: - "@babel/highlight" "^7.0.0" - -"@babel/core@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.2.0.tgz#a4dd3814901998e93340f0086e9867fefa163ada" - integrity sha512-7pvAdC4B+iKjFFp9Ztj0QgBndJ++qaMeonT185wAqUnhipw8idm9Rv1UMyBuKtYjfl6ORNkgEgcsYLfHX/GpLw== - dependencies: - "@babel/code-frame" "^7.0.0" - "@babel/generator" "^7.2.0" - "@babel/helpers" "^7.2.0" - "@babel/parser" "^7.2.0" - "@babel/template" "^7.1.2" - "@babel/traverse" "^7.1.6" - "@babel/types" "^7.2.0" - convert-source-map "^1.1.0" - debug "^4.1.0" - json5 "^2.1.0" - lodash "^4.17.10" - resolve "^1.3.2" - semver "^5.4.1" - source-map "^0.5.0" - -"@babel/generator@^7.1.6", "@babel/generator@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.2.0.tgz#eaf3821fa0301d9d4aef88e63d4bcc19b73ba16c" - integrity sha512-BA75MVfRlFQG2EZgFYIwyT1r6xSkwfP2bdkY/kLZusEYWiJs4xCowab/alaEaT0wSvmVuXGqiefeBlP+7V1yKg== - dependencies: - "@babel/types" "^7.2.0" - jsesc "^2.5.1" - lodash "^4.17.10" - source-map "^0.5.0" - trim-right "^1.0.1" - -"@babel/helper-annotate-as-pure@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.0.0.tgz#323d39dd0b50e10c7c06ca7d7638e6864d8c5c32" - integrity sha512-3UYcJUj9kvSLbLbUIfQTqzcy5VX7GRZ/CCDrnOaZorFFM01aXp1+GJwuFGV4NDDoAS+mOUyHcO6UD/RfqOks3Q== - dependencies: - "@babel/types" "^7.0.0" - -"@babel/helper-builder-binary-assignment-operator-visitor@^7.1.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.1.0.tgz#6b69628dfe4087798e0c4ed98e3d4a6b2fbd2f5f" - integrity sha512-qNSR4jrmJ8M1VMM9tibvyRAHXQs2PmaksQF7c1CGJNipfe3D8p+wgNwgso/P2A2r2mdgBWAXljNWR0QRZAMW8w== - dependencies: - "@babel/helper-explode-assignable-expression" "^7.1.0" - "@babel/types" "^7.0.0" - -"@babel/helper-builder-react-jsx@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.0.0.tgz#fa154cb53eb918cf2a9a7ce928e29eb649c5acdb" - integrity sha512-ebJ2JM6NAKW0fQEqN8hOLxK84RbRz9OkUhGS/Xd5u56ejMfVbayJ4+LykERZCOUM6faa6Fp3SZNX3fcT16MKHw== - dependencies: - "@babel/types" "^7.0.0" - esutils "^2.0.0" - -"@babel/helper-call-delegate@^7.1.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@babel/helper-call-delegate/-/helper-call-delegate-7.1.0.tgz#6a957f105f37755e8645343d3038a22e1449cc4a" - integrity sha512-YEtYZrw3GUK6emQHKthltKNZwszBcHK58Ygcis+gVUrF4/FmTVr5CCqQNSfmvg2y+YDEANyYoaLz/SHsnusCwQ== - dependencies: - "@babel/helper-hoist-variables" "^7.0.0" - "@babel/traverse" "^7.1.0" - "@babel/types" "^7.0.0" - -"@babel/helper-define-map@^7.1.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.1.0.tgz#3b74caec329b3c80c116290887c0dd9ae468c20c" - integrity sha512-yPPcW8dc3gZLN+U1mhYV91QU3n5uTbx7DUdf8NnPbjS0RMwBuHi9Xt2MUgppmNz7CJxTBWsGczTiEp1CSOTPRg== - dependencies: - "@babel/helper-function-name" "^7.1.0" - "@babel/types" "^7.0.0" - lodash "^4.17.10" - -"@babel/helper-explode-assignable-expression@^7.1.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.1.0.tgz#537fa13f6f1674df745b0c00ec8fe4e99681c8f6" - integrity sha512-NRQpfHrJ1msCHtKjbzs9YcMmJZOg6mQMmGRB+hbamEdG5PNpaSm95275VD92DvJKuyl0s2sFiDmMZ+EnnvufqA== - dependencies: - "@babel/traverse" "^7.1.0" - "@babel/types" "^7.0.0" - -"@babel/helper-function-name@^7.1.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz#a0ceb01685f73355d4360c1247f582bfafc8ff53" - integrity sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw== - dependencies: - "@babel/helper-get-function-arity" "^7.0.0" - "@babel/template" "^7.1.0" - "@babel/types" "^7.0.0" - -"@babel/helper-get-function-arity@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz#83572d4320e2a4657263734113c42868b64e49c3" - integrity sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ== - dependencies: - "@babel/types" "^7.0.0" - -"@babel/helper-hoist-variables@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.0.0.tgz#46adc4c5e758645ae7a45deb92bab0918c23bb88" - integrity sha512-Ggv5sldXUeSKsuzLkddtyhyHe2YantsxWKNi7A+7LeD12ExRDWTRk29JCXpaHPAbMaIPZSil7n+lq78WY2VY7w== - dependencies: - "@babel/types" "^7.0.0" - -"@babel/helper-member-expression-to-functions@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.0.0.tgz#8cd14b0a0df7ff00f009e7d7a436945f47c7a16f" - integrity sha512-avo+lm/QmZlv27Zsi0xEor2fKcqWG56D5ae9dzklpIaY7cQMK5N8VSpaNVPPagiqmy7LrEjK1IWdGMOqPu5csg== - dependencies: - "@babel/types" "^7.0.0" - -"@babel/helper-module-imports@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.0.0.tgz#96081b7111e486da4d2cd971ad1a4fe216cc2e3d" - integrity sha512-aP/hlLq01DWNEiDg4Jn23i+CXxW/owM4WpDLFUbpjxe4NS3BhLVZQ5i7E0ZrxuQ/vwekIeciyamgB1UIYxxM6A== - dependencies: - "@babel/types" "^7.0.0" - -"@babel/helper-module-transforms@^7.1.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.1.0.tgz#470d4f9676d9fad50b324cdcce5fbabbc3da5787" - integrity sha512-0JZRd2yhawo79Rcm4w0LwSMILFmFXjugG3yqf+P/UsKsRS1mJCmMwwlHDlMg7Avr9LrvSpp4ZSULO9r8jpCzcw== - dependencies: - "@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.1.0" - "@babel/types" "^7.0.0" - lodash "^4.17.10" - -"@babel/helper-optimise-call-expression@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.0.0.tgz#a2920c5702b073c15de51106200aa8cad20497d5" - integrity sha512-u8nd9NQePYNQV8iPWu/pLLYBqZBa4ZaY1YWRFMuxrid94wKI1QNt67NEZ7GAe5Kc/0LLScbim05xZFWkAdrj9g== - dependencies: - "@babel/types" "^7.0.0" - -"@babel/helper-plugin-utils@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz#bbb3fbee98661c569034237cc03967ba99b4f250" - integrity sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA== - -"@babel/helper-regex@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.0.0.tgz#2c1718923b57f9bbe64705ffe5640ac64d9bdb27" - integrity sha512-TR0/N0NDCcUIUEbqV6dCO+LptmmSQFQ7q70lfcEB4URsjD0E1HzicrwUH+ap6BAQ2jhCX9Q4UqZy4wilujWlkg== - dependencies: - lodash "^4.17.10" - -"@babel/helper-remap-async-to-generator@^7.1.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.1.0.tgz#361d80821b6f38da75bd3f0785ece20a88c5fe7f" - integrity sha512-3fOK0L+Fdlg8S5al8u/hWE6vhufGSn0bN09xm2LXMy//REAF8kDCrYoOBKYmA8m5Nom+sV9LyLCwrFynA8/slg== - dependencies: - "@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-replace-supers@^7.1.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.1.0.tgz#5fc31de522ec0ef0899dc9b3e7cf6a5dd655f362" - integrity sha512-BvcDWYZRWVuDeXTYZWxekQNO5D4kO55aArwZOTFXw6rlLQA8ZaDicJR1sO47h+HrnCiDFiww0fSPV0d713KBGQ== - dependencies: - "@babel/helper-member-expression-to-functions" "^7.0.0" - "@babel/helper-optimise-call-expression" "^7.0.0" - "@babel/traverse" "^7.1.0" - "@babel/types" "^7.0.0" - -"@babel/helper-simple-access@^7.1.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.1.0.tgz#65eeb954c8c245beaa4e859da6188f39d71e585c" - integrity sha512-Vk+78hNjRbsiu49zAPALxTb+JUQCz1aolpd8osOF16BGnLtseD21nbHgLPGUwrXEurZgiCOUmvs3ExTu4F5x6w== - dependencies: - "@babel/template" "^7.1.0" - "@babel/types" "^7.0.0" - -"@babel/helper-split-export-declaration@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0.tgz#3aae285c0311c2ab095d997b8c9a94cad547d813" - integrity sha512-MXkOJqva62dfC0w85mEf/LucPPS/1+04nmmRMPEBUB++hiiThQ2zPtX/mEWQ3mtzCEjIJvPY8nuwxXtQeQwUag== - dependencies: - "@babel/types" "^7.0.0" - -"@babel/helper-wrap-function@^7.1.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.2.0.tgz#c4e0012445769e2815b55296ead43a958549f6fa" - integrity sha512-o9fP1BZLLSrYlxYEYyl2aS+Flun5gtjTIG8iln+XuEzQTs0PLagAGSXUcqruJwD5fM48jzIEggCKpIfWTcR7pQ== - dependencies: - "@babel/helper-function-name" "^7.1.0" - "@babel/template" "^7.1.0" - "@babel/traverse" "^7.1.0" - "@babel/types" "^7.2.0" - -"@babel/helpers@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.2.0.tgz#8335f3140f3144270dc63c4732a4f8b0a50b7a21" - integrity sha512-Fr07N+ea0dMcMN8nFpuK6dUIT7/ivt9yKQdEEnjVS83tG2pHwPi03gYmk/tyuwONnZ+sY+GFFPlWGgCtW1hF9A== - dependencies: - "@babel/template" "^7.1.2" - "@babel/traverse" "^7.1.5" - "@babel/types" "^7.2.0" - -"@babel/highlight@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.0.0.tgz#f710c38c8d458e6dd9a201afb637fcb781ce99e4" - integrity sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw== - dependencies: - chalk "^2.0.0" - esutils "^2.0.2" - js-tokens "^4.0.0" - -"@babel/parser@^7.1.2", "@babel/parser@^7.1.6", "@babel/parser@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.2.0.tgz#02d01dbc330b6cbf36b76ac93c50752c69027065" - integrity sha512-M74+GvK4hn1eejD9lZ7967qAwvqTZayQa3g10ag4s9uewgR7TKjeaT0YMyoq+gVfKYABiWZ4MQD701/t5e1Jhg== - -"@babel/plugin-proposal-async-generator-functions@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.2.0.tgz#b289b306669dce4ad20b0252889a15768c9d417e" - integrity sha512-+Dfo/SCQqrwx48ptLVGLdE39YtWRuKc/Y9I5Fy0P1DDBB9lsAHpjcEJQt+4IifuSOSTLBKJObJqMvaO1pIE8LQ== - dependencies: - "@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-json-strings@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.2.0.tgz#568ecc446c6148ae6b267f02551130891e29f317" - integrity sha512-MAFV1CA/YVmYwZG0fBQyXhmj0BHCB5egZHCKWIFVv/XCxAeVGIHfos3SwDck4LvCllENIAg7xMKOG5kH0dzyUg== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-json-strings" "^7.2.0" - -"@babel/plugin-proposal-object-rest-spread@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.2.0.tgz#88f5fec3e7ad019014c97f7ee3c992f0adbf7fb8" - integrity sha512-1L5mWLSvR76XYUQJXkd/EEQgjq8HHRP6lQuZTTg0VA4tTGPpGemmCdAfQIz1rzEuWAm+ecP8PyyEm30jC1eQCg== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-object-rest-spread" "^7.2.0" - -"@babel/plugin-proposal-optional-catch-binding@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.2.0.tgz#135d81edb68a081e55e56ec48541ece8065c38f5" - integrity sha512-mgYj3jCcxug6KUcX4OBoOJz3CMrwRfQELPQ5560F70YQUBZB7uac9fqaWamKR1iWUzGiK2t0ygzjTScZnVz75g== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-optional-catch-binding" "^7.2.0" - -"@babel/plugin-proposal-unicode-property-regex@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.2.0.tgz#abe7281fe46c95ddc143a65e5358647792039520" - integrity sha512-LvRVYb7kikuOtIoUeWTkOxQEV1kYvL5B6U3iWEGCzPNRus1MzJweFqORTj+0jkxozkTSYNJozPOddxmqdqsRpw== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-regex" "^7.0.0" - regexpu-core "^4.2.0" - -"@babel/plugin-syntax-async-generators@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.2.0.tgz#69e1f0db34c6f5a0cf7e2b3323bf159a76c8cb7f" - integrity sha512-1ZrIRBv2t0GSlcwVoQ6VgSLpLgiN/FVQUzt9znxo7v2Ov4jJrs8RY8tv0wvDmFN3qIdMKWrmMMW6yZ0G19MfGg== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-syntax-json-strings@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.2.0.tgz#72bd13f6ffe1d25938129d2a186b11fd62951470" - integrity sha512-5UGYnMSLRE1dqqZwug+1LISpA403HzlSfsg6P9VXU6TBjcSHeNlw4DxDx7LgpF+iKZoOG/+uzqoRHTdcUpiZNg== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-syntax-jsx@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.2.0.tgz#0b85a3b4bc7cdf4cc4b8bf236335b907ca22e7c7" - integrity sha512-VyN4QANJkRW6lDBmENzRszvZf3/4AXaj9YR7GwrWeeN9tEBPuXbmDYVU9bYBN0D70zCWVwUy0HWq2553VCb6Hw== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-syntax-object-rest-spread@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.2.0.tgz#3b7a3e733510c57e820b9142a6579ac8b0dfad2e" - integrity sha512-t0JKGgqk2We+9may3t0xDdmneaXmyxq0xieYcKHxIsrJO64n1OiMWNUtc5gQK1PA0NpdCRrtZp4z+IUaKugrSA== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-syntax-optional-catch-binding@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.2.0.tgz#a94013d6eda8908dfe6a477e7f9eda85656ecf5c" - integrity sha512-bDe4xKNhb0LI7IvZHiA13kff0KEfaGX/Hv4lMA9+7TEc63hMNvfKo6ZFpXhKuEp+II/q35Gc4NoMeDZyaUbj9w== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-arrow-functions@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.2.0.tgz#9aeafbe4d6ffc6563bf8f8372091628f00779550" - integrity sha512-ER77Cax1+8/8jCB9fo4Ud161OZzWN5qawi4GusDuRLcDbDG+bIGYY20zb2dfAFdTRGzrfq2xZPvF0R64EHnimg== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-async-to-generator@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.2.0.tgz#68b8a438663e88519e65b776f8938f3445b1a2ff" - integrity sha512-CEHzg4g5UraReozI9D4fblBYABs7IM6UerAVG7EJVrTLC5keh00aEuLUT+O40+mJCEzaXkYfTCUKIyeDfMOFFQ== - dependencies: - "@babel/helper-module-imports" "^7.0.0" - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-remap-async-to-generator" "^7.1.0" - -"@babel/plugin-transform-block-scoped-functions@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.2.0.tgz#5d3cc11e8d5ddd752aa64c9148d0db6cb79fd190" - integrity sha512-ntQPR6q1/NKuphly49+QiQiTN0O63uOwjdD6dhIjSWBI5xlrbUFh720TIpzBhpnrLfv2tNH/BXvLIab1+BAI0w== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-block-scoping@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.2.0.tgz#f17c49d91eedbcdf5dd50597d16f5f2f770132d4" - integrity sha512-vDTgf19ZEV6mx35yiPJe4fS02mPQUUcBNwWQSZFXSzTSbsJFQvHt7DqyS3LK8oOWALFOsJ+8bbqBgkirZteD5Q== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - lodash "^4.17.10" - -"@babel/plugin-transform-classes@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.2.0.tgz#374f8876075d7d21fea55aeb5c53561259163f96" - integrity sha512-aPCEkrhJYebDXcGTAP+cdUENkH7zqOlgbKwLbghjjHpJRJBWM/FSlCjMoPGA8oUdiMfOrk3+8EFPLLb5r7zj2w== - dependencies: - "@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.1.0" - "@babel/helper-split-export-declaration" "^7.0.0" - globals "^11.1.0" - -"@babel/plugin-transform-computed-properties@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.2.0.tgz#83a7df6a658865b1c8f641d510c6f3af220216da" - integrity sha512-kP/drqTxY6Xt3NNpKiMomfgkNn4o7+vKxK2DDKcBG9sHj51vHqMBGy8wbDS/J4lMxnqs153/T3+DmCEAkC5cpA== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-destructuring@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.2.0.tgz#e75269b4b7889ec3a332cd0d0c8cff8fed0dc6f3" - integrity sha512-coVO2Ayv7g0qdDbrNiadE4bU7lvCd9H539m2gMknyVjjMdwF/iCOM7R+E8PkntoqLkltO0rk+3axhpp/0v68VQ== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-dotall-regex@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.2.0.tgz#f0aabb93d120a8ac61e925ea0ba440812dbe0e49" - integrity sha512-sKxnyHfizweTgKZf7XsXu/CNupKhzijptfTM+bozonIuyVrLWVUvYjE2bhuSBML8VQeMxq4Mm63Q9qvcvUcciQ== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-regex" "^7.0.0" - regexpu-core "^4.1.3" - -"@babel/plugin-transform-duplicate-keys@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.2.0.tgz#d952c4930f312a4dbfff18f0b2914e60c35530b3" - integrity sha512-q+yuxW4DsTjNceUiTzK0L+AfQ0zD9rWaTLiUqHA8p0gxx7lu1EylenfzjeIWNkPy6e/0VG/Wjw9uf9LueQwLOw== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-exponentiation-operator@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.2.0.tgz#a63868289e5b4007f7054d46491af51435766008" - integrity sha512-umh4hR6N7mu4Elq9GG8TOu9M0bakvlsREEC+ialrQN6ABS4oDQ69qJv1VtR3uxlKMCQMCvzk7vr17RHKcjx68A== - dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor" "^7.1.0" - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-for-of@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.2.0.tgz#ab7468befa80f764bb03d3cb5eef8cc998e1cad9" - integrity sha512-Kz7Mt0SsV2tQk6jG5bBv5phVbkd0gd27SgYD4hH1aLMJRchM0dzHaXvrWhVZ+WxAlDoAKZ7Uy3jVTW2mKXQ1WQ== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-function-name@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.2.0.tgz#f7930362829ff99a3174c39f0afcc024ef59731a" - integrity sha512-kWgksow9lHdvBC2Z4mxTsvc7YdY7w/V6B2vy9cTIPtLEE9NhwoWivaxdNM/S37elu5bqlLP/qOY906LukO9lkQ== - dependencies: - "@babel/helper-function-name" "^7.1.0" - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-literals@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.2.0.tgz#690353e81f9267dad4fd8cfd77eafa86aba53ea1" - integrity sha512-2ThDhm4lI4oV7fVQ6pNNK+sx+c/GM5/SaML0w/r4ZB7sAneD/piDJtwdKlNckXeyGK7wlwg2E2w33C/Hh+VFCg== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-modules-amd@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.2.0.tgz#82a9bce45b95441f617a24011dc89d12da7f4ee6" - integrity sha512-mK2A8ucqz1qhrdqjS9VMIDfIvvT2thrEsIQzbaTdc5QFzhDjQv2CkJJ5f6BXIkgbmaoax3zBr2RyvV/8zeoUZw== - dependencies: - "@babel/helper-module-transforms" "^7.1.0" - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-modules-commonjs@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.2.0.tgz#c4f1933f5991d5145e9cfad1dfd848ea1727f404" - integrity sha512-V6y0uaUQrQPXUrmj+hgnks8va2L0zcZymeU7TtWEgdRLNkceafKXEduv7QzgQAE4lT+suwooG9dC7LFhdRAbVQ== - dependencies: - "@babel/helper-module-transforms" "^7.1.0" - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-simple-access" "^7.1.0" - -"@babel/plugin-transform-modules-systemjs@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.2.0.tgz#912bfe9e5ff982924c81d0937c92d24994bb9068" - integrity sha512-aYJwpAhoK9a+1+O625WIjvMY11wkB/ok0WClVwmeo3mCjcNRjt+/8gHWrB5i+00mUju0gWsBkQnPpdvQ7PImmQ== - dependencies: - "@babel/helper-hoist-variables" "^7.0.0" - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-modules-umd@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.2.0.tgz#7678ce75169f0877b8eb2235538c074268dd01ae" - integrity sha512-BV3bw6MyUH1iIsGhXlOK6sXhmSarZjtJ/vMiD9dNmpY8QXFFQTj+6v92pcfy1iqa8DeAfJFwoxcrS/TUZda6sw== - dependencies: - "@babel/helper-module-transforms" "^7.1.0" - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-new-target@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.0.0.tgz#ae8fbd89517fa7892d20e6564e641e8770c3aa4a" - integrity sha512-yin069FYjah+LbqfGeTfzIBODex/e++Yfa0rH0fpfam9uTbuEeEOx5GLGr210ggOV77mVRNoeqSYqeuaqSzVSw== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-object-super@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.2.0.tgz#b35d4c10f56bab5d650047dad0f1d8e8814b6598" - integrity sha512-VMyhPYZISFZAqAPVkiYb7dUe2AsVi2/wCT5+wZdsNO31FojQJa9ns40hzZ6U9f50Jlq4w6qwzdBB2uwqZ00ebg== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-replace-supers" "^7.1.0" - -"@babel/plugin-transform-parameters@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.2.0.tgz#0d5ad15dc805e2ea866df4dd6682bfe76d1408c2" - integrity sha512-kB9+hhUidIgUoBQ0MsxMewhzr8i60nMa2KgeJKQWYrqQpqcBYtnpR+JgkadZVZoaEZ/eKu9mclFaVwhRpLNSzA== - dependencies: - "@babel/helper-call-delegate" "^7.1.0" - "@babel/helper-get-function-arity" "^7.0.0" - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-react-display-name@^7.0.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.2.0.tgz#ebfaed87834ce8dc4279609a4f0c324c156e3eb0" - integrity sha512-Htf/tPa5haZvRMiNSQSFifK12gtr/8vwfr+A9y69uF0QcU77AVu4K7MiHEkTxF7lQoHOL0F9ErqgfNEAKgXj7A== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-react-jsx-self@^7.0.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.2.0.tgz#461e21ad9478f1031dd5e276108d027f1b5240ba" - integrity sha512-v6S5L/myicZEy+jr6ielB0OR8h+EH/1QFx/YJ7c7Ua+7lqsjj/vW6fD5FR9hB/6y7mGbfT4vAURn3xqBxsUcdg== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-jsx" "^7.2.0" - -"@babel/plugin-transform-react-jsx-source@^7.0.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.2.0.tgz#20c8c60f0140f5dd3cd63418d452801cf3f7180f" - integrity sha512-A32OkKTp4i5U6aE88GwwcuV4HAprUgHcTq0sSafLxjr6AW0QahrCRCjxogkbbcdtpbXkuTOlgpjophCxb6sh5g== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-jsx" "^7.2.0" - -"@babel/plugin-transform-react-jsx@^7.0.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.2.0.tgz#ca36b6561c4d3b45524f8efb6f0fbc9a0d1d622f" - integrity sha512-h/fZRel5wAfCqcKgq3OhbmYaReo7KkoJBpt8XnvpS7wqaNMqtw5xhxutzcm35iMUWucfAdT/nvGTsWln0JTg2Q== - dependencies: - "@babel/helper-builder-react-jsx" "^7.0.0" - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-jsx" "^7.2.0" - -"@babel/plugin-transform-regenerator@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.0.0.tgz#5b41686b4ed40bef874d7ed6a84bdd849c13e0c1" - integrity sha512-sj2qzsEx8KDVv1QuJc/dEfilkg3RRPvPYx/VnKLtItVQRWt1Wqf5eVCOLZm29CiGFfYYsA3VPjfizTCV0S0Dlw== - dependencies: - regenerator-transform "^0.13.3" - -"@babel/plugin-transform-shorthand-properties@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.2.0.tgz#6333aee2f8d6ee7e28615457298934a3b46198f0" - integrity sha512-QP4eUM83ha9zmYtpbnyjTLAGKQritA5XW/iG9cjtuOI8s1RuL/3V6a3DeSHfKutJQ+ayUfeZJPcnCYEQzaPQqg== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-spread@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.2.0.tgz#0c76c12a3b5826130078ee8ec84a7a8e4afd79c4" - integrity sha512-7TtPIdwjS/i5ZBlNiQePQCovDh9pAhVbp/nGVRBZuUdBiVRThyyLend3OHobc0G+RLCPPAN70+z/MAMhsgJd/A== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-sticky-regex@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.2.0.tgz#a1e454b5995560a9c1e0d537dfc15061fd2687e1" - integrity sha512-KKYCoGaRAf+ckH8gEL3JHUaFVyNHKe3ASNsZ+AlktgHevvxGigoIttrEJb8iKN03Q7Eazlv1s6cx2B2cQ3Jabw== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-regex" "^7.0.0" - -"@babel/plugin-transform-template-literals@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.2.0.tgz#d87ed01b8eaac7a92473f608c97c089de2ba1e5b" - integrity sha512-FkPix00J9A/XWXv4VoKJBMeSkyY9x/TqIh76wzcdfl57RJJcf8CehQ08uwfhCDNtRQYtHQKBTwKZDEyjE13Lwg== - dependencies: - "@babel/helper-annotate-as-pure" "^7.0.0" - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-typeof-symbol@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.2.0.tgz#117d2bcec2fbf64b4b59d1f9819894682d29f2b2" - integrity sha512-2LNhETWYxiYysBtrBTqL8+La0jIoQQnIScUJc74OYvUGRmkskNY4EzLCnjHBzdmb38wqtTaixpo1NctEcvMDZw== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-unicode-regex@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.2.0.tgz#4eb8db16f972f8abb5062c161b8b115546ade08b" - integrity sha512-m48Y0lMhrbXEJnVUaYly29jRXbQ3ksxPrS1Tg8t+MHqzXhtBYAvI51euOBaoAlZLPHsieY9XPVMf80a5x0cPcA== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-regex" "^7.0.0" - regexpu-core "^4.1.3" - -"@babel/preset-env@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.2.0.tgz#a5030e7e4306af5a295dd5d7c78dc5464af3fee2" - integrity sha512-haGR38j5vOGVeBatrQPr3l0xHbs14505DcM57cbJy48kgMFvvHHoYEhHuRV+7vi559yyAUAVbTWzbK/B/pzJng== - dependencies: - "@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.2.0" - "@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-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.2.0" - "@babel/plugin-transform-block-scoped-functions" "^7.2.0" - "@babel/plugin-transform-block-scoping" "^7.2.0" - "@babel/plugin-transform-classes" "^7.2.0" - "@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.2.0" - "@babel/plugin-transform-modules-umd" "^7.2.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.0.0" - "@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" - -"@babel/preset-react@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.0.0.tgz#e86b4b3d99433c7b3e9e91747e2653958bc6b3c0" - integrity sha512-oayxyPS4Zj+hF6Et11BwuBkmpgT/zMxyuZgFrMeZID6Hdh3dGlk4sHCAhdBCpuCKW2ppBfl2uCCetlrUIJRY3w== - dependencies: - "@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/template@^7.1.0", "@babel/template@^7.1.2": - version "7.1.2" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.1.2.tgz#090484a574fef5a2d2d7726a674eceda5c5b5644" - integrity sha512-SY1MmplssORfFiLDcOETrW7fCLl+PavlwMh92rrGcikQaRq4iWPVH0MpwPpY3etVMx6RnDjXtr6VZYr/IbP/Ag== - dependencies: - "@babel/code-frame" "^7.0.0" - "@babel/parser" "^7.1.2" - "@babel/types" "^7.1.2" - -"@babel/traverse@^7.1.0", "@babel/traverse@^7.1.5", "@babel/traverse@^7.1.6": - version "7.1.6" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.1.6.tgz#c8db9963ab4ce5b894222435482bd8ea854b7b5c" - integrity sha512-CXedit6GpISz3sC2k2FsGCUpOhUqKdyL0lqNrImQojagnUMXf8hex4AxYFRuMkNGcvJX5QAFGzB5WJQmSv8SiQ== - dependencies: - "@babel/code-frame" "^7.0.0" - "@babel/generator" "^7.1.6" - "@babel/helper-function-name" "^7.1.0" - "@babel/helper-split-export-declaration" "^7.0.0" - "@babel/parser" "^7.1.6" - "@babel/types" "^7.1.6" - debug "^4.1.0" - globals "^11.1.0" - lodash "^4.17.10" - -"@babel/types@^7.0.0", "@babel/types@^7.1.2", "@babel/types@^7.1.6", "@babel/types@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.2.0.tgz#7941c5b2d8060e06f9601d6be7c223eef906d5d8" - integrity sha512-b4v7dyfApuKDvmPb+O488UlGuR1WbwMXFsO/cyqMrnfvRAChZKJAYeeglWTjUO1b9UghKKgepAQM5tsvBJca6A== - dependencies: - esutils "^2.0.2" - lodash "^4.17.10" - to-fast-properties "^2.0.0" - -"@webassemblyjs/ast@1.7.11": - version "1.7.11" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.7.11.tgz#b988582cafbb2b095e8b556526f30c90d057cace" - integrity sha512-ZEzy4vjvTzScC+SH8RBssQUawpaInUdMTYwYYLh54/s8TuT0gBLuyUnppKsVyZEi876VmmStKsUs28UxPgdvrA== - dependencies: - "@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@1.7.11": - version "1.7.11" - resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.7.11.tgz#a69f0af6502eb9a3c045555b1a6129d3d3f2e313" - integrity sha512-zY8dSNyYcgzNRNT666/zOoAyImshm3ycKdoLsyDw/Bwo6+/uktb7p4xyApuef1dwEBo/U/SYQzbGBvV+nru2Xg== - -"@webassemblyjs/helper-api-error@1.7.11": - version "1.7.11" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.7.11.tgz#c7b6bb8105f84039511a2b39ce494f193818a32a" - integrity sha512-7r1qXLmiglC+wPNkGuXCvkmalyEstKVwcueZRP2GNC2PAvxbLYwLLPr14rcdJaE4UtHxQKfFkuDFuv91ipqvXg== - -"@webassemblyjs/helper-buffer@1.7.11": - version "1.7.11" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.7.11.tgz#3122d48dcc6c9456ed982debe16c8f37101df39b" - integrity sha512-MynuervdylPPh3ix+mKZloTcL06P8tenNH3sx6s0qE8SLR6DdwnfgA7Hc9NSYeob2jrW5Vql6GVlsQzKQCa13w== - -"@webassemblyjs/helper-code-frame@1.7.11": - version "1.7.11" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.7.11.tgz#cf8f106e746662a0da29bdef635fcd3d1248364b" - integrity sha512-T8ESC9KMXFTXA5urJcyor5cn6qWeZ4/zLPyWeEXZ03hj/x9weSokGNkVCdnhSabKGYWxElSdgJ+sFa9G/RdHNw== - dependencies: - "@webassemblyjs/wast-printer" "1.7.11" - -"@webassemblyjs/helper-fsm@1.7.11": - version "1.7.11" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.7.11.tgz#df38882a624080d03f7503f93e3f17ac5ac01181" - integrity sha512-nsAQWNP1+8Z6tkzdYlXT0kxfa2Z1tRTARd8wYnc/e3Zv3VydVVnaeePgqUzFrpkGUyhUUxOl5ML7f1NuT+gC0A== - -"@webassemblyjs/helper-module-context@1.7.11": - version "1.7.11" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.7.11.tgz#d874d722e51e62ac202476935d649c802fa0e209" - integrity sha512-JxfD5DX8Ygq4PvXDucq0M+sbUFA7BJAv/GGl9ITovqE+idGX+J3QSzJYz+LwQmL7fC3Rs+utvWoJxDb6pmC0qg== - -"@webassemblyjs/helper-wasm-bytecode@1.7.11": - version "1.7.11" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.7.11.tgz#dd9a1e817f1c2eb105b4cf1013093cb9f3c9cb06" - integrity sha512-cMXeVS9rhoXsI9LLL4tJxBgVD/KMOKXuFqYb5oCJ/opScWpkCMEz9EJtkonaNcnLv2R3K5jIeS4TRj/drde1JQ== - -"@webassemblyjs/helper-wasm-section@1.7.11": - version "1.7.11" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.7.11.tgz#9c9ac41ecf9fbcfffc96f6d2675e2de33811e68a" - integrity sha512-8ZRY5iZbZdtNFE5UFunB8mmBEAbSI3guwbrsCl4fWdfRiAcvqQpeqd5KHhSWLL5wuxo53zcaGZDBU64qgn4I4Q== - dependencies: - "@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@1.7.11": - version "1.7.11" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.7.11.tgz#c95839eb63757a31880aaec7b6512d4191ac640b" - integrity sha512-Mmqx/cS68K1tSrvRLtaV/Lp3NZWzXtOHUW2IvDvl2sihAwJh4ACE0eL6A8FvMyDG9abes3saB6dMimLOs+HMoQ== - dependencies: - "@xtuc/ieee754" "^1.2.0" - -"@webassemblyjs/leb128@1.7.11": - version "1.7.11" - resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.7.11.tgz#d7267a1ee9c4594fd3f7e37298818ec65687db63" - integrity sha512-vuGmgZjjp3zjcerQg+JA+tGOncOnJLWVkt8Aze5eWQLwTQGNgVLcyOTqgSCxWTR4J42ijHbBxnuRaL1Rv7XMdw== - dependencies: - "@xtuc/long" "4.2.1" - -"@webassemblyjs/utf8@1.7.11": - version "1.7.11" - resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.7.11.tgz#06d7218ea9fdc94a6793aa92208160db3d26ee82" - integrity sha512-C6GFkc7aErQIAH+BMrIdVSmW+6HSe20wg57HEC1uqJP8E/xpMjXqQUxkQw07MhNDSDcGpxI9G5JSNOQCqJk4sA== - -"@webassemblyjs/wasm-edit@1.7.11": - version "1.7.11" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.7.11.tgz#8c74ca474d4f951d01dbae9bd70814ee22a82005" - integrity sha512-FUd97guNGsCZQgeTPKdgxJhBXkUbMTY6hFPf2Y4OedXd48H97J+sOY2Ltaq6WGVpIH8o/TGOVNiVz/SbpEMJGg== - dependencies: - "@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@1.7.11": - version "1.7.11" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.7.11.tgz#9bbba942f22375686a6fb759afcd7ac9c45da1a8" - integrity sha512-U/KDYp7fgAZX5KPfq4NOupK/BmhDc5Kjy2GIqstMhvvdJRcER/kUsMThpWeRP8BMn4LXaKhSTggIJPOeYHwISA== - dependencies: - "@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@1.7.11": - version "1.7.11" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.7.11.tgz#b331e8e7cef8f8e2f007d42c3a36a0580a7d6ca7" - integrity sha512-XynkOwQyiRidh0GLua7SkeHvAPXQV/RxsUeERILmAInZegApOUAIJfRuPYe2F7RcjOC9tW3Cb9juPvAC/sCqvg== - dependencies: - "@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@1.7.11": - version "1.7.11" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.7.11.tgz#6e3d20fa6a3519f6b084ef9391ad58211efb0a1a" - integrity sha512-6lmXRTrrZjYD8Ng8xRyvyXQJYUQKYSXhJqXOBLw24rdiXsHAOlvw5PhesjdcaMadU/pyPQOJ5dHreMjBxwnQKg== - dependencies: - "@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@1.7.11": - version "1.7.11" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.7.11.tgz#25bd117562ca8c002720ff8116ef9072d9ca869c" - integrity sha512-lEyVCg2np15tS+dm7+JJTNhNWq9yTZvi3qEhAIIOaofcYlUp0UR5/tVqOwa/gXYr3gjwSZqw+/lS9dscyLelbQ== - dependencies: - "@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@1.7.11": - version "1.7.11" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.7.11.tgz#c4245b6de242cb50a2cc950174fdbf65c78d7813" - integrity sha512-m5vkAsuJ32QpkdkDOUPGSltrg8Cuk3KBx4YrmAGQwCZPRdUHXxG4phIOuuycLemHFr74sWL9Wthqss4fzdzSwg== - dependencies: - "@webassemblyjs/ast" "1.7.11" - "@webassemblyjs/wast-parser" "1.7.11" - "@xtuc/long" "4.2.1" - -"@xtuc/ieee754@^1.2.0": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" - integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== - -"@xtuc/long@4.2.1": - version "4.2.1" - resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.1.tgz#5c85d662f76fa1d34575766c5dcd6615abcd30d8" - integrity sha512-FZdkNBDqBRHKQ2MEbSC17xnPFOhZxeJ2YGSfr2BKf3sujG49Qe3bB+rGCwQfIaA7WHnGeGkSijX4FuBCdrzW/g== - -abbrev@1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" - integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== - -acorn-dynamic-import@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/acorn-dynamic-import/-/acorn-dynamic-import-3.0.0.tgz#901ceee4c7faaef7e07ad2a47e890675da50a278" - integrity sha512-zVWV8Z8lislJoOKKqdNMOB+s6+XV5WERty8MnKBeFgwA+19XJjJHs2RP5dzM57FftIs+jQnRToLiWazKr6sSWg== - dependencies: - acorn "^5.0.0" - -acorn@^5.0.0, acorn@^5.6.2: - version "5.7.3" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.3.tgz#67aa231bf8812974b85235a96771eb6bd07ea279" - integrity sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw== - -ajv-errors@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d" - integrity sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ== - -ajv-keywords@^3.1.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.2.0.tgz#e86b819c602cf8821ad637413698f1dec021847a" - integrity sha1-6GuBnGAs+IIa1jdBNpjx3sAhhHo= - -ajv@^6.1.0: - version "6.6.1" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.6.1.tgz#6360f5ed0d80f232cc2b294c362d5dc2e538dd61" - integrity sha512-ZoJjft5B+EJBjUyu9C9Hc0OZyPZSSlOF+plzouTrg6UlA8f+e/n8NIgBFG/9tppJtpPWfthHakK7juJdNDODww== - dependencies: - fast-deep-equal "^2.0.1" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.4.1" - uri-js "^4.2.2" - -ansi-regex@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" - integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= - -ansi-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" - integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= - -ansi-styles@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" - integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== - dependencies: - color-convert "^1.9.0" - -anymatch@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" - integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw== - dependencies: - micromatch "^3.1.4" - normalize-path "^2.1.1" - -aproba@^1.0.3, aproba@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" - integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== - -are-we-there-yet@~1.1.2: - version "1.1.5" - resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21" - integrity sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w== - dependencies: - delegates "^1.0.0" - readable-stream "^2.0.6" - -arr-diff@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" - integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= - -arr-flatten@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" - integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== - -arr-union@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" - integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= - -array-unique@^0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" - integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= - -asn1.js@^4.0.0: - version "4.10.1" - resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.10.1.tgz#b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0" - integrity sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw== - dependencies: - bn.js "^4.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - -assert@^1.1.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/assert/-/assert-1.4.1.tgz#99912d591836b5a6f5b345c0f07eefc08fc65d91" - integrity sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE= - dependencies: - util "0.10.3" - -assign-symbols@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" - integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= - -async-each@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" - integrity sha1-GdOGodntxufByF04iu28xW0zYC0= - -atob@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" - integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== - -babel-loader@^8.0.4: - version "8.0.4" - resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.0.4.tgz#7bbf20cbe4560629e2e41534147692d3fecbdce6" - integrity sha512-fhBhNkUToJcW9nV46v8w87AJOwAJDz84c1CL57n3Stj73FANM/b9TbCUK4YhdOwEyZ+OxhYpdeZDNzSI29Firw== - dependencies: - find-cache-dir "^1.0.0" - loader-utils "^1.0.2" - mkdirp "^0.5.1" - util.promisify "^1.0.0" - -balanced-match@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" - integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= - -base64-js@^1.0.2: - version "1.3.0" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.0.tgz#cab1e6118f051095e58b5281aea8c1cd22bfc0e3" - integrity sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw== - -base@^0.11.1: - version "0.11.2" - resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" - integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== - dependencies: - 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" - -big.js@^3.1.3: - version "3.2.0" - resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.2.0.tgz#a5fc298b81b9e0dca2e458824784b65c52ba588e" - integrity sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q== - -binary-extensions@^1.0.0: - version "1.12.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.12.0.tgz#c2d780f53d45bba8317a8902d4ceeaf3a6385b14" - integrity sha512-DYWGk01lDcxeS/K9IHPGWfT8PsJmbXRtRd2Sx72Tnb8pcYZQFF1oSDb8hJtS1vhp212q1Rzi5dUf9+nq0o9UIg== - -bluebird@^3.5.1: - version "3.5.3" - resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.3.tgz#7d01c6f9616c9a51ab0f8c549a79dfe6ec33efa7" - integrity sha512-/qKPUQlaW1OyR51WeCPBvRnAlnZFUJkCSG5HzGnuIqhgyJtF+T94lFnn33eiazjRm2LAHVy2guNnaq48X9SJuw== - -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" - integrity sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA== - -brace-expansion@^1.1.7: - version "1.1.11" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" - integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" - -braces@^2.3.0, braces@^2.3.1: - version "2.3.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" - integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== - dependencies: - 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" - -brorand@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" - integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= - -browserify-aes@^1.0.0, browserify-aes@^1.0.4: - version "1.2.0" - resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" - integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== - 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.1" - resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" - integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w== - dependencies: - browserify-aes "^1.0.4" - browserify-des "^1.0.0" - evp_bytestokey "^1.0.0" - -browserify-des@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c" - integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A== - dependencies: - cipher-base "^1.0.1" - des.js "^1.0.0" - inherits "^2.0.1" - safe-buffer "^5.1.2" - -browserify-rsa@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524" - integrity sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ= - 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" - integrity sha1-qk62jl17ZYuqa/alfmMMvXqT0pg= - 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" - integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA== - dependencies: - pako "~1.0.5" - -browserslist@^4.3.4: - version "4.3.5" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.3.5.tgz#1a917678acc07b55606748ea1adf9846ea8920f7" - integrity sha512-z9ZhGc3d9e/sJ9dIx5NFXkKoaiQTnrvrMsN3R1fGb1tkWWNSz12UewJn9TNxGo1l7J23h0MRaPmk7jfeTZYs1w== - dependencies: - caniuse-lite "^1.0.30000912" - electron-to-chromium "^1.3.86" - node-releases "^1.0.5" - -buffer-from@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" - integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== - -buffer-xor@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" - integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk= - -buffer@^4.3.0: - version "4.9.1" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.1.tgz#6d1bb601b07a4efced97094132093027c95bc298" - integrity sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg= - dependencies: - base64-js "^1.0.2" - ieee754 "^1.1.4" - isarray "^1.0.0" - -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" - integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug= - -cacache@^11.0.2: - version "11.3.1" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-11.3.1.tgz#d09d25f6c4aca7a6d305d141ae332613aa1d515f" - integrity sha512-2PEw4cRRDu+iQvBTTuttQifacYjLPhET+SYO/gEFMy8uhi+jlJREDAjSF5FWSdV/Aw5h18caHA7vMTw2c+wDzA== - dependencies: - bluebird "^3.5.1" - chownr "^1.0.1" - figgy-pudding "^3.1.0" - glob "^7.1.2" - graceful-fs "^4.1.11" - lru-cache "^4.1.3" - 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.0" - unique-filename "^1.1.0" - y18n "^4.0.0" - -cache-base@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" - integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== - dependencies: - 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@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.0.0.tgz#03295527d58bd3cd4aa75363f35b2e8d97be2f42" - integrity sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA== - -caniuse-lite@^1.0.30000912: - version "1.0.30000921" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000921.tgz#7a607c1623444b22351d834e093aedda3c42fbe8" - integrity sha512-Bu09ciy0lMWLgpYC77I0YGuI8eFRBPPzaSOYJK1jTI64txCphYCqnWbxJYjHABYVt/TYX/p3jNjLBR87u1Bfpw== - -chalk@^2.0.0, chalk@^2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.1.tgz#18c49ab16a037b6eb0152cc83e3471338215b66e" - integrity sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ== - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" - -chokidar@^2.0.2: - version "2.0.4" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.0.4.tgz#356ff4e2b0e8e43e322d18a372460bbcf3accd26" - integrity sha512-z9n7yt9rOvIJrMhvDtDictKrkFHeihkNl6uWMmZlmL6tJtX9Cs+87oK+teBx+JIgzvbX3yZHT3eF8vpbDxHJXQ== - dependencies: - anymatch "^2.0.0" - async-each "^1.0.0" - braces "^2.3.0" - glob-parent "^3.1.0" - inherits "^2.0.1" - is-binary-path "^1.0.0" - is-glob "^4.0.0" - lodash.debounce "^4.0.8" - normalize-path "^2.1.1" - path-is-absolute "^1.0.0" - readdirp "^2.0.0" - upath "^1.0.5" - optionalDependencies: - fsevents "^1.2.2" - -chownr@^1.0.1, chownr@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.1.tgz#54726b8b8fff4df053c42187e801fb4412df1494" - integrity sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g== - -chrome-trace-event@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.0.tgz#45a91bd2c20c9411f0963b5aaeb9a1b95e09cc48" - integrity sha512-xDbVgyfDTT2piup/h8dK/y4QZfJRSa73bw1WZ8b4XM1o7fsFubUVGYcE+1ANtOzJJELGpYoG2961z0Z6OAld9A== - dependencies: - tslib "^1.9.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" - integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - -class-utils@^0.3.5: - version "0.3.6" - resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" - integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== - dependencies: - arr-union "^3.1.0" - define-property "^0.2.5" - isobject "^3.0.0" - static-extend "^0.1.1" - -cliui@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-4.1.0.tgz#348422dbe82d800b3022eef4f6ac10bf2e4d1b49" - integrity sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ== - dependencies: - string-width "^2.1.1" - strip-ansi "^4.0.0" - wrap-ansi "^2.0.0" - -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" - integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= - -collection-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" - integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA= - dependencies: - map-visit "^1.0.0" - object-visit "^1.0.0" - -color-convert@^1.9.0: - version "1.9.3" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" - integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== - dependencies: - color-name "1.1.3" - -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= - -commander@~2.17.1: - version "2.17.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.17.1.tgz#bd77ab7de6de94205ceacc72f1716d29f20a77bf" - integrity sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg== - -commondir@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" - integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= - -component-emitter@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6" - integrity sha1-E3kY1teCg/ffemt8WmPhQOaUJeY= - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= - -concat-stream@^1.5.0: - version "1.6.2" - resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" - integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== - dependencies: - buffer-from "^1.0.0" - inherits "^2.0.3" - readable-stream "^2.2.2" - typedarray "^0.0.6" - -console-browserify@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10" - integrity sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA= - 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" - integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= - -constants-browserify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" - integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U= - -convert-source-map@^1.1.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.6.0.tgz#51b537a8c43e0f04dec1993bffcdd504e758ac20" - integrity sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A== - dependencies: - safe-buffer "~5.1.1" - -copy-concurrently@^1.0.0: - version "1.0.5" - resolved "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0" - integrity sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A== - dependencies: - 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@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" - integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= - -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" - integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= - -create-ecdh@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.3.tgz#c9111b6f33045c4697f144787f9254cdc77c45ff" - integrity sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw== - dependencies: - bn.js "^4.1.0" - elliptic "^6.0.0" - -create-hash@^1.1.0, create-hash@^1.1.2: - version "1.2.0" - resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" - integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== - dependencies: - 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@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4: - version "1.1.7" - resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" - integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== - 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@^6.0.0, cross-spawn@^6.0.5: - version "6.0.5" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" - integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== - dependencies: - 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@^3.11.0: - version "3.12.0" - resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" - integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg== - 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" - -cyclist@~0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-0.2.2.tgz#1b33792e11e914a2fd6d6ed6447464444e5fa640" - integrity sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA= - -date-now@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b" - integrity sha1-6vQ5/U1ISK105cx9vvIAZyueNFs= - -debug@^2.1.2, debug@^2.2.0, debug@^2.3.3: - version "2.6.9" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" - integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== - dependencies: - ms "2.0.0" - -debug@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.0.tgz#373687bffa678b38b1cd91f861b63850035ddc87" - integrity sha512-heNPJUJIqC+xB6ayLAMHaIrmN9HKa7aQO8MGqKpvCA+uJYVcvR6l5kgdrhRuwPFHU7P5/A1w0BjByPHwpfTDKg== - dependencies: - ms "^2.1.1" - -decamelize@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" - integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= - -decode-uri-component@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" - integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= - -deep-extend@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" - integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== - -define-properties@^1.1.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" - integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== - dependencies: - object-keys "^1.0.12" - -define-property@^0.2.5: - version "0.2.5" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" - integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY= - dependencies: - is-descriptor "^0.1.0" - -define-property@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" - integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY= - dependencies: - is-descriptor "^1.0.0" - -define-property@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" - integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== - dependencies: - is-descriptor "^1.0.2" - isobject "^3.0.1" - -delegates@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" - integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= - -des.js@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.0.tgz#c074d2e2aa6a8a9a07dbd61f9a15c2cd83ec8ecc" - integrity sha1-wHTS4qpqipoH29YfmhXCzYPsjsw= - dependencies: - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - -detect-libc@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" - integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups= - -diffie-hellman@^5.0.0: - version "5.0.3" - resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" - integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg== - dependencies: - bn.js "^4.1.0" - miller-rabin "^4.0.0" - randombytes "^2.0.0" - -domain-browser@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" - integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA== - -duplexify@^3.4.2, duplexify@^3.6.0: - version "3.6.1" - resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.6.1.tgz#b1a7a29c4abfd639585efaecce80d666b1e34125" - integrity sha512-vM58DwdnKmty+FSPzT14K9JXb90H+j5emaR4KYbr2KTIz00WHGbWOe5ghQTx233ZCLZtrGDALzKwcjEtSt35mA== - dependencies: - end-of-stream "^1.0.0" - inherits "^2.0.1" - readable-stream "^2.0.0" - stream-shift "^1.0.0" - -electron-to-chromium@^1.3.86: - version "1.3.91" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.91.tgz#d74437a753b122aa6eca7c722055004d3627635d" - integrity sha512-wOWwM4vQpmb97VNkExnwE5e/sUMUb7NXurlEnhE89JOarUp6FOOMKjtTGgj9bmqskZkeRA7u+p0IztJ/y2OP5Q== - -elliptic@^6.0.0: - version "6.4.1" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.4.1.tgz#c2d0b7776911b86722c632c3c06c60f2f819939a" - integrity sha512-BsXLz5sqX8OHcsh7CqBMztyXARmGQ3LWPtGjJi6DiJHq5C/qvi9P3OqgswKSDftbu8+IoI/QDTAm2fFnQ9SZSQ== - 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" - integrity sha1-TapNnbAPmBmIDHn6RXrlsJof04k= - -end-of-stream@^1.0.0, end-of-stream@^1.1.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.1.tgz#ed29634d19baba463b6ce6b80a37213eab71ec43" - integrity sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q== - dependencies: - once "^1.4.0" - -enhanced-resolve@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz#41c7e0bfdfe74ac1ffe1e57ad6a5c6c9f3742a7f" - integrity sha512-F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng== - dependencies: - graceful-fs "^4.1.2" - memory-fs "^0.4.0" - tapable "^1.0.0" - -errno@^0.1.3, errno@~0.1.7: - version "0.1.7" - resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618" - integrity sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg== - dependencies: - prr "~1.0.1" - -es-abstract@^1.5.1: - version "1.12.0" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.12.0.tgz#9dbbdd27c6856f0001421ca18782d786bf8a6165" - integrity sha512-C8Fx/0jFmV5IPoMOFPA9P9G5NtqW+4cOPit3MIuvR2t7Ag2K15EJTpxnHAYTzL+aYQJIESYeXZmDBfOBE1HcpA== - dependencies: - es-to-primitive "^1.1.1" - function-bind "^1.1.1" - has "^1.0.1" - is-callable "^1.1.3" - is-regex "^1.0.4" - -es-to-primitive@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.0.tgz#edf72478033456e8dda8ef09e00ad9650707f377" - integrity sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg== - dependencies: - is-callable "^1.1.4" - is-date-object "^1.0.1" - is-symbol "^1.0.2" - -escape-string-regexp@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= - -eslint-scope@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.0.tgz#50bf3071e9338bcdc43331794a0cb533f0136172" - integrity sha512-1G6UTDi7Jc1ELFwnR58HV4fK9OQK4S6N985f166xqXxpjU6plxFISJa2Ba9KCQuFa8RCnj/lSFJbHo7UFDBnUA== - dependencies: - esrecurse "^4.1.0" - estraverse "^4.1.1" - -esrecurse@^4.1.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf" - integrity sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ== - dependencies: - estraverse "^4.1.0" - -estraverse@^4.1.0, estraverse@^4.1.1: - version "4.2.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" - integrity sha1-De4/7TH81GlhjOc0IJn8GvoL2xM= - -esutils@^2.0.0, esutils@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" - integrity sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs= - -events@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924" - integrity sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ= - -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" - integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== - dependencies: - md5.js "^1.3.4" - safe-buffer "^5.1.1" - -execa@^0.10.0: - version "0.10.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-0.10.0.tgz#ff456a8f53f90f8eccc71a96d11bdfc7f082cb50" - integrity sha512-7XOMnz8Ynx1gGo/3hyV9loYNPWM94jG3+3T3Y8tsfSstFmETmENCMU/A/zj8Lyaj1lkgEepKepvd6240tBRvlw== - dependencies: - cross-spawn "^6.0.0" - 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@^2.1.4: - version "2.1.4" - resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" - integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI= - dependencies: - 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" - -extend-shallow@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" - integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= - dependencies: - is-extendable "^0.1.0" - -extend-shallow@^3.0.0, extend-shallow@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" - integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg= - dependencies: - assign-symbols "^1.0.0" - is-extendable "^1.0.1" - -extglob@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" - integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== - dependencies: - 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" - -fast-deep-equal@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49" - integrity sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk= - -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" - integrity sha1-1RQsDK7msRifh9OnYREGT4bIu/I= - -figgy-pudding@^3.1.0, figgy-pudding@^3.5.1: - version "3.5.1" - resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.1.tgz#862470112901c727a0e495a80744bd5baa1d6790" - integrity sha512-vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w== - -fill-range@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" - integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc= - dependencies: - extend-shallow "^2.0.1" - is-number "^3.0.0" - repeat-string "^1.6.1" - to-regex-range "^2.1.0" - -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" - integrity sha1-kojj6ePMN0hxfTnq3hfPcfww7m8= - dependencies: - commondir "^1.0.1" - make-dir "^1.0.0" - pkg-dir "^2.0.0" - -find-cache-dir@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.0.0.tgz#4c1faed59f45184530fb9d7fa123a4d04a98472d" - integrity sha512-LDUY6V1Xs5eFskUVYtIwatojt6+9xC9Chnlk/jYOOvn3FAFfSaWddxahDGyNHh0b2dMXa6YW2m0tk8TdVaXHlA== - dependencies: - commondir "^1.0.1" - make-dir "^1.0.0" - pkg-dir "^3.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" - integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c= - dependencies: - locate-path "^2.0.0" - -find-up@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" - integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== - dependencies: - locate-path "^3.0.0" - -flush-write-stream@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.0.3.tgz#c5d586ef38af6097650b49bc41b55fabb19f35bd" - integrity sha512-calZMC10u0FMUqoiunI2AiGIIUtUIvifNwkHhNupZH4cbNnW1Itkoh/Nf5HFYmDrwWPjrUxpkZT0KhuCq0jmGw== - dependencies: - inherits "^2.0.1" - readable-stream "^2.0.4" - -for-in@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" - integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= - -fragment-cache@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" - integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk= - dependencies: - map-cache "^0.2.2" - -from2@^2.1.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" - integrity sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8= - dependencies: - inherits "^2.0.1" - readable-stream "^2.0.0" - -fs-minipass@^1.2.5: - version "1.2.5" - resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.5.tgz#06c277218454ec288df77ada54a03b8702aacb9d" - integrity sha512-JhBl0skXjUPCFH7x6x61gQxrKyXsxB5gcgePLZCwfyCGGsTISMoIeObbrvVeP6Xmyaudw4TT43qV2Gz+iyd2oQ== - dependencies: - minipass "^2.2.1" - -fs-write-stream-atomic@^1.0.8: - version "1.0.10" - resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9" - integrity sha1-tH31NJPvkR33VzHnCp3tAYnbQMk= - dependencies: - graceful-fs "^4.1.2" - iferr "^0.1.5" - imurmurhash "^0.1.4" - readable-stream "1 || 2" - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= - -fsevents@^1.2.2: - version "1.2.4" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.4.tgz#f41dcb1af2582af3692da36fc55cbd8e1041c426" - integrity sha512-z8H8/diyk76B7q5wg+Ud0+CqzcAF3mBBI/bA5ne5zrRUUIvNkJY//D3BqyH571KuAC4Nr7Rw7CjWX4r0y9DvNg== - dependencies: - nan "^2.9.2" - node-pre-gyp "^0.10.0" - -function-bind@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" - integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== - -gauge@~2.7.3: - version "2.7.4" - resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" - integrity sha1-LANAXHU4w51+s3sxcCLjJfsBi/c= - 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.3" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a" - integrity sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w== - -get-stream@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" - integrity sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ= - -get-value@^2.0.3, get-value@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" - integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= - -glob-parent@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" - integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4= - dependencies: - is-glob "^3.1.0" - path-dirname "^1.0.0" - -glob@^7.0.5, glob@^7.1.2: - version "7.1.3" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.3.tgz#3960832d3f1574108342dafd3a67b332c0969df1" - integrity sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ== - 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" - -global-modules-path@^2.3.0: - version "2.3.1" - resolved "https://registry.yarnpkg.com/global-modules-path/-/global-modules-path-2.3.1.tgz#e541f4c800a1a8514a990477b267ac67525b9931" - integrity sha512-y+shkf4InI7mPRHSo2b/k6ix6+NLDtyccYv86whhxrSGX9wjPX1VMITmrDbE1eh7zkzhiWtW2sHklJYoQ62Cxg== - -globals@^11.1.0: - version "11.9.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-11.9.0.tgz#bde236808e987f290768a93d065060d78e6ab249" - integrity sha512-5cJVtyXWH8PiJPVLZzzoIizXx944O4OmRro5MWKx5fT4MgcN7OfaMutPeaTdJCCURwbWdhhcCWcKIffPnmTzBg== - -graceful-fs@^4.1.11, graceful-fs@^4.1.2: - version "4.1.15" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.15.tgz#ffb703e1066e8a0eeaa4c8b80ba9253eeefbfb00" - integrity sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA== - -has-flag@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" - integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= - -has-symbols@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.0.tgz#ba1a8f1af2a0fc39650f5c850367704122063b44" - integrity sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q= - -has-unicode@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" - integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk= - -has-value@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" - integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8= - dependencies: - get-value "^2.0.3" - has-values "^0.1.4" - isobject "^2.0.0" - -has-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" - integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc= - dependencies: - get-value "^2.0.6" - has-values "^1.0.0" - isobject "^3.0.0" - -has-values@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" - integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E= - -has-values@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" - integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8= - dependencies: - is-number "^3.0.0" - kind-of "^4.0.0" - -has@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" - integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== - dependencies: - function-bind "^1.1.1" - -hash-base@^3.0.0: - version "3.0.4" - resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.0.4.tgz#5fc8686847ecd73499403319a6b0a3f3f6ae4918" - integrity sha1-X8hoaEfs1zSZQDMZprCj8/auSRg= - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - -hash.js@^1.0.0, hash.js@^1.0.3: - version "1.1.7" - resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" - integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== - dependencies: - inherits "^2.0.3" - minimalistic-assert "^1.0.1" - -hmac-drbg@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" - integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE= - dependencies: - hash.js "^1.0.3" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.1" - -https-browserify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" - integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= - -iconv-lite@^0.4.4: - version "0.4.24" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" - integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== - dependencies: - safer-buffer ">= 2.1.2 < 3" - -ieee754@^1.1.4: - version "1.1.12" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.12.tgz#50bf24e5b9c8bb98af4964c941cdb0918da7b60b" - integrity sha512-GguP+DRY+pJ3soyIiGPTvdiVXjZ+DbXOxGpXn3eMvNW4x4irjqXm4wHKscC+TfxSJ0yw/S1F24tqdMNsMZTiLA== - -iferr@^0.1.5: - version "0.1.5" - resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" - integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE= - -ignore-walk@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.1.tgz#a83e62e7d272ac0e3b551aaa82831a19b69f82f8" - integrity sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ== - dependencies: - minimatch "^3.0.4" - -import-local@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/import-local/-/import-local-2.0.0.tgz#55070be38a5993cf18ef6db7e961f5bee5c5a09d" - integrity sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ== - dependencies: - pkg-dir "^3.0.0" - resolve-cwd "^2.0.0" - -imurmurhash@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" - integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= - -indexof@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" - integrity sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10= - -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2, inherits@2.0.3, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.1, inherits@~2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" - integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= - -inherits@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" - integrity sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE= - -ini@~1.3.0: - version "1.3.5" - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" - integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw== - -interpret@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.1.0.tgz#7ed1b1410c6a0e0f78cf95d3b8440c63f78b8614" - integrity sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ= - -invariant@^2.2.2: - version "2.2.4" - resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" - integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== - dependencies: - loose-envify "^1.0.0" - -invert-kv@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-2.0.0.tgz#7393f5afa59ec9ff5f67a27620d11c226e3eec02" - integrity sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA== - -is-accessor-descriptor@^0.1.6: - version "0.1.6" - resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" - integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY= - dependencies: - kind-of "^3.0.2" - -is-accessor-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" - integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ== - dependencies: - kind-of "^6.0.0" - -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" - integrity sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg= - 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" - integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== - -is-callable@^1.1.3, is-callable@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75" - integrity sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA== - -is-data-descriptor@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" - integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y= - dependencies: - kind-of "^3.0.2" - -is-data-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" - integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ== - dependencies: - kind-of "^6.0.0" - -is-date-object@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16" - integrity sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY= - -is-descriptor@^0.1.0: - version "0.1.6" - resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" - integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg== - dependencies: - is-accessor-descriptor "^0.1.6" - is-data-descriptor "^0.1.4" - kind-of "^5.0.0" - -is-descriptor@^1.0.0, is-descriptor@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" - integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg== - dependencies: - is-accessor-descriptor "^1.0.0" - is-data-descriptor "^1.0.0" - kind-of "^6.0.2" - -is-extendable@^0.1.0, is-extendable@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" - integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= - -is-extendable@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" - integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== - dependencies: - is-plain-object "^2.0.4" - -is-extglob@^2.1.0, is-extglob@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= - -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" - integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs= - 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" - integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= - -is-glob@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" - integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo= - dependencies: - is-extglob "^2.1.0" - -is-glob@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.0.tgz#9521c76845cc2610a85203ddf080a958c2ffabc0" - integrity sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A= - dependencies: - is-extglob "^2.1.1" - -is-number@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" - integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU= - dependencies: - kind-of "^3.0.2" - -is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" - integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== - dependencies: - isobject "^3.0.1" - -is-regex@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491" - integrity sha1-VRdIm1RwkbCTDglWVM7SXul+lJE= - dependencies: - has "^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" - integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= - -is-symbol@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.2.tgz#a055f6ae57192caee329e7a860118b497a950f38" - integrity sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw== - dependencies: - has-symbols "^1.0.0" - -is-windows@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" - integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== - -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" - integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= - -isobject@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" - integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= - dependencies: - isarray "1.0.0" - -isobject@^3.0.0, isobject@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" - integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= - -js-levenshtein@^1.1.3: - version "1.1.4" - resolved "https://registry.yarnpkg.com/js-levenshtein/-/js-levenshtein-1.1.4.tgz#3a56e3cbf589ca0081eb22cd9ba0b1290a16d26e" - integrity sha512-PxfGzSs0ztShKrUYPIn5r0MtyAhYcCwmndozzpz8YObbPnD1jFxzlBGbRnX2mIu6Z13xN6+PTu05TQFnZFlzow== - -"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" - integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== - -jsesc@^2.5.1: - version "2.5.2" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" - integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== - -jsesc@~0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" - integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= - -json-parse-better-errors@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" - integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== - -json-schema-traverse@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" - integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== - -json5@^0.5.0: - version "0.5.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" - integrity sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE= - -json5@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.0.tgz#e7a0c62c48285c628d20a10b85c89bb807c32850" - integrity sha512-8Mh9h6xViijj36g7Dxi+Y4S6hNGV96vcJZr/SrlHh1LR/pEn/8j/+qIBbs44YKl69Lrfctp4QD+AdWLTMqEZAQ== - dependencies: - minimist "^1.2.0" - -kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: - version "3.2.2" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" - integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= - 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" - integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc= - dependencies: - is-buffer "^1.1.5" - -kind-of@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" - integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== - -kind-of@^6.0.0, kind-of@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051" - integrity sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA== - -lcid@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/lcid/-/lcid-2.0.0.tgz#6ef5d2df60e52f82eb228a4c373e8d1f397253cf" - integrity sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA== - dependencies: - invert-kv "^2.0.0" - -loader-runner@^2.3.0: - version "2.3.1" - resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.3.1.tgz#026f12fe7c3115992896ac02ba022ba92971b979" - integrity sha512-By6ZFY7ETWOc9RFaAIb23IjJVcM4dvJC/N57nmdz9RSkMXvAXGI7SyVlAw3v8vjtDRlqThgVDVmTnr9fqMlxkw== - -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" - integrity sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0= - 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" - integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= - dependencies: - p-locate "^2.0.0" - path-exists "^3.0.0" - -locate-path@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" - integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== - dependencies: - p-locate "^3.0.0" - path-exists "^3.0.0" - -lodash.debounce@^4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" - integrity sha1-gteb/zCmfEAF/9XiUVMArZyk168= - -lodash@^4.17.10: - version "4.17.11" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d" - integrity sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg== - -loose-envify@^1.0.0, loose-envify@^1.3.1: - version "1.4.0" - resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" - integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== - dependencies: - js-tokens "^3.0.0 || ^4.0.0" - -lru-cache@^4.1.3: - version "4.1.5" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" - integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== - dependencies: - pseudomap "^1.0.2" - yallist "^2.1.2" - -make-dir@^1.0.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c" - integrity sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ== - dependencies: - pify "^3.0.0" - -map-age-cleaner@^0.1.1: - version "0.1.3" - resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a" - integrity sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w== - dependencies: - p-defer "^1.0.0" - -map-cache@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" - integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= - -map-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" - integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48= - dependencies: - object-visit "^1.0.0" - -md5.js@^1.3.4: - version "1.3.5" - resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" - integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== - dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" - safe-buffer "^5.1.2" - -mem@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/mem/-/mem-4.0.0.tgz#6437690d9471678f6cc83659c00cbafcd6b0cdaf" - integrity sha512-WQxG/5xYc3tMbYLXoXPm81ET2WDULiU5FxbuIoNbJqLOOI8zehXFdZuiUEgfdrU2mVB1pxBZUGlYORSrpuJreA== - dependencies: - map-age-cleaner "^0.1.1" - mimic-fn "^1.0.0" - p-is-promise "^1.1.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" - integrity sha1-OpoguEYlI+RHz7x+i7gO1me/xVI= - dependencies: - errno "^0.1.3" - readable-stream "^2.0.1" - -micromatch@^3.1.10, micromatch@^3.1.4, micromatch@^3.1.8: - version "3.1.10" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" - integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== - dependencies: - 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@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" - integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA== - dependencies: - bn.js "^4.0.0" - brorand "^1.0.1" - -mimic-fn@^1.0.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" - integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ== - -minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" - integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== - -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" - integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= - -minimatch@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" - integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== - 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" - integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0= - -minimist@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" - integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ= - -minipass@^2.2.1, minipass@^2.3.4: - version "2.3.5" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.3.5.tgz#cacebe492022497f656b0f0f51e2682a9ed2d848" - integrity sha512-Gi1W4k059gyRbyVUZQ4mEqLm0YIUiGYfvxhF6SIlk3ui1WVxMTGfGdQ2SInh3PDrRTVvPKgULkpJtT4RH10+VA== - dependencies: - safe-buffer "^5.1.2" - yallist "^3.0.0" - -minizlib@^1.1.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.2.1.tgz#dd27ea6136243c7c880684e8672bb3a45fd9b614" - integrity sha512-7+4oTUOWKg7AuL3vloEWekXY2/D20cevzsrNT2kGWm+39J9hGTCBv8VI5Pm5lXZ/o3/mdR4f8rflAPhnQb8mPA== - dependencies: - minipass "^2.2.1" - -mississippi@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022" - integrity sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA== - dependencies: - 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" - -mixin-deep@^1.2.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.1.tgz#a49e7268dce1a0d9698e45326c5626df3543d0fe" - integrity sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ== - dependencies: - for-in "^1.0.2" - is-extendable "^1.0.1" - -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" - integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM= - dependencies: - minimist "0.0.8" - -move-concurrently@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92" - integrity sha1-viwAX9oy4LKa8fBdfEszIUxwH5I= - dependencies: - 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@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= - -ms@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" - integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== - -nan@^2.9.2: - version "2.11.1" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.11.1.tgz#90e22bccb8ca57ea4cd37cc83d3819b52eea6766" - integrity sha512-iji6k87OSXa0CcrLl9z+ZiYSuR2o+c0bGuNmXdrhTQTakxytAFsC56SArGYoiHlJlFoHSnvmhpceZJaXkVuOtA== - -nanomatch@^1.2.9: - version "1.2.13" - resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" - integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== - dependencies: - 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" - -needle@^2.2.1: - version "2.2.4" - resolved "https://registry.yarnpkg.com/needle/-/needle-2.2.4.tgz#51931bff82533b1928b7d1d69e01f1b00ffd2a4e" - integrity sha512-HyoqEb4wr/rsoaIDfTH2aVL9nWtQqba2/HvMv+++m8u0dz808MaagKILxtfeSN7QU7nvbQ79zk3vYOJp9zsNEA== - dependencies: - debug "^2.1.2" - iconv-lite "^0.4.4" - sax "^1.2.4" - -neo-async@^2.5.0: - version "2.6.0" - resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.0.tgz#b9d15e4d71c6762908654b5183ed38b753340835" - integrity sha512-MFh0d/Wa7vkKO3Y3LlacqAEeHK0mckVqzDieUKTT+KGxi+zIpeVsFxymkIiRpbpDziHc290Xr9A1O4Om7otoRA== - -nice-try@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" - integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== - -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" - integrity sha512-5AzFzdoIMb89hBGMZglEegffzgRg+ZFoUmisQ8HI4j1KDdpx13J0taNp2y9xPbur6W61gepGDDotGBVQ7mfUCg== - 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.10.0: - version "0.10.3" - resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.10.3.tgz#3070040716afdc778747b61b6887bf78880b80fc" - integrity sha512-d1xFs+C/IPS8Id0qPTZ4bUT8wWryfR/OzzAFxweG+uLN85oPzyo2Iw6bVlLQ/JOdgNonXLCoRyqDzDWq4iw72A== - dependencies: - 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" - -node-releases@^1.0.5: - version "1.1.1" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.1.tgz#8fff8aea1cfcad1fb4205f805149054fbf73cafd" - integrity sha512-2UXrBr6gvaebo5TNF84C66qyJJ6r0kxBObgZIDX3D3/mt1ADKiHux3NJPWisq0wxvJJdkjECH+9IIKYViKj71Q== - dependencies: - semver "^5.3.0" - -nopt@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" - integrity sha1-0NRoWv1UFRk8jHUFYC0NF81kR00= - dependencies: - abbrev "1" - osenv "^0.1.4" - -normalize-path@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" - integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= - dependencies: - remove-trailing-separator "^1.0.1" - -npm-bundled@^1.0.1: - version "1.0.5" - resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.5.tgz#3c1732b7ba936b3a10325aef616467c0ccbcc979" - integrity sha512-m/e6jgWu8/v5niCUKQi9qQl8QdeEduFA96xHDDzFGqly0OOjI7c+60KM/2sppfnUU9JJagf+zs+yGhqSOFj71g== - -npm-packlist@^1.1.6: - version "1.1.12" - resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.1.12.tgz#22bde2ebc12e72ca482abd67afc51eb49377243a" - integrity sha512-WJKFOVMeAlsU/pjXuqVdzU0WfgtIBCupkEVwn+1Y0ERAbUfWw8R4GjgVbaKnUjRoD2FoQbHOCbOyT5Mbs9Lw4g== - dependencies: - ignore-walk "^3.0.1" - npm-bundled "^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" - integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= - 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" - integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== - 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" - integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= - -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" - integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= - -object-copy@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" - integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw= - dependencies: - copy-descriptor "^0.1.0" - define-property "^0.2.5" - kind-of "^3.0.3" - -object-keys@^1.0.12: - version "1.0.12" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.12.tgz#09c53855377575310cca62f55bb334abff7b3ed2" - integrity sha512-FTMyFUm2wBcGHnH2eXmz7tC6IwlqQZ6mVZ+6dm6vZ4IQIHjs6FdNsQBuKGPuUUUY6NfJw2PshC08Tn6LzLDOag== - -object-visit@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" - integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs= - dependencies: - isobject "^3.0.0" - -object.getownpropertydescriptors@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz#8758c846f5b407adab0f236e0986f14b051caa16" - integrity sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY= - dependencies: - define-properties "^1.1.2" - es-abstract "^1.5.1" - -object.pick@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" - integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= - dependencies: - isobject "^3.0.1" - -once@^1.3.0, once@^1.3.1, once@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= - 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" - integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc= - -os-homedir@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" - integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= - -os-locale@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-3.0.1.tgz#3b014fbf01d87f60a1e5348d80fe870dc82c4620" - integrity sha512-7g5e7dmXPtzcP4bgsZ8ixDVqA7oWYuEz4lOSujeWyliPai4gfVDiFIcwBg3aGCPnmSGfzOKTK3ccPn0CKv3DBw== - dependencies: - execa "^0.10.0" - lcid "^2.0.0" - mem "^4.0.0" - -os-tmpdir@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" - integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= - -osenv@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" - integrity sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g== - dependencies: - os-homedir "^1.0.0" - os-tmpdir "^1.0.0" - -p-defer@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c" - integrity sha1-n26xgvbJqozXQwBKfU+WsZaw+ww= - -p-finally@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" - integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= - -p-is-promise@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-1.1.0.tgz#9c9456989e9f6588017b0434d56097675c3da05e" - integrity sha1-nJRWmJ6fZYgBewQ01WCXZ1w9oF4= - -p-limit@^1.1.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" - integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== - dependencies: - p-try "^1.0.0" - -p-limit@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.0.0.tgz#e624ed54ee8c460a778b3c9f3670496ff8a57aec" - integrity sha512-fl5s52lI5ahKCernzzIyAP0QAZbGIovtVHGwpcu1Jr/EpzLVDI2myISHwGqK7m8uQFugVWSrbxH7XnhGtvEc+A== - dependencies: - p-try "^2.0.0" - -p-locate@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" - integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= - dependencies: - p-limit "^1.1.0" - -p-locate@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" - integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== - dependencies: - p-limit "^2.0.0" - -p-try@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" - integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= - -p-try@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.0.0.tgz#85080bb87c64688fa47996fe8f7dfbe8211760b1" - integrity sha512-hMp0onDKIajHfIkdRk3P4CdCmErkYAxxDtP3Wx/4nZ3aGlau2VKh3mZpcuFkH27WQkL/3WBCPOktzA9ZOAnMQQ== - -pako@~1.0.5: - version "1.0.7" - resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.7.tgz#2473439021b57f1516c82f58be7275ad8ef1bb27" - integrity sha512-3HNK5tW4x8o5mO8RuHZp3Ydw9icZXx0RANAOMzlMzx7LVXhMJ4mo3MOBpzyd7r/+RUu8BmndP47LXT+vzjtWcQ== - -parallel-transform@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.1.0.tgz#d410f065b05da23081fcd10f28854c29bda33b06" - integrity sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY= - dependencies: - cyclist "~0.2.2" - inherits "^2.0.3" - readable-stream "^2.1.5" - -parse-asn1@^5.0.0: - version "5.1.1" - resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.1.tgz#f6bf293818332bd0dab54efb16087724745e6ca8" - integrity sha512-KPx7flKXg775zZpnp9SxJlz00gTd4BmJ2yJufSc44gMCRrRQ7NSzAcSJQfifuOLgW6bEi+ftrALtsgALeB2Adw== - 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" - -pascalcase@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" - integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= - -path-browserify@0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.0.tgz#a0b870729aae214005b7d5032ec2cbbb0fb4451a" - integrity sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo= - -path-dirname@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" - integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA= - -path-exists@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" - integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= - -path-is-absolute@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= - -path-key@^2.0.0, path-key@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" - integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= - -path-parse@^1.0.5: - version "1.0.6" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" - integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== - -pbkdf2@^3.0.3: - version "3.0.17" - resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.17.tgz#976c206530617b14ebb32114239f7b09336e93a6" - integrity sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA== - 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" - -pify@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" - integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= - -pkg-dir@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b" - integrity sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s= - dependencies: - find-up "^2.1.0" - -pkg-dir@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" - integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw== - dependencies: - find-up "^3.0.0" - -posix-character-classes@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" - integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= - -private@^0.1.6: - version "0.1.8" - resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" - integrity sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg== - -process-nextick-args@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa" - integrity sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw== - -process@^0.11.10: - version "0.11.10" - resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" - integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= - -promise-inflight@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" - integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM= - -prop-types@^15.5.10: - version "15.6.2" - resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.6.2.tgz#05d5ca77b4453e985d60fc7ff8c859094a497102" - integrity sha512-3pboPvLiWD7dkI3qf3KbUe6hKFKa52w+AE0VCqECtf+QHAKgOL37tTaNCnuX1nAAQ4ZhyP+kYVKf8rLmJ/feDQ== - dependencies: - loose-envify "^1.3.1" - object-assign "^4.1.1" - -prr@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" - integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY= - -pseudomap@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" - integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= - -public-encrypt@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" - integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q== - 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" - safe-buffer "^5.1.2" - -pump@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" - integrity sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA== - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - -pump@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" - integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - -pumpify@^1.3.3: - version "1.5.1" - resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce" - integrity sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ== - dependencies: - duplexify "^3.6.0" - inherits "^2.0.3" - pump "^2.0.0" - -punycode@1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" - integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= - -punycode@^1.2.4: - version "1.4.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" - integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= - -punycode@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" - integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== - -querystring-es3@^0.2.0: - version "0.2.1" - resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" - integrity sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM= - -querystring@0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" - integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= - -randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5: - version "2.0.6" - resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.0.6.tgz#d302c522948588848a8d300c932b44c24231da80" - integrity sha512-CIQ5OFxf4Jou6uOKe9t1AOgqpeU5fd70A8NPdHSGeYXqXsPe6peOwI0cUl88RWZ6sP1vPMV3avd/R6cZ5/sP1A== - dependencies: - safe-buffer "^5.1.0" - -randomfill@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" - integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw== - dependencies: - randombytes "^2.0.5" - safe-buffer "^5.1.0" - -rc@^1.2.7: - version "1.2.8" - resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" - integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== - dependencies: - deep-extend "^0.6.0" - ini "~1.3.0" - minimist "^1.2.0" - strip-json-comments "~2.0.1" - -react-sparklines@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/react-sparklines/-/react-sparklines-1.7.0.tgz#9b1d97e8c8610095eeb2ad658d2e1fcf91f91a60" - integrity sha512-bJFt9K4c5Z0k44G8KtxIhbG+iyxrKjBZhdW6afP+R7EnIq+iKjbWbEFISrf3WKNFsda+C46XAfnX0StS5fbDcg== - dependencies: - prop-types "^15.5.10" - -"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.4, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.6: - version "2.3.6" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" - integrity sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw== - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.3" - isarray "~1.0.0" - process-nextick-args "~2.0.0" - safe-buffer "~5.1.1" - string_decoder "~1.1.1" - util-deprecate "~1.0.1" - -readdirp@^2.0.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" - integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ== - dependencies: - graceful-fs "^4.1.11" - micromatch "^3.1.10" - readable-stream "^2.0.2" - -regenerate-unicode-properties@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-7.0.0.tgz#107405afcc4a190ec5ed450ecaa00ed0cafa7a4c" - integrity sha512-s5NGghCE4itSlUS+0WUj88G6cfMVMmH8boTPNvABf8od+2dhT9WDlWu8n01raQAJZMOK8Ch6jSexaRO7swd6aw== - dependencies: - regenerate "^1.4.0" - -regenerate@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.0.tgz#4a856ec4b56e4077c557589cae85e7a4c8869a11" - integrity sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg== - -regenerator-transform@^0.13.3: - version "0.13.3" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.13.3.tgz#264bd9ff38a8ce24b06e0636496b2c856b57bcbb" - integrity sha512-5ipTrZFSq5vU2YoGoww4uaRVAK4wyYC4TSICibbfEPOruUu8FFP7ErV0BjmbIOEpn3O/k9na9UEdYR/3m7N6uA== - dependencies: - private "^0.1.6" - -regex-not@^1.0.0, regex-not@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" - integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== - dependencies: - extend-shallow "^3.0.2" - safe-regex "^1.1.0" - -regexpu-core@^4.1.3, regexpu-core@^4.2.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.4.0.tgz#8d43e0d1266883969720345e70c275ee0aec0d32" - integrity sha512-eDDWElbwwI3K0Lo6CqbQbA6FwgtCz4kYTarrri1okfkRLZAqstU+B3voZBCjg8Fl6iq0gXrJG6MvRgLthfvgOA== - dependencies: - regenerate "^1.4.0" - regenerate-unicode-properties "^7.0.0" - regjsgen "^0.5.0" - regjsparser "^0.6.0" - unicode-match-property-ecmascript "^1.0.4" - unicode-match-property-value-ecmascript "^1.0.2" - -regjsgen@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.0.tgz#a7634dc08f89209c2049adda3525711fb97265dd" - integrity sha512-RnIrLhrXCX5ow/E5/Mh2O4e/oa1/jW0eaBKTSy3LaCj+M3Bqvm97GWDp2yUtzIs4LEn65zR2yiYGFqb2ApnzDA== - -regjsparser@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.0.tgz#f1e6ae8b7da2bae96c99399b868cd6c933a2ba9c" - integrity sha512-RQ7YyokLiQBomUJuUG8iGVvkgOLxwyZM8k6d3q5SAXpg4r5TZJZigKFvC6PpD+qQ98bCDC5YelPeA3EucDoNeQ== - 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" - integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= - -repeat-element@^1.1.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce" - integrity sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g== - -repeat-string@^1.6.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" - integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= - -require-directory@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= - -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" - integrity sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE= - -resolve-cwd@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a" - integrity sha1-AKn3OHVW4nA46uIyyqNypqWbZlo= - dependencies: - resolve-from "^3.0.0" - -resolve-from@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" - integrity sha1-six699nWiBvItuZTM17rywoYh0g= - -resolve-url@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" - integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= - -resolve@^1.3.2: - version "1.8.1" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.8.1.tgz#82f1ec19a423ac1fbd080b0bab06ba36e84a7a26" - integrity sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA== - dependencies: - path-parse "^1.0.5" - -ret@~0.1.10: - version "0.1.15" - resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" - integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== - -rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2: - version "2.6.2" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36" - integrity sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w== - dependencies: - glob "^7.0.5" - -ripemd160@^2.0.0, ripemd160@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" - integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== - dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" - -run-queue@^1.0.0, run-queue@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47" - integrity sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec= - dependencies: - aproba "^1.1.1" - -safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: - version "5.1.2" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" - integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== - -safe-regex@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" - integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4= - dependencies: - ret "~0.1.10" - -"safer-buffer@>= 2.1.2 < 3": - version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" - integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== - -sax@^1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" - integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== - -schema-utils@^0.4.4: - version "0.4.7" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.4.7.tgz#ba74f597d2be2ea880131746ee17d0a093c68187" - integrity sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ== - dependencies: - ajv "^6.1.0" - ajv-keywords "^3.1.0" - -schema-utils@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770" - integrity sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g== - dependencies: - ajv "^6.1.0" - ajv-errors "^1.0.0" - ajv-keywords "^3.1.0" - -semver@^5.3.0, semver@^5.4.1, semver@^5.5.0: - version "5.6.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.6.0.tgz#7e74256fbaa49c75aa7c7a205cc22799cac80004" - integrity sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg== - -serialize-javascript@^1.4.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-1.5.0.tgz#1aa336162c88a890ddad5384baebc93a655161fe" - integrity sha512-Ga8c8NjAAp46Br4+0oZ2WxJCwIzwP60Gq1YPgU+39PiTVxyed/iKE/zyZI6+UlVYH5Q4PaQdHhcegIFPZTUfoQ== - -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" - integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= - -set-value@^0.4.3: - version "0.4.3" - resolved "https://registry.yarnpkg.com/set-value/-/set-value-0.4.3.tgz#7db08f9d3d22dc7f78e53af3c3bf4666ecdfccf1" - integrity sha1-fbCPnT0i3H945Trzw79GZuzfzPE= - dependencies: - 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.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.0.tgz#71ae4a88f0feefbbf52d1ea604f3fb315ebb6274" - integrity sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg== - dependencies: - extend-shallow "^2.0.1" - is-extendable "^0.1.1" - is-plain-object "^2.0.3" - split-string "^3.0.1" - -setimmediate@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" - integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= - -sha.js@^2.4.0, sha.js@^2.4.8: - version "2.4.11" - resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" - integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== - 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" - integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= - 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" - integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= - -signal-exit@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" - integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0= - -snapdragon-node@^2.0.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" - integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== - dependencies: - define-property "^1.0.0" - isobject "^3.0.0" - snapdragon-util "^3.0.1" - -snapdragon-util@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" - integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== - dependencies: - kind-of "^3.2.0" - -snapdragon@^0.8.1: - version "0.8.2" - resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" - integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== - dependencies: - 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" - -source-list-map@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" - integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== - -source-map-resolve@^0.5.0: - version "0.5.2" - resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.2.tgz#72e2cc34095543e43b2c62b2c4c10d4a9054f259" - integrity sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA== - dependencies: - 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@~0.5.6: - version "0.5.9" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.9.tgz#41bc953b2534267ea2d605bccfa7bfa3111ced5f" - integrity sha512-gR6Rw4MvUlYy83vP0vxoVNzM6t8MUXqNuRsuBmBHQDu1Fh6X015FrLdgoDKcNdkwGubozq0P4N0Q37UyFVr1EA== - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - -source-map-url@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" - integrity sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM= - -source-map@^0.5.0, source-map@^0.5.6: - version "0.5.7" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" - integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= - -source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" - integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== - -split-string@^3.0.1, split-string@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" - integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== - dependencies: - extend-shallow "^3.0.0" - -ssri@^6.0.0: - version "6.0.1" - resolved "https://registry.yarnpkg.com/ssri/-/ssri-6.0.1.tgz#2a3c41b28dd45b62b63676ecb74001265ae9edd8" - integrity sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA== - dependencies: - figgy-pudding "^3.5.1" - -static-extend@^0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" - integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY= - dependencies: - define-property "^0.2.5" - object-copy "^0.1.0" - -stream-browserify@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.1.tgz#66266ee5f9bdb9940a4e4514cafb43bb71e5c9db" - integrity sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds= - dependencies: - inherits "~2.0.1" - readable-stream "^2.0.2" - -stream-each@^1.1.0: - version "1.2.3" - resolved "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.3.tgz#ebe27a0c389b04fbcc233642952e10731afa9bae" - integrity sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw== - dependencies: - end-of-stream "^1.1.0" - stream-shift "^1.0.0" - -stream-http@^2.7.2: - version "2.8.3" - resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc" - integrity sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw== - dependencies: - builtin-status-codes "^3.0.0" - inherits "^2.0.1" - readable-stream "^2.3.6" - to-arraybuffer "^1.0.0" - xtend "^4.0.0" - -stream-shift@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.0.tgz#d5c752825e5367e786f78e18e445ea223a155952" - integrity sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI= - -string-width@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" - integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M= - dependencies: - code-point-at "^1.0.0" - is-fullwidth-code-point "^1.0.0" - strip-ansi "^3.0.0" - -"string-width@^1.0.2 || 2", string-width@^2.0.0, string-width@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" - integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== - dependencies: - is-fullwidth-code-point "^2.0.0" - strip-ansi "^4.0.0" - -string_decoder@^1.0.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.2.0.tgz#fe86e738b19544afe70469243b2a1ee9240eae8d" - integrity sha512-6YqyX6ZWEYguAxgZzHGL7SsCeGx3V2TtOTqZz1xSTSWnqsbWwbptafNyvf/ACquZUXV3DANr5BDIwNYe1mN42w== - dependencies: - safe-buffer "~5.1.0" - -string_decoder@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" - integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== - dependencies: - safe-buffer "~5.1.0" - -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" - integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= - 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" - integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= - dependencies: - ansi-regex "^3.0.0" - -strip-eof@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" - integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= - -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" - integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= - -supports-color@^5.3.0, supports-color@^5.5.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" - integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== - dependencies: - has-flag "^3.0.0" - -tapable@^1.0.0, tapable@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.1.tgz#4d297923c5a72a42360de2ab52dadfaaec00018e" - integrity sha512-9I2ydhj8Z9veORCw5PRm4u9uebCn0mcCa6scWoNcbZ6dAtoo2618u9UUzxgmsCOreJpqDDuv61LvwofW7hLcBA== - -tar@^4: - version "4.4.8" - resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.8.tgz#b19eec3fde2a96e64666df9fdb40c5ca1bc3747d" - integrity sha512-LzHF64s5chPQQS0IYBn9IN5h3i98c12bo4NCO7e0sGM2llXQ3p2FGC5sdENN4cTW48O915Sh+x+EXx7XW96xYQ== - dependencies: - 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" - -terser-webpack-plugin@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.1.0.tgz#cf7c25a1eee25bf121f4a587bb9e004e3f80e528" - integrity sha512-61lV0DSxMAZ8AyZG7/A4a3UPlrbOBo8NIQ4tJzLPAdGOQ+yoNC7l5ijEow27lBAL2humer01KLS6bGIMYQxKoA== - dependencies: - 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.8.1" - webpack-sources "^1.1.0" - worker-farm "^1.5.2" - -terser@^3.8.1: - version "3.11.0" - resolved "https://registry.yarnpkg.com/terser/-/terser-3.11.0.tgz#60782893e1f4d6788acc696351f40636d0e37af0" - integrity sha512-5iLMdhEPIq3zFWskpmbzmKwMQixKmTYwY3Ox9pjtSklBLnHiuQ0GKJLhL1HSYtyffHM3/lDIFBnb82m9D7ewwQ== - dependencies: - commander "~2.17.1" - source-map "~0.6.1" - source-map-support "~0.5.6" - -through2@^2.0.0: - version "2.0.5" - resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" - integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== - dependencies: - readable-stream "~2.3.6" - xtend "~4.0.1" - -timers-browserify@^2.0.4: - version "2.0.10" - resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.10.tgz#1d28e3d2aadf1d5a5996c4e9f95601cd053480ae" - integrity sha512-YvC1SV1XdOUaL6gx5CoGroT3Gu49pK9+TZ38ErPldOWW4j49GI1HKs9DV+KGq/w6y+LZ72W1c8cKz2vzY+qpzg== - 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" - integrity sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M= - -to-fast-properties@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" - integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= - -to-object-path@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" - integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68= - dependencies: - kind-of "^3.0.2" - -to-regex-range@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" - integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg= - dependencies: - is-number "^3.0.0" - repeat-string "^1.6.1" - -to-regex@^3.0.1, to-regex@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" - integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== - dependencies: - define-property "^2.0.2" - extend-shallow "^3.0.2" - regex-not "^1.0.2" - safe-regex "^1.1.0" - -trim-right@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" - integrity sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM= - -tslib@^1.9.0: - version "1.9.3" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.3.tgz#d7e4dd79245d85428c4d7e4822a79917954ca286" - integrity sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ== - -tty-browserify@0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" - integrity sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY= - -typedarray@^0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" - integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= - -unicode-canonical-property-names-ecmascript@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818" - integrity sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ== - -unicode-match-property-ecmascript@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz#8ed2a32569961bce9227d09cd3ffbb8fed5f020c" - integrity sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg== - dependencies: - unicode-canonical-property-names-ecmascript "^1.0.4" - unicode-property-aliases-ecmascript "^1.0.4" - -unicode-match-property-value-ecmascript@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.0.2.tgz#9f1dc76926d6ccf452310564fd834ace059663d4" - integrity sha512-Rx7yODZC1L/T8XKo/2kNzVAQaRE88AaMvI1EF/Xnj3GW2wzN6fop9DDWuFAKUVFH7vozkz26DzP0qyWLKLIVPQ== - -unicode-property-aliases-ecmascript@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.4.tgz#5a533f31b4317ea76f17d807fa0d116546111dd0" - integrity sha512-2WSLa6OdYd2ng8oqiGIWnJqyFArvhn+5vgx5GTxMbUYjCYKUcuKS62YLFF0R/BDGlB1yzXjQOLtPAfHsgirEpg== - -union-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.0.tgz#5c71c34cb5bad5dcebe3ea0cd08207ba5aa1aea4" - integrity sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ= - dependencies: - arr-union "^3.1.0" - get-value "^2.0.6" - is-extendable "^0.1.1" - set-value "^0.4.3" - -unique-filename@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" - integrity sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ== - dependencies: - unique-slug "^2.0.0" - -unique-slug@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.1.tgz#5e9edc6d1ce8fb264db18a507ef9bd8544451ca6" - integrity sha512-n9cU6+gITaVu7VGj1Z8feKMmfAjEAQGhwD9fE3zvpRRa0wEIx8ODYkVGfSc94M2OX00tUFV8wH3zYbm1I8mxFg== - dependencies: - imurmurhash "^0.1.4" - -unset-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" - integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk= - dependencies: - has-value "^0.3.1" - isobject "^3.0.0" - -upath@^1.0.5: - version "1.1.0" - resolved "https://registry.yarnpkg.com/upath/-/upath-1.1.0.tgz#35256597e46a581db4793d0ce47fa9aebfc9fabd" - integrity sha512-bzpH/oBhoS/QI/YtbkqCg6VEiPYjSZtrHQM6/QnJS6OL9pKUFLqb3aFh4Scvwm45+7iAgiMkLhSbaZxUqmrprw== - -uri-js@^4.2.2: - version "4.2.2" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" - integrity sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ== - dependencies: - punycode "^2.1.0" - -urix@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" - integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= - -url@^0.11.0: - version "0.11.0" - resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" - integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE= - dependencies: - punycode "1.3.2" - querystring "0.2.0" - -use@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" - integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== - -util-deprecate@~1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= - -util.promisify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.0.tgz#440f7165a459c9a16dc145eb8e72f35687097030" - integrity sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA== - dependencies: - define-properties "^1.1.2" - object.getownpropertydescriptors "^2.0.3" - -util@0.10.3: - version "0.10.3" - resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" - integrity sha1-evsa/lCAUkZInj23/g7TeTNqwPk= - dependencies: - inherits "2.0.1" - -util@^0.10.3: - version "0.10.4" - resolved "https://registry.yarnpkg.com/util/-/util-0.10.4.tgz#3aa0125bfe668a4672de58857d3ace27ecb76901" - integrity sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A== - dependencies: - inherits "2.0.3" - -v8-compile-cache@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.0.2.tgz#a428b28bb26790734c4fc8bc9fa106fccebf6a6c" - integrity sha512-1wFuMUIM16MDJRCrpbpuEPTUGmM5QMUg0cr3KFwra2XgOgFcPGDQHDh3CszSCD2Zewc/dh/pamNEW8CbfDebUw== - -vm-browserify@0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-0.0.4.tgz#5d7ea45bbef9e4a6ff65f95438e0a87c357d5a73" - integrity sha1-XX6kW7755Kb/ZflUOOCofDV9WnM= - dependencies: - indexof "0.0.1" - -watchpack@^1.5.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.6.0.tgz#4bc12c2ebe8aa277a71f1d3f14d685c7b446cd00" - integrity sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA== - dependencies: - chokidar "^2.0.2" - graceful-fs "^4.1.2" - neo-async "^2.5.0" - -webpack-cli@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-3.1.2.tgz#17d7e01b77f89f884a2bbf9db545f0f6a648e746" - integrity sha512-Cnqo7CeqeSvC6PTdts+dywNi5CRlIPbLx1AoUPK2T6vC1YAugMG3IOoO9DmEscd+Dghw7uRlnzV1KwOe5IrtgQ== - dependencies: - chalk "^2.4.1" - cross-spawn "^6.0.5" - enhanced-resolve "^4.1.0" - global-modules-path "^2.3.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.2" - -webpack-sources@^1.1.0, webpack-sources@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.3.0.tgz#2a28dcb9f1f45fe960d8f1493252b5ee6530fa85" - integrity sha512-OiVgSrbGu7NEnEvQJJgdSFPl2qWKkWq5lHMhgiToIiN9w34EBnjYzSYs+VbL5KoYiLNtFFa7BZIKxRED3I32pA== - dependencies: - source-list-map "^2.0.0" - source-map "~0.6.1" - -webpack@^4.27.1: - version "4.27.1" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.27.1.tgz#5f2e2db446d2266376fa15d7d2277a1a9c2e12bb" - integrity sha512-WArHiLvHrlfyRM8i7f+2SFbr/XbQ0bXqTkPF8JpHOzub5482Y3wx7rEO8stuLGOKOgZJcqcisLhD7LrM/+fVMw== - dependencies: - "@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 "^5.6.2" - acorn-dynamic-import "^3.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 "^0.4.4" - tapable "^1.1.0" - terser-webpack-plugin "^1.1.0" - watchpack "^1.5.0" - webpack-sources "^1.3.0" - -which-module@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" - integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= - -which@^1.2.9: - version "1.3.1" - resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" - integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== - dependencies: - isexe "^2.0.0" - -wide-align@^1.1.0: - version "1.1.3" - resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" - integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA== - dependencies: - string-width "^1.0.2 || 2" - -worker-farm@^1.5.2: - version "1.6.0" - resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.6.0.tgz#aecc405976fab5a95526180846f0dba288f3a4a0" - integrity sha512-6w+3tHbM87WnSWnENBUvA2pxJPLhQUg5LKwUQHq3r+XPhIM+Gh2R5ycbwPCyuGbNg+lPgdcnQUhuC02kJCvffQ== - dependencies: - errno "~0.1.7" - -wrap-ansi@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" - integrity sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU= - 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" - integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= - -xtend@^4.0.0, xtend@~4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" - integrity sha1-pcbVMr5lbiPbgg77lDofBJmNY68= - -"y18n@^3.2.1 || ^4.0.0", y18n@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" - integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w== - -yallist@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" - integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= - -yallist@^3.0.0, yallist@^3.0.2: - version "3.0.3" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.0.3.tgz#b4b049e314be545e3ce802236d6cd22cd91c3de9" - integrity sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A== - -yargs-parser@^11.1.1: - version "11.1.1" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-11.1.1.tgz#879a0865973bca9f6bab5cbdf3b1c67ec7d3bcf4" - integrity sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ== - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" - -yargs@^12.0.2: - version "12.0.5" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-12.0.5.tgz#05f5997b609647b64f66b81e3b4b10a368e7ad13" - integrity sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw== - dependencies: - 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" From 9922ad0fb4b267216982ce070b639e3c933784b7 Mon Sep 17 00:00:00 2001 From: Alan Dipert Date: Fri, 4 Jan 2019 15:28:29 -0800 Subject: [PATCH 23/77] Add self as author to DESCRIPTION --- DESCRIPTION | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/DESCRIPTION b/DESCRIPTION index efb71a5..1d8e04d 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -14,6 +14,12 @@ Authors@R: c( , role = c("aut", "cre") , comment = "R interface" , email = "kent.russell@timelyportfolio.com" + ), + person( + "Alan", "Dipert" + , role = c("aut") + , comment = "R interface" + , email = "alan@rstudio.com" ) ) Maintainer: Kent Russell From 32b0bea4f795123b86962f7df82887d03cf2e1dc Mon Sep 17 00:00:00 2001 From: Alan Dipert Date: Sat, 5 Jan 2019 00:07:45 -0800 Subject: [PATCH 24/77] Added reactR::scaffoldReactWidget for scaffolding output widgets --- NAMESPACE | 1 + R/scaffold.R | 133 ++++++++++++++++++++ inst/templates/widget_js.txt | 3 + inst/templates/widget_package.json.txt | 13 ++ inst/templates/widget_r.txt | 60 +++++++++ inst/templates/widget_webpack.config.js.txt | 29 +++++ man/scaffoldReactWidget.Rd | 28 +++++ 7 files changed, 267 insertions(+) create mode 100644 R/scaffold.R create mode 100644 inst/templates/widget_js.txt create mode 100644 inst/templates/widget_package.json.txt create mode 100644 inst/templates/widget_r.txt create mode 100644 inst/templates/widget_webpack.config.js.txt create mode 100644 man/scaffoldReactWidget.Rd diff --git a/NAMESPACE b/NAMESPACE index 4c690be..7eeba5d 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -11,4 +11,5 @@ export(html_dependency_corejs) export(html_dependency_react) export(html_dependency_reacttools) export(reactData) +export(scaffoldReactWidget) importFrom(htmltools,htmlDependency) diff --git a/R/scaffold.R b/R/scaffold.R new file mode 100644 index 0000000..c392251 --- /dev/null +++ b/R/scaffold.R @@ -0,0 +1,133 @@ +#' Create implementation scaffolding for a React.js-based HTML widget +#' +#' Add the minimal code required to implement a React.js-based HTML widget to an +#' R package. +#' +#' @param name Name of widget +#' @param npmPkg Optional \href{https://npmjs.com/}{NPM} package upon which this +#' widget is based, as a two-element character vector of name and +#' \href{https://docs.npmjs.com/files/package.json#dependencies}{version +#' range}. If you specify this parameter the package will be added to the +#' \code{dependency} section of the generated \code{package.json}. +#' @param edit Automatically open the widget's JavaScript source file after +#' creating the scaffolding. +#' +#' @note This function must be executed from the root directory of the package +#' you wish to add the widget to. +#' +#' @export +scaffoldReactWidget <- function(name, npmPkg = NULL, edit = interactive()){ + if (!file.exists('DESCRIPTION')){ + stop( + "You need to create a package to house your widget first!", + call. = F + ) + } + if (!file.exists('inst')){ + dir.create('inst') + } + package <- read.dcf('DESCRIPTION')[[1,"Package"]] + addWidgetConstructor(name, package, edit) + addWidgetYAML(name, edit) + addPackageJSON(toDepJSON(npmPkg)) + addWebpackConfig(name) + addWidgetJS(name, edit) +} + +toDepJSON <- function(npmPkg) { + if (is.null(npmPkg)) { + "" + } else { + do.call(sprintf, as.list(c('"%s": "%s"', npmPkg))) + } +} + +slurp <- function(file) { + paste(readLines( + system.file(file, package = 'reactR') + ), collapse = "\n") +} + +addWidgetConstructor <- function(name, package, edit){ + tpl <- slurp('templates/widget_r.txt') + + capName = function(name){ + paste0(toupper(substring(name, 1, 1)), substring(name, 2)) + } + if (!file.exists(file_ <- sprintf("R/%s.R", name))){ + cat( + sprintf(tpl, name, name, package, name, name, name, name, name, name, package, name, capName(name), name, name, name), + file = file_ + ) + message('Created boilerplate for widget constructor ', file_) + } else { + message(file_, " already exists") + } + if (edit) fileEdit(file_) +} + +addWidgetYAML <- function(name, edit){ + tpl <- "# (uncomment to add a dependency) +# dependencies: +# - name: +# version: +# src: +# script: +# stylesheet: +" + if (!file.exists('inst/htmlwidgets')){ + dir.create('inst/htmlwidgets') + } + if (!file.exists(file_ <- sprintf('inst/htmlwidgets/%s.yaml', name))){ + cat(tpl, file = file_) + message('Created boilerplate for widget dependencies at ', + sprintf('inst/htmlwidgets/%s.yaml', name) + ) + } else { + message(file_, " already exists") + } + if (edit) fileEdit(file_) +} + +addPackageJSON <- function(npmPkg) { + tpl <- sprintf(slurp('templates/widget_package.json.txt'), npmPkg) + if (!file.exists('package.json')) { + cat(tpl, file = 'package.json') + } else { + message("package.json already exists") + } +} + +addWebpackConfig <- function(name) { + tpl <- sprintf(slurp('templates/widget_webpack.config.js.txt'), name, name) + if (!file.exists('webpack.config.js')) { + cat(tpl, file = 'webpack.config.js') + } else { + message("webpack.config.js already exists") + } +} + +addWidgetJS <- function(name, edit){ + tpl <- paste(readLines( + system.file('templates/widget_js.txt', package = 'reactR') + ), collapse = "\n") + if (!file.exists('srcjs')){ + dir.create('srcjs') + } + if (!file.exists(file_ <- sprintf('srcjs/%s.js', name))){ + cat(sprintf(tpl, name), file = file_) + message('Created boilerplate for widget javascript bindings at ', + sprintf('srcjs/%s.js', name) + ) + } else { + message(file_, " already exists") + } + if (edit) fileEdit(file_) +} + +# invoke file.edit in a way that will bind to the RStudio editor +# when running inside RStudio +fileEdit <- function(file) { + fileEditFunc <- eval(parse(text = "file.edit"), envir = globalenv()) + fileEditFunc(file) +} diff --git a/inst/templates/widget_js.txt b/inst/templates/widget_js.txt new file mode 100644 index 0000000..96c0960 --- /dev/null +++ b/inst/templates/widget_js.txt @@ -0,0 +1,3 @@ +import { reactWidget } from 'reactR'; + +reactWidget('%s', 'output', {}); diff --git a/inst/templates/widget_package.json.txt b/inst/templates/widget_package.json.txt new file mode 100644 index 0000000..ed831e0 --- /dev/null +++ b/inst/templates/widget_package.json.txt @@ -0,0 +1,13 @@ +{ + "dependencies": { + %s + }, + "devDependencies": { + "webpack": "^4.27.1", + "webpack-cli": "^3.1.2", + "@babel/core": "^7.2.0", + "babel-loader": "^8.0.4", + "@babel/preset-env": "^7.2.0", + "@babel/preset-react": "^7.0.0" + } +} diff --git a/inst/templates/widget_r.txt b/inst/templates/widget_r.txt new file mode 100644 index 0000000..f41e165 --- /dev/null +++ b/inst/templates/widget_r.txt @@ -0,0 +1,60 @@ +#' +#' +#' +#' +#' @import htmlwidgets +#' +#' @export +%s <- function(message, width = NULL, height = NULL, elementId = NULL) { + + # describe a React component to send to the browser for rendering. + component <- reactR::reactData(reactR::component("div", message)) + + # create widget + htmlwidgets::createWidget( + name = '%s', + component, + width = width, + height = height, + package = '%s', + elementId = elementId + ) +} + +#' Shiny bindings for %s +#' +#' Output and render functions for using %s within Shiny +#' applications and interactive Rmd documents. +#' +#' @param outputId output variable to read from +#' @param width,height Must be a valid CSS unit (like \code{'100\%%'}, +#' \code{'400px'}, \code{'auto'}) or a number, which will be coerced to a +#' string and have \code{'px'} appended. +#' @param expr An expression that generates a %s +#' @param env The environment in which to evaluate \code{expr}. +#' @param quoted Is \code{expr} a quoted expression (with \code{quote()})? This +#' is useful if you want to save an expression in a variable. +#' +#' @name %s-shiny +#' +#' @export +%sOutput <- function(outputId, width = '100%%', height = '400px'){ + htmlwidgets::shinyWidgetOutput(outputId, '%s', width, height, package = '%s') +} + +#' @rdname %s-shiny +#' @export +render%s <- function(expr, env = parent.frame(), quoted = FALSE) { + if (!quoted) { expr <- substitute(expr) } # force quoted + htmlwidgets::shinyRenderWidget(expr, %sOutput, env, quoted = TRUE) +} + +#' Called by HTMLWidgets to produce the widget's root element. +#' @rdname %s-shiny +%s_html <- function(id, style, class, ...) { + tagList( + reactR::html_dependency_react(), + reactR::html_dependency_reacttools(), + htmltools::tags$div(id = id, class = class) + ) +} diff --git a/inst/templates/widget_webpack.config.js.txt b/inst/templates/widget_webpack.config.js.txt new file mode 100644 index 0000000..78ceca0 --- /dev/null +++ b/inst/templates/widget_webpack.config.js.txt @@ -0,0 +1,29 @@ +var path = require('path'); + +module.exports = { + entry: path.join(__dirname, 'srcjs', '%s.js'), + output: { + path: path.join(__dirname, 'inst', 'htmlwidgets'), + filename: '%s.js' + }, + module: { + rules: [ + { + test: /\.js$/, + loader: 'babel-loader', + options: { + presets: ['@babel/preset-env', '@babel/preset-react'] + } + } + ] + }, + externals: { + 'react': 'window.React', + 'react-dom': 'window.ReactDOM', + 'reactR': 'window.reactR' + }, + stats: { + colors: true + }, + devtool: 'source-map' +}; diff --git a/man/scaffoldReactWidget.Rd b/man/scaffoldReactWidget.Rd new file mode 100644 index 0000000..4a68444 --- /dev/null +++ b/man/scaffoldReactWidget.Rd @@ -0,0 +1,28 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/scaffold.R +\name{scaffoldReactWidget} +\alias{scaffoldReactWidget} +\title{Create implementation scaffolding for a React.js-based HTML widget} +\usage{ +scaffoldReactWidget(name, npmPkg = NULL, edit = interactive()) +} +\arguments{ +\item{name}{Name of widget} + +\item{npmPkg}{Optional \href{https://npmjs.com/}{NPM} package upon which this +widget is based, as a two-element character vector of name and +\href{https://docs.npmjs.com/files/package.json#dependencies}{version +range}. If you specify this parameter the package will be added to the +\code{dependency} section of the generated \code{package.json}.} + +\item{edit}{Automatically open the widget's JavaScript source file after +creating the scaffolding.} +} +\description{ +Add the minimal code required to implement a React.js-based HTML widget to an +R package. +} +\note{ +This function must be executed from the root directory of the package + you wish to add the widget to. +} From 8b39baedccf77570ed56b0154f3926c5db122565 Mon Sep 17 00:00:00 2001 From: timelyportfolio Date: Sat, 5 Jan 2019 15:30:40 -0600 Subject: [PATCH 25/77] update travis-ci badge to react-R org --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 2322433..991540d 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ [![CRAN_Status_Badge](http://www.r-pkg.org/badges/version/reactR)](https://cran.r-project.org/package=reactR) -[![Travis-CI Build Status](https://travis-ci.org/timelyportfolio/reactR.svg?branch=master)](https://travis-ci.org/timelyportfolio/reactR) +[![Travis-CI Build Status](https://travis-ci.org/react-R/reactR.svg?branch=master)](https://travis-ci.org/react-R/reactR) # reactR From 184e728ae1e693744ea77dbc313d223a6906013e Mon Sep 17 00:00:00 2001 From: Alan Dipert Date: Mon, 7 Jan 2019 00:37:18 -0800 Subject: [PATCH 26/77] Fix minor bug in scaffold template --- inst/templates/widget_r.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/inst/templates/widget_r.txt b/inst/templates/widget_r.txt index f41e165..2ca8a37 100644 --- a/inst/templates/widget_r.txt +++ b/inst/templates/widget_r.txt @@ -8,7 +8,7 @@ %s <- function(message, width = NULL, height = NULL, elementId = NULL) { # describe a React component to send to the browser for rendering. - component <- reactR::reactData(reactR::component("div", message)) + component <- reactR::reactData(htmltools::tag("div", list(message))) # create widget htmlwidgets::createWidget( From 2b96174de1fd6a9b3d4f54bb8db3f99ce415f2b3 Mon Sep 17 00:00:00 2001 From: Alan Dipert Date: Mon, 7 Jan 2019 01:01:33 -0800 Subject: [PATCH 27/77] Properly handle text nodes and allow htmltools tags --- inst/www/react-tools/react-tools.js | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/inst/www/react-tools/react-tools.js b/inst/www/react-tools/react-tools.js index 4db4e97..9369277 100644 --- a/inst/www/react-tools/react-tools.js +++ b/inst/www/react-tools/react-tools.js @@ -11,9 +11,14 @@ window.reactR = (function () { && !components.hasOwnProperty(tag.name)) { throw new Error("Unknown component: " + tag.name); } - var args = [components[tag.name], tag.attribs]; + var elem = components.hasOwnProperty(tag.name) ? components[tag.name] : tag.name, + args = [elem, tag.attribs]; for (var i = 0; i < tag.children.length; i++) { - args.push(hydrate(components, tag.children[i])); + if (typeof tag.children[i] === 'string') { + args.push(tag.children[i]); + } else { + args.push(hydrate(components, tag.children[i])); + } } return React.createElement.apply(null, args); } From 8c26d12269ecfc63561485cc4143a0ec6ec96b7f Mon Sep 17 00:00:00 2001 From: Alan Dipert Date: Mon, 7 Jan 2019 01:22:11 -0800 Subject: [PATCH 28/77] Add example app.R during scaffolding --- R/scaffold.R | 23 +++++++++++++++++++---- inst/templates/widget_app.R.txt | 15 +++++++++++++++ 2 files changed, 34 insertions(+), 4 deletions(-) create mode 100644 inst/templates/widget_app.R.txt diff --git a/R/scaffold.R b/R/scaffold.R index c392251..9133e56 100644 --- a/R/scaffold.R +++ b/R/scaffold.R @@ -32,6 +32,9 @@ scaffoldReactWidget <- function(name, npmPkg = NULL, edit = interactive()){ addPackageJSON(toDepJSON(npmPkg)) addWebpackConfig(name) addWidgetJS(name, edit) + addExampleApp(name) + message("To install dependencies from npm run: yarn install") + message("To build JavaScript run: yarn run webpack --mode=development") } toDepJSON <- function(npmPkg) { @@ -48,12 +51,12 @@ slurp <- function(file) { ), collapse = "\n") } +capName = function(name){ + paste0(toupper(substring(name, 1, 1)), substring(name, 2)) +} + addWidgetConstructor <- function(name, package, edit){ tpl <- slurp('templates/widget_r.txt') - - capName = function(name){ - paste0(toupper(substring(name, 1, 1)), substring(name, 2)) - } if (!file.exists(file_ <- sprintf("R/%s.R", name))){ cat( sprintf(tpl, name, name, package, name, name, name, name, name, name, package, name, capName(name), name, name, name), @@ -93,6 +96,7 @@ addPackageJSON <- function(npmPkg) { tpl <- sprintf(slurp('templates/widget_package.json.txt'), npmPkg) if (!file.exists('package.json')) { cat(tpl, file = 'package.json') + message('Created package.json') } else { message("package.json already exists") } @@ -102,6 +106,7 @@ addWebpackConfig <- function(name) { tpl <- sprintf(slurp('templates/widget_webpack.config.js.txt'), name, name) if (!file.exists('webpack.config.js')) { cat(tpl, file = 'webpack.config.js') + message('Created webpack.config.js') } else { message("webpack.config.js already exists") } @@ -125,6 +130,16 @@ addWidgetJS <- function(name, edit){ if (edit) fileEdit(file_) } +addExampleApp <- function(name) { + tpl <- sprintf(slurp('templates/widget_app.R.txt'), name, name, capName(name), name) + if (!file.exists('app.R')) { + cat(tpl, file = 'app.R') + message('Created example app.R') + } else { + message("app.R already exists") + } +} + # invoke file.edit in a way that will bind to the RStudio editor # when running inside RStudio fileEdit <- function(file) { diff --git a/inst/templates/widget_app.R.txt b/inst/templates/widget_app.R.txt new file mode 100644 index 0000000..878bb83 --- /dev/null +++ b/inst/templates/widget_app.R.txt @@ -0,0 +1,15 @@ +library(shiny) +library(%s) + +ui <- fluidPage( + titlePanel("reactR HTMLWidget Example"), + %sOutput('widgetOutput') +) + +server <- function(input, output, session) { + output$widgetOutput <- render%s( + %s("Hello world!") + ) +} + +shinyApp(ui, server) From 0f4c9e64ef65a793e1fb2cbe076b1ed454e142fc Mon Sep 17 00:00:00 2001 From: Barret Schloerke Date: Mon, 7 Jan 2019 14:14:29 -0500 Subject: [PATCH 29/77] use `private: true` to avoid missing maintainer warning --- inst/templates/widget_package.json.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/inst/templates/widget_package.json.txt b/inst/templates/widget_package.json.txt index ed831e0..0c2a05a 100644 --- a/inst/templates/widget_package.json.txt +++ b/inst/templates/widget_package.json.txt @@ -1,4 +1,5 @@ { + "private": true, "dependencies": { %s }, From 305cbc7286bcbaec3e16ed3853b1699c5ac11b36 Mon Sep 17 00:00:00 2001 From: Alan Dipert Date: Mon, 7 Jan 2019 15:35:39 -0800 Subject: [PATCH 30/77] Make hydrate more robust and add first JS test --- inst/www/react-tools/react-tools.js | 6 +- js-tests/js-tests.jsx | 24 + karma.conf.js | 36 + package.json | 22 + yarn.lock | 4508 +++++++++++++++++++++++++++ 5 files changed, 4593 insertions(+), 3 deletions(-) create mode 100644 js-tests/js-tests.jsx create mode 100644 karma.conf.js create mode 100644 package.json create mode 100644 yarn.lock diff --git a/inst/www/react-tools/react-tools.js b/inst/www/react-tools/react-tools.js index 9369277..c9e887a 100644 --- a/inst/www/react-tools/react-tools.js +++ b/inst/www/react-tools/react-tools.js @@ -14,10 +14,10 @@ window.reactR = (function () { var elem = components.hasOwnProperty(tag.name) ? components[tag.name] : tag.name, args = [elem, tag.attribs]; for (var i = 0; i < tag.children.length; i++) { - if (typeof tag.children[i] === 'string') { - args.push(tag.children[i]); - } else { + if (typeof tag.children[i] === 'object') { args.push(hydrate(components, tag.children[i])); + } else { + args.push(tag.children[i]); } } return React.createElement.apply(null, args); diff --git a/js-tests/js-tests.jsx b/js-tests/js-tests.jsx new file mode 100644 index 0000000..496d0c8 --- /dev/null +++ b/js-tests/js-tests.jsx @@ -0,0 +1,24 @@ +import React from 'react'; + +describe('window.reactR', () => { + describe('#hydrate()', () => { + it('should throw an exception with an unknown component', () => { + assert.throws(() => { + reactR.hydrate( + { + Foo: class Foo extends React.Component { + render() { + return

Foo!

; + } + } + }, + { + name: "Bar", + attribs: {}, + children: {} + } + ) + }, Error, /Unknown component/); + }); + }); +}); diff --git a/karma.conf.js b/karma.conf.js new file mode 100644 index 0000000..9bf40d9 --- /dev/null +++ b/karma.conf.js @@ -0,0 +1,36 @@ +// TODO: Get source maps for failures working. +module.exports = function (config) { + config.set({ + frameworks: ['mocha', 'chai'], + files: ['inst/www/react-tools/react-tools.js', 'js-tests/js-tests.jsx'], + preprocessors: { + 'js-tests/*.js': ['webpack'], + 'js-tests/*.jsx': ['webpack', 'sourcemap'] + }, + webpack: { + module: { + rules: [ + { + test: [/\.js$/, /\.jsx$/], + loader: 'babel-loader', + options: { + presets: ['@babel/preset-env', '@babel/preset-react'] + } + } + ] + }, + devtool: 'source-map' + }, + webpackMiddleware: { + stats: 'errors-only' + }, + reporters: ['progress'], + port: 9876, // karma web server port + colors: true, + logLevel: config.LOG_INFO, + browsers: ['ChromeHeadless'], + autoWatch: false, + // singleRun: false, // Karma captures browsers, runs the tests and exits + concurrency: Infinity + }) +} \ No newline at end of file diff --git a/package.json b/package.json new file mode 100644 index 0000000..7aabed1 --- /dev/null +++ b/package.json @@ -0,0 +1,22 @@ +{ + "devDependencies": { + "chai": "^4.2.0", + "karma": "^3.1.4", + "karma-chai": "^0.1.0", + "karma-chrome-launcher": "^2.2.0", + "karma-mocha": "^1.3.0", + "karma-webpack": "^3.0.5", + "karma-sourcemap-loader": "^0.3.7", + "mocha": "^5.2.0", + "react": "^16.7.0", + "react-dom": "^16.7.0", + "webpack": "^3.0.0", + "@babel/core": "^7.2.0", + "babel-loader": "^8.0.4", + "@babel/preset-env": "^7.2.0", + "@babel/preset-react": "^7.0.0" + }, + "scripts": { + "test": "karma start --single-run --browsers ChromeHeadless karma.conf.js" + } +} \ No newline at end of file diff --git a/yarn.lock b/yarn.lock new file mode 100644 index 0000000..7a9566e --- /dev/null +++ b/yarn.lock @@ -0,0 +1,4508 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@babel/code-frame@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0.tgz#06e2ab19bdb535385559aabb5ba59729482800f8" + integrity sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA== + dependencies: + "@babel/highlight" "^7.0.0" + +"@babel/core@^7.2.0": + version "7.2.2" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.2.2.tgz#07adba6dde27bb5ad8d8672f15fde3e08184a687" + integrity sha512-59vB0RWt09cAct5EIe58+NzGP4TFSD3Bz//2/ELy3ZeTeKF6VTD1AXlH8BGGbCX0PuobZBsIzO7IAI9PH67eKw== + dependencies: + "@babel/code-frame" "^7.0.0" + "@babel/generator" "^7.2.2" + "@babel/helpers" "^7.2.0" + "@babel/parser" "^7.2.2" + "@babel/template" "^7.2.2" + "@babel/traverse" "^7.2.2" + "@babel/types" "^7.2.2" + convert-source-map "^1.1.0" + debug "^4.1.0" + json5 "^2.1.0" + lodash "^4.17.10" + resolve "^1.3.2" + semver "^5.4.1" + source-map "^0.5.0" + +"@babel/generator@^7.2.2": + version "7.2.2" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.2.2.tgz#18c816c70962640eab42fe8cae5f3947a5c65ccc" + integrity sha512-I4o675J/iS8k+P38dvJ3IBGqObLXyQLTxtrR4u9cSUJOURvafeEWb/pFMOTwtNrmq73mJzyF6ueTbO1BtN0Zeg== + dependencies: + "@babel/types" "^7.2.2" + jsesc "^2.5.1" + lodash "^4.17.10" + source-map "^0.5.0" + trim-right "^1.0.1" + +"@babel/helper-annotate-as-pure@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.0.0.tgz#323d39dd0b50e10c7c06ca7d7638e6864d8c5c32" + integrity sha512-3UYcJUj9kvSLbLbUIfQTqzcy5VX7GRZ/CCDrnOaZorFFM01aXp1+GJwuFGV4NDDoAS+mOUyHcO6UD/RfqOks3Q== + dependencies: + "@babel/types" "^7.0.0" + +"@babel/helper-builder-binary-assignment-operator-visitor@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.1.0.tgz#6b69628dfe4087798e0c4ed98e3d4a6b2fbd2f5f" + integrity sha512-qNSR4jrmJ8M1VMM9tibvyRAHXQs2PmaksQF7c1CGJNipfe3D8p+wgNwgso/P2A2r2mdgBWAXljNWR0QRZAMW8w== + dependencies: + "@babel/helper-explode-assignable-expression" "^7.1.0" + "@babel/types" "^7.0.0" + +"@babel/helper-builder-react-jsx@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.0.0.tgz#fa154cb53eb918cf2a9a7ce928e29eb649c5acdb" + integrity sha512-ebJ2JM6NAKW0fQEqN8hOLxK84RbRz9OkUhGS/Xd5u56ejMfVbayJ4+LykERZCOUM6faa6Fp3SZNX3fcT16MKHw== + dependencies: + "@babel/types" "^7.0.0" + esutils "^2.0.0" + +"@babel/helper-call-delegate@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/helper-call-delegate/-/helper-call-delegate-7.1.0.tgz#6a957f105f37755e8645343d3038a22e1449cc4a" + integrity sha512-YEtYZrw3GUK6emQHKthltKNZwszBcHK58Ygcis+gVUrF4/FmTVr5CCqQNSfmvg2y+YDEANyYoaLz/SHsnusCwQ== + dependencies: + "@babel/helper-hoist-variables" "^7.0.0" + "@babel/traverse" "^7.1.0" + "@babel/types" "^7.0.0" + +"@babel/helper-define-map@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.1.0.tgz#3b74caec329b3c80c116290887c0dd9ae468c20c" + integrity sha512-yPPcW8dc3gZLN+U1mhYV91QU3n5uTbx7DUdf8NnPbjS0RMwBuHi9Xt2MUgppmNz7CJxTBWsGczTiEp1CSOTPRg== + dependencies: + "@babel/helper-function-name" "^7.1.0" + "@babel/types" "^7.0.0" + lodash "^4.17.10" + +"@babel/helper-explode-assignable-expression@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.1.0.tgz#537fa13f6f1674df745b0c00ec8fe4e99681c8f6" + integrity sha512-NRQpfHrJ1msCHtKjbzs9YcMmJZOg6mQMmGRB+hbamEdG5PNpaSm95275VD92DvJKuyl0s2sFiDmMZ+EnnvufqA== + dependencies: + "@babel/traverse" "^7.1.0" + "@babel/types" "^7.0.0" + +"@babel/helper-function-name@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz#a0ceb01685f73355d4360c1247f582bfafc8ff53" + integrity sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw== + dependencies: + "@babel/helper-get-function-arity" "^7.0.0" + "@babel/template" "^7.1.0" + "@babel/types" "^7.0.0" + +"@babel/helper-get-function-arity@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz#83572d4320e2a4657263734113c42868b64e49c3" + integrity sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ== + dependencies: + "@babel/types" "^7.0.0" + +"@babel/helper-hoist-variables@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.0.0.tgz#46adc4c5e758645ae7a45deb92bab0918c23bb88" + integrity sha512-Ggv5sldXUeSKsuzLkddtyhyHe2YantsxWKNi7A+7LeD12ExRDWTRk29JCXpaHPAbMaIPZSil7n+lq78WY2VY7w== + dependencies: + "@babel/types" "^7.0.0" + +"@babel/helper-member-expression-to-functions@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.0.0.tgz#8cd14b0a0df7ff00f009e7d7a436945f47c7a16f" + integrity sha512-avo+lm/QmZlv27Zsi0xEor2fKcqWG56D5ae9dzklpIaY7cQMK5N8VSpaNVPPagiqmy7LrEjK1IWdGMOqPu5csg== + dependencies: + "@babel/types" "^7.0.0" + +"@babel/helper-module-imports@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.0.0.tgz#96081b7111e486da4d2cd971ad1a4fe216cc2e3d" + integrity sha512-aP/hlLq01DWNEiDg4Jn23i+CXxW/owM4WpDLFUbpjxe4NS3BhLVZQ5i7E0ZrxuQ/vwekIeciyamgB1UIYxxM6A== + dependencies: + "@babel/types" "^7.0.0" + +"@babel/helper-module-transforms@^7.1.0": + version "7.2.2" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.2.2.tgz#ab2f8e8d231409f8370c883d20c335190284b963" + integrity sha512-YRD7I6Wsv+IHuTPkAmAS4HhY0dkPobgLftHp0cRGZSdrRvmZY8rFvae/GVu3bD00qscuvK3WPHB3YdNpBXUqrA== + dependencies: + "@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" + +"@babel/helper-optimise-call-expression@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.0.0.tgz#a2920c5702b073c15de51106200aa8cad20497d5" + integrity sha512-u8nd9NQePYNQV8iPWu/pLLYBqZBa4ZaY1YWRFMuxrid94wKI1QNt67NEZ7GAe5Kc/0LLScbim05xZFWkAdrj9g== + dependencies: + "@babel/types" "^7.0.0" + +"@babel/helper-plugin-utils@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz#bbb3fbee98661c569034237cc03967ba99b4f250" + integrity sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA== + +"@babel/helper-regex@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.0.0.tgz#2c1718923b57f9bbe64705ffe5640ac64d9bdb27" + integrity sha512-TR0/N0NDCcUIUEbqV6dCO+LptmmSQFQ7q70lfcEB4URsjD0E1HzicrwUH+ap6BAQ2jhCX9Q4UqZy4wilujWlkg== + dependencies: + lodash "^4.17.10" + +"@babel/helper-remap-async-to-generator@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.1.0.tgz#361d80821b6f38da75bd3f0785ece20a88c5fe7f" + integrity sha512-3fOK0L+Fdlg8S5al8u/hWE6vhufGSn0bN09xm2LXMy//REAF8kDCrYoOBKYmA8m5Nom+sV9LyLCwrFynA8/slg== + dependencies: + "@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-replace-supers@^7.1.0": + version "7.2.3" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.2.3.tgz#19970020cf22677d62b3a689561dbd9644d8c5e5" + integrity sha512-GyieIznGUfPXPWu0yLS6U55Mz67AZD9cUk0BfirOWlPrXlBcan9Gz+vHGz+cPfuoweZSnPzPIm67VtQM0OWZbA== + dependencies: + "@babel/helper-member-expression-to-functions" "^7.0.0" + "@babel/helper-optimise-call-expression" "^7.0.0" + "@babel/traverse" "^7.2.3" + "@babel/types" "^7.0.0" + +"@babel/helper-simple-access@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.1.0.tgz#65eeb954c8c245beaa4e859da6188f39d71e585c" + integrity sha512-Vk+78hNjRbsiu49zAPALxTb+JUQCz1aolpd8osOF16BGnLtseD21nbHgLPGUwrXEurZgiCOUmvs3ExTu4F5x6w== + dependencies: + "@babel/template" "^7.1.0" + "@babel/types" "^7.0.0" + +"@babel/helper-split-export-declaration@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0.tgz#3aae285c0311c2ab095d997b8c9a94cad547d813" + integrity sha512-MXkOJqva62dfC0w85mEf/LucPPS/1+04nmmRMPEBUB++hiiThQ2zPtX/mEWQ3mtzCEjIJvPY8nuwxXtQeQwUag== + dependencies: + "@babel/types" "^7.0.0" + +"@babel/helper-wrap-function@^7.1.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.2.0.tgz#c4e0012445769e2815b55296ead43a958549f6fa" + integrity sha512-o9fP1BZLLSrYlxYEYyl2aS+Flun5gtjTIG8iln+XuEzQTs0PLagAGSXUcqruJwD5fM48jzIEggCKpIfWTcR7pQ== + dependencies: + "@babel/helper-function-name" "^7.1.0" + "@babel/template" "^7.1.0" + "@babel/traverse" "^7.1.0" + "@babel/types" "^7.2.0" + +"@babel/helpers@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.2.0.tgz#8335f3140f3144270dc63c4732a4f8b0a50b7a21" + integrity sha512-Fr07N+ea0dMcMN8nFpuK6dUIT7/ivt9yKQdEEnjVS83tG2pHwPi03gYmk/tyuwONnZ+sY+GFFPlWGgCtW1hF9A== + dependencies: + "@babel/template" "^7.1.2" + "@babel/traverse" "^7.1.5" + "@babel/types" "^7.2.0" + +"@babel/highlight@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.0.0.tgz#f710c38c8d458e6dd9a201afb637fcb781ce99e4" + integrity sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw== + dependencies: + chalk "^2.0.0" + esutils "^2.0.2" + js-tokens "^4.0.0" + +"@babel/parser@^7.2.2", "@babel/parser@^7.2.3": + version "7.2.3" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.2.3.tgz#32f5df65744b70888d17872ec106b02434ba1489" + integrity sha512-0LyEcVlfCoFmci8mXx8A5oIkpkOgyo8dRHtxBnK9RRBwxO2+JZPNsqtVEZQ7mJFPxnXF9lfmU24mHOPI0qnlkA== + +"@babel/plugin-proposal-async-generator-functions@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.2.0.tgz#b289b306669dce4ad20b0252889a15768c9d417e" + integrity sha512-+Dfo/SCQqrwx48ptLVGLdE39YtWRuKc/Y9I5Fy0P1DDBB9lsAHpjcEJQt+4IifuSOSTLBKJObJqMvaO1pIE8LQ== + dependencies: + "@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-json-strings@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.2.0.tgz#568ecc446c6148ae6b267f02551130891e29f317" + integrity sha512-MAFV1CA/YVmYwZG0fBQyXhmj0BHCB5egZHCKWIFVv/XCxAeVGIHfos3SwDck4LvCllENIAg7xMKOG5kH0dzyUg== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-json-strings" "^7.2.0" + +"@babel/plugin-proposal-object-rest-spread@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.2.0.tgz#88f5fec3e7ad019014c97f7ee3c992f0adbf7fb8" + integrity sha512-1L5mWLSvR76XYUQJXkd/EEQgjq8HHRP6lQuZTTg0VA4tTGPpGemmCdAfQIz1rzEuWAm+ecP8PyyEm30jC1eQCg== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-object-rest-spread" "^7.2.0" + +"@babel/plugin-proposal-optional-catch-binding@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.2.0.tgz#135d81edb68a081e55e56ec48541ece8065c38f5" + integrity sha512-mgYj3jCcxug6KUcX4OBoOJz3CMrwRfQELPQ5560F70YQUBZB7uac9fqaWamKR1iWUzGiK2t0ygzjTScZnVz75g== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-optional-catch-binding" "^7.2.0" + +"@babel/plugin-proposal-unicode-property-regex@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.2.0.tgz#abe7281fe46c95ddc143a65e5358647792039520" + integrity sha512-LvRVYb7kikuOtIoUeWTkOxQEV1kYvL5B6U3iWEGCzPNRus1MzJweFqORTj+0jkxozkTSYNJozPOddxmqdqsRpw== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-regex" "^7.0.0" + regexpu-core "^4.2.0" + +"@babel/plugin-syntax-async-generators@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.2.0.tgz#69e1f0db34c6f5a0cf7e2b3323bf159a76c8cb7f" + integrity sha512-1ZrIRBv2t0GSlcwVoQ6VgSLpLgiN/FVQUzt9znxo7v2Ov4jJrs8RY8tv0wvDmFN3qIdMKWrmMMW6yZ0G19MfGg== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-syntax-json-strings@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.2.0.tgz#72bd13f6ffe1d25938129d2a186b11fd62951470" + integrity sha512-5UGYnMSLRE1dqqZwug+1LISpA403HzlSfsg6P9VXU6TBjcSHeNlw4DxDx7LgpF+iKZoOG/+uzqoRHTdcUpiZNg== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-syntax-jsx@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.2.0.tgz#0b85a3b4bc7cdf4cc4b8bf236335b907ca22e7c7" + integrity sha512-VyN4QANJkRW6lDBmENzRszvZf3/4AXaj9YR7GwrWeeN9tEBPuXbmDYVU9bYBN0D70zCWVwUy0HWq2553VCb6Hw== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-syntax-object-rest-spread@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.2.0.tgz#3b7a3e733510c57e820b9142a6579ac8b0dfad2e" + integrity sha512-t0JKGgqk2We+9may3t0xDdmneaXmyxq0xieYcKHxIsrJO64n1OiMWNUtc5gQK1PA0NpdCRrtZp4z+IUaKugrSA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-syntax-optional-catch-binding@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.2.0.tgz#a94013d6eda8908dfe6a477e7f9eda85656ecf5c" + integrity sha512-bDe4xKNhb0LI7IvZHiA13kff0KEfaGX/Hv4lMA9+7TEc63hMNvfKo6ZFpXhKuEp+II/q35Gc4NoMeDZyaUbj9w== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-arrow-functions@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.2.0.tgz#9aeafbe4d6ffc6563bf8f8372091628f00779550" + integrity sha512-ER77Cax1+8/8jCB9fo4Ud161OZzWN5qawi4GusDuRLcDbDG+bIGYY20zb2dfAFdTRGzrfq2xZPvF0R64EHnimg== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-async-to-generator@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.2.0.tgz#68b8a438663e88519e65b776f8938f3445b1a2ff" + integrity sha512-CEHzg4g5UraReozI9D4fblBYABs7IM6UerAVG7EJVrTLC5keh00aEuLUT+O40+mJCEzaXkYfTCUKIyeDfMOFFQ== + dependencies: + "@babel/helper-module-imports" "^7.0.0" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-remap-async-to-generator" "^7.1.0" + +"@babel/plugin-transform-block-scoped-functions@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.2.0.tgz#5d3cc11e8d5ddd752aa64c9148d0db6cb79fd190" + integrity sha512-ntQPR6q1/NKuphly49+QiQiTN0O63uOwjdD6dhIjSWBI5xlrbUFh720TIpzBhpnrLfv2tNH/BXvLIab1+BAI0w== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-block-scoping@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.2.0.tgz#f17c49d91eedbcdf5dd50597d16f5f2f770132d4" + integrity sha512-vDTgf19ZEV6mx35yiPJe4fS02mPQUUcBNwWQSZFXSzTSbsJFQvHt7DqyS3LK8oOWALFOsJ+8bbqBgkirZteD5Q== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + lodash "^4.17.10" + +"@babel/plugin-transform-classes@^7.2.0": + version "7.2.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.2.2.tgz#6c90542f210ee975aa2aa8c8b5af7fa73a126953" + integrity sha512-gEZvgTy1VtcDOaQty1l10T3jQmJKlNVxLDCs+3rCVPr6nMkODLELxViq5X9l+rfxbie3XrfrMCYYY6eX3aOcOQ== + dependencies: + "@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.1.0" + "@babel/helper-split-export-declaration" "^7.0.0" + globals "^11.1.0" + +"@babel/plugin-transform-computed-properties@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.2.0.tgz#83a7df6a658865b1c8f641d510c6f3af220216da" + integrity sha512-kP/drqTxY6Xt3NNpKiMomfgkNn4o7+vKxK2DDKcBG9sHj51vHqMBGy8wbDS/J4lMxnqs153/T3+DmCEAkC5cpA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-destructuring@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.2.0.tgz#e75269b4b7889ec3a332cd0d0c8cff8fed0dc6f3" + integrity sha512-coVO2Ayv7g0qdDbrNiadE4bU7lvCd9H539m2gMknyVjjMdwF/iCOM7R+E8PkntoqLkltO0rk+3axhpp/0v68VQ== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-dotall-regex@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.2.0.tgz#f0aabb93d120a8ac61e925ea0ba440812dbe0e49" + integrity sha512-sKxnyHfizweTgKZf7XsXu/CNupKhzijptfTM+bozonIuyVrLWVUvYjE2bhuSBML8VQeMxq4Mm63Q9qvcvUcciQ== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-regex" "^7.0.0" + regexpu-core "^4.1.3" + +"@babel/plugin-transform-duplicate-keys@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.2.0.tgz#d952c4930f312a4dbfff18f0b2914e60c35530b3" + integrity sha512-q+yuxW4DsTjNceUiTzK0L+AfQ0zD9rWaTLiUqHA8p0gxx7lu1EylenfzjeIWNkPy6e/0VG/Wjw9uf9LueQwLOw== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-exponentiation-operator@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.2.0.tgz#a63868289e5b4007f7054d46491af51435766008" + integrity sha512-umh4hR6N7mu4Elq9GG8TOu9M0bakvlsREEC+ialrQN6ABS4oDQ69qJv1VtR3uxlKMCQMCvzk7vr17RHKcjx68A== + dependencies: + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.1.0" + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-for-of@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.2.0.tgz#ab7468befa80f764bb03d3cb5eef8cc998e1cad9" + integrity sha512-Kz7Mt0SsV2tQk6jG5bBv5phVbkd0gd27SgYD4hH1aLMJRchM0dzHaXvrWhVZ+WxAlDoAKZ7Uy3jVTW2mKXQ1WQ== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-function-name@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.2.0.tgz#f7930362829ff99a3174c39f0afcc024ef59731a" + integrity sha512-kWgksow9lHdvBC2Z4mxTsvc7YdY7w/V6B2vy9cTIPtLEE9NhwoWivaxdNM/S37elu5bqlLP/qOY906LukO9lkQ== + dependencies: + "@babel/helper-function-name" "^7.1.0" + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-literals@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.2.0.tgz#690353e81f9267dad4fd8cfd77eafa86aba53ea1" + integrity sha512-2ThDhm4lI4oV7fVQ6pNNK+sx+c/GM5/SaML0w/r4ZB7sAneD/piDJtwdKlNckXeyGK7wlwg2E2w33C/Hh+VFCg== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-modules-amd@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.2.0.tgz#82a9bce45b95441f617a24011dc89d12da7f4ee6" + integrity sha512-mK2A8ucqz1qhrdqjS9VMIDfIvvT2thrEsIQzbaTdc5QFzhDjQv2CkJJ5f6BXIkgbmaoax3zBr2RyvV/8zeoUZw== + dependencies: + "@babel/helper-module-transforms" "^7.1.0" + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-modules-commonjs@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.2.0.tgz#c4f1933f5991d5145e9cfad1dfd848ea1727f404" + integrity sha512-V6y0uaUQrQPXUrmj+hgnks8va2L0zcZymeU7TtWEgdRLNkceafKXEduv7QzgQAE4lT+suwooG9dC7LFhdRAbVQ== + dependencies: + "@babel/helper-module-transforms" "^7.1.0" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-simple-access" "^7.1.0" + +"@babel/plugin-transform-modules-systemjs@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.2.0.tgz#912bfe9e5ff982924c81d0937c92d24994bb9068" + integrity sha512-aYJwpAhoK9a+1+O625WIjvMY11wkB/ok0WClVwmeo3mCjcNRjt+/8gHWrB5i+00mUju0gWsBkQnPpdvQ7PImmQ== + dependencies: + "@babel/helper-hoist-variables" "^7.0.0" + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-modules-umd@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.2.0.tgz#7678ce75169f0877b8eb2235538c074268dd01ae" + integrity sha512-BV3bw6MyUH1iIsGhXlOK6sXhmSarZjtJ/vMiD9dNmpY8QXFFQTj+6v92pcfy1iqa8DeAfJFwoxcrS/TUZda6sw== + dependencies: + "@babel/helper-module-transforms" "^7.1.0" + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-new-target@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.0.0.tgz#ae8fbd89517fa7892d20e6564e641e8770c3aa4a" + integrity sha512-yin069FYjah+LbqfGeTfzIBODex/e++Yfa0rH0fpfam9uTbuEeEOx5GLGr210ggOV77mVRNoeqSYqeuaqSzVSw== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-object-super@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.2.0.tgz#b35d4c10f56bab5d650047dad0f1d8e8814b6598" + integrity sha512-VMyhPYZISFZAqAPVkiYb7dUe2AsVi2/wCT5+wZdsNO31FojQJa9ns40hzZ6U9f50Jlq4w6qwzdBB2uwqZ00ebg== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-replace-supers" "^7.1.0" + +"@babel/plugin-transform-parameters@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.2.0.tgz#0d5ad15dc805e2ea866df4dd6682bfe76d1408c2" + integrity sha512-kB9+hhUidIgUoBQ0MsxMewhzr8i60nMa2KgeJKQWYrqQpqcBYtnpR+JgkadZVZoaEZ/eKu9mclFaVwhRpLNSzA== + dependencies: + "@babel/helper-call-delegate" "^7.1.0" + "@babel/helper-get-function-arity" "^7.0.0" + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-react-display-name@^7.0.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.2.0.tgz#ebfaed87834ce8dc4279609a4f0c324c156e3eb0" + integrity sha512-Htf/tPa5haZvRMiNSQSFifK12gtr/8vwfr+A9y69uF0QcU77AVu4K7MiHEkTxF7lQoHOL0F9ErqgfNEAKgXj7A== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-react-jsx-self@^7.0.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.2.0.tgz#461e21ad9478f1031dd5e276108d027f1b5240ba" + integrity sha512-v6S5L/myicZEy+jr6ielB0OR8h+EH/1QFx/YJ7c7Ua+7lqsjj/vW6fD5FR9hB/6y7mGbfT4vAURn3xqBxsUcdg== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-jsx" "^7.2.0" + +"@babel/plugin-transform-react-jsx-source@^7.0.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.2.0.tgz#20c8c60f0140f5dd3cd63418d452801cf3f7180f" + integrity sha512-A32OkKTp4i5U6aE88GwwcuV4HAprUgHcTq0sSafLxjr6AW0QahrCRCjxogkbbcdtpbXkuTOlgpjophCxb6sh5g== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-jsx" "^7.2.0" + +"@babel/plugin-transform-react-jsx@^7.0.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.2.0.tgz#ca36b6561c4d3b45524f8efb6f0fbc9a0d1d622f" + integrity sha512-h/fZRel5wAfCqcKgq3OhbmYaReo7KkoJBpt8XnvpS7wqaNMqtw5xhxutzcm35iMUWucfAdT/nvGTsWln0JTg2Q== + dependencies: + "@babel/helper-builder-react-jsx" "^7.0.0" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-jsx" "^7.2.0" + +"@babel/plugin-transform-regenerator@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.0.0.tgz#5b41686b4ed40bef874d7ed6a84bdd849c13e0c1" + integrity sha512-sj2qzsEx8KDVv1QuJc/dEfilkg3RRPvPYx/VnKLtItVQRWt1Wqf5eVCOLZm29CiGFfYYsA3VPjfizTCV0S0Dlw== + dependencies: + regenerator-transform "^0.13.3" + +"@babel/plugin-transform-shorthand-properties@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.2.0.tgz#6333aee2f8d6ee7e28615457298934a3b46198f0" + integrity sha512-QP4eUM83ha9zmYtpbnyjTLAGKQritA5XW/iG9cjtuOI8s1RuL/3V6a3DeSHfKutJQ+ayUfeZJPcnCYEQzaPQqg== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-spread@^7.2.0": + version "7.2.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.2.2.tgz#3103a9abe22f742b6d406ecd3cd49b774919b406" + integrity sha512-KWfky/58vubwtS0hLqEnrWJjsMGaOeSBn90Ezn5Jeg9Z8KKHmELbP1yGylMlm5N6TPKeY9A2+UaSYLdxahg01w== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-sticky-regex@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.2.0.tgz#a1e454b5995560a9c1e0d537dfc15061fd2687e1" + integrity sha512-KKYCoGaRAf+ckH8gEL3JHUaFVyNHKe3ASNsZ+AlktgHevvxGigoIttrEJb8iKN03Q7Eazlv1s6cx2B2cQ3Jabw== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-regex" "^7.0.0" + +"@babel/plugin-transform-template-literals@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.2.0.tgz#d87ed01b8eaac7a92473f608c97c089de2ba1e5b" + integrity sha512-FkPix00J9A/XWXv4VoKJBMeSkyY9x/TqIh76wzcdfl57RJJcf8CehQ08uwfhCDNtRQYtHQKBTwKZDEyjE13Lwg== + dependencies: + "@babel/helper-annotate-as-pure" "^7.0.0" + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-typeof-symbol@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.2.0.tgz#117d2bcec2fbf64b4b59d1f9819894682d29f2b2" + integrity sha512-2LNhETWYxiYysBtrBTqL8+La0jIoQQnIScUJc74OYvUGRmkskNY4EzLCnjHBzdmb38wqtTaixpo1NctEcvMDZw== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-unicode-regex@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.2.0.tgz#4eb8db16f972f8abb5062c161b8b115546ade08b" + integrity sha512-m48Y0lMhrbXEJnVUaYly29jRXbQ3ksxPrS1Tg8t+MHqzXhtBYAvI51euOBaoAlZLPHsieY9XPVMf80a5x0cPcA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-regex" "^7.0.0" + regexpu-core "^4.1.3" + +"@babel/preset-env@^7.2.0": + version "7.2.3" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.2.3.tgz#948c8df4d4609c99c7e0130169f052ea6a7a8933" + integrity sha512-AuHzW7a9rbv5WXmvGaPX7wADxFkZIqKlbBh1dmZUQp4iwiPpkE/Qnrji6SC4UQCQzvWY/cpHET29eUhXS9cLPw== + dependencies: + "@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.2.0" + "@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-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.2.0" + "@babel/plugin-transform-block-scoped-functions" "^7.2.0" + "@babel/plugin-transform-block-scoping" "^7.2.0" + "@babel/plugin-transform-classes" "^7.2.0" + "@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.2.0" + "@babel/plugin-transform-modules-umd" "^7.2.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.0.0" + "@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" + +"@babel/preset-react@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.0.0.tgz#e86b4b3d99433c7b3e9e91747e2653958bc6b3c0" + integrity sha512-oayxyPS4Zj+hF6Et11BwuBkmpgT/zMxyuZgFrMeZID6Hdh3dGlk4sHCAhdBCpuCKW2ppBfl2uCCetlrUIJRY3w== + dependencies: + "@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/template@^7.1.0", "@babel/template@^7.1.2", "@babel/template@^7.2.2": + version "7.2.2" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.2.2.tgz#005b3fdf0ed96e88041330379e0da9a708eb2907" + integrity sha512-zRL0IMM02AUDwghf5LMSSDEz7sBCO2YnNmpg3uWTZj/v1rcG2BmQUvaGU8GhU8BvfMh1k2KIAYZ7Ji9KXPUg7g== + dependencies: + "@babel/code-frame" "^7.0.0" + "@babel/parser" "^7.2.2" + "@babel/types" "^7.2.2" + +"@babel/traverse@^7.1.0", "@babel/traverse@^7.1.5", "@babel/traverse@^7.2.2", "@babel/traverse@^7.2.3": + version "7.2.3" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.2.3.tgz#7ff50cefa9c7c0bd2d81231fdac122f3957748d8" + integrity sha512-Z31oUD/fJvEWVR0lNZtfgvVt512ForCTNKYcJBGbPb1QZfve4WGH8Wsy7+Mev33/45fhP/hwQtvgusNdcCMgSw== + dependencies: + "@babel/code-frame" "^7.0.0" + "@babel/generator" "^7.2.2" + "@babel/helper-function-name" "^7.1.0" + "@babel/helper-split-export-declaration" "^7.0.0" + "@babel/parser" "^7.2.3" + "@babel/types" "^7.2.2" + debug "^4.1.0" + globals "^11.1.0" + lodash "^4.17.10" + +"@babel/types@^7.0.0", "@babel/types@^7.2.0", "@babel/types@^7.2.2": + version "7.2.2" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.2.2.tgz#44e10fc24e33af524488b716cdaee5360ea8ed1e" + integrity sha512-fKCuD6UFUMkR541eDWL+2ih/xFZBXPOg/7EQFeTluMDebfqR4jrpaCjLhkWlQS4hT6nRa2PMEgXKbRB5/H2fpg== + dependencies: + esutils "^2.0.2" + lodash "^4.17.10" + to-fast-properties "^2.0.0" + +abbrev@1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" + integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== + +accepts@~1.3.4: + version "1.3.5" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.5.tgz#eb777df6011723a3b14e8a72c0805c8e86746bd2" + integrity sha1-63d99gEXI6OxTopywIBcjoZ0a9I= + dependencies: + mime-types "~2.1.18" + negotiator "0.6.1" + +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" + integrity sha1-x1K9IQvvZ5UBtsbLf8hPj0cVjMQ= + 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" + integrity sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c= + +acorn@^5.0.0: + version "5.7.3" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.3.tgz#67aa231bf8812974b85235a96771eb6bd07ea279" + integrity sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw== + +after@0.8.2: + version "0.8.2" + resolved "https://registry.yarnpkg.com/after/-/after-0.8.2.tgz#fedb394f9f0e02aa9768e702bda23b505fae7e1f" + integrity sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8= + +ajv-keywords@^3.1.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.2.0.tgz#e86b819c602cf8821ad637413698f1dec021847a" + integrity sha1-6GuBnGAs+IIa1jdBNpjx3sAhhHo= + +ajv@^6.1.0: + version "6.6.2" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.6.2.tgz#caceccf474bf3fc3ce3b147443711a24063cc30d" + integrity sha512-FBHEW6Jf5TB9MGBgUUA9XHkTbjXYfAUjY43ACMfmdMRHniyoMHjHjzD50OK8LGDWQwp4rWEsIq5kEqq7rvIM1g== + dependencies: + fast-deep-equal "^2.0.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +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" + integrity sha1-DNkKVhCT810KmSVsIrcGlDP60Rc= + 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" + integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= + +ansi-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" + integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= + +ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +anymatch@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" + integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw== + dependencies: + micromatch "^3.1.4" + normalize-path "^2.1.1" + +aproba@^1.0.3: + version "1.2.0" + resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" + integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== + +are-we-there-yet@~1.1.2: + version "1.1.5" + resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21" + integrity sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w== + dependencies: + delegates "^1.0.0" + readable-stream "^2.0.6" + +arr-diff@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" + integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= + +arr-flatten@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" + integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== + +arr-union@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" + integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= + +array-find-index@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" + integrity sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E= + +array-slice@^0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/array-slice/-/array-slice-0.2.3.tgz#dd3cfb80ed7973a75117cdac69b0b99ec86186f5" + integrity sha1-3Tz7gO15c6dRF82sabC5nshhhvU= + +array-unique@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" + integrity sha1-odl8yvy8JiXMcPrc6zalDFiwGlM= + +array-unique@^0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" + integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= + +arraybuffer.slice@~0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz#3bbc4275dd584cc1b10809b89d4e8b63a69e7675" + integrity sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog== + +asn1.js@^4.0.0: + version "4.10.1" + resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.10.1.tgz#b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0" + integrity sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw== + dependencies: + bn.js "^4.0.0" + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + +assert@^1.1.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/assert/-/assert-1.4.1.tgz#99912d591836b5a6f5b345c0f07eefc08fc65d91" + integrity sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE= + dependencies: + util "0.10.3" + +assertion-error@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" + integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw== + +assign-symbols@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" + integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= + +async-each@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" + integrity sha1-GdOGodntxufByF04iu28xW0zYC0= + +async-limiter@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.0.tgz#78faed8c3d074ab81f22b4e985d79e8738f720f8" + integrity sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg== + +async@^2.0.0, async@^2.1.2: + version "2.6.1" + resolved "https://registry.yarnpkg.com/async/-/async-2.6.1.tgz#b245a23ca71930044ec53fa46aa00a3e87c6a610" + integrity sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ== + dependencies: + lodash "^4.17.10" + +atob@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" + integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== + +babel-loader@^8.0.4: + version "8.0.5" + resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.0.5.tgz#225322d7509c2157655840bba52e46b6c2f2fe33" + integrity sha512-NTnHnVRd2JnRqPC0vW+iOQWU5pchDbYXsG2E6DMXEpMfUcQKclF9gmf3G3ZMhzG7IG9ji4coL0cm+FxeWxDpnw== + dependencies: + find-cache-dir "^2.0.0" + loader-utils "^1.0.2" + mkdirp "^0.5.1" + util.promisify "^1.0.0" + +babel-runtime@^6.0.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" + integrity sha1-llxwWGaOgrVde/4E/yM3vItWR/4= + dependencies: + core-js "^2.4.0" + regenerator-runtime "^0.11.0" + +backo2@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947" + integrity sha1-MasayLEpNjRj41s+u2n038+6eUc= + +balanced-match@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" + integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= + +base64-arraybuffer@0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz#73926771923b5a19747ad666aa5cd4bf9c6e9ce8" + integrity sha1-c5JncZI7Whl0etZmqlzUv5xunOg= + +base64-js@^1.0.2: + version "1.3.0" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.0.tgz#cab1e6118f051095e58b5281aea8c1cd22bfc0e3" + integrity sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw== + +base64id@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/base64id/-/base64id-1.0.0.tgz#47688cb99bb6804f0e06d3e763b1c32e57d8e6b6" + integrity sha1-R2iMuZu2gE8OBtPnY7HDLlfY5rY= + +base@^0.11.1: + version "0.11.2" + resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" + integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== + dependencies: + 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" + +better-assert@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/better-assert/-/better-assert-1.0.2.tgz#40866b9e1b9e0b55b481894311e68faffaebc522" + integrity sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI= + dependencies: + callsite "1.0.0" + +big.js@^5.2.2: + version "5.2.2" + resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" + integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== + +binary-extensions@^1.0.0: + version "1.12.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.12.0.tgz#c2d780f53d45bba8317a8902d4ceeaf3a6385b14" + integrity sha512-DYWGk01lDcxeS/K9IHPGWfT8PsJmbXRtRd2Sx72Tnb8pcYZQFF1oSDb8hJtS1vhp212q1Rzi5dUf9+nq0o9UIg== + +blob@0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/blob/-/blob-0.0.5.tgz#d680eeef25f8cd91ad533f5b01eed48e64caf683" + integrity sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig== + +bluebird@^3.3.0: + version "3.5.3" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.3.tgz#7d01c6f9616c9a51ab0f8c549a79dfe6ec33efa7" + integrity sha512-/qKPUQlaW1OyR51WeCPBvRnAlnZFUJkCSG5HzGnuIqhgyJtF+T94lFnn33eiazjRm2LAHVy2guNnaq48X9SJuw== + +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" + integrity sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA== + +body-parser@^1.16.1: + version "1.18.3" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.18.3.tgz#5b292198ffdd553b3a0f20ded0592b956955c8b4" + integrity sha1-WykhmP/dVTs6DyDe0FkrlWlVyLQ= + dependencies: + bytes "3.0.0" + content-type "~1.0.4" + debug "2.6.9" + depd "~1.1.2" + http-errors "~1.6.3" + iconv-lite "0.4.23" + on-finished "~2.3.0" + qs "6.5.2" + raw-body "2.3.3" + type-is "~1.6.16" + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +braces@^0.1.2: + version "0.1.5" + resolved "https://registry.yarnpkg.com/braces/-/braces-0.1.5.tgz#c085711085291d8b75fdd74eab0f8597280711e6" + integrity sha1-wIVxEIUpHYt1/ddOqw+FlygHEeY= + dependencies: + expand-range "^0.1.0" + +braces@^2.3.0, braces@^2.3.1: + version "2.3.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" + integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== + dependencies: + 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" + +brorand@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" + integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= + +browser-stdout@1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" + integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== + +browserify-aes@^1.0.0, browserify-aes@^1.0.4: + version "1.2.0" + resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" + integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== + 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.1" + resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" + integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w== + dependencies: + browserify-aes "^1.0.4" + browserify-des "^1.0.0" + evp_bytestokey "^1.0.0" + +browserify-des@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c" + integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A== + dependencies: + cipher-base "^1.0.1" + des.js "^1.0.0" + inherits "^2.0.1" + safe-buffer "^5.1.2" + +browserify-rsa@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524" + integrity sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ= + 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" + integrity sha1-qk62jl17ZYuqa/alfmMMvXqT0pg= + 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" + integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA== + dependencies: + pako "~1.0.5" + +browserslist@^4.3.4: + version "4.3.7" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.3.7.tgz#f1de479a6466ea47a0a26dcc725e7504817e624a" + integrity sha512-pWQv51Ynb0MNk9JGMCZ8VkM785/4MQNXiFYtPqI7EEP0TJO+/d/NqRVn1uiAN0DNbnlUSpL2sh16Kspasv3pUQ== + dependencies: + caniuse-lite "^1.0.30000925" + electron-to-chromium "^1.3.96" + node-releases "^1.1.3" + +buffer-alloc-unsafe@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz#bd7dc26ae2972d0eda253be061dba992349c19f0" + integrity sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg== + +buffer-alloc@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/buffer-alloc/-/buffer-alloc-1.2.0.tgz#890dd90d923a873e08e10e5fd51a57e5b7cce0ec" + integrity sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow== + dependencies: + buffer-alloc-unsafe "^1.1.0" + buffer-fill "^1.0.0" + +buffer-fill@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/buffer-fill/-/buffer-fill-1.0.0.tgz#f8f78b76789888ef39f205cd637f68e702122b2c" + integrity sha1-+PeLdniYiO858gXNY39o5wISKyw= + +buffer-xor@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" + integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk= + +buffer@^4.3.0: + version "4.9.1" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.1.tgz#6d1bb601b07a4efced97094132093027c95bc298" + integrity sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg= + 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" + integrity sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8= + +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" + integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug= + +bytes@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" + integrity sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg= + +cache-base@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" + integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== + dependencies: + 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" + +callsite@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/callsite/-/callsite-1.0.0.tgz#280398e5d664bd74038b6f0905153e6e8af1bc20" + integrity sha1-KAOY5dZkvXQDi28JBRU+borxvCA= + +camelcase@^1.0.2: + version "1.2.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39" + integrity sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk= + +camelcase@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" + integrity sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0= + +caniuse-lite@^1.0.30000925: + version "1.0.30000927" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000927.tgz#114a9de4ff1e01f5790fe578ecd93421c7524665" + integrity sha512-ogq4NbUWf1uG/j66k0AmiO3GjqJAlQyF8n4w8a954cbCyFKmYGvRtgz6qkq2fWuduTXHibX7GyYL5Pg58Aks2g== + +center-align@^0.1.1: + version "0.1.3" + resolved "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad" + integrity sha1-qg0yYptu6XIgBBHL1EYckHvCt60= + dependencies: + align-text "^0.1.3" + lazy-cache "^1.0.3" + +chai@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/chai/-/chai-4.2.0.tgz#760aa72cf20e3795e84b12877ce0e83737aa29e5" + integrity sha512-XQU3bhBukrOsQCuwZndwGcCVQHyZi53fQ6Ys1Fym7E4olpIqqZZhhoFJoaKVvV17lWQoXYwgWN2nF5crA8J2jw== + dependencies: + assertion-error "^1.1.0" + check-error "^1.0.2" + deep-eql "^3.0.1" + get-func-name "^2.0.0" + pathval "^1.1.0" + type-detect "^4.0.5" + +chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +check-error@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82" + integrity sha1-V00xLt2Iu13YkS6Sht1sCu1KrII= + +chokidar@^2.0.2, chokidar@^2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.0.4.tgz#356ff4e2b0e8e43e322d18a372460bbcf3accd26" + integrity sha512-z9n7yt9rOvIJrMhvDtDictKrkFHeihkNl6uWMmZlmL6tJtX9Cs+87oK+teBx+JIgzvbX3yZHT3eF8vpbDxHJXQ== + dependencies: + anymatch "^2.0.0" + async-each "^1.0.0" + braces "^2.3.0" + glob-parent "^3.1.0" + inherits "^2.0.1" + is-binary-path "^1.0.0" + is-glob "^4.0.0" + lodash.debounce "^4.0.8" + normalize-path "^2.1.1" + path-is-absolute "^1.0.0" + readdirp "^2.0.0" + upath "^1.0.5" + optionalDependencies: + fsevents "^1.2.2" + +chownr@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.1.tgz#54726b8b8fff4df053c42187e801fb4412df1494" + integrity sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g== + +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" + integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +circular-json@^0.5.5: + version "0.5.9" + resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.5.9.tgz#932763ae88f4f7dead7a0d09c8a51a4743a53b1d" + integrity sha512-4ivwqHpIFJZBuhN3g/pEcdbnGUywkBblloGbkglyloVjjR3uT6tieI89MVOfbP2tHX5sgb01FuLgAOzebNlJNQ== + +class-utils@^0.3.5: + version "0.3.6" + resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" + integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== + dependencies: + arr-union "^3.1.0" + define-property "^0.2.5" + isobject "^3.0.0" + static-extend "^0.1.1" + +cliui@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1" + integrity sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE= + 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" + integrity sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0= + dependencies: + string-width "^1.0.1" + strip-ansi "^3.0.1" + wrap-ansi "^2.0.0" + +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" + integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= + +collection-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" + integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA= + dependencies: + map-visit "^1.0.0" + object-visit "^1.0.0" + +color-convert@^1.9.0: + version "1.9.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= + +colors@^1.1.0: + version "1.3.3" + resolved "https://registry.yarnpkg.com/colors/-/colors-1.3.3.tgz#39e005d546afe01e01f9c4ca8fa50f686a01205d" + integrity sha512-mmGt/1pZqYRjMxB1axhTo16/snVZ5krrKkcmMeVKxzECMMXoCgnvTPp10QgHfcbQZw8Dq2jMNG6je4JlWU0gWg== + +combine-lists@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/combine-lists/-/combine-lists-1.0.1.tgz#458c07e09e0d900fc28b70a3fec2dacd1d2cb7f6" + integrity sha1-RYwH4J4NkA/Ci3Cj/sLazR0st/Y= + dependencies: + lodash "^4.5.0" + +commander@2.15.1: + version "2.15.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.15.1.tgz#df46e867d0fc2aec66a34662b406a9ccafff5b0f" + integrity sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag== + +commondir@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" + integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= + +component-bind@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/component-bind/-/component-bind-1.0.0.tgz#00c608ab7dcd93897c0009651b1d3a8e1e73bbd1" + integrity sha1-AMYIq33Nk4l8AAllGx06jh5zu9E= + +component-emitter@1.2.1, component-emitter@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6" + integrity sha1-E3kY1teCg/ffemt8WmPhQOaUJeY= + +component-inherit@0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/component-inherit/-/component-inherit-0.0.3.tgz#645fc4adf58b72b649d5cae65135619db26ff143" + integrity sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM= + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= + +connect@^3.6.0: + version "3.6.6" + resolved "https://registry.yarnpkg.com/connect/-/connect-3.6.6.tgz#09eff6c55af7236e137135a72574858b6786f524" + integrity sha1-Ce/2xVr3I24TcTWnJXSFi2eG9SQ= + dependencies: + debug "2.6.9" + finalhandler "1.1.0" + parseurl "~1.3.2" + utils-merge "1.0.1" + +console-browserify@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10" + integrity sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA= + 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" + integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= + +constants-browserify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" + integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U= + +content-type@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" + integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== + +convert-source-map@^1.1.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.6.0.tgz#51b537a8c43e0f04dec1993bffcdd504e758ac20" + integrity sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A== + dependencies: + safe-buffer "~5.1.1" + +cookie@0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb" + integrity sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s= + +copy-descriptor@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" + integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= + +core-js@^2.2.0, core-js@^2.4.0: + version "2.6.1" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.1.tgz#87416ae817de957a3f249b3b5ca475d4aaed6042" + integrity sha512-L72mmmEayPJBejKIWe2pYtGis5r0tQ5NaJekdhyXgeMQTpJoBsH0NL4ElY2LfSoV15xeQWKQ+XTTOZdyero5Xg== + +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" + integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= + +create-ecdh@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.3.tgz#c9111b6f33045c4697f144787f9254cdc77c45ff" + integrity sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw== + dependencies: + bn.js "^4.1.0" + elliptic "^6.0.0" + +create-hash@^1.1.0, create-hash@^1.1.2: + version "1.2.0" + resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" + integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== + dependencies: + 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@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4: + version "1.1.7" + resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" + integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== + 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" + integrity sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk= + dependencies: + lru-cache "^4.0.1" + shebang-command "^1.2.0" + which "^1.2.9" + +crypto-browserify@^3.11.0: + version "3.12.0" + resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" + integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg== + 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" + +currently-unhandled@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" + integrity sha1-mI3zP+qxke95mmE2nddsF635V+o= + dependencies: + array-find-index "^1.0.1" + +custom-event@~1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/custom-event/-/custom-event-1.0.1.tgz#5d02a46850adf1b4a317946a3928fccb5bfd0425" + integrity sha1-XQKkaFCt8bSjF5RqOSj8y1v9BCU= + +d@1: + version "1.0.0" + resolved "https://registry.yarnpkg.com/d/-/d-1.0.0.tgz#754bb5bfe55451da69a58b94d45f4c5b0462d58f" + integrity sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8= + dependencies: + es5-ext "^0.10.9" + +date-format@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/date-format/-/date-format-1.2.0.tgz#615e828e233dd1ab9bb9ae0950e0ceccfa6ecad8" + integrity sha1-YV6CjiM90aubua4JUODOzPpuytg= + +date-now@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b" + integrity sha1-6vQ5/U1ISK105cx9vvIAZyueNFs= + +debug@2.6.9, debug@^2.1.2, debug@^2.2.0, debug@^2.3.3: + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +debug@3.1.0, debug@=3.1.0, debug@~3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" + integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== + dependencies: + ms "2.0.0" + +debug@^3.1.0: + version "3.2.6" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" + integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== + dependencies: + ms "^2.1.1" + +debug@^4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" + integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== + dependencies: + ms "^2.1.1" + +decamelize@^1.0.0, decamelize@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= + +decode-uri-component@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" + integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= + +deep-eql@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-3.0.1.tgz#dfc9404400ad1c8fe023e7da1df1c147c4b444df" + integrity sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw== + dependencies: + type-detect "^4.0.0" + +deep-extend@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" + integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== + +define-properties@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" + integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== + dependencies: + object-keys "^1.0.12" + +define-property@^0.2.5: + version "0.2.5" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" + integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY= + dependencies: + is-descriptor "^0.1.0" + +define-property@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" + integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY= + dependencies: + is-descriptor "^1.0.0" + +define-property@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" + integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== + dependencies: + is-descriptor "^1.0.2" + isobject "^3.0.1" + +delegates@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" + integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= + +depd@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" + integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= + +des.js@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.0.tgz#c074d2e2aa6a8a9a07dbd61f9a15c2cd83ec8ecc" + integrity sha1-wHTS4qpqipoH29YfmhXCzYPsjsw= + dependencies: + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + +detect-libc@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" + integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups= + +di@^0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/di/-/di-0.0.1.tgz#806649326ceaa7caa3306d75d985ea2748ba913c" + integrity sha1-gGZJMmzqp8qjMG112YXqJ0i6kTw= + +diff@3.5.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" + integrity sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA== + +diffie-hellman@^5.0.0: + version "5.0.3" + resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" + integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg== + dependencies: + bn.js "^4.1.0" + miller-rabin "^4.0.0" + randombytes "^2.0.0" + +dom-serialize@^2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/dom-serialize/-/dom-serialize-2.2.1.tgz#562ae8999f44be5ea3076f5419dcd59eb43ac95b" + integrity sha1-ViromZ9Evl6jB29UGdzVnrQ6yVs= + dependencies: + custom-event "~1.0.0" + ent "~2.2.0" + extend "^3.0.0" + void-elements "^2.0.0" + +domain-browser@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" + integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA== + +ee-first@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" + integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= + +electron-to-chromium@^1.3.96: + version "1.3.99" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.99.tgz#1b676afb6bce62165a3db7533bab3e2f8184bfcf" + integrity sha512-2+EyjU/3Iu+UEwcZimGLQ3VVloCjoLYcjm88vXW89UsqAwsXjgjNrnsK5iaxj6/H8CECSsaiMKlLIASjGhNuBg== + +elliptic@^6.0.0: + version "6.4.1" + resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.4.1.tgz#c2d0b7776911b86722c632c3c06c60f2f819939a" + integrity sha512-BsXLz5sqX8OHcsh7CqBMztyXARmGQ3LWPtGjJi6DiJHq5C/qvi9P3OqgswKSDftbu8+IoI/QDTAm2fFnQ9SZSQ== + 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" + integrity sha1-TapNnbAPmBmIDHn6RXrlsJof04k= + +encodeurl@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" + integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= + +engine.io-client@~3.2.0: + version "3.2.1" + resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-3.2.1.tgz#6f54c0475de487158a1a7c77d10178708b6add36" + integrity sha512-y5AbkytWeM4jQr7m/koQLc5AxpRKC1hEVUb/s1FUAWEJq5AzJJ4NLvzuKPuxtDi5Mq755WuDvZ6Iv2rXj4PTzw== + dependencies: + component-emitter "1.2.1" + component-inherit "0.0.3" + debug "~3.1.0" + engine.io-parser "~2.1.1" + has-cors "1.1.0" + indexof "0.0.1" + parseqs "0.0.5" + parseuri "0.0.5" + ws "~3.3.1" + xmlhttprequest-ssl "~1.5.4" + yeast "0.1.2" + +engine.io-parser@~2.1.0, engine.io-parser@~2.1.1: + version "2.1.3" + resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-2.1.3.tgz#757ab970fbf2dfb32c7b74b033216d5739ef79a6" + integrity sha512-6HXPre2O4Houl7c4g7Ic/XzPnHBvaEmN90vtRO9uLmwtRqQmTOw0QMevL1TOfL2Cpu1VzsaTmMotQgMdkzGkVA== + dependencies: + after "0.8.2" + arraybuffer.slice "~0.0.7" + base64-arraybuffer "0.1.5" + blob "0.0.5" + has-binary2 "~1.0.2" + +engine.io@~3.2.0: + version "3.2.1" + resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-3.2.1.tgz#b60281c35484a70ee0351ea0ebff83ec8c9522a2" + integrity sha512-+VlKzHzMhaU+GsCIg4AoXF1UdDFjHHwMmMKqMJNDNLlUlejz58FCy4LBqB2YVJskHGYl06BatYWKP2TVdVXE5w== + dependencies: + accepts "~1.3.4" + base64id "1.0.0" + cookie "0.3.1" + debug "~3.1.0" + engine.io-parser "~2.1.0" + ws "~3.3.1" + +enhanced-resolve@^3.4.0: + version "3.4.1" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz#0421e339fd71419b3da13d129b3979040230476e" + integrity sha1-BCHjOf1xQZs9oT0Smzl5BAIwR24= + dependencies: + graceful-fs "^4.1.2" + memory-fs "^0.4.0" + object-assign "^4.0.1" + tapable "^0.2.7" + +ent@~2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/ent/-/ent-2.2.0.tgz#e964219325a21d05f44466a2f686ed6ce5f5dd1d" + integrity sha1-6WQhkyWiHQX0RGai9obtbOX13R0= + +errno@^0.1.3: + version "0.1.7" + resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618" + integrity sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg== + dependencies: + prr "~1.0.1" + +error-ex@^1.2.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== + dependencies: + is-arrayish "^0.2.1" + +es-abstract@^1.5.1: + version "1.13.0" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.13.0.tgz#ac86145fdd5099d8dd49558ccba2eaf9b88e24e9" + integrity sha512-vDZfg/ykNxQVwup/8E1BZhVzFfBxs9NqMzGcvIJrqg5k2/5Za2bWo40dK2J1pgLngZ7c+Shh8lwYtLGyrwPutg== + dependencies: + 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" + +es-to-primitive@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.0.tgz#edf72478033456e8dda8ef09e00ad9650707f377" + integrity sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg== + dependencies: + is-callable "^1.1.4" + is-date-object "^1.0.1" + is-symbol "^1.0.2" + +es5-ext@^0.10.14, es5-ext@^0.10.35, es5-ext@^0.10.9, es5-ext@~0.10.14: + version "0.10.46" + resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.46.tgz#efd99f67c5a7ec789baa3daa7f79870388f7f572" + integrity sha512-24XxRvJXNFwEMpJb3nOkiRJKRoupmjYmOPVlI65Qy2SrtxwOTB+g6ODjBKOtwEHbYrhWRty9xxOWLNdClT2djw== + dependencies: + es6-iterator "~2.0.3" + es6-symbol "~3.1.1" + next-tick "1" + +es6-iterator@^2.0.1, es6-iterator@~2.0.1, es6-iterator@~2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" + integrity sha1-p96IkUGgWpSwhUQDstCg+/qY87c= + 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" + integrity sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA= + 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" + integrity sha1-0rPsXU2ADO2BjbU40ol02wpzzLE= + 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" + integrity sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc= + 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" + integrity sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8= + dependencies: + d "1" + es5-ext "^0.10.14" + es6-iterator "^2.0.1" + es6-symbol "^3.1.1" + +escape-html@~1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= + +escape-string-regexp@1.0.5, escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= + +escope@^3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/escope/-/escope-3.6.0.tgz#e01975e812781a163a6dadfdd80398dc64c889c3" + integrity sha1-4Bl16BJ4GhY6ba392AOY3GTIicM= + 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.1" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf" + integrity sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ== + dependencies: + estraverse "^4.1.0" + +estraverse@^4.1.0, estraverse@^4.1.1: + version "4.2.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" + integrity sha1-De4/7TH81GlhjOc0IJn8GvoL2xM= + +esutils@^2.0.0, esutils@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" + integrity sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs= + +event-emitter@~0.3.5: + version "0.3.5" + resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39" + integrity sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk= + dependencies: + d "1" + es5-ext "~0.10.14" + +eventemitter3@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-3.1.0.tgz#090b4d6cdbd645ed10bf750d4b5407942d7ba163" + integrity sha512-ivIvhpq/Y0uSjcHDcOIccjmYjGLcP09MFGE7ysAwkAvkXfpZlC985pH2/ui64DKazbTW/4kN3yqozUxlXzI6cA== + +events@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924" + integrity sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ= + +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" + integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== + 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" + integrity sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c= + 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-braces@^0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/expand-braces/-/expand-braces-0.1.2.tgz#488b1d1d2451cb3d3a6b192cfc030f44c5855fea" + integrity sha1-SIsdHSRRyz06axks/AMPRMWFX+o= + dependencies: + array-slice "^0.2.3" + array-unique "^0.2.1" + braces "^0.1.2" + +expand-brackets@^2.1.4: + version "2.1.4" + resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" + integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI= + dependencies: + 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" + +expand-range@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-0.1.1.tgz#4cb8eda0993ca56fa4f41fc42f3cbb4ccadff044" + integrity sha1-TLjtoJk8pW+k9B/ELzy7TMrf8EQ= + dependencies: + is-number "^0.1.1" + repeat-string "^0.2.2" + +extend-shallow@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" + integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= + dependencies: + is-extendable "^0.1.0" + +extend-shallow@^3.0.0, extend-shallow@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" + integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg= + dependencies: + assign-symbols "^1.0.0" + is-extendable "^1.0.1" + +extend@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" + integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== + +extglob@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" + integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== + dependencies: + 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" + +fast-deep-equal@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49" + integrity sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk= + +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" + integrity sha1-1RQsDK7msRifh9OnYREGT4bIu/I= + +fill-range@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" + integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc= + dependencies: + extend-shallow "^2.0.1" + is-number "^3.0.0" + repeat-string "^1.6.1" + to-regex-range "^2.1.0" + +finalhandler@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.0.tgz#ce0b6855b45853e791b2fcc680046d88253dd7f5" + integrity sha1-zgtoVbRYU+eRsvzGgARtiCU91/U= + dependencies: + debug "2.6.9" + encodeurl "~1.0.1" + escape-html "~1.0.3" + on-finished "~2.3.0" + parseurl "~1.3.2" + statuses "~1.3.1" + unpipe "~1.0.0" + +find-cache-dir@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.0.0.tgz#4c1faed59f45184530fb9d7fa123a4d04a98472d" + integrity sha512-LDUY6V1Xs5eFskUVYtIwatojt6+9xC9Chnlk/jYOOvn3FAFfSaWddxahDGyNHh0b2dMXa6YW2m0tk8TdVaXHlA== + dependencies: + commondir "^1.0.1" + make-dir "^1.0.0" + pkg-dir "^3.0.0" + +find-up@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" + integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c= + dependencies: + locate-path "^2.0.0" + +find-up@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" + integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== + dependencies: + locate-path "^3.0.0" + +flatted@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.0.tgz#55122b6536ea496b4b44893ee2608141d10d9916" + integrity sha512-R+H8IZclI8AAkSBRQJLVOsxwAoHd6WC40b4QTNWIjzAa6BXOBfQcM587MXDTVPeYaopFNWHUFLx7eNmHDSxMWg== + +follow-redirects@^1.0.0: + version "1.6.1" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.6.1.tgz#514973c44b5757368bad8bddfe52f81f015c94cb" + integrity sha512-t2JCjbzxQpWvbhts3l6SH1DKzSrx8a+SsaVf4h6bG4kOXUuPYS/kg2Lr4gQSb7eemaHqJkOThF1BGyjlUkO1GQ== + dependencies: + debug "=3.1.0" + +for-in@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" + integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= + +fragment-cache@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" + integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk= + dependencies: + map-cache "^0.2.2" + +fs-access@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/fs-access/-/fs-access-1.0.1.tgz#d6a87f262271cefebec30c553407fb995da8777a" + integrity sha1-1qh/JiJxzv6+wwxVNAf7mV2od3o= + dependencies: + null-check "^1.0.0" + +fs-minipass@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.5.tgz#06c277218454ec288df77ada54a03b8702aacb9d" + integrity sha512-JhBl0skXjUPCFH7x6x61gQxrKyXsxB5gcgePLZCwfyCGGsTISMoIeObbrvVeP6Xmyaudw4TT43qV2Gz+iyd2oQ== + dependencies: + minipass "^2.2.1" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= + +fsevents@^1.2.2: + version "1.2.4" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.4.tgz#f41dcb1af2582af3692da36fc55cbd8e1041c426" + integrity sha512-z8H8/diyk76B7q5wg+Ud0+CqzcAF3mBBI/bA5ne5zrRUUIvNkJY//D3BqyH571KuAC4Nr7Rw7CjWX4r0y9DvNg== + dependencies: + nan "^2.9.2" + node-pre-gyp "^0.10.0" + +function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== + +gauge@~2.7.3: + version "2.7.4" + resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" + integrity sha1-LANAXHU4w51+s3sxcCLjJfsBi/c= + 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.3" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a" + integrity sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w== + +get-func-name@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41" + integrity sha1-6td0q+5y4gQJQzoGY2YCPdaIekE= + +get-stream@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" + integrity sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ= + +get-value@^2.0.3, get-value@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" + integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= + +glob-parent@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" + integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4= + dependencies: + is-glob "^3.1.0" + path-dirname "^1.0.0" + +glob@7.1.2: + version "7.1.2" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" + integrity sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ== + 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" + +glob@^7.1.1, glob@^7.1.3: + version "7.1.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.3.tgz#3960832d3f1574108342dafd3a67b332c0969df1" + integrity sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ== + 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@^11.1.0: + version "11.9.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-11.9.0.tgz#bde236808e987f290768a93d065060d78e6ab249" + integrity sha512-5cJVtyXWH8PiJPVLZzzoIizXx944O4OmRro5MWKx5fT4MgcN7OfaMutPeaTdJCCURwbWdhhcCWcKIffPnmTzBg== + +graceful-fs@^4.1.11, graceful-fs@^4.1.2: + version "4.1.15" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.15.tgz#ffb703e1066e8a0eeaa4c8b80ba9253eeefbfb00" + integrity sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA== + +growl@1.10.5: + version "1.10.5" + resolved "https://registry.yarnpkg.com/growl/-/growl-1.10.5.tgz#f2735dc2283674fa67478b10181059355c369e5e" + integrity sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA== + +has-binary2@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has-binary2/-/has-binary2-1.0.3.tgz#7776ac627f3ea77250cfc332dab7ddf5e4f5d11d" + integrity sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw== + dependencies: + isarray "2.0.1" + +has-cors@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/has-cors/-/has-cors-1.1.0.tgz#5e474793f7ea9843d1bb99c23eef49ff126fff39" + integrity sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk= + +has-flag@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51" + integrity sha1-6CB68cx7MNRGzHC3NLXovhj4jVE= + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= + +has-symbols@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.0.tgz#ba1a8f1af2a0fc39650f5c850367704122063b44" + integrity sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q= + +has-unicode@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" + integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk= + +has-value@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" + integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8= + dependencies: + get-value "^2.0.3" + has-values "^0.1.4" + isobject "^2.0.0" + +has-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" + integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc= + dependencies: + get-value "^2.0.6" + has-values "^1.0.0" + isobject "^3.0.0" + +has-values@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" + integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E= + +has-values@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" + integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8= + dependencies: + is-number "^3.0.0" + kind-of "^4.0.0" + +has@^1.0.1, has@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== + dependencies: + function-bind "^1.1.1" + +hash-base@^3.0.0: + version "3.0.4" + resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.0.4.tgz#5fc8686847ecd73499403319a6b0a3f3f6ae4918" + integrity sha1-X8hoaEfs1zSZQDMZprCj8/auSRg= + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +hash.js@^1.0.0, hash.js@^1.0.3: + version "1.1.7" + resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" + integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== + dependencies: + inherits "^2.0.3" + minimalistic-assert "^1.0.1" + +he@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/he/-/he-1.1.1.tgz#93410fd21b009735151f8868c2f271f3427e23fd" + integrity sha1-k0EP0hsAlzUVH4howvJx80J+I/0= + +hmac-drbg@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" + integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE= + dependencies: + hash.js "^1.0.3" + minimalistic-assert "^1.0.0" + minimalistic-crypto-utils "^1.0.1" + +hosted-git-info@^2.1.4: + version "2.7.1" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.7.1.tgz#97f236977bd6e125408930ff6de3eec6281ec047" + integrity sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w== + +http-errors@1.6.3, http-errors@~1.6.3: + version "1.6.3" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" + integrity sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0= + dependencies: + depd "~1.1.2" + inherits "2.0.3" + setprototypeof "1.1.0" + statuses ">= 1.4.0 < 2" + +http-proxy@^1.13.0: + version "1.17.0" + resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.17.0.tgz#7ad38494658f84605e2f6db4436df410f4e5be9a" + integrity sha512-Taqn+3nNvYRfJ3bGvKfBSRwy1v6eePlm3oc/aWVxZp57DQr5Eq3xhKJi7Z4hZpS8PC3H4qI+Yly5EmFacGuA/g== + dependencies: + eventemitter3 "^3.0.0" + follow-redirects "^1.0.0" + requires-port "^1.0.0" + +https-browserify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" + integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= + +iconv-lite@0.4.23: + version "0.4.23" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.23.tgz#297871f63be507adcfbfca715d0cd0eed84e9a63" + integrity sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA== + dependencies: + safer-buffer ">= 2.1.2 < 3" + +iconv-lite@^0.4.4: + version "0.4.24" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" + +ieee754@^1.1.4: + version "1.1.12" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.12.tgz#50bf24e5b9c8bb98af4964c941cdb0918da7b60b" + integrity sha512-GguP+DRY+pJ3soyIiGPTvdiVXjZ+DbXOxGpXn3eMvNW4x4irjqXm4wHKscC+TfxSJ0yw/S1F24tqdMNsMZTiLA== + +ignore-walk@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.1.tgz#a83e62e7d272ac0e3b551aaa82831a19b69f82f8" + integrity sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ== + dependencies: + minimatch "^3.0.4" + +indexof@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" + integrity sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10= + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@2.0.3, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.1, inherits@~2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= + +inherits@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" + integrity sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE= + +ini@~1.3.0: + version "1.3.5" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" + integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw== + +interpret@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.2.0.tgz#d5061a6224be58e8083985f5014d844359576296" + integrity sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw== + +invariant@^2.2.2: + version "2.2.4" + resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" + integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== + 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" + integrity sha1-EEqOSqym09jNFXqO+L+rLXo//bY= + +is-accessor-descriptor@^0.1.6: + version "0.1.6" + resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" + integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY= + dependencies: + kind-of "^3.0.2" + +is-accessor-descriptor@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" + integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ== + dependencies: + kind-of "^6.0.0" + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= + +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" + integrity sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg= + 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" + integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== + +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" + integrity sha1-VAVy0096wxGfj3bDDLwbHgN6/74= + dependencies: + builtin-modules "^1.0.0" + +is-callable@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75" + integrity sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA== + +is-data-descriptor@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" + integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y= + dependencies: + kind-of "^3.0.2" + +is-data-descriptor@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" + integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ== + dependencies: + kind-of "^6.0.0" + +is-date-object@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16" + integrity sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY= + +is-descriptor@^0.1.0: + version "0.1.6" + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" + integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg== + dependencies: + is-accessor-descriptor "^0.1.6" + is-data-descriptor "^0.1.4" + kind-of "^5.0.0" + +is-descriptor@^1.0.0, is-descriptor@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" + integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg== + dependencies: + is-accessor-descriptor "^1.0.0" + is-data-descriptor "^1.0.0" + kind-of "^6.0.2" + +is-extendable@^0.1.0, is-extendable@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" + integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= + +is-extendable@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" + integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== + dependencies: + is-plain-object "^2.0.4" + +is-extglob@^2.1.0, is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= + +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" + integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs= + 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" + integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= + +is-glob@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" + integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo= + dependencies: + is-extglob "^2.1.0" + +is-glob@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.0.tgz#9521c76845cc2610a85203ddf080a958c2ffabc0" + integrity sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A= + dependencies: + is-extglob "^2.1.1" + +is-number@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-0.1.1.tgz#69a7af116963d47206ec9bd9b48a14216f1e3806" + integrity sha1-aaevEWlj1HIG7JvZtIoUIW8eOAY= + +is-number@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" + integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU= + dependencies: + kind-of "^3.0.2" + +is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" + integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== + dependencies: + isobject "^3.0.1" + +is-regex@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491" + integrity sha1-VRdIm1RwkbCTDglWVM7SXul+lJE= + dependencies: + has "^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" + integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= + +is-symbol@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.2.tgz#a055f6ae57192caee329e7a860118b497a950f38" + integrity sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw== + dependencies: + has-symbols "^1.0.0" + +is-windows@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" + integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== + +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" + integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= + +isarray@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.1.tgz#a37d94ed9cda2d59865c9f76fe596ee1f338741e" + integrity sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4= + +isbinaryfile@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-3.0.3.tgz#5d6def3edebf6e8ca8cae9c30183a804b5f8be80" + integrity sha512-8cJBL5tTd2OS0dM4jz07wQd5g0dCCqIhUxPIGtZfa5L6hWlvV5MHTITy/DBAsF+Oe2LS1X3krBUhNwaGUWpWxw== + dependencies: + buffer-alloc "^1.2.0" + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= + +isobject@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" + integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= + dependencies: + isarray "1.0.0" + +isobject@^3.0.0, isobject@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" + integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= + +js-levenshtein@^1.1.3: + version "1.1.4" + resolved "https://registry.yarnpkg.com/js-levenshtein/-/js-levenshtein-1.1.4.tgz#3a56e3cbf589ca0081eb22cd9ba0b1290a16d26e" + integrity sha512-PxfGzSs0ztShKrUYPIn5r0MtyAhYcCwmndozzpz8YObbPnD1jFxzlBGbRnX2mIu6Z13xN6+PTu05TQFnZFlzow== + +"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +jsesc@^2.5.1: + version "2.5.2" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" + integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== + +jsesc@~0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" + integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= + +json-loader@^0.5.4: + version "0.5.7" + resolved "https://registry.yarnpkg.com/json-loader/-/json-loader-0.5.7.tgz#dca14a70235ff82f0ac9a3abeb60d337a365185d" + integrity sha512-QLPs8Dj7lnf3e3QYS1zkCo+4ZwqOiF9d/nZnYozTISxXWCfNs9yuky5rJw4/W34s7POaNlbZmQGaB5NiXCbP4w== + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + +json5@^0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" + integrity sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE= + +json5@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" + integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== + dependencies: + minimist "^1.2.0" + +json5@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.0.tgz#e7a0c62c48285c628d20a10b85c89bb807c32850" + integrity sha512-8Mh9h6xViijj36g7Dxi+Y4S6hNGV96vcJZr/SrlHh1LR/pEn/8j/+qIBbs44YKl69Lrfctp4QD+AdWLTMqEZAQ== + dependencies: + minimist "^1.2.0" + +karma-chai@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/karma-chai/-/karma-chai-0.1.0.tgz#bee5ad40400517811ae34bb945f762909108b79a" + integrity sha1-vuWtQEAFF4Ea40u5RfdikJEIt5o= + +karma-chrome-launcher@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/karma-chrome-launcher/-/karma-chrome-launcher-2.2.0.tgz#cf1b9d07136cc18fe239327d24654c3dbc368acf" + integrity sha512-uf/ZVpAabDBPvdPdveyk1EPgbnloPvFFGgmRhYLTDH7gEB4nZdSBk8yTU47w1g/drLSx5uMOkjKk7IWKfWg/+w== + dependencies: + fs-access "^1.0.0" + which "^1.2.1" + +karma-mocha@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/karma-mocha/-/karma-mocha-1.3.0.tgz#eeaac7ffc0e201eb63c467440d2b69c7cf3778bf" + integrity sha1-7qrH/8DiAetjxGdEDStpx883eL8= + dependencies: + minimist "1.2.0" + +karma-sourcemap-loader@^0.3.7: + version "0.3.7" + resolved "https://registry.yarnpkg.com/karma-sourcemap-loader/-/karma-sourcemap-loader-0.3.7.tgz#91322c77f8f13d46fed062b042e1009d4c4505d8" + integrity sha1-kTIsd/jxPUb+0GKwQuEAnUxFBdg= + dependencies: + graceful-fs "^4.1.2" + +karma-webpack@^3.0.5: + version "3.0.5" + resolved "https://registry.yarnpkg.com/karma-webpack/-/karma-webpack-3.0.5.tgz#1ff1e3a690fb73ae95ee95f9ab58f341cfc7b40f" + integrity sha512-nRudGJWstvVuA6Tbju9tyGUfXTtI1UXMXoRHVmM2/78D0q6s/Ye2IC157PKNDC15PWFGR0mVIRtWLAdcfsRJoA== + dependencies: + async "^2.0.0" + babel-runtime "^6.0.0" + loader-utils "^1.0.0" + lodash "^4.0.0" + source-map "^0.5.6" + webpack-dev-middleware "^2.0.6" + +karma@^3.1.4: + version "3.1.4" + resolved "https://registry.yarnpkg.com/karma/-/karma-3.1.4.tgz#3890ca9722b10d1d14b726e1335931455788499e" + integrity sha512-31Vo8Qr5glN+dZEVIpnPCxEGleqE0EY6CtC2X9TagRV3rRQ3SNrvfhddICkJgUK3AgqpeKSZau03QumTGhGoSw== + dependencies: + bluebird "^3.3.0" + body-parser "^1.16.1" + chokidar "^2.0.3" + colors "^1.1.0" + combine-lists "^1.0.0" + connect "^3.6.0" + core-js "^2.2.0" + di "^0.0.1" + dom-serialize "^2.2.0" + expand-braces "^0.1.1" + flatted "^2.0.0" + glob "^7.1.1" + graceful-fs "^4.1.2" + http-proxy "^1.13.0" + isbinaryfile "^3.0.0" + lodash "^4.17.5" + log4js "^3.0.0" + mime "^2.3.1" + minimatch "^3.0.2" + optimist "^0.6.1" + qjobs "^1.1.4" + range-parser "^1.2.0" + rimraf "^2.6.0" + safe-buffer "^5.0.1" + socket.io "2.1.1" + source-map "^0.6.1" + tmp "0.0.33" + useragent "2.3.0" + +kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: + version "3.2.2" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" + integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= + 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" + integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc= + dependencies: + is-buffer "^1.1.5" + +kind-of@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" + integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== + +kind-of@^6.0.0, kind-of@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051" + integrity sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA== + +lazy-cache@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" + integrity sha1-odePw6UEdMuAhF07O24dpJpEbo4= + +lcid@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" + integrity sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU= + 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" + integrity sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg= + 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.1" + resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.3.1.tgz#026f12fe7c3115992896ac02ba022ba92971b979" + integrity sha512-By6ZFY7ETWOc9RFaAIb23IjJVcM4dvJC/N57nmdz9RSkMXvAXGI7SyVlAw3v8vjtDRlqThgVDVmTnr9fqMlxkw== + +loader-utils@^1.0.0, loader-utils@^1.0.2, loader-utils@^1.1.0: + version "1.2.3" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.2.3.tgz#1ff5dc6911c9f0a062531a4c04b609406108c2c7" + integrity sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA== + dependencies: + big.js "^5.2.2" + emojis-list "^2.0.0" + json5 "^1.0.1" + +locate-path@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" + integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= + dependencies: + p-locate "^2.0.0" + path-exists "^3.0.0" + +locate-path@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" + integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== + dependencies: + p-locate "^3.0.0" + path-exists "^3.0.0" + +lodash.debounce@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" + integrity sha1-gteb/zCmfEAF/9XiUVMArZyk168= + +lodash@^4.0.0, lodash@^4.17.10, lodash@^4.17.5, lodash@^4.5.0: + version "4.17.11" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d" + integrity sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg== + +log-symbols@^2.1.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-2.2.0.tgz#5740e1c5d6f0dfda4ad9323b5332107ef6b4c40a" + integrity sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg== + dependencies: + chalk "^2.0.1" + +log4js@^3.0.0: + version "3.0.6" + resolved "https://registry.yarnpkg.com/log4js/-/log4js-3.0.6.tgz#e6caced94967eeeb9ce399f9f8682a4b2b28c8ff" + integrity sha512-ezXZk6oPJCWL483zj64pNkMuY/NcRX5MPiB0zE6tjZM137aeusrOnW1ecxgF9cmwMWkBMhjteQxBPoZBh9FDxQ== + dependencies: + circular-json "^0.5.5" + date-format "^1.2.0" + debug "^3.1.0" + rfdc "^1.1.2" + streamroller "0.7.0" + +loglevelnext@^1.0.1: + version "1.0.5" + resolved "https://registry.yarnpkg.com/loglevelnext/-/loglevelnext-1.0.5.tgz#36fc4f5996d6640f539ff203ba819641680d75a2" + integrity sha512-V/73qkPuJmx4BcBF19xPBr+0ZRVBhc4POxvZTZdMeXpJ4NItXSJ/MSwuFT0kQJlCbXvdlZoQQ/418bS1y9Jh6A== + dependencies: + es6-symbol "^3.1.1" + object.assign "^4.1.0" + +longest@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" + integrity sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc= + +loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.3.1: + version "1.4.0" + resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" + integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== + dependencies: + js-tokens "^3.0.0 || ^4.0.0" + +loud-rejection@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f" + integrity sha1-W0b4AUft7leIcPCG0Eghz5mOVR8= + dependencies: + currently-unhandled "^0.4.1" + signal-exit "^3.0.0" + +lru-cache@4.1.x, lru-cache@^4.0.1: + version "4.1.5" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" + integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== + dependencies: + pseudomap "^1.0.2" + yallist "^2.1.2" + +make-dir@^1.0.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c" + integrity sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ== + dependencies: + pify "^3.0.0" + +map-cache@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" + integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= + +map-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" + integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48= + dependencies: + object-visit "^1.0.0" + +md5.js@^1.3.4: + version "1.3.5" + resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" + integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== + dependencies: + hash-base "^3.0.0" + inherits "^2.0.1" + safe-buffer "^5.1.2" + +media-typer@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" + integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= + +mem@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/mem/-/mem-1.1.0.tgz#5edd52b485ca1d900fe64895505399a0dfa45f76" + integrity sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y= + 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" + integrity sha1-OpoguEYlI+RHz7x+i7gO1me/xVI= + dependencies: + errno "^0.1.3" + readable-stream "^2.0.1" + +micromatch@^3.1.10, micromatch@^3.1.4: + version "3.1.10" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" + integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== + dependencies: + 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@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" + integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA== + dependencies: + bn.js "^4.0.0" + brorand "^1.0.1" + +mime-db@~1.37.0: + version "1.37.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.37.0.tgz#0b6a0ce6fdbe9576e25f1f2d2fde8830dc0ad0d8" + integrity sha512-R3C4db6bgQhlIhPU48fUtdVmKnflq+hRdad7IyKhtFj06VPNVdk2RhiYL3UjQIlso8L+YxAtFkobT0VK+S/ybg== + +mime-types@~2.1.18: + version "2.1.21" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.21.tgz#28995aa1ecb770742fe6ae7e58f9181c744b3f96" + integrity sha512-3iL6DbwpyLzjR3xHSFNFeb9Nz/M8WDkX33t1GFQnFOllWk8pOrh/LSrB5OXlnlW5P9LH73X6loW/eogc+F5lJg== + dependencies: + mime-db "~1.37.0" + +mime@^2.1.0, mime@^2.3.1: + version "2.4.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-2.4.0.tgz#e051fd881358585f3279df333fe694da0bcffdd6" + integrity sha512-ikBcWwyqXQSHKtciCcctu9YfPbFYZ4+gbHEmE0Q8jzcTYQg5dHCr3g2wwAZjPoJfQVXZq6KXAjpXOTf5/cjT7w== + +mimic-fn@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" + integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ== + +minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" + integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== + +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" + integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= + +minimatch@3.0.4, minimatch@^3.0.2, minimatch@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== + 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" + integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0= + +minimist@1.2.0, minimist@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" + integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ= + +minimist@~0.0.1: + version "0.0.10" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" + integrity sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8= + +minipass@^2.2.1, minipass@^2.3.4: + version "2.3.5" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.3.5.tgz#cacebe492022497f656b0f0f51e2682a9ed2d848" + integrity sha512-Gi1W4k059gyRbyVUZQ4mEqLm0YIUiGYfvxhF6SIlk3ui1WVxMTGfGdQ2SInh3PDrRTVvPKgULkpJtT4RH10+VA== + dependencies: + safe-buffer "^5.1.2" + yallist "^3.0.0" + +minizlib@^1.1.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.2.1.tgz#dd27ea6136243c7c880684e8672bb3a45fd9b614" + integrity sha512-7+4oTUOWKg7AuL3vloEWekXY2/D20cevzsrNT2kGWm+39J9hGTCBv8VI5Pm5lXZ/o3/mdR4f8rflAPhnQb8mPA== + dependencies: + minipass "^2.2.1" + +mixin-deep@^1.2.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.1.tgz#a49e7268dce1a0d9698e45326c5626df3543d0fe" + integrity sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ== + dependencies: + for-in "^1.0.2" + is-extendable "^1.0.1" + +mkdirp@0.5.1, 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" + integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM= + dependencies: + minimist "0.0.8" + +mocha@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/mocha/-/mocha-5.2.0.tgz#6d8ae508f59167f940f2b5b3c4a612ae50c90ae6" + integrity sha512-2IUgKDhc3J7Uug+FxMXuqIyYzH7gJjXECKe/w43IGgQHTSj3InJi+yAA7T24L9bQMRKiUEHxEX37G5JpVUGLcQ== + dependencies: + browser-stdout "1.3.1" + commander "2.15.1" + debug "3.1.0" + diff "3.5.0" + escape-string-regexp "1.0.5" + glob "7.1.2" + growl "1.10.5" + he "1.1.1" + minimatch "3.0.4" + mkdirp "0.5.1" + supports-color "5.4.0" + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= + +ms@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" + integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== + +nan@^2.9.2: + version "2.12.1" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.12.1.tgz#7b1aa193e9aa86057e3c7bbd0ac448e770925552" + integrity sha512-JY7V6lRkStKcKTvHO5NVSQRv+RV+FIL5pvDoLiAtSL9pKlC5x9PKQcZDsq7m4FO4d57mkhC6Z+QhAh3Jdk5JFw== + +nanomatch@^1.2.9: + version "1.2.13" + resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" + integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== + dependencies: + 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" + +needle@^2.2.1: + version "2.2.4" + resolved "https://registry.yarnpkg.com/needle/-/needle-2.2.4.tgz#51931bff82533b1928b7d1d69e01f1b00ffd2a4e" + integrity sha512-HyoqEb4wr/rsoaIDfTH2aVL9nWtQqba2/HvMv+++m8u0dz808MaagKILxtfeSN7QU7nvbQ79zk3vYOJp9zsNEA== + dependencies: + debug "^2.1.2" + iconv-lite "^0.4.4" + sax "^1.2.4" + +negotiator@0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9" + integrity sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk= + +neo-async@^2.5.0: + version "2.6.0" + resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.0.tgz#b9d15e4d71c6762908654b5183ed38b753340835" + integrity sha512-MFh0d/Wa7vkKO3Y3LlacqAEeHK0mckVqzDieUKTT+KGxi+zIpeVsFxymkIiRpbpDziHc290Xr9A1O4Om7otoRA== + +next-tick@1: + version "1.0.0" + resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c" + integrity sha1-yobR/ogoFpsBICCOPchCS524NCw= + +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" + integrity sha512-5AzFzdoIMb89hBGMZglEegffzgRg+ZFoUmisQ8HI4j1KDdpx13J0taNp2y9xPbur6W61gepGDDotGBVQ7mfUCg== + 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.10.0: + version "0.10.3" + resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.10.3.tgz#3070040716afdc778747b61b6887bf78880b80fc" + integrity sha512-d1xFs+C/IPS8Id0qPTZ4bUT8wWryfR/OzzAFxweG+uLN85oPzyo2Iw6bVlLQ/JOdgNonXLCoRyqDzDWq4iw72A== + dependencies: + 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" + +node-releases@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.3.tgz#aad9ce0dcb98129c753f772c0aa01360fb90fbd2" + integrity sha512-6VrvH7z6jqqNFY200kdB6HdzkgM96Oaj9v3dqGfgp6mF+cHmU4wyQKZ2/WPDRVoR0Jz9KqbamaBN0ZhdUaysUQ== + dependencies: + semver "^5.3.0" + +nopt@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" + integrity sha1-0NRoWv1UFRk8jHUFYC0NF81kR00= + 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" + integrity sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw== + 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.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" + integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= + dependencies: + remove-trailing-separator "^1.0.1" + +npm-bundled@^1.0.1: + version "1.0.5" + resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.5.tgz#3c1732b7ba936b3a10325aef616467c0ccbcc979" + integrity sha512-m/e6jgWu8/v5niCUKQi9qQl8QdeEduFA96xHDDzFGqly0OOjI7c+60KM/2sppfnUU9JJagf+zs+yGhqSOFj71g== + +npm-packlist@^1.1.6: + version "1.2.0" + resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.2.0.tgz#55a60e793e272f00862c7089274439a4cc31fc7f" + integrity sha512-7Mni4Z8Xkx0/oegoqlcao/JpPCPEMtUvsmB0q7mgvlMinykJLSRTYuFqoQLYgGY8biuxIeiHO+QNJKbCfljewQ== + dependencies: + ignore-walk "^3.0.1" + npm-bundled "^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" + integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= + 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" + integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== + dependencies: + are-we-there-yet "~1.1.2" + console-control-strings "~1.1.0" + gauge "~2.7.3" + set-blocking "~2.0.0" + +null-check@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/null-check/-/null-check-1.0.0.tgz#977dffd7176012b9ec30d2a39db5cf72a0439edd" + integrity sha1-l33/1xdgErnsMNKjnbXPcqBDnt0= + +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" + integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= + +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" + integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= + +object-component@0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/object-component/-/object-component-0.0.3.tgz#f0c69aa50efc95b866c186f400a33769cb2f1291" + integrity sha1-8MaapQ78lbhmwYb0AKM3acsvEpE= + +object-copy@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" + integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw= + dependencies: + copy-descriptor "^0.1.0" + define-property "^0.2.5" + kind-of "^3.0.3" + +object-keys@^1.0.11, object-keys@^1.0.12: + version "1.0.12" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.12.tgz#09c53855377575310cca62f55bb334abff7b3ed2" + integrity sha512-FTMyFUm2wBcGHnH2eXmz7tC6IwlqQZ6mVZ+6dm6vZ4IQIHjs6FdNsQBuKGPuUUUY6NfJw2PshC08Tn6LzLDOag== + +object-visit@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" + integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs= + dependencies: + isobject "^3.0.0" + +object.assign@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da" + integrity sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w== + dependencies: + define-properties "^1.1.2" + function-bind "^1.1.1" + has-symbols "^1.0.0" + object-keys "^1.0.11" + +object.getownpropertydescriptors@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz#8758c846f5b407adab0f236e0986f14b051caa16" + integrity sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY= + dependencies: + define-properties "^1.1.2" + es-abstract "^1.5.1" + +object.pick@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" + integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= + dependencies: + isobject "^3.0.1" + +on-finished@~2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" + integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= + dependencies: + ee-first "1.1.1" + +once@^1.3.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= + dependencies: + wrappy "1" + +optimist@^0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686" + integrity sha1-2j6nRob6IaGaERwybpDrFaAZZoY= + dependencies: + minimist "~0.0.1" + wordwrap "~0.0.2" + +os-browserify@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" + integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc= + +os-homedir@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" + integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= + +os-locale@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-2.1.0.tgz#42bc2900a6b5b8bd17376c8e882b65afccf24bf2" + integrity sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA== + dependencies: + execa "^0.7.0" + lcid "^1.0.0" + mem "^1.1.0" + +os-tmpdir@^1.0.0, os-tmpdir@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" + integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= + +osenv@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" + integrity sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g== + 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" + integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= + +p-limit@^1.1.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" + integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== + dependencies: + p-try "^1.0.0" + +p-limit@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.1.0.tgz#1d5a0d20fb12707c758a655f6bbc4386b5930d68" + integrity sha512-NhURkNcrVB+8hNfLuysU8enY5xn2KXphsHBaC2YmRNTZRc7RWusw6apSpdEj3jo4CMb6W9nrF6tTnsJsJeyu6g== + dependencies: + p-try "^2.0.0" + +p-locate@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" + integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= + dependencies: + p-limit "^1.1.0" + +p-locate@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" + integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== + dependencies: + p-limit "^2.0.0" + +p-try@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" + integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= + +p-try@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.0.0.tgz#85080bb87c64688fa47996fe8f7dfbe8211760b1" + integrity sha512-hMp0onDKIajHfIkdRk3P4CdCmErkYAxxDtP3Wx/4nZ3aGlau2VKh3mZpcuFkH27WQkL/3WBCPOktzA9ZOAnMQQ== + +pako@~1.0.5: + version "1.0.7" + resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.7.tgz#2473439021b57f1516c82f58be7275ad8ef1bb27" + integrity sha512-3HNK5tW4x8o5mO8RuHZp3Ydw9icZXx0RANAOMzlMzx7LVXhMJ4mo3MOBpzyd7r/+RUu8BmndP47LXT+vzjtWcQ== + +parse-asn1@^5.0.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.1.tgz#f6bf293818332bd0dab54efb16087724745e6ca8" + integrity sha512-KPx7flKXg775zZpnp9SxJlz00gTd4BmJ2yJufSc44gMCRrRQ7NSzAcSJQfifuOLgW6bEi+ftrALtsgALeB2Adw== + 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-json@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" + integrity sha1-9ID0BDTvgHQfhGkJn43qGPVaTck= + dependencies: + error-ex "^1.2.0" + +parseqs@0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/parseqs/-/parseqs-0.0.5.tgz#d5208a3738e46766e291ba2ea173684921a8b89d" + integrity sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0= + dependencies: + better-assert "~1.0.0" + +parseuri@0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/parseuri/-/parseuri-0.0.5.tgz#80204a50d4dbb779bfdc6ebe2778d90e4bce320a" + integrity sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo= + dependencies: + better-assert "~1.0.0" + +parseurl@~1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.2.tgz#fc289d4ed8993119460c156253262cdc8de65bf3" + integrity sha1-/CidTtiZMRlGDBViUyYs3I3mW/M= + +pascalcase@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" + integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= + +path-browserify@0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.0.tgz#a0b870729aae214005b7d5032ec2cbbb0fb4451a" + integrity sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo= + +path-dirname@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" + integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA= + +path-exists@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" + integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= + +path-key@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" + integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= + +path-parse@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" + integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== + +path-type@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73" + integrity sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM= + dependencies: + pify "^2.0.0" + +pathval@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.0.tgz#b942e6d4bde653005ef6b71361def8727d0645e0" + integrity sha1-uULm1L3mUwBe9rcTYd74cn0GReA= + +pbkdf2@^3.0.3: + version "3.0.17" + resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.17.tgz#976c206530617b14ebb32114239f7b09336e93a6" + integrity sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA== + 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" + +pify@^2.0.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= + +pify@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" + integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= + +pkg-dir@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" + integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw== + dependencies: + find-up "^3.0.0" + +posix-character-classes@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" + integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= + +private@^0.1.6: + version "0.1.8" + resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" + integrity sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg== + +process-nextick-args@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa" + integrity sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw== + +process@^0.11.10: + version "0.11.10" + resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" + integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= + +prop-types@^15.6.2: + version "15.6.2" + resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.6.2.tgz#05d5ca77b4453e985d60fc7ff8c859094a497102" + integrity sha512-3pboPvLiWD7dkI3qf3KbUe6hKFKa52w+AE0VCqECtf+QHAKgOL37tTaNCnuX1nAAQ4ZhyP+kYVKf8rLmJ/feDQ== + dependencies: + loose-envify "^1.3.1" + object-assign "^4.1.1" + +prr@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" + integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY= + +pseudomap@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" + integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= + +public-encrypt@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" + integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q== + 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" + safe-buffer "^5.1.2" + +punycode@1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" + integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= + +punycode@^1.2.4: + version "1.4.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" + integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= + +punycode@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" + integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== + +qjobs@^1.1.4: + version "1.2.0" + resolved "https://registry.yarnpkg.com/qjobs/-/qjobs-1.2.0.tgz#c45e9c61800bd087ef88d7e256423bdd49e5d071" + integrity sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg== + +qs@6.5.2: + version "6.5.2" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" + integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== + +querystring-es3@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" + integrity sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM= + +querystring@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" + integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= + +randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5: + version "2.0.6" + resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.0.6.tgz#d302c522948588848a8d300c932b44c24231da80" + integrity sha512-CIQ5OFxf4Jou6uOKe9t1AOgqpeU5fd70A8NPdHSGeYXqXsPe6peOwI0cUl88RWZ6sP1vPMV3avd/R6cZ5/sP1A== + dependencies: + safe-buffer "^5.1.0" + +randomfill@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" + integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw== + dependencies: + randombytes "^2.0.5" + safe-buffer "^5.1.0" + +range-parser@^1.0.3, range-parser@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e" + integrity sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4= + +raw-body@2.3.3: + version "2.3.3" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.3.3.tgz#1b324ece6b5706e153855bc1148c65bb7f6ea0c3" + integrity sha512-9esiElv1BrZoI3rCDuOuKCBRbuApGGaDPQfjSflGxdy4oyzqghxu6klEkkVIvBje+FF0BX9coEv8KqW6X/7njw== + dependencies: + bytes "3.0.0" + http-errors "1.6.3" + iconv-lite "0.4.23" + unpipe "1.0.0" + +rc@^1.2.7: + version "1.2.8" + resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" + integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== + dependencies: + deep-extend "^0.6.0" + ini "~1.3.0" + minimist "^1.2.0" + strip-json-comments "~2.0.1" + +react-dom@^16.7.0: + version "16.7.0" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.7.0.tgz#a17b2a7ca89ee7390bc1ed5eb81783c7461748b8" + integrity sha512-D0Ufv1ExCAmF38P2Uh1lwpminZFRXEINJe53zRAbm4KPwSyd6DY/uDoS0Blj9jvPpn1+wivKpZYc8aAAN/nAkg== + dependencies: + loose-envify "^1.1.0" + object-assign "^4.1.1" + prop-types "^15.6.2" + scheduler "^0.12.0" + +react@^16.7.0: + version "16.7.0" + resolved "https://registry.yarnpkg.com/react/-/react-16.7.0.tgz#b674ec396b0a5715873b350446f7ea0802ab6381" + integrity sha512-StCz3QY8lxTb5cl2HJxjwLFOXPIFQp+p+hxQfc8WE0QiLfCtIlKj8/+5tjjKm8uSTlAW+fCPaavGFS06V9Ar3A== + dependencies: + loose-envify "^1.1.0" + object-assign "^4.1.1" + prop-types "^15.6.2" + scheduler "^0.12.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" + integrity sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4= + 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" + integrity sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg= + 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.3.0, readable-stream@^2.3.3, readable-stream@^2.3.6: + version "2.3.6" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" + integrity sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + +readdirp@^2.0.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" + integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ== + dependencies: + graceful-fs "^4.1.11" + micromatch "^3.1.10" + readable-stream "^2.0.2" + +regenerate-unicode-properties@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-7.0.0.tgz#107405afcc4a190ec5ed450ecaa00ed0cafa7a4c" + integrity sha512-s5NGghCE4itSlUS+0WUj88G6cfMVMmH8boTPNvABf8od+2dhT9WDlWu8n01raQAJZMOK8Ch6jSexaRO7swd6aw== + dependencies: + regenerate "^1.4.0" + +regenerate@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.0.tgz#4a856ec4b56e4077c557589cae85e7a4c8869a11" + integrity sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg== + +regenerator-runtime@^0.11.0: + version "0.11.1" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" + integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== + +regenerator-transform@^0.13.3: + version "0.13.3" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.13.3.tgz#264bd9ff38a8ce24b06e0636496b2c856b57bcbb" + integrity sha512-5ipTrZFSq5vU2YoGoww4uaRVAK4wyYC4TSICibbfEPOruUu8FFP7ErV0BjmbIOEpn3O/k9na9UEdYR/3m7N6uA== + dependencies: + private "^0.1.6" + +regex-not@^1.0.0, regex-not@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" + integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== + dependencies: + extend-shallow "^3.0.2" + safe-regex "^1.1.0" + +regexpu-core@^4.1.3, regexpu-core@^4.2.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.4.0.tgz#8d43e0d1266883969720345e70c275ee0aec0d32" + integrity sha512-eDDWElbwwI3K0Lo6CqbQbA6FwgtCz4kYTarrri1okfkRLZAqstU+B3voZBCjg8Fl6iq0gXrJG6MvRgLthfvgOA== + dependencies: + regenerate "^1.4.0" + regenerate-unicode-properties "^7.0.0" + regjsgen "^0.5.0" + regjsparser "^0.6.0" + unicode-match-property-ecmascript "^1.0.4" + unicode-match-property-value-ecmascript "^1.0.2" + +regjsgen@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.0.tgz#a7634dc08f89209c2049adda3525711fb97265dd" + integrity sha512-RnIrLhrXCX5ow/E5/Mh2O4e/oa1/jW0eaBKTSy3LaCj+M3Bqvm97GWDp2yUtzIs4LEn65zR2yiYGFqb2ApnzDA== + +regjsparser@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.0.tgz#f1e6ae8b7da2bae96c99399b868cd6c933a2ba9c" + integrity sha512-RQ7YyokLiQBomUJuUG8iGVvkgOLxwyZM8k6d3q5SAXpg4r5TZJZigKFvC6PpD+qQ98bCDC5YelPeA3EucDoNeQ== + 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" + integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= + +repeat-element@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce" + integrity sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g== + +repeat-string@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-0.2.2.tgz#c7a8d3236068362059a7e4651fc6884e8b1fb4ae" + integrity sha1-x6jTI2BoNiBZp+RlH8aITosftK4= + +repeat-string@^1.5.2, repeat-string@^1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" + integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= + +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" + integrity sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE= + +requires-port@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" + integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8= + +resolve-url@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" + integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= + +resolve@^1.3.2: + version "1.9.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.9.0.tgz#a14c6fdfa8f92a7df1d996cb7105fa744658ea06" + integrity sha512-TZNye00tI67lwYvzxCxHGjwTNlUV70io54/Ed4j6PscB8xVfuBJpRenI/o6dVk0cY0PYTY27AgCoGGxRnYuItQ== + dependencies: + path-parse "^1.0.6" + +ret@~0.1.10: + version "0.1.15" + resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" + integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== + +rfdc@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.1.2.tgz#e6e72d74f5dc39de8f538f65e00c36c18018e349" + integrity sha512-92ktAgvZhBzYTIK0Mja9uen5q5J3NRVMoDkJL2VMwq6SXjVCgqvQeVP2XAaUY6HT+XpQYeLSjb3UoitBryKmdA== + +right-align@^0.1.1: + version "0.1.3" + resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef" + integrity sha1-YTObci/mo1FWiSENJOFMlhSGE+8= + dependencies: + align-text "^0.1.1" + +rimraf@^2.6.0, rimraf@^2.6.1: + version "2.6.3" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" + integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== + dependencies: + glob "^7.1.3" + +ripemd160@^2.0.0, ripemd160@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" + integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== + dependencies: + hash-base "^3.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.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +safe-regex@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" + integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4= + dependencies: + ret "~0.1.10" + +"safer-buffer@>= 2.1.2 < 3": + version "2.1.2" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +sax@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" + integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== + +scheduler@^0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.12.0.tgz#8ab17699939c0aedc5a196a657743c496538647b" + integrity sha512-t7MBR28Akcp4Jm+QoR63XgAi9YgCUmgvDHqf5otgAj4QvdoBE4ImCX0ffehefePPG+aitiYHp0g/mW6s4Tp+dw== + dependencies: + loose-envify "^1.1.0" + object-assign "^4.1.1" + +"semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.4.1: + version "5.6.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.6.0.tgz#7e74256fbaa49c75aa7c7a205cc22799cac80004" + integrity sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg== + +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" + integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= + +set-value@^0.4.3: + version "0.4.3" + resolved "https://registry.yarnpkg.com/set-value/-/set-value-0.4.3.tgz#7db08f9d3d22dc7f78e53af3c3bf4666ecdfccf1" + integrity sha1-fbCPnT0i3H945Trzw79GZuzfzPE= + dependencies: + 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.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.0.tgz#71ae4a88f0feefbbf52d1ea604f3fb315ebb6274" + integrity sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg== + dependencies: + extend-shallow "^2.0.1" + is-extendable "^0.1.1" + is-plain-object "^2.0.3" + split-string "^3.0.1" + +setimmediate@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" + integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= + +setprototypeof@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" + integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== + +sha.js@^2.4.0, sha.js@^2.4.8: + version "2.4.11" + resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" + integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== + 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" + integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= + 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" + integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= + +signal-exit@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" + integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0= + +snapdragon-node@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" + integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== + dependencies: + define-property "^1.0.0" + isobject "^3.0.0" + snapdragon-util "^3.0.1" + +snapdragon-util@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" + integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== + dependencies: + kind-of "^3.2.0" + +snapdragon@^0.8.1: + version "0.8.2" + resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" + integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== + dependencies: + 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" + +socket.io-adapter@~1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-1.1.1.tgz#2a805e8a14d6372124dd9159ad4502f8cb07f06b" + integrity sha1-KoBeihTWNyEk3ZFZrUUC+MsH8Gs= + +socket.io-client@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-2.1.1.tgz#dcb38103436ab4578ddb026638ae2f21b623671f" + integrity sha512-jxnFyhAuFxYfjqIgduQlhzqTcOEQSn+OHKVfAxWaNWa7ecP7xSNk2Dx/3UEsDcY7NcFafxvNvKPmmO7HTwTxGQ== + dependencies: + backo2 "1.0.2" + base64-arraybuffer "0.1.5" + component-bind "1.0.0" + component-emitter "1.2.1" + debug "~3.1.0" + engine.io-client "~3.2.0" + has-binary2 "~1.0.2" + has-cors "1.1.0" + indexof "0.0.1" + object-component "0.0.3" + parseqs "0.0.5" + parseuri "0.0.5" + socket.io-parser "~3.2.0" + to-array "0.1.4" + +socket.io-parser@~3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.2.0.tgz#e7c6228b6aa1f814e6148aea325b51aa9499e077" + integrity sha512-FYiBx7rc/KORMJlgsXysflWx/RIvtqZbyGLlHZvjfmPTPeuD/I8MaW7cfFrj5tRltICJdgwflhfZ3NVVbVLFQA== + dependencies: + component-emitter "1.2.1" + debug "~3.1.0" + isarray "2.0.1" + +socket.io@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-2.1.1.tgz#a069c5feabee3e6b214a75b40ce0652e1cfb9980" + integrity sha512-rORqq9c+7W0DAK3cleWNSyfv/qKXV99hV4tZe+gGLfBECw3XEhBy7x85F3wypA9688LKjtwO9pX9L33/xQI8yA== + dependencies: + debug "~3.1.0" + engine.io "~3.2.0" + has-binary2 "~1.0.2" + socket.io-adapter "~1.1.0" + socket.io-client "2.1.1" + socket.io-parser "~3.2.0" + +source-list-map@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" + integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== + +source-map-resolve@^0.5.0: + version "0.5.2" + resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.2.tgz#72e2cc34095543e43b2c62b2c4c10d4a9054f259" + integrity sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA== + dependencies: + 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-url@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" + integrity sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM= + +source-map@^0.5.0, 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" + integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= + +source-map@^0.6.1, source-map@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +spdx-correct@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.0.tgz#fb83e504445268f154b074e218c87c003cd31df4" + integrity sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q== + dependencies: + spdx-expression-parse "^3.0.0" + spdx-license-ids "^3.0.0" + +spdx-exceptions@^2.1.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz#2ea450aee74f2a89bfb94519c07fcd6f41322977" + integrity sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA== + +spdx-expression-parse@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz#99e119b7a5da00e05491c9fa338b7904823b41d0" + integrity sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg== + dependencies: + spdx-exceptions "^2.1.0" + spdx-license-ids "^3.0.0" + +spdx-license-ids@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.3.tgz#81c0ce8f21474756148bbb5f3bfc0f36bf15d76e" + integrity sha512-uBIcIl3Ih6Phe3XHK1NqboJLdGfwr1UN3k6wSD1dZpmPsIkb8AGNbZYJ1fOBk834+Gxy8rpfDxrS6XLEMZMY2g== + +split-string@^3.0.1, split-string@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" + integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== + dependencies: + extend-shallow "^3.0.0" + +static-extend@^0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" + integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY= + dependencies: + define-property "^0.2.5" + object-copy "^0.1.0" + +"statuses@>= 1.4.0 < 2": + version "1.5.0" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" + integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= + +statuses@~1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.3.1.tgz#faf51b9eb74aaef3b3acf4ad5f61abf24cb7b93e" + integrity sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4= + +stream-browserify@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.1.tgz#66266ee5f9bdb9940a4e4514cafb43bb71e5c9db" + integrity sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds= + dependencies: + inherits "~2.0.1" + readable-stream "^2.0.2" + +stream-http@^2.7.2: + version "2.8.3" + resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc" + integrity sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw== + dependencies: + builtin-status-codes "^3.0.0" + inherits "^2.0.1" + readable-stream "^2.3.6" + to-arraybuffer "^1.0.0" + xtend "^4.0.0" + +streamroller@0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/streamroller/-/streamroller-0.7.0.tgz#a1d1b7cf83d39afb0d63049a5acbf93493bdf64b" + integrity sha512-WREzfy0r0zUqp3lGO096wRuUp7ho1X6uo/7DJfTlEi0Iv/4gT7YHqXDjKC2ioVGBZtE8QzsQD9nx1nIuoZ57jQ== + dependencies: + date-format "^1.2.0" + debug "^3.1.0" + mkdirp "^0.5.1" + readable-stream "^2.3.0" + +string-width@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" + integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M= + dependencies: + code-point-at "^1.0.0" + is-fullwidth-code-point "^1.0.0" + strip-ansi "^3.0.0" + +"string-width@^1.0.2 || 2", string-width@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" + integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== + dependencies: + is-fullwidth-code-point "^2.0.0" + strip-ansi "^4.0.0" + +string_decoder@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.2.0.tgz#fe86e738b19544afe70469243b2a1ee9240eae8d" + integrity sha512-6YqyX6ZWEYguAxgZzHGL7SsCeGx3V2TtOTqZz1xSTSWnqsbWwbptafNyvf/ACquZUXV3DANr5BDIwNYe1mN42w== + dependencies: + safe-buffer "~5.1.0" + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" + +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" + integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= + 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" + integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= + 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" + integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= + +strip-eof@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" + integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= + +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" + integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= + +supports-color@5.4.0: + version "5.4.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.4.0.tgz#1c6b337402c2137605efe19f10fec390f6faab54" + integrity sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w== + dependencies: + has-flag "^3.0.0" + +supports-color@^4.2.1: + version "4.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.5.0.tgz#be7a0de484dec5c5cddf8b3d59125044912f635b" + integrity sha1-vnoN5ITexcXN34s9WRJQRJEvY1s= + dependencies: + has-flag "^2.0.0" + +supports-color@^5.3.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +tapable@^0.2.7: + version "0.2.9" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-0.2.9.tgz#af2d8bbc9b04f74ee17af2b4d9048f807acd18a8" + integrity sha512-2wsvQ+4GwBvLPLWsNfLCDYGsW6xb7aeC6utq2Qh0PFwgEy7K7dsma9Jsmb2zSQj7GvYAyUGSntLtsv++GmgL1A== + +tar@^4: + version "4.4.8" + resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.8.tgz#b19eec3fde2a96e64666df9fdb40c5ca1bc3747d" + integrity sha512-LzHF64s5chPQQS0IYBn9IN5h3i98c12bo4NCO7e0sGM2llXQ3p2FGC5sdENN4cTW48O915Sh+x+EXx7XW96xYQ== + dependencies: + 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" + +timers-browserify@^2.0.4: + version "2.0.10" + resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.10.tgz#1d28e3d2aadf1d5a5996c4e9f95601cd053480ae" + integrity sha512-YvC1SV1XdOUaL6gx5CoGroT3Gu49pK9+TZ38ErPldOWW4j49GI1HKs9DV+KGq/w6y+LZ72W1c8cKz2vzY+qpzg== + dependencies: + setimmediate "^1.0.4" + +tmp@0.0.33, tmp@0.0.x: + version "0.0.33" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" + integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== + dependencies: + os-tmpdir "~1.0.2" + +to-array@0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/to-array/-/to-array-0.1.4.tgz#17e6c11f73dd4f3d74cda7a4ff3238e9ad9bf890" + integrity sha1-F+bBH3PdTz10zaek/zI46a2b+JA= + +to-arraybuffer@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" + integrity sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M= + +to-fast-properties@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" + integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= + +to-object-path@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" + integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68= + dependencies: + kind-of "^3.0.2" + +to-regex-range@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" + integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg= + dependencies: + is-number "^3.0.0" + repeat-string "^1.6.1" + +to-regex@^3.0.1, to-regex@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" + integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== + dependencies: + define-property "^2.0.2" + extend-shallow "^3.0.2" + regex-not "^1.0.2" + safe-regex "^1.1.0" + +trim-right@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" + integrity sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM= + +tty-browserify@0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" + integrity sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY= + +type-detect@^4.0.0, type-detect@^4.0.5: + version "4.0.8" + resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" + integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== + +type-is@~1.6.16: + version "1.6.16" + resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.16.tgz#f89ce341541c672b25ee7ae3c73dee3b2be50194" + integrity sha512-HRkVv/5qY2G6I8iab9cI7v1bOIdhm94dVjQCPFElW9W+3GeDOSHmy2EBYe4VTApuzolPcmgFTN3ftVJRKR2J9Q== + dependencies: + media-typer "0.3.0" + mime-types "~2.1.18" + +uglify-js@^2.8.29: + version "2.8.29" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.29.tgz#29c5733148057bb4e1f75df35b7a9cb72e6a59dd" + integrity sha1-KcVzMUgFe7Th913zW3qcty5qWd0= + 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" + integrity sha1-bgkk1r2mta/jSeOabWMoUKD4grc= + +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" + integrity sha1-uVH0q7a9YX5m9j64kUmOORdj4wk= + dependencies: + source-map "^0.5.6" + uglify-js "^2.8.29" + webpack-sources "^1.0.1" + +ultron@~1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.1.1.tgz#9fe1536a10a664a65266a1e3ccf85fd36302bc9c" + integrity sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og== + +unicode-canonical-property-names-ecmascript@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818" + integrity sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ== + +unicode-match-property-ecmascript@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz#8ed2a32569961bce9227d09cd3ffbb8fed5f020c" + integrity sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg== + dependencies: + unicode-canonical-property-names-ecmascript "^1.0.4" + unicode-property-aliases-ecmascript "^1.0.4" + +unicode-match-property-value-ecmascript@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.0.2.tgz#9f1dc76926d6ccf452310564fd834ace059663d4" + integrity sha512-Rx7yODZC1L/T8XKo/2kNzVAQaRE88AaMvI1EF/Xnj3GW2wzN6fop9DDWuFAKUVFH7vozkz26DzP0qyWLKLIVPQ== + +unicode-property-aliases-ecmascript@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.4.tgz#5a533f31b4317ea76f17d807fa0d116546111dd0" + integrity sha512-2WSLa6OdYd2ng8oqiGIWnJqyFArvhn+5vgx5GTxMbUYjCYKUcuKS62YLFF0R/BDGlB1yzXjQOLtPAfHsgirEpg== + +union-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.0.tgz#5c71c34cb5bad5dcebe3ea0cd08207ba5aa1aea4" + integrity sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ= + dependencies: + arr-union "^3.1.0" + get-value "^2.0.6" + is-extendable "^0.1.1" + set-value "^0.4.3" + +unpipe@1.0.0, unpipe@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= + +unset-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" + integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk= + dependencies: + has-value "^0.3.1" + isobject "^3.0.0" + +upath@^1.0.5: + version "1.1.0" + resolved "https://registry.yarnpkg.com/upath/-/upath-1.1.0.tgz#35256597e46a581db4793d0ce47fa9aebfc9fabd" + integrity sha512-bzpH/oBhoS/QI/YtbkqCg6VEiPYjSZtrHQM6/QnJS6OL9pKUFLqb3aFh4Scvwm45+7iAgiMkLhSbaZxUqmrprw== + +uri-js@^4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" + integrity sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ== + dependencies: + punycode "^2.1.0" + +urix@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" + integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= + +url-join@^2.0.2: + version "2.0.5" + resolved "https://registry.yarnpkg.com/url-join/-/url-join-2.0.5.tgz#5af22f18c052a000a48d7b82c5e9c2e2feeda728" + integrity sha1-WvIvGMBSoACkjXuCxenC4v7tpyg= + +url@^0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" + integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE= + dependencies: + punycode "1.3.2" + querystring "0.2.0" + +use@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" + integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== + +useragent@2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/useragent/-/useragent-2.3.0.tgz#217f943ad540cb2128658ab23fc960f6a88c9972" + integrity sha512-4AoH4pxuSvHCjqLO04sU6U/uE65BYza8l/KKBS0b0hnUPWi+cQ2BpeTEwejCSx9SPV5/U03nniDTrWx5NrmKdw== + dependencies: + lru-cache "4.1.x" + tmp "0.0.x" + +util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= + +util.promisify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.0.tgz#440f7165a459c9a16dc145eb8e72f35687097030" + integrity sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA== + dependencies: + define-properties "^1.1.2" + object.getownpropertydescriptors "^2.0.3" + +util@0.10.3: + version "0.10.3" + resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" + integrity sha1-evsa/lCAUkZInj23/g7TeTNqwPk= + dependencies: + inherits "2.0.1" + +util@^0.10.3: + version "0.10.4" + resolved "https://registry.yarnpkg.com/util/-/util-0.10.4.tgz#3aa0125bfe668a4672de58857d3ace27ecb76901" + integrity sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A== + dependencies: + inherits "2.0.3" + +utils-merge@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" + integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= + +uuid@^3.1.0: + version "3.3.2" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131" + integrity sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA== + +validate-npm-package-license@^3.0.1: + version "3.0.4" + resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" + integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== + dependencies: + spdx-correct "^3.0.0" + spdx-expression-parse "^3.0.0" + +vm-browserify@0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-0.0.4.tgz#5d7ea45bbef9e4a6ff65f95438e0a87c357d5a73" + integrity sha1-XX6kW7755Kb/ZflUOOCofDV9WnM= + dependencies: + indexof "0.0.1" + +void-elements@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/void-elements/-/void-elements-2.0.1.tgz#c066afb582bb1cb4128d60ea92392e94d5e9dbec" + integrity sha1-wGavtYK7HLQSjWDqkjkulNXp2+w= + +watchpack@^1.4.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.6.0.tgz#4bc12c2ebe8aa277a71f1d3f14d685c7b446cd00" + integrity sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA== + dependencies: + chokidar "^2.0.2" + graceful-fs "^4.1.2" + neo-async "^2.5.0" + +webpack-dev-middleware@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-2.0.6.tgz#a51692801e8310844ef3e3790e1eacfe52326fd4" + integrity sha512-tj5LLD9r4tDuRIDa5Mu9lnY2qBBehAITv6A9irqXhw/HQquZgTx3BCd57zYbU2gMDnncA49ufK2qVQSbaKJwOw== + dependencies: + loud-rejection "^1.6.0" + memory-fs "~0.4.1" + mime "^2.1.0" + path-is-absolute "^1.0.0" + range-parser "^1.0.3" + url-join "^2.0.2" + webpack-log "^1.0.1" + +webpack-log@^1.0.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/webpack-log/-/webpack-log-1.2.0.tgz#a4b34cda6b22b518dbb0ab32e567962d5c72a43d" + integrity sha512-U9AnICnu50HXtiqiDxuli5gLB5PGBo7VvcHx36jRZHwK4vzOYLbImqT4lwWwoMHdQWwEKw736fCHEekokTEKHA== + dependencies: + chalk "^2.1.0" + log-symbols "^2.1.0" + loglevelnext "^1.0.1" + uuid "^3.1.0" + +webpack-sources@^1.0.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.3.0.tgz#2a28dcb9f1f45fe960d8f1493252b5ee6530fa85" + integrity sha512-OiVgSrbGu7NEnEvQJJgdSFPl2qWKkWq5lHMhgiToIiN9w34EBnjYzSYs+VbL5KoYiLNtFFa7BZIKxRED3I32pA== + dependencies: + source-list-map "^2.0.0" + source-map "~0.6.1" + +webpack@^3.0.0: + version "3.12.0" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-3.12.0.tgz#3f9e34360370602fcf639e97939db486f4ec0d74" + integrity sha512-Sw7MdIIOv/nkzPzee4o0EdvCuPmxT98+vVpIvwtcwcF1Q4SDSNp92vwcKc4REe7NItH9f1S4ra9FuQ7yuYZ8bQ== + dependencies: + acorn "^5.0.0" + acorn-dynamic-import "^2.0.0" + ajv "^6.1.0" + ajv-keywords "^3.1.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" + +which-module@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" + integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= + +which@^1.2.1, which@^1.2.9: + version "1.3.1" + resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" + integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== + dependencies: + isexe "^2.0.0" + +wide-align@^1.1.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" + integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA== + dependencies: + string-width "^1.0.2 || 2" + +window-size@0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d" + integrity sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0= + +wordwrap@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f" + integrity sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8= + +wordwrap@~0.0.2: + version "0.0.3" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" + integrity sha1-o9XabNXAvAAI03I0u68b7WMFkQc= + +wrap-ansi@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" + integrity sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU= + 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" + integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= + +ws@~3.3.1: + version "3.3.3" + resolved "https://registry.yarnpkg.com/ws/-/ws-3.3.3.tgz#f1cf84fe2d5e901ebce94efaece785f187a228f2" + integrity sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA== + dependencies: + async-limiter "~1.0.0" + safe-buffer "~5.1.0" + ultron "~1.1.0" + +xmlhttprequest-ssl@~1.5.4: + version "1.5.5" + resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz#c2876b06168aadc40e57d97e81191ac8f4398b3e" + integrity sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4= + +xtend@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" + integrity sha1-pcbVMr5lbiPbgg77lDofBJmNY68= + +y18n@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" + integrity sha1-bRX7qITAhnnA136I53WegR4H+kE= + +yallist@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" + integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= + +yallist@^3.0.0, yallist@^3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.0.3.tgz#b4b049e314be545e3ce802236d6cd22cd91c3de9" + integrity sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A== + +yargs-parser@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-7.0.0.tgz#8d0ac42f16ea55debd332caf4c4038b3e3f5dfd9" + integrity sha1-jQrELxbqVd69MyyvTEA4s+P139k= + 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" + integrity sha1-YpmpBVsc78lp/355wdkY3Osiw2A= + 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" + integrity sha1-9+572FfdfB0tOMDnTvvWgdFDH9E= + dependencies: + camelcase "^1.0.2" + cliui "^2.1.0" + decamelize "^1.0.0" + window-size "0.1.0" + +yeast@0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/yeast/-/yeast-0.1.2.tgz#008e06d8094320c372dbc2f8ed76a0ca6c8ac419" + integrity sha1-AI4G2AlDIMNy28L47XagymyKxBk= From 5f22d0d3b01eee6ee3073d1d2d10fb9bab89d90d Mon Sep 17 00:00:00 2001 From: Alan Dipert Date: Tue, 8 Jan 2019 09:54:49 -0800 Subject: [PATCH 31/77] Source map support in test failures --- .gitignore | 1 + karma.conf.js | 7 +++---- package.json | 2 +- yarn.lock | 25 +++++++++++++++++++------ 4 files changed, 24 insertions(+), 11 deletions(-) diff --git a/.gitignore b/.gitignore index c833a2c..d8aa0cc 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,4 @@ .RData .Ruserdata inst/doc +node_modules \ No newline at end of file diff --git a/karma.conf.js b/karma.conf.js index 9bf40d9..9d2f973 100644 --- a/karma.conf.js +++ b/karma.conf.js @@ -1,11 +1,10 @@ -// TODO: Get source maps for failures working. module.exports = function (config) { config.set({ - frameworks: ['mocha', 'chai'], + frameworks: ['mocha', 'chai', 'source-map-support'], files: ['inst/www/react-tools/react-tools.js', 'js-tests/js-tests.jsx'], preprocessors: { 'js-tests/*.js': ['webpack'], - 'js-tests/*.jsx': ['webpack', 'sourcemap'] + 'js-tests/*.jsx': ['webpack'] }, webpack: { module: { @@ -19,7 +18,7 @@ module.exports = function (config) { } ] }, - devtool: 'source-map' + devtool: 'inline-source-map' }, webpackMiddleware: { stats: 'errors-only' diff --git a/package.json b/package.json index 7aabed1..d941027 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,7 @@ "karma-chrome-launcher": "^2.2.0", "karma-mocha": "^1.3.0", "karma-webpack": "^3.0.5", - "karma-sourcemap-loader": "^0.3.7", + "karma-source-map-support": "^1.3.0", "mocha": "^5.2.0", "react": "^16.7.0", "react-dom": "^16.7.0", diff --git a/yarn.lock b/yarn.lock index 7a9566e..e505651 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1057,6 +1057,11 @@ buffer-fill@^1.0.0: resolved "https://registry.yarnpkg.com/buffer-fill/-/buffer-fill-1.0.0.tgz#f8f78b76789888ef39f205cd637f68e702122b2c" integrity sha1-+PeLdniYiO858gXNY39o5wISKyw= +buffer-from@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" + integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== + buffer-xor@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" @@ -2553,12 +2558,12 @@ karma-mocha@^1.3.0: dependencies: minimist "1.2.0" -karma-sourcemap-loader@^0.3.7: - version "0.3.7" - resolved "https://registry.yarnpkg.com/karma-sourcemap-loader/-/karma-sourcemap-loader-0.3.7.tgz#91322c77f8f13d46fed062b042e1009d4c4505d8" - integrity sha1-kTIsd/jxPUb+0GKwQuEAnUxFBdg= +karma-source-map-support@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/karma-source-map-support/-/karma-source-map-support-1.3.0.tgz#36dd4d8ca154b62ace95696236fae37caf0a7dde" + integrity sha512-HcPqdAusNez/ywa+biN4EphGz62MmQyPggUsDfsHqa7tSe4jdsxgvTKuDfIazjL+IOxpVWyT7Pr4dhAV+sxX5Q== dependencies: - graceful-fs "^4.1.2" + source-map-support "^0.5.5" karma-webpack@^3.0.5: version "3.0.5" @@ -3871,6 +3876,14 @@ source-map-resolve@^0.5.0: source-map-url "^0.4.0" urix "^0.1.0" +source-map-support@^0.5.5: + version "0.5.9" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.9.tgz#41bc953b2534267ea2d605bccfa7bfa3111ced5f" + integrity sha512-gR6Rw4MvUlYy83vP0vxoVNzM6t8MUXqNuRsuBmBHQDu1Fh6X015FrLdgoDKcNdkwGubozq0P4N0Q37UyFVr1EA== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + source-map-url@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" @@ -3881,7 +3894,7 @@ source-map@^0.5.0, source-map@^0.5.3, source-map@^0.5.6, source-map@~0.5.1: resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= -source-map@^0.6.1, source-map@~0.6.1: +source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== From b5bf7d77e0d49d874fd35d2e70aa6c3fc3407509 Mon Sep 17 00:00:00 2001 From: Alan Dipert Date: Tue, 8 Jan 2019 12:45:59 -0800 Subject: [PATCH 32/77] Attempt Travis matrix build to run JS in addition to R tests --- .travis.yml | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/.travis.yml b/.travis.yml index d326275..51ac449 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,8 +1,11 @@ -# R for travis: see documentation at https://docs.travis-ci.com/user/languages/r - -language: R -sudo: required -cache: packages - -before_install: - - sudo apt-get install -y libv8-dev +matrix: + include: + # R for travis: see documentation at https://docs.travis-ci.com/user/languages/r + - language: R + sudo: required + cache: packages + before_install: + - sudo apt-get install -y libv8-dev + - language: node_js + addons: + - chrome: stable \ No newline at end of file From 7b85242e9ac918ef3c6182c6c531f993b66fe046 Mon Sep 17 00:00:00 2001 From: Alan Dipert Date: Tue, 8 Jan 2019 12:55:54 -0800 Subject: [PATCH 33/77] Specify Node version in Travis config --- .travis.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.travis.yml b/.travis.yml index 51ac449..360fb7b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -7,5 +7,7 @@ matrix: before_install: - sudo apt-get install -y libv8-dev - language: node_js + node_js: + - "11.4.0" addons: - chrome: stable \ No newline at end of file From 79ca0d179557947f01ee39cfb6c355b4e7bb3c85 Mon Sep 17 00:00:00 2001 From: Alan Dipert Date: Tue, 8 Jan 2019 13:00:14 -0800 Subject: [PATCH 34/77] Travis: specify R version --- .travis.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 360fb7b..092d345 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,7 +1,9 @@ matrix: include: # R for travis: see documentation at https://docs.travis-ci.com/user/languages/r - - language: R + - language: r + r: + - release sudo: required cache: packages before_install: From 23057466cf034ee12c1c1ab684d8386ba50b2713 Mon Sep 17 00:00:00 2001 From: Alan Dipert Date: Wed, 9 Jan 2019 06:51:39 -0800 Subject: [PATCH 35/77] Rename reactData => reactMarkup --- R/reacttools.R | 9 ++++++--- inst/templates/widget_r.txt | 2 +- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/R/reacttools.R b/R/reacttools.R index 61d5d05..04f5132 100644 --- a/R/reacttools.R +++ b/R/reacttools.R @@ -98,15 +98,18 @@ React <- structure( #' @export `[[<-.react_component_builder` <- `$<-.react_component_builder` -#' Create a data object for sending a React component to the client. +#' Prepare data that represents a character vector, a React component, or an +#' htmltools tag for sending to the client. #' -#' @param tag React component or \code{\link[htmltools]{tag}} +#' @param tag character vector or React component or +#' \code{\link[htmltools]{tag}} #' #' @return #' @export #' #' @examples -reactData <- function(tag) { +reactMarkup <- function(tag) { + # TODO ensure tag is either an htmltools tag or a string (throw otherwise) list(tag = tag) } diff --git a/inst/templates/widget_r.txt b/inst/templates/widget_r.txt index 2ca8a37..709112d 100644 --- a/inst/templates/widget_r.txt +++ b/inst/templates/widget_r.txt @@ -8,7 +8,7 @@ %s <- function(message, width = NULL, height = NULL, elementId = NULL) { # describe a React component to send to the browser for rendering. - component <- reactR::reactData(htmltools::tag("div", list(message))) + component <- reactR::reactMarkup(htmltools::tag("div", list(message))) # create widget htmlwidgets::createWidget( From be51515f395218154841522f3e9b59916e2b80d9 Mon Sep 17 00:00:00 2001 From: Alan Dipert Date: Wed, 9 Jan 2019 13:07:00 -0800 Subject: [PATCH 36/77] Rename reactData => reactMarkup --- NAMESPACE | 2 +- man/reactData.Rd | 14 -------------- man/reactMarkup.Rd | 17 +++++++++++++++++ 3 files changed, 18 insertions(+), 15 deletions(-) delete mode 100644 man/reactData.Rd create mode 100644 man/reactMarkup.Rd diff --git a/NAMESPACE b/NAMESPACE index 7eeba5d..14a93f4 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -10,6 +10,6 @@ export(component) export(html_dependency_corejs) export(html_dependency_react) export(html_dependency_reacttools) -export(reactData) +export(reactMarkup) export(scaffoldReactWidget) importFrom(htmltools,htmlDependency) diff --git a/man/reactData.Rd b/man/reactData.Rd deleted file mode 100644 index aee33b6..0000000 --- a/man/reactData.Rd +++ /dev/null @@ -1,14 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/reacttools.R -\name{reactData} -\alias{reactData} -\title{Create a data object for sending a React component to the client.} -\usage{ -reactData(tag) -} -\arguments{ -\item{tag}{React component or \code{\link[htmltools]{tag}}} -} -\description{ -Create a data object for sending a React component to the client. -} diff --git a/man/reactMarkup.Rd b/man/reactMarkup.Rd new file mode 100644 index 0000000..a3178c1 --- /dev/null +++ b/man/reactMarkup.Rd @@ -0,0 +1,17 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/reacttools.R +\name{reactMarkup} +\alias{reactMarkup} +\title{Prepare data that represents a character vector, a React component, or an +htmltools tag for sending to the client.} +\usage{ +reactMarkup(tag) +} +\arguments{ +\item{tag}{character vector or React component or +\code{\link[htmltools]{tag}}} +} +\description{ +Prepare data that represents a character vector, a React component, or an +htmltools tag for sending to the client. +} From eb51153534b738fc4f5f4b27d58fe321eb0641e7 Mon Sep 17 00:00:00 2001 From: Alan Dipert Date: Wed, 9 Jan 2019 15:32:08 -0800 Subject: [PATCH 37/77] Use new renderTemplate function for scaffold instead of sprintf --- R/scaffold.R | 19 ++++++++--- inst/templates/widget_app.R.txt | 8 ++--- inst/templates/widget_js.txt | 2 +- inst/templates/widget_package.json.txt | 2 +- inst/templates/widget_r.txt | 28 +++++++-------- inst/templates/widget_webpack.config.js.txt | 4 +-- inst/www/react-tools/react-tools.js | 38 ++++++++++++++------- 7 files changed, 62 insertions(+), 39 deletions(-) diff --git a/R/scaffold.R b/R/scaffold.R index 9133e56..bf7f887 100644 --- a/R/scaffold.R +++ b/R/scaffold.R @@ -51,6 +51,15 @@ slurp <- function(file) { ), collapse = "\n") } +# Perform a series of pattern replacements on str. +# Example: renderTemplate("foo ${x} bar ${y} baz ${x}", list(x = 1, y = 2)) +# Produces: "foo 1 bar 2 baz 1" +renderTemplate <- function(str, substitutions) { + Reduce(function(str, name) { + gsub(paste0("\\$\\{", name, "\\}"), substitutions[[name]], str) + }, names(substitutions), str) +} + capName = function(name){ paste0(toupper(substring(name, 1, 1)), substring(name, 2)) } @@ -59,7 +68,7 @@ addWidgetConstructor <- function(name, package, edit){ tpl <- slurp('templates/widget_r.txt') if (!file.exists(file_ <- sprintf("R/%s.R", name))){ cat( - sprintf(tpl, name, name, package, name, name, name, name, name, name, package, name, capName(name), name, name, name), + renderTemplate(tpl, list(name = name, package = package, capName = capName(name))), file = file_ ) message('Created boilerplate for widget constructor ', file_) @@ -93,7 +102,7 @@ addWidgetYAML <- function(name, edit){ } addPackageJSON <- function(npmPkg) { - tpl <- sprintf(slurp('templates/widget_package.json.txt'), npmPkg) + tpl <- renderTemplate(slurp('templates/widget_package.json.txt'), list(npmPkg = npmPkg)) if (!file.exists('package.json')) { cat(tpl, file = 'package.json') message('Created package.json') @@ -103,7 +112,7 @@ addPackageJSON <- function(npmPkg) { } addWebpackConfig <- function(name) { - tpl <- sprintf(slurp('templates/widget_webpack.config.js.txt'), name, name) + tpl <- renderTemplate(slurp('templates/widget_webpack.config.js.txt'), list(name = name)) if (!file.exists('webpack.config.js')) { cat(tpl, file = 'webpack.config.js') message('Created webpack.config.js') @@ -120,7 +129,7 @@ addWidgetJS <- function(name, edit){ dir.create('srcjs') } if (!file.exists(file_ <- sprintf('srcjs/%s.js', name))){ - cat(sprintf(tpl, name), file = file_) + cat(renderTemplate(tpl, list(name = name)), file = file_) message('Created boilerplate for widget javascript bindings at ', sprintf('srcjs/%s.js', name) ) @@ -131,7 +140,7 @@ addWidgetJS <- function(name, edit){ } addExampleApp <- function(name) { - tpl <- sprintf(slurp('templates/widget_app.R.txt'), name, name, capName(name), name) + tpl <- renderTemplate(slurp('templates/widget_app.R.txt'), list(name = name, capName = capName(name))) if (!file.exists('app.R')) { cat(tpl, file = 'app.R') message('Created example app.R') diff --git a/inst/templates/widget_app.R.txt b/inst/templates/widget_app.R.txt index 878bb83..f13747a 100644 --- a/inst/templates/widget_app.R.txt +++ b/inst/templates/widget_app.R.txt @@ -1,14 +1,14 @@ library(shiny) -library(%s) +library(${name}) ui <- fluidPage( titlePanel("reactR HTMLWidget Example"), - %sOutput('widgetOutput') + ${name}Output('widgetOutput') ) server <- function(input, output, session) { - output$widgetOutput <- render%s( - %s("Hello world!") + output$widgetOutput <- render${capName}( + ${name}("Hello world!") ) } diff --git a/inst/templates/widget_js.txt b/inst/templates/widget_js.txt index 96c0960..a92ec44 100644 --- a/inst/templates/widget_js.txt +++ b/inst/templates/widget_js.txt @@ -1,3 +1,3 @@ import { reactWidget } from 'reactR'; -reactWidget('%s', 'output', {}); +reactWidget('${name}', 'output', {}); diff --git a/inst/templates/widget_package.json.txt b/inst/templates/widget_package.json.txt index 0c2a05a..becff51 100644 --- a/inst/templates/widget_package.json.txt +++ b/inst/templates/widget_package.json.txt @@ -1,7 +1,7 @@ { "private": true, "dependencies": { - %s + ${npmPkg} }, "devDependencies": { "webpack": "^4.27.1", diff --git a/inst/templates/widget_r.txt b/inst/templates/widget_r.txt index 709112d..3e3a49c 100644 --- a/inst/templates/widget_r.txt +++ b/inst/templates/widget_r.txt @@ -5,53 +5,53 @@ #' @import htmlwidgets #' #' @export -%s <- function(message, width = NULL, height = NULL, elementId = NULL) { +${name} <- function(message, width = NULL, height = NULL, elementId = NULL) { # describe a React component to send to the browser for rendering. component <- reactR::reactMarkup(htmltools::tag("div", list(message))) # create widget htmlwidgets::createWidget( - name = '%s', + name = '${name}', component, width = width, height = height, - package = '%s', + package = '${package}', elementId = elementId ) } -#' Shiny bindings for %s +#' Shiny bindings for ${name} #' -#' Output and render functions for using %s within Shiny +#' Output and render functions for using ${name} within Shiny #' applications and interactive Rmd documents. #' #' @param outputId output variable to read from #' @param width,height Must be a valid CSS unit (like \code{'100\%%'}, #' \code{'400px'}, \code{'auto'}) or a number, which will be coerced to a #' string and have \code{'px'} appended. -#' @param expr An expression that generates a %s +#' @param expr An expression that generates a ${name} #' @param env The environment in which to evaluate \code{expr}. #' @param quoted Is \code{expr} a quoted expression (with \code{quote()})? This #' is useful if you want to save an expression in a variable. #' -#' @name %s-shiny +#' @name ${name}-shiny #' #' @export -%sOutput <- function(outputId, width = '100%%', height = '400px'){ - htmlwidgets::shinyWidgetOutput(outputId, '%s', width, height, package = '%s') +${name}Output <- function(outputId, width = '100%%', height = '400px'){ + htmlwidgets::shinyWidgetOutput(outputId, '${name}', width, height, package = '${package}') } -#' @rdname %s-shiny +#' @rdname ${name}-shiny #' @export -render%s <- function(expr, env = parent.frame(), quoted = FALSE) { +render${capName} <- function(expr, env = parent.frame(), quoted = FALSE) { if (!quoted) { expr <- substitute(expr) } # force quoted - htmlwidgets::shinyRenderWidget(expr, %sOutput, env, quoted = TRUE) + htmlwidgets::shinyRenderWidget(expr, ${name}Output, env, quoted = TRUE) } #' Called by HTMLWidgets to produce the widget's root element. -#' @rdname %s-shiny -%s_html <- function(id, style, class, ...) { +#' @rdname ${name}-shiny +${name}_html <- function(id, style, class, ...) { tagList( reactR::html_dependency_react(), reactR::html_dependency_reacttools(), diff --git a/inst/templates/widget_webpack.config.js.txt b/inst/templates/widget_webpack.config.js.txt index 78ceca0..4161d75 100644 --- a/inst/templates/widget_webpack.config.js.txt +++ b/inst/templates/widget_webpack.config.js.txt @@ -1,10 +1,10 @@ var path = require('path'); module.exports = { - entry: path.join(__dirname, 'srcjs', '%s.js'), + entry: path.join(__dirname, 'srcjs', '${name}.js'), output: { path: path.join(__dirname, 'inst', 'htmlwidgets'), - filename: '%s.js' + filename: '${name}.js' }, module: { rules: [ diff --git a/inst/www/react-tools/react-tools.js b/inst/www/react-tools/react-tools.js index c9e887a..6bea5a1 100644 --- a/inst/www/react-tools/react-tools.js +++ b/inst/www/react-tools/react-tools.js @@ -20,7 +20,7 @@ window.reactR = (function () { args.push(tag.children[i]); } } - return React.createElement.apply(null, args); + return React.createElement.apply(React, args); } var defaultOptions = { @@ -46,12 +46,19 @@ window.reactR = (function () { function formatDimension(dim, options) { if (options.appendPx) { - return dim.toString() + 'px'; + return dim + 'px'; } else { return dim; } } + function isTag(value) { + return (typeof value === 'object') + && value.hasOwnProperty('name') + && value.hasOwnProperty('attribs') + && value.hasOwnProperty('children'); + } + /** * Creates an HTMLWidget that is updated by rendering a React component. * React component constructors are made available by specifying them by @@ -67,15 +74,16 @@ window.reactR = (function () { name: name, type: type, factory: function (el, width, height) { - var lastValue; - renderValue = (function (value) { - if (actualOptions.renderOnResize) { - value.tag.attribs[actualOptions["widthProperty"]] = formatDimension(width); - value.tag.attribs[actualOptions["heightProperty"]] = formatDimension(height); - lastValue = value; - } - ReactDOM.render(hydrate(components, value.tag), el); - }); + var lastValue, + renderValue = (function (value) { + // TODO Handle strings naturally + if (actualOptions.renderOnResize) { + value.tag.attribs[actualOptions["widthProperty"]] = formatDimension(width); + value.tag.attribs[actualOptions["heightProperty"]] = formatDimension(height); + lastValue = value; + } + ReactDOM.render(hydrate(components, value.tag), el); + }); return { renderValue: renderValue, resize: function (newWidth, newHeight) { @@ -92,6 +100,12 @@ window.reactR = (function () { return { reactWidget: reactWidget, - hydrate: hydrate + hydrate: hydrate, + __internal: { + defaultOptions: defaultOptions, + mergeOptions: mergeOptions, + formatDimension: formatDimension, + isTag: isTag + } }; })() \ No newline at end of file From c129486dfb9fd0d8ee61c2db499e46759c35c431 Mon Sep 17 00:00:00 2001 From: timelyportfolio Date: Wed, 9 Jan 2019 20:22:22 -0600 Subject: [PATCH 38/77] add logo poc --- README.md | 2 ++ inst/logos/reactR-logo.png | Bin 0 -> 44738 bytes 2 files changed, 2 insertions(+) create mode 100644 inst/logos/reactR-logo.png diff --git a/README.md b/README.md index 991540d..b8b3300 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,8 @@ [![CRAN_Status_Badge](http://www.r-pkg.org/badges/version/reactR)](https://cran.r-project.org/package=reactR) [![Travis-CI Build Status](https://travis-ci.org/react-R/reactR.svg?branch=master)](https://travis-ci.org/react-R/reactR) + + # reactR A set of convenience function with local dependencies for using [`React`](https://facebook.github.io/react) in `R`. This is modeled after the `html_dependency_*` functions from RStudio's [`rmarkdown`](https://github.com/rstudio/rmarkdown) package. diff --git a/inst/logos/reactR-logo.png b/inst/logos/reactR-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..d2e8610e919e400c502ea2171c84445f614d1abd GIT binary patch literal 44738 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 UT1~Af0PsgiUQMo6#ysr*06atRr~m)} literal 0 HcmV?d00001 From 434eecb851ae6c9f55c94fe0c8727e2dbdec0cf1 Mon Sep 17 00:00:00 2001 From: timelyportfolio Date: Wed, 9 Jan 2019 20:25:27 -0600 Subject: [PATCH 39/77] make img tag markdown --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index b8b3300..841e023 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ [![CRAN_Status_Badge](http://www.r-pkg.org/badges/version/reactR)](https://cran.r-project.org/package=reactR) [![Travis-CI Build Status](https://travis-ci.org/react-R/reactR.svg?branch=master)](https://travis-ci.org/react-R/reactR) - +![react-R logo]("inst/logos/reactr-logo.png") # reactR From 7a68a371363437c4d9f12cb55e9102834951f6eb Mon Sep 17 00:00:00 2001 From: timelyportfolio Date: Wed, 9 Jan 2019 20:28:36 -0600 Subject: [PATCH 40/77] remove quotes from img in README --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 841e023..8b2fca4 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ [![CRAN_Status_Badge](http://www.r-pkg.org/badges/version/reactR)](https://cran.r-project.org/package=reactR) [![Travis-CI Build Status](https://travis-ci.org/react-R/reactR.svg?branch=master)](https://travis-ci.org/react-R/reactR) -![react-R logo]("inst/logos/reactr-logo.png") +![react-R logo](inst/logos/reactr-logo.png) # reactR From 1a0e6855983c683ee9b2f8a247b676133cadcd1c Mon Sep 17 00:00:00 2001 From: timelyportfolio Date: Wed, 9 Jan 2019 20:31:51 -0600 Subject: [PATCH 41/77] specify height of logo in README --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 8b2fca4..52c8864 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ [![CRAN_Status_Badge](http://www.r-pkg.org/badges/version/reactR)](https://cran.r-project.org/package=reactR) [![Travis-CI Build Status](https://travis-ci.org/react-R/reactR.svg?branch=master)](https://travis-ci.org/react-R/reactR) -![react-R logo](inst/logos/reactr-logo.png) +react-R logo # reactR From 167779af6a91706d77658f3a63e5062171e29474 Mon Sep 17 00:00:00 2001 From: timelyportfolio Date: Wed, 9 Jan 2019 20:36:09 -0600 Subject: [PATCH 42/77] use height attribute in logo on README --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 52c8864..9ff89dc 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ [![CRAN_Status_Badge](http://www.r-pkg.org/badges/version/reactR)](https://cran.r-project.org/package=reactR) [![Travis-CI Build Status](https://travis-ci.org/react-R/reactR.svg?branch=master)](https://travis-ci.org/react-R/reactR) -react-R logo +react-R logo # reactR From ad8244b7e7583c397ee39d7c0c80e6d7df811753 Mon Sep 17 00:00:00 2001 From: timelyportfolio Date: Wed, 9 Jan 2019 20:48:25 -0600 Subject: [PATCH 43/77] add favicon to docs --- docs/favico.ico | Bin 0 -> 3564 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/favico.ico diff --git a/docs/favico.ico b/docs/favico.ico new file mode 100644 index 0000000000000000000000000000000000000000..b6c6a389f2f7fef1e50aba8d782d3ea26fcdad00 GIT binary patch literal 3564 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 mB0e8JilaD+qd1B`X8b=(m~HwDW^5?{0000 Date: Wed, 9 Jan 2019 20:56:58 -0600 Subject: [PATCH 44/77] move logos to /assets and add to Rbuildignore --- .Rbuildignore | 1 + README.md | 2 +- assets/logos/reactR-logo-inkscape.svg | 146 +++++++++++++++++++++++++ {inst => assets}/logos/reactR-logo.png | Bin assets/logos/reactR-logo.svg | 113 +++++++++++++++++++ 5 files changed, 261 insertions(+), 1 deletion(-) create mode 100644 assets/logos/reactR-logo-inkscape.svg rename {inst => assets}/logos/reactR-logo.png (100%) create mode 100644 assets/logos/reactR-logo.svg diff --git a/.Rbuildignore b/.Rbuildignore index ad98a25..50c94b6 100644 --- a/.Rbuildignore +++ b/.Rbuildignore @@ -6,3 +6,4 @@ ^cran-comments\.md$ ^docs$ ^\.travis\.yml$ +^\assets diff --git a/README.md b/README.md index 9ff89dc..bfa3636 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ [![CRAN_Status_Badge](http://www.r-pkg.org/badges/version/reactR)](https://cran.r-project.org/package=reactR) [![Travis-CI Build Status](https://travis-ci.org/react-R/reactR.svg?branch=master)](https://travis-ci.org/react-R/reactR) -react-R logo +react-R logo # reactR diff --git a/assets/logos/reactR-logo-inkscape.svg b/assets/logos/reactR-logo-inkscape.svg new file mode 100644 index 0000000..fcf4673 --- /dev/null +++ b/assets/logos/reactR-logo-inkscape.svg @@ -0,0 +1,146 @@ + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + diff --git a/inst/logos/reactR-logo.png b/assets/logos/reactR-logo.png similarity index 100% rename from inst/logos/reactR-logo.png rename to assets/logos/reactR-logo.png diff --git a/assets/logos/reactR-logo.svg b/assets/logos/reactR-logo.svg new file mode 100644 index 0000000..d509c58 --- /dev/null +++ b/assets/logos/reactR-logo.svg @@ -0,0 +1,113 @@ + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + From b40b3562a06d2bf0b4e05cedf8ac284e35cea1d4 Mon Sep 17 00:00:00 2001 From: Alan Dipert Date: Thu, 10 Jan 2019 08:55:56 -0800 Subject: [PATCH 45/77] Add more tests --- js-tests/js-tests.jsx | 95 ++++++++++++++++++++++++++++++++++++------- package.json | 4 +- yarn.lock | 79 +++++++++++++++++++++++++++++++++-- 3 files changed, 160 insertions(+), 18 deletions(-) diff --git a/js-tests/js-tests.jsx b/js-tests/js-tests.jsx index 496d0c8..652e100 100644 --- a/js-tests/js-tests.jsx +++ b/js-tests/js-tests.jsx @@ -1,24 +1,91 @@ import React from 'react'; +import ReactDOM from 'react'; +import { renderToString, renderToStaticMarkup } from 'react-dom/server'; +import parseXml from '@rgrove/parse-xml'; +import ReactHtmlParser from 'react-html-parser'; + +/** + * Needed by react-tools.js + * In normal operation, these are added to the page as htmlDependencies. + */ +window.React = React; +window.ReactDOM = ReactDOM; + +class Shout extends React.Component { + render() { + return {this.props.message.toUpperCase()}; + } +} + +const FunctionalShout = ({ message }) => { + return {message.toUpperCase()}; +} + +class TodoList extends React.Component { + render() { + return

    + {this.props.children.map((child, i) => { + return
  1. {child}
  2. ; + })} +
+ } +} + +// Converts a parse-xml style tree to an htmltools::tag style tree of JSON. +function objectToTag(obj) { + return { + name: obj.name, + attribs: obj.attributes, + children: obj.children.map(child => { + if (child.type === 'text') { + return child.text; + } else { + return objectToTag(child); + } + }) + } +} + +// Converts a string of markup to an htmltools::tag style tree of JSON. +function stringToTag(str) { + return objectToTag(parseXml(str).children[0]); +} + +// Compares two parse-xml style trees for "deep" equality +function xmlEqual(x1, x2) { + if (x1.type === 'text' + && x2.type === 'text' + && x1.text === x2.text) + return true; + return x1.name === x2.name + // Test attributes for equalitiy + && Object.keys(x1).length === Object.keys(x2).length + && Object.keys(x1).every(k => x1[k] === x2[k]) + // Test children for equality + && x1.children.length === x2.children.length + && x1.children.every((child, i) => markupEqual(child, x2.children[i])) +} describe('window.reactR', () => { describe('#hydrate()', () => { it('should throw an exception with an unknown component', () => { assert.throws(() => { - reactR.hydrate( - { - Foo: class Foo extends React.Component { - render() { - return

Foo!

; - } - } - }, - { - name: "Bar", - attribs: {}, - children: {} - } - ) + reactR.hydrate({ Shout: Shout }, stringToTag('')) }, Error, /Unknown component/); }); + it('hydrates an HTML5 component with a text child', () => { + const markup = '

Hello

'; + assert.equal( + renderToString(ReactHtmlParser(markup)), + renderToString(reactR.hydrate({}, stringToTag(markup))) + ) + }) + it('hydrates nested HTML5 components', () => { + const markup = '

Hello

Oh, hello.

' + assert.equal( + renderToString(ReactHtmlParser(markup)), + renderToString(reactR.hydrate({}, stringToTag(markup))) + ) + }) }); }); diff --git a/package.json b/package.json index d941027..85e7762 100644 --- a/package.json +++ b/package.json @@ -14,7 +14,9 @@ "@babel/core": "^7.2.0", "babel-loader": "^8.0.4", "@babel/preset-env": "^7.2.0", - "@babel/preset-react": "^7.0.0" + "@babel/preset-react": "^7.0.0", + "@rgrove/parse-xml": "^1.1.1", + "react-html-parser": "^2.0.2" }, "scripts": { "test": "karma start --single-run --browsers ChromeHeadless karma.conf.js" diff --git a/yarn.lock b/yarn.lock index e505651..36e0219 100644 --- a/yarn.lock +++ b/yarn.lock @@ -641,6 +641,13 @@ lodash "^4.17.10" to-fast-properties "^2.0.0" +"@rgrove/parse-xml@^1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@rgrove/parse-xml/-/parse-xml-1.1.1.tgz#9415b98995e0f2ac86b84d9501af2053b22f4621" + integrity sha512-3wFRoPyAnb7w5oLdUuiXoMN5s19RZjTmdN7pz4G8XDVgjpXFCP6gUvb5k/GtzZwwFRNCYpBFxCEykcYdeWLiPQ== + dependencies: + babel-runtime "^6.23.0" + abbrev@1: version "1.1.1" resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" @@ -836,7 +843,7 @@ babel-loader@^8.0.4: mkdirp "^0.5.1" util.promisify "^1.0.0" -babel-runtime@^6.0.0: +babel-runtime@^6.0.0, babel-runtime@^6.23.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" integrity sha1-llxwWGaOgrVde/4E/yM3vItWR/4= @@ -1569,11 +1576,44 @@ dom-serialize@^2.2.0: extend "^3.0.0" void-elements "^2.0.0" +dom-serializer@0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.0.tgz#073c697546ce0780ce23be4a28e293e40bc30c82" + integrity sha1-BzxpdUbOB4DOI75KKOKT5AvDDII= + dependencies: + domelementtype "~1.1.1" + entities "~1.1.1" + domain-browser@^1.1.1: version "1.2.0" resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA== +domelementtype@1, domelementtype@^1.3.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" + integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== + +domelementtype@~1.1.1: + version "1.1.3" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.1.3.tgz#bd28773e2642881aec51544924299c5cd822185b" + integrity sha1-vSh3PiZCiBrsUVRJJCmcXNgiGFs= + +domhandler@^2.3.0: + version "2.4.2" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.4.2.tgz#8805097e933d65e85546f726d60f5eb88b44f803" + integrity sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA== + dependencies: + domelementtype "1" + +domutils@^1.5.1: + version "1.7.0" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" + integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg== + dependencies: + dom-serializer "0" + domelementtype "1" + ee-first@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" @@ -1662,6 +1702,11 @@ ent@~2.2.0: resolved "https://registry.yarnpkg.com/ent/-/ent-2.2.0.tgz#e964219325a21d05f44466a2f686ed6ce5f5dd1d" integrity sha1-6WQhkyWiHQX0RGai9obtbOX13R0= +entities@^1.1.1, entities@~1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56" + integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w== + errno@^0.1.3: version "0.1.7" resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618" @@ -2194,6 +2239,18 @@ hosted-git-info@^2.1.4: resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.7.1.tgz#97f236977bd6e125408930ff6de3eec6281ec047" integrity sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w== +htmlparser2@^3.9.0: + version "3.10.0" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.10.0.tgz#5f5e422dcf6119c0d983ed36260ce9ded0bee464" + integrity sha512-J1nEUGv+MkXS0weHNWVKJJ+UrLfePxRWpN3C9bEi9fLxL2+ggW94DQvgYVXsaT30PGwYRIZKNZXuyMhp3Di4bQ== + dependencies: + domelementtype "^1.3.0" + domhandler "^2.3.0" + domutils "^1.5.1" + entities "^1.1.1" + inherits "^2.0.1" + readable-stream "^3.0.6" + http-errors@1.6.3, http-errors@~1.6.3: version "1.6.3" resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" @@ -3505,6 +3562,13 @@ react-dom@^16.7.0: prop-types "^15.6.2" scheduler "^0.12.0" +react-html-parser@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/react-html-parser/-/react-html-parser-2.0.2.tgz#6dbe1ddd2cebc1b34ca15215158021db5fc5685e" + integrity sha512-XeerLwCVjTs3njZcgCOeDUqLgNIt/t+6Jgi5/qPsO/krUWl76kWKXMeVs2LhY2gwM6X378DkhLjur0zUQdpz0g== + dependencies: + htmlparser2 "^3.9.0" + react@^16.7.0: version "16.7.0" resolved "https://registry.yarnpkg.com/react/-/react-16.7.0.tgz#b674ec396b0a5715873b350446f7ea0802ab6381" @@ -3545,6 +3609,15 @@ readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable string_decoder "~1.1.1" util-deprecate "~1.0.1" +readable-stream@^3.0.6: + version "3.1.1" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.1.1.tgz#ed6bbc6c5ba58b090039ff18ce670515795aeb06" + integrity sha512-DkN66hPyqDhnIQ6Jcsvx9bFjhw214O4poMBcIMgPVpQvNy9a0e0Uhg5SqySyDKAmUlwt8LonTBz1ezOnM8pUdA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + readdirp@^2.0.0: version "2.2.1" resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" @@ -3996,7 +4069,7 @@ string-width@^1.0.1: is-fullwidth-code-point "^2.0.0" strip-ansi "^4.0.0" -string_decoder@^1.0.0: +string_decoder@^1.0.0, string_decoder@^1.1.1: version "1.2.0" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.2.0.tgz#fe86e738b19544afe70469243b2a1ee9240eae8d" integrity sha512-6YqyX6ZWEYguAxgZzHGL7SsCeGx3V2TtOTqZz1xSTSWnqsbWwbptafNyvf/ACquZUXV3DANr5BDIwNYe1mN42w== @@ -4273,7 +4346,7 @@ useragent@2.3.0: lru-cache "4.1.x" tmp "0.0.x" -util-deprecate@~1.0.1: +util-deprecate@^1.0.1, util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= From 2c95b6ffea77f3dfeb65b3ad4491f531019d7b76 Mon Sep 17 00:00:00 2001 From: Alan Dipert Date: Thu, 10 Jan 2019 10:57:11 -0800 Subject: [PATCH 46/77] Minor test re-organization --- js-tests/js-tests.jsx | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/js-tests/js-tests.jsx b/js-tests/js-tests.jsx index 652e100..549e35d 100644 --- a/js-tests/js-tests.jsx +++ b/js-tests/js-tests.jsx @@ -58,7 +58,7 @@ function xmlEqual(x1, x2) { && x1.text === x2.text) return true; return x1.name === x2.name - // Test attributes for equalitiy + // Test attributes for equality && Object.keys(x1).length === Object.keys(x2).length && Object.keys(x1).every(k => x1[k] === x2[k]) // Test children for equality @@ -67,12 +67,7 @@ function xmlEqual(x1, x2) { } describe('window.reactR', () => { - describe('#hydrate()', () => { - it('should throw an exception with an unknown component', () => { - assert.throws(() => { - reactR.hydrate({ Shout: Shout }, stringToTag('')) - }, Error, /Unknown component/); - }); + describe('#hydrate() with HTML', () => { it('hydrates an HTML5 component with a text child', () => { const markup = '

Hello

'; assert.equal( @@ -88,4 +83,11 @@ describe('window.reactR', () => { ) }) }); + describe('#hydrate() with Components', () => { + it('should throw an exception with an unknown component', () => { + assert.throws(() => { + reactR.hydrate({ Shout: Shout }, stringToTag('')) + }, Error, /Unknown component/); + }); + }) }); From 2fe2f84be153d92f7b65b3eaf3f3afb65d1527cc Mon Sep 17 00:00:00 2001 From: Alan Dipert Date: Thu, 10 Jan 2019 11:08:54 -0800 Subject: [PATCH 47/77] Fix bug in xmlEqual --- js-tests/js-tests.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/js-tests/js-tests.jsx b/js-tests/js-tests.jsx index 549e35d..256b2fa 100644 --- a/js-tests/js-tests.jsx +++ b/js-tests/js-tests.jsx @@ -63,7 +63,7 @@ function xmlEqual(x1, x2) { && Object.keys(x1).every(k => x1[k] === x2[k]) // Test children for equality && x1.children.length === x2.children.length - && x1.children.every((child, i) => markupEqual(child, x2.children[i])) + && x1.children.every((child, i) => xmlEqual(child, x2.children[i])) } describe('window.reactR', () => { From b6d2d2457f00753d6d5c9c3241cd54577e699145 Mon Sep 17 00:00:00 2001 From: Alan Dipert Date: Thu, 10 Jan 2019 12:45:53 -0800 Subject: [PATCH 48/77] WIP intro tutorial vignette --- vignettes/intro_htmlwidgets.Rmd | 64 +++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 vignettes/intro_htmlwidgets.Rmd diff --git a/vignettes/intro_htmlwidgets.Rmd b/vignettes/intro_htmlwidgets.Rmd new file mode 100644 index 0000000..33efcdc --- /dev/null +++ b/vignettes/intro_htmlwidgets.Rmd @@ -0,0 +1,64 @@ +--- +title: "htmlwidgets with reactR" +author: "Alan Dipert" +date: "`r Sys.Date()`" +output: rmarkdown::html_vignette +vignette: > + %\VignetteIndexEntry{htmlwidgets with reactR} + %\VignetteEngine{knitr::rmarkdown} + %\VignetteEncoding{UTF-8} +--- + +## Introduction to htmlwidgets with reactR + +The [htmlwidgets](https://www.htmlwidgets.org) package provides a framework for creating R bindings to JavaScript libraries. reactR adds to this framework by simplifying the creation of widgets that build on [React](https://facebook.github.io/react/)-based libraries or code. + +In particular, reactR adds: + +* The `reactR::scaffoldReactWidget` function for generating a skeletal React-based htmlwidget, including JavaScript build tool configuration. It is analagous to `htmlwidgets::scaffoldWidget`. +* An [htmlDependency](https://shiny.rstudio.com/articles/packaging-javascript.html), returned by `reactR::html_dependency_reacttools`, that adds `window.reactR` to the browser environment. Scaffolded widgets include a reference to this htmlDependency, as well as one to `reactR::html_dependency_react` which provides React itself. +* The `window.reactR.reactWidget` JavaScript function, which creates an installs a named widget backed by a set of [React Components](https://reactjs.org/docs/react-component.html). +* `reactR::reactMarkup`, which prepares an `htmltools::tag` or `reactR::component` to be sent to the browser and rendered by React. + +## Tutorial: Adapting a JavaScript library + +In the following tutorial, we will build a widget around the [react-sparklines](https://reactjs.org/docs/react-component.html) React-based JavaScript library. + +We'll start by preparing our machine for React and reactR widget development. Then, we'll scaffold an initial `reactSparklines` widget package. Then, we'll add functionality that will make the widget easier to use. + +## Prepare your machine + +In order to develop a reactR widget, you'll need to install R and optionally RStudio. If you're on Windows, you should also install [Rtools](https://cran.r-project.org/bin/windows/Rtools/). + +> For an introduction to general R package concepts, please consult the excellent [R packages](http://r-pkgs.had.co.nz/) online book. + +In addition, you'll need to install the following JavaScript tools on your machine: + +* [Node.js](https://nodejs.org): JavaScript engine and runtime for development outside of browsers. Provides the `node` and `npm` commands. +* [Yarn](https://yarnpkg.com/en/): Command-line dependency management tool, provides the `yarn` command. + +## Install dependencies + +Several packages must be installed to continue. You can install them like this: + +> QA Note: The necessary version of reactR is not yet available on CRAN. Please install reactR with `devtools::install_github("react-R/reactR@enhancements")` + +```{r} +install.packages(c("shiny", "usethis", "htmlwidgets", "reactR")) +``` + +## Scaffolding + +To create a new widget you can call `scaffoldReactWidget` to generate the basic structure and build configuration. This function will: + +* Create the .R, .js, .yaml, and .json files required by your widget; +* If provided, take an [npm]() package name and version as a two-element character vector. For example, the npm package `foo` at version `^1.2.0` would be expressed as `c("foo", "^1.2.0")`. The package, if provided, will be added to the new widget's `package.json` as a build dependency. + +The following R code will create a package and add the `react-sparklines` dependency: + +```{r} +devtools::create("reactSparklines") +setwd("reactSparklines") +reactR::scaffoldReactWidget("reactSparklines", c("react-sparklines", "^1.7.0")) +devtools::install() +``` From 9b8236ee45dfbcfc4d8bda7ca5d73a5b274cc577 Mon Sep 17 00:00:00 2001 From: Alan Dipert Date: Thu, 10 Jan 2019 16:02:52 -0800 Subject: [PATCH 49/77] WIP intro tutorial vignette --- vignettes/intro_htmlwidgets.Rmd | 73 +++++++++++++++++++++++++++++--- vignettes/widget_app.jpg | Bin 0 -> 19159 bytes 2 files changed, 67 insertions(+), 6 deletions(-) create mode 100644 vignettes/widget_app.jpg diff --git a/vignettes/intro_htmlwidgets.Rmd b/vignettes/intro_htmlwidgets.Rmd index 33efcdc..8f7199f 100644 --- a/vignettes/intro_htmlwidgets.Rmd +++ b/vignettes/intro_htmlwidgets.Rmd @@ -30,7 +30,7 @@ We'll start by preparing our machine for React and reactR widget development. Th In order to develop a reactR widget, you'll need to install R and optionally RStudio. If you're on Windows, you should also install [Rtools](https://cran.r-project.org/bin/windows/Rtools/). -> For an introduction to general R package concepts, please consult the excellent [R packages](http://r-pkgs.had.co.nz/) online book. +> For an excellent general introduction to R package concepts, check out the [R packages](http://r-pkgs.had.co.nz/) online book. In addition, you'll need to install the following JavaScript tools on your machine: @@ -43,8 +43,8 @@ Several packages must be installed to continue. You can install them like this: > QA Note: The necessary version of reactR is not yet available on CRAN. Please install reactR with `devtools::install_github("react-R/reactR@enhancements")` -```{r} -install.packages(c("shiny", "usethis", "htmlwidgets", "reactR")) +```{r eval = FALSE} +install.packages(c("shiny", "devtools", "usethis", "htmlwidgets", "reactR")) ``` ## Scaffolding @@ -56,9 +56,70 @@ To create a new widget you can call `scaffoldReactWidget` to generate the basic The following R code will create a package and add the `react-sparklines` dependency: -```{r} -devtools::create("reactSparklines") +```{r eval = FALSE} +# Create a directory 'reactSparklines' and populate it with skeletal package +# If run within RStudio, this will create a new RStudio session +usethis::create_package("reactSparklines") +# Set the current working directory to the one that was created unless a new +# RStudio session has been launched. setwd("reactSparklines") +# Generate skeletal reactR widget code and supporting build configuration reactR::scaffoldReactWidget("reactSparklines", c("react-sparklines", "^1.7.0")) -devtools::install() +``` + +At this point, the `reactSparklines` contains a bare-bones widget in a package called `reactSparklines`. + +## Building and installing + +### Building the JavaScript + +The next step is to navigate to the `reactSparklines` directory in your terminal. Then, run the following commands: + +```{shell} +yarn install +yarn run webpack --mode=development +``` + +* `yarn install` downloads all of the dependencies listed in `package.json` and creates a new file, `yarn.lock`. You should add this file to revision control. It will be updated whenever you change dependencies and run `yarn install`. **You only need to run it after modifying package.json**. +* `yarn run webpack --mode=development` converts the [ES2015](https://babeljs.io/docs/en/learn/) JavaScript source file at `srcjs/reactSparklines.js` into `inst/htmlwidgets/reactSparklines.js`. The difference between the two is that the one in `inst/` bundles all dependencies. It is also compiled in a dialect of JavaScript that will run on a wider variety of old browsers. + +For further documentation on `yarn install`, see the [yarn documentation](https://yarnpkg.com/lang/en/docs/cli/install/). + +`yarn run webpack` is not strictly a `yarn` command. In fact, `yarn run` simply delegates to the [webpack](https://webpack.js.org/) program. `development` is one of several [webpack modes](https://webpack.js.org/concepts/#mode). webpack's configuration is generated by `scaffoldReactWidget` in the file `webpack.config.js`. + +### Building the package + +While the JavaScript has been built, the `reactSparklines` package has not. Now that the JavaScript asset has been created, we can build it: + +```{r eval = FALSE} +devtools::document() +devtools::install(quick = TRUE) +``` + +Alternatively, in RStudio, you can use the keyboard shortcuts `Ctrl+Shift+D` and `Ctrl-Shift-B` to document and build the package. (On macOS, the shortcuts are `Cmd+Shift+D` and `Cmd+Shift+B`) + +## Run example + +Now that the widget's JavaScript has been compiled and the package has been installed, we can run `app.R` to see the widget in action: + +```{r eval = FALSE} +shiny::runApp() +``` + +Alternatively, in RStudio, you can open `app.R` and press `Ctrl-Shift-Enter` (`Cmd-Shift-Enter` on macOS). You should see something like the following appear in the Viewer pane: + +```{r echo=FALSE} +knitr::include_graphics('./widget_app.jpg') +``` + +## Implement Functionality + +At this point, we've scaffolded a widget and built its JavaScript, but we have not implemented any functionality provided by the `react-sparklines` library. + +To expose that functionality through our widget, we must modify the JavaScript in `srcjs/reactSparklines.js`. After scaffolding, it looks like this: + +```{js eval=FALSE} +import { reactWidget } from 'reactR'; + +reactWidget('reactSparklines', 'output', {}); ``` diff --git a/vignettes/widget_app.jpg b/vignettes/widget_app.jpg new file mode 100644 index 0000000000000000000000000000000000000000..24da9ed627a8d0a3fb33e7f0f12b71a2753a35f4 GIT binary patch literal 19159 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 SbtM0b_J03Q`%4gI;=chU+a-Mf literal 0 HcmV?d00001 From 300823c36b789bc70c1855dcd9435ae4cd1d558f Mon Sep 17 00:00:00 2001 From: Alan Dipert Date: Thu, 10 Jan 2019 23:27:08 -0800 Subject: [PATCH 50/77] Add 4th reactWidget arg to JS template --- inst/templates/widget_js.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/inst/templates/widget_js.txt b/inst/templates/widget_js.txt index a92ec44..874d47f 100644 --- a/inst/templates/widget_js.txt +++ b/inst/templates/widget_js.txt @@ -1,3 +1,3 @@ import { reactWidget } from 'reactR'; -reactWidget('${name}', 'output', {}); +reactWidget('${name}', 'output', {}, {}); From 18123974db2c7f06055b310452b1a1dd23f1bbe9 Mon Sep 17 00:00:00 2001 From: Alan Dipert Date: Fri, 11 Jan 2019 00:11:40 -0800 Subject: [PATCH 51/77] Further expand htmlwidget intro vignette --- vignettes/intro_htmlwidgets.Rmd | 35 +++++++++++++++++++++++++++++---- 1 file changed, 31 insertions(+), 4 deletions(-) diff --git a/vignettes/intro_htmlwidgets.Rmd b/vignettes/intro_htmlwidgets.Rmd index 8f7199f..b40648d 100644 --- a/vignettes/intro_htmlwidgets.Rmd +++ b/vignettes/intro_htmlwidgets.Rmd @@ -24,7 +24,7 @@ In particular, reactR adds: In the following tutorial, we will build a widget around the [react-sparklines](https://reactjs.org/docs/react-component.html) React-based JavaScript library. -We'll start by preparing our machine for React and reactR widget development. Then, we'll scaffold an initial `reactSparklines` widget package. Then, we'll add functionality that will make the widget easier to use. +We'll start by preparing our machine for React and reactR widget development. Then, we'll scaffold an initial `reactSparklines` widget package. Finally, we'll add functionality that will make the widget easier to use. ## Prepare your machine @@ -80,7 +80,7 @@ yarn install yarn run webpack --mode=development ``` -* `yarn install` downloads all of the dependencies listed in `package.json` and creates a new file, `yarn.lock`. You should add this file to revision control. It will be updated whenever you change dependencies and run `yarn install`. **You only need to run it after modifying package.json**. +* `yarn install` downloads all of the dependencies listed in `package.json` and creates a new file, `yarn.lock`. You should add this file to revision control. It will be updated whenever you change dependencies and run `yarn install`. **Note: you only need to run it after modifying package.json**. * `yarn run webpack --mode=development` converts the [ES2015](https://babeljs.io/docs/en/learn/) JavaScript source file at `srcjs/reactSparklines.js` into `inst/htmlwidgets/reactSparklines.js`. The difference between the two is that the one in `inst/` bundles all dependencies. It is also compiled in a dialect of JavaScript that will run on a wider variety of old browsers. For further documentation on `yarn install`, see the [yarn documentation](https://yarnpkg.com/lang/en/docs/cli/install/). @@ -114,12 +114,39 @@ knitr::include_graphics('./widget_app.jpg') ## Implement Functionality +### JavaScript changes + At this point, we've scaffolded a widget and built its JavaScript, but we have not implemented any functionality provided by the `react-sparklines` library. -To expose that functionality through our widget, we must modify the JavaScript in `srcjs/reactSparklines.js`. After scaffolding, it looks like this: +To expose that functionality through our widget, we must modify the JavaScript in `srcjs/reactSparklines.js`. Currently, it looks like this: ```{js eval=FALSE} import { reactWidget } from 'reactR'; -reactWidget('reactSparklines', 'output', {}); +reactWidget('reactSparklines', 'output', {}, {}); ``` + +First, `reactWidget` is [imported](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/import) from the module `'reactR'`. `'reactR'` is provided as an html dependency, but webpack is configured in `webpack.config.js` to consider it a module, so it's available to us here. + +Then, there's a call to `reactWidget`, and we pass it four arguments: + +1. The name of the widget (`'reactSparklines'`) +1. The type of the widget (`'output'`) +1. The React components that should be exposed to the widget (here, `{}`: none) +1. Additional configuration options (here, `{}`: none) + +In order to implement additional functionality, we must change the third argument by adding React components provided by `react-sparklines`. We can do it like this: + + +```{js eval = FALSE} +import * as SparklinesComponents from 'react-sparklines'; +import { reactWidget } from 'reactR'; + +reactWidget('sparklines', 'output', SparklinesComponents, {}); +``` + +Instead of passing an empty object as the React components, we pass an object populated with all of the components exported by the `'react-sparklines'` module as `SparklinesComponents`. + +After updating your `app.R`, run `yarn run webpack --mode=development` to rebuild the JavaScript. + +### R changes From 0102c8ff317b3d00543dc0858bffcea4445e5f6d Mon Sep 17 00:00:00 2001 From: Alan Dipert Date: Fri, 11 Jan 2019 06:48:20 -0800 Subject: [PATCH 52/77] Complete tutorial --- vignettes/intro_htmlwidgets.Rmd | 152 +++++++++++++++++++++++++++++- vignettes/widget_app_improved.jpg | Bin 0 -> 26614 bytes 2 files changed, 150 insertions(+), 2 deletions(-) create mode 100644 vignettes/widget_app_improved.jpg diff --git a/vignettes/intro_htmlwidgets.Rmd b/vignettes/intro_htmlwidgets.Rmd index b40648d..20918a7 100644 --- a/vignettes/intro_htmlwidgets.Rmd +++ b/vignettes/intro_htmlwidgets.Rmd @@ -135,18 +135,166 @@ Then, there's a call to `reactWidget`, and we pass it four arguments: 1. The React components that should be exposed to the widget (here, `{}`: none) 1. Additional configuration options (here, `{}`: none) -In order to implement additional functionality, we must change the third argument by adding React components provided by `react-sparklines`. We can do it like this: +In order to make our widget do something interesting, we must change the third argument by passing React components provided by `react-sparklines`. We can do it like this: ```{js eval = FALSE} import * as SparklinesComponents from 'react-sparklines'; import { reactWidget } from 'reactR'; -reactWidget('sparklines', 'output', SparklinesComponents, {}); +reactWidget('reactSparklines', 'output', SparklinesComponents, {}); ``` Instead of passing an empty object as the React components, we pass an object populated with all of the components exported by the `'react-sparklines'` module as `SparklinesComponents`. +We could also have exposed only a subset of the components exported by `react-sparklines` with code like the following: + +```{js eval = FALSE} +import { Sparklines, SparklinesLine } from 'react-sparklines'; +import { reactWidget } from 'reactR'; + +reactWidget('reactSparklines', 'output', SparklinesComponents, { + Sparklines: Sparklines, + SparklinesLine: SparklinesLine +}); +``` + +The primary difference between the two is the `import` syntax we chose to use. + After updating your `app.R`, run `yarn run webpack --mode=development` to rebuild the JavaScript. ### R changes + +The next code we'll need to modify to make `react-sparklines` work is on the R side, at the top of the file `R/reactSparklines.R`: + +```{r eval = FALSE} +reactSparklines <- function(message, width = NULL, height = NULL, elementId = NULL) { + + # describe a React component to send to the browser for rendering. + component <- reactR::reactMarkup(htmltools::tag("div", list(message))) + + # create widget + htmlwidgets::createWidget( + name = 'reactSparklines', + component, + width = width, + height = height, + package = 'reactSparklines', + elementId = elementId + ) +} +``` + +This function is the one responsible for creating an instance of our widget. In the `server` function of the generated `app.R`, we use it like this: + +```{R eval = FALSE} +server <- function(input, output, session) { + output$widgetOutput <- renderReactSparklines( + reactSparklines("Hello world!") + ) +} +``` + +In the code above, `renderReactSparklines` expects to receive the return value of `reactSparklines` as its argument. + +`reactSparklines` is a thin wrapper around `htmlwidgets::createWidget`. Its most important argument, `message`, is the one we must change the handling of. In the current implementation, the following happens to `message`: + +```{R eval = FALSE} +component <- reactR::reactMarkup(htmltools::tag("div", list(message))) +``` + +1. We wrap `message` in a list +1. We call `htmltools::tag` to create a `div` with the list we created as its children +1. We call `reactR::reactMarkup` to prepare the tag to be rendered in the browser +1. We assign to `component` + +Then, we pass `component` as the second argument of `htmlwidgets::createWidget`. + +Widgets created using reactR expect for this argument to be a representation of `markup`, or either an `htmltools::tag` or a `reactR::component`. When we called `reactR.reactWidget` in our JavaScript, we created and installed the browser-side implementation of a widget that expects to receive markup and then renders that markup in the widget's HTML container. + +Let's modify the `reactSparklines` function so that it handles `message` differently. In fact, let's change the meaning of that argument completely. Instead of a `message`, it should take an argument `data`, which is the vector of numbers to display as a sparkline graph: + +```{r eval = FALSE} +reactSparklines <- function(data, width = NULL, height = NULL, elementId = NULL) { + + # describe a React component to send to the browser for rendering. + component <- reactR::reactMarkup(reactR::component( + "Sparklines", + list(data = data, reactR::component("SparklinesLine")) + )) + + # create widget + htmlwidgets::createWidget( + name = 'reactSparklines', + component, + width = width, + height = height, + package = 'reactSparklines', + elementId = elementId + ) +} +``` + +Now, we're using the `data` argument in a more sophisticated way. We're assigning it to the attribute `data` of the `Sparklines` component, as per the first example in the [react-sparklines documentation](http://borisyankov.github.io/react-sparklines/). Then, we create a `SparklinesLine` component to tell `react-sparklines` the format to display the data. + +Essentially, we're using R code that corresponds directly to the [JSX](https://reactjs.org/docs/introducing-jsx.html) syntax in the `react-sparklines` examples. This is a major benefit of using reactR: examples in JSX are generally easy to adapt. + +Our widget now assumes that `data` is a numeric vector, and relies on the fact that this vector becomes a JavaScript array once it's sent to the browser. + +After you've edited `R/reactSparklines.R`, run `devtools::install(quick = TRUE)` or hit `Ctrl-Shift-B` (macOS: `Cmd-Shift-B) to rebuild the package. + +## Trying it out + +It's finally time to modify `app.R` and test our widget modifications out. Open `app.R`, it should look like this: + +```{r eval = FALSE} +library(shiny) +library(reactSparklines) + +ui <- fluidPage( + titlePanel("reactR HTMLWidget Example"), + reactSparklinesOutput('widgetOutput') +) + +server <- function(input, output, session) { + output$widgetOutput <- renderReactSparklines( + reactSparklines("Hello world!") + ) +} + +shinyApp(ui, server) +``` + +The thing we need to change is the argument to `reactSparklines`. It should no longer be a string, but a numeric vector to display as a sparkline graph. Here is the amended code: + +```{r eval = FALSE} +library(shiny) +library(reactSparklines) + +ui <- fluidPage( + titlePanel("reactR HTMLWidget Example"), + reactSparklinesOutput('widgetOutput') +) + +server <- function(input, output, session) { + output$widgetOutput <- renderReactSparklines( + reactSparklines(sample.int(10, 10)) + ) +} + +shinyApp(ui, server) +``` + +Now, when you run `app.R`, you should see something like the following: + +```{r echo=FALSE} +knitr::include_graphics('./widget_app_improved.jpg') +``` + +Congratulations, you just wrote your first React-based widget! + +Another thing you can try is running `reactSparklines(data = sample.int(10, 10))` directly in the RStudio Console. You should see a sparkline graph appear in the Viewer. + +## Next steps + +We've reached the end of this tutorial, but if you'd like to see how a sparklines library could be further improved, you might be interested in our [sparklines-example](https://github.com/react-R/sparklines-example) project. It picks up where we leave off, by creating a kind of DSL that makes the other sparkline types easily accessible from R. diff --git a/vignettes/widget_app_improved.jpg b/vignettes/widget_app_improved.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c4eccd9dac3ab1531bb9679ca014b1b36b829faa GIT binary patch literal 26614 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 C&?iR# literal 0 HcmV?d00001 From aa0c195e46b41623c4a009af9a0ca84642f903ce Mon Sep 17 00:00:00 2001 From: Alan Dipert Date: Fri, 11 Jan 2019 08:30:50 -0800 Subject: [PATCH 53/77] Ignore JS stuff in .Rbuildignore --- .Rbuildignore | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.Rbuildignore b/.Rbuildignore index 50c94b6..94fc918 100644 --- a/.Rbuildignore +++ b/.Rbuildignore @@ -1,4 +1,4 @@ -^examples/sparklineswidget/node_modules$ +^node_modules$ ^.*\.Rproj$ ^\.Rproj\.user$ ^\build @@ -7,3 +7,6 @@ ^docs$ ^\.travis\.yml$ ^\assets +^karma\.conf\.js$ +^package\.json$ +^yarn\.lock$ From 9cc3310fd19bb4a4ef533dcd426a41327cf5f42f Mon Sep 17 00:00:00 2001 From: Alan Dipert Date: Fri, 11 Jan 2019 08:31:25 -0800 Subject: [PATCH 54/77] Add corejs dependency to scaffold so widgets work in RStudio <1.2 --- inst/templates/widget_r.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/inst/templates/widget_r.txt b/inst/templates/widget_r.txt index 3e3a49c..7248c1b 100644 --- a/inst/templates/widget_r.txt +++ b/inst/templates/widget_r.txt @@ -53,6 +53,8 @@ render${capName} <- function(expr, env = parent.frame(), quoted = FALSE) { #' @rdname ${name}-shiny ${name}_html <- function(id, style, class, ...) { tagList( + # Necessary for RStudio viewer version < 1.2 + reactR::html_dependency_corejs(), reactR::html_dependency_react(), reactR::html_dependency_reacttools(), htmltools::tags$div(id = id, class = class) From af330c9664eb8581de2bdacb1dbd8e66ef087b12 Mon Sep 17 00:00:00 2001 From: Alan Dipert Date: Fri, 11 Jan 2019 08:32:41 -0800 Subject: [PATCH 55/77] Improve R docs --- R/reacttools.R | 29 ++--------------------------- 1 file changed, 2 insertions(+), 27 deletions(-) diff --git a/R/reacttools.R b/R/reacttools.R index 04f5132..bdf93a4 100644 --- a/R/reacttools.R +++ b/R/reacttools.R @@ -2,31 +2,6 @@ isUpper <- function(s) { grepl("^[[:upper:]]+$", s) } -#' React component builder functions -#' -#' Functions for creating React component, HTML, and SVG trees to send to the -#' browser for rendering. -#' -#' The \code{\link{component}} function creates a representation of a React -#' component instance to send to the browser for rendering. It is analagous to -#' \code{\link[htmltools]{tag}}. -#' -#' The \code{\link{React}} list is a special object that supports -#' \link[=InternalMethods]{extraction} syntax for creating React components. -#' -#' Once a component or tag has been created in R, it must be passed to -#' \code\{\link{reactData}} before being sent to the browser. In the case of -#' htmlwidgets, the return value of \code{reactData} should be passed as the -#' \code{x} argument of \code{\link{htmlwidgets::createWidget}}. -#' -#' Any React components named by \code{component} or \code{React} must have been -#' installed on the client using \code{reactR.reactWidget}. Alternatively, the -#' JSON representing the tag can be converted to a React component tree with -#' \code{reactR.hydrate}. -#' -#' @name builder -NULL - #' Create a React component #' #' @param name Name of the React component, which must start with an upper-case @@ -98,8 +73,8 @@ React <- structure( #' @export `[[<-.react_component_builder` <- `$<-.react_component_builder` -#' Prepare data that represents a character vector, a React component, or an -#' htmltools tag for sending to the client. +#' Prepare data that represents a single-element character vector, a React +#' component, or an htmltools tag for sending to the client. #' #' @param tag character vector or React component or #' \code{\link[htmltools]{tag}} From 5a807833aeeac327e4d4c5482550994dacd1942b Mon Sep 17 00:00:00 2001 From: Alan Dipert Date: Fri, 11 Jan 2019 08:45:04 -0800 Subject: [PATCH 56/77] reactMarkup: error if tag isn't shiny.tag or string --- R/reacttools.R | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/R/reacttools.R b/R/reacttools.R index bdf93a4..ec7e23d 100644 --- a/R/reacttools.R +++ b/R/reacttools.R @@ -84,7 +84,8 @@ React <- structure( #' #' @examples reactMarkup <- function(tag) { - # TODO ensure tag is either an htmltools tag or a string (throw otherwise) - list(tag = tag) + stopifnot(class(tag) == "shiny.tag" + || (is.character(tag) && length(tag) == 1)) + list(tag = tag, class = "reactR.markup") } From 68c1f4d616d21058cadbdc9198dc4660a99b4e84 Mon Sep 17 00:00:00 2001 From: Alan Dipert Date: Fri, 11 Jan 2019 09:01:57 -0800 Subject: [PATCH 57/77] Handle primitive strings as top-level elements in JavaScript --- inst/www/react-tools/react-tools.js | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/inst/www/react-tools/react-tools.js b/inst/www/react-tools/react-tools.js index 6bea5a1..dffe002 100644 --- a/inst/www/react-tools/react-tools.js +++ b/inst/www/react-tools/react-tools.js @@ -7,6 +7,7 @@ window.reactR = (function () { * @param {Object} tag */ function hydrate(components, tag) { + if (typeof tag === 'string') return tag; if (tag.name[0] === tag.name[0].toUpperCase() && !components.hasOwnProperty(tag.name)) { throw new Error("Unknown component: " + tag.name); @@ -14,11 +15,7 @@ window.reactR = (function () { var elem = components.hasOwnProperty(tag.name) ? components[tag.name] : tag.name, args = [elem, tag.attribs]; for (var i = 0; i < tag.children.length; i++) { - if (typeof tag.children[i] === 'object') { - args.push(hydrate(components, tag.children[i])); - } else { - args.push(tag.children[i]); - } + args.push(hydrate(components, tag.children[i])); } return React.createElement.apply(React, args); } @@ -76,10 +73,13 @@ window.reactR = (function () { factory: function (el, width, height) { var lastValue, renderValue = (function (value) { - // TODO Handle strings naturally if (actualOptions.renderOnResize) { - value.tag.attribs[actualOptions["widthProperty"]] = formatDimension(width); - value.tag.attribs[actualOptions["heightProperty"]] = formatDimension(height); + // value.tag might be a primitive string, in which + // case there is no attribs property. + if (typeof value.tag === 'object') { + value.tag.attribs[actualOptions["widthProperty"]] = formatDimension(width); + value.tag.attribs[actualOptions["heightProperty"]] = formatDimension(height); + } lastValue = value; } ReactDOM.render(hydrate(components, value.tag), el); From c37c588ba4dfb9d5c5b0c2bdd63d7a1735625745 Mon Sep 17 00:00:00 2001 From: Alan Dipert Date: Fri, 11 Jan 2019 09:02:09 -0800 Subject: [PATCH 58/77] Document defaultOptions --- inst/www/react-tools/react-tools.js | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/inst/www/react-tools/react-tools.js b/inst/www/react-tools/react-tools.js index dffe002..aafdb66 100644 --- a/inst/www/react-tools/react-tools.js +++ b/inst/www/react-tools/react-tools.js @@ -21,9 +21,18 @@ window.reactR = (function () { } var defaultOptions = { + // The name of the property on the root tag to use for the width, if + // it's updated. widthProperty: "width", + // The name of the property on the root tag to use for the height, if + // it's updated. heightProperty: "height", + // Whether or not to append the string 'px' to the width and height + // properties when they change. appendPx: false, + // Whether or not to dynamically update the width and height properties + // of the last known tag when the computed width and height change in + // the browser. renderOnResize: false }; From ab9a66d52b7af62b764a3c92c583e9d9c9cda653 Mon Sep 17 00:00:00 2001 From: Alan Dipert Date: Fri, 11 Jan 2019 11:14:39 -0800 Subject: [PATCH 59/77] Ignore R CMD check related things in dir --- .gitignore | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index d8aa0cc..a422f90 100644 --- a/.gitignore +++ b/.gitignore @@ -3,4 +3,6 @@ .RData .Ruserdata inst/doc -node_modules \ No newline at end of file +node_modules +reactR.Rcheck +reactR_*.tar.gz \ No newline at end of file From ca7b313e09372874c3209ce0277ed38a244f9bb9 Mon Sep 17 00:00:00 2001 From: Alan Dipert Date: Fri, 11 Jan 2019 13:15:28 -0800 Subject: [PATCH 60/77] Fix typo in tutorial --- vignettes/intro_htmlwidgets.Rmd | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/vignettes/intro_htmlwidgets.Rmd b/vignettes/intro_htmlwidgets.Rmd index 20918a7..cafa15d 100644 --- a/vignettes/intro_htmlwidgets.Rmd +++ b/vignettes/intro_htmlwidgets.Rmd @@ -153,10 +153,10 @@ We could also have exposed only a subset of the components exported by `react-sp import { Sparklines, SparklinesLine } from 'react-sparklines'; import { reactWidget } from 'reactR'; -reactWidget('reactSparklines', 'output', SparklinesComponents, { +reactWidget('reactSparklines', 'output', { Sparklines: Sparklines, SparklinesLine: SparklinesLine -}); +}, {}); ``` The primary difference between the two is the `import` syntax we chose to use. From c31d7210ca68ed9dcbee7351c25ea1260d175267 Mon Sep 17 00:00:00 2001 From: Alan Dipert Date: Fri, 11 Jan 2019 13:42:14 -0800 Subject: [PATCH 61/77] Minor tutorial improvement --- vignettes/intro_htmlwidgets.Rmd | 3 +++ 1 file changed, 3 insertions(+) diff --git a/vignettes/intro_htmlwidgets.Rmd b/vignettes/intro_htmlwidgets.Rmd index cafa15d..fec9175 100644 --- a/vignettes/intro_htmlwidgets.Rmd +++ b/vignettes/intro_htmlwidgets.Rmd @@ -57,6 +57,9 @@ To create a new widget you can call `scaffoldReactWidget` to generate the basic The following R code will create a package and add the `react-sparklines` dependency: ```{r eval = FALSE} +# Set the current working directory to your home directory. The new widget will +# be created in ~/reactSparklines +setwd("~") # Create a directory 'reactSparklines' and populate it with skeletal package # If run within RStudio, this will create a new RStudio session usethis::create_package("reactSparklines") From e0f62a6415b52c19c5d1c571c6d888e4d8d37940 Mon Sep 17 00:00:00 2001 From: Alan Dipert Date: Fri, 11 Jan 2019 15:26:46 -0800 Subject: [PATCH 62/77] Small enhancements suggested by @cpsievert --- R/reacttools.R | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/R/reacttools.R b/R/reacttools.R index ec7e23d..f2c80c2 100644 --- a/R/reacttools.R +++ b/R/reacttools.R @@ -25,7 +25,8 @@ component <- function(name, varArgs = list()) { if (length(name) == 0 || !isUpper(substring(name, 1, 1))) { stop("Component name must be specified and start with an upper case character") } - htmltools::tag(name, varArgs) + component <- htmltools::tag(name, varArgs) + structure(component, class = c("reactR_component", oldClass(component))) } #' React component builder. @@ -76,15 +77,16 @@ React <- structure( #' Prepare data that represents a single-element character vector, a React #' component, or an htmltools tag for sending to the client. #' +#' Tag lists as returned by \code{\link[htmltools]{tagList}} are not currently +#' supported. +#' #' @param tag character vector or React component or #' \code{\link[htmltools]{tag}} #' #' @return #' @export -#' -#' @examples reactMarkup <- function(tag) { - stopifnot(class(tag) == "shiny.tag" + stopifnot(inherits(tag, "shiny.tag") || (is.character(tag) && length(tag) == 1)) list(tag = tag, class = "reactR.markup") } From 1808e9d8e26b698edadaff677a6f5cc89fdfd852 Mon Sep 17 00:00:00 2001 From: Alan Dipert Date: Fri, 11 Jan 2019 15:31:07 -0800 Subject: [PATCH 63/77] reactMarkup: return list with class reactR_markup instead of reactR.markup --- R/reacttools.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/reacttools.R b/R/reacttools.R index f2c80c2..107d222 100644 --- a/R/reacttools.R +++ b/R/reacttools.R @@ -88,6 +88,6 @@ React <- structure( reactMarkup <- function(tag) { stopifnot(inherits(tag, "shiny.tag") || (is.character(tag) && length(tag) == 1)) - list(tag = tag, class = "reactR.markup") + list(tag = tag, class = "reactR_markup") } From ad28dc916b70c5d9227af57ccabf04b8184087e9 Mon Sep 17 00:00:00 2001 From: Alan Dipert Date: Fri, 11 Jan 2019 15:31:29 -0800 Subject: [PATCH 64/77] Various documentation additions, enhancements --- R/dependencies.R | 5 ++--- R/reacttools.R | 3 ++- man/builder.Rd | 9 --------- man/html_dependency_reacttools.Rd | 3 +++ man/reactMarkup.Rd | 12 ++++++++---- 5 files changed, 15 insertions(+), 17 deletions(-) delete mode 100644 man/builder.Rd diff --git a/R/dependencies.R b/R/dependencies.R index 91349ce..5dc4870 100644 --- a/R/dependencies.R +++ b/R/dependencies.R @@ -73,10 +73,9 @@ html_dependency_corejs <- function() { #' Adds window.reactR.exposeComponents and window.reactR.hydrate #' -#' @return +#' @return \code{\link[htmltools]{htmlDependency}} +#' @importFrom htmltools htmlDependency #' @export -#' -#' @examples html_dependency_reacttools <- function(){ htmltools::htmlDependency( name = "reactwidget", diff --git a/R/reacttools.R b/R/reacttools.R index 107d222..915566c 100644 --- a/R/reacttools.R +++ b/R/reacttools.R @@ -83,7 +83,8 @@ React <- structure( #' @param tag character vector or React component or #' \code{\link[htmltools]{tag}} #' -#' @return +#' @return A reactR markup object suitable for being passed to +#' \code{\link[htmlwidgets]{createWidget}} as widget instance data. #' @export reactMarkup <- function(tag) { stopifnot(inherits(tag, "shiny.tag") diff --git a/man/builder.Rd b/man/builder.Rd deleted file mode 100644 index e0547ad..0000000 --- a/man/builder.Rd +++ /dev/null @@ -1,9 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/reacttools.R -\name{builder} -\alias{builder} -\title{React component builder functions} -\description{ -Functions for creating React component, HTML, and SVG trees to send to the -browser for rendering. -} diff --git a/man/html_dependency_reacttools.Rd b/man/html_dependency_reacttools.Rd index 0c7b390..5da8842 100644 --- a/man/html_dependency_reacttools.Rd +++ b/man/html_dependency_reacttools.Rd @@ -6,6 +6,9 @@ \usage{ html_dependency_reacttools() } +\value{ +\code{\link[htmltools]{htmlDependency}} +} \description{ Adds window.reactR.exposeComponents and window.reactR.hydrate } diff --git a/man/reactMarkup.Rd b/man/reactMarkup.Rd index a3178c1..9889385 100644 --- a/man/reactMarkup.Rd +++ b/man/reactMarkup.Rd @@ -2,8 +2,8 @@ % Please edit documentation in R/reacttools.R \name{reactMarkup} \alias{reactMarkup} -\title{Prepare data that represents a character vector, a React component, or an -htmltools tag for sending to the client.} +\title{Prepare data that represents a single-element character vector, a React +component, or an htmltools tag for sending to the client.} \usage{ reactMarkup(tag) } @@ -11,7 +11,11 @@ reactMarkup(tag) \item{tag}{character vector or React component or \code{\link[htmltools]{tag}}} } +\value{ +A reactR markup object suitable for being passed to + \code{\link[htmlwidgets]{createWidget}} as widget instance data. +} \description{ -Prepare data that represents a character vector, a React component, or an -htmltools tag for sending to the client. +Tag lists as returned by \code{\link[htmltools]{tagList}} are not currently +supported. } From 9983058cf55171a5a537dfd633fad6a0745e1aa5 Mon Sep 17 00:00:00 2001 From: Carson Sievert Date: Fri, 11 Jan 2019 19:01:29 -0600 Subject: [PATCH 65/77] Make vignette more geared towards an R user that wants to quickly learn how to create a binding --- vignettes/intro_htmlwidgets.Rmd | 309 +++++++++++++++----------------- 1 file changed, 140 insertions(+), 169 deletions(-) diff --git a/vignettes/intro_htmlwidgets.Rmd b/vignettes/intro_htmlwidgets.Rmd index 20918a7..c240248 100644 --- a/vignettes/intro_htmlwidgets.Rmd +++ b/vignettes/intro_htmlwidgets.Rmd @@ -1,34 +1,23 @@ --- -title: "htmlwidgets with reactR" +title: "Authoring htmlwidgets powered by react with reactR" author: "Alan Dipert" date: "`r Sys.Date()`" output: rmarkdown::html_vignette vignette: > - %\VignetteIndexEntry{htmlwidgets with reactR} +%\VignetteIndexEntry{htmlwidgets with reactR} %\VignetteEngine{knitr::rmarkdown} %\VignetteEncoding{UTF-8} ---- - -## Introduction to htmlwidgets with reactR - -The [htmlwidgets](https://www.htmlwidgets.org) package provides a framework for creating R bindings to JavaScript libraries. reactR adds to this framework by simplifying the creation of widgets that build on [React](https://facebook.github.io/react/)-based libraries or code. - -In particular, reactR adds: - -* The `reactR::scaffoldReactWidget` function for generating a skeletal React-based htmlwidget, including JavaScript build tool configuration. It is analagous to `htmlwidgets::scaffoldWidget`. -* An [htmlDependency](https://shiny.rstudio.com/articles/packaging-javascript.html), returned by `reactR::html_dependency_reacttools`, that adds `window.reactR` to the browser environment. Scaffolded widgets include a reference to this htmlDependency, as well as one to `reactR::html_dependency_react` which provides React itself. -* The `window.reactR.reactWidget` JavaScript function, which creates an installs a named widget backed by a set of [React Components](https://reactjs.org/docs/react-component.html). -* `reactR::reactMarkup`, which prepares an `htmltools::tag` or `reactR::component` to be sent to the browser and rendered by React. - -## Tutorial: Adapting a JavaScript library - -In the following tutorial, we will build a widget around the [react-sparklines](https://reactjs.org/docs/react-component.html) React-based JavaScript library. + --- + + ```{r, echo=FALSE, include=FALSE} +knitr::opts_chunk$set(eval = FALSE) +``` -We'll start by preparing our machine for React and reactR widget development. Then, we'll scaffold an initial `reactSparklines` widget package. Finally, we'll add functionality that will make the widget easier to use. +The [htmlwidgets](https://www.htmlwidgets.org) package provides a framework for creating R bindings to JavaScript libraries. Using the **htmlwidgets** package alone, it's not necessarily straight-forward to create an R binding to a [React](https://facebook.github.io/react/)-powered JavaScript library. The **reactR** package adds to the **htmlwidgets** framework to make it much easier to author **htmlwidgets** that are powered by React. This vignette will show you how to effectively leverage **reactR** to build an **htmlwidgets** package that interfaces with [react-sparklines](https://github.com/borisyankov/react-sparklines) React JavaScript library. -## Prepare your machine +## Software pre-requisites -In order to develop a reactR widget, you'll need to install R and optionally RStudio. If you're on Windows, you should also install [Rtools](https://cran.r-project.org/bin/windows/Rtools/). +In order to develop a **reactR** widget, you'll need to install R and optionally RStudio. If you're on Windows, you should also install [Rtools](https://cran.r-project.org/bin/windows/Rtools/). > For an excellent general introduction to R package concepts, check out the [R packages](http://r-pkgs.had.co.nz/) online book. @@ -37,13 +26,11 @@ In addition, you'll need to install the following JavaScript tools on your machi * [Node.js](https://nodejs.org): JavaScript engine and runtime for development outside of browsers. Provides the `node` and `npm` commands. * [Yarn](https://yarnpkg.com/en/): Command-line dependency management tool, provides the `yarn` command. -## Install dependencies - -Several packages must be installed to continue. You can install them like this: +To follow along in this vignette, you'll also need the following R packages: > QA Note: The necessary version of reactR is not yet available on CRAN. Please install reactR with `devtools::install_github("react-R/reactR@enhancements")` -```{r eval = FALSE} +```{r} install.packages(c("shiny", "devtools", "usethis", "htmlwidgets", "reactR")) ``` @@ -52,57 +39,51 @@ install.packages(c("shiny", "devtools", "usethis", "htmlwidgets", "reactR")) To create a new widget you can call `scaffoldReactWidget` to generate the basic structure and build configuration. This function will: * Create the .R, .js, .yaml, and .json files required by your widget; -* If provided, take an [npm]() package name and version as a two-element character vector. For example, the npm package `foo` at version `^1.2.0` would be expressed as `c("foo", "^1.2.0")`. The package, if provided, will be added to the new widget's `package.json` as a build dependency. +* If provided, take an [npm](https://www.npmjs.com/) package name and version as a two-element character vector. For example, the npm package `foo` at version `^1.2.0` would be expressed as `c("foo", "^1.2.0")`. The package, if provided, will be added to the new widget's `package.json` as a build dependency. -The following R code will create a package and add the `react-sparklines` dependency: +The following R code will create a package named **sparklines**, then provide the templating for creating an htmlwidget powered by the `react-sparklines` npm package: -```{r eval = FALSE} -# Create a directory 'reactSparklines' and populate it with skeletal package +```{r} +# Create a directory 'sparklines' and populate it with skeletal package # If run within RStudio, this will create a new RStudio session -usethis::create_package("reactSparklines") -# Set the current working directory to the one that was created unless a new -# RStudio session has been launched. -setwd("reactSparklines") +usethis::create_package("sparklines") # Generate skeletal reactR widget code and supporting build configuration -reactR::scaffoldReactWidget("reactSparklines", c("react-sparklines", "^1.7.0")) +reactR::scaffoldReactWidget("sparklines", c("react-sparklines", "^1.7.0")) ``` -At this point, the `reactSparklines` contains a bare-bones widget in a package called `reactSparklines`. - ## Building and installing ### Building the JavaScript -The next step is to navigate to the `reactSparklines` directory in your terminal. Then, run the following commands: +The next step is to navigate to the `sparklines` directory in your terminal. Then, run the following commands: -```{shell} +```{bash eval = FALSE} yarn install -yarn run webpack --mode=development +yarn run webpack ``` -* `yarn install` downloads all of the dependencies listed in `package.json` and creates a new file, `yarn.lock`. You should add this file to revision control. It will be updated whenever you change dependencies and run `yarn install`. **Note: you only need to run it after modifying package.json**. -* `yarn run webpack --mode=development` converts the [ES2015](https://babeljs.io/docs/en/learn/) JavaScript source file at `srcjs/reactSparklines.js` into `inst/htmlwidgets/reactSparklines.js`. The difference between the two is that the one in `inst/` bundles all dependencies. It is also compiled in a dialect of JavaScript that will run on a wider variety of old browsers. +* `yarn install` downloads all of the dependencies listed in `package.json` and creates a new file, `yarn.lock`. You should add this file to revision control. It will be updated whenever you change dependencies and run `yarn install`. **Note: you only need to run it after modifying package.json**. For further documentation on `yarn install`, see the [yarn documentation](https://yarnpkg.com/lang/en/docs/cli/install/). -For further documentation on `yarn install`, see the [yarn documentation](https://yarnpkg.com/lang/en/docs/cli/install/). +* `yarn run webpack` compiles the [ES2015](https://babeljs.io/docs/en/learn/) JavaScript source file at `srcjs/sparklines.js` into `inst/htmlwidgets/sparklines.js`. The later file is one actually used by the R package and includes all the relevant JavaScript dependencies in a version of JavaScript that most browsers understand. Note that, if you add `--mode=development` to the end of this command, it will include a [source map](https://developer.mozilla.org/en-US/docs/Tools/Debugger/How_to/Use_a_source_map) is included with the compiled JavaScript, which makes JavaScript debugging much easier, but hopefully you won't need to do much of any JavaScript debugging. -`yarn run webpack` is not strictly a `yarn` command. In fact, `yarn run` simply delegates to the [webpack](https://webpack.js.org/) program. `development` is one of several [webpack modes](https://webpack.js.org/concepts/#mode). webpack's configuration is generated by `scaffoldReactWidget` in the file `webpack.config.js`. +`yarn run webpack` is not strictly a `yarn` command. In fact, `yarn run` simply delegates to the [webpack](https://webpack.js.org/) program. Webpack's configuration is generated by `scaffoldReactWidget` in the file `webpack.config.js`, but you can always change this configuration and/or modify the `yarn run webpack` command to suit your needs. -### Building the package +### Installing the R package -While the JavaScript has been built, the `reactSparklines` package has not. Now that the JavaScript asset has been created, we can build it: +Now that the widget's JavaScript is compiled, go ahead install the R package: -```{r eval = FALSE} +```{r} devtools::document() devtools::install(quick = TRUE) ``` Alternatively, in RStudio, you can use the keyboard shortcuts `Ctrl+Shift+D` and `Ctrl-Shift-B` to document and build the package. (On macOS, the shortcuts are `Cmd+Shift+D` and `Cmd+Shift+B`) -## Run example +## Run the included demo -Now that the widget's JavaScript has been compiled and the package has been installed, we can run `app.R` to see the widget in action: +Now that the widget's JavaScript is compiled, and the R package is installed, run `app.R` to see a demo in action: -```{r eval = FALSE} +```{r} shiny::runApp() ``` @@ -112,189 +93,179 @@ Alternatively, in RStudio, you can open `app.R` and press `Ctrl-Shift-Enter` (`C knitr::include_graphics('./widget_app.jpg') ``` -## Implement Functionality +## Authoring a react binding -### JavaScript changes +At this point, we've built some scaffolding for an htmlwidget powered by react -- let's modify to create an interface to the `react-sparklines` library. Authoring the interface requires some changes on both the JavaScript and R side, but most of the hard thinking will be in figuring how best to design your interface. To give you an example of how this could work, let's build an interface to the `Sparklines` component of the 'spark-lines' library. -At this point, we've scaffolded a widget and built its JavaScript, but we have not implemented any functionality provided by the `react-sparklines` library. +### First, outline an interface -To expose that functionality through our widget, we must modify the JavaScript in `srcjs/reactSparklines.js`. Currently, it looks like this: +Consider the following example taken from the [react-sparklines documentation](http://borisyankov.github.io/react-sparklines/). -```{js eval=FALSE} -import { reactWidget } from 'reactR'; +```js +import React from 'react'; +import { Sparklines } from 'react-sparklines'; -reactWidget('reactSparklines', 'output', {}, {}); + + + + ``` -First, `reactWidget` is [imported](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/import) from the module `'reactR'`. `'reactR'` is provided as an html dependency, but webpack is configured in `webpack.config.js` to consider it a module, so it's available to us here. - -Then, there's a call to `reactWidget`, and we pass it four arguments: - -1. The name of the widget (`'reactSparklines'`) -1. The type of the widget (`'output'`) -1. The React components that should be exposed to the widget (here, `{}`: none) -1. Additional configuration options (here, `{}`: none) - -In order to make our widget do something interesting, we must change the third argument by passing React components provided by `react-sparklines`. We can do it like this: - - -```{js eval = FALSE} -import * as SparklinesComponents from 'react-sparklines'; -import { reactWidget } from 'reactR'; +You have some choice in terms of how to design an R interface to this sort of react library, but usually it makes sense to have one function per component and have the arguments to that function feed into the properties of that react component. In other words, our goal is to create an R function that allows users of our package to recreate this example with the following code: -reactWidget('reactSparklines', 'output', SparklinesComponents, {}); -``` - -Instead of passing an empty object as the React components, we pass an object populated with all of the components exported by the `'react-sparklines'` module as `SparklinesComponents`. - -We could also have exposed only a subset of the components exported by `react-sparklines` with code like the following: - -```{js eval = FALSE} -import { Sparklines, SparklinesLine } from 'react-sparklines'; -import { reactWidget } from 'reactR'; - -reactWidget('reactSparklines', 'output', SparklinesComponents, { - Sparklines: Sparklines, - SparklinesLine: SparklinesLine -}); +```r +library(sparklines) +sparklines( +data = sampleData, +sparklinesLine(color = "#56b45d"), +sparklinesSpots(style = list(fill = "#56b45d")) +) ``` -The primary difference between the two is the `import` syntax we chose to use. - -After updating your `app.R`, run `yarn run webpack --mode=development` to rebuild the JavaScript. +The following sections show how to implement this R interface from our scaffolded widget. -### R changes +### R implementation -The next code we'll need to modify to make `react-sparklines` work is on the R side, at the top of the file `R/reactSparklines.R`: - -```{r eval = FALSE} -reactSparklines <- function(message, width = NULL, height = NULL, elementId = NULL) { +Consider the template that `reactR::scaffoldReactWidget()` provided for us: +```{r} +sparklines <- function(message, width = NULL, height = NULL, elementId = NULL) { + # describe a React component to send to the browser for rendering. - component <- reactR::reactMarkup(htmltools::tag("div", list(message))) - + content <- htmltools::tag("div", list(message)) + # create widget htmlwidgets::createWidget( - name = 'reactSparklines', - component, + name = 'sparklines', + reactR::reactMarkup(content), width = width, height = height, - package = 'reactSparklines', + package = 'sparklines', elementId = elementId ) } ``` -This function is the one responsible for creating an instance of our widget. In the `server` function of the generated `app.R`, we use it like this: +This function is designed to simply display a message within an HTML div using **reactR** and **htmlwidgets**. The critical piece here that makes it all work is `reactR::reactMarkup()`. This function can prepare a payload containing a mix of HTML tags (constructed via `htmltools::tag()`), React components (constructed via `reactR::component()`), or character vectors in a such way that the **reactR** and **htmlwidgets** toolchain will understand and know how to render in the browser (assuming we've imported our react component appropriately, as we cover later). Thus, to send a `` react component instead of an HTML `
`, we could simply change: -```{R eval = FALSE} -server <- function(input, output, session) { - output$widgetOutput <- renderReactSparklines( - reactSparklines("Hello world!") - ) -} +```r +content <- htmltools::tag("div", list(message)) ``` -In the code above, `renderReactSparklines` expects to receive the return value of `reactSparklines` as its argument. +to -`reactSparklines` is a thin wrapper around `htmlwidgets::createWidget`. Its most important argument, `message`, is the one we must change the handling of. In the current implementation, the following happens to `message`: - -```{R eval = FALSE} -component <- reactR::reactMarkup(htmltools::tag("div", list(message))) +```r +reactR::component("Sparklines", list(message)) ``` -1. We wrap `message` in a list -1. We call `htmltools::tag` to create a `div` with the list we created as its children -1. We call `reactR::reactMarkup` to prepare the tag to be rendered in the browser -1. We assign to `component` - -Then, we pass `component` as the second argument of `htmlwidgets::createWidget`. - -Widgets created using reactR expect for this argument to be a representation of `markup`, or either an `htmltools::tag` or a `reactR::component`. When we called `reactR.reactWidget` in our JavaScript, we created and installed the browser-side implementation of a widget that expects to receive markup and then renders that markup in the widget's HTML container. - -Let's modify the `reactSparklines` function so that it handles `message` differently. In fact, let's change the meaning of that argument completely. Instead of a `message`, it should take an argument `data`, which is the vector of numbers to display as a sparkline graph: - -```{r eval = FALSE} -reactSparklines <- function(data, width = NULL, height = NULL, elementId = NULL) { +Remember, though, that we'd like `` to consume a `data` property and also accept other valid components (e.g., ``, ``, etc) from this library as children. So, we could change the body and signature of `sparklines()` in the following way: +```{r} +sparklines <- function(data, ..., width = NULL, height = NULL) { + # describe a React component to send to the browser for rendering. - component <- reactR::reactMarkup(reactR::component( + content <- reactR::component( "Sparklines", - list(data = data, reactR::component("SparklinesLine")) - )) - + list(data = data, ...) + ) + # create widget htmlwidgets::createWidget( - name = 'reactSparklines', - component, + name = 'sparklines', + reactR::reactMarkup(content), width = width, height = height, - package = 'reactSparklines', - elementId = elementId + package = 'sparklines' ) } ``` -Now, we're using the `data` argument in a more sophisticated way. We're assigning it to the attribute `data` of the `Sparklines` component, as per the first example in the [react-sparklines documentation](http://borisyankov.github.io/react-sparklines/). Then, we create a `SparklinesLine` component to tell `react-sparklines` the format to display the data. +At this point, we define functions that make it easy for the user to create the other components by adding these to the `R/reactSparklines.R` -Essentially, we're using R code that corresponds directly to the [JSX](https://reactjs.org/docs/introducing-jsx.html) syntax in the `react-sparklines` examples. This is a major benefit of using reactR: examples in JSX are generally easy to adapt. +```{r} +#' @export +sparklinesLine <- function(...) { + reactR::React$SparklinesLine(...) +} -Our widget now assumes that `data` is a numeric vector, and relies on the fact that this vector becomes a JavaScript array once it's sent to the browser. +#' @export +sparklinesSpots <- function(...) { + reactR::React$SparklinesSpots(...) +} +``` -After you've edited `R/reactSparklines.R`, run `devtools::install(quick = TRUE)` or hit `Ctrl-Shift-B` (macOS: `Cmd-Shift-B) to rebuild the package. +### JavaScript changes -## Trying it out +In order for the **reactR** toolchain to know how to render components from the 'react-sparklines' library, we need to essentially register the react components on the JavaScript side. This can be done in the `srcjs/sparklines.js` file which currently looks like this: -It's finally time to modify `app.R` and test our widget modifications out. Open `app.R`, it should look like this: +```{js} +import { reactWidget } from 'reactR'; -```{r eval = FALSE} -library(shiny) -library(reactSparklines) +reactWidget('sparklines', 'output', {}); +``` -ui <- fluidPage( - titlePanel("reactR HTMLWidget Example"), - reactSparklinesOutput('widgetOutput') -) +First, `reactWidget` is [imported](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/import) from the `'reactR'` JavaScript module. This function will essentially register the react components that we want inside the **reactR** and **htmlwidgets** toolchain. Note that the `'reactR'` JS module is as an html dependency, but webpack is configured in `webpack.config.js` to consider it a module, so it's available to us here. -server <- function(input, output, session) { - output$widgetOutput <- renderReactSparklines( - reactSparklines("Hello world!") - ) -} +Then, there's a call to `reactWidget`, and we pass it three arguments: -shinyApp(ui, server) +1. The name of the widget (`'sparklines'`) +1. The type of the widget (`'output'`) +1. The React components that should be exposed to the widget. In this template, we didn't have to include any because it's just rendering an HTML div. + +Instead of passing an empty object (`{}`) as the React components, we provide an object with all the components we need from the 'react-sparklines' module: + +```{js} +import { Sparklines, SparklinesLine, SparklinesSpots } from 'react-sparklines'; +import { reactWidget } from 'reactR'; + +reactWidget('sparklines', 'output', { + Sparklines: Sparklines, + SparklinesLine: SparklinesLine, + SparklinesSpots: SparklinesSpots +}); ``` -The thing we need to change is the argument to `reactSparklines`. It should no longer be a string, but a numeric vector to display as a sparkline graph. Here is the amended code: +### Go for a spin + +Now that we've made the necessary changes to the JavaScript and R source code, it's time to compile the JavaScript, install the R package + +```bash +# TODO: maybe we could provide a Makefile to compile JS and install R pkg? +yarn install +yarn run webpack --mode=development +Rscript -e "devtools::document(); devtools::install(); sparklines::sparklines(rnorm(10))" +``` -```{r eval = FALSE} +This should open up the `sparklines()` widget in your browser. If it does, congratulations, you just wrote your first React-based widget! + +### Shiny integration + +The scaffolding template already provides the glue you need to get your **reactR** widget to render in **shiny**. The two relevant functions are `renderSparklines()` and `sparklinesOutput()`. You shouldn't need to modify these functions -- they should work out of the box. You will, however, want to modify the example **shiny** app provided by the in the `app.R` file: + +```{r} library(shiny) -library(reactSparklines) +library(sparklines) ui <- fluidPage( titlePanel("reactR HTMLWidget Example"), - reactSparklinesOutput('widgetOutput') + sparklinesOutput('myWidget') ) server <- function(input, output, session) { - output$widgetOutput <- renderReactSparklines( - reactSparklines(sample.int(10, 10)) - ) + output$myWidget <- rendersparklines({ + sparklines( + data = rnorm(10), + sparklinesLine(color = "#56b45d"), + sparklinesSpots(style = list(fill = "#56b45d")) + ) + }) } shinyApp(ui, server) ``` -Now, when you run `app.R`, you should see something like the following: - -```{r echo=FALSE} -knitr::include_graphics('./widget_app_improved.jpg') -``` - -Congratulations, you just wrote your first React-based widget! - -Another thing you can try is running `reactSparklines(data = sample.int(10, 10))` directly in the RStudio Console. You should see a sparkline graph appear in the Viewer. +Now, when you run `shiny::runApp()`, you should see your vision become reality! -## Next steps +## Further learning -We've reached the end of this tutorial, but if you'd like to see how a sparklines library could be further improved, you might be interested in our [sparklines-example](https://github.com/react-R/sparklines-example) project. It picks up where we leave off, by creating a kind of DSL that makes the other sparkline types easily accessible from R. +This tutorial walked you through the steps taken you create an R interface to the react-sparklines library. The full example package is accessible at . Our intention is keep creating example packages under the profile, so head there if you'd like to see example of interfacing to other react libraries. From 582bb4a373ca8cc16fac76c565f0eda6beaf35ca Mon Sep 17 00:00:00 2001 From: timelyportfolio Date: Fri, 11 Jan 2019 21:36:34 -0600 Subject: [PATCH 66/77] update date and add mention of htmlwdiget in DESCRIPTION --- DESCRIPTION | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/DESCRIPTION b/DESCRIPTION index 1d8e04d..98ae489 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -2,7 +2,7 @@ Package: reactR Type: Package Title: React Helpers Version: 0.3.0 -Date: 2019-01-03 +Date: 2019-01-11 Authors@R: c( person( "Facebook", "Inc" @@ -23,8 +23,8 @@ Authors@R: c( ) ) Maintainer: Kent Russell -Description: Make it easy to use 'React' in R with helper - dependency functions, embedded 'Babel' 'transpiler', +Description: Make it easy to use 'React' in R with 'htmlwidget' scaffolds, + helper dependency functions, an embedded 'Babel' 'transpiler', and examples. URL: https://github.com/react-R/reactR BugReports: https://github.com/react-R/reactR/issues From 8174f4d23be1eb475c4750c88e0dcb58b422e6b6 Mon Sep 17 00:00:00 2001 From: timelyportfolio Date: Fri, 11 Jan 2019 22:08:44 -0600 Subject: [PATCH 67/77] add some discussion on new htmlwidget functionality in README --- README.md | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index bfa3636..1a55d2d 100644 --- a/README.md +++ b/README.md @@ -1,28 +1,33 @@ [![CRAN_Status_Badge](http://www.r-pkg.org/badges/version/reactR)](https://cran.r-project.org/package=reactR) [![Travis-CI Build Status](https://travis-ci.org/react-R/reactR.svg?branch=master)](https://travis-ci.org/react-R/reactR) -react-R logo +react-R logo # reactR -A set of convenience function with local dependencies for using [`React`](https://facebook.github.io/react) in `R`. This is modeled after the `html_dependency_*` functions from RStudio's [`rmarkdown`](https://github.com/rstudio/rmarkdown) package. +`reactR` provides a set of convenience functions for using [`React`](https://facebook.github.io/react) in `R` with `htmlwidget` constructor templates and local JavaScript dependencies. The `React` ecosystem is rich with comoponents that can enhance `R` web and shiny apps. `scaffoldWidget` helps build `htmlwidgets` to integrate these `React` components as `R` `htmlwidgets`. The local dependency functions are modeled after the `html_dependency_*` functions from RStudio's [`rmarkdown`](https://github.com/rstudio/rmarkdown) package. ## Installation -You can install reactR from github with: +You can install reactR from CRAN with `install.packages("reactR")`. For the development version, please use `devtools` as shown below. ```R # install.packages("devtools") devtools::install_github("react-R/reactR") ``` -## Example +## Creating htmlwidgets with React Components + +To wrap a `React` component as an `htmlwidget`, please see the tutorial [htmlwidgets with reactR](https://react-r.github.io/reactR/articles/intro_htmlwidgets.html). Also, there are a variety of examples in the [react-R Github organization](https://github.com/react-R). + +## Examples ```R library(reactR) library(htmltools) browsable(tagList( + tags$div(id = "app"), tags$script( " ReactDOM.render( @@ -31,7 +36,7 @@ browsable(tagList( null, 'Powered by React' ), - document.body + document.getElementById('app') ) " ), @@ -41,7 +46,7 @@ browsable(tagList( )) ``` -`reactR` also uses `V8` if available to transform `JSX` and `ES2015` code. +`reactR` also uses the `V8` package if available to transform `JSX` and `ES2015` code. ```R library(reactR) @@ -49,8 +54,9 @@ library(htmltools) browsable( tagList( + tags$div(id = "app"), tags$script( - babel_transform('ReactDOM.render(

Powered By React/JSX

,document.body)') + babel_transform('ReactDOM.render(

Powered By React/JSX

,document.getElementById("app"))') ), # add core-js shim first for React in RStudio Viewer html_dependency_corejs(), @@ -61,4 +67,4 @@ browsable( ## Contributing and Code of Conduct -I welcome contributors. Help make this package great. Please note that this project is released with a [Contributor Code of Conduct](CONDUCT.md). By participating in this project you agree to abide by its terms. +We welcome contributors and would love your participation. Please note that this project is released with a [Contributor Code of Conduct](CONDUCT.md). By participating in this project you agree to abide by the terms. From 9e94c1af76286f91051ad8f88559115b5e348144 Mon Sep 17 00:00:00 2001 From: timelyportfolio Date: Sat, 12 Jan 2019 07:52:36 -0600 Subject: [PATCH 68/77] add htmltools:: to taglist in _html function in R template --- inst/templates/widget_r.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/inst/templates/widget_r.txt b/inst/templates/widget_r.txt index 7248c1b..91c92c0 100644 --- a/inst/templates/widget_r.txt +++ b/inst/templates/widget_r.txt @@ -52,7 +52,7 @@ render${capName} <- function(expr, env = parent.frame(), quoted = FALSE) { #' Called by HTMLWidgets to produce the widget's root element. #' @rdname ${name}-shiny ${name}_html <- function(id, style, class, ...) { - tagList( + htmltools::tagList( # Necessary for RStudio viewer version < 1.2 reactR::html_dependency_corejs(), reactR::html_dependency_react(), From a51390003439e44ef18d7af1a7d772199ae0657f Mon Sep 17 00:00:00 2001 From: Alan Dipert Date: Sat, 12 Jan 2019 06:31:08 -0800 Subject: [PATCH 69/77] Fix intro vignette frontmatter syntax --- vignettes/intro_htmlwidgets.Rmd | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/vignettes/intro_htmlwidgets.Rmd b/vignettes/intro_htmlwidgets.Rmd index 1522bd8..a888cbb 100644 --- a/vignettes/intro_htmlwidgets.Rmd +++ b/vignettes/intro_htmlwidgets.Rmd @@ -4,12 +4,12 @@ author: "Alan Dipert" date: "`r Sys.Date()`" output: rmarkdown::html_vignette vignette: > -%\VignetteIndexEntry{htmlwidgets with reactR} + %\VignetteIndexEntry{htmlwidgets with reactR} %\VignetteEngine{knitr::rmarkdown} %\VignetteEncoding{UTF-8} - --- +--- - ```{r, echo=FALSE, include=FALSE} +```{r, echo=FALSE, include=FALSE} knitr::opts_chunk$set(eval = FALSE) ``` From f5fff431188a8d60c25b49a6cf69776dad0b68e3 Mon Sep 17 00:00:00 2001 From: Alan Dipert Date: Sat, 12 Jan 2019 07:29:53 -0800 Subject: [PATCH 70/77] npmPkg: Use a named list instead of a char vector --- R/scaffold.R | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/R/scaffold.R b/R/scaffold.R index bf7f887..f0b1383 100644 --- a/R/scaffold.R +++ b/R/scaffold.R @@ -5,9 +5,9 @@ #' #' @param name Name of widget #' @param npmPkg Optional \href{https://npmjs.com/}{NPM} package upon which this -#' widget is based, as a two-element character vector of name and -#' \href{https://docs.npmjs.com/files/package.json#dependencies}{version -#' range}. If you specify this parameter the package will be added to the +#' widget is based, a named list with two elements: \code{name} and +#' \href{https://docs.npmjs.com/files/package.json#dependencies}{version}. If +#' you specify this parameter the package will be added to the #' \code{dependency} section of the generated \code{package.json}. #' @param edit Automatically open the widget's JavaScript source file after #' creating the scaffolding. @@ -41,7 +41,7 @@ toDepJSON <- function(npmPkg) { if (is.null(npmPkg)) { "" } else { - do.call(sprintf, as.list(c('"%s": "%s"', npmPkg))) + sprintf('"%s": "%s"', npmPkg$name, npmPkg$version) } } From e66b71dca6d867631d065b1e49884431e41e2a96 Mon Sep 17 00:00:00 2001 From: Alan Dipert Date: Sat, 12 Jan 2019 07:30:35 -0800 Subject: [PATCH 71/77] Tutorial vignette: light editing and formatting --- vignettes/intro_htmlwidgets.Rmd | 40 ++++++++++++++++----------------- 1 file changed, 19 insertions(+), 21 deletions(-) diff --git a/vignettes/intro_htmlwidgets.Rmd b/vignettes/intro_htmlwidgets.Rmd index a888cbb..9ae31c1 100644 --- a/vignettes/intro_htmlwidgets.Rmd +++ b/vignettes/intro_htmlwidgets.Rmd @@ -13,7 +13,7 @@ vignette: > knitr::opts_chunk$set(eval = FALSE) ``` -The [htmlwidgets](https://www.htmlwidgets.org) package provides a framework for creating R bindings to JavaScript libraries. Using the **htmlwidgets** package alone, it's not necessarily straight-forward to create an R binding to a [React](https://facebook.github.io/react/)-powered JavaScript library. The **reactR** package adds to the **htmlwidgets** framework to make it much easier to author **htmlwidgets** that are powered by React. This vignette will show you how to effectively leverage **reactR** to build an **htmlwidgets** package that interfaces with [react-sparklines](https://github.com/borisyankov/react-sparklines) React JavaScript library. +The [htmlwidgets](https://www.htmlwidgets.org) package provides a framework for creating R bindings to JavaScript libraries. Using the **htmlwidgets** package alone, it's not necessarily straight-forward to create an R binding to a [React](https://facebook.github.io/react/)-powered JavaScript library. The **reactR** package builds on the **htmlwidgets** framework to make it much easier to author **htmlwidgets** that are powered by React. This vignette will show you how to effectively leverage **reactR** to build an **htmlwidgets** package that interfaces with [react-sparklines](https://github.com/borisyankov/react-sparklines) React JavaScript library. ## Software pre-requisites @@ -39,7 +39,7 @@ install.packages(c("shiny", "devtools", "usethis", "htmlwidgets", "reactR")) To create a new widget you can call `scaffoldReactWidget` to generate the basic structure and build configuration. This function will: * Create the .R, .js, .yaml, and .json files required by your widget; -* If provided, take an [npm](https://www.npmjs.com/) package name and version as a two-element character vector. For example, the npm package `foo` at version `^1.2.0` would be expressed as `c("foo", "^1.2.0")`. The package, if provided, will be added to the new widget's `package.json` as a build dependency. +* If provided, take an [npm](https://www.npmjs.com/) package name and version as a named list with `name` and `version` elements. For example, the npm package `foo` at version `^1.2.0` would be expressed as `list(name = "foo", version = "^1.2.0")`. The package, if provided, will be added to the new widget's `package.json` as a build dependency. The following R code will create a package named **sparklines**, then provide the templating for creating an htmlwidget powered by the `react-sparklines` npm package: @@ -58,7 +58,7 @@ reactR::scaffoldReactWidget("sparklines", c("react-sparklines", "^1.7.0")) ### Building the JavaScript -The next step is to navigate to the `sparklines` directory in your terminal. Then, run the following commands: +The next step is to navigate to the newly-created `sparklines` directory in your terminal. Then, run the following commands: ```{bash eval = FALSE} yarn install @@ -73,7 +73,7 @@ yarn run webpack ### Installing the R package -Now that the widget's JavaScript is compiled, go ahead install the R package: +Now that the widget's JavaScript is compiled, go ahead and install the R package: ```{r} devtools::document() @@ -96,9 +96,9 @@ Alternatively, in RStudio, you can open `app.R` and press `Ctrl-Shift-Enter` (`C knitr::include_graphics('./widget_app.jpg') ``` -## Authoring a react binding +## Authoring a React binding -At this point, we've built some scaffolding for an htmlwidget powered by react -- let's modify to create an interface to the `react-sparklines` library. Authoring the interface requires some changes on both the JavaScript and R side, but most of the hard thinking will be in figuring how best to design your interface. To give you an example of how this could work, let's build an interface to the `Sparklines` component of the 'spark-lines' library. +At this point, we've built some scaffolding for an htmlwidget powered by React. Let's modify it to create an interface to the `react-sparklines` library. Authoring the interface requires some changes on both the JavaScript and R side, but most of the hard thinking will be in figuring how best to design your interface. To give you an example of how this could work, let's build an interface to the `Sparklines` component of the 'spark-lines' library. ### First, outline an interface @@ -109,22 +109,20 @@ import React from 'react'; import { Sparklines } from 'react-sparklines'; - - + + ``` -You have some choice in terms of how to design an R interface to this sort of react library, but usually it makes sense to have one function per component and have the arguments to that function feed into the properties of that react component. In other words, our goal is to create an R function that allows users of our package to recreate this example with the following code: +You have some choice in terms of how to design an R interface to this sort of React library, but usually it makes sense to have one function per component and have the arguments to that function feed into the properties of that React component. In other words, our goal is to create an R function that allows users of our package to recreate this example with the following code: ```r library(sparklines) sparklines( -data = sampleData, -sparklinesLine(color = "#56b45d"), -sparklinesSpots(style = list(fill = "#56b45d")) + data = sampleData, + sparklinesLine(color = "#56b45d"), + sparklinesSpots(style = list(fill = "#56b45d")) ) -======= -reactWidget('reactSparklines', 'output', SparklinesComponents, {}); ``` The following sections show how to implement this R interface from our scaffolded widget. @@ -151,7 +149,7 @@ sparklines <- function(message, width = NULL, height = NULL, elementId = NULL) { } ``` -This function is designed to simply display a message within an HTML div using **reactR** and **htmlwidgets**. The critical piece here that makes it all work is `reactR::reactMarkup()`. This function can prepare a payload containing a mix of HTML tags (constructed via `htmltools::tag()`), React components (constructed via `reactR::component()`), or character vectors in a such way that the **reactR** and **htmlwidgets** toolchain will understand and know how to render in the browser (assuming we've imported our react component appropriately, as we cover later). Thus, to send a `` react component instead of an HTML `
`, we could simply change: +This function is designed to simply display a message within an HTML div using **reactR** and **htmlwidgets**. The critical piece here that makes it all work is `reactR::reactMarkup()`. This function can prepare a payload containing a mix of HTML tags (constructed via `htmltools::tag()`), React components (constructed via `reactR::component()`), or character vectors in a such way that the **reactR** and **htmlwidgets** toolchain will understand and know how to render in the browser (assuming we've imported our React component appropriately, as we cover later). Thus, to send a `` react component instead of an HTML `
`, we could simply change: ```r content <- htmltools::tag("div", list(message)) @@ -185,7 +183,7 @@ sparklines <- function(data, ..., width = NULL, height = NULL) { } ``` -At this point, we define functions that make it easy for the user to create the other components by adding these to the `R/reactSparklines.R` +At this point, we define functions that make it easy for the user to create the other components by adding these to `R/reactSparklines.R` ```{r} #' @export @@ -201,7 +199,7 @@ sparklinesSpots <- function(...) { ### JavaScript changes -In order for the **reactR** toolchain to know how to render components from the 'react-sparklines' library, we need to essentially register the react components on the JavaScript side. This can be done in the `srcjs/sparklines.js` file which currently looks like this: +In order for the **reactR** toolchain to know how to render components from the 'react-sparklines' library, we need to register the React components on the JavaScript side. This can be done in the `srcjs/sparklines.js` file which currently looks like this: ```{js} import { reactWidget } from 'reactR'; @@ -209,7 +207,7 @@ import { reactWidget } from 'reactR'; reactWidget('sparklines', 'output', {}); ``` -First, `reactWidget` is [imported](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/import) from the `'reactR'` JavaScript module. This function will essentially register the react components that we want inside the **reactR** and **htmlwidgets** toolchain. Note that the `'reactR'` JS module is as an html dependency, but webpack is configured in `webpack.config.js` to consider it a module, so it's available to us here. +First, `reactWidget` is [imported](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/import) from the `'reactR'` JavaScript module. This function will register the React components we want within the **reactR** and **htmlwidgets** toolchain. Note that the `'reactR'` JavaScript is an html dependency, but webpack is configured in `webpack.config.js` to consider it a module, so it's available to us here via `import` syntax. Then, there's a call to `reactWidget`, and we pass it three arguments: @@ -232,7 +230,7 @@ reactWidget('sparklines', 'output', { ### Go for a spin -Now that we've made the necessary changes to the JavaScript and R source code, it's time to compile the JavaScript, install the R package +Now that we've made the necessary changes to the JavaScript and R source code, it's time to compile the JavaScript and install the R package: ```bash # TODO: maybe we could provide a Makefile to compile JS and install R pkg? @@ -245,7 +243,7 @@ This should open up the `sparklines()` widget in your browser. If it does, congr ### Shiny integration -The scaffolding template already provides the glue you need to get your **reactR** widget to render in **shiny**. The two relevant functions are `renderSparklines()` and `sparklinesOutput()`. You shouldn't need to modify these functions -- they should work out of the box. You will, however, want to modify the example **shiny** app provided by the in the `app.R` file: +The scaffolding template already provides the glue you need to get your **reactR** widget to render in **shiny**. The two relevant functions are `renderSparklines()` and `sparklinesOutput()`. You shouldn't need to modify these functions -- they should work out of the box. You will, however, want to modify the example **shiny** app in the `app.R` file: ```{r} library(shiny) @@ -273,4 +271,4 @@ Now, when you run `shiny::runApp()`, you should see your vision become reality! ## Further learning -This tutorial walked you through the steps taken you create an R interface to the react-sparklines library. The full example package is accessible at . Our intention is keep creating example packages under the profile, so head there if you'd like to see example of interfacing to other react libraries. +This tutorial walked you through the steps taken you create an R interface to the react-sparklines library. The full example package is accessible at . Our intention is keep creating example packages under the organization, so head there if you'd like to see other examples of interfacing with React. From e519b6d087aa62bd0af6f0056568763db3db554b Mon Sep 17 00:00:00 2001 From: Alan Dipert Date: Sat, 12 Jan 2019 07:43:14 -0800 Subject: [PATCH 72/77] Minor README edits --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 1a55d2d..443d79d 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ # reactR -`reactR` provides a set of convenience functions for using [`React`](https://facebook.github.io/react) in `R` with `htmlwidget` constructor templates and local JavaScript dependencies. The `React` ecosystem is rich with comoponents that can enhance `R` web and shiny apps. `scaffoldWidget` helps build `htmlwidgets` to integrate these `React` components as `R` `htmlwidgets`. The local dependency functions are modeled after the `html_dependency_*` functions from RStudio's [`rmarkdown`](https://github.com/rstudio/rmarkdown) package. +`reactR` provides a set of convenience functions for using [`React`](https://facebook.github.io/react) in `R` with `htmlwidget` constructor templates and local JavaScript dependencies. The `React` ecosystem is rich with components that can enhance `R` web and Shiny apps. `scaffoldReactWidget()` helps build `htmlwidgets` to integrate these `React` components as `R` `htmlwidgets`. The local dependency functions are modeled after the `html_dependency_*` functions from RStudio's [`rmarkdown`](https://github.com/rstudio/rmarkdown) package. ## Installation From ed5b725ed2b7faf225b3e3421b734ed2c5d0c36f Mon Sep 17 00:00:00 2001 From: Alan Dipert Date: Sat, 12 Jan 2019 07:43:36 -0800 Subject: [PATCH 73/77] Remove QA note from tutorial vignette --- vignettes/intro_htmlwidgets.Rmd | 2 -- 1 file changed, 2 deletions(-) diff --git a/vignettes/intro_htmlwidgets.Rmd b/vignettes/intro_htmlwidgets.Rmd index 9ae31c1..2846edd 100644 --- a/vignettes/intro_htmlwidgets.Rmd +++ b/vignettes/intro_htmlwidgets.Rmd @@ -28,8 +28,6 @@ In addition, you'll need to install the following JavaScript tools on your machi To follow along in this vignette, you'll also need the following R packages: -> QA Note: The necessary version of reactR is not yet available on CRAN. Please install reactR with `devtools::install_github("react-R/reactR@enhancements")` - ```{r} install.packages(c("shiny", "devtools", "usethis", "htmlwidgets", "reactR")) ``` From b7f83dd3809f5f5a0c2eb7a6993d885b4791c443 Mon Sep 17 00:00:00 2001 From: Alan Dipert Date: Sat, 12 Jan 2019 07:46:06 -0800 Subject: [PATCH 74/77] Minor vignette edit --- vignettes/intro_htmlwidgets.Rmd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vignettes/intro_htmlwidgets.Rmd b/vignettes/intro_htmlwidgets.Rmd index 2846edd..b8c115b 100644 --- a/vignettes/intro_htmlwidgets.Rmd +++ b/vignettes/intro_htmlwidgets.Rmd @@ -241,7 +241,7 @@ This should open up the `sparklines()` widget in your browser. If it does, congr ### Shiny integration -The scaffolding template already provides the glue you need to get your **reactR** widget to render in **shiny**. The two relevant functions are `renderSparklines()` and `sparklinesOutput()`. You shouldn't need to modify these functions -- they should work out of the box. You will, however, want to modify the example **shiny** app in the `app.R` file: +The scaffolding template already provides the glue you need to get your **reactR** widget to render in **shiny**. The two relevant functions are `renderSparklines()` and `sparklinesOutput()`. You shouldn't need to modify these functions — they should work out of the box. You will, however, want to modify the example **shiny** app in the `app.R` file: ```{r} library(shiny) From 25a2d9c2ff05291a25de15e804a24485e793d790 Mon Sep 17 00:00:00 2001 From: Alan Dipert Date: Sat, 12 Jan 2019 07:47:32 -0800 Subject: [PATCH 75/77] spark-lines => react-sparklines --- vignettes/intro_htmlwidgets.Rmd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vignettes/intro_htmlwidgets.Rmd b/vignettes/intro_htmlwidgets.Rmd index b8c115b..f174754 100644 --- a/vignettes/intro_htmlwidgets.Rmd +++ b/vignettes/intro_htmlwidgets.Rmd @@ -96,7 +96,7 @@ knitr::include_graphics('./widget_app.jpg') ## Authoring a React binding -At this point, we've built some scaffolding for an htmlwidget powered by React. Let's modify it to create an interface to the `react-sparklines` library. Authoring the interface requires some changes on both the JavaScript and R side, but most of the hard thinking will be in figuring how best to design your interface. To give you an example of how this could work, let's build an interface to the `Sparklines` component of the 'spark-lines' library. +At this point, we've built some scaffolding for an htmlwidget powered by React. Let's modify it to create an interface to the `react-sparklines` library. Authoring the interface requires some changes on both the JavaScript and R side, but most of the hard thinking will be in figuring how best to design your interface. To give you an example of how this could work, let's build an interface to the `Sparklines` component of the react-sparklines library. ### First, outline an interface From 02cac39a9112323da41cfc36f478d327deaff0ce Mon Sep 17 00:00:00 2001 From: Alan Dipert Date: Sat, 12 Jan 2019 08:27:22 -0800 Subject: [PATCH 76/77] Credit @cpsievert in tutorial --- vignettes/intro_htmlwidgets.Rmd | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/vignettes/intro_htmlwidgets.Rmd b/vignettes/intro_htmlwidgets.Rmd index f174754..d4664fc 100644 --- a/vignettes/intro_htmlwidgets.Rmd +++ b/vignettes/intro_htmlwidgets.Rmd @@ -1,6 +1,8 @@ --- -title: "Authoring htmlwidgets powered by react with reactR" -author: "Alan Dipert" +title: "Authoring htmlwidgets powered by React with reactR" +author: + - Alan Dipert + - Carson Sievert date: "`r Sys.Date()`" output: rmarkdown::html_vignette vignette: > From c439aa94b3af1eff74e4c9c52041f787c0e27014 Mon Sep 17 00:00:00 2001 From: timelyportfolio Date: Sat, 12 Jan 2019 11:03:45 -0600 Subject: [PATCH 77/77] pkgdown --- docs/LICENSE.html | 7 +- docs/articles/index.html | 10 +- docs/articles/intro_htmlwidgets.html | 329 +++++++++ docs/articles/intro_reactR.html | 11 +- .../intro_reactR_files/react-16.7.0/AUTHORS | 696 ++++++++++++++++++ .../react-16.7.0/LICENSE.txt | 21 + .../react-16.7.0/react-dom.min.js | 207 ++++++ .../react-16.7.0/react.min.js | 31 + docs/articles/widget_app.jpg | Bin 0 -> 19159 bytes docs/articles/widget_app_improved.jpg | Bin 0 -> 26614 bytes docs/authors.html | 11 +- docs/index.html | 82 ++- docs/news/index.html | 7 +- docs/reference/React.html | 165 +++++ docs/reference/babel_transform.html | 7 +- docs/reference/component.html | 169 +++++ docs/reference/html_dependency_corejs.html | 7 +- docs/reference/html_dependency_react.html | 7 +- .../reference/html_dependency_reacttools.html | 139 ++++ docs/reference/index.html | 40 +- docs/reference/reactMarkup.html | 154 ++++ docs/reference/scaffoldReactWidget.html | 164 +++++ man/scaffoldReactWidget.Rd | 6 +- 23 files changed, 2210 insertions(+), 60 deletions(-) create mode 100644 docs/articles/intro_htmlwidgets.html create mode 100644 docs/articles/intro_reactR_files/react-16.7.0/AUTHORS create mode 100644 docs/articles/intro_reactR_files/react-16.7.0/LICENSE.txt create mode 100644 docs/articles/intro_reactR_files/react-16.7.0/react-dom.min.js create mode 100644 docs/articles/intro_reactR_files/react-16.7.0/react.min.js create mode 100644 docs/articles/widget_app.jpg create mode 100644 docs/articles/widget_app_improved.jpg create mode 100644 docs/reference/React.html create mode 100644 docs/reference/component.html create mode 100644 docs/reference/html_dependency_reacttools.html create mode 100644 docs/reference/reactMarkup.html create mode 100644 docs/reference/scaffoldReactWidget.html diff --git a/docs/LICENSE.html b/docs/LICENSE.html index e947260..9fb0c0e 100644 --- a/docs/LICENSE.html +++ b/docs/LICENSE.html @@ -67,6 +67,9 @@
@@ -132,9 +142,9 @@

Links

License

@@ -145,18 +155,20 @@

Developers

  • Kent Russell
    Author, maintainer
    (R interface)
  • +
  • Alan Dipert
    Author
    (R interface) +
  • Dev status

    • CRAN_Status_Badge
    • -
    • Travis-CI Build Status
    • +
    • Travis-CI Build Status